www.mikrocontroller.net

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


Autor: Basti (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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??

Autor: Helmut Lenzen (helmi1)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Basti (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Helmut Lenzen (helmi1)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beim AVR schon. Sogar per Interrupt möglich.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Basti (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.