Forum: Mikrocontroller und Digitale Elektronik STM32 RS485 Bitfehler


von Martin (Gast)


Lesenswert?

Hallo,

ic habe an meinem STM32F040 einen RS485 Treiber IC. Manchmal kommt auf 
der Empfangsseite das erste Byte kaputt an; Mein Frame fängt immer mit 
0x1B (0b11011) an, aber manchmal kommt 0x36 (0b110110) an, also ein 0 
Bit mehr. Waran könnte das liegen?

Martin

von Andreas K. (andreasmc)


Lesenswert?

Musst du zwischen Senden und Empfangen umschalten? Wenn ja, wie lange 
wartest du zwischen umschalten auf Senden bis zum senden der Daten?

von Gerd E. (robberknight)


Lesenswert?

Schau mal mit dem Oszi vor und hinter dem RS485-Transceiver auf das 
Signal. Ist da was auffälliges zu erkennen oder ist das Signal sauber?

von Florian (Gast)


Lesenswert?

Schau Dir mit nem Scope mal auf einem Kanal den DIR Pin und auf einem 
anderen Kanal die RX Leitung an. Beim Empfang muss Dein DIR Signal auf 0 
liegen.
Wenn Du kurz vor dem Empfangen sendest kann es ev. sein, das Dein 
Transsceiver noch nicht im RX Mode ist.

Du kannst dann mal schauen ob Deine Baudrate (Bitfehler) passen oder zu 
sehr daneben liegen.

von Florian (Gast)


Lesenswert?

ACHTUNG:

Wenn Du mit dem Scope auf der RS485 Seite misst (Oszi GND an A und 
Tastkopf an B) musst Du potentialfrei messen! Also Schaltung mit Akku 
versorgen oder Scope am Trenntrafo.

Die Messungen die ich vorgeschlagen habe musst Du aber auf 
Controllerseite machen.

von Martin (Gast)


Lesenswert?

>wartest du zwischen umschalten
Gar nicht, mit den AVRs hat dass immer geklappt, vielleicht ist der STM 
zu schnell? Der Treiber sollte ja eigentlich in ein paar µS bereit sein, 
ich ich sende nur mit 9600 Baud.

Ich schaus mir mal mit dem Ossi an, vielleicht ist ja schon die 
Versorgungsspannung dreckig...

von Bernd (Gast)


Lesenswert?

Florian schrieb:

> (Oszi GND an A und Tastkopf an B)

GND and GND, CH1 an A, CH2 an B und dann y=CH1-CH2

von Bernd (Gast)


Lesenswert?

Failsafe falsch rum angeschlossen? Im Rugezustand muss D+ 200mV über D- 
liegen, nicht umgekehrt.

Die Bezeichnungen "A" und "B" sind Glückssache, die Hersteller würfeln 
bevor sie das an die Pins labeln, versuch stattdessen rauszufinden 
(notfalls mit dem Oszi) welcher D+ (nicht invertierend) und welcher D- 
(invertierend) sein soll, das ist weniger mißverständlich.

Der nicht-invertierende soll 200mV über dem invertierenden liegen.

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.