Hallo,
im Rahmen meines geplanten Umbaus des Classico auf einen alternativen Controller (Kelly oder Sabvoton) ist mir leider aufgefallen, dass der original-Controller mit dem Tacho über ein serielles Protokoll (UART) kommuniziert. Kennt jemand eine Protokoll-Definition für diese Kommunikation ?
Gruß
Holger
Serielles Protokoll zwischen Controller und Tacho ?
-
slothorpe
- Beiträge: 570
- Registriert: Do 4. Jul 2019, 14:14
- Roller: Robo-S, Classico LI, selbst gebautes Lasten-Pedelec
- PLZ: 10717
- Wohnort: Berlin
- Kontaktdaten:
-
slothorpe
- Beiträge: 570
- Registriert: Do 4. Jul 2019, 14:14
- Roller: Robo-S, Classico LI, selbst gebautes Lasten-Pedelec
- PLZ: 10717
- Wohnort: Berlin
- Kontaktdaten:
Re: Serielles Protokoll zwischen Controller und Tacho ?
Hier meine Ergebnisse:
0 und 1 werden über unterschiedlich lange low-high Phasen codiert, jedes Bit ist 1,5ms lang und beginnt mit der fallenden Flanke - 0,5ms low und 1ms high ist eine 1, hingegen 1 ms low und 0,5ms high ist eine 0, die Datenübertragung beginnt mit einer Art Startbit von 1ms high. Übertragen werden genau 12 Byte (96 Bit), das dauert genau 145ms, dann folgt 50ms Pause (low). High-Pegel ist 3,2V, low Pegel ist 0V.
Diese 12Byte sind sehr merkwürdig aufgebaut, das zu beschreiben sprengt den Rahmen hier, z.b. das letzte Byte ist immer eine XOR Checksumme, das zweite ein umlaufender 8bit Zähler, in den anderen sind die Informationen wie Geschwindigkeit und Fahrstufe 1-3 usw. recht kryptisch und teilweise mehrfach kodiert.
Wer mehr wissen will oder den Arduino-Code zur Ansteuerung braucht, schickt mir ne PN.
0 und 1 werden über unterschiedlich lange low-high Phasen codiert, jedes Bit ist 1,5ms lang und beginnt mit der fallenden Flanke - 0,5ms low und 1ms high ist eine 1, hingegen 1 ms low und 0,5ms high ist eine 0, die Datenübertragung beginnt mit einer Art Startbit von 1ms high. Übertragen werden genau 12 Byte (96 Bit), das dauert genau 145ms, dann folgt 50ms Pause (low). High-Pegel ist 3,2V, low Pegel ist 0V.
Diese 12Byte sind sehr merkwürdig aufgebaut, das zu beschreiben sprengt den Rahmen hier, z.b. das letzte Byte ist immer eine XOR Checksumme, das zweite ein umlaufender 8bit Zähler, in den anderen sind die Informationen wie Geschwindigkeit und Fahrstufe 1-3 usw. recht kryptisch und teilweise mehrfach kodiert.
Wer mehr wissen will oder den Arduino-Code zur Ansteuerung braucht, schickt mir ne PN.
-
Tatra256
- Beiträge: 3
- Registriert: Di 13. Sep 2022, 20:25
- Roller: Robo-S
- PLZ: 01731
- Wohnort: Kreischa
- Tätigkeit: im IT-Bereich tätig
- Kontaktdaten:
Re: Serielles Protokoll zwischen Controller und Tacho ?
Holger, das klingt interessant. Haben Sie vielleicht auch Infos zur Kommunikation zwischen den Batterien und dem Tacho? Der Verkabelung nach können sich die Batterien nur beim Tacho über die RS485 melden und ihr Befinden petzen, was dann bei der MCU zur Freigabe der vollen Geschwindigkeit führt, sofern sich beide mit mehr als 13 Füllstand gemeldet haben.
Meine Frage hinsichtlich Protokoll zwischen BMS und Batterie rührt daher, daß ich meinen Roller auf 24 Zellen LIFEPO4 50 Ah umgebaut habe. Das paßt äußerst knapp ins Batteriefach. Die Kommunikation mit dem Tacho ist dann aber erst mal passe.
Meine Idee, Original-BMSe aus alten Batterien in die Kommunikation einzubeziehen, funktioniert zwar prinzipiell. Leider habe ich nur eines, sodaß ich nur mit dem Ein-Aus-Ein-Trick auf die volle Geschwindigkeit komme. Das dafür länger und weiter,
Meine Idee ist nun, einen Arduino oder ähnliches dazwischenzusetzen, der die Kommunikation von neuen BMS in die Sprache des alten übersetzt. Bis jetzt hab ich mich noch nicht rangetraut, die Kommunikation selbst zu tracen. Daher meine Frage.
Meine Frage hinsichtlich Protokoll zwischen BMS und Batterie rührt daher, daß ich meinen Roller auf 24 Zellen LIFEPO4 50 Ah umgebaut habe. Das paßt äußerst knapp ins Batteriefach. Die Kommunikation mit dem Tacho ist dann aber erst mal passe.
Meine Idee, Original-BMSe aus alten Batterien in die Kommunikation einzubeziehen, funktioniert zwar prinzipiell. Leider habe ich nur eines, sodaß ich nur mit dem Ein-Aus-Ein-Trick auf die volle Geschwindigkeit komme. Das dafür länger und weiter,
Meine Idee ist nun, einen Arduino oder ähnliches dazwischenzusetzen, der die Kommunikation von neuen BMS in die Sprache des alten übersetzt. Bis jetzt hab ich mich noch nicht rangetraut, die Kommunikation selbst zu tracen. Daher meine Frage.
Gruß Tatra256
Yamasaki 45 km/h, Umbau auf 48V 50 Ah Lifepo4, 76 km, verkauft
Robo-S, original, 85km, 11000km
Robo-S, Umbau auf 50 Ah, Lifepo4, 110km
Yamasaki 45 km/h, Umbau auf 48V 50 Ah Lifepo4, 76 km, verkauft
Robo-S, original, 85km, 11000km
Robo-S, Umbau auf 50 Ah, Lifepo4, 110km
Wer ist online?
Mitglieder in diesem Forum: Dot [Bot] und 31 Gäste