This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSP430外部晶振不起振的问题

Other Parts Discussed in Thread: MSP-GANG

各位好:

最近接到客户的问题说芯片的外部晶振32.768KHz不起振,个人怀疑是程序在编译或下载的时候出了点错,导致最终下载进MCU里的Flash不正确。想请教下问如何读取烧录进MCU的Flash(在不加密情况)?或者引起外部晶振不起振会有其他的原因?谢谢。

  • 建议先重新烧写一次试试。 如果还不能运行,可以编译一个点led的程序来测试外部晶振是否正常。
  • 能引起外部晶振不起振的原因也挺多的。比如电源纹波,起振电容,还有pcb布线等等
  • 烧写器就可以读Flash镜像

    外部晶振不起振,有很多原因,比较常见的是匹配电容选错了,你可以试一下

  • dirtwillfly 说:
    建议先重新烧写一次试试。如果还不能运行,可以编译一个点led的程序来测试外部晶振是否正常。

    Hi dirtwillfly,

    谢谢解答。由于是批量生产,有几片是出现这种问题,而不是批量出现,我觉得协振电容不匹配、电源纹波的概率可能比较小。另外,客户使用的是内部的协振电容,请问通常建议这样做吗?内部电容是比较精准还是会比较不精准?谢谢。

  • Daniel Fang 说:

    烧写器就可以读Flash镜像

    外部晶振不起振,有很多原因,比较常见的是匹配电容选错了,你可以试一下

    Hi Daniel,

    谢谢解答。能简单介绍下读取芯片Flash的步骤吗?编程环境是CCS6.0.1,烧录器是常见的TI MSP-FET Flash Emulation Tool,EVM board是MSP-TS430RGC64USB。谢谢

  • 内部电容和外部电容都不太准的。

    如果怀疑是电容的问题,可以用手或者电络铁触碰晶振,看能否起振。

  • dirtwillfly 说:

    内部电容和外部电容都不太准的。

    如果怀疑是电容的问题,可以用手或者电络铁触碰晶振,看能否起振。

    Hi dirtwillfly,

    非常感谢你的解答。在网上也看到说用手或电烙铁去触碰晶振进行测试,想问一下这是基于什么原理呢?

  • 人体是有感应电场和静电,在这里可以看成一个干扰电容,当手指靠近或者远离时,会干扰到PCB的起振电容。在这个过程中,当这个起振电容大小合适的时候,晶振就会起振了。

    大概就是这个道理,详细研究人体的干扰作用,也挺复杂的。

  • 晶振的正常工作需要一定的激励功率来维持,晶振可以看做一个负载。如果负载超过激励功率的能力,这个系统就是不稳定的,可能会停振。特别实在低温情况下会出问题。

    这个实际的负载大小与三个因素有关:

    1. PCB layout

    2. 匹配电容容值

    3. 晶体本身的谐振阻抗

    通常问题出在1和2上面。即不好的PCB layout和不合适的匹配电容。

    那么如何保证1和2呢?

    1. PCB layout :不要冒险让XTAL到MCU PIN的距离超过8--10mm,通常小心的设计需要在5mm之内。长的引线会大大引入ESD风险。

    2.匹配电容 : 匹配电容偏大,会使起振时间偏长,振幅降低。匹配电容偏小,频率会不稳定,同时低温会停振。把一个板子放冰箱里半小时就有可能观察到了。 选择方法 : 不同的匹配电容,对应的XTAL的震荡频率是不同的。通常让XTAL达到标称频率点,是晶振比较健康的工作状态。 实际可以把XTAL配置成ACLK,然后从MCU ACLK引脚输出,通过频率计来观察XTAL的频率,然后调整匹配电容值。 以32.768K XTAL为例,如果发现ACLK 频率偏大,就减少匹配电容值,反之亦然。

    果调整好了PCB layout和匹配电容,如何评估我的晶振系统是否稳定?

    在量产之前是完全可以评估晶振电路的风险的。 需要关注一个关键值, SF(Safe Factor,安全因子),SF可以衡量激励功率的裕度。通俗来讲,如果搬一个10斤的重物,你的力气是30斤,那么SF = 30 /10 = 3. 如果你的力气是50斤,那么SF = 50 / 10 = 5;  那么搬一个10斤的重物绰绰有余了。

    SF 越大越好,我的经验是MSP430的SF可以设计到5以上,不太会出晶振方面的问题。 

    SF的测试方法 : 在晶振引脚和MCU 引脚之间串入一个电阻RQ,比如100Kohm, 观察ACLK的稳定度,如果ACLK稳定,那么增加RQ,比如150Kohm,再观察ACLK,持续增加RQ,直到ACLK异常为止。  SF = 1 + (RQ/ 晶振谐振阻抗)。晶振谐振阻抗可以在晶振的spec中查到,常见的有25Kohm ,35Kohm,50Kohm,70Kohm

    如果你的板子SF < 3,就 有很大风险。 SF >5 ,通常会比较安全了。

    更详细的介绍可以看这个文档:

    MSP430 32-kHz Crystal Oscillators

  • Reply to Jason Guo:

    非常感谢您的回答,很详尽。已分享给Team学习。