|
Ansteuerung des OPEL TID
Mein Programm stellt verschiedene Lauftexte und die aktuelle
Geschwindigkeit auf dem Display eines Opel
TIDs dar.
Auf dieser Seite findet Ihr außerdem alles was zur Programmierung des
Microcontrollers nötig ist.
TID-Protokoll
Das TID-Protokoll basiert auf dem I2C-Protokoll, es gibt aber noch eine
zusätzliche Steuerleitung.
Hier gibt es eine sehr gute Beschreibung des Protokolls auf deutsch: http://www.carluccio.de/index.php?page=pro-tid
Hier nochmal auf englisch von Eelke Visser mit Beispielen für
Drehzahlmesser und Tankanzeige: http://www.eelkevisser.nl/display.htm
Microcontroller
Ich verwende einen PIC16F84A von Microchip
für die Ansteuerung. Dies liegt vor allem daran, dass der Sourcecode
von Eelke Visser für diesen Chip unter der GPL steht und die
Entwicklung somit leichter war.
Programmierung des PIC
Wer die Kosten für das Starterkit sparen will kann sich den Programmer
leicht selbst bauen.
Ich verwende dazu den Classic Tait Programmer. Die Bauteile kosten nur
ein paar Euro.

Auf einer Lochrasterplatine mit Spaghettiverdrahtung sieht das dann so
aus:

Entwicklungswerkzeuge
Ich verwende für die Entwicklung das Programm PiKdev.
PiKdev unterstützt den Tait-Programmer und kann neben dem PIC16F84A
viele andere PICs ansprechen.
Es läuft unter Linux und der KDE-Oberfläche. Sehr praktisch ist auch
das Programm PiKloops mit dem sich leicht Verzögerungsschleifen
berechnen lassen.
Für die Kompilierung des Assemblercodes wird gpasm benötigt.
Es gibt auch einen Simulator für die PICs unter Linux: gpsim
EEPROM
Die Lauftexte des Displays passen nicht in das interne EEPROM des
16F84A, deshalb speichere ich den Text in einem 24C65 EEPROM von Microchip.
Der 24C65 wird über eine I2C-Schnittstelle angesprochen.
Das entsprechende Programmiergerät kann man wieder leicht selbst
herstellen. Ich hab es gleich auf der Platine vom PIC-Programmer
aufgebaut.
Bei Debian ist das Programm eep24c
dabei, das folgende Schaltung verwendet:

Platine zum Anschluss ans TID
Schaltplan (Eagle-Format): Schaltung
Den PIC kann man mit dem 24C65 und einem Festspannungsregler wieder auf
eine kleine Platine packen und dann direkt hinter das TID klemmen.
Meine Schaltung basiert auf dem Layout von Gábor Grátzl (fogy.zip). Durch die Transistoren an den Ausgängen
spart man sich die Umschalterei von Eingang auf Ausgang.
Die Transistoren zum Schalten der SDA/SCL/MRQ Leitungen sollten im
Idealfall natürlich mit auf die Platine. ;-)
Der Anschluss DIS kommt an den Anschluss Radioanzeige ein / Datum aus (AA).
Godja Cristian has
created a PCB: circuit.zip



Software
Version 1.0 (nur Lauftexte)
Version 2.1 (mit Geschwindigkeit)
Dieses Programm zeigt nach dem Einschalten einen Begrüßungstext und
danach alle 5min eine Nachricht aus dem EEPROM als Lauftext auf dem TID.
Die Texte im EEPROM beginnen an den Adressen 0000, 0100 bis 1F00 und
können max. 255 Zeichen lang sein. Bei Verwendung eines 64kBit EEPROMS
sind so 32 Texte möglich. Die Texte werden mit einem Nullbyte
abgeschlossen.
Das Paket enthält ein PHP-Skript, das die Texte in ein Format
konvertiert, das von txt2ihex eingelesen werden kann.
Anzeige
Die Anzeige wechselt zwischen Datum, Lauftexten, Geschwindigkeit und
Höchstgeschwindigkeit in einem 5min Programm. Dieses Programm wird
ständig wiederholt.
1. Datum: 1min
2. Geschwindigkeit: 1,5 min
3. Höchstgeschwindigkeit: 10s
4. Geschwindigkeit: 1,5 min
5. Datum: 1min
6. Lauftext
Lauftexte



Auf dem 24C65 werden Texte abgespeichert, die dann als Lauftext über
das Display laufen.
Geschwindigkeitsanzeige
Über den SDV-Pin am TID-Stecker kann man das Geschwindigkeutssignal
abgreifen. Damit lässt sich die Geschwindigkeit deutlich genauer als am
Tacho anzeigen.

Pro Radumdrehung werden 32 Impulse über SDV gesendet. Wenn man den
Radumfang kennt kann man damit sehr leicht die aktuelle Geschwindigkeit
messen.
Die Zeitspanne für die Impulszählung ist so gewählt, dass die Anzahl
der Impulse gleich der Geschwindigkeit in km/h ist.
T = (3,6 * U) / 32 (U: Radumfang, z.B. 1,8m)
Höchstgeschwindigkeitsanzeige
Nach jeder Geschwindigkeitsmessung wird ggf. der Wert der
Höchstgeschwindigkeit angepasst. Sie wird im internen EEPROM des PIC
gespeichert.
|