WINCE5.0开机无法识别TF卡,100分求高手分析解决问题,此贴问题解决再结贴!

时间:2021-06-06 06:48:17
请教高手:

我们机器现象如下:

生产1K GPS终端机,出货都配有一张TF卡,有几十台机器开机后无法找到TF卡,但是重插拨一次卡就OK了。

开机后连续插拨,反复测试,测试10次偶尔会有一次找不到TF卡。

再把出现问题的机器反复开关机,测试能否检测到TF卡,现象很难还原,但是试上很多次,又偶尔会出现

一次。

我们怀疑如下:

一:TF卡本身来料不良,存在不一致性。

    对出问题的机器再反复测,现象不太容易重现,但是一批量,问题就来了。

二:怀疑TF卡经生产过回流炉后,经受不起两百多度的高温,卡上的镀金条局部氧化。

    用新的同一批TF卡,过炉后再换到板子上,有待验证。
 
    用新的同一批TF卡,不过炉,用烙铁焊到板上,有待验证。

三:怀疑WINCE注册表的问题。

    默认HKEY_LOCAL_MACHINE\System\StorageManager\PNPUnloadDelay的键值为64,我们改成了4096,好像在开机
   
    时测试有一点好转,反复插拨卡机率好像少了点,但是仍然会出现,由于重现不太容易,这个只是表面现象,具

    体有没好转有待继续测试。

四:其他

不知道有没高手有这方面的经验?感激不尽。

17 个解决方案

#1


干驱动了?
还可以上网了?

厉害,嘿嘿。

这个不懂,友情帮顶!

#2


1. TF卡干嘛一定要过炉子??你看看它的spec上面保存温度能经受住300高温吗??感觉楼主这个问题似乎比较大一些。TF不过炉子,试试?
2. 不一致的问题比较难解决。看上去像是你的TF卡问题可能性比较大。软件都是一致的,问题应该不大。

#3


那几十台还了新卡还是有问题,另外把那几十台的卡,换到好机器上试,什么结果?

#4


TF 卡的容量 >2G ?

#5


很常见,你这边的概率应该说还是比较高的,超过5%了
两个可能原因:
1. hw emi-->通过波形来判定或者修改降频来验证      可以通过修改相关pin上的器件改变波形来cover
2. 卡质量可能有问题-->使用cannon或者sandisk的卡来测     sw的改动可以部分cover这类问题

#6


偶尔干干驱动哈哈

卡绝对是好的,插拨一次就OK了

2G的卡,金士顿

SDIO的频率不会很高,1K出现二十台左右,不知道是否与EMI有关?

可以通过修改相关pin上的器件改变波形来cover,这个办法到时候试试

#7


我们生产的GPS + CMMB手持电视,有个TF卡的扩展口,出货时会配一个TF卡。现在生产1K,全检,大约有二十台左右,开机找不到TF卡,重插拨一次TF卡后又识别了。然后再反复开关机,基本上能识别,很难还原到无法识别。但是这些机器很不可靠,我们生产出来的机器,全检过的是好的,到客户手上再检一遍,又出现问题了。再重插拨一次TF卡,又找到了。由于我们的GPS地图是放在TF卡里面的,如果开机找不到TF卡,客户在检测GPS时就会找不到地图,他们不接收重插拨卡这种方式解决。
 
       这种检测不到TF卡问题很奇怪,出现的机率和重现率也没有一点规律,本来检测不到的,重插拨一次马上OK,不重插,有一台反复开关机数次,又找到了TF卡,有两台本身开机找不到TF卡,放在那两天后开机又找到了。
 
       TF卡找到后读取数据是完全正确的。
 
       不知道发生这种情况,会是什么原因?我们推断了如下原因:
 
       一:卡座里面有不干净物质。现已将供应商叫过来, 供应商拿走了一台机器回去分析。
 
       二:软件问题。我写了个测试软件,控制三台出现这种情况的机器反复开关机一晚上,有七百多次开关机,第一次是检测到的,结果一晚上全能检测到,这种测试连续两个晚上五台机器都全能检测到,而且五台全是挑出来的开机检测不到的,后来一插拨卡又检测到了。由于检测需要插拨T卡以改变被检测机器的注册表,所以第一次插拨是难免,插过一次后机会很难重现了,本来想把检测不到一次再让他检测一晚上的。
 
       三:电磁兼容问题。我们TF卡的CLK由S3C2450的SDIO的CLK送过来,中间加了个LC滤波电路,33R + 10P的LC滤波。另外的SDIO的数据,CMD口全加了压敏电阻以增强EMI,EMC性能。

期待高手们的回复

#8


