Bus System über UART

Gast #227858
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
Gast
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.
Gast
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
Gast
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 !!!
Gast
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.