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
Musst du zwischen Senden und Empfangen umschalten? Wenn ja, wie lange wartest du zwischen umschalten auf Senden bis zum senden der Daten?
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?
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.
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.
>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...
Florian schrieb: > (Oszi GND an A und Tastkopf an B) GND and GND, CH1 an A, CH2 an B und dann y=CH1-CH2
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.