Hallo, für einen Teststand möchte ich mit einem Raspberry Pi verschiedene ATmegas ansprechen. Dazu soll UART über RS-485 dienen. Auf dem Bus sollen später bis zu 100 ATmegas lauschen und nach Aufforderung vom Pi senden. Deshalb wollte ich den MAX487 benutzen. Als Kabel wäre mir aufgrund der günstigen Kosten und der Verfügbarkeit fertiger Kabel CAT6 STP am liebsten. Allerdings ist mir aufgefallen, dass ich dann nur 100 Ohm Wellenwiderstand habe und deshalb anscheinend mit 100 Ohm terminieren muss. Wird dann der Bus bzw. die MAX487 nicht überlastet? Laut Datenblatt hat der MAX487 48k Eingangswiderstand und 100 davon sind zusammen mit 2 100 Ohm-Terminatorwiderständen an den Enden ungefähr 45,3 Ohm. Bei 120 Ohm und 128 Teilnehmern (nornaler Bus) hätte ich aber 51,7 Ohm, abgesehen von den Failsafe-Biaswiderständen. Was mich an der Stelle jetzt irritiert: Der MAX487 gibt im Datenblatt keine definitive maximale Ausgangsleistung an. Im Graph Output Current VS High Voltage geht die Linie bis ca 100 mA. Damit kann ich dann den Bus nicht mehr wie geplant betreiben, weil durch die geringeren Terminatorwiderstände der MAX als Treiber überfordert wird? Kann ich stattdessen mit 120 Ohm terminieren? Muss ich das Failsafe-Bias in die Last auf dem Bus einbeziehen und wenn ja, wie? Danke für alle hilfreichen Antworten.
Es stellt sich die Frage, ob du Papier befriedigen musst, oder es nur verlässlich funktionieren soll? Bei kürzeren Längen und niedrigen Baudraten darf man auch hochohmiger terminieren. Bei vielen Teilnehmern oder langen Leitungen kannst du auch Repeater einsetzen.
Das müssen nicht einmal Repeater sein, du kannst 2 oder mehr Transceiver quasi parallel schalten. Also RPi-seitig parallel und Kabelseitig treibt jeder ein eigenes Kabel mit entsprechend weniger Teilnehmern. Elektrisch reduziert sich die Last entsprechend, aber logisch ist es immer noch ein Bus. Es kann ja sowieso immer nur einer zur Zeit senden. Am UART-Ausgang des RPi sind einfach alle Transceiver parallel angeschlossen. Die Empfänger kannst du auch parallel schalten, dann muss der RPi die Receiver getrennt enablen. Oder du nimmst ein AND mit entsprechend vielen Eingängen; das ist dann für die Software völlig transparent. Bonus: mehrere Kabel vereinfachen die Fehlersuche. Im ersten Schritt steckt man Kabel am RPi ab und kann den Fehler schon mal auf die Hälfte (oder ein Drittel...) der ATmegas eingrenzen. Mit getrennten Enable-Signalen ginge der Schritt sogar in Software.
Bastler schrieb: > der MAX als Treiber überfordert wird? Wird er nicht. Bei einer Stern Verdrahtung braucht auch jedes Ende einen Widerstand. Mit 5 Enden (24Ohm) gibt es keine Probleme(darunter nicht getestet)
Bastler schrieb: > Auf dem Bus sollen später bis zu 100 ATmegas lauschen und nach > Aufforderung vom Pi senden. Ganz schön viele. > Deshalb wollte ich den MAX487 benutzen. "The MAX487 and MAX1487 feature quarter-unit-load receiver input impedance, allowing up to 128 MAX487/ MAX1487 transceivers on the bus." Geht. > Als Kabel wäre mir aufgrund der günstigen Kosten und der Verfügbarkeit > fertiger Kabel CAT6 STP am liebsten. OK. > Allerdings ist mir aufgefallen, dass ich dann nur 100 Ohm > Wellenwiderstand habe und deshalb anscheinend mit 100 Ohm terminieren > muss. Ja. > Wird dann der Bus bzw. die MAX487 nicht überlastet? Nein. > Laut Datenblatt hat der MAX487 48k Eingangswiderstand und 100 davon sind > zusammen mit 2 100 Ohm-Terminatorwiderständen an den Enden ungefähr > 45,3 Ohm. Rechne das mal getrennt. 100 MAX487 haben 480Ohm, das ist noch ~5xZ0 (Wellenwiderstand). Das geht noch. > Bei 120 Ohm und 128 Teilnehmern (nornaler Bus) hätte ich aber > 51,7 Ohm, abgesehen von den Failsafe-Biaswiderständen. Also nur 10% mehr. > Was mich an der Stelle jetzt irritiert: Der MAX487 gibt im Datenblatt > keine definitive maximale Ausgangsleistung an. Wozu auch? Es gibt aber garantierte Pegel, mind. 1,5V Differenzspannung bei 27 Ohm Last. > Bus nicht mehr wie geplant betreiben, weil durch die geringeren > Terminatorwiderstände der MAX als Treiber überfordert wird? Nein. > Kann ich stattdessen mit 120 Ohm terminieren? Das musst du sogar. > Muss ich das Failsafe-Bias in die Last auf dem Bus einbeziehen und wenn > ja, wie? Wenn man sie richtig berechnet, sind das auch 100 Ohm. https://www.mikrocontroller.net/articles/RS-485#Weitere_Hinweise Für 100 Ohm sollte man folgende Werte nutzen. R1=R3=470R R2=110R Rg=R2//(R1+R2)= R2*(R1+R3)/(R2+R1+R3)
Hallo, Falk B. schrieb: > Rg=R2//(R1+R2)= R2*(R1+R3)/(R2+R1+R3) Kleine Korrektur: > Rg=R2//(R1+R3)= R2*(R1+R3)/(R2+R1+R3) rhf
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.