Forum: Mikrocontroller und Digitale Elektronik AVR TWI / 1 Master->mehrere Slaves


von Hellsing (Gast)


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

von Hellsing (Gast)


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

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