Forum: Mikrocontroller und Digitale Elektronik Nochmal RS485 Kommunikation


von Frank L. (franklink)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,
nachdem ich gestern meine Uart-Routine dank Eurer Hilfe ans laufen 
gebracht habe, habe ich jetzt noch ein Problem bei der Kommunikation, 
wenn die Kommunikation über die beiden RS485-Bausteine läuft.

Auf der Sender-Platine ist ein ATMEGA328 und ein SN75176 verbaut.
Auf der Empfänger-Platine ist ein ATMEGA88 und ein SN75176 verbaut.

Folgende Tests wurden gemacht:

1. Sender
Im Sender wurde die gleiche Empfangsroutine implementiert wie im 
Empfänger. RX und TX des ATMEGA wurden gebrückt. Funktion OK!

2. Empfänger
Im Empfänger wurde die gleiche Senderoutine implementiert wie im Sender. 
RX und TX des ATMEGA wurden gebrückt. Funktion OK!

3. Sender und Empfänger
Sender und Empfänger wurden direkt ohne die beiden SN75176 Bausteine 
verbunden. RX-Sender an TX-Empfänger und TX-Sender an RX-Emfänger. 
Funktion OK!

4. Sender und Emfänger
Die Richtungsumschaltung über PD2 wurde kontrolliert. Beim Senden LOW 
und beim Empfangen LOW. Funktion OK!

Setze ich jetzt die beiden SN75176 Bausteine ein und verbinde Data+ mit 
Data+ und Data- mit Data-, werden die übertragenen Daten vom Empfänger 
nicht verarbeitet.

Die Übertragung erfolgt im Modus 9n1 des Uart. S.h. hierzu uart.c und 
uart.h. Die Uart-Routinen sind bei Sender und Empfänger gleich.

Im Anhang Schaltplan von Sender und Empfänger, sowie die Uart-Routinen.

Gruß
Frank

von Frank L. (franklink)


Lesenswert?

Sorry, ein kleiner verschreiber:

4. Sender und Emfänger
Die Richtungsumschaltung über PD2 wurde kontrolliert. Beim Senden HIGH
und beim Empfangen LOW. Funktion OK!

Muss es natürlich heißen.

Gruß
Frank

von Dietrich L. (dietrichl)


Lesenswert?

Frank Link schrieb:
> 4. Sender und Emfänger
> Die Richtungsumschaltung über PD2 wurde kontrolliert. Beim Senden LOW
> und beim Empfangen LOW. Funktion OK!

Beim Senden sollte der Driver Enable doch High sein! Oder wie meinst Du 
das?

Und zum Abschalten des Empfängers: dann musst Du durch einen 
Ziehwiderstand für den richtigen Ruhepegel sorgen, damit bei 
Empfangsbeginn die richtige Flanke des Startbits vorhanden ist.
Aber warum nicht "Ein" lassen? Du kannst doch die mitgehörten Daten per 
SW entsorgen.

Gruß Dietrich

von Rigi Taler (Gast)


Lesenswert?

Verstehst du ueberhaupt was deine Software macht bzw machen muss, damit 
die Sache klappt. Es klappt nie per Zufall !

von Frank L. (franklink)


Lesenswert?

Rigi Taler schrieb:
> Verstehst du ueberhaupt was deine Software macht bzw machen muss, damit
> die Sache klappt. Es klappt nie per Zufall !

Ja, weiss ich...

von Frank L. (franklink)


Lesenswert?

Dietrich L. schrieb:
> Frank Link schrieb:
>> 4. Sender und Emfänger
>> Die Richtungsumschaltung über PD2 wurde kontrolliert. Beim Senden LOW
>> und beim Empfangen LOW. Funktion OK!
>
> Beim Senden sollte der Driver Enable doch High sein! Oder wie meinst Du
> das?
>
> Und zum Abschalten des Empfängers: dann musst Du durch einen
> Ziehwiderstand für den richtigen Ruhepegel sorgen, damit bei
> Empfangsbeginn die richtige Flanke des Startbits vorhanden ist.
> Aber warum nicht "Ein" lassen? Du kannst doch die mitgehörten Daten per
> SW entsorgen.
>
> Gruß Dietrich

Hallo Dietrich,
hatte ich in meinem zweiten Post korrigiert, war ein Schreibfehler.

Gruß
Frank

von Frank L. (franklink)


Lesenswert?

So, Problem hat sich gelöst...

Mein Steckbrett auf dem ich den Sender aufgebaut habe, hatte einen 
Wackelkontakt :-((

Gruß
Frank

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.