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.

[参考译文] MSP430F5132:使用 CCS 调试器时钟读数奇怪、没有调试器时钟读数正常

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1107685/msp430f5132-strange-clock-readings-while-using-ccs-debugger-normal-clock-readings-without-debugger

器件型号:MSP430F5132

大家好!

我的目标是将 MCLK 设置为8MHz。 在 CCS 中调试时、我在 PJ.1上获得奇怪的输出。 点击"Terminate"停止调试后、时钟在示波器上看起来非常完美。 有什么原因吗?  

我将 MCLK 输出到 PJ.1:

PJSEL |= BIT0 + BIT1 + BIT2;    //Output CLKs to PJ.0-2
PJDIR |= BIT0 + BIT1 + BIT2;

我的目标是8MHz MCLK 速度:

// configure clocks
    UCSCTL3 = SELREF_2;                       // Set DCO FLL reference = REFO
    UCSCTL4 |= SELA_2;                        // Set ACLK = REFO

    __bis_SR_register(SCG0);                  // Disable the FLL control loop
    UCSCTL0 = 0x0000;                         // Set lowest possible DCOx, MODx
    UCSCTL1 = DCORSEL_5;                      // Select DCO range 16MHz operation
    UCSCTL2 = FLLD_1 + 243;                   // Set DCO Multiplier for 8MHz
                                            // (N + 1) * FLLRef = Fdco
                                            // (243 + 1) * 32768 = 8MHz
    __bic_SR_register(SCG0);                 // re-enable the FLL control loop

    // Worst-case settling time for the DCO when the DCO range bits have been
    // changed is n x 32 x 32 x f_MCLK / f_FLL_reference. See UCS chapter in 5xx
    // UG for optimization.
    // 32 x 32 x 8 MHz / 32,768 Hz = 250000 = MCLK cycles for DCO to settle
    __delay_cycles(250000);

    // Loop until XT1 & DCO stabilizes - In this case only DCO has to stabilize
    do
    {
    UCSCTL7 &= ~(XT1LFOFFG + XT1HFOFFG + DCOFFG);
                                            // Clear XT1,DCO fault flags
    SFRIFG1 &= ~OFIFG;                      // Clear fault flags
    }while (SFRIFG1&OFIFG);                   // Test oscillator fault flag

使用 CCS 调试器时、我的示波器会显示奇怪的时钟信号:

但是、当我单击"终止"时、我的示波器会显示干净的 MCLK、完全符合我的期望:

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

    你(们)好

    时钟输出为8MHz、这是调试模式中非常高的频率。 因此、在调试模式下将 MCLK 输出到 PJ.1的正常计时是正常情况。如果用户需要检查输出信号、请在自由运行模式下检查信号(不使用调试器)

    谢谢!

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

    您好、Xiaodong、

    在调试器模式期间、MCLK 是否正确?  

    如果我理解正确、则在调试器期间 PJ.1输出引脚不正确、因为8MHz 太快。 这是否意味着 MCLK 也不正确?

    谢谢!

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

    你(们)好

    在调试模式下、MCLK 是正确的。

    由于片上调试机制、信号(高速信号)时序将受到影响。 因此、建议在自由运行模式下检查此类信号

    谢谢