Forum: Mikrocontroller und Digitale Elektronik TWI-Slave (AVR ATTiny24) antwortet nicht, wenn Master zu langsam


von Jürgen K. (theojk)


Angehängte Dateien:

Lesenswert?

Ich hab da ein interessantes Problem.
Ich habe vor Kurzem angefangen mit TWI zu experimentieren.
Zuerst habe ich eine einfache 1 Master / 1 Slave Verbindung getestet. 
Mit einem ATMega16 als Master (im Master-Verzeichnis im zipfile) und 
einem ATMega32 als Slave (im Slave1-Verzeichnis im zipfile).
Dabei hab ich den TWI-Takt extrem verlangsamt, so dass ich auf den 
Diagnose-LEDs am Slave die Datenbytes und Stati beobachten konnte. (So 
etwa 2-3 Byte pro Sekunde)
Nun hab ich für meine Anwendung den ATTiny24 ausgesucht (nach IOs und 
Größe) und musste leider feststellen, das der kein HW-TWI bietet, 
sondern nur SPI. Nun hab ich bei Atmel die AN AVR312 runtergeladen und 
etwas angepasst (Slave2 im zipfile). Das funktioniert ganz gut, solange 
ich den Master mit 3.69MHz betreibe (max. Takt des STK500). Wenn ich den 
Takt aber runtersetze, z.b. auf 1.8MHz, dann meldet sich der Slave nicht 
mehr. Die LED geht noch an. D.h. er hat seine Adresse erhalten. Aber der 
Master meldet nach ca. 1s einen Timeout. und es werden keine Daten 
übertragen. Selbst nach mehrmaligen Reset von Master und Slave passiert 
nix. Nur die Adress-LED geht wieder an. Aber es kommen keine Daten. Wenn 
ich den Master wieder auf 3.69MHz beschleunige und den Slave resette, 
dann geht es wieder.
Ich kann das aber nicht so richtig verstehen, da doch eigentlich der 
Master den TWI-Takt vorgibt und der Slave auf ext. Taktquelle für 
SPI-Clock konfiguriert ist.

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.