Ich bastele gerade an einem CAN-Bus Repeater, welchen ich als Filter nutzen möchte. Das erste Ziel wäre den Videoeingang vom MCA-Plus dauerhaft zu aktivieren, indem man dem Radio die Nachricht ID 433 sendet und darin D3.2 auf 1 setzt. Dazu muss der Repeater grundsätzlich alle Nachrichten vom Radio zum Auto und umgekehrt durchlassen. Wenn das klappt kann man untersuchen wie sich das Radio verhält, wenn man die ID mit dem R-Signal sendet und sich ein geeignetes Ereigniss dafür überlegen. Im einfachsten Fall erstmal per Taster.
Für den Versuchsaufbau habe ich auf einem Steckbrett einen Arduino Nano und zwei CAN-Shields mit MCP2515 Controller und TJA1050 Transceiver drauf zusammengebaut. Den MM-CAN hatte ich ja schon beim verlegen des Rückfahrkamerakabels am Radio aufgetrennt und ins Handschuhfach verlegt und mit einem Loop-Stecker versehen. So komme ich bequem dran und kann bei Bedarf den Normalzustand wiederherstellen.
Im Testaufbau habe ich den Bus zum Radio hin terminiert, zum Fahrzeug hin nicht. Die Software für den Arduino besteht aus einer CAN-Bus Lib und wenigen Zeilen Code. Immer wenn der MCP eine Nachricht vollständig empfangen hat, löst er einen Interrupt aus und zieht seine /INT Leitung auf Low. Das wiederrum erkennt die Software, liest die Nachricht via SPI aus und schreibt sie umgehend an das andere Interface. Das gleiche in der anderen Richtung.
Die Schaltung betreibe ich zunächst mit einem 5V Adapter im Zigarettenanzünder. Zunächst funktionierte die Schaltung einwandfrei, während der Fahrt verlor das Radio aber leider jede Minute den Kontakt und verschwand aus dem Convers. Ebenso setzte sich die Klima ständig zurück.
Schade, da muss ich wohl noch weiter tüfteln... so wie es aussieht gehen Nachrichten verloren. Und das obwohl auf dem MM-CAN vergleichsweise wenig los ist. Besonders die Nachrichten vom Radio zum Fahrzeug sind oft langsam und selten. Auch geht es da ja mit gemütlichen 125kbaud auf dem CAN zu Sache. Keine Ahnung wo jetzt das Problem liegt. Vielleicht in der Lib oder der Art der Ansteuerung.