Forum: Mikrocontroller und Digitale Elektronik ESP32 - VGA Ausgangbeschaltung für schön Bunt


von Manuel L. (thewhiteshadow)


Lesenswert?

Hallo,

ich habe mir zwei ESP32 gekauft, weil er einfach so viel für so wenig 
Geld kann. Mein Ziel ist eine art Mini-Computer zu bauen.

Ich möchte einen davon als Grafik-Einheit für einen VGA-Monitor 
verwenden.
Mir macht hierbei allerdings noch die VGA-Beschaltung probleme um 
möglichst viele Farben nutzen zu können. Leider beschränken sich alle 
Anleitungen darauf mit einer oder maximal 3 Farben etwas anzuzeigen. Ich 
denke aber da geht mehr.

Wenn ich das richtig verstanden habe, habe ich insgesamt 11 I/Os von den 
ich 2 für eine Kommunikation mit meiner CPU (zweites Board) benötige 
(Wenn ich überhaupt noch eins brauche bei 2 Kernen). Bleiben also noch 9 
Pins, davon sind 2 für V/H-Sync.
Somit letztendlich 7 für die RGB-Signale. Bzw. 2 pro Kanal und einen 
reserve.

Meine erste Idee: Ein einfacher Spannungsteiler mit je 2 Ausgängen pro 
Komponente für 3 Werte pro Kanal. (Theoretisch 27 Farben)
Beschaltung wäre entweder nix, A oder B.

Theoretisch könnte ich die 2 Ausgänge aber auch als binär-code 
interpretieren und würde so auf 4 Werte pro Kanal. (Theoretisch 64 
Farben)
Beschaltung wäre entweder nix, A, B oder AB. Hierfür fehlt mir aber das 
Wissen zur Umsetzung.
Wenn ich das richtig verstanden habe, benötige ich einen DAC 
Multiplexer. Sowas wie der TLC7528. Der hat 2x4bit, braucht aber noch 
einen OPV dahinter.

Gibt es dafür evtl. eine passendere Alternative?
Ist die Vorgehensweise zu empfehlen? Und geht meine Rechnung überhaut 
auf?
Kann mir jemand bei der Impelmentierung der zweiten Variante helfen. 64 
Farben wären echt nice.

von Michael U. (amiga)


Lesenswert?

Hallo,

vorweg: ich habe da noch nichts praktisch gemacht, nur etwas 
recherchiert, weil ich RGB in 15625/50Hz gebrauchen könnte.
Mal als Ansatz: 3x PWM mit Tiefpass dahinter für R/G/B.
Ich kopiere mal den Auszug hier rein:

The maximum PWM frequency with the currently used ledc duty resolution 
of 10 bits in PWM module is 78.125KHz.

The duty resolution can be lowered down to 1 bit in which case the 
maximum frequency is 40 MHz, but only the duty of 50% is available.
For duty resolution of 8 buts, the maximal frequency is 312.5 kHz.

    The available duty levels are (2^bit_num)-1, where bit_num can be 
1-15.
    The maximal frequency is 80000000 / 2^bit_num
aus
https://forum.micropython.org/viewtopic.php?t=3717

DAC hat er ja nur 2, da fehlte dann eine Farbe. Die Kombi DAC und I2S 
ist auch beachtlich schnell, immerhin bastlt er z.B. ein komplettes PAL 
oder NTSC-FBAS zusammen und gibt es per DAC aus. Incl. Sync, Burst usw.
Das funktioniert verblüffend gut.
http://bitluni.net/esp32-color-pal/

Ist bisher bei mir aber eben alles noch sehr theoretische Betrachtung.
Also erstmal klären: gewünschte Auflösung, gewünschte Anzahl Werte pro 
Farbe, gewünschte H/V Frequenz und dann den Taschenrechner und die 
Espressif-Interna und das deren Forum durchkramen...

Gruß aus Berlin
Michael

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.