Thread 中讨论的其他器件:MSP430FR2155
工具/软件:
您好、
我在开发 PCB 上提出了一个 MSP430FR5964IPNR。 我们在 10MHz 处将 HFXT2 与外部 3.3V 时钟振荡器搭配使用。 (请注意,我们最近使用类似的器件 MSP430FR2155 成功实现了这一目标)。 来自振荡器的 10MHz 方波进入器件上的 HFXIN 引脚 74 后看起来正常。 器件不会清除警报标志 HFXTOFFG 并切换到 HFXT2 输入。 我们已在引脚 68 上将 MCLK 路由出去、可以看到它的频率不同或与 HFXIN 同步。 我假设它正在从 DCO 运行、因为 HFXTOFFG 无法清除。 我已经完成了寄存器设置、并认为它们设置正确。 下面是代码片段的副本:
提前感谢、
Adam
//**********************************************************************************************************************
//必须先写入时钟源密钥、然后才能写入任何其他寄存器
CSCTL0 = CSKEY;
// MCLK = HF EXT、SMCLK = HF EXT、ACLK = VLO INT
CSCTL2 = SELM__HFXTCLK | SELS__HFXTCLK | SELA_VLOCLK;
// MCLK、SMCLK、ACLK 均除以 1
CSCTL3 = DIVM_1 | DIVS__1 | DIVA__1;
//关闭 LFEXT、HFFREQ = 8 –16MHz(在 10MHz 上运行)、旁路使用 3.3V 时钟 OSC。
CSCTL4 = LFXTOFF_1 | HFFREQ_2 | HFXTBYPASS;
//****************************************************************************************
//时钟测试引脚
//****************************************************************************************
//将 MCLK 输出引脚 68 用于诊断
P5DIR |= BIT7;
P5SEL0 |= BIT7;
P5SEL1 || BIT7;
//等待“一段时间“、让 XT2 成为时钟源
静态易失性 uint16_t _xt1FailCnt = 0;
应该做
{
_xt1FailCnt++;
//清除 HFXT
CSCTL5 &=~(HFXTOFFG);
SFRIFG1 &=~OFIFG;
//测试 XT2 故障标志和循环迭代
}while ((CSCTL5 & HFXTOFFG)&&(_xt1FailCnt < 1000));//((SFRIFG1 & OFIFG)&&(_xt1FailCnt < 1000));
_xt1FailCnt =_xt1FailCnt;