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
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
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 ;(
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 !
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 ;)
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)
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.