Ich grübele seit Tagen zusammen mit einem Bekannten über die Frage wie ich mittels AT-Kommandos eine kleine Sequenz in den CAN-Bus seines Fahrzeugs einspielen kann. Er hat einen CM327 (ELM-Clone) mit automatischer HS-/MS-CAN Bus Umschaltung. Hierzu hat der Adapter zwei TJA1050, die vermutlich nur über einen CAN-Controller des PIC2 angesteuert werden. Das ist auch ok, denn für diese einfachen Adapter reicht es wenn immer nur ein Bus aktiv genutzt wird. Laut meinen Informationen geschieht die Wahl des CAN-Busses mittels des RTS-Signals, welches man softwareseitig setzt. In den Geräten mit nachgerüsteter, automatischer Umschaltung (meist mittels Relais) wird dazu das Signal am UART (beim CM327 ist das der FTDI-Clone Chip) abgegriffen. Dennoch funktioniert es nicht. Mein Problem ist das der Bekannte keine weiteren elektronischen Fähigkeiten besitzt und ich keinen solchen Adapter habe um selbst mal ein paar Messungen zu machen. Daher meine Hoffnung das hier jemand mitliest der sich damit auskennt und weiss ob das mit der Umschaltung via RTS stimmt, oder da noch mehr zu tun ist? Die gesamte Initialisierung funktioniert, inkl. Wahl der richtigen CAN-Baudrate und ID-Länge, etc. Beim senden der Bytes kommt jedoch ein CAN-ERROR, was klar ist wenn versucht wird mit 125 kbaud (MS-CAN) auf einem 500 kbaud Bus (HS-CAN) zu senden.
:
Bearbeitet durch User
Inzwischen glaube ich fast das ich alles richtig mache, das nur das setzen des RTS-Signals im HTerm nicht dazu führt das dieses Signal auch im Adapter so ankommt. Den Treiber habe ich schon angeschaut und in den Einstellungen ist "Flusssteuerung" auf "Keine". So sollte HTerm eigentlich schon in der Lage sein das Signal zu stellen.
Bau doch einfach einen Adapter aus einem OBD Stecker und Buchse bei dem du die CAN-Leitungen manuell umschalten kannst. Oder kauf bei den Chinesen ein Lawicel Interface für 5(?) €
Ich habe zwar keinen CM327, aber einen TRE27 und der scheint mir dem CM sehr änhlich. Hier konnte ich nun endlich messen und auch mit meinem CAN-Sniffer überprüfen was raus kommt. Der RTS-Button von HTerm toggelt Pin 3 vom FTDI-Chip. Dennoch scheint das keine Wirkung zu haben. Auf dem PCB kann ich auch nicht erkennen oder messen das der irgendwo belegt wäre. Jedenfalls sendet der TRE27 immer auf den Pins für HS-CAN, egal welches Protokoll ich mit ATSP* einstelle (das richtige für mich wäre ATSPB für 125 Kbaut/11-Bit CAN-ID) und egal wie ich RTS setze. Auch DTR habe ich mal ausprobiert, kein Unterschied.
Ich denke jetzt hab ich selbst raus bekommen (wurde auch echt ein Monolog hier... ;-) Und zwar emuliert mein TRE27 (wird auch als ELS27 verkauf) mit seinem PIC2 nicht einen ELM327 Chip sondern einen STN1170 (was am Ende auch nur ein PIC2 mit anderem Aufdruck ist). Und der wiederum bietet neben einer ELM-Emulation auch einen eigenen Befehlssatz (ST... anstelle AT...) und besitzt sogar 3 CAN-Bus Anschlüsse, aber nur einen Controller. Er bietet für das interne umschalten einen eigenen Befehl an: "STP h" Wobei in meinem Fall "h" das Protokoll Nummer 53 ist (125 Kbaud, 11 Bit ID). Und siehe da, schon kommen die gesendeten Daten auch auf der richtigen Schnittstelle an. Für näheres dann bitte einfach nach dem Datenblatt zum STN1170 suchen.
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.