ARM-ili9325屏调试1--时序

2011-06-21 22:04:54


LCD连接好了,读id,不成功。说明配置引脚或读写时序不对。
原来是软件引脚配置出错。
应该用如下。
#define LCD_CS   {3<<30,'E',PIO_OUTPUT_0, PIO_PULLUP,1<<30,1<<15}
    rGPACON&=~mask;
    rGPACON|=PullUpmask;

mask是3<<30,PullUpmask是1<<30.

我一开始用的如下
#define LCD_CS   {1<<30,'E',PIO_OUTPUT_0, PIO_PULLUP,1<<30,1<<15}
    rGPACON&=~mask;
    rGPACON|=PullUpmask;

mask是1<<30,PullUpmask是1<<30.
现在想想一字之差,就差那么远。应该控制一个硬件是2个bit组合起来的。我只修改1bit那么是不对的。
但是又说明了一个问题,我半年前做的pio.c文件中的函数有问题,不正规。使用不方便。以后我要重新修改。

又过了45分钟,当我把读写时序改成别人的一样的,但是还是不行。没折了。这时候突然想到了reset脚我没用。是不是很重要呢,看了别人的程序,一开始的时候要reset1次哦。估计这个脚要用的。我定义下。

用了reset还是没起作用。我开始怀疑线是否太长。但是这个问题貌似暂时无法解决。另外,很早之前我方在面包板上也ok的,不过那时候我定的速度很慢的。再怀疑,我这个屏,之前买的,也没读过id,不知道是真屏还是假货。我最好在之前的avr上读一下id,确定是可以读的再来。

2010-6-19
我在while,让控制引脚高低这样变化。用示波器看每个引脚。其中cs的高电平很尖,但是也是保持到了高电平,这样配置引脚没问题了,连线也没问题了。
接着就要研究读写时序了。自己根据程序手动画了。在excel也画了。看上去没错啊。改了很多种,没用。用示波器看起来很累。我只有2通道。不过我终于找到了看的方法。比如先看cs和rs两根,再看rs和wr2根。结合ili9325的p108页看时序是否正确。变单步调试看时序。发现wr的低电平应该要保持在500ns之内,但是我怎么就1us呢,于是改主频时钟,改到405M,程序就跑飞,于是改到305M,并且把define电平的函数改简单了。终于在500ns之内了。但是还是不能正确初始化,刷屏。今天来不及了,明天再调试。

2010-6-20
1,cs的线更改,看效果。 0.5h 改了,但没用
2,看io口传的数据是否正确。1)DB15与NWR看效果。2)看DB15与DB14,看是否同步,是否正确。单步停止,一个个看

,用万用表看即可。  0.5h
1)效果证明数据正确。但是wr的低电平宽度还是大于500ns,所以我又改了时钟。
2)用万用表看其它的效果,结果正确。
但是屏仍然没反应。
3,avr与arm波形对比。修改。   1h
wr改完了。我的程序是循环的刷屏,当全速运行的时候,突然发现原来时序快了很多。于是又加了很多nop,又把主频时钟改为200MHZ,现在时序基本和avr的相同了。就是感觉有很多毛刺。于是看效果。还是不行。

突然想到wr与数据线还没与avr的wr与数据线比较。明天再比较。
4,可能是电流问题,焊接后再看效果。 0.5h 还是不行的话,只能暂时放弃。

2010-6-21
1,今天有预感,还是先焊接吧!结果焊接完后,上电,刷屏了,效果很好。为了时序总计调试了4小时。今天通过把杜

邦线改为焊接终于ok了。说明硬件连线对,写入时序对。初始化配置我是移植的,先不说。
2,我把时序改成我想象中的代码,结果也通过了。原来之前是硬件问题。

3,读id,还是没读出。今天没开示波器,明天在示波器中看看。待解决
4,把它的初始化程序改成我的,结果没初始化成功。待研究。

经过4个晚上的努力,终于关于屏第一个milestone完成了。证明LCD硬件是好的,并且在2440上能工作,并且完成了底层时序的编写。下一步就是LCD驱动代码的编写。

 

posted @ 2019-04-27 10:52  clleady  阅读(397)  评论(0编辑  收藏  举报