Forum: Mikrocontroller und Digitale Elektronik HDMI AD7611 erzeugt falschen Pixeltakt


von Stefan  . (phreakshow)


Lesenswert?

Hi zusammen.

Ich versuche ein Display mit 480x240 per HDMI anzusteuern. Dazu verwende 
ich ein Board, das den HDMI mit einem AD7611 anbindet.

Ich erzeuge mit dem nVidia-Treiber eine eigene Auflösung:
1
aktiv...480..240
2
fporch...35....3
3
sync.....20....2
4
gesamt..550..247
5
pol.......n....n

Das ergibt laut Treiber ein hsync von 14,82kHz, ein vsync von 60Hz und 
einen Pixeltakt von 8,151MHz.

Wenn ich am AD7611 messe, sehe ich mit dem Oszi aber 11,76MHz. Wenn ich 
mit einem anderen Display teste, und dort auf 1280x480 mit allen Werten 
einstelle, gibt mir der Treiber 40MHz Pixeltakt aus. Diese messe ich 
auch exakt mit dem Oszi. da sehe ich auch ein Bild auf dem Display, im 
ersten Fall nicht.

Warum ist der Takt höher, als mir Treiber (und Datenblatt) sagen? Wie 
kann ich nVidia dazu bringen, den korrekten Takt zu verwenden?

von void (Gast)


Lesenswert?

VGA 640x480 könnte die kleinste mach Spec von der Hw unterstützte 
Auflösung sein. Das würde das Verhalten erklären.

von Stefan  . (phreakshow)


Lesenswert?

Sowas hatte ich vermutet, allerdings habe ich kein brauchbares 
Datenblatt der Grafikkarte gefunden in der sowas steht. Im konkreten 
Rechner ist eine Quadro K620, aber da finde ich höchstens maximalen 
Pixeltakt.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Das wird auch nicht im Datenblatt der Graphikkarte drinstehen, sondern 
in der HDMI-Spezifikation. Unter Standard-VGA (640x480) ist halt nix 
drin.

Was Du machen kannst: Halbiere den Pixeltakt auf Empfängerseite und wirf 
jedes zweite empfangene Pixel weg.

Mach das gleiche mit dem Zeilentakt, und werte nur gerade oder nur 
ungerade Zeilen aus.

Damit kannst Du per EDID-EEPROM am HDMI-Stecker eine Auflösung von 
960x480 vorgaukeln, was der Treiber der Graphikkarte ohne weitere 
Verrenkungen Deinerseits direkt "bespielen" können müsste.

Was für ein ungewöhnliches Display mit einem Seitenverhältnis von 2:1 
ist das eigentlich?

von Tobias B. (Firma: www.elpra.de) (ttobsen) Benutzerseite


Lesenswert?

Beim ADV7611 ist bei 13.5 MHz Schluss. Siehe Table 2.

von Stefan  . (phreakshow)


Lesenswert?

Danke für eure Antworten.

Das Display ist ein ACX416AKN bzw ein fast baugleiches ACX453AKC, zu 
letzterem habe ich ein Datenblatt auftreiben können.

Der Aufbau ist:
PC - HDMI - ADV7611 - DS90C385AMT - INAP375T - mb88f332 Indigo - 
ACX416AKN

HDMI wird umgesetzt zu 18bit RGB + VS/HS/DE, danach wirds zu LVDS. Das 
liegt am INAP375 an, wird zu APIX, kommt zum Indigo und der gibts zum 
Panel.

Ich habe keine Möglichkeit, den Pixeltakt nach der Ausgabe noch zu 
beeinflussen, bzw Pixel wegzuwerfen.

Kann man das irgendwie so einstellen auf Treiberseite, dass das Display 
halt zB nur den oberen linken Bildschirmausschnitt anzeigt, und alles 
andere verloren geht und abgeschnitten wird?

Danke für den Tipp mit dem Datenblatt, das hatte ich nicht gesehen. 
Allerdings wundert es mich, dass es eine untere Grenze gibt die doch so 
hoch liegt.

