CH32V203 时钟分频的疑问

在研究V203使用时钟的时候,发现了个设置问题。

看手册HSI到PLL是可以选择不分频或者二分频,关于这个分频有两个地方提及,一个是EXTEND_CTR寄存器的bit4,一个是RCC_CFGR0寄存器的bit16,根据 EVT的示例,看出来官方是做了 EXTEN->EXTEN_CTR |= EXTEN_PLL_HSI_PRE;  RCC->CFGR0 |= (uint32_t)(RCC_PLLSRC_HSI_Div2 | RCC_PLLMULL18);  

这里的疑惑是EXTEN_CTR的bit4被置1了,对应为HSI 时钟作为 PLL 输入时钟,后面又写的是RCC_PLLSRC_HSI_Div2,但是手册里相关的位解释是HSI不分频或者2分频送入pll,这里认为解释较为模糊,因为在exten_ctr里并没有使能2分频。


请官方对上述问题阐述一下,并下面相关疑问做一下回复

1、能否给出一个完备的HSI预分频部分的解释或者示例(包括HSI不分频进入PLL和HSI 2分频进入PLL)

2、关于ch32v20x.h文件里 对于PLLSRC的宏定义有歧义,因为只有RCC_PLLSRC_HSI_DIV2和RCC_PLLSRC_HSE,难道这里的意思是使用HSI时 PLLSRC固定为HSI的二分频?

代码参考的这篇/bbs/thread-93204-1.html


您好,关于HSI配置所涉及的两个寄存器,如下图,首先通过(RCC_CFGR0)时钟配置寄存器0的位16选择时钟源为HSE还是HSI,当选择时钟源为HSI之后,通过配置扩展控制寄存器(EXTEND_CTR)的位4配置HSI是否分频。关于这两个寄存器具体介绍,可参考CH32V203应用手册。关于HSI分频示例,在我们EVT下有对应例程。此外,关于RCC_PLLSRC_HSI_DIV2的宏定义,要针对其具体的值结合寄存器来看,在工程中,其宏定义的值为0,结合RCC_CFGR0寄存器来看即选择HSI作为时钟源,具体是否分频还要通过配置扩展控制寄存器来配置。我们在参考宏定义时,最好要根据宏定义的值参考对应寄存器来理解


CH32V203应用手册:/downloads/CH32FV2x_V3xRM_PDF.html

CH32V203 EVT:/downloads/CH32V20xEVT_ZIP.html?

image.png

image.png



只有登录才能回复,可以选择微信账号登录