Hallo Thomas,
das Grundprinzip scheint dem Passat sehr ähnlich zu sein.
6C0 sind auf jeden Fall die Displaydaten, da ja alle Texte von Deinem Photo darin enthalten sind.
Um herrauszufinden, was die einzelne Controllbits für die Anzeige bedeuten, müsstest du ein eigenes Modul programmieren, dass genau die Daten aus deinem kleinen Log an
das KI sendet und Du zumindest erst mal die gleiche Anzeige erhälst, und dann kannst du mal einzelne Bits ändern.
Wenn Du die Möglichkeit hast ein eigenes Modul zu programmieren, dann würde ich erst mal folgendes probieren (RNS darf nicht am CAN-Bus dran sein):
1. Step: Das Modul muss sich im Ring anmelden, und zwar nach folgenden Prinzip:
- Nach einem Power ON (erstmaligen anklemmen der Versorgungsspannung) wartest Du solange, bist Du 5x die eine CAN-Message mit der ID=428 empfangen hast.
- dann sendest Du einmal:
436 6 16 02 C0 04 00 00 // RING-ID Navimodul : Statusmessage um sich im Ring anzumelden
// D0=16: eigene Adresse (16 + 420 = 436)
// D1=02: Status Gerät will in den Ring
// D2,D3: irgendwelche Status Bits
- nun reagierst Du nur noch auf die Message:
428 6 16 01 00 00 00 00 // Ring-ID KI: KI spricht das nächste Gerät im Ring an
// D0: Adresse vom nächsten Gerät im Ring (16+420 =436)
// D1: 01 = normale Ringmessage
und sendest dann als Antwort:
436 6 08 01 00 00 00 00 // Ring-ID Navigation: Navigation spricht das nächste Modul an ( da nur 2 Gerät im Ring sind, ist dies wieder das KI)
// D0: Adresse vom nächsten Gerät im Ring (KI) (08+420 =428)
// D1: 01=normale Ringmessage Gerät ist betriebsbereit)
ebenso sendest Du auf die Message:
6C1 2 A1 0F
die Antwort:
6C0 1 A3
Und bitte Deine 661 Message nicht vergessen, die muss auch noch zyklisch gesendet werden.
Dies sollte erstmal für Deine Tests ausreichen, dass der Ring normal läuft. Hinweis für später: Wenn die Zündung aus ist, müsstet Du bei D1 einen anderen Wert senden, damit der Bus in den Sleep-Modus gehen kann, dass müsstes Du aber erst mal seperat mit loggen).
Wahrscheinlich läuft jetzt aber noch kein Connectiontest zwischen 6c0 und 6c1, dies wäre dann der nächste Schritt, den Du lösen müsstest.
Wenn Du das mal soweit am laufen hast, dann meldest Du dich wieder hier und es folgendann weitere Informationen, wie du das ganze weiter programmieren kannst.
Trotzdem, vorab noch ein paar Infos zu den Displaydaten (vieles hierbei sind Annahmen und kein Wissen
, welche mir aber beim Passat weitergeholfen haben):
Der Datenaustausch mit dem Display läuft entweder mit einer Single Message oder über eine multipart message:
Single:
6C0 8 13 52 05 82 00 1B 40 30 // Single message 5 Datenbytes werden an das KI übermittelt
// D0: 0x13 Highnibble 1=Single message, Low Nibble= 3 = 3.Message
// D1: Datentype ob Cursurmessage=52,Textmessage=57
// D2: LEN: Anzahl der Datenbytes für die Message (incl. Options Bytes)
// D3-D5 Optionsbytes
// D6-D7 Textdaten
Multimessage: (Mehrer Displayzeilen auf einmal senden)
6C0 8 24 52 05 02 00 1B 40 30 // Multipart 1.Teil (Aufbau wie oben beschrieben) Cursurmessage=52, 5 Datenbytes ( 3 Optionbytes u. 2 Datenbytes)
6C0 8 25 57 07 06 00 01 2D 2D // 2.Teil Textmessage=57, 7 Datenbytes ( 3 Optionsbytes + 4 Datenbytes) ==> "----"
6C0 8 26 2D 2D 57 05 06 00 09 // 3.Teil Textmessage=57, 5 Datenbytes (3 Options + 2 Data)
6C0 8 27 65 65 57 05 06 00 09 // 4.Teil Textmessage=57, 5 Datenbytes (3 Options + 2Data) ==>
6C0 8 28 4B 4D 52 05 02 14 1B // 5.Teil ==> "km", Cursurmessage
6C0 8 29 2C 14 52 05 02 00 2D // 6.Teil Cursurmessage=52, 5 Datenbytes
6C0 3 1A 39 16
Das erste Datenbyte (High-Niblle) dient hier als Kennung für den Typ der Message: 2x = multipart message, x=fortlaufernder Zähler
Das Low-Nibble beinhaltet einen fortlaufenden Zähler mit dem die Kommunikation geprüft wird. Dieser Zähler wird dann auch für das Low-Nibble im Quittierungssbyte verwendet (Bx)
Jeder Datenblock wird vom KI quittiert:
6C1 1 BB // Quttierungs byte vom KI (Bx= LowNibble(vom letzten D0-Byte + 1): BB= B+ LowNibble(1A)+1
Ich hoffe mal, das reicht Dir erst mal für den Anfang. Ich brauche jetzt ne Pause :-)
Gruss
Andi
PS: Wer weitere Infos hat, bitte Bescheid geben
-