您好!
我在 XT2上有一个24MHz XTAL。 它是一款 EPSON TSX-3225 24.0000MF15X-AC3 、具有15pF CL 和50欧姆 ESR。 我在下面的代码段中设置了时钟。 我通过将 UCSCTL4设置为 SELM-5并通过将 UCSCTL5设置为 DIVS_1将 SMCLK 连接到 XT2。 我将 SMCLK 路由到 P2.2、因此我可以探测我预期为12MHz 的时钟频率。 查看 UCSCTL7、我没有看到任何故障标志。 我还通过将 UCSCTL6的位15和14设置为1来将驱动强度设置为"11"。 这些寄存器也显示在下面。
MSP430的电源为3.3V、我已经使用 SetVCore (1)至 SetVCore (3)调用将 PMM 设置为最高电平。
当我探测输出时、我看到一个非常抖动的529.1KHz 时钟。 当我探测 XTALK 时、我看到振幅为278mVpp 的24MHz 正弦波以527mV 为中心。 我在数据表中没有看到任何有关振幅要求的规格、但似乎 XT2电路正在正确驱动 XTAL。 我有18pf 负载电容、信号布线相当好。 我也尝试了9pf 电容器、但结果相同。
有什么想法吗?
空 Init_Clock (空)
{
P5SEL |= BIT2+BIT3;//端口选择 XT2和 XT1
UCSCTL6 |= XT1OFF;//禁用 XT1
UCSCTL6 &=~(XT2OFF);//启用 XT2
//循环直到 XT1、XT2和 DCO 稳定-在本例中循环直到 XT2稳定
操作
{
UCSCTL7 &=~(XT2OFFG|XT1LFOFFG|DCOFFG); //清除 XT2、XT1、DCO 故障标志
} while (UCSCTL7&XT2OFFG);
//UCSCTL6 &=~(XT1DRIVE0+XT1DRIVE1);//根据减少 XT1驱动
//预期频率
UCSCTL4 = SELS_5 + SELM_5 + SELA_2;// SMCLK=MCLK=XT2、ACLK = REFOCLK、32.768kHz
UCSCTL5 = DIVS_1;// SMCLK = XT2/2 = 12MHz、MCLK = 24MHz
}