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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.