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.

[参考译文] MSP430FR5969:MSP430FR5969外部16MHz 时钟问题(基于同一主题上的其他线程)

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/962791/msp430fr5969-msp430fr5969-external-16mhz-clock-issues-based-on-other-threads-on-this-same-topic

器件型号:MSP430FR5969
主题中讨论的其他器件:MSP430FR5959

使用 MSP430FR5959器件时、我一直遇到与其他人提到的有关使外部时钟正常工作的类似问题。 根据我是在调试模式还是在发布模式下构建、我似乎还会获得不同的结果。

下面是基于 Matt Calvo 建议的示例的初始化代码

PJSEL0 |=(BIT6 | BIT7); //仅适用于 XT2

FRCTL0 = FRCTLPW | NWAITS_1; 基于 FRAM 的器件似乎需要//、但在示例中不需要????

CSCTL0_H = CSKEY >> 8; //解锁 CS 寄存器
CSCTL1 = DCORSEL | DCOFSEL_4; //将 DCO 设置为16MHz (第105页)
//CSCTL1 = DCOFSEL_6;
CSCTL2 = SELs__HFXTCLK | SELM__HFXTCLK;//将 SMCLK 和 MCLK 设置为 HFXTCLK (第95页)//SMCLK 似乎以~4MHz 运行?
/CSCTL2 = SELESS__DCOCLK | SELM__HFXTCLK;
CSCTL3 = DIVS__1 | DIVM__1; //将所有分频器设置为1
CSCTL4 |= HFXTDRIVE_3; //将缓冲器驱动器设置为最大
CSCTL4 &=~HFXTOFF; //打开 HFXTCLK
CSCTL4 |= HFXTBYPASS; //clk sig from oscTL4
&=~(HFFREQ0 | HFFREQ1);// 8MHz 至16MHz 范围
CSCTL4 |= HFFREQ1;
CSCTL5 &=~(LFXTOFFG | HFXTOFFG);//清除 XT1和 XT2故障标志(XSCTL0
=未驱动);将再次驱动 XT1和 XSCT0 =无故障 //锁定 CS 寄存器 

cs_setExternalClockSource (0、16000000); //is needed? 

如果我将 CSCTL2寄存器更改为:

CSCTL2 = SELS_DCOCLK | SELM__HFXTCLK; 

它从 DCO 运行 SMCLK、在调试和释放模式下似乎都能正常工作。 这似乎是一个非常直接的设置、所以我很困惑为什么我在这里遇到了这么多麻烦。

谢谢!

Ryan

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

    我没有尝试这种方法的设备、但我注意到 driverlib 函数(CS_BypassHFXT)设置了 HFXTBYPASS、而 HFXTOFF 设置(仍然)。 另外、在完全设置时钟之前、不要设置 SELM=HFXTCLK、这是很谨慎的。  

    具体的症状是什么?

x 出现错误。请重试或与管理员联系。