打印

ARM的EBI总线加驱动器导致nandflash无法启动

[复制链接]
5344|30
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
drm17|  楼主 | 2012-10-28 19:15 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 drm17 于 2012-10-28 19:18 编辑


如上图所示,U9为总线驱动器,U11为二 4输入与门作为总线驱动器的方向和使能信号的逻辑控制。
1.现在通过SAM-BA软件进行调试,SDRAM能正常使能,norflash能正常使能,但是nandflash无法使能(5块全部都不行),FPGA未尝试。
2.通过示波器与以前没接驱动器的板子相比较,当均去掉nandflash的片选跳帽时,通过SAM-BA软件使能nandflash时,波形一样;但是当一插上nandflash的片选跳帽后,加了驱动器的板在片选一直为低,读写引脚全部没有信号,而不加驱动器的板子,一切正常。
请大家帮我分析一下到底是什么地方出来问题,我甚至把U11直接去掉,通过飞线直接把nandflash的片选接到驱动器的片选,nandflash的nwe接到驱动器的方向控制上,但是仍然不行。
我现在怀疑的问题:
当初我们认为EBI总线的读写信号只要片选拉低,如果nwe为低,则是写,如果nwe为高,我们就假他在读,不知道这样假设对不对?

相关帖子

沙发
阿南| | 2012-10-28 19:28 | 只看该作者
NOR正常,说明16C245驱动正常。所以,我认为很大的可能在于U11上NAND控件信号可能还没理顺,或者楼主在逻辑上还没有理正确,建议可以这样:NAND的信号直接拉去控制16C245,不要让NOR和FPGA参与进来,只有NAND,看是什么情况。另外重新理一下NAND的各种控制信号,不要存在原理上的低级错误。
nWE低为定,而高为读,这种想法是错误的,因为他还有可能有nRE,即读使能信号,所以除了规格书上有明确标出外,都不能这样认为。

使用特权

评论回复
板凳
drm17|  楼主 | 2012-10-28 19:43 | 只看该作者
本帖最后由 drm17 于 2012-10-28 19:50 编辑

阿南
谢谢及时回复。
1.我现在就是去掉了U11,直接把nandflash的nwe接到驱动器的方向控制引脚,nandflash的片选接到驱动器的使能上,但是仍然不行
2.恩,谢谢你的提醒,我再看看时序和相关资料,希望能找到原因
3.我上一条网友的回复,不知道与NANDFLASH的片选有关没有?

现在大家都在等我这个板子调好,急死了,希望能够补救

使用特权

评论回复
地板
阿南| | 2012-10-28 23:04 | 只看该作者
把驱动器的使能直接接个电平,让他一直有效。
另外把驱动器的方向用处理器的NAND控制器输出脚nWE和nRD控制

使用特权

评论回复
5
盈鹏飞科技| | 2012-10-29 08:58 | 只看该作者
1,NAND的片选实际上是GPIO。
NAND是一个特殊设备,采用IO模块的方式进行。

2,另外,NAND FLASH一般站用了AT91系列的NCS3,这个作为ALE,和CLE,
这个也必须做处理。

使用特权

评论回复
6
jlass| | 2012-10-29 09:38 | 只看该作者
奇了
一般的ARM对nandflash都有推荐链接图的啊,引脚也是固定的,怎么会有片选用GPIO,读写用一根线的情况(虽然不是说错,但是驱动必须重写,极其麻烦),建议楼主直接参照推荐图飞线,把nandflash调通,再考虑怎么修改吧

还有,不建议把nandflash与norflash加隔离,把fpga隔开即可。

使用特权

评论回复
7
drm17|  楼主 | 2012-10-29 09:43 | 只看该作者
4# 阿南
刚才我试了一下,但是这样导致EBI总线一直被占用,导致软件都无法进去,能再给我一点思路吗

使用特权

评论回复
8
阿南| | 2012-10-29 15:26 | 只看该作者
启动的时候,你的软件存在哪里?没有有仿真器之类的吗

使用特权

评论回复
9
drm17|  楼主 | 2012-10-29 18:44 | 只看该作者
8# 阿南
今天我把nandcs的片选去掉,用nadflash的读写使能相与 作为总线驱动器的使能,现在nandflash能够下载代码了,但是重启后仍然不能启动Linux,我们ARM主时钟用的是有源晶振,不知道会不会影响,现在怀疑是bootstrap或者uboot里面应该修改相应寄存器,仍然很纠结

