Forum: Mikrocontroller und Digitale Elektronik Serielle Verbindung: Mehrere "Empfänger" - Spannung bricht ein


von Kai K. (Firma: privat) (kaidk)


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

von Wolfgang (Gast)


Lesenswert?

Kai Kaas schrieb:
> 1.) und 2.) zusammen funktionieren wunderbar. Sobald ich 3.) zusätzlich
> parallel anschließe bricht die Serielle Datenübertragung zusammen.

Dann häng doch mal 1.) oder 2.) ab und 3.) dran. Du könntest auch die 
Signalpegel kontrollieren.

von Michael (Gast)


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

von Uwe S. (dasufo)


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

von Floh (Gast)


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.

von Kai K. (Firma: privat) (kaidk)


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

von Wolfgang (Gast)


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.

von Nachtaktiver (Gast)


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.

von c-hater (Gast)


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.

von Oliver R. (orb)


Lesenswert?

Floh schrieb:
> Die Busfähigkeit kann man höchstens elektrisch nachbilden,
> mit RS485 oder Select-Pins.

Warum? Als reine Verbindung zwischen einem Master und mehreren Slaves 
kann man auch eine Softwareadressierung benutzen. Problematisch ist nur 
die Senderichtung.

von Dietrich L. (dietrichl)


Lesenswert?

Noch eine dumme Frage: sind alle GNDs verbunden?

von Kai K. (Firma: privat) (kaidk)


Lesenswert?

Dietrich L. schrieb:
> Noch eine dumme Frage: sind alle GNDs verbunden?

Klar! :-)

von Peter D. (peda)


Lesenswert?

Vermutlich hat ein Verbraucher keine VCC und wird über die 
Clamping-Diode mit versorgt.
Je nach Laststrom geht der Sender dann in die Knie.

von Kai K. (Firma: privat) (kaidk)


Lesenswert?

Ich bin mir unsicher, wie die Serial-TX der ATMEGAs arbeiten.
Würde ein Pullup-Widerstand auf VCC ggf. auch helfen?

Bin noch nicht zum Scopen gekommen. Halte auch auf dem Laufenden...

von Dietrich L. (dietrichl)


Lesenswert?

Kai Kaas schrieb:
> Ich bin mir unsicher, wie die Serial-TX der ATMEGAs arbeiten.

Ich würde mal behaupten: Das sind elektrisch ganz normale Ausgänge.

von Peter D. (peda)


Lesenswert?

Ein CMOS-Ausgang kann bequem 100 CMOS-Eingänge treiben.

von Dietrich L. (dietrichl)


Lesenswert?

Peter Dannegger schrieb:
> Ein CMOS-Ausgang kann bequem 100 CMOS-Eingänge treiben.

... wenn die Frequenz nicht zu hoch ist. Also so pauschal ist die 
Aussage etwas riskant ...

von der alte Hanns (Gast)


Lesenswert?

Genau das ist die Frage, die mich schon die ganze Zeit interessiert, von 
welcher Übertragungsrate reden wir hier eigentlich?

von Kai K. (Firma: privat) (kaidk)


Lesenswert?

Datenrate: 56k (Auslastung ca. 30%)

von der alte Hanns (Gast)


Lesenswert?

Das ist ja nicht so schnell und eher unproblematisch. Läuft es denn 
jetzt?

Wenn nein, dann sei auf Wolfgangs Vorschlag 2013-11-17 12:50 verwiesen.

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.