Deutsche Seite English page

Opel TID
 

Projekte
Linux
Delphi
Sonstiges
Kontakt
Links

Home

Ansteuerung des OPEL TID

TIDspeed


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.

Programmer


Auf einer Lochrasterplatine mit Spaghettiverdrahtung sieht das dann so aus:

Platine Platine


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:

eep24c



Platine zum Anschluss ans TID

 schaltung
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.

speed


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.