使用特权

评论回复
10
jlass| | 2012-10-30 09:06 | 只看该作者
但是重启后仍然不能启动Linux
是uboot进不去还是内核进不去
如果是内核进不去的话一般是内核启动参数的问题

使用特权

评论回复
11
drm17|  楼主 | 2012-10-30 09:26 | 只看该作者
10# jlass
我们以前的板子能够正常启动,所以我们就用的以前的uboot文件下进去,不一样的就是我们现在的板子ARM主时钟用的是有源晶振,而以前用的是无源禁止,昨晚叫软件部同事改了一下寄存器,但是仍然跑不起来,不知道还有其他原因没有,纠结啊

使用特权

评论回复
12
drm17|  楼主 | 2012-10-30 09:29 | 只看该作者
现在的现象是把以前的文件下进去,仍然弹出RoomBoot,所以uboot都跑不起来,不知道大家有什么解决办法,请给我指点一下

使用特权

评论回复
13
jlass| | 2012-10-30 10:02 | 只看该作者
你加载的bootlaod程序叫什么名字(这个问题很重要)

使用特权

评论回复
14
jlass| | 2012-10-30 10:04 | 只看该作者
你以前的板子也是用nandflash直接启动的吗?
atmel可是推荐用dataflash启动的哦

使用特权

评论回复
15
drm17|  楼主 | 2012-10-30 11:30 | 只看该作者
14# jlass
是的,是从nandflash启动,以前板子可以启动,用的是uboot啊,也就是以前板子跑的程序

使用特权

评论回复
16
jlass| | 2012-10-30 14:15 | 只看该作者
看样子你连bootstrap都可能没起来
你下载程序前有先全局擦除一下nandflash吗
实在不行建议你把原来好的板子上的nandflash拆过来,焊到现在的板子上,如果都有问题的话就只剩下硬件的问题了。
还有你所提到的有源晶振的问题应该是没关系的,你量一下18.432M和32.768K的两个晶振的输入引脚,只要都有效就可以了。

使用特权

评论回复
17
drm17|  楼主 | 2012-10-30 18:00 | 只看该作者
16# jlass
官方说如果是外部时钟的话,需要修改相应寄存器,但是修改了仍然不行,应该是bootstrap没有跑起来吧!今天几乎没有进度,整个部门都停滞了,就等到我的板子调好,都调了一个多星期了,现在感觉有点累,有点乱....

使用特权

评论回复
18
阿南| | 2012-10-30 22:24 | 只看该作者
查看数据手册,有些ARM处理器(楼主用的是哪个处理器)需要设置输入时钟的,通常是和设置启动NAND类型差不多的哪几个脚。三星的叫OMn,不知道你用的处理器是哪个。

使用特权

评论回复
19
jlass| | 2012-10-31 09:10 | 只看该作者
你为什么不先用无源晶振飞线呢,问题点必须一一排除才能有进展,不要先纠结原因。
等到问题解决了之后再一一退回去,找出问题的原因。
看你的描述问题应该不止一处,建议你最好完全参照atmel的推荐电路(不一样的就飞线),确保硬件上没有任何问题,把思路理顺。
而且你最好准备2块板子,BGA封装的最怕焊接不良啊。

使用特权

评论回复
20
jlass| | 2012-10-31 09:26 | 只看该作者
另外给你几点建议(你用的应该是9G20吧)
1、bootstrap的名字必须要叫isp-nandflash-XXXX.bin(就是bootstrap默认的名字),AT-ISP1.10一下的版本会识别名字的,1.13以上版本不用考虑。
2、bootstrap中dataflash的速度调到5M以下(默认应该是30M),不然有可能导致dataflash起不来,nandflash不用考虑。
3、bootstrap中在串口初始化完成后,可以加打印,用于判断bootstrap是否启动,还可以用于判断内存的连线是否正确。
4、不建议从nandflash直接启动,有硬性bug(当uboot打印到sdram字样附近时按reset按键有3%左右的几率会导致芯片当掉,而且在按reset都不能恢复,也就意味着看门狗失效,必须重新上电才可以,和atmel 的FAE沟通过,结果他们测试发现他们的demo板也有此现象,悲剧!)。
我已倾囊相受,剩下的就靠你自己了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

112

帖子

1

粉丝