找回密码
 注册
关于网站域名变更的通知
查看: 1050|回复: 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 编辑
    - Q* E+ N& i9 g7 i7 }, e. }3 ]4 D
    3 S" g7 O) F( [0 T, D' }楼主大前年画了一个PCB,出现怪异情况。' f+ O  o3 t  Y; s' ]% k  g$ e
    1:程序全放在TF卡上,隔夜有10%开机困难,多次摁开机键才正常开机;放一两年后充满电90%以上不开机;
    ( f5 w  g; K3 |2:电路是  PMOS软开机电路+ARM9内核主控+SDRAM+SD卡+SPI外围+ADC按键 等;0 m: u% M" h) k+ i
    3:SD卡单独LDO供电,上电先于主控,纹波可控,当时怀疑此处问题,加胆电容无改善,排除此处问题;
    7 ~. x( r- ?( x! ~; q2 ]4:走线长度5cm内,等长,过冲振铃不超过0.5V,TF卡串22R电阻+上拉电阻直通主控,;# f! b' e7 a# W. c" \
    5:时序正常,时钟20Mhz,TF端测量,读取时data较CLK延时5ns-9ns,卡的一致性较差,但是符合SD2.0协议14ns以内,信号维持时间符合SD2.0协议;" }# L' O5 O# t/ H3 o7 V& N
    6:板子是锂电池供电,开机键电路比较经典常用了,摁开机键拉低PMOS,然后3.7V锂电接入各LDO供电,主控用AAT3524复位,开机电路如下图,, B: e7 M' O/ R' z
    7:出错时,主控串口有打印信息,如最下;% n$ [$ k6 _. Y: ^4 I( f# m
    8:用逻辑分析仪抓了开机时的SD数据,查看软件及抓包见附件。  查看软件  链接:http://pan.baidu.com/s/1jIJwMFG 密码:8awp9:下面两个链接,为关联贴。
    " ?  h2 ^9 `0 ^: v# Q) @10:设备类似一个儿童学习机,加一个SPI boot,开机再无任何问题。所以其他部分问题应该可以排除,问题就在SD2.0这里。; G; Z7 _, A' a( C8 T
    11:曾经将设备通过USB连接电脑,反复从设备TF卡里拷贝内容到电脑,重复上百次,哈希值未出现变异,无错误出现。
    , r  _" T# b& z* p! `12:以上供参考,这问题悬疑几年了,最近空闲特意测试跟进,顺便发出来看有没有灵机一动的大师,把此问题破解。9 |: g( U) [, L1 ]% g# u8 L
    13:主控原厂当年不太配合,负责人目前没换,所以这问题不打算再找原厂。
    * Z8 |/ ^$ y) X+ B4 Q' ]
    + m, U4 H- X% |( qhttps://www.eda365.com/thread-150215-1-1.html
    8 F3 @# k( _% S8 ghttps://www.eda365.com/thread-117688-1-1.html6 b( A8 T9 b4 {+ [
    ) K6 X, g* N) {  w  Z
    抓包数据.rar (4.14 MB, 下载次数: 0)
    6 y% E( c* F; K, e: D& n- w! y9 {; I
    ) G" r0 H7 |5 @# j0 a( i' A1 }. J8 E( Z; y, ?, ], L

    4 f3 g- _$ d: q, @$ s4 w; Z# G. u, i
    load bios 0x30500000...- c0 O& R! I) j& _; N
    read sector:128 fail, try to backup sector:1986' `, I3 Y* O9 }  g: P
    R F
    4 b2 a3 o% N* t. N  I8 `read backup sector:1986 fail
    " P# R+ ?( |9 Sing% y: O/ X. m  ^# c6 a
    ( k; I! r: |2 {) f5 E3 d
    ......................................................................................分隔线..........................................................................................................................9 q5 v: e2 P0 b$ N" A0 t0 C8 d6 M
    3 C: W6 L) h. U0 X# M; o) z9 ]
    9 h1 `/ V7 t2 e8 E/ |2 }+ @
    问题应当已经定位,是主控的操作不符合SD2.0协议
    ( B: T' |3 H# r/ k9 ^) V) w) P, k* Z) C9 g& n( Q) [) E* o
    对比NG采样数据和OK采样数据发现,在NG机启动过程中,Host 下达 cmd18, 但并未使用 cmd12 去中止, 却又下达另一个 cmd18,    [color=inherit !important]造成当前异常, 可能造成 SD 出现无法预期之错误;
    4 u5 u2 V/ x" _

      1 M. ?! ?$ j( C, n$ K- ?
      5 N' r# c: |) I+ h
    • SD2.0协议第18页
      2 k7 t( \+ T# k8 @; a$ e7 S6 s3 X
      / A: y0 r* i" k3 `
    • [color=inherit !important]READ_MULTIPLE_BLOCK(CMD18) 代表读取多个连续的块。块会连续的传输, 直到
      8 {0 j$ a( ]7 ~3 J0 \! Y5 A% j. n
    • [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为止 *3 f, L8 n+ E" S. M! ]

    / t3 G% B9 A3 c9 t: d- @
    , i7 y7 |2 E1 o' P
    ! r8 y% j0 z9 e7 k+ b) H) [9 p8 o, T' j
    * b: [8 K7 G! o9 J* @
    下图抓取的NG采样数据,02紫色为CMD,03红色为CLK,其他data。深色部分为第一个CMD18命令(568ms),右侧为第二第三。第一个CMD18后,TF数据(兰色)吐出,但未使用 cmd12 去中止, 却又下达另一个 cmd18,致使TF异常,所以第二第三CMD18后,TF再无数据吐出,data为直线/ [3 P5 j' u9 k, Y/ Q% ~
    + X' j% c' d2 P

      W/ Z/ @' t1 S5 @8 W- X下图抓取的OK采样数据,02紫色为CMD,03红色为CLK,其他为数据。对应时间轴,495ms出现CMD18开始连续读取数据,TF吐出数据(兰色);517ms  CMD12>命令CMD18,读正常;539ms   CMD12>命令CMD18 读正常...... 最后正常开机。
    3 E6 H$ Z  m1 O! A' M
    5 A9 R1 |7 E3 o/ j8 ~( D
    ) P8 @3 [/ W  ~8 x# y- ]6 W# O% b/ u+ P

    ! O& [# }, E$ B5 B2 d" d& q, ~
    1 r( Y, }+ S0 N5 r! i  [* [0 O2 x- j( Z2 h' d2 b" u3 c
    + u) x& G8 ]8 W$ ~" V, ~; q- \7 W# j
    0 I  J! `0 i$ u8 Z* {
    补充内容 (2019-8-2 15:34):
    1 P6 W, E2 J& {; A我估计是卡放置久了之后,存储的电子流失,修正数据需要一定恢复时间,这个时间内会对主控报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 | 只看该作者
    有几个问题:% W; c3 d, J& d
    SD卡有没有接触不良的可能性?0 I( M2 \0 a2 v7 N/ E; P* z8 d
    SD卡上电后的工作电流有没有关注过?
    " M) S) M  c5 x3 {用单片机来使能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
    4 d, F0 U4 d' @有几个问题:* f$ r- ^0 E1 H4 c, n: g. n) B
    SD卡有没有接触不良的可能性?) |3 E. Y6 v  J5 G3 {) H
    SD卡上电后的工作电流有没有关注过?
    # ^) ^3 U+ V' g; T/ }, d8 d) t7 X$ K
    不是因为我们老板狠,是因为我们是工业设备,在线24小时,一出问题,就有环保局要进行罚款。所以换成了工业级的,但是的确遇到过了SD卡的问题,之前遇到的问题是SD卡在线运行时,偶尔出现问题,但是企业和环保局是接受不了的。通过对硬件、软件多方查找,最后只能怀疑到了SD卡质量的问题上。但是更换后的确没有出现过问题了。
    ! A0 W/ p7 H6 X
  • 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
    ( |" c9 P5 W5 o7 K$ d. N) V我已经更新了1楼,有新内容,可能是主控操作违反了SD2.0协议,造成 tf 卡状态异常
    ) m6 s( A. P5 n) H. ?5 h# F
    LZ你这个问题有最终结论了么?
    . P# l- j, Q2 o( n1 u! u抓取到的现象是可以解释异常现象,但同样的主控程序,为什么有时候发CMD12,有时候不发CMD12呢?
      S% }" B$ s; F1 }3 k0 H/ v3 ^4 A$ p8 Z7 t. f5 \* v

    点评

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-8-21 08:27 , Processed in 0.125000 second(s), 27 queries , Gzip On.

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

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

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