mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik RS485 stimmt das so


Autor: David (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich verwende als Master einen FT232RL mit MAX485, als Slaves verwende 
ich ATTINY2313 mit MAX485. Nun versuche ich schon verzweifelt das 
hinzukriegen aber das will irgendwie garnicht. 2-Draht A,B,GND 
verbunden. Ich habe mich auch totgegoglt, laut diesem Schaltplan sind 
die SLAVES DI<->TXD und RO<->RXD verbunden stimmt denn das so? Beim 
SLAVE ziehe ich DE und RE/ auf 5V wenn ich Daten schicken will, aber das 
Teil will nicht was mache ich falsch?

Danke schon mal.

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Teil will nicht was mache ich falsch?

Ein gern gemachter Fehler besteht darin den Ausgangstreiber zu frueh 
abzuschalten. Du musst ja jedesmal nach dem senden eines Bytes die 
Treiber wieder in den Lesemodus schalten. Dazu musst du in deinem 
Controller ja irgendein Bit abfragen damit du weisst das dein Byte 
gesendet wurde.
Aber es muss eben auch wirklich ganz gesendet sein und es darf nicht so 
sein das lediglich der Buffer der Senderoutine frei ist, aber das Byte 
gerade rausgetaktet wird.


Olaf

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und wie ist der RS485-Treiber an den FT232RL angeschlossen? Im 
Schaltplan taucht der FT232RL nicht auf.

Autor: Thilo M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Olaf schrieb:
> Aber es muss eben auch wirklich ganz gesendet sein und es darf nicht so
> sein das lediglich der Buffer der Senderoutine frei ist, aber das Byte
> gerade rausgetaktet wird.

Dafür wurde beim AVR der TX-Interrupt erfunden. ;-)

Autor: frankn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der TX-Int feuert aber schon wenn der Puffer frei ist, die UART-Hardware 
sendet da noch (wahrscheinlich gerade das Startbit).
Moeglichkeit 1: RC-Glied in den Steuerleitungen, Werte an die Baudrate 
angepasst,
Moeglichkeit 2: die Steuerleitung laenger Aktiv halten, mindestens so 
lange, wie das Zeichen gesendet wird:
Puffer frei (Flag oder Interrupt): Starte Timer
Timer deffinierten Wert erreicht: schalte Steuerleitungen,
Moeglichkeit3:
ein Zeichen mehr senden, dieses kommt aber eventuell beim Enpfaenger 
nicht richtig an, eventuelle Fehlerflags beim Empfaenger behandeln.

mfg Frank

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@frankn (Gast)

>Der TX-Int feuert aber schon wenn der Puffer frei ist, die UART-Hardware
>sendet da noch (wahrscheinlich gerade das Startbit).

Nö. Das ist der UDRE-Interrupt. Gemeint ist der TXC (Transmit Complete)
Siehe Artikel Interrupt.

MFG
Falk

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
R8C29 hat uebrigens wirklich ein Bit mit dem er sagen will das er mit 
dem Senden fertig ist. :-P


Ich musste aber auch feststellen das dies nicht 100% zuverlaessig ist. 
Genauer gesagt setzt er das nicht immer, aber manchmal schon wenn er das 
Stopbit ausgibt. Das fuehrt dann dazu das man den Treiber etwa beim 
halben Stopbit abschaltet wenn man nicht drauf achtet.

Olaf

Autor: Thilo M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schalte bei Halbduplexbetrieb (wie RS485) grundsätzlich den jeweils 
inaktiven Interrupt aus und lösche vor der Aktivierung das 
Interruptflag, dann feuert nix mehr.

Also vor dem Senden RX-INT abschalten und TX-INT-FLAG löschen.
Beim Empfang umgekehrt.

Einfacher gesagt: immer nur das direkt vorher aktivieren (und das 
INT-Flag löschen), was gebraucht wird.

Autor: Michael X. (Firma: vyuxc) (der-michl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: David (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Anbei die Schaltpläne für Master und Slave. Danke

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.