Hallo zusammen, vor einiger Zeit habe ich schonmal was ähnliches gefragt, will aber jetzt nochmal konkreter fragen und erklären. Situation: Eine Platine und ein Diagnosegerät mit MB90F342CAS Mikrokontroller. Über ein RJ10 Kabel und Rs485 kommuniziert das Tool mit der Platine. Ich will die Kommunikation zwischen Tool und Platine so mitschnieden, das ich anschließend die Befehle für alle Funktioen über einen Laptop senden kann, und die entsprechende Antwort sehe. z.B. Fehlermeldungen auslesen oder aktueller Zustand von E/A Ports anzeigen, Parameter ändern etc. Versucht habe ich das mit einem RS485 Adapter (siehe Foto), dieser ist an eine selbst gelötete kleine Leiterplatte angeschlossen, eine RJ10 Buchse an die das Tool kommt, an die andere die Platine, dazwischen gehen dann Rx und Tx zu einem RS485 auf USB Adapter welcher dann an den PC angeschlossen ist. Mit einem Serial Port Monitor bekomme ich z.B. ""FF00AA44" angezeigt. Mein Problem ist wohl das ich nicht sehe welche Daten von Tool als Anfrage, und welche von Platine als Antwort kommen. Wenn ich im Terminal schaue, wird mir genau das in Klartext gezeigt, was das Tool anzeigt, deshalb gehe ich davon aus das Parity und Speed richtig eingestellt sind? Mit anderen Werten bekomme ich nämlich nur diverse Zeichen. Meine Frage ist nun welche möglichst kostengünstige Hardware ich benötige, um mein Ziel zu erreichen. Von den selbstgebauten Teilen und dem RS485 Adapter habe ich Bilder angehängt. Das Diagnosetool ist ziemlich "komplex" muss regelmäßig mit einer speziellen PC Software wieder freigeschaltet werden. Außerdem wäre interessant, ob jemand weiß wie die die Daten auf dem oben genannten Chip aussehen, ist das unterschiedlich? Zur Not könnte man, falls die Daten auf dem Chip verwendbar sind, diesen auch aus dem Tool auslösten und auslesen. Danke im Voraus
Sorry, für mich ist nicht verständlich, was eigentlich dein Problem ist. Wenn du die Zeichen korrekt empfängst, ist doch alles gut? Was ist jetzt noch falsch? RS485 ist idR Half Duplex, es gibt (ohne Hardware Flow Control) elektrisch keine Möglichkeit, zu erkennen wer sendet. Das wird normalerweise auf einer höheren Protokollebene ausgehandelt.
Am einfachsten dürfte es sein einen billigen RS485-Repeater zu adaptieren, also auf beiden seiten am Treiberbaustein jeweils einen ttl usb seriell wandler auf TX hängen.
Eigentlich ist das Ziel ja das ich die Befehle selbst senden kann (ohne das Tool) und dann die Antwort in Klartext angezeigt bekomme. Aber ich bekomme pro Funktion immer nur einen Code z.B "0A 11 F2 AA" ein Teil könnte die Anfrage des Tools sein, und ein anderer die Antwort. Dann müssen evtl. noch Timings eingehalten werden etc. und ich bekomme keine Reaktion wenn ich diesen Code an die Platine sende.
Kommst du mit einem Logicanalyzer oder Oszi bei einem der beiden Boards an den DE/RE PIN des RS485 Transceivers? Dann noch A/B oder einfacher DI/RO und dekodieren. Wenn dann der Aufbau feststeht kannst du zurück an den komfortableren USB-Adapter
Mit DIESEM Adapter wirst du nicht wirklich RS485 senden können. Der CH340 USB<->UART Chinesen IC hat kein TX Enable Ausgang. Daher ist das mit einem Monoflop rangefrickelt. (Es gibt sogar eine Variante ohne dieses Monoflop, das sieht dann auf dem Oszi eher nach CAN aus statt RS485) Je nach Baudrate kann der dann zu lange senden und die ersten Antwortbytes verschwinden. Nimm einne Adapter auf FT232 oder CP2102 Basis. Leider kann ich dir keinen kaufbaren empfehlen, weil ich sowas selber baue.
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.

