AVR Boards per TWI verbinden < Assembler < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 22:16 So 20.02.2011 | Autor: | Hoschi79 |
Aufgabe | Ich und zwei Schulkollegen versuchen zwei ATmega8-Controllerboards mittels TWI(I²C-Bus) zu verbinden und jeweils als Master oder Slave im Transmitter- bzw. Receiverbetrieb zu benutzen.
[I] Bisher klappte es nur in einer Richtung (MasterTransmitter <-> SlaveReceiver bzw. MasterReceiver <-> SlaveTransmitter). Kann uns jemand ggf. eine kleine Hilfestellung geben?
[II] Bislang funktioniert es nur mit einem Slave. Einen zusätzliches Slaveboard bzw. veränderte Slave-Adresse schlug fehl. |
Ich habe diese Frage auch in folgenden Foren auf anderen Internetseiten gestellt:
[http://forum.freenet.de/showthread.php?p=3425293#post3425293]
Vielleicht hat dahingehend jemand auch eine geistreiche Inspiration für uns?!?
|
|
|
|
Hallo Hoschi!
Da die Verbindung teilweise funktioniert, handelt es sich vermutlich eher um einen Firmware-Fehler, während die Elektrik OK ist.
Allerdings kann ich nur raten, was der Fehler ist, denn man müßte deinen Quellcode (von Master und Slave) sehen.
Du schreibst, der Master kann senden, aber nicht empfangen. Das könnte daran liegen, daß ihr einen Fehler beim Senden auf dem Slave bzw beim Empfangen auf dem Master gemacht habt. Seid ihr sicher, daß ihr wisst, an welcher Stelle man welche Bits setzen / überwachen muß, damit man die Kommunikation in die andere Richtung hin bekommt?
Auch das Ändern der Adresse des Slaves ist ein Hinweis darauf, daß da was mit der ganzen Konfiguration nicht stimmt.
Es wäre schön, wenn ihr ein Oszilloskop hättet, dann könnte man mal auf der Datenleitung gucken, was da so an Daten rüber rauscht.
Wie gesagt, aus der Ferne ist eine Fehlersuche so sehr schwer. (Insbesondere, da es sich eher nicht um einen Syntax-Fehler handelt bzw. nicht jeder hier zwei AVRs zum Testen rumfliegen hat). Ich selbst programmiere nur PICs, und die in C, daher kenne ich zumindest die grundsätzlichen Probleme.
Vielleicht versucht ihr es auch mal in einem richtigen AVR-Forum? Die sollte es zu dutzenden geben, und vielleicht gibts da auch gleich Beispielcode...
|
|
|
|