Forum: Mikrocontroller und Digitale Elektronik Problem bei USART über USB-RS485-Konverter


von BerndB (Gast)


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!

von ich (Gast)


Lesenswert?

Steht der RS485 Empfänger vieleicht auf senden?

von BerndB (Gast)


Lesenswert?

Nein, beide Assembler sind bis auf den HW-Pegelwandler die selben.

von ich (Gast)


Lesenswert?

genau das meinte ich auch. Ist der HW-Pegelwandler am Controller auf 
senden oder auf Empfangen. Ich gehe davon aus dass du den MAX232 o.ä. 
gegen den 75176 getauscht hast.

von Benjamin U. (utzus)


Lesenswert?

Am besten machst du mal ein Foto von dem Aufbau UND zeichnest uns einen 
schönen Schaltplan, so wie es angeschlossen IST.
Sonst wird das eher schwierig.

Grüße,
Benni

von ich (Gast)


Lesenswert?

nochmal verständlicher. Am 75176 müssen die Pins 2 und 3 LOW sein wenn 
du Empfangen willst

von BerndB (Gast)


Lesenswert?

Ja genau, Pin2+3 sind auf 0.

von BerndB (Gast)


Lesenswert?

Kann es an dem Konverter liegen?

von Benjamin U. (utzus)


Lesenswert?

Klar

von BerndB (Gast)


Lesenswert?

weil?

von Benjamin U. (utzus)


Lesenswert?

warum nicht?
Ich hatte mal einen gekauft und der war kaputt :D

Zeig doch mal nen Schaltplan, BITTE!!

von BerndB (Gast)


Lesenswert?

Danke, ich habe die Lösung gefunden.
Es muß de DMX-Anschluß tauschen, also DMX-PLUG Pin3 an PIN6 vom 75176
und DMX-PLUG Pin2 an PIN7 vom 75176.
DANKE!

von Benjamin U. (utzus)


Lesenswert?

sag ich ja :D

(Sowas hätte man halt nur im Schalplan gesehen, wenn überhaupt ;) oder 
im Foto vom Aufbau)

Schönen Tag!

von heinzhorst (Gast)


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.

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.