STM32L-Discovery LCD driver is code compele but untested

This commit is contained in:
Gregory Nutt 2013-05-23 15:23:29 -06:00
parent bc170f11b4
commit a189ccebe5
5 changed files with 1045 additions and 189 deletions

View File

@ -398,16 +398,17 @@ LEDs
The STM32L-Discovery board has four LEDs. Two of these are controlled by The STM32L-Discovery board has four LEDs. Two of these are controlled by
logic on the board and are not available for software control: logic on the board and are not available for software control:
LD1 COM: LD2 default status is red. LD2 turns to green to indicate that LD1 COM: LD2 default status is red. LD2 turns to green to indicate
communications are in progress between the PC and the ST-LINK/V2. that communications are in progress between the PC and the
ST-LINK/V2.
LD2 PWR: Red LED indicates that the board is powered. LD2 PWR: Red LED indicates that the board is powered.
And two LEDs can be controlled by software: And two LEDs can be controlled by software:
User LD3: Green LED is a user LED connected to the I/O PB7 of the STM32L152 User LD3: Green LED is a user LED connected to the I/O PB7 of the
MCU. STM32L152 MCU.
User LD4: Blue LED is a user LED connected to the I/O PB6 of the STM32L152 User LD4: Blue LED is a user LED connected to the I/O PB6 of the
MCU. STM32L152 MCU.
These LEDs are not used by the board port unless CONFIG_ARCH_LEDS is These LEDs are not used by the board port unless CONFIG_ARCH_LEDS is
defined. In that case, the usage by the board port is defined in defined. In that case, the usage by the board port is defined in
@ -432,8 +433,8 @@ Serial Console
The STM32L-Discovery has no on-board RS-232 driver. Further, there are no The STM32L-Discovery has no on-board RS-232 driver. Further, there are no
USART pins that do not conflict with the on board resources, in particular, USART pins that do not conflict with the on board resources, in particular,
the LCD: Most USART pins are available if the LCD is enabled; USART2 may be the LCD: Most USART pins are available if the LCD is enabled; USART2 may
used if either the LCD or the on-board LEDs are disabled. be used if either the LCD or the on-board LEDs are disabled.
PA9 USART1_TX LCD glass COM1 P2, pin 22 PA9 USART1_TX LCD glass COM1 P2, pin 22
PA10 USART1_RX LCD glass COM2 P2, pin 21 PA10 USART1_RX LCD glass COM2 P2, pin 21
@ -448,24 +449,30 @@ used if either the LCD or the on-board LEDs are disabled.
PC10 USART3_TX LCD SEG22 P2, pin 15 PC10 USART3_TX LCD SEG22 P2, pin 15
PC11 USART3_RX LCD SEG23 P2, pin 14 PC11 USART3_RX LCD SEG23 P2, pin 14
GND and (external) 5V are available on both P1 and P2. Note: These signals NOTES:
may be at lower voltage levels and, hence, may not properly drive an external
RS-232 transceiver.
NOTE: The crystal X3 is not installed on the STM32L3-Discovery. As a - GND and (external) 5V are available on both P1 and P2. Note: These
result, the HSE clock is not availabled and the less acurate HSI must be signals may be at lower voltage levels and, hence, may not properly
used. This may limit the accuracy of the computed baud, especially at drive an external RS-232 transceiver.
higher BAUD. The HSI is supposedly calibrated in the factory to within 1%
at room temperatures so perhaps this not a issue. - The crystal X3 is not installed on the STM32L3-Discovery. As a result,
the HSE clock is not availabled and the less acurate HSI must be used.
This may limit the accuracy of the computed baud, especially at higher
BAUD. The HSI is supposedly calibrated in the factory to within 1% at
room temperatures so perhaps this not a issue.
- According to the STM32L-Discovery User Manual, the LCD should be removed
from its socket if you use any of the LCD pins for any other purpose.
I have had no problems using the USART1 with PA9 and PA10 with a 3.3-5V I have had no problems using the USART1 with PA9 and PA10 with a 3.3-5V
RS-232 transceiver module at 57600 baud. I have not tried higher baud rates. RS-232 transceiver module at 57600 baud. I have not tried higher baud
rates.
There is no support for a USB serial connector on the STM32L-Discovery board. - There is no support for a USB serial connector on the STM32L-Discovery
The STM32L152 does support USB, but the USB pins are "free I/O" on the board board. The STM32L152 does support USB, but the USB pins are "free I/O"
and no USB connector is provided. So the use of a USB console is not option. on the board and no USB connector is provided. So the use of a USB
If you need console output, you will need to disable either LCD (and use any console is not option. If you need console output, you will need to
USART) or the LEDs (and use USART1) disable either LCD (and use any USART) or the LEDs (and use USART1)
Debugging Debugging
========= =========
@ -739,3 +746,9 @@ Where <subdir> is one of the following:
CONFIG_HOST_WINDOWS=y : Builds under Windows CONFIG_HOST_WINDOWS=y : Builds under Windows
CONFIG_WINDOWS_CYGWIN=y : Using Cygwin CONFIG_WINDOWS_CYGWIN=y : Using Cygwin
CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y : CodeSourcery for Windows CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y : CodeSourcery for Windows
5. To enable SLCD support:
CONFIG_ARCH_LEDS=y : Disable LED support
CONFIG_LIB_SLCDCODEC=y : Enable the SLCD CODEC
CONFIG_STM32_LCD=y : Enable the SLCD

