ZHCAE28 May 2024 TMS320F2800132 , TMS320F2800133 , TMS320F2800135 , TMS320F2800137 , TMS320F2800152-Q1 , TMS320F2800153-Q1 , TMS320F2800154-Q1 , TMS320F2800155 , TMS320F2800155-Q1 , TMS320F2800156-Q1 , TMS320F2800157 , TMS320F2800157-Q1 , TMS320F28P650DH , TMS320F28P650DK , TMS320F28P650SH , TMS320F28P650SK , TMS320F28P659DH-Q1 , TMS320F28P659DK-Q1 , TMS320F28P659SH-Q1
在电器应用中,内部振荡器通常用作时钟源。C2000 MCU 有两个内部振荡器。这两个振荡器可用于相互验证时钟频率的稳定性。C2000 MCU 有两种时钟自检方法。一个是使用 HRPWM 模块,另一个是使用 CPU 计时器。两种测试方法都可以在 test_application 工程中找到:STA_OSC_HR 对应于 HRPWM,STA_OSC_CT 对应于 CPU 计时器。
应使用 CPU 计时器模块来检测不正确的时钟频率以及时钟源之间的漂移。CPU 计时器 2 包含一个可编程计数器,可以选择该计数器的预分频值和时钟源。以系统时钟为参考时基,可以确定所选时钟与系统时钟之间的频率关系。通过对参考时钟和测量时钟使用不同的时钟源和不同的预分频值,可以减少共因失效。
使用 CPU 计时器进行检测的原理是,通常将系统时钟设置为内部振荡器 2 (XTAL2),并将 CPU 计时器 2 的时钟源切换到内部晶体振荡器 1 (XTAL1)。系统时钟和 CPU 计时器 2 同时用于测量一段时间,并比较计数之间的差值以确定内部振荡器是否存在频率偏差。如果所经历的节拍数不在指定范围内,函数会返回 STL_OSC_CT_FAIL。否则,函数返回 STL_OSC_CT_PASS。源代码位于 f280013x\source\stl_osc_ct.c。