mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Probleme mit RS485


Autor: Olaf Rechtner (gruser)
Datum:
Angehängte Dateien:
  • preview image for 1.jpg
    1.jpg
    54,2 KB, 263 Downloads

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe Probleme mit der RS485, der rechte Teil des Bildes ist in 
Ordnung, der TX-enable geht auf "1" (rote Kurve), und die Daten (die 
weiße Kurve, hier z.B. der Zahlenwert 170 bzw. binär 10101010) werden 
übertragen. Aber warum in aller Welt gehen beide Signale erst einmal auf 
logisch "1" am linken Bildrand? Das ist mir noch nicht ganz klar, hier 
der Code den ich in Visual Basic 2005 verwendet habe:

Sub Transfer(ByVal Wert)

        Using com1 As IO.Ports.SerialPort = 
My.Computer.Ports.OpenSerialPort("COM3")

            com1.Encoding = System.Text.Encoding.GetEncoding(28591)
            com1.BaudRate = 57600
            com1.DtrEnable = True
            com1.Parity = IO.Ports.Parity.None
            com1.WriteTimeout = 500
            com1.Write(Sendung, Wert, 1)
            com1.Close()

        End Using

    End Sub


Vielleicht hat wer eine Idee? Muss das so sein?

Grüße
Olaf

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Startbit.

MfG Spess

Autor: Stefan Roth (sero)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

bin ich richtig, das der lila Plot das Transmit enable ist, welches Du 
aus dem DTR der seriellen Schnittstelle generierst ?

Der Grund, warum Du vor dem eigentlichen Byte, was Du sendest, eine 
steigende und am Ende eine fallende Flanke hast wird das Start und das 
Stopbit sein, was Deine serielle Schnittstelle automatisch um das zu 
sendende Byte legt.


Viele Grüße
Stefan

Autor: Olaf Rechtner (gruser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Stefan,

ganz genau, mit "com.DtrEnable = True" wird der DTR-Ausgang entsprechend 
geschaltet, das scheint ja auch gut zu klappen. Die Übertragung der 
Daten (weißer Plot) erfolgt während der Master bzw. der PC den Bus auf 
Senden einstellt (lila Plot). Bei der Datenübertragung gibt es ein 
sauberes Startbit, ist hier auf dem Bildchen schlecht zu sehen. Aber was 
sich da links im Bild abspielt kann doch eigentlich kein Bit sein, 
schaut mal wie lang ein normales Bit dauert und wie lang dieses dann 
wäre, und dann die lange Pause bis zur eigentlichen Datenübertragung. 
Also für mich wäre die Welt eher in Ordnung wenn ich nur den rechten 
Teil gemessen hätte ;(

Autor: Stefan Roth (sero)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich weiss nicht so recht, aber der linke Teil des Oszi Schirmes 
sieht für mich aus, wie das Ende der vorher gehenden Übertragung, oder 
bist Du sich das Du nur ein Byte auf den Bus geschickt hast !

Autor: Olaf Rechtner (gruser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann eigentlich nicht sein, wenn ich ein Zeichen übertragen will, geht
DTR wie auf dem Bild zwei mal auf Senden. Wenn ich 3 Zeichen übertrage, 
geht DTR 6 mal auf Senden (bzw. logisch 1).

Wobei muss dir Recht geben, die billigen Oszilloskope triggern nicht
immer sauber, fürchte bin auch einer auf den der Spruch passt: Wer
billig kauft der kauft zweimal ;)

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was ist hier denn dargestellt?
Von einem RS485-Signal ist das bestenfalls die Hälfte, RS485 ist 
differentiell...
Und RS485 hat auch kein DTR, DSR usw. usf.
Auch ein PC mit einer COM3 hat vorrangig (wenn überhaupt) nur eine 
RS232.
Gibts zu dem Bild auch noch irgendwelche Skalenteilungen (V/div und 
Zeitbasis)?

>Aber warum in aller Welt gehen beide Signale erst einmal auf
>logisch "1" am linken Bildrand?
Die gehen nicht, die sind schon...

Der ist auch nicht schlecht:
 com1 As IO.Ports.SerialPort = 
My.Computer.Ports.OpenSerialPort(COM3)

Autor: Olaf Rechtner (gruser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lothar Miller wrote:
> Was ist hier denn dargestellt?
Das Versenden eines Bytes über eine RS485
> Von einem RS485-Signal ist das bestenfalls die Hälfte, RS485 ist
> differentiell...
Gemessen A (bzw. TX) gegen Masse
> Und RS485 hat auch kein DTR, DSR usw. usf.
Der Kanal DTR wird benutzt um TX_Enable zu schalten (zum Wechsel von 
Empfang auf Senden)
> Auch ein PC mit einer COM3 hat vorrangig (wenn überhaupt) nur eine
> RS232.
Das stimmt, mit entsprechenden Treiberbausteinen (MAX485) aber auch 
geeignet um RS485 Protokolle zu verwenden
> Gibts zu dem Bild auch noch irgendwelche Skalenteilungen (V/div und
> Zeitbasis)?
2V/div, Zeitbasis kann ich nicht mehr nennen
>
>>Aber warum in aller Welt gehen beide Signale erst einmal auf
>>logisch "1" am linken Bildrand?
> Die gehen nicht, die sind schon...
Stimmt nicht ganz, eine steigende Flanke war Triggersignal für Messung
>
> Der ist auch nicht schlecht:
>  com1 As IO.Ports.SerialPort =
> My.Computer.Ports.OpenSerialPort(COM3)
Ist nicht wirklich relevant, benutze Software auf verschiedenen Rechnern 
und habe unterschiedliche Schnittstellen, an der Benamung sollte es 
nicht liegen

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.