PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : I2C mit 30x atmega8 und 1x atmega2561



DeadDealer
15.06.2007, 18:54
Moin :)

Mein CaseCon Projekt nimmt so langsam konkrete Formen an. Ein Video der ersten beiden LED-Platinen: http://www.youtube.com/watch?v=UCwT3-CrP48
Bilder: http://planetmodding.de/metroid_sphere/pics/

Jetzt bin ich an einem Punkt angelangt, wo ich festhänge, nämlich der Vernetzung der (zukünftigen) LED-Platinen. Auf Jeder ist ein atmega8 verbaut, I2C ist hardwaretechnisch bereits vorbereitet und die 2 prototypen sind schon verdrahtet. Jetzt fehlt nur noch das passende Programm, und dabei hänge ich fest. In meinem Buch "AVR Microcontroller Lehrbuch" von Roland Walter ist leider nur der Anschluss eines EEPROMs beschrieben, aber ich bräuchte einen Leitfaden für den Master/Slave-Betrieb von mehreren µControllern. Auch eine Suche hier im Wissensbereich und im Forum sowie bei google brachte keine brauchbaren Ergebnisse, überall nur EEPROMs und Temperatursensoren.

Benötigt wird keine komplette Erklärung von I2C, das Prinzip habe ich verstanden. Es sind eher so konkrete Sachen wie:
- Wie lege ich die R/W-Adressen der jeweiligen µCs in der jeweiligen Software fest? (In den Anleitungen sind nur die Adressen der EEPROMs, die fest verdrahret werden)
- Der atmega2561 soll als Master eingesetzt werden und zusätzlich per UART mit einem PC verbunden werden und noch kleine steuertechnische Aufgaben erledigen, gäbe es dabei Probleme?
- Muss ich sonst noch etwas dabei beachten?

MfG DD

Pascal
15.06.2007, 19:33
Das Projekt sieht ja schonmal cool aus ;-)

Die ATMega8 haben ein Register, in das du die TWI-Adresse des jeweiligen µC schreiben kannst. Hast du bereits Code für den Slavebetrieb der AVRs? Vielleicht steht dazu ja da noch was. Wenn nicht, im Datenblatt steht im Kapitel über TWI dazu einiges.

Ich glaub nicht, dass der ATMega2561 damit überfordert ist. Es kommt aber natürlich auch drauf an, wieviele Daten du wieschnell übertragen willst.

Mehr fällt mir grad dazu net ein.
Wenn du noch spezielle Fragen dazu hast, werden die dir sicherlich auch beantwortet werden.

DeadDealer
15.06.2007, 19:50
Hast du bereits Code für den Slavebetrieb der AVRs?
Noch nicht, nur den Beispielcode für den Masterbetrieb. Aber werd mir gleich mal meinen Ordner mit dem Datenblatt schnappen und da die Sachen nachlesen, bzw. speziell zum Slave-Code was im I-Net suchen.


Ich glaub nicht, dass der ATMega2561 damit überfordert ist. Es kommt aber natürlich auch drauf an, wieviele Daten du wieschnell übertragen willst.
Im Moment sieht es so aus, dass ca. 350 LEDs jede 1/4 - 1/8 Sekunde jeweils einen neuen Helligkeitswert bekommen, zusammen mit einem Befehl (kurzes Aufblinken, vom alten zum neuen Wert faden, direkt neuen Wert umsetzen etc). Ein Rücksenden wie z.B. Checksumme der Werte zum Master ist im Moment nicht angedacht, bei der schnellen Widerholfrequenz sollte es nicht groß auffallen, wenn ein paar LEDs aus der Reihe tanzen.
Zusätzlich kommen 6 Platinen zum Einsatz, die mit jeweils 18 Reed-Sensoren verbunden sind. Mittels eines "Zauberrings" soll man die LEDs mit der Hand steuern können, die Steuerung soll dabei der 2561 übernehmen.

Dirk
16.06.2007, 07:54
Hallo DeadDealer,

schon 'mal ins RN-Wissen geschaut?
https://www.roboternetz.de/wissen/index.php/TWI_Praxis_Multimaster

Für den Master-Slave-Betrieb könnte auch das lesenswert sein:
https://www.roboternetz.de/wissen/index.php/Bascom_Soft-I2c_Library

Gruß Dirk