von Tobias B. (Firma: www.elpra.de) (ttobsen) Benutzerseite


Lesenswert?

Stefan M. schrieb:
> Danke für den Tipp mit dem Datenblatt, das hatte ich nicht gesehen.
> Allerdings wundert es mich, dass es eine untere Grenze gibt die doch so
> hoch liegt.

Das wird an der internen PLL liegen, da ist ganz normal dass die eine 
untere Grenze haben. Ich kenne jetzt nicht alle erlaubten HDMI Modes, 
aber ich schaetze mal, das ist immer noch weit unterhalb des kleinsten 
spezifizierten Pixeltakts.

Von daher sollte man eher froh sein, dass man soweit runter kommt. ;-)

von Stefan  . (phreakshow)


Lesenswert?

Ich hab mir das Datenblatt nochmal angesehen. Anscheinend kann das 
Display auch 13MHz Pixeltakt, wenn man sich nicht an den typischen 
Werten orientiert, sondern eher Richtung Maximum geht. Das muss ich 
nachher ausprobieren.

Btw, auf deiner "Über mich" Seite steht Leiderschaft. Muss das so sein 
:)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Stefan M. schrieb:
> Ich habe keine Möglichkeit, den Pixeltakt nach der Ausgabe noch zu
> beeinflussen, bzw Pixel wegzuwerfen.

Den Pixeltakt kannst Du recht einfach beeinflussen, und zwar zwischen 
HDMI-Receiver und LVDS-Transmitter. Da könntest Du ein T-Flipflop 
dazwischenklemmen, das als Taktteiler fungiert.

Die geringe Zeilenzahl ist allerdings ein Problem. Das wird vermutlich 
nicht ganz so einfach.


Was ist das Ziel der Übung? Warum willst Du ein 1.8"-Display mit so 
geringer Auflösung mit einem HDMI-Signal ansteuern?

von Stefan  . (phreakshow)


Lesenswert?

Das Ziel der Übung: Dieses 1,8" Display steckt im HUD von meinem BMW 
F30. Ich habe mir Nachtsicht aus dem 5er nachgerüstet, und will mir das 
Bild im HUD anzeigen.
Deswegen will ich eine Umschaltlösung bauen, die den APIX-Datenstrom vom 
Kombi trennt und stattdessen das Bild von der Nachtsicht-Cam darstellt.
Dazu ist aber der erste Schritt, dass ich überhaupt ein Bild auf dem 
Display ausgeben kann.

von Tobias B. (Firma: www.elpra.de) (ttobsen) Benutzerseite


Lesenswert?

Stefan M. schrieb:
> Btw, auf deiner "Über mich" Seite steht Leiderschaft. Muss das so sein
> :)

Merci, ist korrigiert. :-)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Stefan M. schrieb:
> und stattdessen das Bild von der Nachtsicht-Cam darstellt.

Und in welchem Datenformat/mit welcher Auflösung liefert die ihr Bild?

Etwa HDMI?

Vermutlich ist der (Um-) Weg über ein analoges Videosignal hier 
einfacher. HDMI lässt mit kostengünstigen Wandlern in 
PAL-Composite-Video-Signale konvertieren, und die HDMI-Quelle muss dabei 
nichts von der niedrigen PAL-Auflösung wissen, um das "downscaling" 
kümmert sich die spottbillige Wandlerelektronik (die scheint 720p und 
1080p als Quellformate zu unterstützen).

https://www.amazon.de/GANA-Konverter-Composite-Adapter-Ladekabel-Blau/dp/B06XJTV33G/

Es dürfte deutlich einfacher sein, aus diesem Signal wiederum irgendwas 
zu konstruieren, was Du in Dein HUD einspeisen kannst.

von Stefan  . (phreakshow)


Lesenswert?

