Mit dieser Library kann anstelle vom internen LCD-Display vom STM32F429-Discovery
ein externer Monitor (im VGA-Mode) angeschlossen werden.
Benötigt wird ein R2R-DAC mit diskreten Widerständen.
Einen Schaltplan (für die 8bit-Version) findet ihr weiter unten.
Bei meinen Tests habe ich den R2R-DAC parallel zu dem eingelöteten Display angeschlossen (das hat funktioniert). Besser wäre es natürlich das LCD von der
Platine runterzulöten. Könnt ihr machen wie ihr wollt, kaputt geht nichts.
Auch habe ich hier nur einen 8bit R2R-DAC. Eigentlich kann ein 16bit DAC angeschlossen werden. Mit 8bit sind nur 256 Farben möglich, die Library unterstützt aber die vollen 65535 Farben.
Die VGA-Auflösung ist 640 x 480 Pixel @60Hz . Im H-File kann eingestellt werden
welche Auflösung und Ausrichtung das dargestellte Bild haben soll.
Mode-0 = 640 x 480 Pixel
Mode-1 = 320 x 240 Pixel
Mode-2 = 240 x 320 Pixel
Im Mode 1 und 2 wird das Bild zentriert auf dem Monitor angezeigt. Außenrum ist
dann ein schwarzer Rahmen.
Im Mode 1+2 ist die Library identisch mit meiner LCD-Library.
Alle Programme die für das LCD geschrieben sind,
laufen also auch auf dem VGA-Monitor.
(event. müssen include Namen angepasst werden z.B. bei der FONT-Library)
Hinweis : alle Funktionen die direkt in das Grafik-RAM schreiben
(also die DrawPixel-Funktion umgehen) müssen angepasst werden,
weil die Speicheranordnung anders ist als auf dem LCD-Display.
Der Mode-0 braucht 4mal so viel Speicherplatz im SDRAM
und hat andere maximum Koordinaten für X/Y.
Beim ersetzen von der LCD-Library muss das berücksichtigt werden.
Schaltplan (8bit-Version) :
Benutzte Pins :
1 2 3 4 5 6 7 8 | R7=PG6 G7=PD3 B7=PB9 R6=PB1 G6=PC7 B6=PB8 R5=PA12 G5=PB11 B5=PA3 R4=PA11 G4=PB10 B4=PG12 R3=PB0 G3=PG10 B3=PG11 R2=PC10 G2=PA6 B2=PD6 HSync=PC6, VSync=PA4 |
Voraussetzungen :
1 2 | Benutzte Module der CooCox-IDE : GPIO, LTDC Benutzte Librarys : STM32_UB_SDRAM |
Beispiel :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | //-------------------------------------------------------------- // File : main.c // Datum : 30.11.2014 // Version : 1.0 // Autor : UB // EMail : mc-4u(@)t-online.de // Web : www.mikrocontroller-4u.de // CPU : STM32F429 // IDE : CooCox CoIDE 1.7.4 // GCC : 4.7 2012q4 // Module : CMSIS_BOOT, M4_CMSIS_CORE // Funktion : Demo der VGA-Library // Hinweis : Diese zwei Files muessen auf 8MHz stehen // "cmsis_boot/stm32f4xx.h" // "cmsis_boot/system_stm32f4xx.c" // In Configuration diese Define hinzufügen : // "STM32F429_439xx" , "__ASSEMBLY__" , "USE_STDPERIPH_DRIVER" //-------------------------------------------------------------- #include "main.h" #include "stm32_ub_lcd_vga.h" #include "stm32_ub_font.h" int main(void) { SystemInit(); // Quarz Einstellungen aktivieren // init fuer VGA-Monitor UB_LCD_InitVGA(); UB_LCD_LayerInit_Fullscreen(); // auf Hintergrund schalten UB_LCD_SetLayer_1(); // Hintergrund komplett mit einer Farbe füllen UB_LCD_FillLayer(RGB_COL_WHITE); // auf Vordergrund schalten UB_LCD_SetLayer_2(); // Vordergrund komplett mit einer Farbe füllen UB_LCD_FillLayer(RGB_COL_GREEN); UB_Font_DrawString(10,10,"Arial-10x15",&Arial_10x15,RGB_COL_BLACK,RGB_COL_WHITE); while(1) { } } |
Hier die Library zum Download :
Hier der komplette CooCox-Projektordner zum Download :
Hello, congratulations Uwe, how 16 bits schematic should be,
I wish you continued success,
VGA needs a voltage between 0,0V and 0,7V (with 75 Ohm impedance).
And if you know : U=I*R you can calculate this on your own i think.
I am mechanical engineer