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.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.