Hallo
ich möchte ein Speicheroszilloskop kaufen um Telegramme in einem RS485
Bus mit MPI/Profibus Protokoll zu analysieren. Hier ein paar Daten zu
dem Bus:
http://www.wiki.elektronik-projekt.de/w/index.php/RS485_Bus
Das Oszilloskop muss vom Massepotential galvanisch getrennt sein, wegen
der Differenzmessungen (Messung Bus A gegen B).
Auf was muss ich Achten? Was für eine Frequenz muss das Oszilloskop
unterstützen usw.?
Danke schon mal...
mfg
Tobias
>Das Oszilloskop muss vom Massepotential galvanisch getrennt sein, wegen>der Differenzmessungen (Messung Bus A gegen B).
Nö. Dazu kann man 2 Kanäle benutzen und die von einander subtrahieren.
Oder gleich einen Differenz-Tastkopf benutzen.
Ich habe einfach den Line-In Eingang meines Notebooks benutzt, zeichne
mit einem Wav-Editor auf. Geht stundenlang, wenn's sein muß. ;-)
Der kann auch die Kanäle subtrahieren. Nach Konvertierung des
Stereosignals in Summe und Differenz kann man an der Differenz die Bits
sehen, aber auch die Summe ist nützlich, man kann die Treiberumschaltung
sehen. Kollisionen sind am ungewöhnlichen Pegel auch gut zu erkennen.
Bei 96kHz Samplerate ist das genau das 5-fache meiner Baudrate von 19200
Baud, sprich 5 Samples sind 1 Bit. Sehr schön abzählbar.
Ein Audioeingang kann allerdings kein DC. Bei den Bits macht das nichts,
hinter den Paketen sieht man einen "Entladungschweif". Ist aber nur
optisch, tut der Sache keinen Abbruch.
Viel einfacher waere es einen RS485 Transceiver auf Empfang zu stellen
und dann dessen Ausgang ueber einen Max232 an den RS232 des Notebooks
anzuheangen. Solche Umsetzter kann man auch kaufen. Ich kenn einen fuer
15 Euro.
Es kommt darauf an, ob es eher um den Inhalt geht, oder eher um die
Form.
Für den Inhalt braucht man einen RS485 Sniffer oder einen
Logikanalysator mit entsprechendem Dekodiermodul, ein Oszi ist da zu
anstrengend.
Für die Form hingegen braucht es einen Oszi, weder Sniffer noch
Logikanalysator werden verraten, dass grad 2 Transmitter sich
gegenseitig einheizen.
Hallo
Es geht um den Inhalt. Bei den Telegrammen auf dem Bus handelt es sich
um ein proprietäres Protokoll. Die Daten werden mit 1,5MBit/s
übertragen.
@Jörg Hohensohn: Der RS485 Bus arbeitet ja mit 5V. Kann das die
Soundkarte einfach so abhaben? Und der Bus hat ja so zu sagen DC. Ich
habe das hier gefunden:
http://lbsneu.schule-bw.de/unterricht/faecher/physik/mess/soundkarte/index.htm
Kann man das evtl. damit?
@2921 (Gast): Gibt es einen Link zu so einem Umsetzter?
mfg
Tobias
Bei 1,5 MBit kann man das mit der Soundkarte natürlich vergessen.
Der Vollständigkeit halber:
Der 5V-Pegel war kein Problem. Ich kann nicht für alle Soundkarten
sprechen, bei mir lies sich das gut einregeln, für ca. 2/3 Aussteuerung,
Clipping will man ja auch nicht.
0 dB "Normpegel" ist glaub ich +/-2 Vss, bei Auto-Hifi sogar 4Vss, die
5V unipolar liegen also in dieser Größenordnung. Etwas Übersteuerung
sollten sie schon abkönnen, Musiker gehen vermutlich auch nicht
zimperlich mit diesen Anschlüssen um.
Die AC-Kopplung ist wie gesagt kein Problem, wenn Bits kommen sieht man
ja die Wechsel. Für ein anderes Projekt hatte ich mir sogar mal einen
Integrator-Filter programmiert, der die AC-Kopplung wieder rausrechnet.
Da habe ich langsamere Vorgänge gemessen, im Sekundenbereich. Hier beim
RS485 brauchte ich den nicht.
hallo
Ja. Profibus habe ich erwähnt damit ihr einen Anhaltspunkt habt. Bei den
Protokollen die ich untersuchen muss handelt es sich um MPI und BTSS
(Siemens). Die bauen auf dem Profibus Protokoll auf bzw. sind ähnlich.
mfg
Tobias
Meine Umsetzer 485 nach 232 sind nur mit 250kBit Bausteinen bestueckt.
Bei Analog Devices gibt es schnellere. zB ADM485E. Die 1.5MBit kann man
dem PC nicht mehr zumuten, dh ich wuerd dann in einem Controller Puffern
und den dann langsamer ueber RS232 auslesen.
Bei uns hat sich für sowas das Fluke Scopemeter 196 bewährt. Schönes
"Baustellen Oszi" mit Akkubetrieb und galvanischer Trennung zwischen den
2 Kanälen. Leider nicht ganz billig.
@ 2922 (Gast): Mit welchem Controller kann man den Puffern? Kannst du
dazu nähere Informationen geben?
Wenn ich die Telegramme über einen Konverter auslesen könnte währe das
super, istn halt viel billiger und einfacher als mit einem Oszilloskop.
mfg
Tobias
Im Prinzip kann das fast jeder controller. Er muss nur genuegend RAM
haben. Es waere auch vorstellbar, den Controller auf Meldungen triggern
zu lassen und nur das noetige aufzeichenen zu lassen. Mein Arbeitspferd
ist der AVR Mega32 mit 2k RAM, aber ein PIC gleicher klasse kann das
auch.
Nimm einen ATMega324, der hat 2 serielle Schnittstellen. Die eine davon
an einen RS485 Empfaenger, zB ADM485E, an die andere an einen RS232
Treiber, zB einen ADM202E.
Warum so kompliziert?
FT232RL (oder den älteren BM) + ADM485E geht bis 3 MBit/s, darüber
hinaus
geht's dann nur noch mit deutlich mehr Aufwand (schneller Controller +
HiSpeed USB) und/oder teuren Adaptern (PCI, USB).
Der mega324 ist bei 1.5 MBit/s knapp an der Grenze des Machbaren.
UART im 2x Modus -> 12 MHz Takt und somit 8 Taktzyklen zur
Verarbeitung/Weiterleitung (zudem ist mir kein RS-232 Transceiver
bekannt der 1.5 MBit schafft)
> Der FT232RL konvertiert dann aber nach USB!? Das würde auch gehen.> Besser ist aber nach RS232.
Das wird nicht (stabil) funktionieren, da
- es, wie schon geschrieben, keine RS-232 Transceiver > 1 MBit/s gibt
- es, afaik, die RS-232 am PC und/oder auf PCI-Karten nur mit den
üblichen Baudratenquarzen gibt (7.3728 MHz / 14.7456) und diese
nur ganzzahlige Vorteiler kennt (14.7456 / 16/32/48) ausser man
tauscht den Quarz gegen einen passenden und probiert's aus...
Wenn in dieser Anwendung wirklich von RS-485 auf RS-232 konvertieren
soll, dann ginge es nur mit einem separaten Controller der auf
RS-485-Seite mit 1.5 MBit/s arbeitet, die Daten zwischenspeichert und
dann mit einer RS-232 üblichen Baudrate (z.B. 460800/912600 Bit/s)
weiterleitet.
Die Baudrate muss entweder der PC einstellen, oder man legt in der
Treiber-INF fest, dass alles was die PC-Software einstellt gleich 1.5
MBit/s ist (s.u. Abschnitt Aliasing).
Wenn eine galv. Isolierung notwendig sein sollte, entweder
RS-485-Treiber + separate Isolierung oder einen RS-485-Treiber mit
integrierter Isolierung nehmen (z.B. MAX1480(E)) oder gleich was
Fertiges z.B.
http://www.wut.de/e-36201-ww-dade-000.phphttp://www.ftdichip.com/Documents/AppNotes/AN232B-05_BaudRates.pdf
Hallo
Hab mich jetzt hier auf dem Board angemeldet.
Danke bis hier her für alle Antworten!! Muss mich jetzt erst mal in die
Thematik besser einarbeiten.
mfg
Tobias
Hallo
ich habe mir jetzt das Interface 38211 gekauft. Ich muss ja jetzt dem
FTDI FT232R Chip-Treiber über die FTDIPORT.INF die Baudrate einstellen
also 1,5Mbit/s. Bei dem RS485 Bus ist die Bitrate ja gleich der
Baudrate!?
Divisor ist somit:
3000000 / 1500000 = 2
In dem FTDI-Manual steht das die Divisoren 0 und 2 keine Sub-Integer
haben können. Was muss jetzt in die INF, vor allem in die Sektion
[FtdiPort232.NT.HW.AddReg] eingetragen werden so das der FTDI in dem
Interface auch mit 1,5MBit/s arbeitet?
mfg
Tobias