1142 lines
29 KiB
C
1142 lines
29 KiB
C
|
#include "driver_display.h"
|
||
|
#include "driver_nv3041a.h"
|
||
|
|
||
|
#include "driver_parallel_interface.h"
|
||
|
|
||
|
|
||
|
extern PARALLEL_HandTypeDef hparallel;
|
||
|
|
||
|
static void WriteComm(uint8_t reg)
|
||
|
{
|
||
|
|
||
|
__PARALLEL_CS_SET(hparallel.PARALLELx);
|
||
|
/* writer cmd */
|
||
|
Parallel_write_cmd(&hparallel,reg);
|
||
|
__PARALLEL_CS_RELEASE(hparallel.PARALLELx);
|
||
|
}
|
||
|
static void WriteData(uint8_t data)
|
||
|
{
|
||
|
__PARALLEL_CS_SET(hparallel.PARALLELx);
|
||
|
/* writer cmd */
|
||
|
Parallel_write_param(&hparallel,data);
|
||
|
__PARALLEL_CS_RELEASE(hparallel.PARALLELx);
|
||
|
}
|
||
|
|
||
|
static void LCD_READ_DATA(uint8_t reg)
|
||
|
{
|
||
|
static uint16_t data=0;
|
||
|
__PARALLEL_CS_SET(hparallel.PARALLELx);
|
||
|
/* writer cmd */
|
||
|
|
||
|
//Parallel_write_cmd(&hparallel,reg);
|
||
|
// Parallel_read_data_cmd(&hparallel,reg,&data,1);
|
||
|
printf("reg_param:0x%x\r\n",data);
|
||
|
__PARALLEL_CS_RELEASE(hparallel.PARALLELx);
|
||
|
}
|
||
|
void display_backlight_set(void)
|
||
|
{
|
||
|
gpio_write_pin(GPIOA, GPIO_PIN_4, GPIO_PIN_SET);
|
||
|
}
|
||
|
|
||
|
void display_backlight_clear(void)
|
||
|
{
|
||
|
gpio_write_pin(GPIOA, GPIO_PIN_4, GPIO_PIN_CLEAR);
|
||
|
}
|
||
|
void nv3041a_set_window(uint16_t x_s, uint16_t x_e, uint16_t y_s, uint16_t y_e)
|
||
|
{
|
||
|
WriteComm(0x2a);//列地址设置
|
||
|
WriteData(x_s>>8);
|
||
|
WriteData(x_s&0xff);
|
||
|
WriteData(x_e>>8);
|
||
|
WriteData(x_e&0xff);
|
||
|
WriteComm(0x2b);//行地址设置
|
||
|
WriteData(y_s>>8);
|
||
|
WriteData(y_s&0xff);
|
||
|
WriteData(y_e>>8);
|
||
|
WriteData(y_e&0xff);
|
||
|
WriteComm(0x2c);//储存器写
|
||
|
// write_cmd(0x2c);
|
||
|
}
|
||
|
|
||
|
|
||
|
void LCD_Fill(uint16_t xsta,uint16_t ysta,uint16_t xend,uint16_t yend,uint16_t color)
|
||
|
{
|
||
|
uint16_t i,j,size;
|
||
|
nv3041a_set_window(xsta,xend-1,ysta,yend-1);//设置显示范围
|
||
|
__PARALLEL_CS_SET(hparallel.PARALLELx);
|
||
|
|
||
|
if(hparallel.Init.DataBusSelect == DATA_BUS_8_BIT)
|
||
|
{
|
||
|
size=2;
|
||
|
}else{
|
||
|
size=2;
|
||
|
}
|
||
|
for(i=ysta;i<yend;i++)
|
||
|
{
|
||
|
for(j=xsta;j<xend;j++)
|
||
|
{
|
||
|
// LCD_WR_DATA(color);
|
||
|
/* writer data */
|
||
|
Parallel_write_data(&hparallel,(uint32_t *)&color,size);
|
||
|
}
|
||
|
}
|
||
|
__PARALLEL_CS_RELEASE(hparallel.PARALLELx);
|
||
|
}
|
||
|
void nv3041a_display(uint32_t pixel_count, uint8_t pixel_width, void *data)
|
||
|
{
|
||
|
uint32_t frame_size=0;
|
||
|
|
||
|
if (pixel_width == 8) {
|
||
|
frame_size = (pixel_count*4);
|
||
|
}
|
||
|
if (pixel_width == 16) {
|
||
|
// frame_size = SPI_FRAME_SIZE_16BIT;
|
||
|
frame_size = (pixel_count*2);
|
||
|
}
|
||
|
else if (pixel_width == 32) {
|
||
|
frame_size = (pixel_count);
|
||
|
}
|
||
|
|
||
|
__PARALLEL_CS_SET(hparallel.PARALLELx);
|
||
|
//Parallel_write_param(&hparallel,data);
|
||
|
Parallel_write_data(&hparallel,data,(frame_size));
|
||
|
//while(__PARALLEL_IS_BUS_BUSY(hparallel.PARALLELx));
|
||
|
__PARALLEL_CS_RELEASE(hparallel.PARALLELx);
|
||
|
|
||
|
}
|
||
|
|
||
|
void nv3041a_display_dma(uint32_t pixel_count, uint8_t pixel_width, void *data)
|
||
|
{
|
||
|
uint8_t dma_trans_width=0;
|
||
|
uint32_t dma_sample_count=0;
|
||
|
switch (dma_display_handle.Init.Source_Width) {
|
||
|
case DMA_TRANSFER_WIDTH_32:
|
||
|
//272x480 16
|
||
|
dma_sample_count = pixel_count * pixel_width / 32;
|
||
|
//dma_sample_count=dma_sample_count*4;
|
||
|
break;
|
||
|
case DMA_TRANSFER_WIDTH_16:
|
||
|
dma_sample_count = pixel_count * pixel_width / 16;
|
||
|
// dma_sample_count=dma_sample_count*2;
|
||
|
break;
|
||
|
case DMA_TRANSFER_WIDTH_8:
|
||
|
dma_sample_count = pixel_count * pixel_width / 8;
|
||
|
// dma_sample_count=dma_sample_count;
|
||
|
break;
|
||
|
default:
|
||
|
return;
|
||
|
}
|
||
|
// switch(hparallel.Init.DataBusSelect)
|
||
|
// {
|
||
|
// case DATA_BUS_8_BIT:
|
||
|
// dma_trans_width = 2;
|
||
|
// break;
|
||
|
//
|
||
|
// case DATA_BUS_16_BIT:
|
||
|
// dma_trans_width=2;
|
||
|
// break;
|
||
|
// }
|
||
|
dma_sample_count=dma_sample_count*2;
|
||
|
__PARALLEL_CS_SET(hparallel.PARALLELx);
|
||
|
__PARALLEL_SET_WR_LEN(hparallel.PARALLELx,dma_sample_count);
|
||
|
dma_start_IT(&dma_display_handle, (uint32_t)data, (uint32_t)&hparallel.PARALLELx->TX_FIFO, (dma_sample_count));
|
||
|
}
|
||
|
|
||
|
void nv3041a_display_dma_isr(void)
|
||
|
{
|
||
|
#if 0
|
||
|
while(__SPI_IS_BUSY(spi_display_handle.SPIx));
|
||
|
// CS Release
|
||
|
__DISPLAY_CS_SET();
|
||
|
|
||
|
/* Clear Transfer complete status */
|
||
|
dma_clear_tfr_Status(&dma_display_handle);
|
||
|
/* channel Transfer complete interrupt disable */
|
||
|
dma_tfr_interrupt_disable(&dma_display_handle);
|
||
|
|
||
|
__SPI_DISABLE(spi_display_handle.SPIx);
|
||
|
__SPI_TX_ENDIAN_SET(spi_display_handle.SPIx, TX_RX_Endian_4321);
|
||
|
__SPI_DATA_FRAME_SIZE(spi_display_handle.SPIx, SPI_FRAME_SIZE_8BIT);
|
||
|
#endif
|
||
|
//printf("nv3041a_display_dma_isr1\r\n");
|
||
|
while(!( __PARALLEL_INT_STATUS(hparallel.PARALLELx)&INT_TXFIFO_EMPTY));
|
||
|
__PARALLEL_CS_RELEASE(hparallel.PARALLELx);
|
||
|
/* Clear Transfer complete status */
|
||
|
dma_clear_tfr_Status(&dma_display_handle);
|
||
|
/* channel Transfer complete interrupt disable */
|
||
|
dma_tfr_interrupt_disable(&dma_display_handle);
|
||
|
//printf("nv3041a_display_dma_isr2\r\n");
|
||
|
}
|
||
|
|
||
|
#define pixel_size 100*100
|
||
|
uint16_t color_buffer[pixel_size]={0};
|
||
|
|
||
|
void nv3041a_init(void)
|
||
|
{
|
||
|
display_backlight_clear();
|
||
|
//2024 0329 by lj 驱动测试
|
||
|
WriteComm(0xff);
|
||
|
WriteData(0xa5);
|
||
|
WriteComm(0xE7);
|
||
|
WriteData(0x10);
|
||
|
WriteComm(0x35);
|
||
|
WriteData(0x00);//01
|
||
|
WriteComm(0x36);
|
||
|
WriteData(0x00);//c0
|
||
|
WriteComm(0x3A);
|
||
|
//TE_output_en
|
||
|
//TE_ interface_en
|
||
|
WriteData(0x01);//01---565/00---666
|
||
|
WriteComm(0x40);
|
||
|
WriteData(0x01);//01:IPS/00:TN
|
||
|
WriteComm(0x41);
|
||
|
WriteData(0x03);//01--8bit//03--16bit
|
||
|
WriteComm(0x44);
|
||
|
WriteData(0x15);
|
||
|
WriteComm(0x45);
|
||
|
WriteData(0x15);
|
||
|
WriteComm(0x55);
|
||
|
WriteData(0x01);
|
||
|
//VBP
|
||
|
//VFP
|
||
|
WriteComm(0x7d);//vdds_trim[2:0]
|
||
|
WriteData(0x03);
|
||
|
WriteComm(0xc1);//avdd_clp_en avdd_clp[1:0] avcl_clp_en avcl_clp[1:0]
|
||
|
WriteData(0xbb);//0xbb 88
|
||
|
WriteComm(0xc2);//vgh
|
||
|
WriteData(0x07);
|
||
|
WriteComm(0xc3);//vgl
|
||
|
WriteData(0x10);
|
||
|
WriteComm(0xc6);//avdd_ratio_sel avcl_ratio_sel vgh_ratio_sel[1:0] vgl_ratio_sel[1:0]
|
||
|
WriteData(0x3e);
|
||
|
WriteComm(0xc7);//mv_clk_sel[1:0] avdd_clk_sel[1:0] avcl_clk_sel
|
||
|
WriteData(0x25);
|
||
|
WriteComm(0xc8);// VGL_CLK_sel
|
||
|
WriteData(0x21);
|
||
|
WriteComm(0x7a);// user_vgsp
|
||
|
WriteData(0x4F);
|
||
|
WriteComm(0x6f);// user_gvdd
|
||
|
WriteData(0x49);
|
||
|
WriteComm(0x78);// user_gvcl
|
||
|
WriteData(0x57);
|
||
|
WriteComm(0xc9);
|
||
|
WriteData(0x00);
|
||
|
WriteComm(0x67);
|
||
|
WriteData(0x11);
|
||
|
//gate_ed
|
||
|
WriteComm(0x51);//gate_st_o[7:0]
|
||
|
WriteData(0x0a);
|
||
|
WriteComm(0x52);//gate_ed_o[7:0]
|
||
|
WriteData(0x7D);
|
||
|
//7A
|
||
|
WriteComm(0x53);//gate_st_e[7:0]
|
||
|
WriteData(0x0a);
|
||
|
WriteComm(0x54);//gate_ed_e[7:0]
|
||
|
WriteData(0x7D); //7A
|
||
|
//sorce
|
||
|
WriteComm(0x46);//fsm_hbp_o[5:0]
|
||
|
WriteData(0x0a);
|
||
|
WriteComm(0x47);//fsm_hfp_o[5:0]
|
||
|
WriteData(0x2a);
|
||
|
WriteComm(0x48);//fsm_hbp_e[5:0]
|
||
|
WriteData(0x0a);
|
||
|
WriteComm(0x49);//fsm_hfp_e[5:0]
|
||
|
WriteData(0x1a);
|
||
|
WriteComm(0x44);
|
||
|
WriteData(0x15);
|
||
|
WriteComm(0x45);
|
||
|
WriteData(0x15);
|
||
|
WriteComm(0x73);
|
||
|
WriteData(0x08);
|
||
|
WriteComm(0x74);
|
||
|
WriteData(0x10);
|
||
|
///test mode
|
||
|
//WriteComm(0xf8);
|
||
|
//WriteData(0x16);
|
||
|
//WriteComm(0xf9);
|
||
|
//WriteData(0x20);
|
||
|
//0A
|
||
|
WriteComm(0x56);//src_ld_wd[1:0] src_ld_st[5:0]
|
||
|
WriteData(0x43);
|
||
|
WriteComm(0x57);//pn_cs_en src_cs_st[5:0]
|
||
|
WriteData(0x42);
|
||
|
WriteComm(0x58);//src_cs_p_wd[6:0]
|
||
|
WriteData(0x3c);
|
||
|
WriteComm(0x59);//src_cs_n_wd[6:0]
|
||
|
WriteData(0x64);
|
||
|
WriteComm(0x5a);//src_pchg_st_o[6:0]
|
||
|
WriteData(0x41);
|
||
|
WriteComm(0x5b);//src_pchg_wd_o[6:0]
|
||
|
WriteData(0x3C);
|
||
|
WriteComm(0x5c);//src_pchg_st_e[6:0]
|
||
|
WriteData(0x02);
|
||
|
WriteComm(0x5d);//src_pchg_wd_e[6:0]
|
||
|
WriteData(0x3c);
|
||
|
WriteComm(0x5e);//src_pol_sw[7:0]
|
||
|
WriteData(0x1f);
|
||
|
WriteComm(0x60);//src_op_st_o[7:0]
|
||
|
WriteData(0x80);
|
||
|
WriteComm(0x61);//src_op_st_e[7:0]
|
||
|
WriteData(0x3f);
|
||
|
WriteComm(0x62);//src_op_ed_o[9:8] src_op_ed_e[9:8]
|
||
|
WriteData(0x21);
|
||
|
WriteComm(0x63);//src_op_ed_o[7:0]
|
||
|
WriteData(0x07);
|
||
|
WriteComm(0x64);//src_op_ed_e[7:0]
|
||
|
WriteData(0xe0);
|
||
|
WriteComm(0x65);//chopper
|
||
|
WriteData(0x02);
|
||
|
WriteComm(0x6e);
|
||
|
WriteData(0x14);
|
||
|
WriteComm(0xe5);
|
||
|
WriteData(0x06);
|
||
|
WriteComm(0xe6);
|
||
|
WriteData(0x00);
|
||
|
WriteComm(0xca);
|
||
|
WriteData(0x20);
|
||
|
WriteComm(0xcb);
|
||
|
WriteData(0x52);
|
||
|
WriteComm(0xcc);
|
||
|
WriteData(0x10);
|
||
|
WriteComm(0xcD);
|
||
|
WriteData(0x42);
|
||
|
WriteComm(0xD0);
|
||
|
WriteData(0x20);
|
||
|
WriteComm(0xD1);
|
||
|
WriteData(0x52);
|
||
|
WriteComm(0xD2);
|
||
|
WriteData(0x10);
|
||
|
WriteComm(0xD3);
|
||
|
WriteData(0x42);
|
||
|
WriteComm(0xD4);
|
||
|
WriteData(0x0a);
|
||
|
WriteComm(0xD5);
|
||
|
WriteData(0x32);
|
||
|
WriteComm(0x80);
|
||
|
WriteData(0x04);
|
||
|
//lvd
|
||
|
//DVDD_TRIM
|
||
|
//ESD_CTRL
|
||
|
//avdd_mux_st_o[7:0]
|
||
|
//avdd_mux_ed_o[7:0]
|
||
|
//avdd_mux_st_e[7:0]
|
||
|
//avdd_mux_ed_e[7:0]
|
||
|
//avcl_mux_st_o[7:0]
|
||
|
//avcl_mux_ed_o[7:0]
|
||
|
//avcl_mux_st_e[7:0]
|
||
|
//avcl_mux_ed_e[7:0]
|
||
|
//vgh_mux_st[7:0]
|
||
|
//vgh_mux_ed[7:0]
|
||
|
//gam_vrp0
|
||
|
//04
|
||
|
WriteComm(0xA0); //gam_VRN0 0- 63-
|
||
|
WriteData(0x00);
|
||
|
//00
|
||
|
WriteComm(0x81);
|
||
|
WriteData(0x08);
|
||
|
//gam_vrp1
|
||
|
//07
|
||
|
|
||
|
WriteComm(0xA1); //gam_VRN1 1- 62-
|
||
|
WriteData(0x06);
|
||
|
//05
|
||
|
WriteComm(0x82);
|
||
|
WriteData(0x05);
|
||
|
//gam_vrp2
|
||
|
//04
|
||
|
WriteComm(0xA2); //gam_VRN2 2- 61-
|
||
|
WriteData(0x03);
|
||
|
//02
|
||
|
WriteComm(0x86);
|
||
|
WriteData(0x17);
|
||
|
//gam_prp0
|
||
|
//17
|
||
|
WriteComm(0xA6); //gam_PRN0 8- 55-
|
||
|
WriteData(0x15); //15
|
||
|
|
||
|
WriteComm(0x87); //gam_prp1 40 23 7bit
|
||
|
WriteData(0x2A); //2A
|
||
|
WriteComm(0xA7); //gam_PRN1 40- 23-
|
||
|
WriteData(0x2A); //2A
|
||
|
|
||
|
WriteComm(0x83); //gam_vrp3 61 2 6bit
|
||
|
WriteData(0x37); //37
|
||
|
WriteComm(0xA3); //gam_VRN3 61- 2-
|
||
|
WriteData(0x37); //37
|
||
|
|
||
|
WriteComm(0x84); //gam_vrp4 62 1 6bit
|
||
|
WriteData(0x35); //35
|
||
|
WriteComm(0xA4); //gam_VRN4 62- 1-
|
||
|
WriteData(0x35); //35
|
||
|
|
||
|
WriteComm(0x85); //gam_vrp5 63 0 6bit
|
||
|
WriteData(0x3f); //3F
|
||
|
WriteComm(0xA5); //gam_VRN5 63- 0-
|
||
|
WriteData(0x3f); //3F
|
||
|
|
||
|
WriteComm(0x88); //gam_pkp0 4 59 5bit
|
||
|
WriteData(0x0A); //0A
|
||
|
WriteComm(0xA8); //gam_PKN0 4- 59-
|
||
|
WriteData(0x0A); //0A
|
||
|
|
||
|
WriteComm(0x89); //gam_pkp1 5 58 5bit
|
||
|
WriteData(0x12); //12
|
||
|
WriteComm(0xA9); //gam_PKN1 5- 58-
|
||
|
WriteData(0x11); //11
|
||
|
|
||
|
WriteComm(0x8a); //gam_pkp2 7 56 5bit
|
||
|
WriteData(0x19); //19
|
||
|
WriteComm(0xAa); //gam_PKN2 7- 56-
|
||
|
WriteData(0x18); //18
|
||
|
|
||
|
WriteComm(0x8b); //gam_PKP3 10 53 5bit
|
||
|
WriteData(0x0a); //0A
|
||
|
WriteComm(0xAb); //gam_PKN3 10- 53-
|
||
|
WriteData(0x0a); //0A
|
||
|
|
||
|
WriteComm(0x8c); //gam_PKP4 16 47 5bit
|
||
|
WriteData(0x10); //10
|
||
|
WriteComm(0xAc); //gam_PKN4 16- 47-
|
||
|
WriteData(0x10); //10
|
||
|
|
||
|
WriteComm(0x8d); //gam_PKP5 22 41 5bit
|
||
|
WriteData(0x12); //12
|
||
|
WriteComm(0xAd); //gam_PKN5 22- 41-
|
||
|
WriteData(0x11); //11
|
||
|
|
||
|
WriteComm(0x8e); //gam_PKP6 28 35 5bit
|
||
|
WriteData(0x11); //11
|
||
|
WriteComm(0xAe); //gam_PKN6 28- 35-
|
||
|
WriteData(0x11); //11
|
||
|
WriteComm(0x8f); //gam_PKP7 34 29 5bit
|
||
|
WriteData(0x11); //11
|
||
|
WriteComm(0xAf); //gam_PKN7 34- 29-
|
||
|
WriteData(0x10); //10
|
||
|
|
||
|
WriteComm(0x90); //gam_PKP8 46 17 5bit
|
||
|
WriteData(0x04); //04
|
||
|
WriteComm(0xB0); //gam_PKN8 46- 17-
|
||
|
WriteData(0x04); //04
|
||
|
|
||
|
WriteComm(0x91); //gam_PKP9 52 11 5bit
|
||
|
WriteData(0x0B); //0B
|
||
|
WriteComm(0xB1); //gam_PKN9 52- 11-
|
||
|
WriteData(0x0B); //0B
|
||
|
|
||
|
WriteComm(0x92); //gam_PKP10 58 5 5bit
|
||
|
WriteData(0x17); //17
|
||
|
WriteComm(0xB2); //gam_PKN10 58- 5-
|
||
|
WriteData(0x17); //17
|
||
|
|
||
|
WriteComm(0xff);
|
||
|
WriteData(0x00);
|
||
|
|
||
|
WriteComm(0x11);
|
||
|
system_delay_us(120*1000);
|
||
|
WriteComm(0x29);
|
||
|
system_delay_us(20*1000);
|
||
|
|
||
|
#if 0//2024 0329 by lj
|
||
|
WriteComm(0xff);
|
||
|
WriteData(0xa5);
|
||
|
WriteComm(0xE7); //TE_output_en
|
||
|
WriteData(0x10);
|
||
|
WriteComm(0x35); //TE_ interface_en
|
||
|
WriteData(0x00);//01
|
||
|
WriteComm(0x36);
|
||
|
WriteData(0xC0);//c0
|
||
|
WriteComm(0x3A);
|
||
|
WriteData(0x01);//01---565/00---666
|
||
|
WriteComm(0x40);
|
||
|
WriteData(0x01);//01:IPS/00:TN
|
||
|
WriteComm(0x41);
|
||
|
WriteData(0x03);//01--8bit//03--16bit
|
||
|
WriteComm(0x44); //VBP
|
||
|
WriteData(0x15);
|
||
|
WriteComm(0x45); //VFP
|
||
|
WriteData(0x15);
|
||
|
WriteComm(0x7d);//vdds_trim[2:0]
|
||
|
WriteData(0x03);
|
||
|
WriteComm(0xc1);//avdd_clp_en avdd_clp[1:0] avcl_clp_en avcl_clp[1:0]
|
||
|
WriteData(0xbb);//0xbb 88 a2
|
||
|
WriteComm(0xc2);//vgl_clp_en vgl_clp[2:0]
|
||
|
WriteData(0x05);
|
||
|
WriteComm(0xc3);//vgl_clp_en vgl_clp[2:0]
|
||
|
WriteData(0x10);
|
||
|
WriteComm(0xc6);//avdd_ratio_sel avcl_ratio_sel vgh_ratio_sel[1:0] vgl_ratio_sel[1:0]
|
||
|
WriteData(0x3e);
|
||
|
WriteComm(0xc7);//mv_clk_sel[1:0] avdd_clk_sel[1:0] avcl_clk_sel[1:0]
|
||
|
WriteData(0x25);
|
||
|
WriteComm(0xc8);// VGL_CLK_sel
|
||
|
WriteData(0x21);
|
||
|
WriteComm(0x7a);// user_vgsp
|
||
|
WriteData(0x51); //58
|
||
|
WriteComm(0x6f);// user_gvdd
|
||
|
WriteData(0x49); //4F
|
||
|
WriteComm(0x78);// user_gvcl
|
||
|
WriteData(0x65); //70 57——>65
|
||
|
WriteComm(0xc9);
|
||
|
WriteData(0x00);
|
||
|
WriteComm(0x67);
|
||
|
WriteData(0x11);
|
||
|
WriteComm(0x51);//gate_st_o[7:0]
|
||
|
WriteData(0x0a);
|
||
|
WriteComm(0x52);//gate_ed_o[7:0]
|
||
|
WriteData(0x7D); //7A
|
||
|
WriteComm(0x53);//gate_st_e[7:0]
|
||
|
WriteData(0x0a);
|
||
|
WriteComm(0x54);//gate_ed_e[7:0]
|
||
|
WriteData(0x7D); //7A
|
||
|
WriteComm(0x46);//fsm_hbp_o[5:0]
|
||
|
WriteData(0x0a);
|
||
|
WriteComm(0x47);//fsm_hfp_o[5:0]
|
||
|
WriteData(0x2a);
|
||
|
WriteComm(0x48);//fsm_hbp_e[5:0]
|
||
|
WriteData(0x0a);
|
||
|
WriteComm(0x49);//fsm_hfp_e[5:0]
|
||
|
WriteData(0x1a);
|
||
|
WriteComm(0x44); //VBP
|
||
|
WriteData(0x15);
|
||
|
WriteComm(0x45); //VFP
|
||
|
WriteData(0x15);
|
||
|
WriteComm(0x73);
|
||
|
WriteData(0x08);
|
||
|
WriteComm(0x74);
|
||
|
WriteData(0x10); //0A
|
||
|
WriteComm(0x56);//src_ld_wd[1:0] src_ld_st[5:0]
|
||
|
WriteData(0x43);
|
||
|
WriteComm(0x57);//pn_cs_en src_cs_st[5:0]
|
||
|
WriteData(0x42);
|
||
|
WriteComm(0x58);//src_cs_p_wd[6:0]
|
||
|
WriteData(0x3c);
|
||
|
WriteComm(0x59);//src_cs_n_wd[6:0]
|
||
|
WriteData(0x64);
|
||
|
WriteComm(0x5a);//src_pchg_st_o[6:0]
|
||
|
WriteData(0x41);
|
||
|
WriteComm(0x5b);//src_pchg_wd_o[6:0]
|
||
|
WriteData(0x3C);
|
||
|
WriteComm(0x5c);//src_pchg_st_e[6:0]
|
||
|
WriteData(0x02);
|
||
|
WriteComm(0x5d);//src_pchg_wd_e[6:0]
|
||
|
WriteData(0x3c);
|
||
|
WriteComm(0x5e);//src_pol_sw[7:0]
|
||
|
WriteData(0x1f);
|
||
|
WriteComm(0x60);//src_op_st_o[7:0]
|
||
|
WriteData(0x80);
|
||
|
WriteComm(0x61);//src_op_st_e[7:0]
|
||
|
WriteData(0x3f);
|
||
|
WriteComm(0x62);//src_op_ed_o[9:8] src_op_ed_e[9:8]
|
||
|
WriteData(0x21);
|
||
|
WriteComm(0x63);//src_op_ed_o[7:0]
|
||
|
WriteData(0x07);
|
||
|
WriteComm(0x64);//src_op_ed_e[7:0]
|
||
|
WriteData(0xe0);
|
||
|
WriteComm(0x65);//chopper
|
||
|
WriteData(0x02);
|
||
|
WriteComm(0xca); //avdd_mux_st_o[7:0]
|
||
|
WriteData(0x20);
|
||
|
WriteComm(0xcb); //avdd_mux_ed_o[7:0]
|
||
|
WriteData(0x52);
|
||
|
WriteComm(0xcc); //avdd_mux_st_e[7:0]
|
||
|
WriteData(0x10);
|
||
|
WriteComm(0xcD); //avdd_mux_ed_e[7:0]
|
||
|
WriteData(0x42);
|
||
|
WriteComm(0xD0); //avcl_mux_st_o[7:0]
|
||
|
WriteData(0x20);
|
||
|
WriteComm(0xD1); //avcl_mux_ed_o[7:0]
|
||
|
WriteData(0x52);
|
||
|
WriteComm(0xD2); //avcl_mux_st_e[7:0]
|
||
|
WriteData(0x10);
|
||
|
WriteComm(0xD3); //avcl_mux_ed_e[7:0]
|
||
|
WriteData(0x42);
|
||
|
WriteComm(0xD4); //vgh_mux_st[7:0]
|
||
|
WriteData(0x0a);
|
||
|
WriteComm(0xD5); //vgh_mux_ed[7:0]
|
||
|
WriteData(0x32);
|
||
|
//gammma boe4.3
|
||
|
WriteComm(0x80); //gam_vrp0
|
||
|
WriteData(0x00);
|
||
|
WriteComm(0xA0); //gam_VRN0
|
||
|
WriteData(0x00);
|
||
|
WriteComm(0x81); //gam_vrp1
|
||
|
WriteData(0x06);//07
|
||
|
WriteComm(0xA1); //gam_VRN1
|
||
|
WriteData(0x08);//06
|
||
|
WriteComm(0x82); //gam_vrp2
|
||
|
WriteData(0x03);//02
|
||
|
WriteComm(0xA2); //gam_VRN2
|
||
|
WriteData(0x03);//01
|
||
|
WriteComm(0x86); //gam_prp0
|
||
|
WriteData(0x14); //11
|
||
|
WriteComm(0xA6); //gam_PRN0
|
||
|
WriteData(0x14); //10
|
||
|
WriteComm(0x87); //gam_prp1
|
||
|
WriteData(0x2C); //27
|
||
|
WriteComm(0xA7); //gam_PRN1
|
||
|
WriteData(0x26); //27
|
||
|
WriteComm(0x83); //gam_vrp3
|
||
|
WriteData(0x37);
|
||
|
WriteComm(0xA3); //gam_VRN3
|
||
|
WriteData(0x37);
|
||
|
WriteComm(0x84); //gam_vrp4
|
||
|
WriteData(0x35);
|
||
|
WriteComm(0xA4); //gam_VRN4
|
||
|
WriteData(0x35);
|
||
|
WriteComm(0x85); //gam_vrp5
|
||
|
WriteData(0x3f);
|
||
|
WriteComm(0xA5); //gam_VRN5
|
||
|
WriteData(0x3f);
|
||
|
WriteComm(0x88); //gam_pkp0
|
||
|
WriteData(0x0A); //0b
|
||
|
WriteComm(0xA8); //gam_PKN0
|
||
|
WriteData(0x0A); //0b
|
||
|
WriteComm(0x89); //gam_pkp1
|
||
|
WriteData(0x13); //14
|
||
|
WriteComm(0xA9); //gam_PKN1
|
||
|
WriteData(0x12); //13
|
||
|
WriteComm(0x8a); //gam_pkp2
|
||
|
WriteData(0x18); //1a
|
||
|
WriteComm(0xAa); //gam_PKN2
|
||
|
WriteData(0x19); //1a
|
||
|
WriteComm(0x8b); //gam_PKP3
|
||
|
WriteData(0x0a);
|
||
|
WriteComm(0xAb); //gam_PKN3
|
||
|
WriteData(0x0a);
|
||
|
WriteComm(0x8c); //gam_PKP4
|
||
|
WriteData(0x17);//14
|
||
|
WriteComm(0xAc); //gam_PKN4
|
||
|
WriteData(0x0B);//08
|
||
|
WriteComm(0x8d); //gam_PKP5
|
||
|
WriteData(0x1A);//17
|
||
|
WriteComm(0xAd); //gam_PKN5
|
||
|
WriteData(0x09);//07
|
||
|
WriteComm(0x8e); //gam_PKP6
|
||
|
WriteData(0x1A); //16 //16
|
||
|
WriteComm(0xAe); //gam_PKN6
|
||
|
WriteData(0x08); //06 //13
|
||
|
WriteComm(0x8f); //gam_PKP7
|
||
|
WriteData(0x1F); //1B
|
||
|
WriteComm(0xAf); //gam_PKN7
|
||
|
WriteData(0x00); //07
|
||
|
WriteComm(0x90); //gam_PKP8
|
||
|
WriteData(0x08);//04
|
||
|
WriteComm(0xB0); //gam_PKN8
|
||
|
WriteData(0x00);//04
|
||
|
WriteComm(0x91); //gam_PKP9
|
||
|
WriteData(0x10);//0A
|
||
|
WriteComm(0xB1); //gam_PKN9
|
||
|
WriteData(0x06);//0A
|
||
|
WriteComm(0x92); //gam_PKP10
|
||
|
WriteData(0x19);//16
|
||
|
WriteComm(0xB2); //gam_PKN10
|
||
|
WriteData(0x15);//15
|
||
|
WriteComm(0xff);
|
||
|
WriteData(0x00);
|
||
|
WriteComm(0x11);
|
||
|
system_delay_us(120*1000);
|
||
|
WriteComm(0x29);
|
||
|
//#if 0
|
||
|
// WriteComm(0xff);
|
||
|
// WriteData(0xa5);
|
||
|
// WriteComm(0xE7); //TE_output_en
|
||
|
// WriteData(0x10);
|
||
|
// WriteComm(0x35); //TE_ interface_en
|
||
|
// WriteData(0x00);//01
|
||
|
// WriteComm(0x36);
|
||
|
// WriteData(0xC0);//c0
|
||
|
// WriteComm(0x3A);
|
||
|
// WriteData(0x01);//01---565/00---666
|
||
|
// WriteComm(0x40);
|
||
|
// WriteData(0x01);//01:IPS/00:TN
|
||
|
// WriteComm(0x41);
|
||
|
// WriteData(0x03);//01--8bit//03--16bit
|
||
|
// WriteComm(0x44); //VBP
|
||
|
// WriteData(0x15);
|
||
|
// WriteComm(0x45); //VFP
|
||
|
// WriteData(0x15);
|
||
|
// WriteComm(0x7d);//vdds_trim[2:0]
|
||
|
// WriteData(0x03);
|
||
|
// WriteComm(0xc1);//avdd_clp_en avdd_clp[1:0] avcl_clp_en avcl_clp[1:0]
|
||
|
// WriteData(0xbb);//0xbb 88 a2
|
||
|
// WriteComm(0xc2);//vgl_clp_en vgl_clp[2:0]
|
||
|
// WriteData(0x05);
|
||
|
// WriteComm(0xc3);//vgl_clp_en vgl_clp[2:0]
|
||
|
// WriteData(0x10);
|
||
|
// WriteComm(0xc6);//avdd_ratio_sel avcl_ratio_sel vgh_ratio_sel[1:0] vgl_ratio_sel[1:0]
|
||
|
// WriteData(0x3e);
|
||
|
// WriteComm(0xc7);//mv_clk_sel[1:0] avdd_clk_sel[1:0] avcl_clk_sel[1:0]
|
||
|
// WriteData(0x25);
|
||
|
// WriteComm(0xc8);// VGL_CLK_sel
|
||
|
// WriteData(0x21);
|
||
|
// WriteComm(0x7a);// user_vgsp
|
||
|
// WriteData(0x51); //58
|
||
|
// WriteComm(0x6f);// user_gvdd
|
||
|
// WriteData(0x49); //4F
|
||
|
// WriteComm(0x78);// user_gvcl
|
||
|
// WriteData(0x57); //70
|
||
|
// WriteComm(0xc9);
|
||
|
// WriteData(0x00);
|
||
|
// WriteComm(0x67);
|
||
|
// WriteData(0x11);
|
||
|
// WriteComm(0x51);//gate_st_o[7:0]
|
||
|
// WriteData(0x0a);
|
||
|
// WriteComm(0x52);//gate_ed_o[7:0]
|
||
|
// WriteData(0x7D); //7A
|
||
|
// WriteComm(0x53);//gate_st_e[7:0]
|
||
|
// WriteData(0x0a);
|
||
|
// WriteComm(0x54);//gate_ed_e[7:0]
|
||
|
// WriteData(0x7D); //7A
|
||
|
// WriteComm(0x46);//fsm_hbp_o[5:0]
|
||
|
// WriteData(0x0a);
|
||
|
// WriteComm(0x47);//fsm_hfp_o[5:0]
|
||
|
// WriteData(0x2a);
|
||
|
// WriteComm(0x48);//fsm_hbp_e[5:0]
|
||
|
// WriteData(0x0a);
|
||
|
// WriteComm(0x49);//fsm_hfp_e[5:0]
|
||
|
// WriteData(0x1a);
|
||
|
// WriteComm(0x44); //VBP
|
||
|
// WriteData(0x15);
|
||
|
// WriteComm(0x45); //VFP
|
||
|
// WriteData(0x15);
|
||
|
// WriteComm(0x73);
|
||
|
// WriteData(0x08);
|
||
|
// WriteComm(0x74);
|
||
|
// WriteData(0x10); //0A
|
||
|
// WriteComm(0x56);//src_ld_wd[1:0] src_ld_st[5:0]
|
||
|
// WriteData(0x43);
|
||
|
// WriteComm(0x57);//pn_cs_en src_cs_st[5:0]
|
||
|
// WriteData(0x42);
|
||
|
// WriteComm(0x58);//src_cs_p_wd[6:0]
|
||
|
// WriteData(0x3c);
|
||
|
// WriteComm(0x59);//src_cs_n_wd[6:0]
|
||
|
// WriteData(0x64);
|
||
|
// WriteComm(0x5a);//src_pchg_st_o[6:0]
|
||
|
// WriteData(0x41);
|
||
|
// WriteComm(0x5b);//src_pchg_wd_o[6:0]
|
||
|
// WriteData(0x3C);
|
||
|
// WriteComm(0x5c);//src_pchg_st_e[6:0]
|
||
|
// WriteData(0x02);
|
||
|
// WriteComm(0x5d);//src_pchg_wd_e[6:0]
|
||
|
// WriteData(0x3c);
|
||
|
// WriteComm(0x5e);//src_pol_sw[7:0]
|
||
|
// WriteData(0x1f);
|
||
|
// WriteComm(0x60);//src_op_st_o[7:0]
|
||
|
// WriteData(0x80);
|
||
|
// WriteComm(0x61);//src_op_st_e[7:0]
|
||
|
// WriteData(0x3f);
|
||
|
// WriteComm(0x62);//src_op_ed_o[9:8] src_op_ed_e[9:8]
|
||
|
// WriteData(0x21);
|
||
|
// WriteComm(0x63);//src_op_ed_o[7:0]
|
||
|
// WriteData(0x07);
|
||
|
// WriteComm(0x64);//src_op_ed_e[7:0]
|
||
|
// WriteData(0xe0);
|
||
|
// WriteComm(0x65);//chopper
|
||
|
// WriteData(0x02);
|
||
|
// WriteComm(0xca); //avdd_mux_st_o[7:0]
|
||
|
// WriteData(0x20);
|
||
|
// WriteComm(0xcb); //avdd_mux_ed_o[7:0]
|
||
|
// WriteData(0x52);
|
||
|
// WriteComm(0xcc); //avdd_mux_st_e[7:0]
|
||
|
// WriteData(0x10);
|
||
|
// WriteComm(0xcD); //avdd_mux_ed_e[7:0]
|
||
|
// WriteData(0x42);
|
||
|
// WriteComm(0xD0); //avcl_mux_st_o[7:0]
|
||
|
// WriteData(0x20);
|
||
|
// WriteComm(0xD1); //avcl_mux_ed_o[7:0]
|
||
|
// WriteData(0x52);
|
||
|
// WriteComm(0xD2); //avcl_mux_st_e[7:0]
|
||
|
// WriteData(0x10);
|
||
|
// WriteComm(0xD3); //avcl_mux_ed_e[7:0]
|
||
|
// WriteData(0x42);
|
||
|
// WriteComm(0xD4); //vgh_mux_st[7:0]
|
||
|
// WriteData(0x0a);
|
||
|
// WriteComm(0xD5); //vgh_mux_ed[7:0]
|
||
|
// WriteData(0x32);
|
||
|
// //gammma boe4.3
|
||
|
// WriteComm(0x80); //gam_vrp0
|
||
|
// WriteData(0x00);
|
||
|
// WriteComm(0xA0); //gam_VRN0
|
||
|
// WriteData(0x00);
|
||
|
// WriteComm(0x81); //gam_vrp1
|
||
|
// WriteData(0x06);//07
|
||
|
// WriteComm(0xA1); //gam_VRN1
|
||
|
// WriteData(0x08);//06
|
||
|
// WriteComm(0x82); //gam_vrp2
|
||
|
// WriteData(0x03);//02
|
||
|
// WriteComm(0xA2); //gam_VRN2
|
||
|
// WriteData(0x03);//01
|
||
|
// WriteComm(0x86); //gam_prp0
|
||
|
// WriteData(0x14); //11
|
||
|
// WriteComm(0xA6); //gam_PRN0
|
||
|
// WriteData(0x14); //10
|
||
|
// WriteComm(0x87); //gam_prp1
|
||
|
// WriteData(0x2C); //27
|
||
|
// WriteComm(0xA7); //gam_PRN1
|
||
|
// WriteData(0x26); //27
|
||
|
// WriteComm(0x83); //gam_vrp3
|
||
|
// WriteData(0x37);
|
||
|
// WriteComm(0xA3); //gam_VRN3
|
||
|
// WriteData(0x37);
|
||
|
// WriteComm(0x84); //gam_vrp4
|
||
|
// WriteData(0x35);
|
||
|
// WriteComm(0xA4); //gam_VRN4
|
||
|
// WriteData(0x35);
|
||
|
// WriteComm(0x85); //gam_vrp5
|
||
|
// WriteData(0x3f);
|
||
|
// WriteComm(0xA5); //gam_VRN5
|
||
|
// WriteData(0x3f);
|
||
|
// WriteComm(0x88); //gam_pkp0
|
||
|
// WriteData(0x0A); //0b
|
||
|
// WriteComm(0xA8); //gam_PKN0
|
||
|
// WriteData(0x0A); //0b
|
||
|
// WriteComm(0x89); //gam_pkp1
|
||
|
// WriteData(0x13); //14
|
||
|
// WriteComm(0xA9); //gam_PKN1
|
||
|
// WriteData(0x12); //13
|
||
|
// WriteComm(0x8a); //gam_pkp2
|
||
|
// WriteData(0x18); //1a
|
||
|
// WriteComm(0xAa); //gam_PKN2
|
||
|
// WriteData(0x19); //1a
|
||
|
// WriteComm(0x8b); //gam_PKP3
|
||
|
// WriteData(0x0a);
|
||
|
// WriteComm(0xAb); //gam_PKN3
|
||
|
// WriteData(0x0a);
|
||
|
// WriteComm(0x8c); //gam_PKP4
|
||
|
// WriteData(0x17);//14
|
||
|
// WriteComm(0xAc); //gam_PKN4
|
||
|
// WriteData(0x0B);//08
|
||
|
// WriteComm(0x8d); //gam_PKP5
|
||
|
// WriteData(0x1A);//17
|
||
|
// WriteComm(0xAd); //gam_PKN5
|
||
|
// WriteData(0x09);//07
|
||
|
// WriteComm(0x8e); //gam_PKP6
|
||
|
// WriteData(0x1A); //16 //16
|
||
|
// WriteComm(0xAe); //gam_PKN6
|
||
|
// WriteData(0x08); //06 //13
|
||
|
// WriteComm(0x8f); //gam_PKP7
|
||
|
// WriteData(0x1F); //1B
|
||
|
// WriteComm(0xAf); //gam_PKN7
|
||
|
// WriteData(0x00); //07
|
||
|
// WriteComm(0x90); //gam_PKP8
|
||
|
// WriteData(0x08);//04
|
||
|
// WriteComm(0xB0); //gam_PKN8
|
||
|
// WriteData(0x00);//04
|
||
|
// WriteComm(0x91); //gam_PKP9
|
||
|
// WriteData(0x10);//0A
|
||
|
// WriteComm(0xB1); //gam_PKN9
|
||
|
// WriteData(0x06);//0A
|
||
|
// WriteComm(0x92); //gam_PKP10
|
||
|
// WriteData(0x19);//16
|
||
|
// WriteComm(0xB2); //gam_PKN10
|
||
|
// WriteData(0x15);//15
|
||
|
// WriteComm(0xff);
|
||
|
// WriteData(0x00);
|
||
|
// WriteComm(0x11);
|
||
|
// system_delay_us(120*1000);
|
||
|
// WriteComm(0x29);
|
||
|
//#if 0
|
||
|
WriteComm(0xff);
|
||
|
WriteData(0xa5);
|
||
|
WriteComm(0xE7);//TE_output_en
|
||
|
WriteData(0x10);
|
||
|
WriteComm(0x35);//TE_ interface_en
|
||
|
WriteData(0x01);
|
||
|
WriteComm(0x3A);
|
||
|
WriteData(0x01);//00---666//01--565
|
||
|
WriteComm(0x40);
|
||
|
WriteData(0x01); //01:IPS/00:TN
|
||
|
WriteComm(0x41);
|
||
|
//2024.03.08修改
|
||
|
WriteData(0x03);
|
||
|
//WriteData(0x01);//01--8bit//03--16bit
|
||
|
WriteComm(0x55);
|
||
|
WriteData(0x01);
|
||
|
WriteComm(0x44);//VBP
|
||
|
WriteData(0x15);//21NVu NV3041A-01
|
||
|
|
||
|
WriteComm(0x45);//VFP
|
||
|
WriteData(0x15);//21
|
||
|
WriteComm(0x7d);//vdds_trim[2:0]
|
||
|
WriteData(0x03);//2.07V
|
||
|
WriteComm(0xc1);//avdd_clp_en avdd_clp[1:0] avcl_clp_en avcl_clp[1:0]
|
||
|
WriteData(0xab);//6.74V/-5.16V
|
||
|
WriteComm(0xc2);//vgh_clp_en vgl_clp[2:0]
|
||
|
WriteData(0x17);
|
||
|
WriteComm(0xc3);//vgl_clp_en vgl_clp[2:0]
|
||
|
WriteData(0x10);//-10.951
|
||
|
WriteComm(0xc6);//avdd_ratio_sel avcl_ratio_sel vgh_ratio_sel[1:0] vgl_ratio_sel[1:0]
|
||
|
WriteData(0x3a);//35
|
||
|
WriteComm(0xc7);//mv_clk_sel[1:0] avdd_clk_sel[1:0] avcl_clk_sel[1:0]
|
||
|
WriteData(0x25); //2e
|
||
|
WriteComm(0xc8);// VGL_CLK_sel
|
||
|
WriteData(0x11);
|
||
|
WriteComm(0x6f);// user_gvdd
|
||
|
WriteData(0x2f);
|
||
|
WriteComm(0x78);// user_gvcl
|
||
|
WriteData(0x4b);
|
||
|
//WriteComm(0x7a);// user_vgsp
|
||
|
//WriteData(0x5f);
|
||
|
//test
|
||
|
WriteComm(0x7a);// user_vgsp
|
||
|
WriteData(0x49);
|
||
|
WriteComm(0xc9);
|
||
|
WriteData(0x00);
|
||
|
//gate_ed
|
||
|
WriteComm(0x51);//gate_st_o[7:0]
|
||
|
//WriteData(0x4b);
|
||
|
WriteData(0x20);
|
||
|
WriteComm(0x52);//gate_ed_o[7:0]
|
||
|
WriteData(0x7c);
|
||
|
WriteComm(0x53);//gate_st_e[7:0]
|
||
|
//WriteData(0x45);
|
||
|
WriteData(0x1c);
|
||
|
WriteComm(0x54);//gate_ed_e[7:0]
|
||
|
WriteData(0x77);
|
||
|
////sorce oldNVu NV3041A-01
|
||
|
|
||
|
WriteComm(0x46);//fsm_hbp_o[5:0]
|
||
|
WriteData(0x0a);
|
||
|
WriteComm(0x47);//fsm_hfp_o[5:0]
|
||
|
WriteData(0x2a);
|
||
|
WriteComm(0x48);//fsm_hbp_e[5:0]
|
||
|
WriteData(0x0a);
|
||
|
WriteComm(0x49);//fsm_hfp_e[5:0]
|
||
|
WriteData(0x1a);
|
||
|
WriteComm(0x56);//src_ld_wd[1:0] src_ld_st[5:0]
|
||
|
WriteData(0x43);
|
||
|
WriteComm(0x57);//pn_cs_en src_cs_st[5:0]
|
||
|
WriteData(0x42);
|
||
|
WriteComm(0x58);//src_cs_p_wd[6:0]
|
||
|
WriteData(0x3c);
|
||
|
WriteComm(0x59);//src_cs_n_wd[6:0]
|
||
|
WriteData(0x64);
|
||
|
WriteComm(0x5a);//src_pchg_st_o[6:0]
|
||
|
WriteData(0x41);
|
||
|
WriteComm(0x5b);//src_pchg_wd_o[6:0]
|
||
|
WriteData(0x3c);
|
||
|
WriteComm(0x5c);//src_pchg_st_e[6:0]
|
||
|
WriteData(0x02);
|
||
|
WriteComm(0x5d);//src_pchg_wd_e[6:0]
|
||
|
WriteData(0x3c);
|
||
|
WriteComm(0x5e);//src_pol_sw[7:0]
|
||
|
WriteData(0x1f);
|
||
|
WriteComm(0x60);//src_op_st_o[7:0]
|
||
|
WriteData(0x80);
|
||
|
WriteComm(0x61);//src_op_st_e[7:0]
|
||
|
WriteData(0x3f);
|
||
|
WriteComm(0x62);//src_op_ed_o[9:8] src_op_ed_e[9:8]
|
||
|
WriteData(0x21);
|
||
|
WriteComm(0x63);//src_op_ed_o[7:0]
|
||
|
WriteData(0x07);
|
||
|
WriteComm(0x64);//src_op_ed_e[7:0]
|
||
|
WriteData(0xe0);
|
||
|
WriteComm(0x65);//chopper
|
||
|
WriteData(0x01);//01-A2,02--A1NVu NV3041A-01
|
||
|
|
||
|
//WriteComm(0x67);
|
||
|
//WriteData(0x33);//01
|
||
|
WriteComm(0xca); //avdd_mux_st_o[7:0]
|
||
|
WriteData(0x20);
|
||
|
WriteComm(0xcb); //avdd_mux_ed_o[7:0]
|
||
|
WriteData(0x52);
|
||
|
WriteComm(0xcc); //avdd_mux_st_e[7:0]
|
||
|
WriteData(0x10);
|
||
|
WriteComm(0xcD); //avdd_mux_ed_e[7:0]
|
||
|
WriteData(0x42);
|
||
|
WriteComm(0xD0); //avcl_mux_st_o[7:0]
|
||
|
WriteData(0x20);
|
||
|
WriteComm(0xD1); //avcl_mux_ed_o[7:0]
|
||
|
WriteData(0x52);
|
||
|
WriteComm(0xD2); //avcl_mux_st_e[7:0]
|
||
|
WriteData(0x10);
|
||
|
WriteComm(0xD3); //avcl_mux_ed_e[7:0]
|
||
|
WriteData(0x42);
|
||
|
WriteComm(0xD4); //vgh_mux_st[7:0]
|
||
|
WriteData(0x0a);
|
||
|
WriteComm(0xD5); //vgh_mux_ed[7:0]
|
||
|
WriteData(0x32);
|
||
|
WriteComm(0xe5); //DVDD_TRIM
|
||
|
WriteData(0x05); //1.65 05
|
||
|
WriteComm(0xe6); //ESD_CTRL
|
||
|
WriteData(0x00);
|
||
|
WriteComm(0x6e); //LVD_en
|
||
|
WriteData(0x14);
|
||
|
//gammma 01
|
||
|
WriteComm(0x80); //gam_vrp0 63
|
||
|
WriteData(0x04);
|
||
|
WriteComm(0xA0); //gam_VRN0 63
|
||
|
WriteData(0x00);
|
||
|
WriteComm(0x81); //gam_vrp1 62
|
||
|
WriteData(0x07);
|
||
|
WriteComm(0xA1); //gam_VRN1 62-
|
||
|
WriteData(0x05);
|
||
|
WriteComm(0x82); //gam_vrp2 61
|
||
|
WriteData(0x06);
|
||
|
WriteComm(0xA2); //gam_VRN2 61-NVu NV3041A-01
|
||
|
|
||
|
WriteData(0x04);
|
||
|
WriteComm(0x83); //gam_vrp3 2
|
||
|
WriteData(0x39);
|
||
|
WriteComm(0xA3); //gam_VRN3 2-
|
||
|
WriteData(0x39);
|
||
|
WriteComm(0x84); //gam_vrp4 1
|
||
|
WriteData(0x3a);
|
||
|
WriteComm(0xA4); //gam_VRN4 1-
|
||
|
WriteData(0x3a);
|
||
|
WriteComm(0x85); //gam_vrp5 0
|
||
|
WriteData(0x3f); //2a~39-0.43
|
||
|
WriteComm(0xA5); //gam_VRN5 0-
|
||
|
WriteData(0x3f);
|
||
|
WriteComm(0x86); //gam_prp0 50
|
||
|
WriteData(0x2c); //33
|
||
|
WriteComm(0xA6); //gam_PRN0 50-
|
||
|
WriteData(0x2a); //2a
|
||
|
//WriteComm(0x87); //gam_prp1 14
|
||
|
//WriteData(0x46); //2d
|
||
|
//WriteComm(0xA7); //gam_PRN1 14-
|
||
|
//WriteData(0x44); //2d
|
||
|
WriteComm(0x87); //gam_prp1 14
|
||
|
WriteData(0x43); //2d
|
||
|
WriteComm(0xA7); //gam_PRN1 14-
|
||
|
WriteData(0x47); //2d
|
||
|
WriteComm(0x88); //gam_pkp0 59
|
||
|
WriteData(0x08); //0b
|
||
|
WriteComm(0xA8); //gam_PKN0 59-
|
||
|
WriteData(0x08); //0b
|
||
|
WriteComm(0x89); //gam_pkp1 57
|
||
|
WriteData(0x0f); //14
|
||
|
WriteComm(0xA9); //gam_PKN1 57-
|
||
|
WriteData(0x0f); //14
|
||
|
WriteComm(0x8a); //gam_pkp2 54
|
||
|
WriteData(0x17); //1a
|
||
|
WriteComm(0xAa); //gam_PKN2 54-
|
||
|
WriteData(0x17); //1a
|
||
|
WriteComm(0x8b); //gam_PKP3 44
|
||
|
WriteData(0x10);
|
||
|
WriteComm(0xAb); //gam_PKN3 44-
|
||
|
WriteData(0x10);
|
||
|
WriteComm(0x8c); //gam_PKP4 38
|
||
|
WriteData(0x16);
|
||
|
WriteComm(0xAc); //gam_PKN4 38-
|
||
|
WriteData(0x16);//NVu NV3041A-01
|
||
|
|
||
|
WriteComm(0x8d); //gam_PKP5 32
|
||
|
WriteData(0x14);
|
||
|
WriteComm(0xAd); //gam_PKN5 32-
|
||
|
WriteData(0x14);
|
||
|
WriteComm(0x8e); //gam_PKP6 26
|
||
|
WriteData(0x11); //16
|
||
|
WriteComm(0xAe); //gam_PKN6 26-
|
||
|
WriteData(0x11); //13
|
||
|
WriteComm(0x8f); //gam_PKP7 20
|
||
|
WriteData(0x14); //1c
|
||
|
WriteComm(0xAf); //gam_PKN7 20-
|
||
|
WriteData(0x14); //0a
|
||
|
WriteComm(0x90); //gam_PKP8 10
|
||
|
WriteData(0x06);
|
||
|
WriteComm(0xB0); //gam_PKN8 10-
|
||
|
WriteData(0x06);
|
||
|
WriteComm(0x91); //gam_PKP9 6
|
||
|
WriteData(0x0f);
|
||
|
WriteComm(0xB1); //gam_PKN9 6-
|
||
|
WriteData(0x0f);
|
||
|
WriteComm(0x92); //gam_PKP10 4
|
||
|
WriteData(0x16);
|
||
|
WriteComm(0xB2); //gam_PKN10 4-
|
||
|
WriteData(0x16);
|
||
|
WriteComm(0xff);
|
||
|
WriteData(0x00);
|
||
|
WriteComm(0x11);
|
||
|
|
||
|
WriteComm(0x36);
|
||
|
WriteData(0x00);
|
||
|
|
||
|
system_delay_us(120*1000);
|
||
|
WriteComm(0x29);
|
||
|
system_delay_us(20*1000);
|
||
|
|
||
|
#endif
|
||
|
|
||
|
// LCD_READ_DATA(0x36);
|
||
|
// for(uint32_t i=0;i<pixel_size;i++)
|
||
|
// {
|
||
|
// color_buffer[i]=0xf800;
|
||
|
// }
|
||
|
// nv3041a_set_window(0,240-1,0,320-1);
|
||
|
// __PARALLEL_CS_SET(hparallel.PARALLELx);
|
||
|
// /* writer data */
|
||
|
// Parallel_write_data(&hparallel,(uint32_t *)&color_buffer,(pixel_size));
|
||
|
// __PARALLEL_CS_RELEASE(hparallel.PARALLELx);
|
||
|
// system_delay_us(2000*1000);
|
||
|
|
||
|
// nv3041a_set_window(0,100-1,0,100-1);
|
||
|
// for(uint32_t i=0;i<pixel_size;i++)
|
||
|
// {
|
||
|
// color_buffer[i]=0x001f;
|
||
|
// }
|
||
|
// nv3041a_display_dma(pixel_size,8,color_buffer);
|
||
|
|
||
|
//2024.03.08 by lj
|
||
|
#if 0
|
||
|
for(uint32_t i=0;i<pixel_size;i++)
|
||
|
{
|
||
|
color_buffer[i]=0xf800;
|
||
|
}
|
||
|
nv3041a_set_window(0,100-1,0,100-1);
|
||
|
__PARALLEL_CS_SET(hparallel.PARALLELx);
|
||
|
/* writer data */
|
||
|
Parallel_write_data(&hparallel,(uint32_t *)&color_buffer,(pixel_size));
|
||
|
system_delay_us(100);
|
||
|
__PARALLEL_CS_RELEASE(hparallel.PARALLELx);
|
||
|
system_delay_us(1000*1000);
|
||
|
|
||
|
#if 1
|
||
|
extern uint32_t *user_get_display_framebuffer(void);
|
||
|
uint16_t *buf = (uint16_t*)user_get_display_framebuffer();
|
||
|
|
||
|
nv3041a_set_window(0,100-1,0,100-1);
|
||
|
for(uint32_t i=0;i<pixel_size;i++)
|
||
|
{
|
||
|
color_buffer[i]=0x001f;
|
||
|
}
|
||
|
nv3041a_display_dma(pixel_size,8,color_buffer);
|
||
|
|
||
|
system_delay_us(2000*1000);
|
||
|
uint16_t color_buf[16]={
|
||
|
0xf800,0x001f,0x01e0,0xffff,0x0fff,
|
||
|
};
|
||
|
static uint8_t index=0;
|
||
|
while(1)
|
||
|
{
|
||
|
for(uint32_t i=0;i<480*272;i++)
|
||
|
{
|
||
|
buf[i]=color_buf[index];
|
||
|
}
|
||
|
++index;
|
||
|
index%=4;
|
||
|
nv3041a_set_window(0,480-1,0,272-1);
|
||
|
nv3041a_display_dma((480*272),8,buf);
|
||
|
system_delay_us(2000*1000);
|
||
|
if(index==0)break;
|
||
|
}
|
||
|
|
||
|
for(uint32_t i=0;i<480*272;i++)
|
||
|
{
|
||
|
buf[i]=0xf800;
|
||
|
}
|
||
|
nv3041a_set_window(0,480-1,0,272-1);
|
||
|
nv3041a_display_dma((480*272),8,buf);
|
||
|
system_delay_us(2000*1000);
|
||
|
#endif
|
||
|
LCD_Fill(0,0,240,320,0x001f);
|
||
|
system_delay_us(2000*1000);
|
||
|
LCD_Fill(0,0,240,320,0x01e0);
|
||
|
system_delay_us(2000*1000);
|
||
|
LCD_Fill(0,0,240,320,0xffff);
|
||
|
printf("LCD_Fill\r\n");
|
||
|
#endif
|
||
|
printf("2024.0417\r\n");
|
||
|
printf("LCD_OK\r\n");
|
||
|
|
||
|
}
|