主题中讨论的其他部件: MSP430FR5994
我正在尝试配置MSP430FR5969以使用驱动HFXIN引脚的外部16MHz时钟振荡器。 但是,我无法成功配置时钟系统以使用此时钟。 时钟源似乎默认为内部MODCLK (MODOSC),因为我的计时器代码由4.8MHz源驱动,而不是16MHz源驱动。 如果发生无法清除的HFXT时钟故障,则会出现此故障安全默认值,如数据表中所述。 我已经探测了PCB,时钟看起来很稳定,没有过冲,50 % 占空比等。 我正在寻找可能出错的建议。
下面是配置MSP430FR5969以使用16MHz分机时钟的代码:
/*
用于MSP430FR5969的初始化,具有16MHz外部振荡器,驱动HFXIN引脚
*/
void hfxtClockInit_5MHz时钟(void){
/*设置外部引脚作为HFXT */使用
PJOUT = 0x00;
// DS表6-61,xtal操作为PJSEL1.n=0 PJSEL0.n=1,n=6,7
PJSEL1 = 0x00;
PJSEL0 || BIT6 | BIT7;
__DELAY周期(1.6万UL);
CSCTL0_H = CSOKEY >> 8;//解锁CS寄存器
CSCTL1_L = 0b0万;// DCO 1MHz (但未使用DCO)
CSCTL2 = SESL__HFXTCLK | SELM__HFXTCLK;//设置SMCLK和MCLK源= HFXT
CSCTL3 = DIVs__1| DIVM__1;//将所有分隔线设置为1
// 16MHz是HFFREQ_n位的临界情况?,请参见SLAU367中的表3-1
CSCTL4 || HFFREQ_3| HFXTBYPASS; //设置时钟输入频率范围
//检查并清除故障寄存器
做
{
CSCTL5 &=~(LFXTOFFG | HFXTOFFG); //清除XT1和XT2故障标志
SFRIFG1 &=~OFIFG;
}同时(SFRIFG1&OFIFG); //测试振荡器故障标志
CSCTL0_H = 0;//锁定CS寄存器
}