GD32L233是否可以直接使用IRC48M作为系统时钟?
本帖最后由 Sam131208 于 2025-2-17 09:40 编辑GD32L233默认使用IRC16M作为系统时钟,按照编程手册,应该可以使用IRC48M作为系统时钟的,并不需要启用PLL。
但是使用下面设置,系统时钟还是16MHZ,没有变为48MHZ:
<i> fmc_wscnt_set(FMC_WAIT_STATE_1);
rcu_apb1_clock_config(RCU_APB1_CKAHB_DIV2);
rcu_system_clock_source_config(RCU_CKSYSSRC_IRC48M);</i>
使用TIMER1输出PWM来测定系统频率,设定参数不变。应用了上面的代码后,PWM的周期与IRC16M相同。
后续测试确定:可以使用IRC48M作为系统时钟。 但是进入深度睡眠,唤醒后就变为IRC16Mhz的时钟源了。
时需要每次唤醒后重新设置?还是有办法维持睡眠唤醒后自动维持睡眠前的时钟设置?
软件更新至最新 如果您的微控制器支持备份域可以考虑将时钟源配置信息保存在备份寄存器中,并在唤醒后恢复这些设置。 GD32L233是GD32 系列中的一款低功耗微控制器,其时钟系统支持多种时钟源,包括内部高速时钟(IRC48M)。 IRC48M是GD32L233 的内部高速RC振荡器,频率为48MHz。它的优点是无需外部晶振,节省硬件成本和PCB空间。缺点是精度相对较低(通常为 ±1% 到 ±2%),不适合对时钟精度要求极高的应用。 GD32L233的时钟系统支持将IRC48M直接作为系统时钟(SYSCLK)。通过配置时钟树中的相关寄存器,可以将 IRC48M 选为系统时钟源。 IRC48M的精度较低,如果应用对时钟精度要求较高,建议使用外部晶振(如 8 MHz 或 12 MHz)并通过PLL倍频。 功耗比较高的,IRC48M 的功耗相对较高,如果应用对功耗要求较高,可以考虑在低功耗模式下使用低速时钟(如 IRC32K)。 启动时间,IRC48M 的启动时间较短,适合快速启动的应用场景。 使用调试工具(如 Keil 或 IAR)查看RCM_CFG寄存器的值,确认系统时钟源已切换为 IRC48M。 通过测量GPIO输出的时钟信号(如MCO引脚)验证系统时钟频率。 GD32L233 可以直接使用 IRC48M 作为系统时钟。 一般来说通过配置 RCM 相关寄存器,可以轻松将 IRC48M 选为系统时钟源。但需要注意 IRC48M 的精度和功耗特性,确保其适合具体应用场景。如果需要更高精度或更低功耗,可以考虑使用外部晶振或其他时钟源。
页:
[1]