Forum: Mikrocontroller und Digitale Elektronik Unbekannter I2C Chip


von Christian H. (christian_h60)


Lesenswert?

Hallo zusammen,

ich möchte den Videochip RTD2660 von Realtek in einer eigenen Schaltung
einsetzen und muss mangels Daten und Sourcecode eine vorhandene Platine
re-engineeren.

Neben dem RTD2660 ist ein unbeschrifteter SO-8 verbaut. Beschaltet ist 
er
recht ungewöhnlich:

Pin 1 Vcc
Pin 4 SCL (geht an den Pin 56 IICSCL vom RTD)
Pin 5 SDA (geht an den Pin 64 SD0 vom RTD)
Pin 8 GND
alle weiteren Pins sind nicht angeschlossen.

Der Chip wird über Adresse 0x14, bzw. 28W und 29R angesprochen.
Es werden sechs Bytes geschrieben und sechs Bytes zurückgelesen,
und das zweimal nacheinander. (jeweils unterschiedliche Daten)

Die Daten sind statisch und bei mehreren Platinen identisch. Wenn der
Chip ausgelötet ist, zeigt der Bildschirm nur eine gelbe Fläche (normal
wäre ein blauer Bildschirm mit "no signal")

Ich bin am rätseln, was das sein könnte. Timingdaten fürs Display?
Kopierschutz? Vielleicht hat einer von euch eine Idee?

Mir ist auch kein Speicher bekannt, der so beschaltet wäre.

Viele Grüße,
Christian

Edit: ich habe noch eine etwas ätere Platine, die nur HDMI kann.
Dort sind die ersten sechs Bytes, die geschrieben werden, anders.
Ansonsten sind alle weiteren mit den anderen Platinen gleich.

von (prx) A. K. (prx)


Lesenswert?

Christian H. schrieb:
> Pin 1 Vcc
> Pin 8 GND

Diese Belegung findet man beispielsweise bei Microcontrollern der 8-Bit 
PIC und Zilog Z8 Familien.

von Harald (Gast)


Lesenswert?

Christian H. schrieb:
> Pin 4 SCL (geht an den Pin 56 IICSCL vom RTD)
> Pin 5 SDA (geht an den Pin 64 SD0 vom RTD)

Habe es mir gerade mal angeschaut. Pin 56 SCL, Okay. Aber Pin 64 ist ja 
nicht I2C sondern I2S, also Audio. Sicher, dass das so stimmt? Stelle 
doch mal ein Detailfoto hier ein.

von Christian H. (christian_h60)


Angehängte Dateien:

Lesenswert?

Hier die Fotos.

Die beiden Widerstände rechts haben 10k.

Dem Hinweis auf Microchip und Zilog werde ich gleich nachgehen.

An einen Kopierschutz kann ich irgendwie nicht glauben. Es ist ja
noch ein weiteres EDID-EEPROM vorhanden, aus dem sich der RTD beim
Start die Firmware holt.

Ich kann auch den Chip von der alten Platine auf die neue löten und
es funktioniert einwandfrei. Der Chip muss auch nur zum Start vorhanden
sein und kann später entfernt werden.

Die Firmware von beiden Platinen ist definitiv unterschiedlich, die
eine kann nur HD und nicht auf andere Quellen umschalten. Die andere
lässt sich auf VGA und AV umschalten.

Timing für das angeschlossene LVDS-LCD könnte ich mir vorstellen. Dann
müsste man nicht jedes Mal die gesamte Firmware neu kompilieren, wenn
man ein anderes LCD anschließt. Aber dann müsste der Chip zugänglich
sein und das ist er nicht per Testpunkte oder Stecker.

Grüße,
Christian

von Christian H. (christian_h60)


Lesenswert?

Jetzt habe ich mir einige 8-Pin PICs und auch bei LCSC mal nach den ganz
billigen 8-Pin Controllern angesehen. Von der Anschlussbelegung könnte 
es
durchaus ein Mikrocontroller sein.

Sehr eigenartig, welche Aufgabe sollte der denn haben, was der große
8051 nicht auch könnte? Ein I2C EEPROM wäre doch sicher noch preiswerter
als ein Controller.

Diese Daten werden zum SO-8 geschickt:
0x14 (adr write)
0xf1, 0x8b, 0xaa, 0x5d, 0x13, 0xc8

Dann wird gelesen:
0x14 (adr read)
0xc0, 0x37, 0x79, 0x8e, 0xe5, 0x48

Nochmal schreiben:
0x14 (adr write)
0x08, 0x8c, 0xc2, 0x35, 0x8a, 0x08

Und ein letztes mal lesen:
0x14 (adr read)
07d, 0x8a, 0x35, 0xc2, 0x8c, 0xb6

