-
-
USI als I²C/TWI-Slave (ATTiny26)
Moin Leute,
ich weiß nicht, ob ich einfach zu dumm bin, aber ich finde keine vernünftige Anleitung oder Programmierbeispiel wie man die USI des ATTiny26 (oder allgemein) als I²C bzw. TWI-Slave betreiben kann.
Das einzig annähernd brauchbare zu dem Thema hab ich bei Atmel gefunden (Prgogrammierbeispiel + pdf-file), aber das krieg ich nicht zum Laufen.
Kann mir vllt. jemand von euch da weiter helfen?
-
Erfahrener Benutzer
Robotik Einstein
Hallo,
ich bin auch grad am probieren:
im Wiki unter USI (Avr)
https://www.roboternetz.de/wissen/in.../USI_%28Avr%29
Dann gibts hier irgendwo einen Thread in dem ich das auch mal probiert habe, mit einem Tiny2313.
https://www.roboternetz.de/phpBB2/ze...ag.php?t=25058
Das ist zwar mit Bascom gemacht, aber so, das es keine allzuspeziellen Basocm-Befehle verwendet.
Meine anderen Tiny's sind noch mit der Post unterwegs, dann kann ich mal mit kleineren Tiny's das USI ausprobieren.
-
Habs jetzt auch zum Laufen gekriegt. Der Fehler war selten dämlich,
ich bin einfach mal davon ausgegangen, dass der ATTINY von Werk aus mit 4MHz oder 8MHz läuft.
Hab dann irgendwann bemerkt, dass es nur 1MHz ist und darauf hin die Fuses auf 8MHz geändert.
Verwendet habe ich eine Codekonstrukion von mikrocontroller.net:
http://www.mikrocontroller.net/topic/38917#new
Bin gerade dabei sie für meine Zwecke zu Modifizieren, bis jetzt läufts!
-
Falls es wen interessiert:
Mit der Software klappte alles ganz gut, konnte ihn ansteuern und so, auch mehrmals hintereinander was senden.
Als ich allerdings ein zweites I2C-Device (PCF8591) angeschlossen habe, ging nichts mehr. Hardwarefehle schien es nicht zu sein, also hab ich n bisschen an de Software rumgespielt, was aber keinen Erfolg brachte.
Zum laufen gekriegt hab ich das Teil letzendlich mit einem Code von http://www.avrfreaks.net/ (dort unter "Projects", man muss aber registriert sein). Der ist auch schon für den ATTiny26 geschrieben.
Den hab ich n bisschen Modifiziert und dann ging es auch mit mehrere I²C-Modulen.
-
Erfahrener Benutzer
Robotik Einstein
Benutzt Du den Tiny nur als Slave ?
Da hab ich es mit meiner Bascom Version auch geschaft, und einem DS1621 Temperatursensor.
Bis jetzt hab ich nur den Tiny2313.
Was ich nicht hinkriege ist den Master-USI mithilfe des Timers laufen zu lassen, sodass ich eigentlich nur warten müsste bis das Byte raus- bzw. hereingeschoben ist, und nicht jedes einzelne Bit anstossen brauche, aber mit Timer klappt das irgendwie nicht, zumindest nach Atmel Datenblättern.
Heute sind endlich meine anderen kleinen Tinys gekomen, allerdings ist heute auch mein letzter freier Tag, kann also etwas dauern bis ich wieder tiefer darauf einsteigen kann.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen