Forum: Mikrocontroller und Digitale Elektronik Mindestkabellänge für RS-485 Leitungstransceiver SN65HVD1780P


von Peter (Gast)


Lesenswert?

Hallo zusammen,

ich setze bei einem Projekt bereits erfolgreich zwei Leitungstransceiver 
SN65HVD1780P als SMD Variante ein bei 9600 Baud und ca. 6 Meter Kabel 
dazwischen. Nun dachte ich daran, da der IC gut funktionierte im ersten 
Projekt, diesen auch für ein weitere Projekt einzusetzen. Gesagt getan 
aber hier funktioniert es gar nicht. Der Aufbau ist wie folgt:

ATXmega - SN65 - 10 cm Kabel (Soll später ca. 30 cm Kabel sein und über 
einen Schleifring gehen) - SN65 - FT232.

Nun kann ich den ATXmega direkt mit dem FT232 verbinden und alles geht. 
Sobald die SN65 dazwischen sitzen, muss ich auf 2800 Baud runter gehen 
und nach jedem gesendeten Zeichen 10ms Pause einlegen. Auf der A-Seite 
des SN65 gehen 35K richtig + und von der B-Seite Richtung GND. Das 
System läuft auf 3,3V.

Gibt es für diese Bausteine eine Mindestkabellänge damit das überhaupt 
funktioniert? Würde mich zwar sehr wundern aber man lernt nie aus. 
Sollte man dann mit Serienwiderständen oder Kondensatoren ein längeres 
Kabel simulieren?

Danke für eure Antworten im voraus.

BG Peter

von Falk B. (falk)


Lesenswert?

@Peter (Gast)

>Nun kann ich den ATXmega direkt mit dem FT232 verbinden und alles geht.
>Sobald die SN65 dazwischen sitzen, muss ich auf 2800 Baud runter gehen
>und nach jedem gesendeten Zeichen 10ms Pause einlegen.

Dann stimmt was nicht.

>Auf der A-Seite
>des SN65 gehen 35K richtig + und von der B-Seite Richtung GND. Das
>System läuft auf 3,3V.

Wie sehen die Signale mit dem Oszi aus?

>Gibt es für diese Bausteine eine Mindestkabellänge damit das überhaupt
>funktioniert?

Nein.

>Sollte man dann mit Serienwiderständen oder Kondensatoren ein längeres
>Kabel simulieren?

Nein.

Klingt nach nicht angeschlossenem Pin, Masse oder ähnlichem.

von Peter (Gast)


Lesenswert?

Mit dem Oszi habe ich noch nicht nachgesehen. Wenn ich jedoch eine 
Zeichenkette mit 10 Zeichen sende und die SN65 dazwischen sitzen, kommen 
nur die ersten 4 Zeichen an. Mit 10ms zwischen jedem Zeichen, kommen 
alle an.

von Christian K. (Gast)


Lesenswert?

Schnapp Dir ein Scope und schau nach. Hardwarefehler findest Du nicht 
mit Software.

von Peter (Gast)


Lesenswert?

Christian K. schrieb:
> Schnapp Dir ein Scope und schau nach. Hardwarefehler findest Du
> nicht
> mit Software.

Wie sollten die Flanken aussehen? Wann sind mögliche Probleme und 
Lösungen?

von Falk B. (falk)


Lesenswert?

@Peter (Gast)

>Wie sollten die Flanken aussehen?

Ja wie wohl? Rund und wellig oder eher eckig und knackig?

>Wann sind mögliche Probleme und
>Lösungen?

Sollen wir jetzt den großen Katalog aufschreiben?

Die Digitalsignale sollten alle sehr kurz Anstiegszeiten von vielleicht 
10-20ns haben und auch sonst keine komischen Dinge tun.

von Peter (Gast)


Lesenswert?

Falk B. schrieb:
> @Peter (Gast)
>
>>Wie sollten die Flanken aussehen?
>
> Ja wie wohl? Rund und wellig oder eher eckig und knackig?
>
>>Wann sind mögliche Probleme und
>>Lösungen?
>
> Sollen wir jetzt den großen Katalog aufschreiben?
>
> Die Digitalsignale sollten alle sehr kurz Anstiegszeiten von vielleicht
> 10-20ns haben und auch sonst keine komischen Dinge tun.

Schon gut mir ging es nur darum direkt zu wissen wohin zu sehen ist und 
was ggf. sofort probiert werden kann. Könnte der FT232 ein Problem sein?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Peter schrieb:
> Könnte der FT232 ein Problem sein?
Kann sein. Oder auch sonstwas.
Aber um einen Fehler zu lokalisieren musst du einfach die Signalkette 
auftrennen und jede Komponente für sich selbst testen...

von Peter (Gast)


Lesenswert?

Dann ist es so, dass wenn ich die SN65 weg lasse und MCU und FT232 
direkt verbinde, dass es geht.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Peter schrieb:
> Dann ist es so, dass wenn ich die SN65 weg lasse und MCU und FT232
> direkt verbinde, dass es geht.
Dann kannst du die SN Pegelwandler ja einfach mal statisch betreiben und 
die Pegel vorn und hinten und in der Mitte messen. Und dann die 
gemessenen Werte mit dem Datenblatt vergleichen...

Die Masse hast du da aber auch mit den Pegelwandlern verbunden? Vom 
erstem bis zum letzten Busteilnehmer?

