diff options
author | Gregory Nutt <gnutt@nuttx.org> | 2014-01-09 13:14:53 -0600 |
---|---|---|
committer | Gregory Nutt <gnutt@nuttx.org> | 2014-01-09 13:14:53 -0600 |
commit | d34980194355681fdbac8ef6bdb18b9c5e8ba2e9 (patch) | |
tree | ed2039fe23b12036b3efcb857303f35f308f6a2e | |
parent | 487121513866e2a3f519e39dd8e56b0ff82be751 (diff) | |
download | nuttx-d34980194355681fdbac8ef6bdb18b9c5e8ba2e9.tar.gz nuttx-d34980194355681fdbac8ef6bdb18b9c5e8ba2e9.tar.bz2 nuttx-d34980194355681fdbac8ef6bdb18b9c5e8ba2e9.zip |
Vietool STM32F103: LCD updates (still does not work)
-rwxr-xr-x | nuttx/configs/hymini-stm32v/src/up_r61505u.c | 8 | ||||
-rw-r--r-- | nuttx/configs/hymini-stm32v/src/up_ssd1289.c | 14 | ||||
-rw-r--r-- | nuttx/configs/viewtool-stm32f107/README.txt | 55 | ||||
-rw-r--r-- | nuttx/configs/viewtool-stm32f107/src/stm32_ssd1289.c | 34 |
4 files changed, 82 insertions, 29 deletions
diff --git a/nuttx/configs/hymini-stm32v/src/up_r61505u.c b/nuttx/configs/hymini-stm32v/src/up_r61505u.c index e05c75691..f894a3de0 100755 --- a/nuttx/configs/hymini-stm32v/src/up_r61505u.c +++ b/nuttx/configs/hymini-stm32v/src/up_r61505u.c @@ -79,17 +79,17 @@ # define LCD_YRES 320 #endif -#define LCD_BL_TIMER_PERIOD 8999 +#define LCD_BL_TIMER_PERIOD 8999 /* LCD is connected to the FSMC_Bank1_NOR/SRAM1 and NE1 is used as ship select signal */ /* RS <==> A16 */ -#define LCD_REG (*((volatile unsigned short *) 0x60000000)) /* RS = 0 */ -#define LCD_RAM (*((volatile unsigned short *) 0x60020000)) /* RS = 1 */ +#define LCD_REG (*((volatile unsigned short *) 0x60000000)) /* RS = 0 */ +#define LCD_RAM (*((volatile unsigned short *) 0x60020000)) /* RS = 1 */ /* LCD IDs */ -#define LCD_ID 0x1505 +#define LCD_ID 0x1505 /* Debug ******************************************************************************/ diff --git a/nuttx/configs/hymini-stm32v/src/up_ssd1289.c b/nuttx/configs/hymini-stm32v/src/up_ssd1289.c index de925babd..998ee05e1 100644 --- a/nuttx/configs/hymini-stm32v/src/up_ssd1289.c +++ b/nuttx/configs/hymini-stm32v/src/up_ssd1289.c @@ -94,7 +94,13 @@ # define LCD_YRES 320 #endif -#define LCD_BL_TIMER_PERIOD 8999 +#define LCD_BL_TIMER_PERIOD 8999 + +/* LCD is connected to the FSMC_Bank1_NOR/SRAM1 and NE1 is used as ship select signal */ +/* RS <==> A16 */ + +#define LCD_INDEX 0x60000000 /* RS = 0 */ +#define LCD_DATA 0x60020000 /* RS = 1 */ /* Debug ******************************************************************************/ #ifdef CONFIG_DEBUG_LCD @@ -105,12 +111,6 @@ # define lcdvdbg(x...) #endif -/* LCD is connected to the FSMC_Bank1_NOR/SRAM1 and NE1 is used as ship select signal */ -/* RS <==> A16 */ - -#define LCD_INDEX 0x60000000 /* RS = 0 */ -#define LCD_DATA 0x60020000 /* RS = 1 */ - /************************************************************************************** * Private Type Definition **************************************************************************************/ diff --git a/nuttx/configs/viewtool-stm32f107/README.txt b/nuttx/configs/viewtool-stm32f107/README.txt index d55bdf924..291c62778 100644 --- a/nuttx/configs/viewtool-stm32f107/README.txt +++ b/nuttx/configs/viewtool-stm32f107/README.txt @@ -650,13 +650,62 @@ Configurations 4. USB support is disabled by default. See the section above entitled, "USB Interface" - 5. This configuration has been used for verifying the touchscreen on + 3. This configured can be re-configured to use either the Viewtool LCD + module. NOTE: The LCD module can only be used on the STM32F103 version + of the board. The LCD requires FSMC support. + + System Type -> STM32 Chip Selection: + CONFIG_ARCH_CHIP_STM32F103VCT6=y : Select STM32F103VCT6 + + System Type -> Peripherals: + CONFIG_STM32_FSMC=y : Enable FSMC LCD interface + + Device Drivers -> LCD Driver Support + CONFIG_LCD=y : Enable LCD support + CONFIG_NX_LCDDRIVER=y : LCD graphics device + CONFIG_LCD_MAXCONTRAST=1 + CONFIG_LCD_MAXPOWER=255 + CONFIG_LCD_LANDSCAPE=y : Landscape orientation + CONFIG_LCD_SSD1289=y : Select the SSD1289 + CONFIG_SSD1289_PROFILE1=y + + Graphics Support + CONFIG_NX=y + + Graphics Support -> Supported Pixel Depths + CONFIG_NX_DISABLE_1BPP=y : Only 16BPP supported + CONFIG_NX_DISABLE_2BPP=y + CONFIG_NX_DISABLE_4BPP=y + CONFIG_NX_DISABLE_8BPP=y + CONFIG_NX_DISABLE_24BPP=y + CONFIG_NX_DISABLE_32BPP=y + + Graphics Support -> Font Selections + CONFIG_NXFONTS_CHARBITS=7 + CONFIG_NXFONT_SANS22X29B=y + CONFIG_NXFONT_SANS23X27=y + + Application Configuration -> Examples + CONFIG_EXAMPLES_NXLINES=y + CONFIG_EXAMPLES_NXLINES_BGCOLOR=0x0320 + CONFIG_EXAMPLES_NXLINES_LINEWIDTH=16 + CONFIG_EXAMPLES_NXLINES_LINECOLOR=0xffe0 + CONFIG_EXAMPLES_NXLINES_BORDERWIDTH=4 + CONFIG_EXAMPLES_NXLINES_BORDERCOLOR=0xffe0 + CONFIG_EXAMPLES_NXLINES_CIRCLECOLOR=0xf7bb + CONFIG_EXAMPLES_NXLINES_BPP=16 + + STATUS: Now working; reads 0x8999 as device ID. This may perhaps + be due to incorrect jumper settings + + 6. This configuration has been used for verifying the touchscreen on on the Viewtool LCD module. NOTE: The LCD module can really only be used on the STM32F103 version of the board. The LCD requires FSMC support (the touchscreen, however, does not but the touchscreen is not very meaningful with no LCD). - CONFIG_ARCH_CHIP_STM32F103VCT6=y : Select STM32F103VCT6 + System Type -> STM32 Chip Selection: + CONFIG_ARCH_CHIP_STM32F103VCT6=y : Select STM32F103VCT6 With the following modifications, you can include the touchscreen test program at apps/examples/touchscreen as an NSH built-in @@ -697,6 +746,8 @@ Configurations CONFIG_DEBUG_VERBOSE=y : Enable verbose debug output CONFIG_DEBUG_INPUT=y : Enable debug output from input devices + STATUS: Working + highpri: This configuration was used to verify the NuttX high priority, nested diff --git a/nuttx/configs/viewtool-stm32f107/src/stm32_ssd1289.c b/nuttx/configs/viewtool-stm32f107/src/stm32_ssd1289.c index 57ada90fd..cb7329ada 100644 --- a/nuttx/configs/viewtool-stm32f107/src/stm32_ssd1289.c +++ b/nuttx/configs/viewtool-stm32f107/src/stm32_ssd1289.c @@ -92,7 +92,13 @@ # define LCD_YRES 320 #endif -#define LCD_BL_TIMER_PERIOD 8999 +#define LCD_BL_TIMER_PERIOD 8999 + +/* LCD is connected to the FSMC_Bank1_NOR/SRAM1 and NE1 is used as chip select signal */ +/* RS <==> A16 */ + +#define LCD_INDEX 0x60000000 /* RS = 0 */ +#define LCD_DATA 0x60020000 /* RS = 1 */ /* Debug ******************************************************************************/ @@ -104,12 +110,6 @@ # define lcdvdbg(x...) #endif -/* LCD is connected to the FSMC_Bank1_NOR/SRAM1 and NE1 is used as chip select signal */ -/* RS <==> A16 */ - -#define LCD_INDEX 0x60000000 /* RS = 0 */ -#define LCD_DATA 0x60020000 /* RS = 1 */ - /************************************************************************************** * Private Type Definition **************************************************************************************/ @@ -207,25 +207,21 @@ static void stm32_enablefsmc(void); const uint16_t fsmc_gpios[] = { - /* A16... A24 */ + /* A16... A23. REVIST: only A16 is used by the LCD */ GPIO_NPS_A16, GPIO_NPS_A17, GPIO_NPS_A18, GPIO_NPS_A19, GPIO_NPS_A20, GPIO_NPS_A21, GPIO_NPS_A22, GPIO_NPS_A23, /* D0... D15 */ - GPIO_NPS_D0, GPIO_NPS_D1, GPIO_NPS_D2, GPIO_NPS_D3, GPIO_NPS_D4, - GPIO_NPS_D5, GPIO_NPS_D6, GPIO_NPS_D7, GPIO_NPS_D8, GPIO_NPS_D9, + GPIO_NPS_D0, GPIO_NPS_D1, GPIO_NPS_D2, GPIO_NPS_D3, GPIO_NPS_D4, + GPIO_NPS_D5, GPIO_NPS_D6, GPIO_NPS_D7, GPIO_NPS_D8, GPIO_NPS_D9, GPIO_NPS_D10, GPIO_NPS_D11, GPIO_NPS_D12, GPIO_NPS_D13, GPIO_NPS_D14, GPIO_NPS_D15, - /* NOE, NWE */ - - GPIO_NPS_NOE, GPIO_NPS_NWE, - - /* NE1 */ + /* NOE, NWE, and NE1 */ - GPIO_NPS_NE1 + GPIO_NPS_NOE, GPIO_NPS_NWE, GPIO_NPS_NE1 }; #define NGPIOS (sizeof(fsmc_gpios)/sizeof(uint16_t)) @@ -486,6 +482,10 @@ static void stm32_selectlcd(void) putreg32(FSMC_BCR_MBKEN | FSMC_BCR_SRAM | FSMC_BCR_MWID16 | FSMC_BCR_WREN, STM32_FSMC_BCR1); + + /* Configure the LCD RESET\ pin. Initial value will take the LCD out of reset */ + + stm32_configgpio(GPIO_LCD_RESET); } /************************************************************************************ @@ -549,6 +549,8 @@ int up_lcdinitialize(void) { lcdvdbg("Initializing\n"); + /* Initialize the backlight */ + init_lcd_backlight(); /* Configure GPIO pins and configure the FSMC to support the LCD */ |