Viewtools STM32F103: Add SSD1289 LCD support

This commit is contained in:
Gregory Nutt
2014-01-05 14:14:59 -06:00
parent b46aa97ac4
commit 458465c8ed
6 changed files with 807 additions and 44 deletions
+2
View File
@@ -6366,4 +6366,6 @@
a .version file if one does not exist. Make sure that the APPDIR a .version file if one does not exist. Make sure that the APPDIR
environment variable is set before configuring. From Max Holtzberg environment variable is set before configuring. From Max Holtzberg
(2014-1-4). (2014-1-4).
* configs/viewtool-stm32f107/src/stm32_ssd1289.c: Add support for
Viewtool SSD1289-based LCD (untested on initial checkin) (2013-1-5).
+39 -39
View File
@@ -79,54 +79,54 @@
/* SDIO */ /* SDIO */
#define GPIO_SDIO_D0 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTC|GPIO_PIN8) #define GPIO_SDIO_D0 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTC|GPIO_PIN8)
#ifndef CONFIG_SDIO_WIDTH_D1_ONLY #ifndef CONFIG_SDIO_WIDTH_D1_ONLY
# define GPIO_SDIO_D1 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTC|GPIO_PIN9) # define GPIO_SDIO_D1 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTC|GPIO_PIN9)
# define GPIO_SDIO_D2 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTC|GPIO_PIN10) # define GPIO_SDIO_D2 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTC|GPIO_PIN10)
# define GPIO_SDIO_D3 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTC|GPIO_PIN11) # define GPIO_SDIO_D3 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTC|GPIO_PIN11)
# define GPIO_SDIO_D4 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTB|GPIO_PIN8) # define GPIO_SDIO_D4 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTB|GPIO_PIN8)
# define GPIO_SDIO_D5 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTB|GPIO_PIN9) # define GPIO_SDIO_D5 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTB|GPIO_PIN9)
# define GPIO_SDIO_D6 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTC|GPIO_PIN6) # define GPIO_SDIO_D6 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTC|GPIO_PIN6)
# define GPIO_SDIO_D7 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTC|GPIO_PIN7) # define GPIO_SDIO_D7 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTC|GPIO_PIN7)
#endif #endif
#define GPIO_SDIO_CK (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTC|GPIO_PIN12) #define GPIO_SDIO_CK (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTC|GPIO_PIN12)
#define GPIO_SDIO_CMD (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTD|GPIO_PIN2) #define GPIO_SDIO_CMD (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTD|GPIO_PIN2)
/* FSMC: NOR/PSRAM/SRAM (NPS) */ /* FSMC: NOR/PSRAM/SRAM (NPS) */
#define GPIO_NPS_A16 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTD|GPIO_PIN11)
#define GPIO_NPS_A17 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTD|GPIO_PIN12)
#define GPIO_NPS_A18 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTD|GPIO_PIN13)
#define GPIO_NPS_A19 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTE|GPIO_PIN3)
#define GPIO_NPS_A20 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTE|GPIO_PIN4)
#define GPIO_NPS_A21 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTE|GPIO_PIN5)
#define GPIO_NPS_A22 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTE|GPIO_PIN6)
#define GPIO_NPS_A23 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTE|GPIO_PIN2)
#define GPIO_NPS_D0 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTD|GPIO_PIN14) #define GPIO_NPS_A16 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTD|GPIO_PIN11)
#define GPIO_NPS_D1 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTD|GPIO_PIN15) #define GPIO_NPS_A17 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTD|GPIO_PIN12)
#define GPIO_NPS_D2 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTD|GPIO_PIN0) #define GPIO_NPS_A18 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTD|GPIO_PIN13)
#define GPIO_NPS_D3 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTD|GPIO_PIN1) #define GPIO_NPS_A19 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTE|GPIO_PIN3)
#define GPIO_NPS_D4 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTE|GPIO_PIN7) #define GPIO_NPS_A20 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTE|GPIO_PIN4)
#define GPIO_NPS_D5 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTE|GPIO_PIN8) #define GPIO_NPS_A21 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTE|GPIO_PIN5)
#define GPIO_NPS_D6 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTE|GPIO_PIN9) #define GPIO_NPS_A22 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTE|GPIO_PIN6)
#define GPIO_NPS_D7 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTE|GPIO_PIN10) #define GPIO_NPS_A23 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTE|GPIO_PIN2)
#define GPIO_NPS_D8 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTE|GPIO_PIN11)
#define GPIO_NPS_D9 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTE|GPIO_PIN12)
#define GPIO_NPS_D10 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTE|GPIO_PIN13)
#define GPIO_NPS_D11 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTE|GPIO_PIN14)
#define GPIO_NPS_D12 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTE|GPIO_PIN15)
#define GPIO_NPS_D13 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTD|GPIO_PIN8)
#define GPIO_NPS_D14 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTD|GPIO_PIN9)
#define GPIO_NPS_D15 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTD|GPIO_PIN10)
#define GPIO_NPS_CLK (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTD|GPIO_PIN3) #define GPIO_NPS_D0 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTD|GPIO_PIN14)
#define GPIO_NPS_NOE (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTD|GPIO_PIN4) #define GPIO_NPS_D1 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTD|GPIO_PIN15)
#define GPIO_NPS_NWE (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTD|GPIO_PIN5) #define GPIO_NPS_D2 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTD|GPIO_PIN0)
#define GPIO_NPS_NWAIT (GPIO_INPUT|GPIO_CNF_INFLOAT|GPIO_MODE_INPUT|GPIO_PORTD|GPIO_PIN6) #define GPIO_NPS_D3 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTD|GPIO_PIN1)
#define GPIO_NPS_NE1 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTD|GPIO_PIN7) #define GPIO_NPS_D4 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTE|GPIO_PIN7)
#define GPIO_NPS_D5 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTE|GPIO_PIN8)
#define GPIO_NPS_D6 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTE|GPIO_PIN9)
#define GPIO_NPS_D7 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTE|GPIO_PIN10)
#define GPIO_NPS_D8 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTE|GPIO_PIN11)
#define GPIO_NPS_D9 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTE|GPIO_PIN12)
#define GPIO_NPS_D10 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTE|GPIO_PIN13)
#define GPIO_NPS_D11 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTE|GPIO_PIN14)
#define GPIO_NPS_D12 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTE|GPIO_PIN15)
#define GPIO_NPS_D13 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTD|GPIO_PIN8)
#define GPIO_NPS_D14 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTD|GPIO_PIN9)
#define GPIO_NPS_D15 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTD|GPIO_PIN10)
#define GPIO_NPS_CLK (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTD|GPIO_PIN3)
#define GPIO_NPS_NOE (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTD|GPIO_PIN4)
#define GPIO_NPS_NWE (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTD|GPIO_PIN5)
#define GPIO_NPS_NWAIT (GPIO_INPUT|GPIO_CNF_INFLOAT|GPIO_MODE_INPUT|GPIO_PORTD|GPIO_PIN6)
#define GPIO_NPS_NE1 (GPIO_ALT|GPIO_CNF_AFPP|GPIO_MODE_50MHz|GPIO_PORTD|GPIO_PIN7)
#if 0 /* Needs further investigation */ #if 0 /* Needs further investigation */
#define GPIO_DAC_OUT1 (GPIO_INPUT|GPIO_CNF_ANALOGIN|GPIO_MODE_INPUT|GPIO_PORTA|GPIO_PIN4) #define GPIO_DAC_OUT1 (GPIO_INPUT|GPIO_CNF_ANALOGIN|GPIO_MODE_INPUT|GPIO_PORTA|GPIO_PIN4)
+72
View File
@@ -28,6 +28,7 @@ Contents
o USB Interface o USB Interface
o microSD Card Interface o microSD Card Interface
o ViewTool DP83848 Ethernet Module o ViewTool DP83848 Ethernet Module
o LCD Interface
o Toolchains o Toolchains
- NOTE about Windows native toolchains - NOTE about Windows native toolchains
o Configurations o Configurations
@@ -396,6 +397,77 @@ ViewTool DP83848 Ethernet Module
(also FTP, TFTP, WGET, NFS, etc. if you also have a mass storage (also FTP, TFTP, WGET, NFS, etc. if you also have a mass storage
device). device).
LCD Interface
=============
An LCD may be connected via J11. Only the the STM32F103 supports the FSMC signals
needed to drive the LCD.
The LCD features an (1) HY32D module with built-in SSD1289 LCD controller, and (a)
a XPT2046 touch screen controller.
LCD Connector
-------------
----------------------------- ------------------------ --------------------------------
Connector J11 GPIO CONFIGURATION(s)
PIN SIGNAL LEGEND (F103 only) LCD Module
--- ------------- ----------- ------------------------ --------------------------------
1 VDD_5 NC N/A 5V ---
2 GND GND N/A GND ---
3 PD14 DATA0 GPIO_NPS_D0 D0 HY32D
4 PD15 DATA1 GPIO_NPS_D1 D1 HY32D
5 PD0 DATA2 GPIO_NPS_D2 D2 HY32D
6 PD1 DATA3 GPIO_NPS_D3 D3 HY32D
7 PE7 DATA4 GPIO_NPS_D4 D4 HY32D
8 PE8 DATA5 GPIO_NPS_D5 D5 HY32D
9 PE9 DATA6 GPIO_NPS_D6 D6 HY32D
10 PE10 DATA7 GPIO_NPS_D7 D7 HY32D
11 PE11 DATA8 GPIO_NPS_D8 D8 HY32D
12 PE12 DATA9 GPIO_NPS_D9 D9 HY32D
13 PE13 DATA10 GPIO_NPS_D10 D10 HY32D
14 PE14 DATA11 GPIO_NPS_D11 D11 HY32D
15 PE15 DATA12 GPIO_NPS_D12 D12 HY32D
16 PD8 DATA13 GPIO_NPS_D13 D13 HY32D
17 PD9 DATA14 GPIO_NPS_D14 D14 HY32D
18 PD10 DATA15 GPIO_NPS_D15 D15 HY32D
19 (3) LCD_CS GPIO_NPS_NE1 CS HY32D
20 PD11 LCD_RS GPIO_NPS_A16 RS HY32D
21 PD5 LCD_R/W GPIO_NPS_NWE WR HY32D
22 PD4 LCD_RD GPIO_NPS_NOE RD HY32D
23 PB1 LCD_RESET (GPIO) RESET HY32D
24 N/C NC N/A TE (unused?)
25 VDD_3.3 BL_VCC N/A BLVDD CA6219 (Drives LCD backlight)
26 GND BL_GND N/A BLGND CA6219
27 PB0 BL_PWM GPIO_TIM3_CH3OUT(2) BL_CNT CA6219
28 PC5 LCDTP_IRQ (GPIO) TP_IRQ XPT2046
29 PC4 LCDTP_CS (GPIO) TP_CS XPT2046
30 PB13 LCDTP_CLK GPIO_SPI2_SCK TP_SCK XPT2046
31 PB15 LCDTP_DIN GPIO_SPI2_MOSI TP_SI XPT2046
32 PB14 LCDTP_DOUT GPIO_SPI2_MISO TP_SO XPT2046
33 VDD_3.3 VDD_3.3 N/A 3.3V ---
34 GND GND N/A GND ---
--- ------------- ----------- ------------------------ --------------------------------
NOTES:
1) Only the F103 version of the board supports the FSMC
2) No remap
3) LCD_CS is controlled by J13 JUMPER4 (under the LCD unfortunately):
1->2 : PD7 (GPIO_NPS_NE1) enables the multiplexor : 1E\ enable input (active LOW)
3->4 : PD13 provides 1A0 input (1A1 is grounded). : 1A0 address input
So will chip enable to either LCD_CS or
Flash_CS.
5->6 : 1Y0 output to LCD_CS : 1Y0 address output
7->8 : 1Y1 output to Flash_CE : 1Y1 address output
Truth Table:
1E\ 1A0 1A1 1Y0 1Y1
--- --- --- --- ---
HI N/A N/A HI HI
LO LO LO LO HI
LO HI LO HI LO
Toolchains Toolchains
========== ==========
+4
View File
@@ -62,6 +62,10 @@ CSRCS += stm32_usbdev.c
endif endif
endif endif
ifeq ($(CONFIG_LCD_SSD1289),y) # F103
CSRCS += stm32_ssd1289.c
endif
ifeq ($(CONFIG_NSH_ARCHINIT),y) ifeq ($(CONFIG_NSH_ARCHINIT),y)
CSRCS += stm32_nsh.c CSRCS += stm32_nsh.c
endif endif
File diff suppressed because it is too large Load Diff
@@ -1,8 +1,8 @@
/****************************************************************************** /******************************************************************************
* configs/viewtool-stm32f107/src/viewtool_stm32f107.h * configs/viewtool-stm32f107/src/viewtool_stm32f107.h
* *
* Copyright (C) 2013 Max Holtzberg. All rights reserved. * Copyright (C) 2013-2014 Gregory Nutt. All rights reserved.
* Author: Max Holtzberg <mholtzberg@uvc-ingenieure.de> * Author: Gregory Nutt <gnutt@nuttx.org>
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions * modification, are permitted provided that the following conditions
@@ -32,6 +32,7 @@
* POSSIBILITY OF SUCH DAMAGE. * POSSIBILITY OF SUCH DAMAGE.
* *
******************************************************************************/ ******************************************************************************/
#ifndef __CONFIGS_VIEWTOOL_STM32F107_SRC_INTERNAL_H #ifndef __CONFIGS_VIEWTOOL_STM32F107_SRC_INTERNAL_H
#define __CONFIGS_VIEWTOOL_STM32F107_SRC_INTERNAL_H #define __CONFIGS_VIEWTOOL_STM32F107_SRC_INTERNAL_H
@@ -159,7 +160,8 @@
*/ */
#ifdef CONFIG_ARCH_CHIP_STM32F103VCT6 #ifdef CONFIG_ARCH_CHIP_STM32F103VCT6
# define GPIO_SD_CD (GPIO_INPUT|GPIO_CNF_INFLOAT|GPIO_EXTI|GPIO_PORTA|GPIO_PIN8) # define GPIO_SD_CD (GPIO_INPUT | GPIO_CNF_INFLOAT | GPIO_EXTI| \
GPIO_PORTA | GPIO_PIN8)
#endif #endif
/* USB /* USB
@@ -192,10 +194,88 @@
*/ */
#ifdef CONFIG_ARCH_CHIP_STM32F103VCT6 #ifdef CONFIG_ARCH_CHIP_STM32F103VCT6
# define GPIO_USB_PULLUP (GPIO_OUTPUT|GPIO_CNF_OUTOD|GPIO_MODE_50MHz|\ # define GPIO_USB_PULLUP (GPIO_OUTPUT | GPIO_CNF_OUTOD | GPIO_MODE_50MHz | \
GPIO_OUTPUT_SET|GPIO_PORTE|GPIO_PIN11) GPIO_OUTPUT_SET | GPIO_PORTE | GPIO_PIN11)
#endif #endif
/* LCD
*
* An LCD may be connected via J11. Only the the STM32F103 supports the FSMC signals
* needed to drive the LCD.
*
* The LCD features an (1) HY32D module with built-in SSD1289 LCD controller, and (a)
* a XPT2046 touch screen controller.
*
* LCD Connector
* -------------
*
* ----------------------------- ------------------------ --------------------------------
* Connector J11 GPIO CONFIGURATION(s)
* PIN SIGNAL LEGEND (F103 only) LCD Module
* --- ------------- ----------- ------------------------ --------------------------------
* 1 VDD_5 NC N/A 5V ---
* 2 GND GND N/A GND ---
* 3 PD14 DATA0 GPIO_NPS_D0 D0 HY32D
* 4 PD15 DATA1 GPIO_NPS_D1 D1 HY32D
* 5 PD0 DATA2 GPIO_NPS_D2 D2 HY32D
* 6 PD1 DATA3 GPIO_NPS_D3 D3 HY32D
* 7 PE7 DATA4 GPIO_NPS_D4 D4 HY32D
* 8 PE8 DATA5 GPIO_NPS_D5 D5 HY32D
* 9 PE9 DATA6 GPIO_NPS_D6 D6 HY32D
* 10 PE10 DATA7 GPIO_NPS_D7 D7 HY32D
* 11 PE11 DATA8 GPIO_NPS_D8 D8 HY32D
* 12 PE12 DATA9 GPIO_NPS_D9 D9 HY32D
* 13 PE13 DATA10 GPIO_NPS_D10 D10 HY32D
* 14 PE14 DATA11 GPIO_NPS_D11 D11 HY32D
* 15 PE15 DATA12 GPIO_NPS_D12 D12 HY32D
* 16 PD8 DATA13 GPIO_NPS_D13 D13 HY32D
* 17 PD9 DATA14 GPIO_NPS_D14 D14 HY32D
* 18 PD10 DATA15 GPIO_NPS_D15 D15 HY32D
* 19 (3) LCD_CS GPIO_NPS_NE1 CS HY32D
* 20 PD11 LCD_RS GPIO_NPS_A16 RS HY32D
* 21 PD5 LCD_R/W GPIO_NPS_NWE WR HY32D
* 22 PD4 LCD_RD GPIO_NPS_NOE RD HY32D
* 23 PB1 LCD_RESET (GPIO) RESET HY32D
* 24 N/C NC N/A TE (unused?)
* 25 VDD_3.3 BL_VCC N/A BLVDD CA6219 (Drives LCD backlight)
* 26 GND BL_GND N/A BLGND CA6219
* 27 PB0 BL_PWM GPIO_TIM3_CH3OUT(2) BL_CNT CA6219
* 28 PC5 LCDTP_IRQ (GPIO) TP_IRQ XPT2046
* 29 PC4 LCDTP_CS (GPIO) TP_CS XPT2046
* 30 PB13 LCDTP_CLK GPIO_SPI2_SCK TP_SCK XPT2046
* 31 PB15 LCDTP_DIN GPIO_SPI2_MOSI TP_SI XPT2046
* 32 PB14 LCDTP_DOUT GPIO_SPI2_MISO TP_SO XPT2046
* 33 VDD_3.3 VDD_3.3 N/A 3.3V ---
* 34 GND GND N/A GND ---
* --- ------------- ----------- ------------------------ --------------------------------
*
* NOTES:
* 1) Only the F103 version of the board supports the FSMC
* 2) No remap
* 3) LCD_CS is controlled by J13 JUMPER4 (under the LCD unfortunately):
*
* 1->2 : PD7 (GPIO_NPS_NE1) enables the multiplexor : 1E\ enable input (active LOW)
* 3->4 : PD13 provides 1A0 input (1A1 is grounded). : 1A0 address input
* So will chip enable to either LCD_CS or
* Flash_CS.
* 5->6 : 1Y0 output to LCD_CS : 1Y0 address output
* 7->8 : 1Y1 output to Flash_CE : 1Y1 address output
*
* Truth Table:
* 1E\ 1A0 1A1 1Y0 1Y1
* --- --- --- --- ---
* HI N/A N/A HI HI
* LO LO LO LO HI
* LO HI LO HI LO
*/
#define GPIO_LCD_RESET (GPIO_OUTPUT | GPIO_CNF_OUTPP | GPIO_MODE_50MHz | \
GPIO_OUTPUT_SET | GPIO_PORTB| GPIO_PIN1)
#define GPIO_LCDTP_IRQ (GPIO_INPUT | GPIO_CNF_INFLOAT | GPIO_MODE_INPUT | \
GPIO_EXTI | GPIO_PORTC | GPIO_PIN5)
#define GPIO_LCDTP_CS (GPIO_OUTPUT | GPIO_CNF_OUTPP | GPIO_MODE_50MHz | \
GPIO_OUTPUT_SET | GPIO_PORTC | GPIO_PIN4)
/************************************************************************************ /************************************************************************************
* Public Functions * Public Functions
************************************************************************************/ ************************************************************************************/