Re: max7311 interrupt Kategorie: Sonstige Hardware (von Martin Schultheiss - 2.11.2006 21:48) | ||
Als Antwort auf Re: max7311 interrupt von JörgC - 2.11.2006 21:01 | ||
| ||
Hallo Jörg. That's it. Kaum macht man es richtig, schon funktioniert es! Vielen Dank für diesen Hinweis !!! Und noch eine kleine Zusammenfassung für die Forums-Suchfunktion: laut max7311 datasheet: "Upon power-on, all I/O lines are set as inputs." Dies mu� stimmen,sonst hätten meine 3 Stück max7311-Bausteine nicht schon seit Wochen als Eingänge funktioniert (Jörg hat es ja unten geschrieben, da� ich mit meinem setDDRw eigentlich nur Port 0 explizit als Eingang geschaltet habe). ABER: Der INT-Ausgang des max7311 funktioniert erst, wenn alle Eingänge per setDDR-Befehl (siehe unten) als Eingänge explizit gesetzt worden sind. Ein "power-on" genügt dafür anscheinend nicht. Ganz abgesehen davon, da� ich die max7311.html Doku nicht richtig kapiert habe :-) ... egal, nicht nach hinten schauen, sondern immer nach vorne :-) ... es gibt noch viel zu tun ... > Hallo Martin, > > dein 10k gegen 5V sollte schon ok sein. Aber mit > if max7311.setDDRw(0,1) != -1 // 16-fach Modul 0 > schaltest du lediglich port 0 als Eingang, müsste also heissen > if max7311.setDDRw(0,0xFFFF) != -1 // 16-fach Modul 0 > > Dann sollte das mit dem INT auch klappen. > > Gruss, > Jörg > > > Hallo Forumleserinnen und -leser. > > > > Um meinen I2C-Bus zu entlasten, habe ich mich an den > > Interrupt-Ausgang des max7311 erinnert. Jedoch möchte der > > INT-Ausgang einfach nicht so funktionieren, wie ich mir das einbilde - > > obwohl ich schon zahlreiche Forumsbeiträge dazu gelesen habe. > > > > Mit einem Pullup-Widerstand habe ich den INT-Ausgang des max7311 > > auf einen Port der CC2-Station gelegt. Der max7311 ist komplett als > > Eingangsbaustein initialisiert. Wenn ich den INT-Ausgang manuell > > mit GND verbinde, dann reagiert mein (Test-) Programm wie > > erwartet. Wenn ich jedoch darauf hoffe, da� der INT-Ausgang eine > > Pegeländerung an einem der Eingänge des max7311 bemerkt, dann > > bleibt es eine Hoffnung ... nichts tut sich. An den Eingänge habe ich > > eine 10k-Pullup-Widerstandsbrücke - was aber nicht das Problem sein > > wird. > > > > Hier ein Auszug aus dem Code: > > > > > // MAX7311 als Eingang initialisieren > > > if max7311.setDDRw(0,1) != -1 // 16-fach Modul 0 > > > functions.errormessage("max7311 setDDRw", "Addr 0 offline"); > > > > > > wait not ports.get(8); // wartet, bis LOW am Port anliegt > > > functions.beep(plm.TONE_C3,300); > > > > Wie gesagt, lege ich manuell GND an den INT-Ausgang, dann > > gibt die CC2 den erwarteten Pieps von sich - jedoch nicht > > wenn ich eine Pegeländerung an einem der max7311-Eingänge auslöse. > > Auf dem I2C-Bus ist kein Traffic zu sehen (Oszi). > > Es frägt also auch niemand den max7311 ab und setzt somit > > den INT wieder auf high. > > > > Laut Forum ist es kein Problem den INT zu benutzen ... nur bei > > mir funktioniert es nicht ... > > > > Hat jemand eine Idee woran das liegen könnte? Habe ich einen > > defekten INT-Ausgang an meinem max7311? > > > > Jede Hilfe ist willkommen! Vielen Dank und Gru� > > > > Martin > > > > > > | ||
Antwort schreiben Antworten: Re: max7311 interrupt (von Thomas M. - 14.03.2009 21:50) |