汇总点这
用液晶屏为4.3寸的 AT043TN24 V.1
[0X4D000000] LCDCON1 = 0x00000000 (初始值)
可读可写,应取 (9<<8) | (3<<5) | (0X0C<<1)
[27:18]LCDCON1: Provide the status of the line counter. Down count from LINEVAL to 0
[17:8]CLKVAL: Determine the rates of VCLK and CLKVAL[9:0].
STN: VCLK = HCLK / (CLKVAL x 2) ( CLKVAL ≥2 )
TFT: VCLK = HCLK / [(CLKVAL+1) x 2] ( CLKVAL ≥ 0 )
[7]MMODE: Determine the toggle rate of the VM.
0 = Each Frame 1 = The rate defined by the MVAL
[6:5]PNRMODE: Select the display mode.
00 = 4-bit dual scan display mode (STN)
01 = 4-bit single scan display mode (STN)
10 = 8-bit single scan display mode (STN)
11 = TFT LCD panel
[4:1]BPPMODE: Select the BPP (Bits Per Pixel) mode.
0000 = 1 bpp for STN, Monochrome mode
0001 = 2 bpp for STN, 4-level gray mode
0010 = 4 bpp for STN, 16-level gray mode
0011 = 8 bpp for STN, color mode (256 color)
0100 = packed 12 bpp for STN, color mode (4096 color)
0101 = unpacked 12 bpp for STN, color mode (4096 color)
0110 = 16 bpp for STN, color mode (4096 color)
1000 = 1 bpp for TFT
1001 = 2 bpp for TFT
1010 = 4 bpp for TFT
1011 = 8 bpp for TFT
1100 = 16 bpp for TFT
1101 = 24 bpp for TFT
[0]ENVID: LCD video output and the logic enable/disable.
0 = Disable the video output and the LCD control signal.
1 = Enable the video output and the LCD control signal.
寄存器地址:0X4D000004,可读可写,初始化值:0x00000000, 应取
这个寄存器对应的是这一帧的图
LCD都是从左上到右下扫描显示, 一个画面扫描完,VSYNC(垂直同步信号)就会发出,LCD就会开始重新扫描,而 VSYNC 的发出有一定的时间限制,这个需要结合LCD手册
[31:24]VBPD:
TFT: Vertical back porch is the number of inactive lines at the start of a frame, after vertical synchronization period.
STN: These bits should be set to zero on STN LCD
[23:14]LINEVAL: TFT/STN: These bits determine the vertical size of LCD panel.
[13:6]VFPD:
TFT: Vertical front porch is the number of inactive lines at the end of a frame, before vertical synchronization period.
STN: These bits should be set to zero on STN LCD.
[5:0]VSPW:
TFT: Vertical sync pulse width determines the VSYNC pulse's high level width by counting the number of inactive lines.
STN: These bits should be set to zero on STN LCD.
寄存器地址:0X4D000008,可读可写,初始化值:0x00000000
需要结合这一图片
结合LCD手册
[25:19] HBPD (TFT) / WDLY (STN):
TFT: Horizontal back porch is the number of VCLK periods between the falling edge of HSYNC and the start of active data.
STN: WDLY[1:0] bits determine the delay between VLINE and VCLK by counting the number of the HCLK. WDLY[7:2] are reserved.
00 = 16 HCLK, 01 = 32 HCLK, 10 = 48 HCLK, 11 = 64 HCLK
[18:8]HOZVAL: TFT/STN: These bits determine the horizontal size of LCD panel.
HOZVAL has to be determined to meet the condition that total bytes of 1 line are 4n bytes. If the x size of LCD is 120 dot in mono mode, x=120 cannot be supported because 1 line consists of 15 bytes. Instead, x=128 in mono mode can be supported because 1 line is composed of 16 bytes (2n). LCD panel driver will discard the additional 8 dot.
[7:0] HFPD (TFT) / LINEBLANK (STN):
TFT: Horizontal front porch is the number of VCLK periods between the end of active data and the rising edge of HSYNC.
STN: These bits indicate the blank time in one horizontal line duration time. These bits adjust the rate of the VLINE finely.
The unit of LINEBLANK is HCLK x 8. Ex) If the value of LINEBLANK is 10, the blank time is inserted to VCLK during 80 HCLK.
寄存器地址:0X4D00000C,可读可写,初始化值:0x00000000
[15:8] MVAL: STN: These bit define the rate at which the VM signal will toggle if the MMODE bit is set to logic '1'.
[7:0] HSPW(TFT) / WLH(STN):
TFT: Horizontal sync pulse width determines the HSYNC pulse's high level width by counting the number of the VCLK.
STN: WLH[1:0] bits determine the VLINE pulse's high level width by counting the number of the HCLK. WLH[7:2] are reserved
00 = 16 HCLK, 01 = 32 HCLK, 10 = 48 HCLK, 11 = 64 HCLK
寄存器地址:0X4D000010,可读可写,初始化值:0x00000000,可设置为0xB41
[31:17] Reserved: This bit is reserved and the value should be ‘0’.
[16:15] VSTATUS: TFT: Vertical Status (read only).
00 = VSYNC 01 = BACK Porch
10 = ACTIVE 11 = FRONT Porch
[14:13] HSTATUS: TFT: Horizontal Status (read only).
00 = HSYNC 01 = BACK Porch
10 = ACTIVE 11 = FRONT Porch
[12] BPP24BL: TFT: This bit determines the order of 24 bpp video memory.
0 = LSB valid 1 = MSB Valid
[11] FRM565: TFT: This bit selects the format of 16 bpp output video data.
0 = 5:5:5:1 Format 1 = 5:6:5 Format
[10] INVVCLK: STN/TFT: This bit controls the polarity of the VCLK active edge.
0 = The video data is fetched at VCLK falling edge
1 = The video data is fetched at VCLK rising edge
[9] INVVLINE: STN/TFT: This bit indicates the VLINE/HSYNC pulse polarity.
0 = Normal 1 = Inverted
[8] INVVFRAME: STN/TFT: This bit indicates the VFRAME/VSYNC pulse polarity.
0 = Normal 1 = Inverted
[7] INVVD: STN/TFT: This bit indicates the VD (video data) pulse polarity.
0 = Normal 1 = VD is inverted.
[6] INVVDEN: TFT: This bit indicates the VDEN signal polarity.
0 = normal 1 = inverted
[5] INVPWREN: STN/TFT: This bit indicates the PWREN signal polarity.
0 = normal 1 = inverted
[4] INVLEND: TFT: This bit indicates the LEND signal polarity.
0 = normal 1 = inverted
[3] PWREN: STN/TFT: LCD_PWREN output signal enable/disable.
0 = Disable PWREN signal 1 = Enable PWREN signal
[2] ENLEND: TFT: LEND output signal enable/disable
0 = Disable LEND signal 1 = Enable LEND signal
[1] BSWP: STN/TFT: Byte swap control bit.
0 = Swap Disable 1 = Swap Enable
[0] HWSWP: STN/TFT: Half-Word swap control bit
0 = Swap Disable 1 = Swap Enable
STN/TFT: Frame buffer start address 1 register
,寄存器地址:0X4D000014
,可读可写,初始化值:0x00000000
[29:21] LCDBANK: These bits indicate A[30:22] of the bank location for the video buffer in the system memory. LCDBANK value cannot be changed even when moving the view port. LCD frame buffer should be within aligned 4MB region, which ensures that LCDBANK value will not be changed when moving the view port. So, care should be taken to use the malloc() function.
[20:0] LCDBASEU:
For dual-scan LCD : These bits indicate A[21:1] of the start address of the upper address counter, which is for the upper frame memory of dual scan LCD or the frame memory of single scan LCD.
For single-scan LCD : These bits indicate A[21:1] of the start address of the LCD frame buffer.
STN/TFT: Frame buffer start address 1 register
,寄存器地址:0X4D000014
,可读可写,初始化值:0x00000000
[20:0] LCDBASEL:
For dual-scan LCD: These bits indicate A[21:1] of the start address of the lower address counter, which is used for the lower frame memory of dual scan LCD.
For single scan LCD: These bits indicate A[21:1] of the end address of the LCD frame buffer.
LCDBASEL = ((the frame end address) >>1) + 1 = LCDBASEU + (PAGEWIDTH+OFFSIZE) x (LINEVAL+1)
STN/TFT: Virtual screen address set
,寄存器地址:0X4D00001C
,可读可写,初始化值:0x00000000
[21:11] OFFSIZE: Virtual screen offset size (the number of half words).
This value defines the difference between the address of the last half word displayed on the previous LCD line and the address of the first half word to be displayed in the new LCD line.
[10:0] PAGEWIDTH: Virtual screen page width (the number of half words).
This value defines the width of the view port in the frame.
NOTE: The values of PAGEWIDTH and OFFSIZE must be changed when ENVID bit is 0.
- Example 1. LCD panel = 320 x 240, 16gray, single scan
Frame start address = 0x0c500000
Offset dot number = 2048 dots ( 512 half words )
LINEVAL = 240-1 = 0xef
PAGEWIDTH = 320 x 4 / 16 = 0x50
OFFSIZE = 512 = 0x200
LCDBANK = 0x0c500000 >> 22 = 0x31
LCDBASEU = 0x100000 >> 1 = 0x80000
LCDBASEL = 0x80000 + ( 0x50 + 0x200 ) x ( 0xef + 1 ) = 0xa2b00- Example 2. LCD panel = 320 x 240, 16gray, dual scan
Frame start address = 0x0c500000
Offset dot number = 2048 dots ( 512 half words )
LINEVAL = 120-1 = 0x77
PAGEWIDTH = 320 x 4 / 16 = 0x50
OFFSIZE = 512 = 0x200
LCDBANK = 0x0c500000 >> 22 = 0x31
LCDBASEU = 0x100000 >> 1 = 0x80000
LCDBASEL = 0x80000 + ( 0x50 + 0x200 ) x ( 0x77 + 1 ) = 0x91580- Example 3. LCD panel = 320*240, color, single scan
Frame start address = 0x0c500000
Offset dot number = 1024 dots ( 512 half words )
LINEVAL = 240-1 = 0xef
PAGEWIDTH = 320 x 8 / 16 = 0xa0
OFFSIZE = 512 = 0x200
LCDBANK = 0x0c500000 >> 22 = 0x31
LCDBASEU = 0x100000 >> 1 = 0x80000
LCDBASEL = 0x80000 + ( 0xa0 + 0x200 ) x ( 0xef + 1 ) = 0xa7600
STN: Red lookup table register
,寄存器地址:0X4D000020
,可读可写,初始化值:0x00000000
[31:0] REDVAL: These bits define which of the 16 shades will be chosen by each of the 8 possible red combinations.
000 = REDVAL[3:0], 001 = REDVAL[7:4]
010 = REDVAL[11:8], 011 = REDVAL[15:12]
100 = REDVAL[19:16], 101 = REDVAL[23:20]
110 = REDVAL[27:24], 111 = REDVAL[31:28]
STN: Green lookup table register
,寄存器地址:0X4D000024
,可读可写,初始化值:0x00000000
[31:0] GREENVAL: These bits define which of the 16 shades will be chosen by each of the 8 possible green combinations.
000 = GREENVAL[3:0], 001 = GREENVAL[7:4]
010 = GREENVAL[11:8], 011 = GREENVAL[15:12]
100 = GREENVAL[19:16], 101 = GREENVAL[23:20]
110 = GREENVAL[27:24], 111 = GREENVAL[31:28]
STN: Blue lookup table register
,寄存器地址:0X4D000028
,可读可写,初始化值:0x00000000
[15:0] BLUEVAL: These bits define which of the 16 shades will be chosen by each of the 4 possible blue combinations.
00 = BLUEVAL[3:0], 01 = BLUEVAL[7:4]
10 = BLUEVAL[11:8], 11 = BLUEVAL[15:12]
STN: Dithering mode register. This register reset value is 0x00000 But, user can change this value to 0x12210. (Refer to a sample program source for the latest value of this register.)
,寄存器地址:0X4D00004C
,可读可写,初始化值:0x00000000
[18:0] DITHMODE: Use one of following value for your LCD: 0x00000 or 0x12210
TFT: Temporary palette register. This register value will be video data at next frame.
,寄存器地址:0X4D000050
,可读可写,初始化值:0x00000000
[24] TPALEN: Temporary palette register enable bit.
0 = Disable 1 = Enable
[23:0] TPALVAL: Temporary palette value register.
TPALVAL[23:16] : RED
TPALVAL[15:8] : GREEN
TPALVAL[7:0] : BLUE
Indicate the LCD interrupt pending register.
,寄存器地址:0X4D000054
,可读可写,初始化值:0x00000000
[1] INT_FrSyn: LCD frame synchronized interrupt pending bit.
0 = The interrupt has not been requested.
1 = The frame has asserted the interrupt request
[0] INT_FiCnt: LCD FIFO interrupt pending bit.
0 = The interrupt has not been requested.
1 = LCD FIFO interrupt is requested when LCD FIFO reaches trigger level.
Indicate the LCD interrupt source pending register.
,寄存器地址:0X4D000058
,可读可写,初始化值:0x00000000
[1] INT_FrSyn: LCD frame synchronized interrupt source pending bit.
0 = The interrupt has not been requested.
1 = The frame has asserted the interrupt request.
[0] INT_FiCnt: LCD FIFO interrupt source pending bit.
0 = The interrupt has not been requested.
1 = LCD FIFO interrupt is requested when LCD FIFO reaches trigger level.
Determine which interrupt source is masked. The masked interrupt source will not be serviced..
,寄存器地址:0X4D000058
,可读可写,初始化值:0x3
[2] FIWSEL: Determine the trigger level of LCD FIFO.
0 = 4 words 1 = 8 words
[1] INT_FrSyn: Mask LCD frame synchronized interrupt.
0 = The interrupt service is available.
1 = The interrupt service is masked.
[0] INT_FiCnt: Mask LCD FIFO interrupt.
0 = The interrupt service is available.
1 = The interrupt service is masked.
This register controls the LPC3600/LCC3600 modes...
,寄存器地址:0X4D000060
,可读可写,初始化值:0xF84
[11] LCC_TEST2: LCC3600 Test Mode 2 ( Read Only )
[10] LCC_TEST1: LCC3600 Test Mode 1 ( Read Only )
[9] LCC_SEL5: Select STV polarity
[8] LCC_SEL4: Select CPV signal pin 0
[7] LCC_SEL3: Select CPV signal pin 1
[6] LCC_SEL2: Select Line/Dot inversion
[5] LCC_SEL1: Select DG/Normal mode
[4] LCC_EN: Determine LCC3600 Enable/Disable
0 = LCC3600 Disable, 1 = LCC3600 Enable
[3] CPV_SEL: Select CPV Pulse low width
[2] MODE_SEL: Select DE/Sync mode
0 = Sync mode, 1 = DE mode
[1] RES_SEL: Select output resolution type
0 = 320 x 240
1 = 240 x 320
[0]LPC_EN: Determine LPC3600 Enable/Disable
0 = LPC3600 Disable, 1 = LPC3600 Enable
NOTE: Both LPC_EN and LCC_EN enable is not permitted. Only one TCON can be enabled at the same time.