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.

[参考译文] MSP430F6779A:关于 UCS 模块安全故障运行

Guru**** 1138100 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1334235/msp430f6779a-about-ucs-module-fail-safe-operation

器件型号:MSP430F6779A

我们的电路板使用 XT1晶振(32768Hz)、该晶振在施加 DVCC 后的前600ms 内无法保持稳定。

配置:


ACLK:XT1CLK
SMCLK:具有 FLL XT1CLK 基准时钟的 DCOCLKDIV
MCLK:具有 FLL XT1CLK 基准时钟的 DCOCLKDIV

时钟状态:
OFFG = 1
XT1LFOFFG = 1

因此、在这600ms 内(晶体不稳定)、故障安全操作将自动进行、对吧?

失效防护时钟是否始终正常工作(100%)?

在此期间(启动)我们是否应该手动将 FLL 基准时钟配置为 REFOCLK、然后在晶体稳定(600ms)后切换到 XT1?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Tink

    我是否可以知道 在施加 DVCC 之后600ms XT1晶体不稳定的原因?

    从 UG 说明中、

    一个晶振故障自动使 FLL 基准源、FLLREFCLK、以 REFO 作为源。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    600毫秒是晶体振荡器电路的特征。 3.3V 范围内提供电压后、

    下面我还介绍了一些在 DVCC 和 AUXVCC1条件下时钟故障状态的实验。

    1) 1)当连接和断开 DVCC 0到3.3V 电源时、持续将 AUXVCC1连接到3.3V C。
    结果:未检测到振荡器故障。

    2) 2)在连接和断开 DVCC 0到3.3V 电源时、请将 AUXVCC1连接到1.4V 及以下。
    结果:检测到振荡器故障。

    为什么检测到一个振荡器故障(OFFG = 1)
    XT1LFOFFG = 1)以及 AUXVCC1电压1.4及以下?


    从以上所有内容中、我的讨论是关于问题的可疑原因(时钟源故障)。 我发现 MCU 在实际使用字段中卡住(器件未启动)。 但不能在实验室中复制。

    这无法使用调试器来调试代码卡在哪里。 (因为调试器使程序计数器复位)

    仅使用 H/W 引脚检查了该故障的症状
    (器件未启动)。
    VCORE 引脚= 1.42V (内核电平0 AM)
    复位引脚= 3.3V

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我讨论了一些相关问题。

    e2e.ti.com/.../5051888

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我对下面的代码有另一个问题?

    int _system_pre_init(void)
    {
        /* Insert your low-level initializations here */
        __disable_interrupt();
        WDTCTL = WDTPW+WDTHOLD;
    
        // Clear RTCHOLD Bit after reset
        RTCCTL0_H = RTCKEY_H;     // unlock
        RTCCTL1 &= ~RTCHOLD;      // release RTC
        RTCCTL0_H = 0x00;         // lock
        
    }

    清除 SYSTEM_PRE_INIT 中的 RTC HOLD 位是否正确?

    当 SYSTEM_PRE_INIT 中的 RTC HOLD 位清零时(DVCC 和晶体尚不稳定、与 MCU 卡滞或不保持相关)、是否存在任何问题/风险?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Tink

    这些是代码开头的_disable_interrupt ()。

    我认为所有的中断在这里都被禁用了。

    我不知道如何在这里释放 RTC、因为中断被禁用

    谢谢