找回密码
 注册
关于网站域名变更的通知
查看: 1065|回复: 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 编辑
    ' t0 N/ W# X! U" _; ]' `5 f# j
    楼主大前年画了一个PCB,出现怪异情况。7 P0 x/ x6 R) r4 ^8 o, H
    1:程序全放在TF卡上,隔夜有10%开机困难,多次摁开机键才正常开机;放一两年后充满电90%以上不开机;* \( d$ ]0 K5 {' {7 q8 `1 }( |, F
    2:电路是  PMOS软开机电路+ARM9内核主控+SDRAM+SD卡+SPI外围+ADC按键 等;
    - j3 d! r% d9 s2 Y5 I% @8 {3:SD卡单独LDO供电,上电先于主控,纹波可控,当时怀疑此处问题,加胆电容无改善,排除此处问题;
    $ B3 \5 e: ~; a1 W. I4:走线长度5cm内,等长,过冲振铃不超过0.5V,TF卡串22R电阻+上拉电阻直通主控,;
    1 M  ?2 H* [( @5:时序正常,时钟20Mhz,TF端测量,读取时data较CLK延时5ns-9ns,卡的一致性较差,但是符合SD2.0协议14ns以内,信号维持时间符合SD2.0协议;- o8 {  `5 @& ]2 ]7 t* s
    6:板子是锂电池供电,开机键电路比较经典常用了,摁开机键拉低PMOS,然后3.7V锂电接入各LDO供电,主控用AAT3524复位,开机电路如下图,
    5 L  b& c6 t4 [1 s' n$ _8 Q7:出错时,主控串口有打印信息,如最下;
    * [7 P! [+ x9 `- N0 W! U8:用逻辑分析仪抓了开机时的SD数据,查看软件及抓包见附件。  查看软件  链接:http://pan.baidu.com/s/1jIJwMFG 密码:8awp9:下面两个链接,为关联贴。
    ) y) y4 G! ]$ i' y. `10:设备类似一个儿童学习机,加一个SPI boot,开机再无任何问题。所以其他部分问题应该可以排除,问题就在SD2.0这里。# I9 N! E/ [7 u8 y
    11:曾经将设备通过USB连接电脑,反复从设备TF卡里拷贝内容到电脑,重复上百次,哈希值未出现变异,无错误出现。
    % x; W# y0 M( G: G12:以上供参考,这问题悬疑几年了,最近空闲特意测试跟进,顺便发出来看有没有灵机一动的大师,把此问题破解。! p% ~) `+ ^; g& y* ~8 n5 r
    13:主控原厂当年不太配合,负责人目前没换,所以这问题不打算再找原厂。
    , K, H% R6 @9 _" Z* V  S* D; y
    7 c' O" Y2 _7 @1 Thttps://www.eda365.com/thread-150215-1-1.html
    1 b0 \. D% j; Chttps://www.eda365.com/thread-117688-1-1.html
    7 d( l% `: l0 X/ Z- f/ j' O" t. s
    抓包数据.rar (4.14 MB, 下载次数: 0)
    - X$ z4 q2 q: z. z  r; l! {9 U, A. H: i7 ]/ f5 C
    1 p% K" e1 Z2 F* H- D8 c' d+ b+ P
    6 |5 L7 s8 k" l1 k1 R$ u
    8 B$ I6 u# L9 j5 N) l
    load bios 0x30500000...4 s7 m9 a+ H3 Q1 W3 O. Q, `: A; z' I
    read sector:128 fail, try to backup sector:19863 r- x: m8 L2 M0 j+ Q' H1 p
    R F4 ]( B7 s8 V8 a
    read backup sector:1986 fail
    . _) A) \1 e" u2 n5 [ing2 K6 f$ @9 K* h

    : U! }* f1 b, Y......................................................................................分隔线..........................................................................................................................
    2 ]/ y) R! \0 U4 N1 b  w
    ' B3 \+ g6 q. y) G
    8 g, s0 k/ ^, O1 U. z7 S8 L问题应当已经定位,是主控的操作不符合SD2.0协议' Y! m; }1 A) M2 |6 C% f4 r& Q' ?! I

    7 K. Y: l2 B: z' u% a对比NG采样数据和OK采样数据发现,在NG机启动过程中,Host 下达 cmd18, 但并未使用 cmd12 去中止, 却又下达另一个 cmd18,    [color=inherit !important]造成当前异常, 可能造成 SD 出现无法预期之错误;
    6 H, J4 e1 A2 K/ \1 a1 y( f8 ?$ O

      & k: |. _2 Y! |* B; ^, w9 {: i1 O1 y$ V) D( |& o8 `
    • SD2.0协议第18页; j& n& @) n# }% y- b
      ! R! p1 A  l+ N1 a* B/ |9 g9 H
    • [color=inherit !important]READ_MULTIPLE_BLOCK(CMD18) 代表读取多个连续的块。块会连续的传输, 直到
      % ]* F( m  g- Y
    • [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为止 *
      . k) a9 e% T5 ~
    - x% d! M4 G5 p) {9 T
      A7 J  W7 |' f# L- p
      L5 R/ m* b* m4 ~# T
    + {8 E2 }! a& s  x3 i8 W
    , H; M. n2 u; G
    下图抓取的NG采样数据,02紫色为CMD,03红色为CLK,其他data。深色部分为第一个CMD18命令(568ms),右侧为第二第三。第一个CMD18后,TF数据(兰色)吐出,但未使用 cmd12 去中止, 却又下达另一个 cmd18,致使TF异常,所以第二第三CMD18后,TF再无数据吐出,data为直线
    8 J" q1 X' c2 b* Z+ }* J" G
    0 r% @* C* I  o6 B" s& G4 e
    # u, q0 m- H% p) h- C$ \下图抓取的OK采样数据,02紫色为CMD,03红色为CLK,其他为数据。对应时间轴,495ms出现CMD18开始连续读取数据,TF吐出数据(兰色);517ms  CMD12>命令CMD18,读正常;539ms   CMD12>命令CMD18 读正常...... 最后正常开机。9 o  q/ P- ]) d$ n: x
    + Z+ Z+ q8 E/ }

    : E: N: u6 J% z, {3 y
    5 C: I7 f# U- _" {$ n0 x- G2 ^/ w9 ^" s& i( R" t
    3 ^$ e5 R( Z6 W; L6 Q6 C

    2 J3 m: y  `. P. A! ?- \
    + Q+ q5 z" ^4 K% h. z' {2 B8 b" R% z, |* S
    补充内容 (2019-8-2 15:34):/ }( K6 P8 I) }. i  P* O3 N
    我估计是卡放置久了之后,存储的电子流失,修正数据需要一定恢复时间,这个时间内会对主控报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 | 只看该作者
    有几个问题:
    / A: f& q* b3 K: P4 X  }& Y  ASD卡有没有接触不良的可能性?
    5 s: W5 @; n- zSD卡上电后的工作电流有没有关注过?1 J. J5 M+ U  D
    用单片机来使能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: Y, ^: h. E2 ~- b  O" t
    有几个问题:
    4 p) I0 p5 I6 `. ^. s/ t# r4 H" O. pSD卡有没有接触不良的可能性?. Z2 K4 b" l) t5 d0 L5 k; z
    SD卡上电后的工作电流有没有关注过?
      _  r2 [' Z/ b* w
    不是因为我们老板狠,是因为我们是工业设备,在线24小时,一出问题,就有环保局要进行罚款。所以换成了工业级的,但是的确遇到过了SD卡的问题,之前遇到的问题是SD卡在线运行时,偶尔出现问题,但是企业和环保局是接受不了的。通过对硬件、软件多方查找,最后只能怀疑到了SD卡质量的问题上。但是更换后的确没有出现过问题了。- U, ^4 P: ]4 ^
  • 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:50
    6 G: |- H+ x2 T6 m  S6 I我已经更新了1楼,有新内容,可能是主控操作违反了SD2.0协议,造成 tf 卡状态异常

    8 R9 s6 [+ b% ~' d7 H5 wLZ你这个问题有最终结论了么?
    . c6 d5 ?0 S6 X& v抓取到的现象是可以解释异常现象,但同样的主控程序,为什么有时候发CMD12,有时候不发CMD12呢?
    ( u, q1 {" @) F- |2 o  b/ x& N  l$ o7 V; A. C. o, r1 S4 b( F+ E% m

    点评

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-10-29 09:39 , Processed in 0.218750 second(s), 34 queries , Gzip On.

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

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

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