Forum: Mikrocontroller und Digitale Elektronik Rs485 - ganz blödes Problem.


von Basti (Gast)


Lesenswert?

Kurze Info:
Versuchsaufbau, 2x Atmega88, Steckbrett, 2xMax487, alles 
Standardbeschalten.
Ich wollte erstmal rs485 testen, daher habe ich diesen Aufbau gemacht
Nun mein Problem:
der erste avr sendet per UART (1200 Baud) folgende byte-folge an den 
Max485.
"255,1,7,1,1,3,1,2,5,50,184".
das funktioniert auch. wenn ich mein UART-USB tool vom Rechner an den DI 
eingang halte bekomme ich genau diese sequenz angezeigt.
Halte ich "den rechner" an den RO ausgang des zweiten max485 bekomme ich 
nur
"255,1,7,1,1,3,1,2,5" beim zweiten durchlauf "50,184,255,1,7 etc"

habe ich da irgendwas nicht verstanden? muss ich immernoch zwei bytes 
einfach nachschicken??

von Helmut L. (helmi1)


Lesenswert?

Was du brauchst ist ein vernueftiges Uebertragungsprotokoll. Es muss ja 
schliesslich irgendwie entschieden werden wann wer senden darf. Auch 
sollte es nur einen Master geben.

Gruss Helmi

von Basti (Gast)


Lesenswert?

Nein das protokoll ist nicht das problem. Später in der finalen 
anwendung werde ich eine extra busy leitung mit einbauen. Im moment 
istnur ein Sender und ein Empfänger.

Und der Output den ich am PC ansehe ist nicht vom controller empfangen 
sondern direkt am Ausgangs-Pin des Max487. Ich dachte wenn ich ein Byte 
via Uart reinsende, muss es ja auch an der anderen Seite wieder 
rauskommen?? Das is lange Zeit vor übertragungsprotokoll und multimaster 
oder slave

von (prx) A. K. (prx)


Lesenswert?

Driver erst abschalten, wenn alle Bits raus sind (TXC). Nicht schon wenn 
das letzte Byte im Puffer gelandet ist und das vorletzte grad erst 
rausgeschoben wird.

von Helmut L. (helmi1)


Lesenswert?

Auch ist es nicht ganz einfach bei den meisten Uart zu erkennen wann das 
letzte Bit rausgeschoben worden ist und man den Treiber abschalten kann.

von (prx) A. K. (prx)


Lesenswert?

Beim AVR schon. Sogar per Interrupt möglich.

von spess53 (Gast)


Lesenswert?

Hi

>Auch ist es nicht ganz einfach bei den meisten Uart zu erkennen wann das
>letzte Bit rausgeschoben worden ist und man den Treiber abschalten kann.

Bei AVRs gibt TXC darüber Auskunft.

von Basti (Gast)


Lesenswert?

DANKE!!! Alles klar. Daran hatte ich gar nicht gedacht. Ein testweise 
eingefügtes waitms 20 hat erstmal geholfen! Da wär ich glaub ich nie 
drauf gekommen!

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.