3厘米悬空线引发的案件

[复制链接]
3822|19
 楼主| zjd1 发表于 2013-9-14 14:12 | 显示全部楼层 |阅读模式

        以前用TMS320DM3730做过设计,重新做了一个方案。系统使用TF卡启动。X-Loader和Uboot及Linux内核都正常启动,但文件系统加载的时候总是报无法识别文件系统。
        看前面的文件系统分区已经识别到,但加载时就说不支持的文件系统。
        查看内核配置,确认是支持的文件系统,而且,相同的TF卡放到原设计平台上就能正常加载……对比了核心系统和TF卡的原理图,没有错误。
        后来想到加载文件系统的时候或许读写速度会加快,导致数据错误。加上示波器,的确看在加载文件系统的时候速度提高了几倍,但从信号看数据应当算正常,不至于出错……于是在TF卡附近加了几颗瓷片电容,发现问题依旧。
        然后就用笨方法了,从软件入手。查LINUX内核!经过两三天的跟踪,终于发现故障码居然提示“TF卡为只读”。再细看LINUX启动信息,居然在TF卡启动后有一个提示“(RO)”。瞬间木掉了,这两三天跟代码,LINUX启动信息看了N多遍,居然没注意到它……
        TF卡可以看成是SD卡的缩小版,但却没有写保护引脚。
        因为之前代码是支持SD卡的,所以有一个写保护状态的读取。原先工作正常的设计在这个读取状态的管脚有一段3厘米的PCB走线,连接到一个插座,但插座上的脚是悬空的。而新的方案里去掉了这个插座,同时删掉了这段“悬空线”。然后主芯片在读取这个信号状态的时候就读到两个不同的值。有“悬空线”的板子上认为读保护无效,而新方案里认为读保护有效。把内核里相关代码改一下,文件系统终于正常挂载了!

        这个故障的定位过程我做了简写,实际过程更为曲折。3cm的一段PCB线差点导致新方案流产……
        现在处理器的速度越来越高,信号电平也越来越低,管脚阻抗也非常高,管脚外连的引线接收到的细小干扰或对管脚负载的改变,都可能导致异常。在处理输入管脚的时候,即便管脚内部有上拉或下拉,也需要格外注意,尽量不要留多余走线,重要输入信号要加上拉或下拉电阻。

dirtwillfly 发表于 2013-9-14 15:34 | 显示全部楼层
谢谢楼主分享
i1mcu 发表于 2013-9-14 16:07 | 显示全部楼层
好危险的。
pmp 发表于 2013-9-14 19:29 | 显示全部楼层
需要注意的问题真多
pmp 发表于 2013-9-14 19:29 | 显示全部楼层
谢谢楼主分享经验的。
shcshc1234 发表于 2013-9-14 22:26 | 显示全部楼层
这么变态这都能检测出来做手写不是很好》》
飞鹰嵌入式 发表于 2013-9-14 22:45 | 显示全部楼层
3CM的PCB线属于什么状态呢?
呆板书生 发表于 2013-9-15 05:57 | 显示全部楼层
佩服,,,
do_best 发表于 2013-9-15 09:34 来自手机 | 显示全部楼层
找到原因就好说
通宵敲代码 发表于 2013-9-15 11:27 | 显示全部楼层
细节是关键,很不错的案例。
elec921 发表于 2013-9-15 13:09 | 显示全部楼层
mmbs 发表于 2013-9-15 23:26 | 显示全部楼层
以后需要注意了。
angerbird 发表于 2013-9-18 01:04 | 显示全部楼层
这个的确需要非常仔细的才可检查出来的,佩服
shibalihuandao 发表于 2013-9-23 20:03 | 显示全部楼层
经验贴啊 必须支持
zgsxhzac 发表于 2013-9-23 20:17 | 显示全部楼层
很喜欢这样解决问题的帖子
sishangcine 发表于 2013-9-23 20:39 | 显示全部楼层
写的真好 都是血的教训呀 呵呵
heibaiyinjiag 发表于 2013-9-23 20:48 | 显示全部楼层
好** 必须支持
taihezhibanh 发表于 2013-9-23 21:10 | 显示全部楼层
唉 都是这样过来的
剑魂 发表于 2013-12-11 17:44 | 显示全部楼层
厉害,经验就是这样来的,谢谢分享
comeon201208 发表于 2013-12-12 00:13 | 显示全部楼层
佩服,这样的问题也能检查出来的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:断剑

38

主题

101

帖子

19

粉丝
快速回复 在线客服 返回列表 返回顶部