Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: max7311 interrupt Kategorie: Sonstige Hardware (von Thomas M. - 14.03.2009 21:50)
Als Antwort auf Re: max7311 interrupt von Martin Schultheiss - 2.11.2006 21:48
Ich nutze:
C-Control II Unit, CC2-ReglerBoard, OSOPT V3.1
Hallo Martin und Jörg,

dank eurer Beschreibung und einigem Rumprobieren  kann ich nun auch den Interrupt Ausgang
abfragen.
Allerdings ging's erst, nachdem ich die Ports  der Porterweiterung das erste mal abgefragt hatte:
max7311.getw(0)      
Das max7311.setDDRw(0,0xFFFF) hatte bei mir keinen Erfolg.

Grü�e
Thomas M.


> 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: