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.

[参考译文] MSP430F4.7167万:禁用XT1,仅使用DCO和XT2

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/576596/msp430f47167-deactivating-xt1-only-use-dco-and-xt2

部件号:MSP430F4.7167万

嗨@大家!

我要将一个项目从MSPF2013移植到MSP430F4.7167万,并且需要MCLK = 8 MHz (或更高)和SMCLK = 1MHz。 借助MSPF2013,这种设计无需外部组件(晶体),只需通过集成的DCO和分频器即可工作。

但我还没有找到一种解决方案,可以在没有外部晶体的情况下使用MSP430F4.7167万来实现这一点。

非常欢迎您提出任何想法!

所以我尝试了一个额外的16 MHz谐振器(值就放在周围)连接到XT2。 其目的是从XT2CLK驱动MCLK。 并从FDCO驱动SMCLK,配置为1 MHz。

但是我不能使用XT2CLK作为MCLK的源,因为我在XT1上没有晶体,所以它不起作用。 这会使LFOF保持设置,这会将MCLK切换到DCO,无论我在SELMx中设置了什么。
 我尝试禁用XT1   (__bis_sr_register(OSCOFF   ;    ),但UC完全停止工作。

我做错了什么?

提前感谢!

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

    请参阅之前的主题:

    e2e.ti.com/.../10.4603万
    e2e.ti.com/.../5.921万
    e2e.ti.com/.../6.4597万

    您可以禁用FLL并修改FN_x和DCOx,但频率会因温度和电源电压的不同而有很大差异。 您不能禁用XT1,因此如用户指南的第5.2 4节所述,任何晶体都应连接到LFXT1,这需要找到一个8 MHz谐振器。 __bis_sr_register(OSCOFF);将MCU置于LPM0中。

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

    好的,我也必须在XT1上使用振荡器。

    我向XT1添加了3.6 MHz晶体,XT2上的16 MHz谐振器仍然存在。 为了进行调试,将时钟MCLK,ACLK和SMCL放置在相应的引脚上。

    使用了此POST结束时的测试代码

    我测量了以下频率:
    ACLK:3.6 MHz ->正常
    SMCLK:16 MHz ->正常
    MCLK:7,2 MHz ->故障,这仍然是DCO时钟,而不是编码的XT2

    也尝试使用

    FLL_CTL1 = SELM_A | Sils;    //MCLK源:xt1,SMCLK源:XT2

    它应在MCLK上输出XT1时钟,但仍存在DCO时钟。



    我完全不知道发生了什么问题




    #include <MSP430.h>/*
    
    
    main.c
    */
    int main(void){
    WDTCTL = WDTPW | WDTHOLD;	//停止看门狗计时器
    
    SCFQCTL = 0b0.0001万;//N = 1
    SCFI0 = FN_2; //DCO范围控制:001X 2至17.9 MHz,
    
    FLL_CTL0 = XTS_FLL; //LFXT1:高频模式
    FLL_CTL1 = SELM_XT2 |轮播; //MCLK源:XT2,SMCLK源:XT2
    FLL_CTL2 = XT2S_2; //XT2范围选择:3至16MHz晶体或谐振器
    
    
    //用于外部测量的MCLK,SCLK和ACLK输出
    P1DIR || BIT1 | BIT4 | BIT5;//输出:WFP 1.1 ,WFP 1.4 ,1.5
    P1SEL || BIT1| BIT4| BIT5;//特殊功能:WFP 1.1 (MCLK),WFP 1.4 (SMCLK),1.5 (ACLK)
    
    //无限循环
    同时(1)
    {
    ;}
    
    	返回0;}
    





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

    MCLK:7,2 MHz -> FAILURE,This still the DCO clock,not XT2 as coded[/QUOT](引用用户="PETER...">MCLK:7,2 MHz ->故障,这仍然是DCO时钟,而不是XT2编码[/QUOT]发布的代码不是  

    5.2 章节 中的第11节MSP430x4xx 系列的FLL+故障安全操作2013年4月用户指南 SLAU056L说:

    OFIFG振荡器故障中断标志设置并锁定在POR或检测到振荡器故障(LFOF,XT1OF,XT2OF或DCOF设置)时。 设置OFIFG时,MCLK来自DCO,如果设置了OFIE,OFIFG将请求NMI中断。 当中断被允许时,OFIE将自动重置。 OFIFG标志必须由软件清除。 可通过检查各个故障位来识别故障源。

    当设置了OFIFG并且MCLK自动切换到DCO时,SELMx位设置不会更改。 这种情况必须由用户软件处理。[/QUOT]因此,我认为 OFIFG位正在设置,在XT2启动过程中,MCLK将来自DCO,作为"FLL+故障安全操作"的一部分。 当软件设法清除 OFIFG位时,即XT2振荡器正在工作,则MCLK应来自XT2。

    有关  如何清除OFIFG位的示例,请参阅msp430x471x7_hfxt2.c FLL+,MCLK配置为从XT2 HF XTAL运行。