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.
使用 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、这是很谨慎的。
具体的症状是什么?