今天遇到一个探索者客户用9320的LCD液晶模块,使用OV2640摄像头的时候,出现条纹状显示。
画了半个下午找到了这个问题点,是探索者程序的bug。
问题现象:综合实验,进入照相机功能后,出现横条纹,并不出现完整的画面。
问题原因:因为探索者开发板兼容了N多LCD型号,有些LCD写入比较慢,故将部分LCD的写入速度放慢了,统一用54ns,但是实际上
摄像头输出的数据流比较快,用54ns会导致写入LCD的速度,更不上摄像头的输出速度,因此出现数据混叠/丢失,形成横条纹画面。
解决办法:LCD_Init函数里面,有如下代码:
[mw_shl_code=c,true] //写时序控制寄存器
FSMC_Bank1E->BWTR[6]|=0<<28; //模式A
FSMC_Bank1E->BWTR[6]|=9<<0; //地址建立时间(ADDSET)为9个HCLK=54ns
//9个HCLK(HCLK=168M),某些液晶驱动IC的写信号脉宽,最少也得50ns。
FSMC_Bank1E->BWTR[6]|=8<<8; //数据保存时间(DATAST)为6ns*9个HCLK=54ns[/mw_shl_code] |