重新插拔卡就能认到。说明卡本身和卡座的接触应该都是好的。不像生产的问题。只第一次开机的带卡无法识别,有没有跟踪一下驱动呢。特别是插卡时的消息传递部分。在系统未完全启动前,有的消息是不能正常被传送的。有的api是不能被正常使用的。建议检查卡的检测流程,可疑的地方使用IsAPIReady看看是否系统已经完全启动了。举例:一般插卡都会playsound放个声音。表示卡插进来了。可是playsound这个函数只能启动gdi后才能用。如果系统没准备好,就plyasound,会导致整个线程死掉。后面发送消息什么的自然也做不了。如果在playsound前先判断一下IsAPIReady(SH_GDI),就完全可以解决该问题。可以顺着这个思路再检查一下驱动。

#9


感谢anngy的回答,目前我们是一千台大概有20台左右这种问题。

答案基本上出来了,继续等待高手分析,好像上面还没有人回答出问题的本身,如果可能明天揭贴

#10


很大原因可能软件的问题
如果不确定的话楼主试试把CLK上的电容和压敏电阻去掉,压敏电阻本身是有电容的,SDIO的CLK频率是很高的,影响比较大,再把SDIO的上拉电阻减小看看

#11


热闹!帮楼主往前推一下。

#12


引用 9 楼 armeasy 的回复:
感谢anngy的回答,目前我们是一千台大概有20台左右这种问题。

答案基本上出来了,继续等待高手分析,好像上面还没有人回答出问题的本身,如果可能明天揭贴

答案出来了,共享一下呗,大家都学习一下

#13


原因其实很简单,板子在SMT过炉的时候,焊膏里面的助焊剂以蒸气的形式往上冒,盖住了TF卡的金手指。重插几次卡就好了,或者把卡槽清洗一下就行了。

#14


引用 13 楼 armeasy 的回复:
原因其实很简单,板子在SMT过炉的时候,焊膏里面的助焊剂以蒸气的形式往上冒,盖住了TF卡的金手指。重插几次卡就好了,或者把卡槽清洗一下就行了。

物理连接上导致的问题呀,多了一条经验,呵呵

#15


引用 13 楼 armeasy 的回复:
原因其实很简单,板子在SMT过炉的时候,焊膏里面的助焊剂以蒸气的形式往上冒,盖住了TF卡的金手指。重插几次卡就好了,或者把卡槽清洗一下就行了。


经验之谈,哈哈哈

#16


引用楼主 armeasy 的回复:
再把出现问题的机器反复开关机,测试能否检测到TF卡,现象很难还原, 但是试上很多次,又偶尔会出现

一次。

那你这又是啥原因?

#17


引用 13 楼 armeasy 的回复:
原因其实很简单,板子在SMT过炉的时候,焊膏里面的助焊剂以蒸气的形式往上冒,盖住了TF卡的金手指。重插几次卡就好了,或者把卡槽清洗一下就行了。

在上帖之前,补充一点疑问:照你的意思,只要重插几次卡就好了,或者把卡槽清洗一下做了以后,就不会出现WInce5.0识别不到TF卡的问题。
在上贴之后,菜鸟觉得,armeasy 说的是问题的主要方面,还有可能是楼上老兄说得,系统还未初始化好,你就开始执行读写/识别外设操作了。是否也需要考虑准备就绪状态存在时间段了?

#1


干驱动了?
还可以上网了?

厉害,嘿嘿。

这个不懂,友情帮顶!

#2


1. TF卡干嘛一定要过炉子??你看看它的spec上面保存温度能经受住300高温吗??感觉楼主这个问题似乎比较大一些。TF不过炉子,试试?
2. 不一致的问题比较难解决。看上去像是你的TF卡问题可能性比较大。软件都是一致的,问题应该不大。

#3


那几十台还了新卡还是有问题,另外把那几十台的卡,换到好机器上试,什么结果?

#4


TF 卡的容量 >2G ?

#5


很常见,你这边的概率应该说还是比较高的,超过5%了
两个可能原因:
1. hw emi-->通过波形来判定或者修改降频来验证      可以通过修改相关pin上的器件改变波形来cover
2. 卡质量可能有问题-->使用cannon或者sandisk的卡来测     sw的改动可以部分cover这类问题

#6


偶尔干干驱动哈哈

卡绝对是好的,插拨一次就OK了

2G的卡,金士顿

SDIO的频率不会很高,1K出现二十台左右,不知道是否与EMI有关?

可以通过修改相关pin上的器件改变波形来cover,这个办法到时候试试

#7