: Bearbeitet durch Moderator
von Peter (Gast)


Lesenswert?

Lothar M. schrieb:
> Peter schrieb:
>> Dann ist es so, dass wenn ich die SN65 weg lasse und MCU und FT232
>> direkt verbinde, dass es geht.
> Dann kannst du die SN Pegelwandler ja einfach mal statisch betreiben und
> die Pegel vorn und hinten und in der Mitte messen. Und dann die
> gemessenen Werte mit dem Datenblatt vergleichen...

Wird gemacht. Ich hoffe die 3,3V sind nicht zu wenig...

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Peter schrieb:
> Ich hoffe die 3,3V sind nicht zu wenig...
Was steht denn dazu im Datenblatt?

von Peter (Gast)


Lesenswert?

Lothar M. schrieb:
> Peter schrieb:
>> Ich hoffe die 3,3V sind nicht zu wenig...
> Was steht denn dazu im Datenblatt?

Minimum 3,15 Volt Minimum. Also i.O.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Peter schrieb:
> Auf der A-Seite des SN65 gehen 35K richtig + und von der B-Seite
> Richtung GND.

Was heißt das?

Zeig Deinen Schaltplan.

von Icke ®. (49636b65)


Lesenswert?

Können auch Timingprobleme der Software sein. Nach dem Enablen des DE 
nicht lange genug mit der Übertragung gewartet oder zu früh disabled 
beispielsweise. Läßt sich aber ausschließen, wenn testweise nur in einer 
Richtung gesendet und DE permanent aktiviert wird.

von Peter (Gast)


Lesenswert?

Icke ®. schrieb:
> Können auch Timingprobleme der Software sein. Nach dem Enablen des
> DE
> nicht lange genug mit der Übertragung gewartet oder zu früh disabled
> beispielsweise. Läßt sich aber ausschließen, wenn testweise nur in einer
> Richtung gesendet und DE permanent aktiviert wird.

Das war es. Habe die Wartezeiten verlängert und es geht. Danke!

von Falk B. (falk)


Lesenswert?

@ Peter (Gast)

>Das war es. Habe die Wartezeiten verlängert und es geht. Danke!

Mit einem Oszi oder wenigstens Logic Analyer hätte man das in Minuten 
gesehen. Außerdem kann man für das Abschalten des Senders bzw. dem 
Umschalten auf Empfang den TXC (transmission complete) Interrupt 
verwenden. Wenn der aktiv wird, ist das letzte Byte SICHER schon 
rausgegangen.

von Wolfgang (Gast)


Lesenswert?

Falk B. schrieb:
> Die Digitalsignale sollten alle sehr kurz Anstiegszeiten von vielleicht
> 10-20ns haben und auch sonst keine komischen Dinge tun.

Das möchte man bei RS485 eher nicht haben, wenn es die Datenrate 
zulässt. Üblicherweise sieht man zu, dass die Flanken nicht zu steil 
sind, um Störungen zu vermeiden.

von Icke ®. (49636b65)


Lesenswert?

Falk B. schrieb:
> Außerdem kann man für das Abschalten des Senders bzw. dem
> Umschalten auf Empfang den TXC (transmission complete) Interrupt
> verwenden. Wenn der aktiv wird, ist das letzte Byte SICHER schon
> rausgegangen.

So die Theorie. Ich hatte vor Kurzem das gleiche Problem mit einem 
MAX485 (bei 9600 Baud). Die letzten Zeichen einer Befehlssequenz kamen 
nicht beim Empfänger an, obwohl ich vor dem Abschalten des 
Ausgangstreibers explizit auf das TXC-Flag gewartet hatte. Ich mußte ein 
zusätzliches Delay von 2ms einfügen (1ms reichte nicht), damit die 
Übertragung sicher vollständig ablief. Aus den Datenblättern läßt sich 
dies nicht erklären. Möglicherweise verhält sich das verwendete Modul..

https://www.ebay.de/itm/MAX485-TTL-Schnittstelle-Modul-Adapter-RS-485-RS-485-Arduino-Raspberry-Pi-Module/162384175341?hash=item25ced9e0ed:g:~WIAAOSwJ59Z2qTm

..jedoch nicht datenblattkonform, obwohl MAX485 drauf steht. Und ja, ein 
Digitaloszi wäre hilfreich gewesen.

von Falk B. (falk)


Lesenswert?

@ Icke ®. (49636b65)

>> Umschalten auf Empfang den TXC (transmission complete) Interrupt
>> verwenden. Wenn der aktiv wird, ist das letzte Byte SICHER schon
>> rausgegangen.

>So die Theorie.

Und auch die Praxis, wenn gleich das kniffelig werden kann.

Beitrag "Re: Problem mit Micro-SD-Karte"

Beitrag "Re: Problem mit Micro-SD-Karte"


>..jedoch nicht datenblattkonform, obwohl MAX485 drauf steht. Und ja, ein
>Digitaloszi wäre hilfreich gewesen.

Ja, aber hier reicht ein einfacher, preiswerter Logic-Analyzer.

von Icke ®. (49636b65)


Lesenswert?

Falk B. schrieb:
> Und auch die Praxis, wenn gleich das kniffelig werden kann.
>
> Beitrag "Re: Problem mit Micro-SD-Karte"
>
> Beitrag "Re: Problem mit Micro-SD-Karte"

Danke für den Tip. Muß ich mir mal in Ruhe reinziehen.

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.