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.

[参考译文] CC430F6147:频率为2.45MHz 时 MCLK 上的抖动

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/566715/cc430f6147-jitter-on-mclk-in-frequency-of-2-45mhz

器件型号:CC430F6147

您好!

我采用了 CC4306147的 EVB 以及通过外部晶振32.768kHz + FLL 以2.45MHz 的频率运行 MCLK 的代码示例

我用示波器测量了 MCLK、我注意到抖动为10ns、我测量了 ACLK、32.768kHz 看起来非常好。

您是否看到代码有任何问题?

此抖动是否 正常?

我想以4.194MHz 的 MCLK 工作以用于 UART 目的(误差更小),我更改了代码中以蓝色标记的2条代码,并得到了具有抖动的4.194MHz 代码

还可以吗? 或者我需要更改代码中的更多值

谢谢 Hadi

 

 

请参阅以下代码:

#include

 

int main (空)

 WDTCTL = WDTPW + WDTHOLD;         //停止看门狗计时器

 

 P1DIR |= BIT0;               // P1.0输出

 

 PMAPPWD = 0x02D52;             //获取对端口映射寄存器的写入访问

 P2MAP0 = PM_ACLK;             //将 ACLK 输出映射到 P2.0

 P2MAP2 = PM_MCLK;             //将 MCLK 输出映射到 P2.2

 PMAPPWD=0;                //锁定端口映射寄存器

 

 P2DIR |= BIT0 + BIT2;           // ACLK、MCLK、SMCLK 设置为引脚

 P2SEL |= BIT0 + BIT2;           // P2.0、2用于调试。

 

 //初始化 LFXT1

 P5SEL |= 0x03;               //选择 XT1

 UCSCTL6 |= XCAP_3;             //内部负载电容

 

 //循环直到 XT1故障标志被清除

 操作

 {

  UCSCTL7 &=~XT1LFOFFG;          //清除 XT1故障标志

 } while (UCSCTL7&XT1LFOFFG);        //测试 XT1故障标志

 

 //将 DCO 初始化为2.45MHz

 _bis_SR_register (SCG0);          //禁用 FLL 控制环路

 UCSCTL0 = 0x0000;             //设置可能的最低 DCOx、MODx

 UCSCTL1 = DCORSEL_3;            //将 RSELx 设置为 DCO = 4.9MHz

 UCSCTL2 = FLLD_1 + 74;           //将 DCO 乘法器设置为2.45MHz

 // UCSCTL2 = FLLD_1 + 127;           //将 DCO 乘法器设置为4.194MHz

                      //(N + 1)* FLLRef = Fdco

                      //(74 + 1)* 32768 = 2.45MHz

                      //设置 FLL Div = fDCOCLK/2

 _BIC_SR_register (SCG0);          //启用 FLL 控制环路

 

 // DCO 范围位已经存在时、DCO 的最坏情况稳定时间

 //已更改 n x 32 x 32 x f_MCLK / f_FLL_reference。 请参阅5xx 中的 UCS 一章

 // UG 进行优化。

 // 32 x 32 x 2.45MHz / 32、768Hz = 76563 = DCO 稳定的 MCLK 周期

 _DELAY_CYCLES (76563);

 //__delay_cycles (131072);

 

 //循环直到 XT1、XT2和 DCO 故障标志被清除

 操作

 {

  UCSCTL7 &=~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG);

                      //清除 XT2、XT1、DCO 故障标志

  SFRIFG1 &=~OFIFG;            //清除故障标志

 } while (SFRIFG1&OFIFG);          //测试振荡器故障标志

 

 while (1)

 {

  P1OUT ^= BIT0;              //切换 P1.0

  _DELAY_CYCLES (600000);         //延迟

 }

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们将进入 MSP 论坛、因为此问题与 MSP 器件而不是无线电器件有关
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引述 USER="Hadi Shvartz"]我用示波器测量了 MCLK、发现抖动为10ns、我测量了 ACLK、32.768kHz 看起来非常好。[/引述]

    除非调制器关闭、否则预期 DCO 输出中会出现抖动。 调制器在 DCO 的两个离散频率之间切换、产生的平均频率由调制位计数器决定。 如果您需要干净的 MSP430时钟、则应使用 XT2高频晶体振荡器(在可用的芯片上)。