I2C Netzwerk - eine Interrupt Leitung

Gast #3641146
Lesenswert?

Hallo,

ich habe ein I2C Netzwerk mit 3 ATMEGA328 aufgebaut.

Einer ist der Master, 2 sind Slaves.
Soweit passt die Kommunikation zw. Master und den Slaves.

Jetzt möchte ich das Lesen von den Slave-Werten über Interrupts lösen.
(Die Slaves sollen, wenn sie neue Werte haben, beim Master einen 
Interrupt auslösen, der dann die Werte abfragt)

Dazu habe ich eine gemeinsame "Interrupt" Leitung an jeweils einen Pin 
der Mikrocontroller angeschlossen.


Da ich die Mikrocontroller nicht "verschießen" will wollte ich euch 
fragen, ob folgende Vorgehensweise prinzipiell funktioniert:

-Standardmäßig soll die Leitung auf High liegen, wenn ein Wert zum 
Auslesen ist, die Leitung auf Low.

-Der angeschlossene PIN am Master ist immer Eingang, der Pull UP 
Widerstand aktiviert. (der Interrupt ist aktiviert)

-Die angeschlossenen PINs am Slave sind standardmäßig als Eingang 
geschalten, wenn ein Interrupt ausgelöst werden soll, wird der Pin aus 
Ausgang geschalten. (und die Leitung auf LOW gezogen).


Ich würde mich freuen, wenn jemand diesen oder ähnlichen Aufbau schon 
einmal realisiert hat und mir einen kurzes Feedback geben könnte, ob 
diese gemeinsame Interrupt Leitung funktionieren kann - der nicht.

Danke,
Günther
Gast #3641252
Lesenswert?

Hi

>Die angeschlossenen PINs am Slave sind standardmäßig als Eingang
>geschalten, wenn ein Interrupt ausgelöst werden soll, wird der Pin aus
>Ausgang geschalten. (und die Leitung auf LOW gezogen).

Genau so macht man es auch bei Soft-TWI.

>-Der angeschlossene PIN am Master ist immer Eingang, der Pull UP
>Widerstand aktiviert. (der Interrupt ist aktiviert)

Der interne Pull-Up dürfte zu hochohmig sein. Sieh einen externen 
Widerstand vor.

MfG Spess
(Firma: Nisch-Aufzüge) Persönliche Seite #3641306
Lesenswert?

Du kannst die Leitung sparen und einfach die Datenleitung auf kurz Low 
ziehen umd dem Master mitzuteilen das ein Slave etwas loswerden muss. 
Einfach einen IrQ Eingang des Masters mit dran schalten und den IRQ 
außerhalb der I² Communication freigeben. natürlich sollte der Slave 
dann zuvor schauen das keinen Kommunikation auf dem I²Bus läuft. Dazu 
genügt es an der LK zu lauschen. und das muss er eh.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren