ESP32 - VGA Ausgangbeschaltung für schön Bunt

OP #5687303
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.
#5687330
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.