Mindestkabellänge für RS-485 Leitungstransceiver SN65HVD1780P

Gast #5216704
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
#5216719
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.
Gast #5216722
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.
#5216730
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.
Gast #5216732
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?
Moderator (Firma: Titel) Persönliche Seite #5216743
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?
Gast #5216744
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...
Gast #5217125
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!
#5217821
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.
Gast #5218007
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.
#5218413
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.
#5218488
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.

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