屏的调试
来源:互联网 发布:淘宝店怎么铺货 编辑:程序博客网 时间:2024/04/26 07:25
由于原来用的320*240的屏厂家不再生产,推出了一款同样的新屏,这周一直在调试屏的驱动。
屏的时序和寄存器和原来完全相同,但换上去后,上下不停的闪,初步怀疑为帧同步不对。MCU用的是ADI的BF531,与LCD之间通过SPI配置寄存器,PPI传输数据,行同步和帧同步分别为time1和time2中断,尝试修改了timer2的脉宽和周期,效果不大。
查看屏的文档和相关寄存器,时序和寄存器还是和原来无区别。原来的代码里只配置了R02和R0E寄存器,R02寄存器为Operation Control Register, 这个不配置会导致红屏,但配置默认值也可以,如果不配就是不行; R0E寄存器VCOMDC Level Control Registe,主要是配置VCOMDC的电压,配置的为5V,如果不配置会白屏。详细查看了别的寄存器,也没看出个所以然来。
这时硬件部老大过来查看进度,问询了相关情况后,定义为“不一定是软件问题,可能硬件时序存在问题”,LCD的时序一直未测过,可能时序并不是特别充裕,先量下时序看看,是否满足LCD文档中的要求。
今天量了下屏的相关时序,初步定义为数据和时钟的时序不对应,数据应该在上升沿采样,下降沿切换数据,但实际的时序却相反,准备修改时序。查阅了一下午的BF531的手册,跟PPI相关的也就那么几个寄存器,只有PPI_DELAY,PPI_COUNTER, PPI_CONTROL, PPI_STATE, PPI_FRAME,根本没有跟时序相关的,没有配置上升下降沿,甚至连一个配置PPI_CLK的都没有,只好继续求助硬件。
所有的外围器件都是通过CPLD来进行管理,在CPLD里对SPI的CLK进行反向,大工告成,屏可不闪了。
可重新开机后,屏还是会有时颜色不对,有时比较蒙,看来明天还得继续。
总结:
写这篇文章的主要目的,并不是为了记录什么高深的学问,主要体现一种思想----软硬结合,当遇到问题是,软件不能一味的改代码,应该认真分析问题,在无果时及时找硬件和其他相关人员,进行研讨,考虑各种可能性,软件,硬件,CPLD,FPGA等一起查找,这样才能快速准确的定位并解决问题。
再举一例,上半年的一个产品:
公司原来的产品MCU都是DSP,准备切换到ARM,运行Linux,在一款新产品上进行试验。在调试过程中遇到一个严重但随机的问题,放在那,动不动就死机,可整死个人,查了整整两个多月,整个产品完全延期。先查驱动,只跑系统,完全没有问题,但跑上层软件后就会死机。怀疑上层应用,一块一块代码的屏蔽,把屏幕部分屏蔽就好了,基本不死机。继续怀疑代码在上层部分,查屏的Buffer操作是否有问题,又尝试了好久,无果。将代码跑到相关的开发板上,程序能正常运行,不会死机,但ARM部分电路完全同开发板。请厂家,技术支持,硬件查电路图,看代码,还是无果。BOSS出马了,召集所有人,硬件,软件,所有的老大,分析问题,查问每个现象,把每种可能分下去,一一排查。硬件那边灵感来了,查看PCB时,发现LCD和DDR之间用几根线离得比较近,可能会相互影响。把LCD那几根线断开,跑程序,经过长时间的测试,高低温测试,不存在问题。终于把问题给定位出来了,这也算一例软硬结合的完美案例。
- 屏的调试
- LCD屏的调试注意事项
- 关于lcd屏的调试。
- 调试触屏的一些积累
- 关于RGB屏调试的一些知识
- 关于RGB屏调试的一些知识
- 调试LATTICE 的SGMII的调试。
- 调试的时候,调试页面的配置
- 调试代码(1) -- 调试原则与调试常用的方法
- 遇到调试器不能调试的问题
- 调试--几种调试php的方法
- GDB调试及其调试脚本的使用
- 《软件调试》-- 编译器的调试支持
- GDB调试及其调试脚本的使用
- ocx的容器调试和ie调试
- SEH反调试的实现与调试
- 调试案例明白断点调试的重要性
- GDB调试及其调试脚本的使用
- UVA 10056 - What is the Probability ?(概率)
- 滕州晋州荆州河源大庆吉安1383829328951
- 汉川遵义丹阳常宁1383829468984
- NoSql比较知名的产品
- HTML5分享:Canvas多点触控规模与KineticJS形状
- 屏的调试
- 德阳贵港登封常宁咸阳通州1383829359335
- 谁在说谎 c,java实现
- 曲靖珠海合肥四平江油江山1383829367457
- 平方根是否为整数
- 将 Flex 集成到 Java EE java+Flex分离配置
- 邓州昆山虎林长春贵港营口1383829372604
- 庄河福州高要瑞金1383829505906
- 北流佛山金华厦门淮北南昌1383829389599