Forum: Mikrocontroller und Digitale Elektronik Bus System über UART


von ralf (Gast)


Lesenswert?

Hallo!
Ich habe folgendes Problem, ich möchte mehrere AVR´s über die UART
miteinander verbinden. Dafür habe ich alle rx miteinander verbunden und
gehe damit auf den MAX232. Empfangen geht so nun auch! Nur wenn ich
einen Slave auf eine Anfrage vom Master senden lassen möchte bekomme
ich "Müll" auf der RS232! Ich habe an die TX Leitung der AVR´s
jeweils eine 1n4148 mit Kathode zum AVR hingerichtet mit eingebaut. Am
TX eingang des MAX232 habe ich einen 4k7 Pullup mit reingehängt. Wenn
ich nur einen AVR im system habe und lasse den senden klappt es. Doch
sobald mehr als einer am BUS hängt klappt nur noch das empfangen und
das antworten auf anfragen vom master geht nicht merh bzw. es kommt nur
noch "Datenmüll". Ich vermute das Problem liegt an der HW. Ist meine
Überlegung mit der Diode und dem Pull up flasch !? Ich hoffe mir kann
jemand bei meinem Problem helfen!

Danke im Vorraus

von crazy horse (Gast)


Lesenswert?

im Prinzip ist das so richtig und funktioniert auch. Du musst allerdings
sicherstellen, dass wirklich nur einer sendet - sobald es 2 oder mehr
versuchen, gibts logischerweise Müll.

von Olaf (Gast)


Lesenswert?

Das sollte funktionieren. Ich mache genau dasselbe, drei Mega8 mit drei
Dioden und 4.7k an einem RS422 Wandler und es funktioniert ohne
Probleme.
Du musst natuerlich in deiner Software sicherstellen das die Burschen
nur antworten wenn sie gefragt werden.

Olaf

von ralf (Gast)


Lesenswert?

mmhh ok das Problem könnte natürlcih auch daran liegen das ich das ganze
in BASCOM g programmiere .... Ich habe jetzt mal einen Controller so
programmiert das er ständig Print"Hello" an den PC schickt. Der
andere läuft die ganze Zeit in einer Schleife und macht nur INPUT
variable. wenn nur der sendende dran hängt - klappt das und ich bekomme
das Hello. Sobald ich den anderen dran hänge, der eigentlich nur
mithören sollte - kommt müll! Aber die HW lösung mit den Dioden und dem
einen Pull UP sollte so in ordnung sein !?

danke für die SCHNELLEN antworten !!!

von ralf (Gast)


Lesenswert?

Also ich glaube ich habe das Problem nun eingegrenzt! Ich denke es liegt
an BASCOM! Wenn ich bei Bascom mit INPUT Var z.b. ein Variable vom Typ
BIT einlese, dann kann ich im Terminal auch nur ein zeichen senden die
Eingabe wird dann blockiert! Ich kann dieses Zeichen dann nur noch
durch betätigen von ENter an den µC senden. Dies bedeutet ja das Bascom
bei Input gleichzeitig irgendwas zurücksendet an den PC damit der weis
wieviele Zeichen er senden darf. (ich hoffe das ihr mich versteht g)
Nun müsste diese Funktion im Bascom programm ausgeschaltet werden. Nur
wie ???

danke

von Thorsten L. (tlauf)


Lesenswert?

*aboniert

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
Noch kein Account? Hier anmelden.