TFT 调试笔记

同事在开发板上接了一块7寸显示屏,为了省事,他没接背光灯。因为他在开发板上找不到高于9V的电源,而TFT显示屏说明书上说背光灯需要9V的电源。

调试过程中,LCD无论如何都点不亮,查阅了相关资料,TFT需要背光LCD提供光源,然后通过偏振光片,液晶分子,和滤光片来控制红绿蓝三种不同色彩通过的亮度,就可以显示不同的色彩。所以背光LCD是必须的,这家伙,真是坑爹。

背光灯的电源接上了,但LCD仍然是不亮。他找了了可调电源,慢慢地加电源,一直加到18V,背光灯才亮起来。说明书说9V是瞎说,又一个坑爹的家伙。

现在LCD显示一片空白,我们调试参驱动程序的参数,LCD是800x480的,按每秒刷60次算,我们给到26.6Mhz的时钟频率,用示波器测量,帧同步信号是60.6hz, 行同步信号是32khz左右,数据使能信号与行同步信号同步,其它的水平back porch, front porch, 都在预期范围内,但LCD仍然一片空白,同事拿起lcd左看看,右看看,忽然看到一个色块闪了一下,随即消失,那个色块正是我们用程序显示的色块,怀疑是lcd排线接触不好,重新拿了一块LCD,把排线用胶带纸粘牢,固定在Lcd背面,这一次可以看到色块了。

但是色块在不断闪动,而且垂直方向显示错位,大约每显示八行,就会整体向右移动大约32个点,整个色块显示成了锯齿状斜块,而且还在不断抖动。

但是如果跑一个死循环程序 while(1);,就可以正确显示,因为此程序几乎100%占用了CPU,使cpu没有时间做其它事情,因此也就没有机会干扰lcd控制器通过dma通道从内存中抓数据,因此显示正常,但当cpu做其它事情时,就会干扰dma读取数据。

我怀疑是dma抓数据的速度不够快,造成dma fifo枯竭,此时就会产生dma underflow 中断,lcd控制器读不到数据,就会显示空白,随后dma fifo中有了数据,等lcd控制器从中读到数据并且把它显示到显示屏上时,已经产生了向右的错位。

在中断服务程序中加上debug信息,果然,dma underflow 中断产生的频率太高了,大约每秒5万个,这当然会让显示产生扭曲。试着把lcd的刷新频率降到50hz, 显示正常了。但是一般lcd的刷新率都是60-72hz, 我们用50hz行不行呢,暂时这么着吧。快累死了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值