AVR TWI / 1 Master->mehrere Slaves

Gast #1686572
Lesenswert?

Mahlzeit...
Ich sitze hier seit zwei Tagen vor einem ungewöhnlichem Problem.

Ich möchte eine TWI Kommunikation mit einem Master zu mehreren Slaves 
aufbauen. Als Master dient ein ATMega328P als Slaves zurzeit 3 ATMega168 
und ein ATMega644P. Nun zu meinem Problem. Wenn ich alle 4 Slaves im 
Einsatz habe hängt sich der TWI Bus auf. Das Problem konnte ich genauer 
einkreisen. Und zwar, ich schicke ein Datenbyte zu den Slaves ob per 
General Call oder einzel Adressierung , wenn das Datenbyte einen Wert 
von >127 hat, also das MSB high ist, geht alles Problemlos. Jedoch 
darunter (<=127) hängt sich der Bus auf. Jetzt kommt das kuriose wenn 
ich den ATMega644P alleine benutze gehts ,ebenso wenn ich die 3!! 
ATMega168 benutze läuft es stundenlang perfekt wie es sein soll. Nur im 
Zusammenspiel aller 4 Slaves tritt dieses Problem auf. Alle Slaves haben 
eine Identische Software, die sich nur von der Adresse 
unterscheidet(1-4).

Als TWI Library benutze ich die originale von Atmel und der Master hängt 
bei der WHILE-Schleife der "TWI_Start_Transceiver_With_Data" Funktion.

Ist so ein Problem bekannt oder ein Einzelfall ?

MFG Hellsing
Gast #1686708
Lesenswert?

Problem gefunden dank Analyzer. Die TWI Frequenz war wohl einfach zu 
schnell. Der Standard Wert beim ATMEL TWI ist ein Teiler von 12 was bei 
einem Takt von 8MHz eine TWI Frequenz von 200kHz und bei 20MHz eine 
Frequenz von 500kHz entspricht. Habe es nun auf eine TWI Frequenz von 
100kHz eingestellt und es läuft prima.

BB Hellsing

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