FIS Textanzeige / Vialle LPG Gasanlage Tankstand über FIS anzeigen
Hi all,
nach langer Entwicklungszeit habe ich endlich mal ein Video über eins meiner Projekte gedreht, um euch das Projekt mal vorzustellen.
Da ich bei mir eine Vialle Gasanlage verbaut habe und diese Anlage nicht mit den übrigen Fahrzeugsystemen integriert ist, braucht man normalerweise ein extra Bedienteil im Innenraum, welches den Tankstand mittels 5 LEDs anzeigt und über einen Taster erlaubt von Benzin- auf Gasbetrieb (bzw. umgekehrt) umzuschalten.
An dem Bedienteil hat mich
a) gestört, dass es als "Fremdkörper" im Innenraum sichtbar ist (z.B. blaue LEDs ...)
b) dass es den Tankstand nur in sehr groben Schritten anzeigt
c) dass es mir nicht angezeigt hat, wenn die Gasanlage unter hoher Motorlast temporär zurück auf Benzinbetrieb schaltet (die Regeln, wann und auf basis welcher Parameter die Lastumschaltung geschieht, kann man in der Anlage programmieren - leider ohne Anzeige am Bedienteil, wann sie greifen)
In meiner naiven Denkweise hatte ich zuerst geplant das Bedienteil durch einen Mikrocontroller abzulösen, welcher mit einem Taster in der Mittelkonsole gesteuert wird, der auch eine LED enthält und darüber den Status anzeigt.
Die Tankanzeige wollte ich eigentlich über durch den Mikrocontroller simulierte Tankgeber zum Kombiinstrument hin realisieren. (bei Benzinbetrieb Anzeige des Benzintankstands / bei Gasbetrieb Anzeige des Gastankstands)
So weit so gut ... also habe ich damit angefangen und musste folgendes feststellen:
1) die Bedieneinheit der Gasanlage wird digital mit Daten versorgt (z.B. auch den Tankstand)
2) das KI erlaubt nur bei einem Stillstand von mehr als 10 Sekunden eine von der normalen Mittelwertsberechnung (die Anzeigeschwankungen während der Fahrt elemeniert) losgelöste Einstellung des neuen Tankstandes
Das Vialle Protokoll hat mich dann erst einmal 2 volle Wochen beschäftigt, bis ich es decodiert hatte und im eigenen Mikrocontroller nachgebaut hatte.
Die Tankstandanzeige hat es dann leider nötig gemacht am ursprünglichen Plan eine Änderung durchzuführen. Ich habe mir dann halt überlegt, dass es ja auch ganz nett wäre, den Tankstand im FIS anzuzeigen 🙂
Beim 4B wäre das noch sehr einfach gewesen. Leider nicht beim 4F ... aber das konnte ich da ja noch nicht wissen ... 😉
Nächster Schritt war der Bau einer CAN-Bridge mit dem Mikrocontroller. Zwei CAN-Busse, den Mikrocontroller zwischen KI und CAN-GW, wobei der Mikrocontroller alles was auf Bus #1 empfangen wird auf Bus #2 rausschickt und umgekehrt.
Gesagt, getan - eine weitere 1 Wochen später hatte ich das dann auch fertig. Hat eine Woche gedauert, da ich auf dem Weg feststellen musste, dass es mit Zündplus für die Schaltung an der Stelle leider nicht getan ist. da das KI auch ohne Zündung noch kommunizieren können muss, was Dauerplus nötig gemacht hat - leider verbunden mit der Anforderung eines extrem niedrigen Ruhestromverbrauches. (Sleep Modi, auch für die CAN Teiber / den CAN Controller / den Mikrocontroller etc.)
Nächster Schritt das FIS Protokoll ...
Ich dachte eigentlich, dass es mit dem Umschreiben von CAN Messages getan ist, weil diese regelmässig über den Bus - und damit über den Mikrocontroller - geschickt werden und den angezeigten Text enthalten.
Dem ist leider nicht so 🙁
Die Kommunikation ist an der Stelle schon wirklich sehr gut gelöst. Es wird nichts unnötiges über den Bus geschickt.
Man kann sich die Kommunikation ähnlich wie beim TCP Protokoll im Internet vorstellen - jedenfalls was die Sequenznummern in den FIS Datenpaketen angeht.
Bei einem Protokoll, welches Sequenznummern verwendet, ist es leider nicht möglich einfach zusätzliche Nachrichten einzufügen, ohne die Sequenznummern zu stören. Die Kommunikationspartner stellen sofort fest, dass da irgendetwas in der Kommunikation nicht stimmt, weil die Sequenznummern nicht mehr zu der Anzahl der empfangenen/gesendeten Nachrichten passen.
Das FIS quittiert ein Fehler im Sequenznummernzyklus mit einem Reset ... sehr unschön, da das FIS für eine lange Zeitspanne komplett schwarz wird, bis sich das Protokoll zum MMI wieder vollständig neu aufgebaut hat.
Ok ... weiter im Text ...
Bei einem solchen Protokoll gibt es nur die Möglichkeit eines sogenannten "man in the middle" Angriffs. (falls man hier von einem Angriff sprechen möchte ... ich wollte doch einfach nur meinen Tankstand anzeigen lassen ... *g*)
Glücklicherweise hatte ich das Design ja aber sowieso schon als CAN Bridge mit dem Mikrocontroller in der Mitte ausgelegt 🙂
Hat mich zwar einige Nerven gekostet, aber mit dem nötigen Zeiteinsatz habe ich das schliesslich dann auch noch alles in den Griff bekommen. (ich gehe hier nicht auf weitere Hürden ein, die zu nehmen sind ...)
Den Mittelkonsolentaster habe ich mit einer RGB-LED versehen. Ist ein blanko-Sonderfunktionstaster, dessen Kappe normalerweise nicht beschriftet ist. Die Kappe habe ich mir gravieren lassen. Man kann keinen Unterschied zu den normalen Mittelkonsolentastern feststellen.
Die Information, ob mein Dicker wirklich auf Gas oder Benzin läuft habe ich mir von jeweils einer Einspritzdüse geholt. Ich denke mal dort kann man 100% sicher sein, auf was gerade gefahren wird ...
So - kommen wir zu dem, was hier wahrscheinlich die Meisten mit sicherheit eh nur interessieren wird ... dem Video, welches die Lösung in Aktion zeigt.
Man könnte nun mit der Lösung auch sehr nette andere Sachen machen:
- Tachoangleichung über den µC
- Anzeige von beliebigen Werten/Texten im FIS (von Daten die über den CAN zum KI fliessen oder über den µC extern geholt werden)
- mit ziemlicher Sicherheit auch weitere Ebenen im Bordcomputer realisieren (wie die Ebenen, die man über die Mode-Taste ansprechen kann)
- Eingaben über den Bordcomputer-Lenkstockschalter realisieren (wenn man die BC Lenkstocktaster länger drückt und wieder loslässt, dann wird kein normaler Event ausgelöst ... dieses lange Drücken könnte der µC auswerten und dann etwas machen)
So viel erst einmal dazu .... hoffe ich bin nicht zu sehr meinem Schreibfluss erlegen und habe euch nicht zu sehr gelangweilt 😉
Kai
Beste Antwort im Thema
Hi all,
nach langer Entwicklungszeit habe ich endlich mal ein Video über eins meiner Projekte gedreht, um euch das Projekt mal vorzustellen.
Da ich bei mir eine Vialle Gasanlage verbaut habe und diese Anlage nicht mit den übrigen Fahrzeugsystemen integriert ist, braucht man normalerweise ein extra Bedienteil im Innenraum, welches den Tankstand mittels 5 LEDs anzeigt und über einen Taster erlaubt von Benzin- auf Gasbetrieb (bzw. umgekehrt) umzuschalten.
An dem Bedienteil hat mich
a) gestört, dass es als "Fremdkörper" im Innenraum sichtbar ist (z.B. blaue LEDs ...)
b) dass es den Tankstand nur in sehr groben Schritten anzeigt
c) dass es mir nicht angezeigt hat, wenn die Gasanlage unter hoher Motorlast temporär zurück auf Benzinbetrieb schaltet (die Regeln, wann und auf basis welcher Parameter die Lastumschaltung geschieht, kann man in der Anlage programmieren - leider ohne Anzeige am Bedienteil, wann sie greifen)
In meiner naiven Denkweise hatte ich zuerst geplant das Bedienteil durch einen Mikrocontroller abzulösen, welcher mit einem Taster in der Mittelkonsole gesteuert wird, der auch eine LED enthält und darüber den Status anzeigt.
Die Tankanzeige wollte ich eigentlich über durch den Mikrocontroller simulierte Tankgeber zum Kombiinstrument hin realisieren. (bei Benzinbetrieb Anzeige des Benzintankstands / bei Gasbetrieb Anzeige des Gastankstands)
So weit so gut ... also habe ich damit angefangen und musste folgendes feststellen:
1) die Bedieneinheit der Gasanlage wird digital mit Daten versorgt (z.B. auch den Tankstand)
2) das KI erlaubt nur bei einem Stillstand von mehr als 10 Sekunden eine von der normalen Mittelwertsberechnung (die Anzeigeschwankungen während der Fahrt elemeniert) losgelöste Einstellung des neuen Tankstandes
Das Vialle Protokoll hat mich dann erst einmal 2 volle Wochen beschäftigt, bis ich es decodiert hatte und im eigenen Mikrocontroller nachgebaut hatte.
Die Tankstandanzeige hat es dann leider nötig gemacht am ursprünglichen Plan eine Änderung durchzuführen. Ich habe mir dann halt überlegt, dass es ja auch ganz nett wäre, den Tankstand im FIS anzuzeigen 🙂
Beim 4B wäre das noch sehr einfach gewesen. Leider nicht beim 4F ... aber das konnte ich da ja noch nicht wissen ... 😉
Nächster Schritt war der Bau einer CAN-Bridge mit dem Mikrocontroller. Zwei CAN-Busse, den Mikrocontroller zwischen KI und CAN-GW, wobei der Mikrocontroller alles was auf Bus #1 empfangen wird auf Bus #2 rausschickt und umgekehrt.
Gesagt, getan - eine weitere 1 Wochen später hatte ich das dann auch fertig. Hat eine Woche gedauert, da ich auf dem Weg feststellen musste, dass es mit Zündplus für die Schaltung an der Stelle leider nicht getan ist. da das KI auch ohne Zündung noch kommunizieren können muss, was Dauerplus nötig gemacht hat - leider verbunden mit der Anforderung eines extrem niedrigen Ruhestromverbrauches. (Sleep Modi, auch für die CAN Teiber / den CAN Controller / den Mikrocontroller etc.)
Nächster Schritt das FIS Protokoll ...
Ich dachte eigentlich, dass es mit dem Umschreiben von CAN Messages getan ist, weil diese regelmässig über den Bus - und damit über den Mikrocontroller - geschickt werden und den angezeigten Text enthalten.
Dem ist leider nicht so 🙁
Die Kommunikation ist an der Stelle schon wirklich sehr gut gelöst. Es wird nichts unnötiges über den Bus geschickt.
Man kann sich die Kommunikation ähnlich wie beim TCP Protokoll im Internet vorstellen - jedenfalls was die Sequenznummern in den FIS Datenpaketen angeht.
Bei einem Protokoll, welches Sequenznummern verwendet, ist es leider nicht möglich einfach zusätzliche Nachrichten einzufügen, ohne die Sequenznummern zu stören. Die Kommunikationspartner stellen sofort fest, dass da irgendetwas in der Kommunikation nicht stimmt, weil die Sequenznummern nicht mehr zu der Anzahl der empfangenen/gesendeten Nachrichten passen.
Das FIS quittiert ein Fehler im Sequenznummernzyklus mit einem Reset ... sehr unschön, da das FIS für eine lange Zeitspanne komplett schwarz wird, bis sich das Protokoll zum MMI wieder vollständig neu aufgebaut hat.
Ok ... weiter im Text ...
Bei einem solchen Protokoll gibt es nur die Möglichkeit eines sogenannten "man in the middle" Angriffs. (falls man hier von einem Angriff sprechen möchte ... ich wollte doch einfach nur meinen Tankstand anzeigen lassen ... *g*)
Glücklicherweise hatte ich das Design ja aber sowieso schon als CAN Bridge mit dem Mikrocontroller in der Mitte ausgelegt 🙂
Hat mich zwar einige Nerven gekostet, aber mit dem nötigen Zeiteinsatz habe ich das schliesslich dann auch noch alles in den Griff bekommen. (ich gehe hier nicht auf weitere Hürden ein, die zu nehmen sind ...)
Den Mittelkonsolentaster habe ich mit einer RGB-LED versehen. Ist ein blanko-Sonderfunktionstaster, dessen Kappe normalerweise nicht beschriftet ist. Die Kappe habe ich mir gravieren lassen. Man kann keinen Unterschied zu den normalen Mittelkonsolentastern feststellen.
Die Information, ob mein Dicker wirklich auf Gas oder Benzin läuft habe ich mir von jeweils einer Einspritzdüse geholt. Ich denke mal dort kann man 100% sicher sein, auf was gerade gefahren wird ...
So - kommen wir zu dem, was hier wahrscheinlich die Meisten mit sicherheit eh nur interessieren wird ... dem Video, welches die Lösung in Aktion zeigt.
Man könnte nun mit der Lösung auch sehr nette andere Sachen machen:
- Tachoangleichung über den µC
- Anzeige von beliebigen Werten/Texten im FIS (von Daten die über den CAN zum KI fliessen oder über den µC extern geholt werden)
- mit ziemlicher Sicherheit auch weitere Ebenen im Bordcomputer realisieren (wie die Ebenen, die man über die Mode-Taste ansprechen kann)
- Eingaben über den Bordcomputer-Lenkstockschalter realisieren (wenn man die BC Lenkstocktaster länger drückt und wieder loslässt, dann wird kein normaler Event ausgelöst ... dieses lange Drücken könnte der µC auswerten und dann etwas machen)
So viel erst einmal dazu .... hoffe ich bin nicht zu sehr meinem Schreibfluss erlegen und habe euch nicht zu sehr gelangweilt 😉
Kai
111 Antworten
Hallo,
ich habe erstmal den Transseiver MCP2551 mit 47K RS Widerstand zur Anpassung an die 100KBit des CAN, angefeuert von dem MCP2515 CAN Controller.
Wenn ich an CAN 0 (vom Auto) einen weiteren 120OHM Widerstand setzte geht der CAN in die Knie und sendet nicht mehr was die Annahme der Sterntopologie noch weiter stützt. Ob das BNS 5.0 nun eine eigenen Terminierungswiderstand hat oder vielleicht garkeinen habe ich noch nicht gemessen.
Oder ob man da besser mit einem 60 OHM arbeitet ??? danke für jeden Tipp.
Gruß
Schorsch
Ich habe PCF irgendwas verwendet.
Mist ... ich grübel schon die ganze Zeit ...
Ich meine ich hatte einen ähnlichen Effekt.
Wenn ich mich noch recht ensinne war es dieser Rs Widerstand. Beschwören möchte ich es aber nicht - ist einfach zu lange her.
Die Schaltung kann ich auch nicht so einfach rausnehmen, weil sie hinter dem Handschuhfach verbaut ist, sonst hätte ich den Widerstandswert mal eben nachgesehen.
Versuch mal auf Highspeed zu stellen.
Spannungsversorgung auf den CAN Bus habe ich nicht gelegt. Da bin ich mir absolut sicher.
120 Ohm habe ich am Ende jeweils terminiert.
Die KI Verbindung ist aber ja nur zwischen CAN-GW und KI. Es hat bei mir auf jeden Fall auch ohne Terminierung funktioniert - dachte aber schaden tut es nicht "ins Unendliche" zu Verlängern.
MCP2515 verwende ich auch zwei Stück - klar, ist ja in dem Umfeld auch Standard.
Hallo,
das was ich sagen wollte war, wenn ich in die Verbindung zwischen KI und meiner CAN Brücke einen 120 Ohm Widerstand einbringe hört die Kom. abprupt auf. Also auf der KI zu CAN Brücke nur den MCP2551 angeklemmt und den 120er wieder raus. Auf der anderen Seite CAN Brücke zu Radio gibt es die Probleme. Nach ein paar Frames hört das Radio einfach auf zu senden. Wenn ich das Radio stromlos schalte versuche ich mal den Innenwiderstand per Ohmmeter heraus zu bekommen. Für die schnellere Uart habe ich auch schon das Quarz an ATMega getauscht und die 2 MCPs auch mit eigenen bestückt. Änderte aber nicht s am elektrischen Verhalten ausser mehr Baud -Output.
Du meinst sicher nicht PCF sondern PCA.......Wenn du den PCA82C250 oder sogar mit T hast , der soll kompatibel zum MCP2551 sein. Was mich wundert, wenn ich die Verbindung aufgetrennt habe und an den CAN-L und CAN-H messe haben die beide um die 4,5 V !!!!!????? auf der KI Seite. Auf der Radio Seite sogar noch höher und unterschiedlich gegen Masse.
Wenn du eine Schaltung herstellen lassen wolltest vielleicht findest du den RS auch noch in den Plänen. Die 47K habe ich aus einer Tabelle die bei einer anderen Schaltung dabei war. Die Beschaltung macht halt auf dem Labortisch auch garkeine Probleme - aber eben im Auto. Ich werde mit dem RS Widerstand mal auf die 10K gehen die in den High Speed Anwendungen so angewendet werden. Das sollte die CAN Signale schärfer abbilden können, vielleicht habe ich damit Erfolg. Hab leider kein Oszi zuhause.
Welches Gerät steckt denn im A6 dahinter ???? ist es auch sowas wie ein BNS oder RNS-E nur mit MMI Bedienung ???
Gruß
Schorsch
Ja, PCA - war halt nur so aus dem Gedächnis.
Beim 4F läuft die Kommunikation zwischen CAN-GW und dem KI.
Wo nun genau diese Sequenznummerklamotte generiert wird - keine Ahnung.
Ich könnte mir natürlich auch vorstellen, dass diese im CAN-GW generiert wird.
Da aber danach in Richtung MMI alles MOST Ring ist und ich da nicht auch noch tracen wollte, habe ich die Verbindung zwischen GW und KI aufgetrennt.
Was die Spannungen angeht - keine Ahnung. Habe ich nicht gemessen.
BNS sagt mir nichts. RNS-E nur vom Namen her.
Die Struktur im Multimedia-Umfeld ist im 4F definitiv anders. Gibt es bei dir überhaupt einen optischen Ring? Ich meine nicht - oder?
Ähnliche Themen
Hallo,
nein..... einen optischen Ring gibt es nicht - soweit ich weiß in keinem der A4 Modelle.
Meinst du mit CAN-GW den CAN Gateway ?????? der ist beim A4 ja im KI !!!! Ich denke ich werde mal bis morgen eine Skitzze mit den Spannungen und den weiteren Erkenntnissen aufzeichnen sofern der Test mit den 10K etc. nicht den Erfolg bringt..........vielleicht hast du dann noch eine Idee.
So hab dann nachmal gemessen die 47K hatte ich schonmal vor längerem gegen 10K getauscht- hatte ich verdrängt. Dann kann es ja nur noch an der Terminierung liegen so hoffe ich.
Könnte es sein das z.B. das Radio aufgrund der Sterntopologie garkeinen Widerstand drin hat und da wirklich nur einmal 60Ohm eingebracht sind ?????
Gruß
Schorsch
Hoffentlich habe ich dir da jetzt keinen zu großen oder gar falschen Floh ins Ohr gesetzt.....
Ich dachte meine Probleme hier liegen an der Terminierung, aber so kritisch scheint das garnicht zu sein. Habe gerade auf meinem Schreibtisch frisch verkabelt und es tut immernoch nicht. Aber jetzt kann ich mit dem CANUSB wenigstens parallel zum Eva-Board den Bus beobachten.
Schorsch, du sagst das Radio hört einfach auf. Ist es möglich, dass du eine Botschaft rausfilterst und das Radio z.B. 10x probiert und dann von einem Fehler ausgeht? Steht was im Fehlerspeicher?
Hallo Kai, Hallo Sven,
Ich habe soeben folgendes gemessen.......
bei getrennter Verbindung KI - Radio, CAN vom KI, gemessen gegen Masse
CAN L = 4,8V
CAN H = 0,22-0,24V
bleibt auch so wenn ich beide zusammen stecke (also Ki wieder ans Radio). Ich dachte die Spannungswerte müssen im Bereich um die 2,5V liegen.
Also meine Schaltung angesteckt identische Werte am Eingang.
Verbindung am Radio mit offenen CAN BUS Leitungen, gemessen gegen Masse
CAN L = 9V
CAN H = 0,7
Anstecken an die Schaltung so das der Datenstrom bidirektional durcuh laufen sollte.
Kommunikation läuft 1 - 3 Sekunden und dann sendet nur noch das Auto nicht mehr das Radio.
Stecke ich 60 Ohm auf den Ausgang gibt das Radio garnichts mehr ab. Der Spannungswert am Ausgang geht impulsartig von 0,5V auf 2,5V und dann wieder Richtung 0,5V. Stecken auf dem Ausgang nur 120 OHM sendet nur das Auto.
Diese Spannungwerte kenne ich so von der CAN Literatur überhaupt nicht.
Eine Galvanische Trennung haben die bestimmt nicht eingesetzt da ja überall gespart wurde.
Aber der Tipp mit den Datenframes die das Radio erwartet und vielleicht nicht bekommt , gehe ich morgen nach. Fehler auslesen am Radio wäre noch eine Möglichkeit. ............guter Tipp ..........
irgendwie ist echt der Wurm drin.
Zur Not speise ich fehlende ID/s die mit dem CAN-USB da ein oder ich simulierte mit dem CAN USB direkt das Auto. Obwohl sendet zuerst das Radio "ich bin hier" oder zuerst das KI "wer ist da" alla Ringanmeldung und ständige Widerholung...............
Sven hast du ähnliche Spannungswerte auf dem Demoaufbau ?????
Woran könnte es noch liegen ????????????????? wenn alle Stricke reißen schraub ich das Radio auf und sehe nach was die als Transeiver eingesetzt haben. Eine Terminierung konnte ich am Radio auch nicht messen.
Gruß
Schorsch
Also für mich hört es sich so an, als ob Messages verloren gehen würden.
Das Fahrzeug denkt dann: Die Gegenstelle ist tot und stellt die Kommunikation ein.
Könnte das nicht auch der Fall sein?
Bist du dir wirklich sicher, dass alles Messages durchgehen?
Hast du auch keinen Debug-Output auf die Serielle Konsole aktiviert?
Wenn ich zu viel auf die serielle Schnittstelle schreibe, dann bricht bei mir auch nach kurzer Zeit die Kommunikation zum KI zusammen.
Auf jeden Fall gehen im Fahrzeug ja deutlich mehr Messages durch als in der Testumgebung.
Ich glaube nicht, dass es mit Spannungen etwas zu tun hat. Du solltest dich da nicht so drauf versteiffen, dass unbedingt irgendwelche Spannungen anliegen müssen.
Bitstöme kannst du mit einem Spannungsmesser schlecht messen. Noch schlechter, wenn sie Differential sind.
Hallo Kai,
das würde sich in dem Fall mit dem Ansatz von Sven decken.
Ich werde die Prints aus dem Code mal auskommentieren und dann mit dem CAN-USB lauschen - denn mitleierweile weiß man ja um die IDs die aus dem Radio kommen sollen. Mit print war eis nur einfacher zusehen da ich die Ausgabe für die Richtungen mit 0 und 1 gekennzeichnet hatte und trotz durchrasen der IDs alles sehen konnte - nur so war mir aufgefallen das das Radio auf gibt.
Aber in der Tat konnte es natürlich sein das nicht alles durchgeht. Zu mal sicher der Aufbau auf Lochraster nicht die 1. Wahl für einen schnellen SPI ist. Da ist sicher auch noch Potenzial verborgen. Zu Not werde ich auch den Datenstrom um die IDs erleichtern die das KI nicht zu leben braucht wie z.B. 635 der Beleuchgtung und andere.
Je mehr ich drüber nachdenke desto wahrscheinlicher scheint das zu sein, denn nicht nur das KI sondern auch das Radio will Lebenszeichen haben und da scheint nur 271 Zündung nicht zureichen.
Der Mittag ist noch lang.............
Gruß
Schorsch
Zitat:
Original geschrieben von TDISchorsch
Verbindung am Radio mit offenen CAN BUS Leitungen, gemessen gegen Masse
CAN L = 9V
CAN H = 0,7
Wenn die Pins nirgends angesteckt sind, dann dürfen die praktisch beliebige Spannungen führen. -3 bis +16 Volt war in der ISO-Norm zum CAN angegeben, wenn ich mich recht erinnere.
Zitat:
Original geschrieben von TDISchorsch
Kommunikation läuft 1 - 3 Sekunden und dann sendet nur noch das Auto nicht mehr das Radio.
...
Aber der Tipp mit den Datenframes die das Radio erwartet und vielleicht nicht bekommt , gehe ich morgen nach. Fehler auslesen am Radio wäre noch eine Möglichkeit. ............guter Tipp ..........
irgendwie ist echt der Wurm drin.
Klingt für mich stark nach fehlenden Botschaften. So verhalten sich die Steuergeräte auf meinem Schreibtisch auch, wenn die Gegenstation fehlt. Habe hier ein Kombi + Lenksäulensteuergerät. Ursprünglich war zur Analyse noch das Navi dran, aber das nützt mir im Auto mehr 🙄
Allein das Kombi sendet bei mir auf dem Intotainment-CAN folgende IDs:
271 - Zündung
351- Geschwindigkeit
353 - Drehzahl
428- Netzwerkmanagement
621
623- Zeit & Datum
627- Infotainment Modus (Byte 1: beim Radio einschalten 0x81, nach 1s dann 0x80, 0x84=Radio an und Navi aktiv; Byte 2-5: 0x28=Radio aus, 0x38/0x39=Radio an)
635
651
653
6C1 - Kommunikation Kombi -> Navi
Dabei ist Radio und Navi (BNS 4.2) codiert, bei Telefon und Telematik bin ich mir jetzt nicht sicher.
Die fettgedruckten sind m.M.n. heiße Kandidaten fürs Radio.
Zitat:
Original geschrieben von TDISchorsch
Eine Terminierung konnte ich am Radio auch nicht messen.
Zur Terminierung habe ich heute gefunden, dass Audi folgende Konzepte hat:
Zentrale Terminierung = nur ein Steuergerät terminiert den Bus mit 66,4 Ohm (2 x 33,2 Ohm, in deren Mitte 4,7nF gegen Masse), alle anderen Steuergeräte terminieren mit 2,6 kOhm (2 x 1,3kOhm).
Dezentrale Terminierung = zwei Steuergeräte terminieren den Bus mit jeweils 123,8 Ohm (2 x 61,9 Ohm, in deren Mitte 4,7nF gegen Masse), alle anderen Steuergeräte terminieren mit 2,6 kOhm (2 x 1,3kOhm).
Dezentrale Terminierung wird wahrscheinlich in den am weitesten voneinander entfernten Steuergeräten erfolgen. Insgesamt wird bei unseren Leitungslängen Terminierung nicht wirklich wichtig sein.
Sven
Hallo Sven,
wie sagt man bei uns an Niederrhein ......et jeet (frei übersetzt : es geht) der Tipp mit den fehlenden Frames war das eine und die Prints rausschmeißen - danke Kai - war der zweite heiße Tipp.
Ich habe jetzt einfach meine Schaltung dazwischen geklemmt. Verändere ich die Terminierung mit einem zusätzliche Widerstand zwischen Schaltung und KI - stellt das Ki die Komunikation ein. Ähnlich auf der Radio Navi Seite.
Nachdem ich heute dem SPI Bus nochmal Beine gemacht habe und auf 4,8MHz angehoben habe (MC = 19,660 MHz), er läuft stabil über Stunden, die Prints rausgeworfen habe, hatte ich nochmal einen Versuch am Auto. Bidirektional geht jetzt alles durch, restlos alles durch. Bedienung NAvi mit kompletter Darstellung im Display, Telefonbedienung über das BNS 5, Bedienung über MuFu geht alles ohne Verzögerung. Ich bin echt hin und weg...................und das Teil hat noch Reserven.
Zitat:
271 - Zündung
351 - Geschwindigkeit
353 - Drehzahl
428 - Netzwerkmanagement
621
623 - Zeit & Datum
627 - Infotainment Modus (Byte 1: beim Radio einschalten 0x81, nach 1s dann 0x80, 0x84=Radio an und Navi aktiv; Byte 2-5: 0x28=Radio aus, 0x38/0x39=Radio an)
635
651
653
6C1 - Kommunikation Kombi -> Navi
635 Beleuchtung - stufig in Prozentschritten 0-100% ich glaube 8 oder 10 Schritte
6C1 - 6C5 Radio und Navi komuniziert darüber und sendet diese Durchnummerierung auch wenn das BNS 5 nicht als Navi läuft.
KI sendet auf 6C1 und 6C4, BNS 5 auf 6C0 und 6C5
43A und die andere muß ich nachschauen sorgen für den Datenaustausch mit der org. FSE.
Die 627 schaue ich mir auch nochmal genau an ob ich die für meine Anzeigenabschaltung im Navibetrieb nutzen kann.
Da der 8Bitter das also hinbekommt solltest du mit dem 16Bitter und integrierten DualCancontroller garkein Schwierigkeiten haben.
Vielleicht kann Kai einen Tipp geben wie die CAN BUS Abschaltung im A6 läuft. Wenn ich mein A4 abschließe kann ich beobachten das nach ca 2 Min der Bus in den Standby geht und natürlich mit aufschließen (oder anderer Aktion wenn er nicht abgeschlossen ist) wieder hoch fährt. Ich konnte aber keinen Hinweis erkennen welche ID der Auslöser für den Standby sein könnte.
So kann ich dann demnächst die Platine planen...................
Gruß
Schorsch
Hey Schorsch, perfekt! Meinen Glückwunsch!
Freitag der 13. muss unser Glückstag sein. Schade dass er jetzt vorbei ist.
Meine Eva ist heute nämlich auch nicht mehr so zickig wie eine alte Diva 😁
Das Beispielprogramm sendet munter Botschaften und laut Status empfängt sie sogar was.
Steuergeräte können über CAN geweckt werden. Wie das genau läuft weiß ich auch nicht, aber zum Einschlafen ist jedenfalls das Netzwerkmanagement da: unsere geliebten Ringbotschaften.
Zitat:
Original geschrieben von TDISchorsch
...hatte ich nochmal einen Versuch am Auto...
Du hast doch nur nen Grund gesucht Cabrio zu fahren! 😉
Hallo Sven,
ja gefahren bin ich nicht, an den Frames, der Anzahl, wird sich während der Fahrt nicht viel ändern. Ansonsten werde ich das auch noch feststellen. Sollten weitere Resourcen gebraucht werden, was ich jetzt noch nicht glaube, lasse ich eben nicht alle Frames zum Radio durch. Es braucht ja auch nicht alle Frames auf dem Info-CAN .
Das Radio (BNS 5) sendet selbst so um die 12 Frames ob ein RNS-E oder eins der kleineren 1 DIN Geräte jetzt mehr oder weniger raus haut keine Ahnung - spielt im Moment für mich auch keine Rolle.
Mal sehen ob Kai noch mal die Taschenlampe ins dunkel hält und uns erleuchtet.
So jetzt aber ab ins Bett...................
Gruß
Schorsch
Oh, du fährst deinen SPI Port mit so niedrigem Takt?
Da bin ich deutlich höher gegangen. Genau müsste ich es nachsehen. Aber das höchste was mit 16Mhz CAN Controller Taktung durch den Divider möglich war.
Glückwunsch aber natürlich erst einmal! 😎
In den Schlaf schicke ich meinen Controller - ja.
Ich lausche auf dem CAN-Bus und wenn dort länger als Zeit X (z.B. 2 Sekunden) keine neuen Daten gekommen sind, dann habe ich das als Busruhe gedeutet.
Funktioniert hervorragend und ist total simpel zu implementieren. Einen Counter-Interrupt habe ich sowieso und brauche dort nur die Ticks hochzuzählen.
Wenn wieder einer der CAN Interrupts ausgelöst werden, dann wird dort einfach der Zähler auf Null gestellt und läuft dann wieder hoch.
In der main-Loop tracke ich dann nur noch auf einen bestimmten Zählerschwellwert und bei Überschreitung wird der Controller in den Schlaf geschickt.
Vorher setze ich dort noch die Transceiver und den CAN Controller in den Sleep, so dass die ganze Schaltung dann extrem wenig Strom verbraucht.
Klar, man könnte sich dran machen und die CAN Messages rausfinden, die normalerweise für den Schlafzustand verwendet werden.
Warum aber kompliziert, wenn es auch einfach geht 😉 (KISS - Keep It Simple, Stupid)
Ob das in euren Fahrzeugen auch möglich ist weiss ich so natürlich nicht, denke aber schon.
Hallo Kai,
der SPI am MCP2515 kann bis 10MHz, also beim kleinsten Div (1/2) gehen dann beim µc mit 16MHz/2 somit sollte dein SPI mit 8MHz laufen. In meiner ersten Versuchschaltung hatte ich einen ATMega mit Clkout und so konnte ich mir Quarze sparen. Wenn man natürlich auf Baudratenquarze geht, bekommt so der/die MCP keine 16MHz mehr und das Timing ist dahin. Auf deinen Vorschlag hin habe ich einen Baudratenquarz eingesetzt um auch die Uart mit größter Rate zubetreiben und somit auch die MCPs mit 16MHz bestückt. Der Quarz von 19,6608 läßt auf der Lochrasterplatine mit Freiluftdrähten nicht mehr zu als freq/4 und somit 4,8MHz - wird aber noch geseigert wenn die Platine fertig ist und die SPI Leitungen gut liegen. Ich denke die max mögliche SPI Freq ist zubevorzugen, für die restliche Rechenleistung reichen sicher auch 16MHz aus.
Hast du eine bestimmten ID so überwacht ???? denn die 623 Datum/Uhrzeit als Beispiel geht ja jede Sekunde eins rauf und braucht auch den Master Standby....................theoretisch müßte auch eine Relaisschaltung den Job erledigen können und die Brückenschaltung nur bei Bedarf dazwischen schalten. Standby wäre natürlich der Masterplan...wenn man den Auslöser findet, denn ich möchte nur weil ich vielleicht zufrüh in den Standby gehe keine Fehlereinträge haben. Nur wenn die Fehlereinträge ausbleiben ist die Schaltung so perfekt integriert.
Gruß
Schorsch