Forum: Mikrocontroller und Digitale Elektronik RS485 Problem Zeichen falsch empfangen


von Ersi (cell85)


Lesenswert?

Hallo,

ich hab ein Sparkfun RS485 Breakoutboard an meine STM32 USART2 
angeschlossen und an meinem PC ein Digitus RS485 zu USB Adapter dran.

Die Programmierung seitens STM32 stimmt schon mal, ich sende an den PC 
im 1 sekunden Takt, 0xdf und empfange im HTERM aber  01 00 (hex)   _ \n 
(ascii).
statt 0xdf, woran kann das liegen?

B geht an RS485+
A geht an RS485-
G an Ground

Am Oszi sah eigentlich auch alles normal aus.

Hat jemand einen Tipp?

Viele GRüße
Sven

von Frage (Gast)


Lesenswert?

Falsche Baudrate?

von Ersi (cell85)


Lesenswert?

Beim STM32 sowie beim HTERM sind 9600 baud eingestellt

von Frage2 (Gast)


Lesenswert?

Sven S. schrieb:
> Die Programmierung seitens STM32 stimmt schon mal

Woher weist Du das?
Bist Du mit einer UART->USB-Bridge schonmal direkt an den USART des STM 
dran und hast geschaut ob das stimmt?

von Frage3 (Gast)


Lesenswert?

Sven S. schrieb:
> Beim STM32 sowie beim HTERM sind 9600 baud eingestellt

Wie hast Du das überprüft?
Evtl. sind falsche CLKs oder falsche Baudratedivider eingestellt!

von Ersi (cell85)


Lesenswert?

Ja habs mit einem rs232 modul getestet gehabt ->geht. Auch das 
herumprobiern von 4800 bis zu 115200 hat nichts gebracht.

von Auch genannt... (Gast)


Lesenswert?

Sven S. schrieb:
> Auch das herumprobiern von 4800 bis zu 115200 hat nichts gebracht.

Du meinst in Verbindung mit dem RS485-Modul?


Sven S. schrieb:
> ich hab ein Sparkfun RS485 Breakoutboard an meine STM32 USART2

Dieses hier:
https://www.sparkfun.com/products/10124
???

Wie hast Du das Ganze genau beschaltet? --> Schaltplan zeigen
Was für Pegel hast Du an !RE und DE während des Senden eines Zeichens 
anliegen?
Nachgemessen?
Evtl. gibst Du den Outputtreiber des RS485 Bausteins während des sendens 
nicht frei?

von Frage4 (Gast)


Lesenswert?

Sven S. schrieb:
> B geht an RS485+
> A geht an RS485-

Warum sorum?
Im Datenblatt des SIPEX ist A positiv und B negativ:
https://www.sparkfun.com/datasheets/Components/General/sp3485CN-LTR.pdf

Es müsste also eher heißen:
A geht an RS485+
B geht an RS485-

von Ersi (cell85)


Lesenswert?

Genau das Modul, welches nur halb duplex kann.

Nein ich habe in HTERM die Baudrate geändert welches das USB<->RS485 
Modul beeinflusst.

Ich benutze die USART2 auch zum Lesen von GPS daten eines GPS Moduls, 
daher nehme ich mal an das seiten der UART alles korrekt abläuft.

Ich benutze am Sparkfun RS485 Modul folgende Beschaltung


USART2 TX -> RX
USART2 RX -> TX
PD3 -> RTS
VDD an 3-5V
GND an GND

dann von RS485 Modul-Spakrfun and RS485 Modul-PC
A  -> RS485-
B  -> RS485+
G  -> Ground
   -> 5V (hab ichmal unbeschaltet gelassen, macht kein unterschied ob 5V 
angeschlossen oder nicht)


Code

-> Init USART mit clocks etc.

Senderoutine:

PD3 high; //pin an RTS
sende zeichen 0xdf;
PD3 low;

von Ersi (cell85)


Lesenswert?

Frage4 schrieb:
> Sven S. schrieb:
>> B geht an RS485+
>> A geht an RS485-
>
> Warum sorum?
> Im Datenblatt des SIPEX ist A positiv und B negativ:
> https://www.sparkfun.com/datasheets/Components/General/sp3485CN-LTR.pdf
>
> Es müsste also eher heißen:
> A geht an RS485+
> B geht an RS485-

http://www.pci-card.com/rs485.gif

deswegen grml

ich teste das mal ... haha

von Feststellung1 (Gast)


Lesenswert?

Sven S. schrieb:
> deswegen grml

Da ist aber auch B der positive Ausgang.
Also gerade anderstrum wie im Datenblatt!

von Feststellung1 (Gast)


Lesenswert?

Sven S. schrieb:
> -> 5V (hab ichmal unbeschaltet gelassen, macht kein unterschied ob 5V
> angeschlossen oder nicht)

Wie?
An dem RS485-Baustein MUSS natürlich auch eine Versorgungsspannung 
anliegen!

Bevor Du ne lange Leitung dran machst und es geht 
nicht...Abschlusswiderstände hast Du auch drauf, oder?

von Feststellung2 (Gast)


Lesenswert?

>Feststellung1 schrieb:

Das sollte Frage5 sein :-)

von Ersi (cell85)


Lesenswert?

Ja das Modul hat selbstverständlich seine Versorgung! am USB-RS485 
Adapter war noch ein 5V Eingang welchen ich aber nicht beschaltet habe, 
weil er nicht nötig war für den Meter.

Widerstände sind auch dran.

Am Oszi war das differentielle Signal einwandfrei ersichtlich.

Ich muss einfach mal morgen A&B vertauschen... mal sehen ob es wirklich 
dieser dumme Fehler war.

von Feststellung3 (Gast)


Lesenswert?

Sven S. schrieb:
> Ja das Modul hat selbstverständlich seine Versorgung! am USB-RS485
> Adapter war noch ein 5V Eingang welchen ich aber nicht beschaltet habe,
> weil er nicht nötig war für den Meter.

Achso. Solange sie gemeinsame Masse haben...


Sven S. schrieb:
> Ich muss einfach mal morgen A&B vertauschen... mal sehen ob es wirklich
> dieser dumme Fehler war.

Jupp, vllt. lags daran.
Mit nem Schaltplan wär es Dir evtl. auch gleich ins Auge gesprungen ;-)

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.