Ich benutze eine Sipeed Combo 8 als logic analyser, um auf rs485 zu sniffen.
Denke aber, die Frage betrifft alle preiswerten Logic Analyswer.
Jedenfalls ist das mein Wunsch.
Dazu habe ich ein Verständniss-Problem:
Die Signale a und B sind doch Differenz-Signale.
Wie soll ich die in Pulseview parametrieren ?
Ich habe testweise D1 und D2 genommen, oder auch nur 1 Signal ( Ich weiss, ist eine Krücke!!)
Komme aber auf keinen sinnvollen Sniffer-Inhalt.
Wie parametriert man die beiden Signale zu einem Differenz-Signal ?
Geht das überhaupt ? Oder braucht mal einen rs485 - TTL Wandler dazu ?
Ich bin doch nicht der Erste, der vor dem Problem steht .....
Genau so. Da du sowieso mindestens 2 Teilnehmer haben wirst entweder hinter einem Treiber von denen oder halt mit einem eigenen Treiber. TX deaktivieren!
Edit:
Dein Logicanalyzer erwartet
1
Signal Input Range 0~3.6V
Rs485 ist definiert mit
1
mindestens ±1,5 V, höchstens ±6 V
Im Idealfall erkennt er also die Pegel nicht richtig. Worst Case geht er dabei Hops.
Die Signale a und B sind doch Differenz-Signale.
Wie soll ich die in Pulseview parametrieren ?
Miss mit einem Oszilloskop die tatsächlichen Pegel auf diesen Leitungen. Wenn die Pegel dort zu den Schaltschwellen des Logicanalyzers passen, dann reicht es aus, dort entweder A oder B einzulesen. Denn jede der beiden Leitungen trägt das Protokoll mit sich. Eine davon ist halt invertiert. Und du musst zum Decodieren idR. die Leitung nehmen, die im Ruhezustand high ist.
Wie parametriert man die beiden Signale zu einem Differenz-Signal ?
Muss man eigentlich nicht.
Geht das überhaupt ?
Das kommt auf die Möglichekteiten des LA drauf an. Wenn der programmierbare Schaltschwellen hat, geht das problemlos. Aber leider haben die billigen 8-Ch-LA sowas nicht.
Oder braucht mal einen rs485 - TTL Wandler dazu ?
Das wäre sicher die technisch korrekte Lösung hier.
BTW und nur aus Interesse: wo lernt man denn diese Plenkerei mit dem Leerzeichen vor dem Satzzeichen? Und warum macht man das dann nicht auch beim Punkt, wenn man es beim Fragezeichen macht?
wo lernt man denn diese Plenkerei mit dem
Leerzeichen vor dem Satzzeichen?
Im Französischen ist das üblich, nicht jedoch bei Punkt und Komma.
Tatsächlich gibt es sogar eine europäische Sprache, in der in bestimmten Fällen der Plural mit Apostroph-s gebildet wird, das ist das Niederländische.
Dort macht man das, wenn der vorangehende Vokal gedehnt ausgesprochen wird, wie z.B. in "baby's". Wird die Gedehntschreibung bereits durch einen Akut auf dem Vokal gekennzeichnet, entfällt der Apostroph (wie z.B. in "coupés").
Im Deutschen aber ist beides falsch und ein Zeichen schlechter Umgangsformen und/oder Bildung.
Das wäre sicher die technisch korrekte Lösung hier.
Was wäre an einem LA, der sich für RS485 passend konfigurieren läßt,
technisch nicht korrekt?
Das ordne ich jetzt einfach mal als "mutwilliges Missverständnis" ein. Denn natürlich ist ein LA, der einstellbare Schaltschwellen hat (oder gar die Differenz zweier Eingänge auswerten kann) technisch eine korrekte Lösung.
Aber hier geht es um die billigsten der billigen LA, die nicht mal den Hauch eines einstellbaren Einganngstreibers haben. Deshalb habe ich das explizit das Wort "hier" als Abkürzung von "in diesem speziellen Fall, wenn so ein billiger LA ohne einstellbare Schaltschwellen verwendet werden soll" eingefügt.
Der Combo 8 hat, laut Treiber SW im Pulseview einen einstellbaren
Schwellwert
Das steht aber nirgends in der Doku. Ich finde dort nur fixe 3V3 Schaltschwellen: "High and Low Level Thresholds VIH>2V VIL<0.8V". Es würde mich wie gesagt auch sehr wundern, wenn dieses simple Billigding sowas kann. Denn dieses Feature braucht extra Hardware und deshalb findet man es meist erst bei deutlich teureren Geräten.
kann wohl auch 5V verkraften.
Auch dazu finde ich nur den erwähnten "Signal Input Range 0~3.6V"
Der Combo 8 hat, laut Treiber SW im Pulseview einen einstellbaren
Schwellwert und kann wohl auch 5V verkraften.
Dann solltest du wie gesagt die tatsächlichen Spannungspegel am RS485 Bus mit einem Oszi ermitteln. Wenn du dann siehst, dass du mit definierten Pegeln innerhalb des erlaubten Eingangsbereichs des LA zu tun hast, dann sollte das gehen.
All das gesagte gilt doch dann auch für CAN ?
Im Prinzip ja, allerdings mit dem Problem, dass CAN einen deutlich "analogeren" Ruhepegel irgendwo in der Mitte der Versorgungsspannung hat.
(bei angepasster Baudrate!) ?
Dass zur erfolgreichen Decodierung die Baudrate passen muss, steht ausser Diskussion. Aber das Decodieren einer CAN-Nachricht ist dank Bit-Stuffing dann sowieso nicht mehr so einfach.
BTW: für solche Sachen habe ich mir an einem Schnäppchentag das kleinste Picoscope zugelegt. Und was muss ich sagen: solche Sachen sind damit ein kleines Kinderspiel, weil das Ding eben zuerst ein Oszi ist, das aber auch serielle Portokolle (darunter einige sehr ausgefallene) Decodieren kann.
@Lothar: Der Combo kann laut SW eine Schwellwert-Einstellung.
Ob es richtig funktioniert, kann ich aber noch nicht sagen.
@Lothar: Pico: hatte ich mir angesehen, konnte mich aber nicht entscheiden....zudem habe ich das Fluke 192 hier eh liegen....
Welches Pico hast Du ?
Teil2:
Der TTL-RS485 Wandler ist angekommen.
Aber nun wird der Berg der Fragen doch größer:
Wie anschliessen?
Es ist der TTL Max von Makershop
Auf der einen Seite: DI, DO, RE, RO
auf der anderen GND, A, B, VCC
alles als Stifte ausgeführt.
zusätzlich 2 Klemmen, unbeschriftet: könnte gem. Leiterplatte A und B sein
Anschluss:
A und B sind klar
Aber wie Spg an legen VCC und GND kann ich vom rasbi, oder vom LA holen, was mich verwundert: wieso sind dann aber A und B als Klemme ausgeführt, wenn ich VCC und GND auch brauche ?
Oder lebt der Wandler aus den Signal-Pegel ?
Aus meinem Verständnis brauche ich am LA nur den DO ?
Oder den RO ( seriell Out )
Aber was ist der Unterschied ?
OK, meine E-Technik Kenntnisse sind älter.....
Kann mir jemand einen Tipp geben ?
Ich will den Wandler ja nicht gleich zerschiessen....
Angenommen, ein Max485...
Dann nimmst du dir das Datenblatt des Max485 und machst dich kundig wie das Ding funktioniert.
Alle Anschlüsse werden in dem Datenblatt ausführlich beschrieben.
@ Arduino F Vielen Dank für die Info.
Leider helfen sie keinen deut weiter.
Wenn ich aus der Kurzbezeichnung klug geworden wäre, hätte ich nicht gefragt.
Und wenn sich mir die Logik erschlossen hätte, hätte ich auch nicht gefragt.
Wenn die Spg Vers. und GND von der TTL Seite eingespeist würden, hätte ich es verstanden. Werden aber auf der RS485 Seite angeschlossen....
Wenn ich das aber mache, leutete die RX Led auf dem Zihatec HAT mit Dauerlicht....
Die Versorgung vom Raspi zu nehmen, macht aber doch auch keinen Sinn, weil der Zihatec Hat isolierte A/B Leitung hat. Das Bezugspotential ist damit nicht erkennbar.
Wenn ich nur A +B anschliesse, verstehe ich nicht wogegen ich messen soll, weil ich keinen Gnd habe...
Frage: Gibt es diese Wandler immer für beide Richtungen ?
Wenn ich zurück zu Lothar Vorschlag gehe, nur den "unteren" Kanal auflegen, ohne Wandler, sehe ich was, nur leider hat da dann die Decodierung nichts mit der Realität zu tun....
Also brauche scheinbar schon den Wandler.....
Aber ich verstehe ihn (noch immer) nicht.
Die Makershop Seite gibt auch keine Infos.
@Lothar Im Treiber für den Sipeed Combo 8 ist eine Einstellmöglich gegeben, siehe Foto
Ersten: Die Pin Bezeichnung des IC lässt nur begrenzt Rückschlüsse auf die Platine zu. OK, hier ist es noch einfach, aber nur begrenzt verwendbar, weil Kapazitäten und Widerstände und weitere Komponenten NICHT berücksichtigt sind.
Und ich gehe davon aus, das sie eine Funktion haben..
Wie ich beschrieben hatte.....ist es mir nicht möglich, aus der Pin Beschreibung Rückschlüsse auf die An-Schaltung zu ziehen.
Siehe hierzu meine Ausführungen zum Thema Spg-Versorgung / GND...
Soweit dazu.
Aber vielleicht hat jemand einen weiterführenden Hinweis
Die Lösung von Lothar: unteres Signal nur benutzen hat nicht funktioniert.
Ich habe es nicht verstanden, wieso es nicht geht, den pulseview zeigt sehr wohl Ergebnisse an, aber diese waren falsch!! Z.B. wurde die Id's nicht richtig dargestellt. Statt der richtigen 201 wurde 128 angezeigt.
Einstellungen big/little Endian, Invertierung des Signals, Schwellen haben zu keinem Erfolg geführt.
Ich habe dies abgebrochen.
485Max: Hier war es erfolgreicher!
In einem anderen Portal gab es eine Beschreibung des gleichen Konzeptes:
Man muss DE und RE auf GND legen und den Wandler mit 3.3V versorgen.
Die Versorgungs-GND ist gleichzeitig GND für die TTL Potentiale.
Es wird das Entfernen des Abschlusswiderstandes (R7) empfohlen, dies habe ich - noch - nicht gemacht, konnte aber im Testaufbau keine Nachteile feststellen.
Werde dies aber noch vornehmen.
@Lothar Im Treiber für den Sipeed Combo 8 ist eine Einstellmöglich
gegeben, siehe Foto
Danke für jeden Tipp....
Probier doch einfach mal aus, ob dieser Schieberegler überhaupt bis zur Hardware durchkommt: einfach mal auf "1V" stellen, dann mit einem Poti Spannungswerte um 1V einspeisen und schauen, ob sich am Bildschirm was tut. Und dann das selbe mit "4V" machen. Ich behaupte, dass da keine Änderung der tatsächlichen Schatschwelle zu sehen ist.
Man muss den Ausgangstreiber ausschalten und den Eingangstreiber aktivieren. Dazu muss man den high aktiven DE und den low aktiven /RE (oder RE# oder nRE) auf GND legen.
@Harald Ja, als0 ich habe 3.3 und GND aus dem Combo 8 auf den Wandler angeschlosssen. Und den GND dann auf RE und DE gebrückt
Mir war lange Zeit nicht klar, ob ich die Spg vom der RS485 Seite oder von der TTL Seite nehmen soll. Habe dann die TTL Seite genommen.
@Arduino: Noch mal extra nachgemessen: Ich habe 3.3V verwendet! Wobei zu beachten ist: Ich nutze den 485Max ja als Sniffer. d.h. er sendet nicht auf dem Rs485 sondern ausschliesslich auf der TTL Seite. Mir war nicht klar, ob ich dm Combo 5V zumuten darf..... Aber ich kann es ja mal testen.....
Noch mal extra nachgemessen: Ich habe 3.3V verwendet! Wobei
zu beachten ist: Ich nutze den 485Max ja als Sniffer. d.h. er sendet
nicht auf dem Rs485 sondern ausschliesslich auf der TTL Seite.
Deine Argumentation scheint dir logisch erscheinen!
Aber ist sie das auch?