Hey Leute! Ich bin gerade dabei, mir einen Experimentier-Roboter zu bauen. Da ich noch Anfänger bin, möchte ich so viele Möglichkeitn der Avr's nutzen wie nur möglich. Dadurch habe ich schon beim Bauen den AHA!-Effekt. Mein erstes Problem ist folgendes: Ich habe ein Mainboard mit einem Atmega32 und mehrere kleinere Boards(für Sensorik, Motoren und RS232) mit weniger Leistung. Wie kann ich alle uC's so miteinander vernetzen, dass ich Befehle und Messwerte von uC zu uC senden kann?
Wie schon gesagt, bin Anfänger........ Was ist das, wie steuer ich es an (in Bascom)?
Wegen I2C: Ist der Controller da jederzeit erreichbar? Habe mich da noch nicht herangewagt, weil der Befehl doch ziehmlich lang ist und ich mir eben nicht sicher war, ob der uC dadurch jederzeit erreichbar ist oder nur zu der Zeit, bei der der Code gerade steht. Und 2.: Welche Adresse haben die Avr's? Kann ich die einstellen? Wie?
Ich würde die UART nehmen, bei jedem Controller den TX-Pin mit einer Diode an eine Leitung schalten, die mit PullUp auf Vcc gezogen wird. Alle RX-Pins ebenfalls an diese Leitung anschließen. So kann jeder Controller mit jedem Controller zeitversetzt kommunizieren.
Das Problem ist, dass ich die UART bei 2 uC brauche. Am besten wäre also TWI... nur da wäre noch das obrige Problem: Welche Adresse habe die Avr's?
Am einfachsten wenn alle microcontroller nebenbei was zu tun haben ist TWI, das problem ist halt ma muss einen microcontroller spendieren der quasi einen "Hub" spielt, dafür hat man damit einige größere nachteile erschlagen, zb das man Zeitfenster nicht erreicht oder Synchronisationsgeschichten, in einer Kette alle zusammenhängen über TWI oder SPI is auch ein ganz netter Aspekt das man die Daten quasi einmal im Kreis schicht und der Abschicker dann das Durchschrieben der Daten Beendet, hat den vorteil das es Beliebig erweiterbar ist ( sollte halt nur gemacht werden wenn das netzt klein ist. Wichtig ist ob die devices Addressierbar sind oder nicht Vorteile vom TWI.: - Timing des Systems ist so schnell wie der Langsamste Benutzer in der Kette ( kein Fixer Takt hat viele vorteile ). - Fehler Eliminieren sich von selber durch das Handshaken jedes Bits - "Spucker" in der Leitung machen nix - Leitungslänge Egal - Zeitkritische Treads können mittendrin abgearbeitet werden und dann die - keine Addressierung nötig. Kommunikation fortgesetzt werden. Nachteile.: - Langsam - Software aufwand - Hub uC für Master I2C.: Vorteile.: - Viele Bauteile interface in HW gegossen ( omg ein Schieberegister ) Nachteile.: - Slave & Master Ausprogrammieren - Fixer Clock - Adressen nötig SPI- schnell, und flexibel, alle uC werden in einer "Kette" aufgehängt und im Kreis zusammengesteckt, wenn noch ein Device - Leitungslänge NICHT egal - Zeitkritische Threads können warten - desto mehr User desto langsamer - Einknüpfen von neuen Usern sehr leicht - keine Addressierung One Wire.: auch sehr Genial, - nur muss dann jedes Device Adressierbar sein. - Leitungslänge NICHT egal - Zeitkritische Threads müssen warten ( zb bei 1MHZ Clock ) - Fehlercode UNBEDINGT nötig. - bei klugem verbau kann man sogar die Supply mit über den 1 Wire übertragen.
Ja, ich werde den I2C-Bus nehmen. Aber bitte nur noch eine kurze Antwort ohne große Abschweife: Welche Adresse?
naja du hast 127 zu verfügung, das MSB is für R/W... steht aber in jeder I2C Spec :-)
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.