Kommunikation vom Raspbarry Pi mit ATMEGA16 über RS485

#3858241
Lesenswert?

Hy,
bin neu hier und habe mit der Programmierung von Python noch sehr wenig 
Erfahrung, daher bitte ich um Nachsicht.

Ich habe sitze jetzt schon seit ca. 3 Wochen daran, mit meinem Raspberry 
Pi eine Kommunikation mit einem ATMEGA16, über eine RS485 Verbindung, 
herzustellen.
Leider bisher nur mit sehr wenig Erfolg.

Ich habe auf dem Raspberry ein Programm laufen, welches eine Adresse 
(z.B. 5) in die Pipe schickt und das Modul, auf dem ein ATMEGA16 am 
laufen ist, soll sich erkennen, seine eigene Adresse nochmal zum 
vergleich zurück senden und dann einen Wert übermitteln.

Problem ist allerdings, dass das Modul nur bei 1 oder 80 reagiert und 
dann auch nur eine 80 zurück sendet (mit dem Wert lassen wir erst mal 
sein, da ich gerne erst mal das ansprechen hin bekommen will).

Habe es jetzt schon mit dem RasPi Comm und der UART-Schnittstelle (mit 
jeweils einem RS485-IC SN75176BP) versucht.

Meine Vermutung ist, dass ich mit pyserial kein startbit senden kann. 
Oder ich stelle mich zu dusslig an.

Da mir die Beiträge hier bisher immer sehr gut geholfen haben, hoffe 
ich, dass ihr mir auch bei diesem Problem helfen könnt.

Danke schon mal im Voraus.

Kay
Gast #3858397
Lesenswert?

Hallo Kay,

bist Du Dir sicher (geprüft!) das Deine Hardware richtig arbeitet? A und 
B Leitung richtig verbunden? Wird Dein Direction Pin (DIR) zur richtigen 
Zeit und ausreichend Lange angesteuert? Ist im Ruhezustand dein DIR auf 
"Empfang" geschaltet? hast Du ein Scope, mit dem Du die Signal ansehen 
kannst?
Ev. postest Du mal einen Schaltplan.

Erst wenn das alles richtig können wir uns die Software ansehen.

Gruß
Florian
#3858442
Lesenswert?

Hallo Florian,

vielen Dank für die schnelle Antwort

Hardware ist alles OK und richtig.
Auch das DIR ist richtig. Wie gesagt, mir dem RasPi Comm und über UART 
habe ich die gleichen Probleme bzw. das gleiche Fehlerbild. Wenn ich den 
ATMEGA einfach seine eingestellte Adresse (bei 1) lasse, empfängt das 
Raspi immer eine 80.

Wenn ich mir das ganze mit nem Ossi anschaue ist schon zu sehen, das 
mein Raspi kein Startbit sendet und mein ATMEGA16 erwartet es leider und 
sendet es auch mit raus.

Das Raspi sendet zb. eine 1 wie es sich gehört (nur leider ohne 
Startbit) und der ATMEGA auch (mit Startbit).

Ich kann auch gerne mal ein Foto machen von dem ganzen.

P.S.: Wenn ich zwei AMTEGA zusammenschließe und die Aufgabe vom Raspi 
(nur Verbindungsaufbau, Adresse prüfen, Wert übermitteln und Wert 
anzeigen über LEDs) von einem der beiden ATMEGA machen lasse, geht es. 
Weil beide mit Startbit arbeiten.

Nur pyserial will einfach kein Startbit senden und ich habe auch in 
keinem Forum was gefunden was mir weiter hilft.
#3858733
Lesenswert?

Bei einer RS485 Kommunikation soll auf beide Seiten (Sender und 
Epmfänger) jeweils einen UART<->RS485 Adapter vorhanden sein. Diese 
Adapter stellen sicher dass das Signal mit der gesendeten Polarität 
empfangen wird.
Hast Du auf beide Seiten jeweils einen Adapter?
Sind die RS485 Leitungen richtig (A->A, B->B) angeschlossen?
Wenn die Polarität nicht stimmt, dann kann nur A mit B gewechselt 
sein...

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