免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 8344 | 回复: 8
打印 上一主题 下一主题

板子不稳定,并且flash id读取错误 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-06-24 09:41 |只看该作者 |倒序浏览
[症状]
1.焊接了两块板子,刚开始是可以通过H-Flasher把u-boot烧写进去,也可以正常启动的,然后什么也不动,过了几分钟后,板子就
无法启动的,也无法通过H-Flasher来检测到flash的型号,此时再补焊一下cpu和flash,这时候又可以了检测到,并且可以启动
u-boot了,但是又过了一段时间,又无法启动,如此反复。
2.另一块板子有同样的情况,不过现在它还是正常的,不过u-boot在检测flash的型号的时候总是出错,同时通过H-Flasher检测到的
型号也是不对的,读出来的值是flash第一个单元的值,比如flash的起始是0x2000000,第一个单元的值是0xEA000012(之前已经烧写过u-boot了,如果没有烧写,这个单元就是0xFFFFFFFF),
照理说,读出来的flash型号的值应该是0x236D00BF,但是现在读取出来的值却是0xEA000012。


[环境]
1.硬件:KS8695X(CPU)+HY57V641620FTP(SDRAM)+SST39VF6401B(FLASH)
2.软件:H-JTAG+H-Flasher,AXD


[已做的工作]
1.对于板子上的数据线,我已经通过AXD验证过了:对于sdram的某个单元,比如0x0,分别写入0x00000001,0x00000002,0x00000004,0x00000008,0x00000010,0x00000020,
数据线往左滑动,然后读取出来的值都是正确的,这就说明了,数据线是正确的。
2.地址线之前也通过示波器验证过一次,发现有些地址线电平过低,或者有些地址线上好像有两个信号重叠着,后来把这几根线补焊了一下,就没有问题了。
3.对于读取flash的id,flash上的命令是这样的
                     1st Bus                    2nd Bus                 3rd Bus
                Write Cycle              Write Cycle            Write Cycle
                Addr   Data        Addr   Data            Addr   Data
Software ID Entry:   555H   AAH              2AAH   55H             555H   90H
按照现在的情况是发送这些命令的时候,并没有起作用,所以最后从flash的起始地址读取的值是flash单元里的值,而不是flash的id


谢谢各位了,请帮帮忙

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
2 [报告]
发表于 2008-06-24 09:50 |只看该作者
[症状]1  没看懂,现象模糊
[症状]2 sdram没建立正确
[已做的工作]3 sdram没建立正确,这个id读不出来的原因,也就是h-flasher弄不出来id的原因。

论坛徽章:
0
3 [报告]
发表于 2008-06-24 10:27 |只看该作者

回复 #2 gvim 的帖子

很感谢您的回复。

[症状]1  没看懂,现象模糊
=>主要就是补焊了一下之后,板子能够正常启动,但是过一段时间又不行了。

[症状]2 sdram没建立正确
=>其实此时,这块板子还是可以启动的,也就是说u-boot还是运行的,只不过u-boot在读取flash id出错了。如果sdram没有建立正确,那u-boot还可以运行吗?


[已做的工作]3 sdram没建立正确,这个id读不出来的原因,也就是h-flasher弄不出来id的原因。
=>原因同上。

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
4 [报告]
发表于 2008-06-24 10:58 |只看该作者
原帖由 edisontang 于 2008-6-24 10:27 发表
很感谢您的回复。

[症状]1  没看懂,现象模糊
=>主要就是补焊了一下之后,板子能够正常启动,但是过一段时间又不行了。

[症状]2 sdram没建立正确
=>其实此时,这块板子还是可以启动的,也就是说u-boot还 ...


这是有可能的。
我处理过类似情况,比如运行程序时,sdram建立时间、持续周期可以在一个较宽范围,但是某些flash时序比较严。所以看起来程序运行正常,可是对时序叫严格的设备操作就会有误差。
为这个事情我调了1个星期-_-; 当然前提是电路板没有问题。

我用过的at91sam9263就存在这样的情况。上电的时候慢时钟工作,flash不用管,可以正常启动,读取数据。但是接下来需要立即配置sdram...等控制器,才能正确读取id。甚至在配置正确之前,示波器抓不出flash数据线上的波形。

[ 本帖最后由 gvim 于 2008-6-24 11:21 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2008-06-24 11:44 |只看该作者

回复 #4 gvim 的帖子

这个也是有可能的,但是不知道您有没有发现到这个问题,在读取flash id的时候,u-boot和h-flasher这个工具都可以读取到flash开始的第一个地址单元的内容(0xEA000012或0xFFFFFFFF)。如果是flash这边的时序有问题的话,那是否还可以读取到这个单元的内容呢?或许是发送命令的时序有问题(因为0xEA000012是通过读取命令来读取到的)?

论坛徽章:
0
6 [报告]
发表于 2008-06-24 11:54 |只看该作者
我覺得樓主在調試時最好先把硬件故障排除

現在兩塊板子現象不一致很難找出問題的原因,建議樓主好好把硬件全部檢查一遍(一定要用上你最好的焊接技術,但不限於此)再繼續找原因

论坛徽章:
0
7 [报告]
发表于 2008-06-24 12:39 |只看该作者

回复 #6 bitmilong 的帖子

谢谢回复。

关键是我现在暂时无法想到好的方法来排除硬件上面的问题,其实两个板子有相似的地方,就是重新补焊一下,就可以正常了,之前都是这样的。

论坛徽章:
0
8 [报告]
发表于 2008-06-25 10:32 |只看该作者
是否我这边还有什么没说清楚呢?

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
9 [报告]
发表于 2008-06-25 10:47 |只看该作者
一样的现象不一样的原因很多,这一行没有固定模式,楼主具体尝试一下

btw:就算板子现在在我手上,也没法马上得到问题的答案。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP