PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : UART Funktioniert nur bei selber Stromversorgung reibungslos



sloti
23.02.2011, 10:04
Moin,

ich habe zwei Controllerboards (das MK3 und das MK2 von MyAVR) das eine ist mit einem ATMega8 (3,6864 MHz) das andere mit einem ATMega 640 (16 MHz) bestückt. Jetzt wollte ich zwischen beiden eine Verbindung über UART herstellen. Hab den einen als Sender und den anderen als Empfänger programmiert und mit dem PC getestet. Hat alles funktioniert. Nur wenn ich jetzt die beiden Controller miteinander verbinde kommt ungefähr nur jedes zweite Datenpaket an. Allerdings funktioniert es komplett problemlos wenn ich ein und die selbe Stromversorgung benutze. Hat da irgendjemand eine Idee, woran das liegen könnte. Mein Plan ist nämlich das ganze dann mit Bluetooth kabellos zu machen. Doch das ist ja irgendwie witzlos wenn die Daten Kabellos versendet werden, ich aber Stromkabel verlegen muss.

mfg
Erik

BMS
23.02.2011, 10:45
Hallo,
bei UART oder RS232 musst du unbedingt immer Masse (GND) durchverbinden, damit das funktioniert. Und die Übertragungsrate muss auch übereinstimmen. Je nach Quarz lässt sich nicht jede Übertragungsrate genau realisieren. Musst halt eine Baudrate wählen, die beim 3,6864 und 16Mhz-Quarz sich auch recht präzise machen lässt (Prescaler).
Über Funk wird es das Problem nicht mehr geben, da musst du wirklich kein zusätzliches Kabel verlegen!
Grüße,
Bernhard

sloti
23.02.2011, 10:58
hallo Bernhard,

danke für die Antwort. Ich hab bei beiden eine BAUD-Rate von 9600 bei 3,6864 MHz geht das genau auf bei 16 MHz habe ich eine Fehlerrate von 0,2% das halte ich für hinnehmbar. Aber ich verstehe nicht genau warum ich bei der Bluetoothvariante dann keine durchgehende Masse mehr brauche.

mfg
Erik

BMS
23.02.2011, 11:19
Naja, dein Handy und der nächste Sendemast brauchen auch keine Kabelverbindung :mrgreen:

hardware.bas
23.02.2011, 11:37
Kann es sein, dass die beiden Betriebsspannungen unterschiedlich sind?
Dann stimmen auch die Pegel der UARTs nicht mehr mit der Gegenstelle
überein. VG Micha

sloti
23.02.2011, 13:06
Die Betriebsspannungen hab ich mal gemessen. Bei dem einen 4,96V der andere 5,06V. Wenn ich sie so anschließe, dass sie beide unter 5V haben funktionierts :D. Danke!

askazo
23.02.2011, 14:59
Auch wenn's so funktioniert - sauber ist das ohne eine Masseverbindung nicht.
Um ein Signal auf dem Kabelweg sauber zu übertragen, braucht man einen geschlossenen Stromkreis. Ohne Masse ist dieser Stromkreis bei einer UART (bzw. bei jeder asymetrischen Übertragungsart) unterbrochen. Sporadisch funktioniert das ohne Masse, da sich die Controller einen Bezugspunkt durch die jeweils andere Kommunikationsleitung schaffen. da diese aber sehr hochohmig ist, kann zu Störungen kommen.

Bei Bluetooth hast Du ein völlig anderes Übertragungsmedium. Eine elektromagnetische Welle braucht keinen Kreislauf.

Gruß,
askazo

Richard
23.02.2011, 15:44
hallo Bernhard,

danke für die Antwort. Ich hab bei beiden eine BAUD-Rate von 9600 bei 3,6864 MHz geht das genau auf bei 16 MHz habe ich eine Fehlerrate von 0,2% das halte ich für hinnehmbar. Aber ich verstehe nicht genau warum ich bei der Bluetoothvariante dann keine durchgehende Masse mehr brauche.

mfg
Erik


Weil Dein Sende und Empfangsmodul mit der jeweiligen Board Spannung verbunden sind, also neben TX/RX auch GND Verbindung haben. Sollte eigentlich logisch sein. :-)

Gruß Richard

hardware.bas
23.02.2011, 16:21
4,96V der andere 5,06V, dieser Unterschied sollte nicht zu gross sein.
Dass eine Masseverbindung mit, wie auch ohne gemeinsame Vcc
existiert, hatte ich jedoch vorrausgesetzt. VG Micha