本帖最后由 quzhanguang 于 2014-2-13 14:46 编辑
用的16位数据的并行数据传输数据,写一个点,屏幕内地址自加一,并且能自动换行,
只需要连续不断的往屏幕(FSMC的同一个地址)写240*400(屏幕的像素数)个数据就可以刷完整个屏幕(用过的人应该熟悉)。
出现的问题是,写某些比较复杂的图像时,某些行会错位,检查后确认是写某些点时会多写显示出一个点来。
显示的比实际写的多点了,我觉得是通信问题
发生这种错误是有规律的,刷单色不会出错,写多少个点出多少个点;
但是比如前一个像素数据是0x0000,后一个是0xffff出错的几率就很大,几乎100%出错,反之一样出错
如果前一个像素数据是0x0000,后一个是0xfff0出错的几率就小些,50%的情况会出错
前一个像素数据是0x0000,后一个是0x000f,交替写这两个数据就不会出错
前一个像素数据是0xAAAA,后一个是0x5555,交替写这两个数据也不会出错
我觉得是硬件问题了,用杜邦线连接的系统板和TFT模块,我猜是地线太少,数据线电平翻转给地平面带来干扰
于是我多连了两根地线,但是情况没有任何好转。连接图如下
现在要做PCB了,不知道该如何避免这个问题在制版的时候出现。假期看了信号完整性方面的书,可是刷屏速度也不快,应该不能算高频
240*400的像素,10mS刷一遍,10M左右,应该不是信号反射,不同时到达之类的问题
|