Serielle Verbindung: Mehrere "Empfänger" - Spannung bricht ein

OP (Firma: privat) #3406539
Lesenswert?

Hallo zusammen,

am Serial-TX eines ATMEGA 2560 möchte ich drei "Verbraucher" 
anschließen:
1.) 433Mhz Radio. Das als einziges auch am Serial-RX des MEGA 
angeschlossen ist
2.) ATMEGA328 (nur am Serial-TX des APM)
3.) Arduino-Micro (also ein weiterer ATMEGA328)

1.) und 2.) zusammen funktionieren wunderbar. Sobald ich 3.) zusätzlich 
parallel anschließe bricht die Serielle Datenübertragung zusammen. Ich 
vermute mal, dass das für das ATMEGA 2560 einfach zu viele Verbraucher 
sind.

Hat jemand von euch eine Idee? Ich dachte hier an Verstärker, 
Impendanzwandler usw. Als Workaround dachte ich ggf. an einen 
nicht-invertierenden Schmitt-Trigger (weiß aber auch nicht, ob dessen 
Ausgang soviel verträgt).

VG
Kai
Gast #3406548
Lesenswert?

Hi Kai,

Deine "Verbraucher" sind sehr hochohmig. Somit glaube ich nicht, dass 
Deine Signalquelle ernsthaft belastet wird.

Funktioniert den der Arduino-Micro mit dem ATMEGA2560 isoliert 
betrachtet. Ich vermute eher, dass Dein Arduino-Micro falsch konfiguiert 
ist. TX/RX gedreht.

VG,
Michael
#3406553
Lesenswert?

Hallöchen

Du willst 2 Sender Parallel anschließen??
Das wird glaube ich nicht gehen. Wen diese Grafik passt:
https://www.sparkfun.com/tutorial/RS232vsTTL-BiteSize/ttl-timing.PNG
Dan hast du auf der Datenleitung immer +5V (Wen einer der beiden nix 
sendet liegt dort 5v an) Dan kann der andere deine Datenleitung zwar 
versuchen auf 0V zu ziehen aber am Empfänger kommen immer die +5V vom 
den einen an.
Bei einem Sender und 2 Empfänger könnte es vielleicht klappen… habe ich 
aber noch nicht ausprobiert.
Ich hoffe ich habe das so richtig wiedergegeben.

mfG Uwe
Gast #3406566
Lesenswert?

die serielle Schnittstelle ist erstmal eine Punkt zu Punkt Verbindung 
und kein Bus. Die Busfähigkeit kann man höchstens elektrisch nachbilden, 
mit RS485 oder Select-Pins.

Aber warum so umständlich? Der Mega2560 hat 4 UARTs, werden also schon 
für 3 Geräte reichen.
OP (Firma: privat) #3406631
Lesenswert?

Moin zusammen,

es geht um 1 Sender und 3 Empfänger (die alle das gleiche Empfangen 
sollen!).
Ich schaue mir das gleich nochmal auf dem Oszi an.
Aber eurer Meinung nach sollte ein ATMEGA Ausgang durchaus 3 ATMEGA 
Eingänge bedienen können?

VG
Kai
Gast #3406642
Lesenswert?

Kai Kaas schrieb:
> Ich schaue mir das gleich nochmal auf dem Oszi an.

Häng einen Widerstand von z.B. 4k7 in die RX-Leitung jedes Empfänger. 
Bei friedlicher Übertragungsrate stört der die Übertragung nicht und du 
kannst anhand der gemessenen Pegel gleich feststellen, wer der Bösewicht 
ist und was er tut.
Gast #3406646
Lesenswert?

Die ATMegas haben eigentlich recht hochwertige Ausgangsports und sollten 
drei Empfänger als Last treiben können.

1.Hast du die Pins am ATMEGA328 richtig initialisiert?
2.Ist der ATMEGA328 auch richtig angeschlossen? (RX an TX sowie TX an 
RX!)

3.Hat der ATMEGA256 sowie der ATMEGA328 die selbe Versorgungsspannung?
Bei unterschiedlichen Versorgungen kann es sein das einer von den beiden 
über die Schutzdioden am Port die Signalpegel kurzschließt.
Gast #3406686
Lesenswert?

Kai Kaas schrieb:

> bricht die Serielle Datenübertragung zusammen. Ich
> vermute mal, dass das für das ATMEGA 2560 einfach zu viele Verbraucher
> sind.

Wohl kaum, die Eingänge sind ziemlich hochohmig, der Ausgang hingegen 
ziemlich niederohmig, Überlastung ist also kaum zu erwarten, jedenfalls 
solange kein Schaltungsfehler vorliegt und alle Teilnehmer dieselben 
Logikpegel haben.

Viel wahrscheinlicher sind bounces, also Signalreflektionen durch die 
fehlende Impedanzanpassung und ggf. eine obendrein verzweigte Topologie 
der physischen Verbindungen. Mögliche Abhilfen:

Führe den "Bus" als Line vom Sender zum ersten Empfänger, von dort zum 
zweiten und von dort zum dritten. Auf dem dritten Empfänger schließt du 
die Line mit einem Widerstand gegen Masse ab. So groß wie möglich, so 
klein wie nötig. Wird wohl so bei ein paar hundert Ohm bis ein paar kOhm 
sein. Ein Minimum von etwa 200 Ohm darfst du aber auf jeden Fall nicht 
unterschreiten, sonst hast du tatsächlich eine Überlast-Situation mit 
entsprechendem Einbruch der Pegel.

Alternativ kann man auch bewußt eine Sterntopologie wählen, also drei 
Strippen jeweils direkt von Sender zum Empfänger und dann jede Strippe 
einzeln per Längswiderstand (Größenordnung: einige kOhm) direkt vor dem 
jeweiligen Empfänger bedämpfen.

Beide Ansätze haben ihre Vor- und Nachteile. Geht es primär um hohe 
Datenraten, ist die Line-Variante zu bevorzugen, steht hingegen ein 
geringer Energieverbrauch im Vordergrund, ist die Sternvariante besser 
geeignet.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren