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.

[参考译文] MSP430F67791:SMCLK 值和 EVM430F6779 手册

Guru**** 2609895 points
Other Parts Discussed in Thread: MSP-EM-DESIGN-CENTER

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1580728/msp430f67791-smclk-value-and-evm430f6779-manual

部件号:MSP430F67791
主题中讨论的其他器件:MSP-EM-DESIGN-CENTER

下午好、我尝试为 EVM430F6779 评估板找到分配给 SMCLK 的值、但我在应用手册中找不到。 有人请告诉我默认值并提供用户手册的链接吗?

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

    默认情况下、MCLK_DEF = 16、因此我不知道在此片段中模式设置为什么值:
    #else

    unsigned int d、DCO_div_bits;
    unsigned int 模式= 0;

    //保存 FLL 环路控制的当前状态
    unsigned short globalInterruptState =__get_SR_register ()& SCG0;
    __BIC_SR_REGISTER (SCG0);//禁用 FLL 循环控制

    d =比率;
    DCO_div_bits = FLLD__2;//至少有一个分频器 2
    如果 (fsystem > 16000){
    d >>>=1;
    MODE = 1;
    }
    暴露
    fsystem <<= 1;// fsystem = fsystem * 2.

    while (d > 512)

    DCO_div_bits = DCO_div_bits + FLLD0;//设置下一个更高的 div 级别
    D >>= 1;
    }

    UCSCTL0 = 0x000;//将 DCO 设置为最低抽头

    UCSCTL2 &=~Ω(0x3FF);//复位 FN 位
    UCSCTL2 = DCO_div_bits |(d - 1);

    if (fsystem <= 630)// fsystem < 0.63MHz
    UCSCTL1= DCORSEL_0;
    else if (fsystem < 1250)// 0.63MHz < fsystem < 1.25MHz
    UCSCTL1= DCORSEL_1;
    否则 if (fsystem < 2500)// 1.25MHz < fsystem < 2.5MHz
    UCSCTL1= DCORSEL_2;
    否则 if (fsystem < 5000)// 2.5MHz < fsystem < 5MHz
    UCSCTL1= DCORSEL_3;
    else if (fsystem < 10000)// 5MHz < fsystem < 10MHz
    UCSCTL1= DCORSEL_4;
    否则 if (fsystem < 20000)// 10MHz < fsystem < 20MHz
    UCSCTL1= DCORSEL_5;
    否则 if (fsystem < 40000)// 20MHz < fsystem < 40MHz
    UCSCTL1= DCORSEL_6;
    暴露
    UCSCTL1= DCORSEL_7;

    while (SFRIFG1 和 OFIFG){//检查 OFIFG 故障标志
    UCSCTL7 &=~(DCOFFG+XT1LFOFFG+XT1HFOFFG+XT2OFFG);//清除 OSC 长槽标志
    SFRIFG1 且=~OFIFG;//清除 OFIFG 故障标志
    }

    如果 (MODE == 1)// fsystem > 16000
    SELECT_MCLK_SMCLK (SELM_DCOCLK + sels__DOCCLK);//选择 DCOCLK
    暴露
    SELECT_MCLK_SMCLK (SELM_DCOCLKDIV + sels_DCOCLKDIV);//选择 DCODIVCLK

    __bis_sr_register (globalInterruptState);//恢复先前的状态
    #endif

    但我理解、SMCLK 最后以这种情况下 DCOCLK 或 DCOCLKDIV 的频率、因为根据 slau390f:
    SMCLK:子系统主时钟。 可通过软件将 SMCLK 选择为 XT1CLK、REFOCLK、VLOCLK、DCOCLK、DCOCLKDIV、 以及 XT2CLK(如果可用)。 DCOCLKDIV 是 DCOCLK 频率的 1、2、4、8、16 分频 FLL 块内的 32 位。 SMCLK 可进行 1、2、4、8、16 分频、 或 32。 可通过各个外设模块通过软件选择 SMCLK。

    我有两个具体问题:
    1. SMCLK 使用什么频率,它的值是什么?
    2、我可以给它分配的最大值是多少,如何分配?

    我期待收到任何答复。 谢谢你。

    -胡安·阿博莱达

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

     尊敬的 Juan:

    如果 使用 MSP430F67xx 进行 电能测量、您可以 参考 MSP-EM-DESIGN-CENTER MSP-EM-DESIGN-CENTER   

    您可以在 电能测量技术指南页面中找到用户指南、 它提供了 一些 SMCLK 频率选项、希望它对您有所帮助。

    此致、
    彼得