找回密码
 注册
关于网站域名变更的通知
查看: 1062|回复: 13
打印 上一主题 下一主题

SD-uboot隔夜10%不开机,1年后90%不开机的问题补充(问题已定位)

[复制链接]
  • TA的每日心情
    开心
    2019-11-19 16:20
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2017-8-7 16:31 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    本帖最后由 meng110928 于 2017-8-8 12:52 编辑
    + F. A9 R% q) y& W( ^  s8 o# E6 `# f* @8 R. v
    楼主大前年画了一个PCB,出现怪异情况。7 G- Z0 Y/ C/ E- H" Z1 x
    1:程序全放在TF卡上,隔夜有10%开机困难,多次摁开机键才正常开机;放一两年后充满电90%以上不开机;+ E, q2 R) N. [, g; p
    2:电路是  PMOS软开机电路+ARM9内核主控+SDRAM+SD卡+SPI外围+ADC按键 等;* P2 v! p& g2 Y8 g6 N
    3:SD卡单独LDO供电,上电先于主控,纹波可控,当时怀疑此处问题,加胆电容无改善,排除此处问题;
    1 q6 O' u0 M1 s; T! d7 T4:走线长度5cm内,等长,过冲振铃不超过0.5V,TF卡串22R电阻+上拉电阻直通主控,;
    / w2 d' C  H; Z/ W; `9 ]5:时序正常,时钟20Mhz,TF端测量,读取时data较CLK延时5ns-9ns,卡的一致性较差,但是符合SD2.0协议14ns以内,信号维持时间符合SD2.0协议;2 t. L: ]1 ]4 X, c
    6:板子是锂电池供电,开机键电路比较经典常用了,摁开机键拉低PMOS,然后3.7V锂电接入各LDO供电,主控用AAT3524复位,开机电路如下图,
    + `# j: {- @: }( N7 Z( b: B3 P/ W. U7:出错时,主控串口有打印信息,如最下;8 V7 O8 H+ L5 v' J1 ], U
    8:用逻辑分析仪抓了开机时的SD数据,查看软件及抓包见附件。  查看软件  链接:http://pan.baidu.com/s/1jIJwMFG 密码:8awp9:下面两个链接,为关联贴。
    ! ~0 E5 N  p# M10:设备类似一个儿童学习机,加一个SPI boot,开机再无任何问题。所以其他部分问题应该可以排除,问题就在SD2.0这里。% v- v0 S! F4 y+ |% A+ Z# N. n
    11:曾经将设备通过USB连接电脑,反复从设备TF卡里拷贝内容到电脑,重复上百次,哈希值未出现变异,无错误出现。3 {' p# r5 h/ h
    12:以上供参考,这问题悬疑几年了,最近空闲特意测试跟进,顺便发出来看有没有灵机一动的大师,把此问题破解。. ^3 U9 z3 {* O7 O/ S0 f  j
    13:主控原厂当年不太配合,负责人目前没换,所以这问题不打算再找原厂。
    8 ^# n* ^2 S2 L9 L
    & n$ ~- I5 ?' ^https://www.eda365.com/thread-150215-1-1.html+ k  P0 A& @  Y0 i4 W3 t; u
    https://www.eda365.com/thread-117688-1-1.html
    ; ?% j  {! q1 z, k# ?
    # W3 P* a+ z/ F: y9 z# Z2 g 抓包数据.rar (4.14 MB, 下载次数: 0)
    ( l, W" A, ]9 B% T* [, d: e4 `

    5 w3 p/ X9 m  k0 b( K& c 7 d' a& D* J) g; X7 L& W. X

    % U6 B% a" f2 P# T; [/ W5 dload bios 0x30500000...) ?7 a* e) \  H( y" F
    read sector:128 fail, try to backup sector:1986  o$ E) {4 r) l% N
    R F1 P- M: D4 u" A2 b
    read backup sector:1986 fail" N& A$ K8 A' k# M
    ing
    : l1 Y! g% e7 f
    ; _5 |+ t: O  u  `  [. F0 e. p7 Q......................................................................................分隔线..........................................................................................................................# W# G2 Q4 y" y, C$ D$ S

    3 I: Z- q& t* n, h# F" d  U) v. J" E( d& r& d& c+ [: m: p
    问题应当已经定位,是主控的操作不符合SD2.0协议7 k2 z6 j  _) c6 H- W0 ]' {% A

    # C$ S7 u2 R# h/ L1 B2 ]对比NG采样数据和OK采样数据发现,在NG机启动过程中,Host 下达 cmd18, 但并未使用 cmd12 去中止, 却又下达另一个 cmd18,    [color=inherit !important]造成当前异常, 可能造成 SD 出现无法预期之错误;  i& C; r( c9 v1 h

      & Q4 @1 }7 D0 L; a5 ]
      + {0 h* K0 s7 v
    • SD2.0协议第18页
      9 g! F$ \0 n1 [2 |% [3 p) ]
      9 a; I2 x4 E1 @+ v
    • [color=inherit !important]READ_MULTIPLE_BLOCK(CMD18) 代表读取多个连续的块。块会连续的传输, 直到
      2 J; F) L( B4 [4 R9 y. P1 E2 V6 p
    • [color=inherit !important]STOP_TRANSMISSON(CMD12)命令发出。因为连续数据传输,停止命令会有些执行延迟。数据
    • [color=inherit !important]传输会在停止命令的结束位发送之后停止。
    • CMD12 STOP_TRANSMISSION  Mandatory /* 停止多块传输操作 */
    • CMD17 READ_SINGLE_BLOCK  Mandatory /* 使SD卡进入传输状态,读取单个块 */
    • CMD18 READ_MULTIPLE_BLOCK Mandatory /* 使SD卡进入传输状态,读取多个块,直到收到CMD12为止 *
      0 D7 C3 H# q2 o! J5 F% V3 v

      F( [! E8 ~! W8 P
    1 Z3 _% L+ C# o  Y" l% t& H! M& n2 B. }6 I
    / g: K% }" u, z4 H4 e) W* L0 r& u

    4 l( @4 ^) n1 U4 a, D( y下图抓取的NG采样数据,02紫色为CMD,03红色为CLK,其他data。深色部分为第一个CMD18命令(568ms),右侧为第二第三。第一个CMD18后,TF数据(兰色)吐出,但未使用 cmd12 去中止, 却又下达另一个 cmd18,致使TF异常,所以第二第三CMD18后,TF再无数据吐出,data为直线
    ' e- u* T/ k3 a+ O0 d& x4 C) U- [ 4 x! p) `$ x* B+ X3 s/ i) j

    ! o8 v: w. P8 O& O* u+ T下图抓取的OK采样数据,02紫色为CMD,03红色为CLK,其他为数据。对应时间轴,495ms出现CMD18开始连续读取数据,TF吐出数据(兰色);517ms  CMD12>命令CMD18,读正常;539ms   CMD12>命令CMD18 读正常...... 最后正常开机。4 C6 W' W4 H1 R9 Y) Z7 {
    - d- K( `' c4 R
    4 X: ~) ^0 O  v

    5 N: r- Y6 p+ ^& a* `/ `3 c" c
    4 m4 c" E2 f! B4 \4 Z2 J  t( r6 x' {, Y( J* y

    9 n7 u& A+ }* l) E/ M: u. O
      B2 X/ @% v8 L# x% Z( A2 _. O. \3 u1 ^4 j) J0 O
    补充内容 (2019-8-2 15:34):' ^& d' o1 @7 Y7 v3 ]0 K
    我估计是卡放置久了之后,存储的电子流失,修正数据需要一定恢复时间,这个时间内会对主控报fail,导致程序不连续开机失败。

    LA27836a逻辑分析仪.part3.rar

    5.75 MB, 下载次数: 0, 下载积分: 威望 -5

    该用户从未签到

    2#
    发表于 2017-8-7 17:25 | 只看该作者
    楼主你好,问一句题外话。你一直怀疑的是你的电路的各种问题,有没有怀疑过是卡的问题。我公司的几款产品也用SD和TF卡。电路上都很正常,用的普通的卡,之前总是出问题。后来换成了工业级的卡。价格贵了很多,普通的2G在几十块。而工业级的2G-4G,价格在300人民币左右。但是换了卡以后就再也不出问题了。

    点评

    支持!: 5.0
    现在回头总结,基本确定是卡或者卡与主控协议不兼容。问题卡重新烧录软件后,一切正常,但是烧录后的卡放置半年后就会大概率复现问题。  发表于 2019-7-20 13:25
    支持!: 5
    你们老板够狠,直接上工业卡,这价格抵得上我这边两套硬件成本了。卡买的三星中性卡,除了有5-9ns延时,没发现啥问题。  发表于 2017-8-8 12:41
  • TA的每日心情
    难过
    2020-4-23 15:10
  • 签到天数: 37 天

    [LV.5]常住居民I

    3#
    发表于 2017-8-8 08:40 | 只看该作者
    同问,原先我也碰到了SD卡很容易就坏的问题。

    该用户从未签到

    4#
    发表于 2017-8-8 09:44 | 只看该作者
    有几个问题:
    3 Z$ |/ W9 k# l' bSD卡有没有接触不良的可能性?9 M4 d5 @8 \$ f4 n: x# I& y2 ?
    SD卡上电后的工作电流有没有关注过?9 _) H8 W3 P/ E0 d6 g' W
    用单片机来使能SD的供电,有没有效果?

    点评

    支持!: 5.0
    zxk
    不是因为我们老板狠,是因为我们是工业设备,在线24小时,一出问题,就有环保局要进行罚款。所以换成了工业级的,但是的确遇到过了SD卡的问题,之前遇到的问题是SD卡在线运行时,偶尔出现问题,但是企业和环保局是接  详情 回复 发表于 2017-8-8 16:48
    支持!: 5
    镀金的卡座,电流极小,示波器挂过电源,纹波不会导致复位。单片机使能没试过,TF供电比主控早。  发表于 2017-8-8 12:43
  • TA的每日心情
    开心
    2019-11-19 16:20
  • 签到天数: 1 天

    [LV.1]初来乍到

    5#
     楼主| 发表于 2017-8-8 12:50 | 只看该作者
    我已经更新了1楼,有新内容,可能是主控操作违反了SD2.0协议,造成 tf 卡状态异常

    点评

    LZ你这个问题有最终结论了么? 抓取到的现象是可以解释异常现象,但同样的主控程序,为什么有时候发CMD12,有时候不发CMD12呢?  详情 回复 发表于 2017-9-6 14:04

    该用户从未签到

    6#
    发表于 2017-8-8 16:48 | 只看该作者
    大山 发表于 2017-8-8 09:44
    ; f" K! |. `! S; C5 ?, W  |有几个问题:
    ) V) F" H, M3 ^& P. i+ U! VSD卡有没有接触不良的可能性?9 {" B: M* |0 g( h( }) {" r6 w! d
    SD卡上电后的工作电流有没有关注过?
    ; `# x+ ?3 [5 q. F3 J! }6 c' Z
    不是因为我们老板狠,是因为我们是工业设备,在线24小时,一出问题,就有环保局要进行罚款。所以换成了工业级的,但是的确遇到过了SD卡的问题,之前遇到的问题是SD卡在线运行时,偶尔出现问题,但是企业和环保局是接受不了的。通过对硬件、软件多方查找,最后只能怀疑到了SD卡质量的问题上。但是更换后的确没有出现过问题了。2 V4 H* T9 W4 W7 @4 t
  • TA的每日心情
    难过
    2020-4-23 15:10
  • 签到天数: 37 天

    [LV.5]常住居民I

    7#
    发表于 2017-8-8 18:15 | 只看该作者
    学习了,涨姿势了

    该用户从未签到

    9#
    发表于 2017-8-14 11:34 来自手机 | 只看该作者
    这种问题基本可以排除硬件电路的问题。主要是SD卡驱动部分的问题
  • TA的每日心情
    开心
    2024-8-6 15:00
  • 签到天数: 765 天

    [LV.10]以坛为家III

    10#
    发表于 2017-9-6 14:04 | 只看该作者
    meng110928 发表于 2017-8-8 12:502 Z# v0 m: t1 A# g7 t
    我已经更新了1楼,有新内容,可能是主控操作违反了SD2.0协议,造成 tf 卡状态异常

    / a1 g' V, u* x8 bLZ你这个问题有最终结论了么? : |; {+ M: q3 T! [: [1 o
    抓取到的现象是可以解释异常现象,但同样的主控程序,为什么有时候发CMD12,有时候不发CMD12呢?- q- a" s/ T1 A; l. H% ]

    & U1 z; n* d! C: v( g) j

    点评

    应该是卡死机了。我估计是卡放置久了之后,存储的电子流失,修正数据需要一定恢复时间,这个时间内会对主控报fail,导致程序不连续开机失败。  发表于 2019-7-20 13:27
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-10-12 19:58 , Processed in 0.171875 second(s), 33 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表