cd00278141

AN3241
Application note
QVGA TFT-LCD direct drive
using the STM32F10xx FSMC peripheral
Introduction
This application note describes a low cost solution for directly driving QVGA TFT-LCD using
any STM32F10xxx microcontroller, which is not equipped with an on-chip LCD controller.
The powerful STM32F10xxx devices have an embedded FSMC (flexible static memory
controller) which can be used together with the on-chip DMA controller to implement a direct
drive for TFT-LCDs. This low cost solution is ideal for applications such as digital photo
frames, stand-alone information displays and static advertisement panels.
The application note describes how to use the STM32F10xx as LCD controller to drive a
QVGA 3.5" TFT panel interfaced with the FSMC. The optimization that can be achieved with
this solution means that only 1% of CPU load is needed to display static images.
A firmware demonstration has been developed and tested on a CT05350DW0000T QVGA
3.5" LCD module with a resolution of 320x240 pixels.
July 2010
Doc ID 17695 Rev 1
1/21
www.st.com
Contents
AN3241
Contents
1
STM32 QVGA TFT-LCD direct drive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1
2
STM32 QVGA TFT-LCD direct drive principle . . . . . . . . . . . . . . . . . . . . . . 3
STM32 QVGA TFT-LCD drive implementation . . . . . . . . . . . . . . . . . . . . 6
2.1
QVGA TFT-LCD signal interfacing with STM32F10xx FSMC . . . . . . . . . . . 6
2.2
Image format and resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3
Image source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.4
STM32 QVGA LCD-TFT direct drive flow . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.4.1
2.5
Display modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
TFT-LCD backlight control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3
Hardware reference design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4
Firmware package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Project. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.1
Firmware installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.2
How to configure the QVGA TFT-LCD parameters . . . . . . . . . . . . . . . . . 18
5
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
6
Revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2/21
Doc ID 17695 Rev 1
AN3241
1
STM32 QVGA TFT-LCD direct drive
STM32 QVGA TFT-LCD direct drive
The STM32 microcontrollers have an embedded Flexible Static Memory Controller (FSMC)
to interface with external memories such as NAND, NOR, SRAM and PSRAM memories.
The microcontroller also has a large number of general-purpose I/O port pins which
together with the FSMC can act as a cost-effective TFT-LCD controller for low-end displays:
1.1
●
The 16-bit data bus of the FSMC peripheral can easily be interfaced with the 565 RGB
format lines of a TFT-LCD panel (in 565 RGB format, 5 bits are for red, 6 bits for green
and 5 bits for blue).
●
An external memory can be used as the image source as well as a frame buffer for the
TFT-LCD refresh.
●
The general-purpose I/O pins can provide the synchronization logic for the LCD.
STM32 QVGA TFT-LCD direct drive principle
Controller-less TFT-LCD panels have different data-line configurations, for example 16-bit,
18-bit or 24-bit RGB lines. A TFT-LCD with a 16-bit data interface offers 565 format for each
pixel.
The TFT-LCD panel displays are managed as row and column structures. Vertical scanning
controls row data output and horizontal scanning controls column data output.
Apart from different data line configurations, other data display management signals are
common to all TFT-LCD panels:
●
The frame synchronization signal (VSYNC) manages vertical scanning and acts as an
image (frame) update strobe.
●
The line synchronization signal (HSYNC) manages horizontal line scanning and acts
as line display strobe.
●
Synchronization signals along with pixel data clock (DCLK) perform data output to TFT
RGB data lines.
●
The DCLK simply acts as the data valid signal for the TFT. The TFT considers data as
input only on the DCLK edge. DCLK valid edge (rising/falling) is mentioned in the TFT
datasheet.
The horizontal scanning builds one line for display and the vertical scanning builds a
complete frame. The vertical and horizontal scanning of the image is carried out in a
continous manner for multiple frames per second.
The TFT also needs a TFT-enable signal that acts simply as a chip-enable signal and TFT
reset signal.
The TFT signals must be synchronized in accordance with the display timing constraints to
ensure that the display has a continuous visual effect.
Figure 1 shows the horizontal and vertical scanning signals.
Doc ID 17695 Rev 1
3/21
STM32 QVGA TFT-LCD direct drive
Figure 1.
AN3241
QVGA TFT-LCD display scanning signals
Vertical 1Frame scan
VSYNC scan signal
QVGA TFT LCD
R G B Pixel
(5, 6, 5)
Horizontal scan line (240)
HSYNC signal for 1 line scan
ai18401
The FSMC bus data width is 16-bit. Hence, if the TFT-LCD panel has 24-bit RGB lines, the
MSBs of the LCD RGB data lines can be interfaced in 565 format.
Images must be displayed on the TFT-LCD continuously, this is easily managed by the
STM32 microcontroller.
Figure 2 shows the TFT synchronization signals waveform.
Figure 2.
Frame synchronization signal waveform
Back porch
Active data
Front porch
VCYCLE = 262 lines
tVBP = 18
VSYNC
V
DISP
= 240 lines
tVFP = 4
HSYNC
Line 0
Line 239
ai18402
4/21
Doc ID 17695 Rev 1
AN3241
STM32 QVGA TFT-LCD direct drive
Figure 3.
TFT Line synchronization signal waveform
Back porch
Active data
Front porch
HCYCLE = 408
tHFP = 20
HDISP = 320
tHBP = 68
DOTCLK
HSYNC
Pixel
data
Dummy
D0
D1
D318 D319 D320
Dummy
ai18403
Doc ID 17695 Rev 1
5/21
STM32 QVGA TFT-LCD drive implementation
2
AN3241
STM32 QVGA TFT-LCD drive implementation
The STM32-based TFT-LCD drive is implemented using the FSMC 16-bit data bus. The
STM32 has two internal DMA controllers that are used to boost the display performance,
thereby enabling an increased display frame rate.
An external SRAM memory is used as frame buffer to allow a continuous image-refresh
process which can be controlled by a timer.
Figure 4.
STM32 TFT-LCD Drive
VSYNC, HSYNC
GPIOs
STM32F103ZE
72 MHz
64 KB SRAM
512 KB Flash
FSMC
• RGB signal
• DCLK
• TFT - Enable
3.5”
TFT - LCD
320 x RGB x 240
R G B
Pixel
(5, 6, 5)
DMA
External
SRAM
(Frame
buffer)
ai18404
2.1
QVGA TFT-LCD signal interfacing with STM32F10xx FSMC
The TFT-LCD synchronization signals VSYNC and HSYNC are managed through STM32
GPIOs.
The FSMC memory interface Write-enable signal is used in inverted configuration as a
DCLK (pixel clock) for the TFT, and the FSMC chip-select signal acts as a TFT-enable
signal.
When data is transferred to the FSMC bus, the chip-select is first asserted low to enable the
TFT-LCD. Then the write-enable signal is asserted low to allow 16-bit data transfer to the
TFT RGB line on its low level which results in a single pixel display:
6/21
■
TFT-Enable: FSMC chip select (pin PG12)
■
VSYNC: GPIO - pin PA8
■
HSYNC: GPIO - pin PC6
■
DCLK: FSMC WE in inverted mode - pin PD5
■
Data Bus: FSMC[D0:D15]
■
SPI1: used for LCD configuration
Doc ID 17695 Rev 1
AN3241
2.2
STM32 QVGA TFT-LCD drive implementation
Image format and resolution
The 16-bit data bus of the STM32 FSMC can drive a controller-less 24-bit LCD module. With
only 16 data lines on the FMSC memory bus, the interface is a 565-format RGB. The
remaining lines of the QVGA TFT-LCD are left open. The images are loaded in external
SRAM memory in 565 format to avoid conversion overhead for the STM32.
From a performance perspective, converted image availability in memory offers the benefit
of fast data transfer to the TFT interface. So, a faster image refresh rate can be supported.
2.3
●
Pixel data size = 16 bit = 2 bytes
●
Image memory size for QVGA TFT = 320 x 240 x 2 = 153600 Bytes
Image source
The 565 format images are programmed in NOR memory.
In a first step, two images are transferred from NOR to external on-Board SRAM. External
SRAM acts as frame refresh buffer for TFT-LCD.
To implement an animated banner display, the SRAM frame buffers are updated during run
mode with new images from NOR memory. This approach is used to maintain the exact
working model of the TFT-LCD controller.
The on-board NOR memory contains the programmed images which are to be used for
display on the LCD. SRAM Double buffer management allows the source data to be updated
in run mode.
2.4
STM32 QVGA LCD-TFT direct drive flow
To achieve a static image view on a controllerless TFT, the image frame has to be refreshed
at a rate of at least 15 fps. Vertical and horizontal scanning of one frame are performed as
per the TFT-LCD module specifications.
A QVGA-LCD module single-frame display needs 320x240 pixels of data.
240 horizontal lines (each of 320 pixels) are scanned vertically on the TFT to display one
frame.
Along with data scanning, dummy data writes are required for the TFT to reach the required
horizontal and vertical front and back-porch values. These values are available the TFT
datasheet.
Dummy data writes are composed of writing zero data to the TFT RGB lines.
●
DMA1_Channel1 is used for back porch data transfer
●
DMA1_Channel2 is used for active data transfer
●
DMA1_Channel3 is used for front porch data transfer
The FSMC is configured in asynchronous mode and operates in Mode1 which is the default
mode selected when configuring the SRAM memory type.
Figure 5 and Figure 6 show the FSMC asynchronous read and write transactions in SRAM
mode1 for one 16-bit data pixel.
Doc ID 17695 Rev 1
7/21
STM32 QVGA TFT-LCD drive implementation
Figure 5.
AN3241
Mode 1 - SRAM read accesses
Memory transaction
A[25:0]
NBL[1:0]
NEx
NOE
NWE
High
data driven
by memory
D[15:0]
(ADDSET +1)
HCLK cycles
(DATAST + 1)
HCLK cycles
2 HCLK
cycles
Data sampled Data strobe
ai14720c
8/21
Doc ID 17695 Rev 1
AN3241
STM32 QVGA TFT-LCD drive implementation
Figure 6.
Mode1- SRAM write accesses
Memory transaction
A[25:0]
NBL[1:0]
NEx
NOE
1HCLK
NWE
D[15:0]
data driven by FSMC
(ADDSET +1)
HCLK cycles
(DATAST + 1)
HCLK cycles
ai14721c
The DMA channels are used to refresh images on the TFT-LCD. This offloads the CPU from
data transfer tasks.
The DMA is configured with external SRAM memory as the source and the LCD as the
destination. DMA transfer complete interrupts are used to toggle the VSYNC and HSYNC
synchronisation signals for a new frame transfer. A timer (TIM3) is used to control the
display frame rate.
When the DMA writes data on the FSMC bus, the FSMC generates the TFT-enable signal,
TFT DCLK, and data are written to the TFT RGB lines.
In this way, the STM32 manages the complete image display for controller-less TFT LCD
modules.
Figure 7 and Figure 7 show the TFT- LCD single-frame and horizontal-line display flow
diagram.
Doc ID 17695 Rev 1
9/21
STM32 QVGA TFT-LCD drive implementation
Figure 7.
AN3241
TFT- LCD single-frame display flow diagram
Start new frame
Reset TFT-LCD module
Set VSYNC signal low for vertical front porch
Write dummy data horizontal line for vertical
front porch period
Set VSYNC signal high
Write 240 active data horizontal lines
Write dummy data horizontal lines for vertical
back porch period
Note:
10/21
Refer to the TFT-LCD datasheet for the vertical front porch and back porch period values.
Doc ID 17695 Rev 1
AN3241
STM32 QVGA TFT-LCD drive implementation
Figure 8.
TFT- LCD single horizontal-line display flow diagram
Start new horizontal line scan
Set HSYNC signal low for horizontal
line front porch period
Write dummy data pixels on TFT-LCD RGB lines
Set HSYNC signal high for active data write
Write 320 active data horizontal lines
Write dummy data pixels for horizontal line front
line back porch period
Note:
Refer to the TFT-LCD datasheet for the horizontal front porch and back porch period values
2.4.1
Display modes
Two display modes are provided and can be selected.
STM32 slide-show display mode
In this mode, two static images in the SRAM buffers are displayed on the TFT-LCD after a
fixed time interval. The user can configure more than 2 images as well as change the
Frame buffer address location. In this mode, up to 40 frames per second can be displayed.
Table 1.
STM32 slide-show display: CPU load & frame rate
Parameter
Value
DCLK (pixel clock)
3.6 MHz
Maximum frame rate
40 Hz
CPU load
1%
STM32 banner display mode
In this mode, image buffers in SRAM are dynamically updated from NOR Flash memory to
show an image animation. For updating the image, two DMA channels are used.
Doc ID 17695 Rev 1
11/21
STM32 QVGA TFT-LCD drive implementation
Table 2.
AN3241
STM32 slide-show display: CPU load & frame rate
Parameter
Value
DCLK (pixel clock)
3.6 MHz
Maximum frame rate
19 Hz
CPU load
51%
The frame rate in Banner display mode is lower due to the SRAM frame buffer dynamic
update for the animation. The Frame buffer update is made after the display of one complete
frame display.
Note:
The frame rate and CPU load measurements were done with high speed optimization using
EWARM Toolchain V5.5. The CPU frequency is 72 MHz.
2.5
TFT-LCD backlight control
In both display modes, the TFT backlight is also controlled via a Timer and an ADC channel.
The timer (TIM4) is configured to generate 1 KHz PWM signal output on PB6 and can be
used as a PWM enable signal for the TFT backlight controller. The TFT-LCD backlight
control is implemented by varying the duty cycle of the PWM enable signal by rotating the
RV1 potentiometer installed on the MB672 STM3210E-EVAL evaluation board.
For more details on the potentiometer hardware, please refer to the MB672
STM3210E-EVAL evaluation board user manual.
12/21
Doc ID 17695 Rev 1
AN3241
3
Hardware reference design
Hardware reference design
The STEVAL-CCM002V1 evaluation board intended to be used as a daughter board for
MB672 STM3210E-EVAL Evaluation board. The STEVAL-CCM002V1 board has a QVGA
TFT 3.5" (CT05350DW0000T (thin-film-transistor liquid crystal display)).
The table below provides description of the CT05350DW0000T TFT signals when
interfacing with STM32F103ZET6.
Table 3.
STM32F103ZET6 signal interface with CT05350DW0000T LCD
LCD signal
STM32F103ZET6 signal
Description
LCD Reset
GPIO- PC1
Used to reset TFT-LCD
LCD X1,X2,Y1,Y2
Connected to STMPE811
touchscreen controller device
LCD touch screen signals
LCD B0-LCD B2
Do not connect
LCD blue data lines [0-2]
LCD B3-LCD B7
FSMC[D0..D4]
LCD blue data lines [3-7]
LCD G0-LCD G1
Do not connect
LCD green data lines [0-1]
LCD G2-LCD G7
FSMC[D5..D10]
LCD green data lines [2-7]
LCD R0-LCD R2
Do not connect
LCD red data lines [0-2]
LCD R3-LCD R7
FSMC[D11..D15]
LCD red data lines [3-7]
LCD HSYNC
GPIO- PC6
LCD horizontal synchronization
signal
LCD VSYNC
GPIO- PA8
LCD vertical synchronization
signal
LCD DCLK
FSMC NWE Inverted
LCD pixel clock signal
LCD SPI CS
SPI1_CS - PA4
LCD SPI chip select signal
LCD SPI CLK
SPI1_CLK - PA5
LCD SPI clock signal
LCD SPI DATA
SPI1_ MOSI -PA7
LCD SPI data signal
LCD ENABLE
FSMC NE4
LCD chip select signal
Please refer to User manual UM0921 for a complete description of the STEVAL-CCM002V1
daughter board.
The daughter board order code is: STEVAL-CCM002V1.
Doc ID 17695 Rev 1
13/21
Hardware reference design
Figure 9.
STM3210E- EVAL board connector for TFT-LCD
GND
PG7
PG5
PG3
PC13
RESET#
PD12
PD10_LCD_R7
PD8_LCD_R5
D5V
PB13
PB11_TSC_SDA2
PE15_LCD_R4
PE13_LCD_G7
PE11_LCD_G5
PD15_LCD_B4
PE9_LCD_G3
PE7_LCD_B7
PG1
GND
PF14
PF12
PB2
PB1
3V3
AN3241
PB0
PC4
PA6
PA4_SPI_CS
GND
PA1
PC3_TSC_INT
PC1_LCD_RESET
PF10
3V3
J1
CN6
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
33
35
37
39
41
43
45
47
49
51
53
55
57
59
61
63
65
67
69
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40
42
44
46
48
50
52
54
56
58
60
62
64
66
68
70
PG8
PG6
PG4
PG2
GND
PD13
PD11
PD9_LCD_R6
PB15
PB14
PB12
PB10_TSC_SCL2
PE14_LCD_R3
PE12_LCD_G6
GND
PD14_LCD_B3
PE10_LCD_G4
PE8_LCD_G2
GND
PG7
PG5
PG3
PC13
RESET#
PD12
PD10_LCD_R7
PD8_LCD_R5
D5V
PB13
PB11_TSC_SDA2
PE15_LCD_R4
PE13_LCD_G7
PE11_LCD_G5
PD15_LCD_B4
PE9_LCD_G3
PE7_LCD_B7
PG1
GND
PF14
PF12
PB2
PB1
PG0
PF15
PF13
PF11
GND
PC5
PA7_SPI_DATA
PA5_SPI_CLK
PA3
PA2
PB0
PC4
PA6
PA4_SPI_CS
GND
PA1
PC3_TSC_INT
PC1_LCD_RESET
PF10
3V3
3V3
PC2
PC0
GND
J2
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
33
35
37
39
41
43
45
47
49
51
53
55
57
59
61
63
65
67
69
CON70A
GND
PC7
PC9
PA9
PA0
PA12
PA14
PC10
GND
PD0_LCD_B5
PE2
PD2
PD4
PD6
PD7
PG10
PG12_LCD_ENB
PG14
GND
PB4
PB6
PB8
PE0
D5V
PE4
PE6
PC14
PF0
GND
PF2
PF4
PF6
PF8
3V3
3V3
J3
PG8
PG6
PG4
PG2
GND
PD13
PD11
PD9_LCD_R6
PB15
PB14
PB12
PB10_TSC_SCL2
PE14_LCD_R3
PE12_LCD_G6
GND
PD14_LCD_B3
PE10_LCD_G4
PE8_LCD_G2
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40
42
44
46
48
50
52
54
56
58
60
62
64
66
68
70
PC6
PC8
PA8
PA10
GND
PA11
PA13
PA15
PC11
PC12
PD1_LCD_B6
PE1
PD3
PD5
GND
PG9
PG11
PG13
PG15
PB3
PB5
PB7
PB9
3V3
GND
PE3
PE5
PC13
PC15
PF1
PF3
PF5
PF7
PF9
GND
PG0
PF15
PF13
PF11
GND
PC5
PA7_SPI_DATA
PA5_SPI_CLK
PA3
PA2
PC2
PC0
GND
CON70A
CN5
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
33
35
37
39
41
43
45
47
49
51
53
55
57
59
61
63
65
67
69
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40
42
44
46
48
50
52
54
56
58
60
62
64
66
68
70
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40
42
44
46
48
50
52
54
56
58
60
62
64
66
68
70
PC6
PC8
PA8
PA10
GND
PA11
PA13
PA15
PC11
PC12
PD1_LCD_B6
PE1
PD3
PD5
GND
PG9
PG11
PG13
PG15
PB3
PB5
PB7
PB9
3V3
GND
PE3
PE5
PC13
PC15
PF1
PF3
PF5
PF7
PF9
GND
GND
PC7
PC9
PA9
PA0
3V3
CON70A
PA12
PA14
PC10
GND
PD0_LCD_B5
PE2
PD2
PD4
PD6
PD7
PG10
PG12_LCD_ENB
PG14
GND
PB4
PB6
PB8
PE0
D5V
PE4
PE6
PC14
PF0
GND
PF2
PF4
PF6
PF8
3V3
3V3
J4
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
33
35
37
39
41
43
45
47
49
51
53
55
57
59
61
63
65
67
69
3V3
CON70A
ai18409
14/21
Doc ID 17695 Rev 1
AN3241
Hardware reference design
Figure 10. TFT-LCD 54 pin connector
J5
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
47
48
49
50
51
52
53
54
LED_CATHODE
LED_ANODE
PC1_LCD_RESET
TSC_Y1
TSC_X1
TSC_Y2
TSC_X2
PD14_LCD_B3
PD15_LCD_B4
PD0_LCD_B5
PD1_LCD_B6
PE7_LCD_B7
PE8_LCD_G2
PE9_LCD_G3
PE10_LCD_G4
PE11_LCD_G5
PE12_LCD_G6
PE13_LCD_G7
PE14_LCD_R3
PE15_LCD_R4
PD8_LCD_R5
PD9_LCD_R6
PD10_LCD_R7
HSYNC
VSYNC
DCLK
3V3
R13
0
3V3
R3
0
PC6
R4
0
PA8
PA4_SPI_CS
GND
R14
0
PA5_SPI_CLK
PA7_SPI_DATA
PD5
R1
0
R2
0
FSMC_INV_CLK
PG12_LCD_ENB
TFT_CONN54
3V3
3V3
GND
DCLK
LED_ANODE
TSC_Y1
TSC_X1
TSC_Y2
TSC_X2
HSYNC
VSYNC
LED_CATHODE
J6
1
2
3
4
5
6
7
8
9
10
LCD_SIGNAL_CONN
ai18410
Doc ID 17695 Rev 1
15/21
Firmware package
4
AN3241
Firmware package
The firmware associated to this application note consists of a demonstration of a direct drive
TFT (CT05350DW0000T) using the STM32F103ZE device. The source code example is
based on the STM32F10xxx standard peripheral library V3.3.0.
The user may build any similar application using the same library and driver, and different
interfacing firmware/hardware.
The firmware package installation folders are shown in Figure 11.
Figure 11. Firmware package architecture
Libraries
The Libraries folder contains all the subdirectories and files that make up the core of the
STM32F10xxx Standard Peripheral library V3.3.1:
CMSIS
●
CM3\CoreSupport: contains the Cortex-M3 files
●
CM3\DeviceSupport\ST\STM32F10x: contains the STM32F10x CMSIS layers files.
STM32F10x_StdPeriph_Driver
●
inc subfolder: contains the Standard Peripheral library header files
●
src subfolder: contains the Standard Peripheral library source files
Project
STM3210x-LCDDrive
Images: contains the Image.dfu file of the bitmap images.
16/21
Doc ID 17695 Rev 1
AN3241
Firmware package
EWARMv5: contains preconfigured projects for the EWARM toolchain
ARM-MDK: contains preconfigured projects for the RVMDK toolchain
HiTOP: contains preconfigured projects for the HiTOP toolchain
RIDE: contains preconfigured projects for the RIDE toolchain
TrueSTUDIO: contains preconfigured projects for the attolic toolchain
●
●
inc subfolder: contains the TFT-LCD driver and the demonstration heard files:
–
lcd_driver.h: contains the prototypes of the basic functions to drive a controllerless TFT-LCD. It includes also the TFT-LCD configurable parameters following the
TFT specification.
–
backlight_control.h: contains the prototypes of the basic functions used to control
the TFT backlight.
–
main.h: this file contains prototypes for the main.c file
–
stm32f10x_it.h: contains the headers of the interrupt handler.
–
stm32f10x_conf.h: the microcontroller library configuration file
src subfolder: contains the TFT-LCD driver and the demonstration source files:
–
lcd_driver.c: it contains basic routines to drive a controller-less QVGA TFT-LCD
including the FSMC, GPIO pins and DMA configurations
–
backlight_control.c: contains the basic functions used to control the TFT-LCD
backlight.
–
mainc.c: initializes the TFT-LCD Drive demonstration
–
stm32f10x_it.c: contains all the peripheral interrupt service routines used in the
LCD driver and provides templates for all exception handlers.
Utilities
STM3210E-EVAL: contains the STM3210E-EVAL board-related drivers
4.1
Firmware installation
The firmware associated with this application note is built for the STM3210E- EVAL
Evaluation board and the STEVAL-CCM002V1 daughter board.
After successful hardware setup and firmware programming, a bitmap image starts
displaying on the TFT-LCD on the STEVAL-CCM002V1 evaluation board.
Banner display mode is selected by default.
Push the Key button connected to PB3 on the STM3210E-EVAL Evaluation board to switch
to slide show display mode.
Demonstration Images
16-bit Bitmap images are copied by the firmware from NOR memory to on-board external
SRAM during firmware initialization. Then the image is refreshed on the TFT-LCD from
external SRAM only.
Doc ID 17695 Rev 1
17/21
Firmware package
AN3241
These images are programmed by default in the NOR memory the MB672 STM3210EEVAL Evaluation board. If the images are not available in NOR memory, they can be easily
programmed in the NOR memory using USB DFU firmware. For more details on board and
NOR programming, refer the UM0549 user manual available on www.st.com.
The USB DFU firmware and DFU image file are available for download from the
STMicroelectronics website: www.st.com.
4.2
How to configure the QVGA TFT-LCD parameters
The LCD driver can be customized to support other types of QVGA LCDs. The QVGA LCD
parameters that can be updated are the front porch, back porch period or frame rate
frequency as well as the I/O pins used for VSYNC and HSYNC, TFT power control and
backlight.
These configurable parameters are defined in the lcd_driver.h and backlight_control.h
header files.
The TFT LCD driver can be easily ported to other hardware. Table 4 describes the
configurable TFT-LCD parameters.
Table 4.
QVGA TFT-LCD driver configurable parameters
QVGA TFT-LCD parameters
18/21
Description
#define LCD_FRAME_FRONT_PORCH
Frame Front Porch value
#define LCD_FRAME_BACK_PORCH
Frame Back Porch value
#define LCD_LINE_FRONT_PORCH
Line Front Porch value
#define LCD_LINE_BACK_PORCH
Line Back Porch value
#define SRAM_IMAGE1_ADDR
Address of first image in frame buffer
#define SRAM_IMAGE2_ADDR
Address of second image in frame buffer
#define FRAME_RATE
Frame rate frequency value (can be 40 Hz or 19 Hz)
#define SLIDESHOW_TIME_GAP
Slide show time value in second
#define TFT_VSYNC_GPIO_PIN
GPIO Pin:GPIO_Pin_8
#define TFT_VSYNC_GPIO_PORT
GPIO Port: GPIOA
#define TFT_HSYNC_GPIO_PIN
GPIO Pin: GPIO_Pin_6
#define TFT_HSYNC_GPIO_PORT
GPIO Port: GPIOC
#define LCD_BL_GPIO_PIN
GPIO Pin: GPIO_Pin_6
#define LCD_BL_GPIO_PORT
GPIO Port: GPIOB
Doc ID 17695 Rev 1
AN3241
5
Conclusion
Conclusion
The versatile capabilities of the STM32 peripherals have been put to good use in this case,
with the objective of simplifying and lowering the cost of a TFT-LCD based application. The
STM32 with its powerful DMA controller and highly flexible FSMC peripheral combine to
offer a cost-effective solution for driving a QVGA TFT-LCD with a CPU load of only 1% for
static image display.
Doc ID 17695 Rev 1
19/21
Revision history
6
AN3241
Revision history
Table 5.
20/21
Document revision history
Date
Revision
16-Jul-2010
1
Changes
Initial release.
Doc ID 17695 Rev 1
AN3241
Please Read Carefully:
Information in this document is provided solely in connection with ST products. STMicroelectronics NV and its subsidiaries (“ST”) reserve the
right to make changes, corrections, modifications or improvements, to this document, and the products and services described herein at any
time, without notice.
All ST products are sold pursuant to ST’s terms and conditions of sale.
Purchasers are solely responsible for the choice, selection and use of the ST products and services described herein, and ST assumes no
liability whatsoever relating to the choice, selection or use of the ST products and services described herein.
No license, express or implied, by estoppel or otherwise, to any intellectual property rights is granted under this document. If any part of this
document refers to any third party products or services it shall not be deemed a license grant by ST for the use of such third party products
or services, or any intellectual property contained therein or considered as a warranty covering the use in any manner whatsoever of such
third party products or services or any intellectual property contained therein.
UNLESS OTHERWISE SET FORTH IN ST’S TERMS AND CONDITIONS OF SALE ST DISCLAIMS ANY EXPRESS OR IMPLIED
WARRANTY WITH RESPECT TO THE USE AND/OR SALE OF ST PRODUCTS INCLUDING WITHOUT LIMITATION IMPLIED
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE (AND THEIR EQUIVALENTS UNDER THE LAWS
OF ANY JURISDICTION), OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT.
UNLESS EXPRESSLY APPROVED IN WRITING BY AN AUTHORIZED ST REPRESENTATIVE, ST PRODUCTS ARE NOT
RECOMMENDED, AUTHORIZED OR WARRANTED FOR USE IN MILITARY, AIR CRAFT, SPACE, LIFE SAVING, OR LIFE SUSTAINING
APPLICATIONS, NOR IN PRODUCTS OR SYSTEMS WHERE FAILURE OR MALFUNCTION MAY RESULT IN PERSONAL INJURY,
DEATH, OR SEVERE PROPERTY OR ENVIRONMENTAL DAMAGE. ST PRODUCTS WHICH ARE NOT SPECIFIED AS "AUTOMOTIVE
GRADE" MAY ONLY BE USED IN AUTOMOTIVE APPLICATIONS AT USER’S OWN RISK.
Resale of ST products with provisions different from the statements and/or technical features set forth in this document shall immediately void
any warranty granted by ST for the ST product or service described herein and shall not create or extend in any manner whatsoever, any
liability of ST.
ST and the ST logo are trademarks or registered trademarks of ST in various countries.
Information in this document supersedes and replaces all information previously supplied.
The ST logo is a registered trademark of STMicroelectronics. All other names are the property of their respective owners.
© 2010 STMicroelectronics - All rights reserved
STMicroelectronics group of companies
Australia - Belgium - Brazil - Canada - China - Czech Republic - Finland - France - Germany - Hong Kong - India - Israel - Italy - Japan Malaysia - Malta - Morocco - Philippines - Singapore - Spain - Sweden - Switzerland - United Kingdom - United States of America
www.st.com
Doc ID 17695 Rev 1
21/21