View File

@ -1,5 +1,5 @@
############################################################################ ############################################################################
# configs/stm32f3discovery/nsh/Make.defs # configs/stm32l1discovery/nsh/Make.defs
# #
# Copyright (C) 2013 Gregory Nutt. All rights reserved. # Copyright (C) 2013 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <gnutt@nuttx.org> # Author: Gregory Nutt <gnutt@nuttx.org>

View File

@ -1,5 +1,5 @@
#!/bin/bash #!/bin/bash
# configs/stm32f3discovery/nsh/setenv.sh # configs/stm32l1discovery/nsh/setenv.sh
# #
# Copyright (C) 2013 Gregory Nutt. All rights reserved. # Copyright (C) 2013 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <gnutt@nuttx.org> # Author: Gregory Nutt <gnutt@nuttx.org>

File diff suppressed because it is too large Load Diff

View File

@ -186,38 +186,38 @@
* PC11 LCD_SEG41 LCD SEG23 * PC11 LCD_SEG41 LCD SEG23
*/ */
#define BOARD_LCD_COM0 GPIO_LCD_COM0 /* PA8 */ #define BOARD_SLCD_COM0 GPIO_LCD_COM0 /* PA8 */
#define BOARD_LCD_COM1 GPIO_LCD_COM1 /* PA9 */ #define BOARD_SLCD_COM1 GPIO_LCD_COM1 /* PA9 */
#define BOARD_LCD_COM2 GPIO_LCD_COM2 /* PA10 */ #define BOARD_SLCD_COM2 GPIO_LCD_COM2 /* PA10 */
#define BOARD_LCD_COM3 GPIO_LCD_COM3 /* PB9 */ #define BOARD_SLCD_COM3 GPIO_LCD_COM3 /* PB9 */
#define BOARD_LCD_SEG0 GPIO_LCD_SEG0 /* PA1 */ #define BOARD_SLCD_SEG0 GPIO_LCD_SEG0 /* PA1 */
#define BOARD_LCD_SEG1 GPIO_LCD_SEG1 /* PA2 */ #define BOARD_SLCD_SEG1 GPIO_LCD_SEG1 /* PA2 */
#define BOARD_LCD_SEG2 GPIO_LCD_SEG2 /* PA3 */ #define BOARD_SLCD_SEG2 GPIO_LCD_SEG2 /* PA3 */
#define BOARD_LCD_SEG3 GPIO_LCD_SEG7 /* PB3 */ #define BOARD_SLCD_SEG3 GPIO_LCD_SEG7 /* PB3 */
#define BOARD_LCD_SEG4 GPIO_LCD_SEG8 /* PB4 */ #define BOARD_SLCD_SEG4 GPIO_LCD_SEG8 /* PB4 */
#define BOARD_LCD_SEG5 GPIO_LCD_SEG9 /* PB5 */ #define BOARD_SLCD_SEG5 GPIO_LCD_SEG9 /* PB5 */
#define BOARD_LCD_SEG6 GPIO_LCD_SEG10 /* PB10 */ #define BOARD_SLCD_SEG6 GPIO_LCD_SEG10 /* PB10 */
#define BOARD_LCD_SEG7 GPIO_LCD_SEG11 /* PB11 */ #define BOARD_SLCD_SEG7 GPIO_LCD_SEG11 /* PB11 */
#define BOARD_LCD_SEG8 GPIO_LCD_SEG12 /* PB12 */ #define BOARD_SLCD_SEG8 GPIO_LCD_SEG12 /* PB12 */
#define BOARD_LCD_SEG9 GPIO_LCD_SEG13 /* PB13 */ #define BOARD_SLCD_SEG9 GPIO_LCD_SEG13 /* PB13 */
#define BOARD_LCD_SEG10 GPIO_LCD_SEG14 /* PB14 */ #define BOARD_SLCD_SEG10 GPIO_LCD_SEG14 /* PB14 */
#define BOARD_LCD_SEG11 GPIO_LCD_SEG15 /* PB15 */ #define BOARD_SLCD_SEG11 GPIO_LCD_SEG15 /* PB15 */
#define BOARD_LCD_SEG12 GPIO_LCD_SEG17 /* PA15 */ #define BOARD_SLCD_SEG12 GPIO_LCD_SEG17 /* PA15 */
#define BOARD_LCD_SEG13 GPIO_LCD_SEG16 /* PB8 */ #define BOARD_SLCD_SEG13 GPIO_LCD_SEG16 /* PB8 */
#define BOARD_LCD_SEG14 GPIO_LCD_SEG18 /* PC0 */ #define BOARD_SLCD_SEG14 GPIO_LCD_SEG18 /* PC0 */
#define BOARD_LCD_SEG15 GPIO_LCD_SEG19 /* PC1 */ #define BOARD_SLCD_SEG15 GPIO_LCD_SEG19 /* PC1 */
#define BOARD_LCD_SEG16 GPIO_LCD_SEG20 /* PC2 */ #define BOARD_SLCD_SEG16 GPIO_LCD_SEG20 /* PC2 */
#define BOARD_LCD_SEG17 GPIO_LCD_SEG21 /* PC3 */ #define BOARD_SLCD_SEG17 GPIO_LCD_SEG21 /* PC3 */
#define BOARD_LCD_SEG18 GPIO_LCD_SEG24 /* PC6 */ #define BOARD_SLCD_SEG18 GPIO_LCD_SEG24 /* PC6 */
#define BOARD_LCD_SEG19 GPIO_LCD_SEG25 /* PC7 */ #define BOARD_SLCD_SEG19 GPIO_LCD_SEG25 /* PC7 */
#define BOARD_LCD_SEG20 GPIO_LCD_SEG26 /* PC8 */ #define BOARD_SLCD_SEG20 GPIO_LCD_SEG26 /* PC8 */
#define BOARD_LCD_SEG21 GPIO_LCD_SEG27 /* PC9 */ #define BOARD_SLCD_SEG21 GPIO_LCD_SEG27 /* PC9 */
#define BOARD_LCD_SEG22 GPIO_LCD_SEG40 /* PC10 */ #define BOARD_SLCD_SEG22 GPIO_LCD_SEG40 /* PC10 */
#define BOARD_LCD_SEG23 GPIO_LCD_SEG41 /* PC11 */ #define BOARD_SLCD_SEG23 GPIO_LCD_SEG41 /* PC11 */
#define BOARD LCD_NCOM 4 #define BOARD_SLCD_NCOM 4
#define BOARD LCD_NSEG 24 #define BOARD_SLCD_NSEG 24
#define BOARD_LCD_NGPIOS 28 #define BOARD_SLCD_NGPIOS 28
/**************************************************************************************************** /****************************************************************************************************
* Public Types * Public Types