{"id":335,"date":"2017-11-23T21:11:45","date_gmt":"2017-11-23T20:11:45","guid":{"rendered":"http:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=335"},"modified":"2017-12-30T19:32:46","modified_gmt":"2017-12-30T18:32:46","slug":"26-lcd_vga-mode-library-stm32f429","status":"publish","type":"page","link":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f429\/komplette-library-liste-stm32f429\/26-lcd_vga-mode-library-stm32f429\/","title":{"rendered":"26-LCD_VGA-Mode-Library (STM32F429)"},"content":{"rendered":"<p><div id=\"nav-below\" class=\"navigation\"><div class=\"nav-previous\"><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f429\/komplette-library-liste-stm32f429\/25-spi_bma180-library-stm32f429\/\" title=\"25-SPI_BMA180-Library (STM32F429)\"><span class=\"meta-nav\">\u2190<\/span> 25-SPI_BMA180-Library (STM32F429)<\/a><\/div><\/div><!-- #nav-below --><div id=\"nav-below\" class=\"navigation\"><div class=\"nav-next\"><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f429\/komplette-library-liste-stm32f429\/27-simple_gui-library-stm32f429\/\" title=\"27-Simple_GUI-Library (STM32F429)\">27-Simple_GUI-Library (STM32F429) <span class=\"meta-nav\">&rarr;<\/span><\/a><\/div><\/div><!-- #nav-below --><\/p>\n<p>Mit dieser Library kann anstelle vom internen LCD-Display vom STM32F429-Discovery<br \/>\nein externer Monitor (im VGA-Mode) angeschlossen werden.<\/p>\n<p>Ben\u00f6tigt wird ein R2R-DAC mit diskreten Widerst\u00e4nden.<br \/>\nEinen Schaltplan (f\u00fcr die 8bit-Version) findet ihr weiter unten.<\/p>\n<p>Bei meinen Tests habe ich den R2R-DAC parallel zu dem eingel\u00f6teten Display angeschlossen (das hat funktioniert). Besser w\u00e4re es nat\u00fcrlich das LCD von der<br \/>\nPlatine runterzul\u00f6ten. K\u00f6nnt ihr machen wie ihr wollt, kaputt geht nichts.<\/p>\n<p>Auch habe ich hier nur einen 8bit R2R-DAC. Eigentlich kann ein 16bit DAC angeschlossen werden. Mit 8bit sind nur 256 Farben m\u00f6glich, die Library unterst\u00fctzt aber die vollen 65535 Farben.<\/p>\n<p>Die VGA-Aufl\u00f6sung ist 640 x 480 Pixel @60Hz . Im H-File kann eingestellt werden<br \/>\nwelche Aufl\u00f6sung und Ausrichtung das dargestellte Bild haben soll.<br \/>\nMode-0 = 640 x 480 Pixel<br \/>\nMode-1 = 320 x 240 Pixel<br \/>\nMode-2 = 240 x 320 Pixel<br \/>\nIm Mode 1 und 2 wird das Bild zentriert auf dem Monitor angezeigt. Au\u00dfenrum ist<br \/>\ndann ein schwarzer Rahmen.<\/p>\n<p>Im <strong>Mode 1+2<\/strong> ist die Library identisch mit meiner LCD-Library.<\/p>\n<p>Alle Programme die f\u00fcr das\u00a0LCD geschrieben sind,<br \/>\nlaufen also auch auf dem VGA-Monitor.<br \/>\n(event. m\u00fcssen include Namen angepasst werden z.B. bei der FONT-Library)<\/p>\n<p>Hinweis : alle Funktionen die direkt in das Grafik-RAM schreiben<br \/>\n(also die DrawPixel-Funktion umgehen) m\u00fcssen angepasst werden,<br \/>\nweil die Speicheranordnung anders ist als auf dem LCD-Display.<\/p>\n<p>Der <strong>Mode-0<\/strong> braucht 4mal so viel Speicherplatz im SDRAM<br \/>\nund hat andere maximum Koordinaten f\u00fcr X\/Y.<br \/>\nBeim ersetzen von der LCD-Library muss das ber\u00fccksichtigt werden.<\/p>\n<p><strong>Schaltplan (8bit-Version) :<\/strong><\/p>\n<p><a href=\"wp-content\/uploads\/2014\/12\/vga_stm32f429.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-4488\" src=\"wp-content\/uploads\/2014\/12\/vga_stm32f429-300x179.jpg\" alt=\"vga_stm32f429\" width=\"300\" height=\"179\" \/><\/a><\/p>\n<p><strong>Benutzte Pins :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">R7=PG6    G7=PD3    B7=PB9\r\nR6=PB1    G6=PC7    B6=PB8\r\nR5=PA12   G5=PB11   B5=PA3\r\nR4=PA11   G4=PB10   B4=PG12\r\nR3=PB0    G3=PG10   B3=PG11\r\nR2=PC10   G2=PA6    B2=PD6\r\n\r\nHSync=PC6,  VSync=PA4<\/pre>\n<p><strong>Voraussetzungen :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">Benutzte Module der CooCox-IDE : GPIO, LTDC \r\nBenutzte Librarys : STM32_UB_SDRAM<\/pre>\n<p><strong>Beispiel :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">\/\/--------------------------------------------------------------\r\n\/\/ File     : main.c\r\n\/\/ Datum    : 30.11.2014\r\n\/\/ Version  : 1.0\r\n\/\/ Autor    : UB\r\n\/\/ EMail    : mc-4u(@)t-online.de\r\n\/\/ Web      : www.mikrocontroller-4u.de\r\n\/\/ CPU      : STM32F429\r\n\/\/ IDE      : CooCox CoIDE 1.7.4\r\n\/\/ GCC      : 4.7 2012q4\r\n\/\/ Module   : CMSIS_BOOT, M4_CMSIS_CORE\r\n\/\/ Funktion : Demo der VGA-Library\r\n\/\/ Hinweis  : Diese zwei Files muessen auf 8MHz stehen\r\n\/\/              \"cmsis_boot\/stm32f4xx.h\"\r\n\/\/              \"cmsis_boot\/system_stm32f4xx.c\"\r\n\/\/ In Configuration diese Define hinzuf\u00fcgen :\r\n\/\/ \"STM32F429_439xx\" , \"__ASSEMBLY__\" , \"USE_STDPERIPH_DRIVER\"\r\n\/\/--------------------------------------------------------------\r\n\r\n#include \"main.h\"\r\n#include \"stm32_ub_lcd_vga.h\"\r\n#include \"stm32_ub_font.h\"\r\n\r\nint main(void)\r\n{\r\n  SystemInit(); \/\/ Quarz Einstellungen aktivieren\r\n\r\n  \/\/ init fuer VGA-Monitor\r\n  UB_LCD_InitVGA();\r\n  UB_LCD_LayerInit_Fullscreen();\r\n  \/\/ auf Hintergrund schalten\r\n  UB_LCD_SetLayer_1();\r\n  \/\/ Hintergrund komplett mit einer Farbe f\u00fcllen\r\n  UB_LCD_FillLayer(RGB_COL_WHITE);\r\n  \/\/ auf Vordergrund schalten\r\n  UB_LCD_SetLayer_2();\r\n  \/\/ Vordergrund komplett mit einer Farbe f\u00fcllen\r\n  UB_LCD_FillLayer(RGB_COL_GREEN);\r\n\r\n  UB_Font_DrawString(10,10,\"Arial-10x15\",&amp;Arial_10x15,RGB_COL_BLACK,RGB_COL_WHITE);\r\n\r\n  while(1)\r\n  {\r\n\r\n  }\r\n}\r\n<\/pre>\n<p>Hier die Library zum\u00a0<strong>Download :<\/strong><\/p>\n<p><a href=\"wp-content\/uploads\/2014\/11\/lcd_vga_f429_v100.zip\">lcd_vga_f429_v100<\/a><\/p>\n<p>Hier der komplette CooCox-Projektordner zum\u00a0<strong>Download :<\/strong><\/p>\n<p><a href=\"wp-content\/uploads\/2014\/11\/Demo_F429_26.zip\">Demo_F429_26<\/a><\/p>\n<hr \/>\n<h3 id=\"comments-title\">3 Antworten auf <em>26-LCD_VGA-Mode-Library (STM32F429)<\/em><\/h3>\n<ol class=\"commentlist\">\n<li id=\"li-comment-2784\" class=\"comment even thread-even depth-1\">\n<div id=\"comment-2784\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/9ce83dfdef303a8a072f750a3cdcc443?s=40&amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Tamer SAFAK<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">6. Januar 2015 um 15:47<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Hello, congratulations Uwe, how 16 bits schematic should be,<\/p>\n<p>I wish you continued success,<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-2790\" class=\"comment byuser comment-author-admin_ub bypostauthor odd alt depth-2\">\n<div id=\"comment-2790\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/67426419ead44d5afa132e92685bb460?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">admin_ub<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">8. Januar 2015 um 11:21<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>VGA needs a voltage between 0,0V and 0,7V (with 75 Ohm impedance).<br \/>\nAnd if you know : U=I*R you can calculate this on your own i think.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-2795\" class=\"comment even depth-3\">\n<div id=\"comment-2795\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/9ce83dfdef303a8a072f750a3cdcc443?s=40&amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Tamer SAFAK<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">9. Januar 2015 um 14:02<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>I am mechanical engineer <img decoding=\"async\" class=\"wp-smiley\" src=\"wp-includes\/images\/smilies\/icon_smile.gif\" alt=\":)\" \/><\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Mit dieser Library kann anstelle vom internen LCD-Display vom STM32F429-Discovery ein externer Monitor (im VGA-Mode) angeschlossen werden. Ben\u00f6tigt wird ein R2R-DAC mit diskreten Widerst\u00e4nden. Einen Schaltplan (f\u00fcr die 8bit-Version) findet ihr weiter unten. Bei meinen Tests habe ich den R2R-DAC &hellip; <a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f429\/komplette-library-liste-stm32f429\/26-lcd_vga-mode-library-stm32f429\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"parent":160,"menu_order":26,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[129],"tags":[139,9,102,97],"class_list":["post-335","page","type-page","status-publish","hentry","category-stm32f429","tag-lcd","tag-library","tag-stm32f429","tag-vga"],"_links":{"self":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/335","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/comments?post=335"}],"version-history":[{"count":3,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/335\/revisions"}],"predecessor-version":[{"id":1695,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/335\/revisions\/1695"}],"up":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/160"}],"wp:attachment":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/media?parent=335"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/categories?post=335"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/tags?post=335"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}