Opel TID: Unterschied zwischen den Versionen

Aus Dario's Home
Wechseln zu: Navigation, Suche
(Verkauf von Geräten)
 
(20 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
[[Kategorie:Projekte]]
 +
[[Kategorie:AVR]]
 +
''Projektdatum: 2002''
 
= Einleitung =  
 
= Einleitung =  
 +
[[Bild:tid-festtext.jpg|thumb|250px|Corsa Display]]
 +
[[Bild:tid-interface.jpg|thumb|250px|RS232 Interface]]
 +
 
Das interne Opel Display auch TID (Triple Info Display) genannt, wird
 
Das interne Opel Display auch TID (Triple Info Display) genannt, wird
 
von dem original Opel Radio  angesteuert. Wenn man aber das Opel Radio
 
von dem original Opel Radio  angesteuert. Wenn man aber das Opel Radio
Zeile 48: Zeile 54:
  
 
=== 8-stelliges TID Opel Astra F und Corsa B/Tigra ===
 
=== 8-stelliges TID Opel Astra F und Corsa B/Tigra ===
{| {{prettytable}} style="text-align: center";
+
[[Bild:tid-pinout8.png|thumb|250px|Pinbelegung 8-stelliges TID]]
 +
{| {{prettytablecenter}}
 
|-----
 
|-----
| Pin||align = "left"| Beschreibung || Klemme || Farbe Astra F || Farbe Corsa B
+
| '''Pin'''||align = "left"| '''Beschreibung''' || '''Klemme''' || '''Farbe Astra F''' || '''Farbe Corsa B'''
 
|-----
 
|-----
 
|  1 ||align = "left"| Dauerplus                    || Kl. 30 || rt    || rt
 
|  1 ||align = "left"| Dauerplus                    || Kl. 30 || rt    || rt
Zeile 79: Zeile 86:
 
|-----
 
|-----
 
|}
 
|}
 
pro-tid-pic3.png Opel-TID Anschlussbelegung Astra G
 
  
 
=== 10-stelliges TID Opel Astra G und Corsa C ===
 
=== 10-stelliges TID Opel Astra G und Corsa C ===
{| {{prettytable}}
+
[[Bild:tid-pinout10.png|thumb|250px|Pinbelegung 10-stelliges TID]]
 +
{| {{prettytablecenter}}
 
|-----
 
|-----
|align = "center"| Pin || Beschreibung || Klemme || Farbe Astra G || Farbe Corsa C
+
|'''Pin'''||align = "left"| '''Beschreibung''' || '''Klemme''' || '''Farbe Astra G''' || '''Farbe Corsa C'''
 
|-----
 
|-----
|align = "center"| 1 || Zündung              || Kl. 15 || sw || sw
+
| 1 ||align = "left"| Zündung              || Kl. 15 || sw || sw
 
|-----
 
|-----
|align = "center"| 2 || Radioanzeige ein / Datum aus (AA) ||  || ws-rt || rt-gn
+
| 2 ||align = "left"| Radioanzeige ein / Datum aus (AA) ||  || ws-rt || rt-gn
 
|-----
 
|-----
|align = "center"| 3 || Dauerplus            || Kl. 30 || rt || rt
+
| 3 ||align = "left"| Dauerplus            || Kl. 30 || rt || rt
 
|-----
 
|-----
|align = "center"| 4 || Auffindbeleuchtung nachts (gedimmt) ||  || gr-ge || gr-sw
+
| 4 ||align = "left"| Auffindbeleuchtung nachts (gedimmt) ||  || gr-ge || gr-sw
 
|-----
 
|-----
|align = "center"| 5 || Außentemperatur Plus  ||        || bl-ws || bl-ws
+
| 5 ||align = "left"| Außentemperatur Plus  ||        || bl-ws || bl-ws
 
|-----
 
|-----
|align = "center"| 6 || Masse                || Kl. 31 || br || br
+
| 6 ||align = "left"| Masse                || Kl. 31 || br || br
 
|-----
 
|-----
|align = "center"| 7 || Außentemperatur Minus ||        || bl || bl
+
| 7 ||align = "left"| Außentemperatur Minus ||        || bl || bl
 
|-----
 
|-----
|align = "center"| 8 || Diagnose              ||        || br-ws || br-gn
+
| 8 ||align = "left"| Diagnose              ||        || br-ws || br-gn
 
|-----
 
|-----
|align = "center"| 9 || SDV (Speed Dependent Volume) ||        || bl-rt || bl-ws
+
| 9 ||align = "left"| SDV (Speed Dependent Volume) ||        || bl-rt || bl-ws
 
|-----
 
|-----
|align = "center"| 10 || SCL                  ||        || br-rt || gn
+
|10 ||align = "left"| SCL                  ||        || br-rt || gn
 
|-----
 
|-----
|align = "center"| 11 || SDA                  ||        || br-sw || ws
+
|11 ||align = "left"| SDA                  ||        || br-sw || ws
|-----
 
|align = "center"| 12 || MRQ                  ||        || br-gr || br-gr
 
 
|-----
 
|-----
 +
|12 ||align = "left"| MRQ                  ||        || br-gr || br-gr
 +
|----             
 
|}
 
|}
  
Zeile 119: Zeile 125:
  
 
== Power on Test ==
 
== Power on Test ==
 +
[[Bild:tid-signal-pot.png|thumb|250px|Power on Test]]
 
Die folgende Signalfolge muss das Autoradio jedes Mal senden wenn es
 
Die folgende Signalfolge muss das Autoradio jedes Mal senden wenn es
 
angeschaltet wird. Das Einschalten des Radios erkennt der Slave an dem Signal
 
angeschaltet wird. Das Einschalten des Radios erkennt der Slave an dem Signal
 
Antenna Amplificator (AA). Innerhalb der Zeit T3 muss die eigentliche
 
Antenna Amplificator (AA). Innerhalb der Zeit T3 muss die eigentliche
 
Daten-Übertragung dann beginnen.<BR>
 
Daten-Übertragung dann beginnen.<BR>
 
pro-tid-pic4.png
 
  
 
{| {{prettytable}}
 
{| {{prettytable}}
Zeile 147: Zeile 152:
  
 
== Datenübertragung ==
 
== Datenübertragung ==
pro-tid-pic5.png
+
[[Bild:tid-signal-frame.png|thumb|250px|Datenübertragung eines Frames]]
  
{| {{prettytable}}
+
{| {{prettytablecenter}}
 
|-----
 
|-----
|align = "center"| 1. || Master setzt MRQ Low    ||              ||
+
| 1. ||align = "left"| Master setzt MRQ Low    ||              ||
 
|-----
 
|-----
|align = "center"| 2. || Slave antwortet SDA Low || T1min = 100µs || T1max = 15ms
+
| 2. ||align = "left"| Slave antwortet SDA Low || T1min = 100µs || T1max = 15ms
 
|-----
 
|-----
|align = "center"| 3. || Master setzt MRQ High  || T2min = 100µs || T2max = 200µs
+
| 3. ||align = "left"| Master setzt MRQ High  || T2min = 100µs || T2max = 200µs
 
|-----
 
|-----
|align = "center"| 4. || Slave setzt SDA High    || T3min = 100µs || T3max = 200µs
+
| 4. ||align = "left"| Slave setzt SDA High    || T3min = 100µs || T3max = 200µs
 
|-----
 
|-----
|align = "center"| 5. || Master setzt SDA Low    || T4min = 100µs || T4max = 500µs
+
| 5. ||align = "left"| Master setzt SDA Low    || T4min = 100µs || T4max = 500µs
 
|-----
 
|-----
|align = "center"| 6. || Master setzt SCL Low    || T6min = 100µs || T6max = 200µs
+
| 6. ||align = "left"| Master setzt SCL Low    || T6min = 100µs || T6max = 200µs
 
|-----
 
|-----
|align = "center"| 7. || Master sendet Adresse  ||              ||
+
| 7. ||align = "left"| Master sendet Adresse  ||              ||
 
|-----
 
|-----
|align = "center"| 8. || Master setzt MRQ Low    || T7min = 100µs || T7max = 500µs
+
| 8. ||align = "left"| Master setzt MRQ Low    || T7min = 100µs || T7max = 500µs
 
|-----
 
|-----
|align = "center"| 9. || Master sendet Daten    || T5min = 1ms  || T5max = 10ms
+
| 9. ||align = "left"| Master sendet Daten    || T5min = 1ms  || T5max = 10ms
 
|-----
 
|-----
|align = "center"| 10.| Master setzt MRQ High  || T7min = 100µs || T7max = 500µs
+
| 10.||align = "left"| Master setzt MRQ High  || T7min = 100µs || T7max = 500µs
 
|-----
 
|-----
 
|}
 
|}
Zeile 177: Zeile 182:
 
Displays, den Symbol-Bytes und den Daten-Bytes.
 
Displays, den Symbol-Bytes und den Daten-Bytes.
  
{| {{prettytable}}
+
{| {{prettytablecenter}}
 
|-----
 
|-----
|align = "center"| 1. || Start der Übertragung
+
| 1. ||align = "left"| Start der Übertragung
 
|-----
 
|-----
|align = "center"| 2. || Slave Adresse
+
| 2. ||align = "left"| Slave Adresse
 
|-----
 
|-----
|align = "center"| 3. || Symbol-Bytes
+
| 3. ||align = "left"| Symbol-Bytes
 
|-----
 
|-----
|align = "center"| 4. || Daten-Bytes
+
| 4. ||align = "left"| Daten-Bytes
 
|-----
 
|-----
|align = "center"| 5. || Ende der Übertragung
+
| 5. ||align = "left"| Ende der Übertragung
 
|-----
 
|-----
 
|}
 
|}
  
{| {{prettytable}}
+
{| {{prettytablecenter}}
 
|-----
 
|-----
|align = "center"|                  || Symbol-Bytes || Daten-Bytes || Slave Adresse
+
|                                 || '''Symbol-Bytes''' || '''Daten-Bytes''' || '''Slave Adresse'''
 
|-----
 
|-----
|align = "center"|  8-stelliges TID || 2            || 8          || 0x4a (74 dec)
+
|align = "left"|  8-stelliges TID || 2            || 8          || 0x4a (74 dec)
 
|-----
 
|-----
|align = "center"| 10-stelliges TID || 3            || 10          || 0x4d (77 dec)
+
|align = "left"| 10-stelliges TID || 3            || 10          || 0x4d (77 dec)
 
|-----
 
|-----
 
|}
 
|}
  
 
== Bit Synchronisation ==
 
== Bit Synchronisation ==
 +
[[Bild:tid-signal-bitsync.png|thumb|250px|Bit Synchronisation]]
  
pro-tid-pic6.png
+
{| {{prettytablecenter}}
 
 
{| {{prettytable}}
 
 
|-----
 
|-----
|align = "center"| 1. || Master legt Bit an SDA ||
+
| 1. ||align = "left"| Master legt Bit an SDA ||
 
|-----
 
|-----
|align = "center"| 2. || Master wartet          || Ts = 5µs
+
| 2. ||align = "left"| Master wartet          || Ts = 5µs
 
|-----
 
|-----
|align = "center"| 3. || Master setzt SCL High  ||
+
| 3. ||align = "left"| Master setzt SCL High  ||
 
|-----
 
|-----
|align = "center"| 4. || Master setzt SCL Low  || TSCLHmin = 50µs || TSCLHmax = 1ms
+
| 4. ||align = "left"| Master setzt SCL Low  || TSCLHmin = 50µs || TSCLHmax = 1ms
 
|-----
 
|-----
|align = "center"| 5. || Master wartet          || Th = 5µs
+
| 5. ||align = "left"| Master wartet          || Th = 5µs
 
|-----
 
|-----
|align = "center"| 6. || Master legt neues Bit an SDA  ||
+
| 6. ||align = "left"| Master legt neues Bit an SDA  ||
 
|-----
 
|-----
|align = "center"| 7. || Master wartet Rest von TSCLL || TSCLLmin = 50µs || TSCLLmax = 1ms
+
| 7. ||align = "left"| Master wartet Rest von TSCLL || TSCLLmin = 50µs || TSCLLmax = 1ms
 
|-----
 
|-----
|align = "center"| 8. || Master setzt SCL High  || TSCLLmin = 50µs || TSCLLmax = 1ms
+
| 8. ||align = "left"| Master setzt SCL High  || TSCLLmin = 50µs || TSCLLmax = 1ms
 
|-----
 
|-----
|align = "center"| 9. || Master wartet bis der Slave SCL High setzt ||  || Tmax = 1ms
+
| 9. ||align = "left"| Master wartet bis der Slave SCL High setzt ||  || Tmax = 1ms
 
|-----
 
|-----
|align = "center"| 10. || Ab jetzt muss Master mind. TSCLLmin = 50µs SCL auf High lassen ||
+
| 10.||align = "left"| Ab jetzt muss Master mind. TSCLLmin = 50µs SCL auf High lassen ||
 
|-----
 
|-----
|align = "center"| 11. || Weiter bei Punkt 4 ||
+
| 11.||align = "left"| Weiter bei Punkt 4 ||
 
|-----
 
|-----
 
|}
 
|}
  
 +
==  Bestätigung und Ende der Übertragung ==
  
==  Bestätigung und Ende der Übertragung ==
+
[[Bild:tid-signal-endoftransmission.png|thumb|250px|Timing am Ende der Übertragung]]
pro-tid-pic7.png Opel-TID Timing EOT
 
  
 
=== Bestätigung am Ende des Bytes ===
 
=== Bestätigung am Ende des Bytes ===
Zeile 286: Zeile 290:
  
 
== Format der Status-Bytes ==
 
== Format der Status-Bytes ==
{| {{prettytable}}
+
{| {{prettytablecenter}}
 +
|-----
 +
| '''Bit''' || '''1. Byte (Radio Status)'''|| '''2. Byte (Tape Status)''' ||''' 3. Byte (CD Status)'''
 
|-----
 
|-----
|align = "center"| 7 || Komma                  || Symbol "CD-In"        || 0
+
| 7 || Komma                  || Symbol "CD-In"        || 0
 
|-----
 
|-----
|align = "center"| 6 || Symbol "RDS"          || Symbol "Dolby C"      || Symbol "Track"
+
| 6 || Symbol "RDS"          || Symbol "Dolby C"      || Symbol "Track"
 
|-----
 
|-----
|align = "center"| 5 || Symbol "TP"            ||  Symbol "Dolby B"    ||  Symbol "RDM"
+
| 5 || Symbol "TP"            ||  Symbol "Dolby B"    ||  Symbol "RDM"
 
|-----
 
|-----
|align = "center"| 4 || Symbol "Stereo"        ||  Symbol "cr"          ||  Symbol "PGM"
+
| 4 || Symbol "Stereo"        ||  Symbol "cr"          ||  Symbol "PGM"
 
|-----
 
|-----
|align = "center"| 3 || 0                      ||  Symbol "CPS"        ||  Symbol "DISC"
+
| 3 || 0                      ||  Symbol "CPS"        ||  Symbol "DISC"
 
|-----
 
|-----
|align = "center"| 2 || Symbol "AS"            ||  0                    ||  0
+
| 2 || Symbol "AS"            ||  0                    ||  0
 
|-----
 
|-----
|align = "center"| 1 || Klammer um "TP"        ||  0                    ||  0
+
| 1 || Klammer um "TP"        ||  0                    ||  0
 
|-----
 
|-----
|align = "center"| 0 || Patität                ||  Patität              ||  Patität
+
| 0 || Patität                ||  Patität              ||  Patität
 
|-----
 
|-----
 
|}
 
|}
 
= Haftungsausschluss =
 
Alle hier gemachten Angaben habe ich nach bestem Wissen und Gewissen gemacht,
 
selbstverständlich kann ich nicht für deren Richtigkeit garantieren. Wer sich
 
also entschließt an seinem Display rumzubasteln, der macht das auf eigenes Risiko.
 
  
 
= Download =
 
= Download =
 
Die gesamte Doku könnt ihr auch als
 
Die gesamte Doku könnt ihr auch als
tid-protokoll.pdf PDF-Datei hier runterladen.
+
[[Media:tid-protokoll.pdf|PDF-Datei hier runterladen.]]
  
 
= Hardware =
 
= Hardware =
 
+
[[Bild:tid-board.jpg|thumb|150px|TID Evaluation Board]]
/pro-tid-platine.jpg Opel-TID Platine
 
  
 
Ich habe mal eine Platine dazu gemacht und davon habe ich noch ein paar über.
 
Ich habe mal eine Platine dazu gemacht und davon habe ich noch ein paar über.
Zeile 336: Zeile 336:
 
damit sich der Nachbau für andere leichter geschtaltet.
 
damit sich der Nachbau für andere leichter geschtaltet.
  
 +
= Verkauf von Geräten =
 +
<div style="{{Style:Hauptseite:Box}} background-color:#fff5f5">
 
Ich selber werde auf keinen Fall ein komplettes Gerät
 
Ich selber werde auf keinen Fall ein komplettes Gerät
verkaufen</font>, da es mir viel zu viel Aufwand ist, denn hier in Deutschland
+
verkaufen, da es mir viel zu viel Aufwand ist, denn hier in Deutschland
 
muss man dafür eine CE-Zulassung haben, eine Haftpflichtversicherung
 
muss man dafür eine CE-Zulassung haben, eine Haftpflichtversicherung
 
abschliessen und nicht zuletzt 2&nbsp;Jahre Garantie übernehmen und das bei
 
abschliessen und nicht zuletzt 2&nbsp;Jahre Garantie übernehmen und das bei
 
einem Artikel den der Kunde selber anschliessen will.<BR>
 
einem Artikel den der Kunde selber anschliessen will.<BR>
 
Ohne das alles wäre es extrem dumm ein solches Gerät auf den Markt zu bringen,
 
Ohne das alles wäre es extrem dumm ein solches Gerät auf den Markt zu bringen,
denn dann wird man unter Umständen seines Lebens nicht mehr froh. So ist das
+
denn dann wird man unter Umständen seines Lebens nicht mehr froh.  
leider.
+
So ist das leider.
 +
</div>
  
Also überlegt es Euch, man lernt viel dabei. Ichhabe angefangen das Protokoll
+
Ich biete hier nur ein paar von den übriggebliebenen Evaluation Boards an.
zu verstehen und dann wollte ich PHP lernen und habe deswegen diese Webseite
+
Es handelt sich dabei nur um die unbestückten Platinen, die Bauteile mus jeder selber auflöten.
erstellt, aber da ich eine solche Anzeige nicht brauche ist hier erstmal Schluss ...
+
Und fertige Software gibt es auch nicht, ich habe da einige C-Codeschnipsel und auch ein
 +
Assembler-File mit denen man starten kann, es ist aber weit entfernt von einer serientauglichen Lösung.
 +
 
 +
Also überlegt es Euch, man lernt viel dabei. Ich habe damit angefangen weil ich das Protokoll
 +
verstehen wollte, aber da ich eine solche Anzeige nicht mehr brauche ist an dieser Stelle erstmal Schluss ...
 +
 
 +
= Haftungsausschluss =
 +
Alle hier gemachten Angaben habe ich nach bestem Wissen und Gewissen gemacht,
 +
selbstverständlich kann ich nicht für deren Richtigkeit garantieren. Wer sich
 +
also entschließt an seinem Display rumzubasteln, der macht das auf eigenes Risiko.

Aktuelle Version vom 19. Juni 2009, 10:34 Uhr

Projektdatum: 2002

Einleitung

Corsa Display
RS232 Interface

Das interne Opel Display auch TID (Triple Info Display) genannt, wird von dem original Opel Radio angesteuert. Wenn man aber das Opel Radio gegen ein anderes getauscht hat, liegt dieses Display brach.

Schön wäre es dem TID einen neuen Lebenssinn zu geben. Doch das Protokoll zu dem Display ist leider nirgendwo doukmentiert. Aber das ist für den findigen Bastler kein Hindernis.

Das ganze hat mich zwei TIDs gekostet, aber nun ist mir das Protokoll bekannt und ich habe es weiter unten auf dieser Seite dokumentiert. Ich entwickelte eine Schaltung mit einem Atmel 90s2313, die ein solches TID ansteuern kann. Die ersten Erfolge könnt Ihr auf dem Bild hier sehen.

Das war auch noch zu Zeiten, in denen ich mich gegen C verwehrt habe und noch lieber in Bascom AVR programmiert habe. Gerne würde ich das jetzt auf C umsetzen. Wie alle meine Entwicklungen soll es dann ein Open-Source Projekt werden. Hilfe dabei ist gerne gesehen.

Die Schaltung im Bild ist ein Interface von Seriell auf TID-Bus. Sie empfängt Daten von der TTL-Schnittstelle mit 1200 Bit/s und sendet sie im TID-Format weiter an das TID. So kann man einfach Ausgaben auf das TID machen ohne das Protokoll selber in die jeweilige Anwendung implementieren zu müssen.

Ich habe mir jetzt mal die Zeit genommen das Protokoll hier zu beschreiben. Ich kann allerdings nicht dafür garantieren, dass ich beim abtippen meiner handschriftlichen Unterlagen keinen Fehler gemacht habe. Also wenn das hier jemand benutzt um das nachzubauen, dann scheut Euch nicht bei Problemen nochmal nachzufragen.

Auch würde ich mich über Emails mit Fehlern, Ergänzungen und Erfolgsberichten freuen. Genauso würde ich es begrüssen Eure Ergebnisse insbesondere C-Quelltexte zu erhalten, um sie hier für alle zu veröffentlichen. Die ersten Ergänzungen habe ich schon bekommen und eingearbeitet, besonderen Dank an Andre.

Protokoll

Hier nun die Beschreibung des Protokolls, um ein solches TID anzusteuern:

Grundlegendes

Der Opel Radio-Display Bus ist ein serieller Bus, der ein Master Gerät, das Radio mit dem Slave Gerät, dem Triple Info Display oder dem Multi Info Display verbindet.

Er basiert auf dem I2C Protokoll, zusätzlich gibt es eine Master Request Leitung (MRQ).

Anschlussbelegungen

8-stelliges TID Opel Astra F und Corsa B/Tigra

Pinbelegung 8-stelliges TID
Pin Beschreibung Klemme Farbe Astra F Farbe Corsa B
1 Dauerplus Kl. 30 rt rt
2 Außentemperatur Minus bl
3 Masse Kl. 31 br br
4 Außentemperatur Plus bl-ws
5 Zündung Kl. 15 sw sw
6 Auffindbeleuchtung gr-gn gr-gn
7 Auffindbeleuchtung nachts (gedimmt) gr-sw gr-sw
8 Radioanzeige ein / Datum aus (AA) rt-gn rt-gn
9 SCL br-ws br-rt
10 MRQ br-ws br-gr
11 SDA br-ws br-sw
12 SDV (Speed Dependent Volume) br-ws bl-rt
12 SDV (Speed Dependent Volume) br-ws bl-rt

10-stelliges TID Opel Astra G und Corsa C

Pinbelegung 10-stelliges TID
Pin Beschreibung Klemme Farbe Astra G Farbe Corsa C
1 Zündung Kl. 15 sw sw
2 Radioanzeige ein / Datum aus (AA) ws-rt rt-gn
3 Dauerplus Kl. 30 rt rt
4 Auffindbeleuchtung nachts (gedimmt) gr-ge gr-sw
5 Außentemperatur Plus bl-ws bl-ws
6 Masse Kl. 31 br br
7 Außentemperatur Minus bl bl
8 Diagnose br-ws br-gn
9 SDV (Speed Dependent Volume) bl-rt bl-ws
10 SCL br-rt gn
11 SDA br-sw ws
12 MRQ br-gr br-gr

Elektrische Daten

  • Spannung für High: >4V
  • Spannung für Low: <1V
  • Pull-Up Widerstände auf Slave Seite

Power on Test

Power on Test

Die folgende Signalfolge muss das Autoradio jedes Mal senden wenn es angeschaltet wird. Das Einschalten des Radios erkennt der Slave an dem Signal Antenna Amplificator (AA). Innerhalb der Zeit T3 muss die eigentliche Daten-Übertragung dann beginnen.

min max
T1 100ms 500ms
T2 500us 1ms
T3 1ms 2ms

Durch das Auswerten der Signale kann der Master erkennen, ob eine Leitung defekt ist.

Ist beispielsweise eine Leitung ständig Low, dann hat sie einen Kurzschluss nach Masse.
Bleibt eine Leitung hingegen immer High, dann liegt ein Kurzschluss nach +Ub vor.
Und tritt ein gesendeter Impuls auch auf einer anderen Leitung auf, dann befindet sich ein Kurzschluss zwischen diesen beiden Leitungen.

Datenübertragung

Datenübertragung eines Frames
1. Master setzt MRQ Low
2. Slave antwortet SDA Low T1min = 100µs T1max = 15ms
3. Master setzt MRQ High T2min = 100µs T2max = 200µs
4. Slave setzt SDA High T3min = 100µs T3max = 200µs
5. Master setzt SDA Low T4min = 100µs T4max = 500µs
6. Master setzt SCL Low T6min = 100µs T6max = 200µs
7. Master sendet Adresse
8. Master setzt MRQ Low T7min = 100µs T7max = 500µs
9. Master sendet Daten T5min = 1ms T5max = 10ms
10. Master setzt MRQ High T7min = 100µs T7max = 500µs

Format einer Nachricht

Die zu sendende Nachricht setzt sich zusammen aus der Slave Adresse des Displays, den Symbol-Bytes und den Daten-Bytes.

1. Start der Übertragung
2. Slave Adresse
3. Symbol-Bytes
4. Daten-Bytes
5. Ende der Übertragung
Symbol-Bytes Daten-Bytes Slave Adresse
8-stelliges TID 2 8 0x4a (74 dec)
10-stelliges TID 3 10 0x4d (77 dec)

Bit Synchronisation

Bit Synchronisation
1. Master legt Bit an SDA
2. Master wartet Ts = 5µs
3. Master setzt SCL High
4. Master setzt SCL Low TSCLHmin = 50µs TSCLHmax = 1ms
5. Master wartet Th = 5µs
6. Master legt neues Bit an SDA
7. Master wartet Rest von TSCLL TSCLLmin = 50µs TSCLLmax = 1ms
8. Master setzt SCL High TSCLLmin = 50µs TSCLLmax = 1ms
9. Master wartet bis der Slave SCL High setzt Tmax = 1ms
10. Ab jetzt muss Master mind. TSCLLmin = 50µs SCL auf High lassen
11. Weiter bei Punkt 4

Bestätigung und Ende der Übertragung

Timing am Ende der Übertragung

Bestätigung am Ende des Bytes

1. Master setzt SCL High für LSB (Least significant Bit)
2. Master setzt SCL Low Daten werden vom Slave übernommen
3. Master setzt SDA High Slave setzt SCL Low (Daten übernommen)
4. Master setzt SCL High
5. Slave setzt SDA Low wenn Parität ungerade
6. Slave setzt SCL High Master kann Parität auswerten
7. Master setzt SCL Low Master nimmt Bestätigung an
8. Slave setzt SDA High
9. Master sendet MSB vom nächsten Byte oder Ende der Übertragung

Ende der Übertragung

9. Master setzt SDA Low T1 = 100µs
10. Master setzt MRQ High T2min = 100µs, T2max = 1ms
11. Master setzt SCL High T3 = 100µs
12. Master setzt SDA High T4 = 100µs

Fehlerbehandlung

Bei Paritätsfehlern setzt Slave SDA auf High. Darauf versucht der der Master das Byte erneut zu senden. Nach insgesamt drei Paritätsfehlern sendet der Master "Ende der Übertragung" und das Display zeigt nur Leerzeichen an.
Nach erfolgreicher Übertragung kann der Master nach 100µs ein erneut Daten senden.

Format eines Bytes

  • MSB wird zuerst gesendet, LSB zuletzt.
  • Zeichen Byte Format: 7 Datenbit, 1 Bit Parität (Ungerade)
  • Symbol Byte Format:
1. Byte Radio Status
2. Byte Tape Status
3. Byte CD Status

Format der Status-Bytes

Bit 1. Byte (Radio Status) 2. Byte (Tape Status) 3. Byte (CD Status)
7 Komma Symbol "CD-In" 0
6 Symbol "RDS" Symbol "Dolby C" Symbol "Track"
5 Symbol "TP" Symbol "Dolby B" Symbol "RDM"
4 Symbol "Stereo" Symbol "cr" Symbol "PGM"
3 0 Symbol "CPS" Symbol "DISC"
2 Symbol "AS" 0 0
1 Klammer um "TP" 0 0
0 Patität Patität Patität

Download

Die gesamte Doku könnt ihr auch als PDF-Datei hier runterladen.

Hardware

TID Evaluation Board

Ich habe mal eine Platine dazu gemacht und davon habe ich noch ein paar über. Wer sich nun ans Basteln machen möchte, aber keine Lust hat die Platine selber zu entwickeln und zu layouten, der kann gerne eine davon gegen einen kleinen Kostenbeitrag abhaben. Die Platine bietet Anschluss an das TID, sowie an eine Taste und die Geber für Geschwindigkeit und Motorumdrehungen. Bei Interesse einfach eine Mail schreiben an: tid[at]carluccio[dot]de

Es handelt sie hierbei nur um die Platine, da ich selber die Funktion für Tacho, Drehzahlmesser und ähnliches nicht brauche, habe ich auch kein Programm für den Mikrocontroller. Anfragen wie: "Mach mir so ein Modul, ich bezahl Dich auch dafür sind zwecklos." Ich habe genug anderes zu tun und die Entwicklung eines C Programmes dazu nimmt mindestens eine Woche Arbeit in Anspruch, wenn mir das jemand angemessen vergüten will, dann her mit den Angeboten. Schöner wäre es, wenn sich jemand dazu bereit erklären würde diese Arbeit zu übernehmen, ich würde Ihn dabei unterstützen und hinterher den Sourcecode hier veröffendlichen damit sich der Nachbau für andere leichter geschtaltet.

Verkauf von Geräten

Ich selber werde auf keinen Fall ein komplettes Gerät verkaufen, da es mir viel zu viel Aufwand ist, denn hier in Deutschland muss man dafür eine CE-Zulassung haben, eine Haftpflichtversicherung abschliessen und nicht zuletzt 2 Jahre Garantie übernehmen und das bei einem Artikel den der Kunde selber anschliessen will.
Ohne das alles wäre es extrem dumm ein solches Gerät auf den Markt zu bringen, denn dann wird man unter Umständen seines Lebens nicht mehr froh. So ist das leider.

Ich biete hier nur ein paar von den übriggebliebenen Evaluation Boards an. Es handelt sich dabei nur um die unbestückten Platinen, die Bauteile mus jeder selber auflöten. Und fertige Software gibt es auch nicht, ich habe da einige C-Codeschnipsel und auch ein Assembler-File mit denen man starten kann, es ist aber weit entfernt von einer serientauglichen Lösung.

Also überlegt es Euch, man lernt viel dabei. Ich habe damit angefangen weil ich das Protokoll verstehen wollte, aber da ich eine solche Anzeige nicht mehr brauche ist an dieser Stelle erstmal Schluss ...

Haftungsausschluss

Alle hier gemachten Angaben habe ich nach bestem Wissen und Gewissen gemacht, selbstverständlich kann ich nicht für deren Richtigkeit garantieren. Wer sich also entschließt an seinem Display rumzubasteln, der macht das auf eigenes Risiko.