NandFlash调试的过程与心得
扫描二维码
随时随地手机看文章
调试的过程与心得交流
硬件平台:ARM7 44b0x
软件调试平台:ADS1.2
目的:调试一型号为:三星公司的k9f2808 容量为16M *8Bit 的NandFlash
文中:NF表示的是NandFlash
当把k9f2808 焊好后,便开始调试了,但是在其中遇到很多问题
我是第一次接触NandFlash,刚开始还是很陌生
<1>可以读出ID号(非常顺利, 这一点是我也没有想到的,认为基本上就搞定了)
<2>我试着写擦除代码 写页(我试着写0X5), 读页。 结果是返回来的全部是0XFF, 这时就出现了好多的疑点了:
我分析如下:
第一种可能:没有擦除到NF,也就不可能写了,返回的是错误的(怀疑擦除的时序有问题)
第二种可能:擦除对了,写页不对,读页也不对
第三种可能:擦除对了,写页对了,读页不对,返回的全部是错误的。
第四种可能:硬件连接不对包括有:(ALE 、CLE、CS、WR、RD等等)
第五种可能:硬件的焊接有问题
第六种可能:NandFlash是坏的
那时我也不知是什么问题而且很快进入了混乱之中。朋友们,当看到这里的时候,你认为是哪里出问题?
接着我是这样做的,我现在也觉得挺有意思
不断地调试代码(可以说是这样:脑子里想到这里有可能,就调一下,那里有可能就那里调一下)(因为我太想搞出来,想一下子把它搞定)
搞了三天还是不行,这时自己又停下来思索了,究竟是哪里出问题了???,就开始去网上找代码,整个GOOGLE都给我找翻了,但是还是没有答案。很是郁闷。
因为看到网上好多的开发板都是把控制线接到GPIO那里去的,而我的是接到地址总线上去的,于是我也就把问题归结的硬件连接的问题上去了。这时的我又是安慰自己,本来快没有信心的了,开始又有了信心了(我想搞开发的都会有这种感觉)。很快把控制线连到GPIO上,接着是改代码。结果呢?充满信心的我一下也就像没气的气球了,真是烦啊!
究竟是哪里出错了???很是郁闷啊!!我真的是累了,决定先放一放先,打了二天的星际争霸游戏,调节一下心情。
过了二天,我就告诉自己一定要彻底静下心来认真思考,鼓励自己要有耐心才能成功。于是我进入了第二阶段:
首先我还是把控制线接回地址总线那里去(因为我对这个比较有信心,起码可以读出ID)
我开始思考:我可以读出ID 来,就证明:
1, 写命令是正确的(否则的话就读不回ID,焊接是没问题的,线据线是没有连错的)
2, 读NF ID 的时序是没有问题的。ID =0XEC73
于是我就想:我写命令是对的了,那么我发擦除块的命令也是对的,于是我又联想到,我所有写指令(包括写地址,写命令)都有对的(这点是很重要的,也是至关重要的)。读数据的指令也是对的了(因为我能够把ID都读回来了(这点是错的,因为到最后就是卡住我了))
现在的我又很有信心了。
现在我要证明我所分析是对的,于是我开始调代码了:
我试着擦除NF,然后往0 block 0 Page页写(0x05)(时序是不能马虎的),再来就是试着读刚才写的页,结果在串口超级终端返回的又是OXFF,我这时好像要崩溃了,但是我又马上意识的,我分析的应是对的,我怀疑时序,本来我是不会用逻辑分析仪的,我开始进入学习逻辑分析仪了,搞了二天终于会用那玩意了。我看到时序是有的,我脑子里突然有一种想法,读多几次看怎么样?于是我连着读好多次那页,结果有读到第三次的时候,出现不是0xff,我开心极了,因为都读回来了(0x05),我上了次厕所(忙到忘了上厕所了),为了确认我再重新运行程序,又不行了。那是的我真是好难受啊心里面。我又试了好多次,有时能读回来,有时又不能读回来,我又想是不是写没有写好,于我又往那页写不是同样的数据,写了0,1,2,3…….511, 就这样我再读,结果只能读回0,1,下面的全部是OXFF,这时我为了验证是不是没有写上,于是我又开始读(不是从0区的第一个字节读,我换了其它位置去读,结果读到了8,9)这时我明白了上点,那就是:写进去的了,问题就是出在读上面(这是非常重要的一点),于是我用逻辑分析仪进行分析,结果呢?读的时序是有的,但是写的时序也是有的;这时我又明白了一点;但是不应出现这样的现象的啊!!
最终的问题就是出现在这里了:
我用的44B0X的BANK是BANK5(PORTB10), 这个BANK的控制寄存器没有设好(我本来想都没去想这里会出错了,板子说明是BANK5没有使用)没有想到问题就是出现在这里;我换了其它的BANK试了一下,一切都是OK!!!
感想:从这次调NF 可以学到很多很多的东东。对我以后的发展以及经验的积累起到了很大的作用。我同时也感觉很幸运,为什么呢?假如一开始就用其它的BANK那我可能就少走很多的调试的路了,但是正因为这样,让我积累了更多的东东。这也是收获吧!!
如果有哪位同盟在做类似的工作时,遇到有问题,可以大家一起讨论。我的联系方法是:
baai433@163.net-
电话 :1371-4394-083