关于MCAL环境下的时钟监测问题
-
请教一下:MCAL环境下是如何实现时钟监测的?没找到相关设置项。
之前在z20下通过如下方式实现片外时钟和片内高速时钟之间的切换。// 2-时钟初始化 if(reset_reson & 0x40000){ // 时钟丢失 Mcu_InitClock(1); // 选择FIRC作为PLL时钟源 INPUT_CLK_FREQ =96; } else{ Mcu_InitClock(0); // 选择FXOSC作为PLL时钟源 INPUT_CLK_FREQ = 24; // 使能OSC时钟丢失复位 Mcu_EnableOscClockMonitor(MCU_OSC_CLOCK_LOSS_RST); }
现在Mcu_InitClock(0)或Mcu_InitClock(1)独立运行都是正常的。但自动切换实现不了,片外24M时钟接地后会造成系统死机。且MCAL库也没有Mcu_EnableOscClockMonitor()函数。
-
MCAL 环境下,可以通过CMU实现时钟监测,包括时钟丢失,参考时钟丢失,时钟频率不正常等功能
配置项路径在这里:Mcu/McuModuleConfiguration/McuClockSettingConfig/McuClockSettingConfig_0/McuCMUConfig
根据 Reset 原因初始化可以参考:
int main(void) { Mcu_Init(&Mcu_Config); uint32 ResetReason = Mcu_GetResetRawValue(); if (ResetReason == 1) { Mcu_InitClock(1); }else { Mcu_InitClock(0); } while(1) { } }
-
jiankang_wang 可以切换了,多谢!
再请教一下:
这两个门限参数具体指的是什么?单位呢? -
- 这两个门限控制允许的监测时钟频率范围,超过该频率范围会 产生时钟频率超出限制 的标志位。
- 这里的单位是 Tick。其含义如下:
其中 128 是固定参数,为 CMU 的时钟监测周期,20% 为允许的偏差
-
jiankang_wang 好的,非常感谢
帮助没办法联网的电脑使用YCT
帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...