Die Daten sind bei jedem Einschalten identisch und es wird im Betrieb 
nicht
erneut darauf zugegriffen. Bei der älteren Platine ist nur die erste
Schreibsequenz unterschiedlich, die restlichen drei sind identisch.

Vielleicht sind das ja Daten vom EDID-EEPROM und vom Controller kommt
irgendwas schlaues zurück?

Viele Grüße,
Christian

von PittyJ (Gast)


Lesenswert?

Ich hatte bislang auf I2C Ebene mit mehreren EEproms, Flash-Chips und 
anderen Sensoren zu zun. Darunter auch ein Crypto-Chip.

Die Adresse stimmt mit nichts von denen. Und auch die 6 Bytes Lese / 
Schreib Sequenzen passen nicht in ein Schema, dass mir schon mal unter 
gekommen ist.

Interessant ist nur, dass die 2te Antwort ja die gedrehten Bytes des 
2ten Sendens enthält. So etwas hatte ich bei keinem Chip.

von Johannes O. (jojo_2)


Lesenswert?

Kopierschutz eher nicht. Wenn da immer die gleichen Daten kommen dann 
ist das nutzlos für solche Zwecke.

Es kann ggf wirklich ein Mikrocontroller sein der nur Config speichert 
(was aber nicht die langen Schreibzyklen erklären würde.
Mikrocontroller haben oftmals internes EEPROM, eventuell kann das der 
große Chip nicht leisten: Nachträgliches Konfigurieren, Aktivieren von 
Features, etc, alles so veränderbarer Speicher notwendig ist.

Auffällig ist noch, dass auf dem Chip nichts aufgedruckt ist. Spricht 
eher für ne sehr spezielle oder kundenspezifische Lösung.

Jetzt wäre natürlich noch interessant, was passiert, wenn du die Daten 
änderst die dort hin und zurück gehen. Ob sich dann der Chip anders 
verhält oder auch die Bildausgabe.


Wenn es dir wirklich unter den Nägeln brennt: Ätz den Chip auf, dann 
siehts du ob Mikrocontroller, Speicherchip, etc. Aber ich denke das ist 
weit über das Ziel hinausgeschossen ;-)

von Christian H. (christian_h60)


Lesenswert?

PittyJ schrieb:
> Ich hatte bislang auf I2C Ebene mit mehreren EEproms, Flash-Chips und
> anderen Sensoren zu zun. Darunter auch ein Crypto-Chip.
>
> Die Adresse stimmt mit nichts von denen. Und auch die 6 Bytes Lese /
> Schreib Sequenzen passen nicht in ein Schema, dass mir schon mal unter
> gekommen ist.
>
> Interessant ist nur, dass die 2te Antwort ja die gedrehten Bytes des
> 2ten Sendens enthält. So etwas hatte ich bei keinem Chip.

Gedrehte Bytes des 2ten Sendens? Wo denn genau, mir ist das gar nicht
aufgefallen. Ich hatte auch schon Kombinationen versucht, ob sich da
irgendwie die 1280 x 800 Pixel oder ähnliches finden lassen aber da
war nichts, was direkt ins Auge gesprungen wäre.

Was mich etwas verwundert, die sechs Byte passen nicht zu einer 
Adressierung
eines EEPROM, dafür ist es zu viel. Das würde auf jeden Fall zu einem
Controller passen.

Was noch auffällig ist, die ersten sechs Sende-Bytes erzeugen exakt die
gleiche Rückantwort, auch wenn etwas anderes gesendet wurde. (2. 
Platine)

Ich werde noch etwas im OSD-Menü verstellen und messen ob dann ggf. 
etwas
geschrieben wird. Aber so wie es aussieht, komme ich um einen kleinen 
PIC
nicht herum, der die gewünschte Sequenz emuliert.

Zum RTD findet sich einiges an Firmware im Netz. Prinzipiell könnte ich
mir eine eigene passend für mich zusammenstricken aber welche Daten ich
für das LCD benötige, weiß ich damit auch nicht.

Ich habe schon mal ein Video-Board mit dem TFP401a von TI entwickelt. Es
hat viele, viele Stunden gebraucht, bis ich da das richtige Timing im
Raspberry herausgefunden hatte. Das wird hier nicht anders sein und 
schreckt
mich sehr ab.

Es kann gut sein, dass es diesen SO-8 Controller aus einem ähnlichen 
Grund
gibt, nämlich nicht immer die ganze Firmware vom RTD neu kompilieren zu
müssen, bloß weil sich das LCD von 4.3 auf 7 auf 8 oder 10" ändert.

Vielen Dank fürs drüberschauen,
Christian

von Mathias A. (mrdelphi)


Lesenswert?

Christian H. schrieb:
> Ich bin am rätseln, was das sein könnte.

Danke dass Du uns daran teilhaben lässt, ich liebe solche Rätsel 🙂😁

