主题中讨论的其他器件:MSP430WARE、 MSPWARE
我在启动时遇到外部振荡器检查问题。 对于外部振荡器、我使用的是 Sit1552 32.768kHz 晶体。 在我的某些电路板上、我得到了"外部晶体:良好"、但在大多数电路板上、我一直得到"外部晶体出现故障!" 消息。 当我检查"良好板"与"不良外部时钟板"的振荡器输出时、这些波形是相同的、在时钟出现前可能会有额外的20ms 延迟(即良好板在165ms 内启动振荡器、而不良板振荡器在180ms 以上启动)。 我们尝试在调用函数切换到 XT1源之前实现延迟、以防它检查过快、将 XT1_Good 标志设置为 false、然后在2s 超时后报告它、而不是在整个2秒内检查源、 但这并没有解决它。 我们仍会发现晶体出现故障。
下面是我们使用的代码。 有什么想法、想法或问题需要澄清?
FRAMCTL_configureWaitStateControl (FRAMCTL_ACCESS_TIME_CYCESS_1);
//尝试启动低频晶体振荡器
//
cs_setExternalClockSource (Xt1_OSC_FREQ);
if (CS_TurnOnXT1LFWithTimeout (CS_XT1_DRIVE_0、XT1_OSC_TIMEOUT)== STATUS_FAIL)
{
//
//如果晶体不存在或发生故障,请切换 LF
内部32kHz 基准振荡器的//时钟定义。
//
ui8LFOsc = CS_REFOCLK_SELECT;
xt1_Good = false;
}
其他
{
xt1_Good = true;
}
CS_initClockSignal (CS_ACLK、ui8LFOsc、CS_clock_divider);
CS_initClockSignal (CS_MCLK、CS_DCOCLKDIV_SELECT、CS_CLOCK_DIVIDER_1);
CS_initClockSignal (CS_SMCLK、CS_DCOCLKDIV_SELECT、CS_CLOCK_DIVIDER_1);
//
//调整 DCO 参数
//
CS_initFLL (((DCO_FREQ/1000)、FLL_Ratio);
CS_clearAllOscFlagsWithTimeout (1000);