我们生产的GPS + CMMB手持电视,有个TF卡的扩展口,出货时会配一个TF卡。现在生产1K,全检,大约有二十台左右,开机找不到TF卡,重插拨一次TF卡后又识别了。然后再反复开关机,基本上能识别,很难还原到无法识别。但是这些机器很不可靠,我们生产出来的机器,全检过的是好的,到客户手上再检一遍,又出现问题了。再重插拨一次TF卡,又找到了。由于我们的GPS地图是放在TF卡里面的,如果开机找不到TF卡,客户在检测GPS时就会找不到地图,他们不接收重插拨卡这种方式解决。
 
       这种检测不到TF卡问题很奇怪,出现的机率和重现率也没有一点规律,本来检测不到的,重插拨一次马上OK,不重插,有一台反复开关机数次,又找到了TF卡,有两台本身开机找不到TF卡,放在那两天后开机又找到了。
 
       TF卡找到后读取数据是完全正确的。
 
       不知道发生这种情况,会是什么原因?我们推断了如下原因:
 
       一:卡座里面有不干净物质。现已将供应商叫过来, 供应商拿走了一台机器回去分析。
 
       二:软件问题。我写了个测试软件,控制三台出现这种情况的机器反复开关机一晚上,有七百多次开关机,第一次是检测到的,结果一晚上全能检测到,这种测试连续两个晚上五台机器都全能检测到,而且五台全是挑出来的开机检测不到的,后来一插拨卡又检测到了。由于检测需要插拨T卡以改变被检测机器的注册表,所以第一次插拨是难免,插过一次后机会很难重现了,本来想把检测不到一次再让他检测一晚上的。
 
       三:电磁兼容问题。我们TF卡的CLK由S3C2450的SDIO的CLK送过来,中间加了个LC滤波电路,33R + 10P的LC滤波。另外的SDIO的数据,CMD口全加了压敏电阻以增强EMI,EMC性能。

期待高手们的回复

#8


重新插拔卡就能认到。说明卡本身和卡座的接触应该都是好的。不像生产的问题。只第一次开机的带卡无法识别,有没有跟踪一下驱动呢。特别是插卡时的消息传递部分。在系统未完全启动前,有的消息是不能正常被传送的。有的api是不能被正常使用的。建议检查卡的检测流程,可疑的地方使用IsAPIReady看看是否系统已经完全启动了。举例:一般插卡都会playsound放个声音。表示卡插进来了。可是playsound这个函数只能启动gdi后才能用。如果系统没准备好,就plyasound,会导致整个线程死掉。后面发送消息什么的自然也做不了。如果在playsound前先判断一下IsAPIReady(SH_GDI),就完全可以解决该问题。可以顺着这个思路再检查一下驱动。

#9


感谢anngy的回答,目前我们是一千台大概有20台左右这种问题。

答案基本上出来了,继续等待高手分析,好像上面还没有人回答出问题的本身,如果可能明天揭贴

#10


很大原因可能软件的问题
如果不确定的话楼主试试把CLK上的电容和压敏电阻去掉,压敏电阻本身是有电容的,SDIO的CLK频率是很高的,影响比较大,再把SDIO的上拉电阻减小看看

#11


热闹!帮楼主往前推一下。

#12


引用 9 楼 armeasy 的回复:
感谢anngy的回答,目前我们是一千台大概有20台左右这种问题。

答案基本上出来了,继续等待高手分析,好像上面还没有人回答出问题的本身,如果可能明天揭贴

答案出来了,共享一下呗,大家都学习一下

#13


原因其实很简单,板子在SMT过炉的时候,焊膏里面的助焊剂以蒸气的形式往上冒,盖住了TF卡的金手指。重插几次卡就好了,或者把卡槽清洗一下就行了。

#14


引用 13 楼 armeasy 的回复:
原因其实很简单,板子在SMT过炉的时候,焊膏里面的助焊剂以蒸气的形式往上冒,盖住了TF卡的金手指。重插几次卡就好了,或者把卡槽清洗一下就行了。

物理连接上导致的问题呀,多了一条经验,呵呵

#15


引用 13 楼 armeasy 的回复:
原因其实很简单,板子在SMT过炉的时候,焊膏里面的助焊剂以蒸气的形式往上冒,盖住了TF卡的金手指。重插几次卡就好了,或者把卡槽清洗一下就行了。


经验之谈,哈哈哈

#16


引用楼主 armeasy 的回复:
再把出现问题的机器反复开关机,测试能否检测到TF卡,现象很难还原, 但是试上很多次,又偶尔会出现

一次。

那你这又是啥原因?

#17


引用 13 楼 armeasy 的回复:
原因其实很简单,板子在SMT过炉的时候,焊膏里面的助焊剂以蒸气的形式往上冒,盖住了TF卡的金手指。重插几次卡就好了,或者把卡槽清洗一下就行了。

在上帖之前,补充一点疑问:照你的意思,只要重插几次卡就好了,或者把卡槽清洗一下做了以后,就不会出现WInce5.0识别不到TF卡的问题。
在上贴之后,菜鸟觉得,armeasy 说的是问题的主要方面,还有可能是楼上老兄说得,系统还未初始化好,你就开始执行读写/识别外设操作了。是否也需要考虑准备就绪状态存在时间段了?