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.

[参考译文] CC430F6137:来自32768Hz 晶振的非对称和跳线时钟波

Guru**** 2502205 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/607135/cc430f6137-asymmetric-and-jumpy-clock-wave-from-32768hz-crystal

器件型号:CC430F6137

您好!

我安装 了与 em-cc430f6137板一起提供的32KHz 晶振、并运行了一个简单的程序:

使用 XT1作为 ACLK 的时钟源

使用 FLL 将 SMCLK 频率调整为8MHZ

随附了该代码、并根据 TI 提供的示例之一进行了调整:

/*将 CPU 时钟配置为8MHz */

/*如果时钟设置发生更改、请记住更新 BSP_TIMER_CLK_MHz。
*否则,所有计时器设置都不正确。
*
//初始化 LFXT1
P5OUT &= 0x03;
P5DIR &=~(BIT0 + BIT1);

P5SEL |= 0x03;//选择 XT1
UCSCTL6 |= XCAP_3;//内部负载电容

//循环直到 XT1故障标志被清除
执行{
UCSCTL7 &=~XT1LFOFFG;//清除 XT1故障标志
} while (UCSCTL7 & XT1LFOFFG);//测试 XT1故障标志

UCSCTL0 = 0x0000;//设置可能的最低 DCOx、MODx
UCSCTL1 = DCORSEL_5;//选择 DCO 范围16MHz 运行
UCSCTL2 = FLLD_1 + 243;//将 DCO 乘法器设置为8MHz
//(N + 1)* FLLRef = Fdco
//(243 + 1)* 32768 = 8MHz
//设置 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 8 MHz/32、768Hz = 250000 = MCLK 周期、DCO 才能稳定
_DELAY_CYCLES (250000);

//循环直到 XT1、XT2和 DCO 故障标志被清除
执行{
UCSCTL7 &=~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG);

//清除 XT2、XT1、DCO 故障标志
SFRIFG1 &=~OFIFG;//清除故障标志
} while (SFRIFG1 & OFIFG);//测试振荡器故障标志

UCSCTL6 &=~(XT1DRIVE_3);// XTAL 现在稳定、减少驱动

我设置端口以获取时钟信号:

PMAPPWD = 0x02D52;
P1MAP1 = PM_SMCLK;
P1MAP0 = PM_ACLK;
PMAPPWD=0;
P1DIR |= BIT0 + BIT1;
P1SEL |= BIT0 + BIT1;

现在我用示波器可视化了时钟、这里是 ACLK:

如您所见、示波器报告的频率为32.7690KHz。

我在这里看到一些问题:

1.波形不对称,请检查比高电平部分更长的低电平部分。

2、这是一个静态图像、但实时波不是很稳定、它有一些细微的跳变、示波器报告的频率为高和低。

我怀疑由于基频不稳定、高频(8MHz)甚至更容易跳转、请参阅随附的视频

e2e.ti.com/.../VIDEO0029.mp4

我想听取专家的意见、这是正常行为还是应该查找错误?

谢谢、

Dragos

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    通过测试不同的场景、我发现如果我不启用 FLL 控制环路、波形将变得对称。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Dragos、

    我建议将外部负载电容器与外部晶体一起使用、而不是仅依赖于内部电容器。 只要波形占空比保持在接近50%的水平、但外部晶体的频率应精确、波形占空比就不是问题所在。 晶振可能已损坏或出现故障、您是否尝试更换过晶振? 您还可以保留默认驱动强度、以查看这是否会产生任何影响。 XT1是 FLL 的参考时钟、因此、不稳的晶振不会帮助稳定 DCO 源(S) MCLK 是合理的。

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

    您好!

    我放置了外部电容器和一个新晶体->相同的结果。 如果我不减小驱动强度、也会获得相同的结果。 我使用多个 EM 进行了测试。 使用提供的晶体和其他品牌的电路板(三个)同样的结果。 我可以想象、问题来自其他方面。 为了能够对晶体振荡进行定量测量、CC430端口输出也许不是那么稳定? 可能无法使用示波器本身来执行该操作?

    谢谢、

    Dragos

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

    示波器探针提供的额外电容可能会导致读取时钟信号的问题。 您还可以尝试测量其原生引脚上的时钟(分别为 ACLK/SMCLK 的 P2.6/3.7)、而不是使用端口映射。 我发现了一个类似的 E2E 主题、可能有一些用途、您也可以参阅晶体振荡器应用手册(SLAA322):

    e2e.ti.com/.../57370
    www.ti.com/.../slaa322c.pdf

    此致、
    Ryan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    DCO 调制器在两个频率之间切换、因此当您查看 DCO 输出时、预计会出现抖动。

    ACLK 是否确实配置为 XT1、而不是 DCO? 您如何配置 UCSCTL4?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    UCSCTL4根本未配置、请见上面的源代码。 它具有默认设置、ACLK 的默认源为 XT1。

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

    用户指南说明:

    如果 ACLK 振荡源检测到故障、ACLK 将针对除 XT1 LF 模式之外的所有时钟源自动切换至 DCO 的时钟源(DCOCLKDIV)。 如果 ACLK 以 LF 模式下的 XT1作为时钟源、振荡器故障会导致 ACLK 自动切换至 REFO 以获取其时钟源(REFOCLK)。

    理论上、您在 LF 模式下使用 XT1。

    在实践中、您已经注意到禁用 FLL 会影响 ACLK 信号、因此在某种程度上、您有一个 ACLK 的非默认源。 请检查 UCSCTL4和 UCSCTL6的实际值。