RGB屏调试问题
时间:10-02
整理:3721RD
点击:
我们有个72的项目用的ILI9806E RGB的屏,调试碰到点问题,目前也没点亮,白屏,请砖家指点指点。
这个屏是DPI(RGB)+3LINE-9bit-SPI-COMMAND接口,需要用GPIO模拟SPI来实现command的传输。
我这边根据datasheet完成了send cmd和send data函数,datasheet中指出通过SPI给LCD传递命令时,需要将CSX拉低, SCL拉低,这个IC是3line-9bit的,就是在传递数据时,是1个D/C位+1byte command或者data,D/C位为0是传COMMAND,为1时是data。
本以为今天能搞定的,结果白忙活了一天,量了一下屏上的大电容没有电压,看样子是都没有数据传进去,DPI那边的配置,该配的脚都配了,唯一可能有错的就是DPI的时序配置。
问:
下一步应如何排查,如何确认LCD有没有收到初始化序列;
如果是DPI时序错了,会导致RGB数据下不过去?引起白屏?DPI部分应如何排查?
static __inline void spi_send_data(unsigned int data)
{
unsigned int i;
SET_LSCE_HIGH;
SET_LSCK_WRITE_INVALID; //SET_LSCK_HIGH;
SET_LSDA_HIGH;
UDELAY(10);
SET_LSCE_LOW;
UDELAY(10);
for (i = 0; i < 9; ++ i)
{
SET_LSCK_WRITE_VALID; //SET_LSCK_LOW;
if (data & (1 << 8)) {
SET_LSDA_HIGH;
} else {
SET_LSDA_LOW;
}
data <<= 1;
UDELAY(10);
SET_LSCK_WRITE_INVALID; //SET_LSCK_HIGH;
UDELAY(10);
}
SET_LSDA_HIGH;
SET_LSCE_HIGH;
}
static __inline void send_ctrl_cmd(unsigned int cmd)
{
unsigned int out = (cmd & 0xFF);
spi_send_data(out);
}
static __inline void send_data_cmd(unsigned int data)
{
unsigned int out = ((0x1 << 8) | (data & 0xFF ));
spi_send_data(out);
}
这个屏是DPI(RGB)+3LINE-9bit-SPI-COMMAND接口,需要用GPIO模拟SPI来实现command的传输。
我这边根据datasheet完成了send cmd和send data函数,datasheet中指出通过SPI给LCD传递命令时,需要将CSX拉低, SCL拉低,这个IC是3line-9bit的,就是在传递数据时,是1个D/C位+1byte command或者data,D/C位为0是传COMMAND,为1时是data。
本以为今天能搞定的,结果白忙活了一天,量了一下屏上的大电容没有电压,看样子是都没有数据传进去,DPI那边的配置,该配的脚都配了,唯一可能有错的就是DPI的时序配置。
问:
下一步应如何排查,如何确认LCD有没有收到初始化序列;
如果是DPI时序错了,会导致RGB数据下不过去?引起白屏?DPI部分应如何排查?
static __inline void spi_send_data(unsigned int data)
{
unsigned int i;
SET_LSCE_HIGH;
SET_LSCK_WRITE_INVALID; //SET_LSCK_HIGH;
SET_LSDA_HIGH;
UDELAY(10);
SET_LSCE_LOW;
UDELAY(10);
for (i = 0; i < 9; ++ i)
{
SET_LSCK_WRITE_VALID; //SET_LSCK_LOW;
if (data & (1 << 8)) {
SET_LSDA_HIGH;
} else {
SET_LSDA_LOW;
}
data <<= 1;
UDELAY(10);
SET_LSCK_WRITE_INVALID; //SET_LSCK_HIGH;
UDELAY(10);
}
SET_LSDA_HIGH;
SET_LSCE_HIGH;
}
static __inline void send_ctrl_cmd(unsigned int cmd)
{
unsigned int out = (cmd & 0xFF);
spi_send_data(out);
}
static __inline void send_data_cmd(unsigned int data)
{
unsigned int out = ((0x1 << 8) | (data & 0xFF ));
spi_send_data(out);
}
有点麻烦k哦 如果调出来 分享一下
亮了,思路是对的,但是spi的函数的时序不正确,根据datasheet重新调整一下时序,命令就可以传过去了,你可以去量屏上的几个大电容,应该有十几V的电压,这样就代表初始化参数已经传进去了。如果这个时候还是白屏,就要进一步调整PCLK相关的那些时序了,先用MTK 参考屏的PCLK,VSYNC,HSYNC参数试试,不行再根据datasheet算一下。
ICN6211 MTK平台已经搞定 QQ交流 282532389
