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
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.