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