Die Nachtsichtcam liefert PAL in den Analog-Video-Eingang der Headunit. 
Das hätte ich mit nem Y-Adapter gesplittet, in meinem CarPC auf HDMI 
gewandelt und von dort in die "HDMI - ADV7611 - DS90C385AMT - INAP375T - 
mb88f332 Indigo" Adapterplatine gefüttert.
Die HUD-Ansteuerplatine kann ja leider nur HDMI, keine analogen Quellen. 
Sonst wärs ja einfach :D

von Stefan  . (phreakshow)


Lesenswert?

Ich möchte eigentlich auch noch eine eigene Platine entwickeln, sehe 
aber Probleme mit dem Pixeltakt. Der PTN3460 den ich im Sinn hatte, kann 
nur bis 25MHz runter. Das ist ja viel zu viel...

Gibts die nicht auch noch langsamer, am besten für DisplayPort?

von void (Gast)


Lesenswert?

Stefan M. schrieb:
> Der PTN3460 den ich im Sinn hatte, kann nur bis 25MHz runter. Das ist ja
> viel zu viel...
>
> Gibts die nicht auch noch langsamer, am besten für DisplayPort?

Mit LVDS, HDMI, DP und Co wird das schwer. Wie schon gesagt unter VGA 
Auflösung ist eher ungewöhnlich. Tobias hat dir auch eine technische 
Erklärung geliefert warum das so ist. Rufus mit der Übertragung von 
größeren dann teils nichtgenutztem Displayinhalt eine mögliche Lösung.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Stefan M. schrieb:
> Die Nachtsichtcam liefert PAL in den Analog-Video-Eingang der Headunit.

Das passt doch nicht zu dem, was Du bislang geschrieben hast.

Du hast ein HUD, das von irgendwas auf mystische Weise angesteuert wird 
(aber nicht analog) und möchstest da eine analoge Signalquelle 
dranhängen.

Was hat jetzt der "CarPC" damit zu tun?

Oder gehören HUD und Kamera zusammen und Du möchtest zusätzlich noch das 
Signal Deines "CarPC" auf dem Display darstellen können?

von Stefan  . (phreakshow)


Lesenswert?

Hab ich euch sauber verwirrt :)
Eigentlich passt es ganz gut zusammen. Aber ich erklärs nochmal 
zusammenfassend.

Serienzustand:
Auto mit Kombi und HUD, Kombi schickt Bilddaten per APIX ans HUD.
Nachtsichtcam schickt Bilddaten per analog PAL an die Headunit.

Ziel:
Bilddaten von Nachtsichtcam sollen im HUD dargestellt werden.

Einziger Weg um Bilddaten ins HUD zu bekommen: APIX (mein mystisches 
Adapterboard), das INAP375T TRANSMITTER BOARD von Inova das ich vor 
Jahren mal bei ebay schießen konnte.

https://inova-semiconductors.de/inap375t-transmitter-board.html

Dort ist der AD7611 drauf, auf den sich meine Eingangsfrage bezieht. In 
das Board kann ich nur mit HDMI rein.

Mein Plan:
PAL-Signal im CarPC digitalisieren, CarPC per HDMI ans Inova-Board, und 
dieses Bild dann auf dem HUD darstellen.
Im zweiten Schritt dann eine wie auch immer geartete Umschaltlösung.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Stefan M. schrieb:
> PAL-Signal im CarPC digitalisieren, CarPC per HDMI ans Inova-Board, und
> dieses Bild dann auf dem HUD darstellen.

Ist so nicht umsetzbar, da Dein CarPC nicht das verquere Timing 
produzieren kann, das das Display benötigt. Dein "HDMI-zu-APEX"-Umsetzer 
scheint nicht die richtige Wahl zu sein, wenn er der HDMI-Quelle ein 
HDMI-Signal mit nicht standardkonformem Timing vorgibt.

Du solltest eher nach einem Weg suchen, ein APIX-Signal direkt aus einem 
Composite-Video-Signal zu erzeugen.

