Forum: Mikrocontroller und Digitale Elektronik Interrupt-Probleme beim I/O-Expander MAX7318


von Peder (Gast)


Lesenswert?

Hallo,

ich habe Probleme, beim MAX7318 (I/O-Expander mit Interrupt) den 
Interrupt-Pin (acitve low) richtig zu benutzen. Das Datenblatt spricht 
von einem Open-Drain-Ausgang, allerdings ohne nähere Infos. Im Internet 
habe ich gefunden, dass ein Open-Drain-Ausgang normalerweise einen 
Pull-Up benötigt, auf der MAXIM-Seite zum MAX7316 (nicht 7318) hingegen 
ist der Interrupt-Pin direkt am Mikrocontroller angeschlossen. Was 
davon ist der richtige Weg? Im Datenblatt zum MAX7318 steht nichts 
darüber.

Kurz etwas zu meinem Setup: Besagter Interrupt-Ausgang geht zu einem 
ATxmega128A1U-Pin, dessen interner Pull-Up aktiviert ist und der auf 
fallende Flanken reagiert. Ich habe sowohl mit als auch ohne 
zusätzlichen, externen Pull-Up-Widerstand (4k7) getestet.

Nun ist es so, dass die Spannung auf der Interrupt-Leitung zwar bei 3,3V 
startet, aber nach dem ersten Interrupt auf 0V bleibt und nicht mehr 
hochgeht. Hat dieses Verhalten schon mal jemand erlebt oder kann mich 
bei der Fehlersuche in die richtige Richtung lenken?


Danke und Grüße

Peter

von Karl M. (Gast)


Lesenswert?

Hallo,

Du musst auch mit deiner Software den Datenblatt genau folgen:

"The open-drain interrupt output, INT, activates when one of the port 
pins changes states and only when the pin is configured as an input. The 
interrupt deactivates when the input returns to its previous state or 
the input register is read (Figure 9).

A pin configured as an output does not cause an interrupt.
Each 8-bit port register is read independently; therefore, an interrupt 
caused by port 1 is not cleared by a read of port 2’s register.
Changing an I/O from an output to an input may cause a false interrupt 
to occur if the state of that I/O does not match the content of the 
input port register."

https://www.maximintegrated.com/en/products/interface/controllers-expanders/MAX7318.html

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Peder schrieb:
> auf der MAXIM-Seite zum MAX7316 (nicht 7318) hingegen ist der
> Interrupt-Pin direkt am Mikrocontroller angeschlossen.

Es gibt µCs, die über integrierte Pullup-Widerstände verfügen.

von Peder (Gast)


Lesenswert?

Ich hatte zum Testen die Software reduziert und dabei auch das Auslesen 
der Input-Register auskommentiert. Das war es. Dadurch hat sich der 
Interrupt nicht mehr zurückgesetzt.

Danke!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.