Jaecko
19.03.2007, 13:29
Moin.
Da die einzelnen Geräte mit nem ATMega8 immer mehr werden und diese letztendlich doch mal alle gemeinsam gesteuert werden sollen, wollte ich diese nun über den I2C-Bus verbinden. Geplant ist, dass alle Geräte als Slaves arbeiten und dann ein ATMega8 allein die Aufgabe des Masters übernimmt.
Hab zwar schon mal nach Infos gesucht, aber trotzdem gibts da noch einige Punkte, bei denen ich noch nicht ganz 100% sicher bin. Darum mal hier die unklaren Punkte.
#1) I2CSlave Library: "Works for 2313,2323, 2333,2343,4433, tiny22, tiny12, tiny15 and M8. Other AVR chips have build in hardware for I2C."
Geh ich richtig, dass M8 dort den ATMega8 bezeichnet und somit für einen Slave diese Library benötigt wird, bei einem ATmega16 aber nicht?
#2) Soweit klar, dass ein Slave nicht von sich aus senden kann. Wenn nun Slave 2 an Slave 4 etwas senden will, muss der Master die Daten also von S2 auslesen und danach an S4 weiterleiten... ?
#3) Aus einem Codebeispiel weiss ich, dass man mit dem Folgenden Code (für Master) einen Slave abfragen kann...
I2cstart
I2cwbyte ICaddress
I2crbyte Bytetoread, Ack
I2crbyte Bytetoread, Nack
I2cstop
Aber wie sieht hierzu dann im Slave das Gegenstück des Codes aus?
MfG
S.C
Da die einzelnen Geräte mit nem ATMega8 immer mehr werden und diese letztendlich doch mal alle gemeinsam gesteuert werden sollen, wollte ich diese nun über den I2C-Bus verbinden. Geplant ist, dass alle Geräte als Slaves arbeiten und dann ein ATMega8 allein die Aufgabe des Masters übernimmt.
Hab zwar schon mal nach Infos gesucht, aber trotzdem gibts da noch einige Punkte, bei denen ich noch nicht ganz 100% sicher bin. Darum mal hier die unklaren Punkte.
#1) I2CSlave Library: "Works for 2313,2323, 2333,2343,4433, tiny22, tiny12, tiny15 and M8. Other AVR chips have build in hardware for I2C."
Geh ich richtig, dass M8 dort den ATMega8 bezeichnet und somit für einen Slave diese Library benötigt wird, bei einem ATmega16 aber nicht?
#2) Soweit klar, dass ein Slave nicht von sich aus senden kann. Wenn nun Slave 2 an Slave 4 etwas senden will, muss der Master die Daten also von S2 auslesen und danach an S4 weiterleiten... ?
#3) Aus einem Codebeispiel weiss ich, dass man mit dem Folgenden Code (für Master) einen Slave abfragen kann...
I2cstart
I2cwbyte ICaddress
I2crbyte Bytetoread, Ack
I2crbyte Bytetoread, Nack
I2cstop
Aber wie sieht hierzu dann im Slave das Gegenstück des Codes aus?
MfG
S.C