Das "Kombi" (ich liebe diese sinnentstellenden und damit -losen 
Abkürzungen) sieht nicht vor, irgendwo irgendwelche Videosignale 
einzuspeisen?

von Stefan  . (phreakshow)


Lesenswert?

Das Kombi, oder Kombi-Instrument ist das, was man früher Tacho nannte. 
Ich dachte das ist ein üblicher Begriff. Das hat keine Videoeingänge, 
dort sitzt der Grafikchip (iirc ein Jade-D von Fujitsu), der das Bild 
rechnet und dann ans HUD überträgt.

APIX direkt aus composite geht afaik nicht, denn die INAP375T haben nur 
digitale Eingänge, entweder für LVDS oder 18/24bit RGB parallel. Evtl 
gibt es ja Umwandler von composite auf RGB oder LVDS, so dass ich das 
Problem des HDMI-Pixeltakts umgehen kann.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Stefan M. schrieb:
> Evtl gibt es ja Umwandler von composite auf RGB oder LVDS,

Die werden nicht helfen, weil das Display mit seiner merkwürdigen 
Auflösung natürlich nicht mit dem normalen PAL-Timing "bespielt" werden 
kann.

Du bräuchtest einen programmierbaren Abtastratenkonverter. Der aber ist 
erheblicher Aufriss.

von Stefan  . (phreakshow)


Lesenswert?

"Eigentlich" bräuchte ich nur einen HDMI/DV/DP auf LVDS Umsetzer, der 
mit 10MHz Pixeltakt klar kommt? Irgendwie riecht das alles nach FPGA, 
der mir dann ais meinen Signalen genau das richtige schnitzt.

Beispielsweise könnte ich mit VGA rein, alles was zu viel ist 
wegschneiden und das was übrig bleibt in den INAP375T füttern. Dann ist 
die HDMI-Spec erfüllt, und der INAP375T hat kein problem mit so geringen 
Takten.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Stefan M. schrieb:
> HDMI/DV/DP auf LVDS Umsetzer, der mit 10MHz Pixeltakt klar kommt?

So einfach ist das nicht. Du hast eine wie auch immer geartete Hardware, 
die ein HDMI-Signal erzeugt, dies aber nur innerhalb gewisser Parameter 
kann - ob das nun die Graphikkarte in Deinem "CarPC" oder ein DVD-Player 
oder ein Composite-Video-zu-HDMI-Umsetzer ist. Diese "gewissen 
Parameter" sind eine Liste von Standard-Videotimings, 1080p, 720p oder 
die üblichen PC-Auflösungen. Und die geben damit auch den Pixeltakt vor, 
der ganz erheblich über Deinen 10 MHz liegt.

Dein gewünschter Umsetzer müsste eine Abtastratenkonvertierung vornehmen 
und ein (z.B.) 720p-Signal in Dein Ultra-Low-Res-Signal umrechnen, 
d.h. ein zu Deinem Display passendes Timing inklusive Pixeltakt 
erzeugen.

> Beispielsweise könnte ich mit VGA rein, alles was zu viel ist
> wegschneiden

Äh, ja, so einfach kann man das natürlich beschreiben, was ein 
Abtastratenkonverter macht, aber das ist alles andere als trivial.

Das Ding müsste a) eine standardkonforme HDMI-Senke mit wenigstens einem 
Timing sein, das die HDMI-Quelle liefern kann, also z.B. 720p.

Dann müsste es b) einen Speicher für komplette Bilder enthalten und 
diesen Speicher mit dem HDMI-Signal der Quelle befüllen. Zeitgleich 
müsste es völlig asynchron und deutlich langsamer diesen Speicher 
selektiv wieder auslesen (um Deinen "Beschnitt" zu erzeugen) und daraus 
ein Signal mit Deinem gewünschten Timing für Dein Display zu erzeugen.

Kann man mit einem FPGA sicherlich irgendwie hinbekommen, ist aber eben 
ganz schöner Aufriss.

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.