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