Christian H. schrieb:
> Gedrehte Bytes des 2ten Sendens? Wo denn genau, mir ist das gar nicht
> aufgefallen

Die mittleren 4 Bytes der 2. Anfrage kommen in der Antwort in 
umgedrehter Reihenfolge vor.

Christian H. schrieb:
> Ich werde noch etwas im OSD-Menü verstellen und messen ob dann ggf.
> etwas
> geschrieben wird.

Denke auch, ist einen Versuch wert zu schauen ob sich dann irgendwas an 
den Daten ändert.

Ansonsten könntest auch mal probieren den Chip mit irgendwelchen anderen 
Sequenzen anzusprechen, und schauen ob und wie er dann reagiert. (Wobei 
da theoretisch das Risiko besteht dass man ihn ungewollt umprogrammiert 
und er danach nicht mehr geht...)

Was tut das Board eigentlich? (vielleicht lässt sich von der Funktion 
her darauf schließen wozu der Chip gut sein könnte)

von bingo (Gast)


Lesenswert?

(prx) A. K. schrieb:
> Diese Belegung findet man beispielsweise bei Microcontrollern der 8-Bit
> PIC und Zilog Z8 Familien.

PIC nicht: dazu passt der Anschluss von SDC und SCK an Pin 3 und 4 
nicht, bei 8-beinigen PICs sind das Pin 5 und 6

von Christian H. (christian_h60)


Lesenswert?

Mathias A. schrieb:
> Was tut das Board eigentlich? (vielleicht lässt sich von der Funktion
> her darauf schließen wozu der Chip gut sein könnte)

Das ist ein HDMI auf LVDS Converter mit eingebautem Scaler. Der Chip
selber kann auch Audio aus dem HDMI-Datenstrom ausleiten und über
I2S ausgeben.

Er kann auch AV oder VGA digitalisieren und über LVDS ausgeben.
Theoretisch könnte der RTD2662 auch zwei HDMI-Eingänge aber ich habe
noch nie ein Board mit zwei HDMI-Buchsen gesehen, geschweige denn eine
verfügbare Firmware dafür.

Außerdem sind ein on screen Menü für Einstellungen, Quellenwahl, IR-
Fernbedienungsempfänger und Tastenabfrage über A/D-Eingang eingebaut.

Meine bisherige Platine hatte den TFP401a zusammen mit dem DS90C385a
drauf. Beide Chips zusammen liegen bei rund 11 EUR. Man muss bereits
bei der Videoquelle exakt das Display-Timing einstellen, sonst gibt
das LCD kein Bild aus. Der TFP401a kann nicht skalieren.

Der RTD2662 kostet einzeln 2,5 EUR und hat sogar noch einen Videoscaler
und HDMI-Audio an Bord. Theoretisch könnte er auch zwischen zwei
HDMI-Quellen umschalten, bisher habe ich dafür den TMDS261B verwendet.
Der kostet noch einmal 2,60 EUR.

Die Kosten sind nicht einmal das große Thema. Aber HDMI-Audio und der
Video-Scaler sind schon Argumente.

Ich habe mir schon den PIC12F1822 herausgesucht, der hat I2C und ist
halbwegs bezahlbar. Mal sehen ob es klappt, wenn ich die Sequenzen
einfach so zurücksende.

Grüße,
Christian

von Christian H. (christian_h60)



Lesenswert?

Hallo zusammen,

jetzt habe ich nochmal einige Messungen vorgenommen.

Änderungen bei OSD Sprache, Helligkeit usw. werden abgespeichert.
Allerdings NICHT in dem I2C-Chip.

Die Platine mit nur HDMI reagiert nicht auf den Taster für die
Quellenwahl. Die I2C Schreib- und Lesesequenzen sind immer identisch.

Die Platine mit HDMI, VGA und AV gibt immer dann Daten an den Chip,
wenn auf AV gewechselt wird. Wenn dann weiter auf HDMI oder VGA
geschaltet wird, gibt es keinen Datenaustausch.

Allerdings merkt sich der RTD die zuletzt gewählte Quelle und gibt
dann beim Powerup andere Daten an den I2C-Chip als wenn HDMI gewählt
war.

Lässt man auf HDMI stehen und macht einen Powercycle, kommt immer
wieder die gleiche Sequenz. Bei der Platine, die nur HDMI kann, ist
das sowieso immer der Fall.

Nun gut, mich interessiert auch nur HDMI. Dann werde ich als nächstes
den PIC programmieren und die erwünschten Antwortsequenzen erzeugen.

Ich habe die Bilder vom Logic-Analyzer angehängt. Die sind jetzt nur
von akademischem Interesse aber vielleicht braucht mal jemand genau
diese Sequenzen für ein eigenes Projekt mit dem RTD.

Grüße,
Christian

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.