Dank CRC und ACK-Bit bei nur zwei Busknoten und ausschließlich getriggerten (nicht zyklischen) Frames: immer mit Lesen und Auswerten. Ist aber im MCP2515 in Hardware gegossen.
"Dank CRC und ACK-Bit bei nur zwei Busknoten und ausschließlich getriggerten (nicht zyklischen) Frames: immer mit Lesen und Auswerten. Ist aber im MCP2515 in Hardware gegossen."
Das ist mir zu viel technisch...
Und ja, Sufu schon benutzt aber ausschliesslich Projekte zum Auslesen oder Steuern gefunden....
Ich möchte einfach nur, dass sich das Radio einschalten lässt und eingeschaltet bleibt...
Grundsätzlich funktioniert das ja auch ohne canbus, aber einige Modelle rebooten kurz nach dem Android-Start wieder, wenn kein Can-Signal anliegt..
Das VW Selbststudienprogramm "SSP 269" (bitte lesen, kannste googeln) hat mir gerade verraten, dass VAG ab 2022 und ab Golf IV einen Lowspeed-CAN 100kbit/s im Infotainment einsetzt.
Dafür ist der MCP2515 eigentlich der falsche Transceiver, müsste aber dennoch für deinen Zweck funktionieren.
Mal ne ganz doofe Frage. Hast du Klemme 30 "Dauersaft" und Klemme 15 "Zündungsplus" beide angeschlossen? Nicht dass das Radio meint, Klemme 15 ist weg, Zündung aus, und geht deswegen wieder schlafen?
Andererseits, Benz-Variante, wahrscheinlich auch immer "elektronisches Zündschloss". Da bräuchte man genaues Wissen darüber, welche
Der Frame mit ID 0x0000, insbesondere dessen Bits 0...7 sind sehr interessant:
1
FRAME EZS_A1 (0x0000)
2
B: KL_15C_EIN, OFFSET 7 LEN 1 - Authentic key is inserted (position 0)
3
B: KL_15R_EIN, OFFSET 6 LEN 1 - Terminal 15R is switched on
4
B: KL_15_EIN, OFFSET 5 LEN 1 - Terminal 15 is switched on
5
B: KL_15X_EIN, OFFSET 4 LEN 1 - Terminal 15X is switched on
6
B: KL_50_EIN, OFFSET 3 LEN 1 - Terminal 50 is switched on
7
B: KG_KL_AKT, OFFSET 0 LEN 1 - Keyless Go terminal control active
8
...
Mit viel Glück passt das vielleicht für ein derartiges Benzradio, man muss nur alle virtuellen Klemme15-Bits und valider-Schlüssel-erkannt als eingeschaltet zyklisch senden.
Das dürfte ein Universal-Modell sein, dass sich nur durch den entsprechenden Adapter unterscheidet... Der Can-Bus Decoder ist da aber eingebaut....
Dazu muss ich noch sagen, das das Radio sowohl mit eine Benz und einem VW Adapter geliefert worden ist...
dass sich nur durch den entsprechenden Adapter unterscheidet...
Ich hab in dem Benzprojekt gesehen, dass da 2 CAN-Schmittstellen drin sind. Eine läuft mit 500kbit/s und eine mit 833kbit/s, das ist beides ein Highspeed-CAN.
Könnte mir vorstellen, dass im Adapter nur der Transceiver drin ist. Für Benz ein Highspeed-CAN-TRX, für VW ein Lowspeed-CAN-TRX.
Leider habe ich keine CAN-Database für den VW-Infotainment-CAN gefunden.
Mercedes-Benz Comfort-CAN ist Low-Speed, und zwar 83,333 kbit/s (nicht 833 kbit/s). Das kriegst Du mit einem 8 MHz Quarz aber nicht hin. Ich hab noch eine MCP2515 Platine mit TJA1055 und 16 MHz Quarz übrig falls Du brauchst.
Ok...
Hast du den Thread von Anfang gelesen?
Ich bin auf der Suche nach einer Lösung mit diesem Modul einen Can-Bus-Simulator zu basteln, der nichts anders machen muss, als ein Signal zu senden, dass ein Android Radio mit Can-Bus-Decoder eingeschaltet werden kann, wenn ich einen Schalter schließe (Zündung)
Du meinst mit einem High Speed CAN Transceiver einen Low Speed CAN Bus simulieren? Nein leider nicht. Lesen ginge noch im Eindrahtbetrieb, aber zum senden bräuchtest Du noch einen zusätzlichen Pegelwandler.
Du meinst mit einem High Speed CAN Transceiver einen Low Speed CAN Bus
simulieren? Nein leider nicht. Lesen ginge noch im Eindrahtbetrieb, aber
zum senden bräuchtest Du noch einen zusätzlichen Pegelwandler.
Im Fahrzeug würde ich das jetzt nicht machen, aber High- und Lowspeed-CAN zusammenhängen funktioniert. Siehe Anhang.
Bei dem Aufbau ist nur die interne Terminierung des TJA1054A aktiv, also 2x 50 kOhm.
D.h. wenn im Radio ein TJA1055 sitzt, auf der MCP-Platine die 120 Ohm ausmachen.
Ja also zumindest die Hardware, was die Software angeht kannst Du dieselben Bibliotheken verwenden, der MCP2515 ist ja der gleiche. Gut Versandkosten 6,49 € geht auch noch, die Platine kannst Du für 10 € bekommen.
Ich würde an Deiner Stelle erstmal Informationen über den CAN Bus sammeln, fang mit der Bitrate an.
Dann wären CAN-IDs wichtig. Für MB wurde Dir ja bereits Ashcon Mohseninia empfohlen, für VW SSP 269.
Wenn das Setup soweit steht, wäre der nächste Schritt erstmal CAN Bus sniffen. Vielleicht reicht ja schon ein Replay ohne irgendwas vom Inhalt zu verstehen. Sniffen sollte mit deinem Modul gehen, evtl nur den Quarz umlöten.
D.h. wenn im Radio ein TJA1055 sitzt, auf der MCP-Platine die 120 Ohm
ausmachen.
Richtig, die Terminierung bleibt in jedem Fall offen, da Du ja an einen bestehenden CAN-Bus ran gehst. Ich habe 5k6 drauf gelötet.
Vermutlich ist die Lösung aber viel einfacher: Der CAN-Bus legt sich schlafen indem die Pegel CAN-H von 3.6V auf -> 0V und CAN-L von 1.4V auf -> 5V wechseln. Ich vermute mal das Android Radio schaut einfach ob Spannung anliegt. In dem Fall reicht es aus, einfach einen nackten TJA1055 draufzuschalten der den CAN-Bus wach hält. Der wird nur mit STB und EN eingeschalten, dazu braucht es nicht mal einen µC.
Dann kannst Du Dir den ganzen CAN Quatsch sparen und es reicht ein Schalter (bzw könnte das Radio sich den selbst einschalten). Das kannst Du testen indem Du dem nackten Radio mal die dominanten Pegel vorgaukelst (natürlich nicht am Fzg CAN-Bus testen)
Dann passt das mit 83.333 kbit/s und die CAN IDs sind bekannt. Ich habe einen S211 ist im Prinzip das gleiche. Bei mir läuft zwar ein Teensy aber für Arduino oder ESP32 sollte das ebenso gut gehen.
CAN ID 0x0000 KL_15R_EIN wäre das Zündungssignal für Radio. Das sniffen ist aber unerlässlich da man nur eine komplette CAN Message senden kann und kein einzelnes Signal.
Vermutlich ist die Lösung aber viel einfacher: Der CAN-Bus legt sich
schlafen indem die Pegel CAN-H von 3.6V auf -> 0V und CAN-L von 1.4V auf
-> 5V wechseln.
Falsches Diagramm das sind die Standard-Pegel. Für den Schlafmodus wechselt CAN-H -> 0V und CAN-L -> 12V (bzw VBAT).
Wenn Du wirklich nur das Radio (ohne Auto) betreiben willst reicht also vielleicht ein Spannungsteiler 10k / 4k7 an CAN-L.