Problem bei USART über USB-RS485-Konverter

Gast #1976540
Lesenswert?

Geehrte Microcontroller Gemeinde,

ich habe eine SW entwickelt, die über eine RS232 Schnittstelle ein Byte 
zu
meinem ATmega32 sendet. Dieser empfängt dieses Byte via
USART-Interrupt und zeigt mir das Ergebnis an PORTA an meinem
STK-500 ohne Probleme an.
Sende ich dieses Byte allerdings über ein USB-485-Konverter und
einen Differential Bus Transceiver (SN75176) bekomme ich nur "Müll"
heraus.
Kennt jemand ddieses Problem und kann mir helfen?

Vielen Dank!
Gast #1976680
Lesenswert?

Hast du ein Oszilloskop oder einen Logic-Analyzer zur Verfügung? Wenn 
ja, dann lass dir mal untereinander das Tx-Signal von UART und den Drive 
Enable vom 485-Treiber darstellen. Und dann schau mal, ob der Treiber 
noch im Sendebetrieb ist wenn die letzten Bits aus dem UART 
rausgeschoben wenden. Hatte das Problem mal auf dem PIC16F877. Der 
Tx-Interrupt wird nämlich bei den meisten Controllern ausgelöst wenn ein 
neues Byte in das Tx-Register geschrieben werden kann und NICHT erst 
wenn das Transmit Shift Register leer ist. Das bedeutet, dass du den 
Pin, der mit dem DE-Eingang des 485-Treibers verbunden ist nicht im 
Tx-Interrupt auf Low setzen darfst. Stattdessen muss das Busy-Flag des 
UART abgefragt werden und dann erst darf der DE auf Low gehen.

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