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:CC430f6137时钟设置问题

Guru**** 2502205 points
Other Parts Discussed in Thread: CC430F6137

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/848143/cc430f6137-cc430f6137-clock-setting-issue

器件型号:CC430F6137

尊敬的 TI 团队:

我们正在开发基于 TI CC430F6137的产品。 下面是器件初始化例程的快照、该例程启用了32.768kHz 时钟晶体提供的 XT1 CLK。 此外、XT1_CLK 用作 PLL/DCO 的参考信号并生成 MCLK。

 

在单步执行初始化例程的过程中,我们偶尔会遇到一种情况,即 MCU 被困在 do-while 循环中(粗体),因为   DCOFFG 标志 总是设置为1,而不管它在循环中被清除。  当我们在角色中快速打开/关闭 CC430F6137电源多次时、这种情况会偶尔发生一次。 一旦器件进入此状态、通过系统复位引脚复位器件不会有所帮助、因为 MCU 会一直被捕获在 while 环路中。 解决此问题的唯一方法是以正常方式回收 MCU 的电源。 您是否会查看我们的初始化代码、并为我们提供建议、以帮助我们解决遇到的问题? 谢谢你。

 

此致、

Peter

      

 

MCU 时钟初始化例程

 

 UCSCTL6 &=~XCAP_3;           //清除 XCAP 值
 UCSCTL6 |= XCAP_1;            //将 XCAP 值设置为6pf

 P5SEL |=(BIT0 | BIT1);           /*为 XT1的外部源设置 P5.0和 P5.1 */
 _DELAY_CYCLES (375000);
 UCSCTL3 &=~SELREF_7;        /*设置 DCO FLL 基准= XT1 */
 UCSCTL4 |= SE拉美 经济体系2;            /*设置 ACLK = REFO */

 _bis_SR_register (SCG0);         /*禁用 FLL 控制环路*/
 UCSCTL0 = 0x0000;                        //设置尽可能低的 DCOx、MODx *
 UCSCTL1 = DCORSEL_5;         /*选择 DCO 范围24MHz 操作*/
 UCSCTL2 = FLLD_1 + 499;        /*(499 + 1)* 32768 = 16384000Hz */  
 _BIC_SR_register (SCG0);         /*启用 FLL 控制环路*/

 /* DCO 范围位已经过的最差情况下的稳定时间
  *已更改 n x 32 x 32 x f_MCLK / f_FLL_reference。
  * 32 x 32 x 16 MHz/32、768Hz = 500000 = DCO 稳定的 MCLK 周期
  *
 _DELAY_CYCLES (50000);           /*延迟周期根据公式*/更新
   
 /*循环直到 XT1、XT2和 DCO 故障标志被清除*/
 操作
 {
   UCSCTL7 &=~(XT2OFFG + XT1LFOFFG + DCOFFG)   /*清除 XT2、XT1、DCO 故障标志*
   SFRIFG1 &=~OFIFG;                              /*清除故障标志*/
 } while (SFRIFG1&OFIFG);                           /*测试振荡器故障标志*/

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

    您好、会

    请修改此代码以再次测试:

    UCSCTL6 |= XCAP_1;            //将 XCAP 值设置为6pf

    更改为  

    UCSCTL6 |= XCAP_3;            //将 XCAP 值设置为12pf

     

    一些 特定数据作为您的参考:

    您还可以在硬件板中测试我们的代码示例:

    http://dev.ti.com/tirex/explore/node?node=ACdT6Qy5BPEWKIAAMWv5DA__IOGqZri__LATEST

    此致

    Johnson

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

    尊敬的 Johnson:

     我们之前尝试过中的值 XCAP_3、问题未修复。

     

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

    您好、会

    此问题的故障率是多少? 是否有必要或偶尔进行?

    您能否在电路板中测试此代码示例、选择 REFCLK 作为 FLL 参考时钟、此代码能否检查外部晶体是否正常。

    http://dev.ti.com/tirex/explore/node?node=AB0osRaTm6.mtlCdclUUvw__IOGqZri__LATEST

    顺便说一下、 当这个问题发生时、您是否方便获取以下 UCS 模块寄存器的值?

    此致

    Johnson

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

    您好!

    您的问题如何?

    我已经有六天没有听到您的声音,因此我假设您能够解决您的问题。 如果情况并非如此,请单击“这无法解决我的问题”按钮,并使用更多信息回复此主题。 如果此主题锁定、请单击"提出相关问题"按钮、然后在新主题中描述您的问题的当前状态以及您可能需要帮助我们帮助解决您的问题的任何其他详细信息。

    此致

    Johnson

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

    您好!

    当降低 DCO 时钟频率时、它看起来是有效的。

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

    您好!

    恭喜您、如果您稍后有任何问题、请创建一个帖子、以便在 E2E 社区中直接讨论。

    此致

    Johnson