下图为CH32V305/307和CH32F205/207时钟树框图,在此,以CH32V307VCT6芯片,外置25MHz晶振为例,简述图中PREDIV与PLLMUL的配置方法,最终实现144MHz系统主频。

外置晶振信号可直接输入PREDIV1与PLLMUL,也可先通过PREDIV2与PLL2MUL后,再输入PREDIV1与PLLMUL。当外置晶振频率为25MHz时,可先使用PREDIV2进行5分频,然后使用PLL2MUL进行8倍频,再使用PREDIV1进行5分频,最后使用PLLMUL进行18倍频,即SYSCLK(144MHz)=25/5(PREDIV2/5)*8(PLL2MUL*8)/5(PREDIV1/5)*18(PLLMUL*18)。

时钟的修改涉及两个文件,分别是system_ch32v30x.c与ch32v30x.h,首先修改头文件中HSE_VALUE宏定义的值为外置晶振频率。

1. #define HSE_VALUE ((uint32_t)25000000) /* Value of the External oscillator in Hz */

然后在system_ch32v30x.c文件中找到SetSysClockTo144_HSE函数,第一步,在配置RCC_CFGR0前,先配置PREDIV2为5分频与PLL2MUL为8倍频,使能PLL2MUL并等待其就绪;第二步,在使能PLLMUL前,配置PREDIV1的时钟源为PLL2MUL且为5分频。

1. /* PLL configuration: PLLCLK = HSE * 18 = 144 MHz */

2. RCC->CFGR0 &= (uint32_t)((uint32_t)~(RCC_PLLSRC | RCC_PLLXTPRE | RCC_PLLMULL));

3.

4. RCC_PREDIV2Config(RCC_PREDIV2_Div5);

5. RCC_PLL2Config(RCC_PLL2Mul_8);

6. RCC_PLL2Cmd(ENABLE);

7. while( (RCC->CTLR & (1<<27)) == 0 )

8. {

9. }

10.

11. #ifdef CH32V30x_D8

12. RCC->CFGR0 |= (uint32_t)(RCC_PLLSRC_HSE | RCC_PLLXTPRE_HSE | RCC_PLLMULL18);

13. #else

14. RCC->CFGR0 |= (uint32_t)(RCC_PLLSRC_HSE | RCC_PLLXTPRE_HSE | RCC_PLLMULL18_EXTEN);

15. RCC_PREDIV1Config(RCC_PREDIV1_Source_PLL2, RCC_PREDIV1_Div5);

16. #endif

17.

18. /* Enable PLL */

19. RCC->CTLR |= RCC_PLLON;

20. /* Wait till PLL is ready */

21. while((RCC->CTLR & RCC_PLLRDY) == 0)

22. {

23. }

除此之外,在使用USB HS接口时,还应对USBHS_RCC_Init函数做进一步的调整,首先配置USBHS时钟为5分频,然后设置USBHSPLL参考时钟为5MHz。

1. RCC_USBHSConfig( RCC_USBPLL_Div5 );

2. RCC_USBHSPLLCKREFCLKConfig( RCC_USBHSPLLCKREFCLK_5M );

其他系列芯片不再一一赘述,使用时应首先查阅时钟树框图,参考应用手册中具体的配置要求,并结合上述方法进行操作。最终还可以通过MCO将SYSCLK进行输出,使用示波器进行简单的测量。

PREDIV与PLLMUL配置应用笔记的更多相关文章

  1. SVN版本库(访问权限)配置实例笔记

    http://blog.csdn.net/zjianbo/article/details/8578297 SVN版本库(访问权限)配置实例笔记 本系列文章由ex_net(张建波)编写,转载请注明出处. ...

  2. nginx 配置rewrite 笔记

    nginx 配置rewrite笔记: 通过下面的示例来说明一下,1. 先说说location : location 表示匹配传入的url地址,其中配置符有多种,各种情况的意义不一样: location ...

  3. Chapter 2. OpenSSL的安装和配置学习笔记

    Chapter 2. OpenSSL的安装和配置学习笔记 2.1 在linux上面安装OpenSSL我还是做点No paper事情比较在行,正好和老师的课程接轨一下.以前尝试过在Windows上面安装 ...

  4. centos6 安装配置ss笔记

    2018-05-17 centos6 安装配置ss笔记 操作环境:Centos 6 x86_64 bbr 服务器地址:美国 1.准备VPS 在https://www.bwh1.net可购买,购买时已默 ...

  5. redis 安装配置学习笔记

    redis 安装配置学习笔记 //wget http://download.redis.io/releases/redis-2.8.17.tar.gz 下载最新版本 wget http://downl ...

  6. Celery配置实践笔记

    说点什么: 整理下工作中配置celery的一些实践,写在这里,一方面是备忘,另外一方面是整理成文档给其他同事使用. 演示用的项目,同时也发布在Github上: https://github.com/b ...

  7. FtpServer穿透内网访问配置踩笔记

    FtpServer穿透内网访问配置踩笔记 引言 FtpServer是服务器文件远程管理常用方式. 以前在局域网配置Ftp服务器以及使用公网上的Ftp服务均未碰到问题,固未对Ftp传输进行深入了解. 然 ...

  8. SpringBoot多重属性文件配置方案笔记

    SpringBoot多重属性文件配置方案笔记 需要重写PropertyPlaceholderConfigurer 同时要忽略DataSourceAutoConfiguration @SpringBoo ...

  9. Ubuntu构建Docker私有仓库(Repository) 配置过程笔记

    一.准备: 1.服务器(或者虚拟机2台,我的服务环境[  阿里云服务器-Ubuntu 1804 +百度云-Ubuntu 1604]) 2.有效镜像(我这里以上一篇随笔镜像作为有效镜像https://w ...

  10. Elasticsearch的配置学习笔记

    文/朱季谦 Elasticsearch是一个基于Lucene的搜索服务器.它提供一个分布式多用户能力的全文搜索引擎,基于RESTful web接口,Elasticsearch是用Java语言开发的. ...

随机推荐

  1. 基于Java实现数据脱敏

    用法 Jdk版本 大于等于1.8 maven依赖 <dependency> <groupId>red.zyc</groupId> <artifactId> ...

  2. [操作系统] - 进程状态&进程描述

    2.1 进程(Process) 2.1.1 定义 chatGPT版:一个具有独立功能的程序关于某个数据集合的一次运行活动 人话版:程序在并发环境中的执行过程& 进程是程序的一次执行 2.1.2 ...

  3. RTSP Server(LIVE555)源码分析(一)-重要关系类

    live项目包括四个基本的库,程序入口类(在mediaServer中),各种测试代码(测试代码在testProgs里面). 四个基本的库分别是: UsageEnvironment&TaskSc ...

  4. CSS 点击穿透pointer-events

    在项目中,当需要展示一个元素在最顶层,但又不想让它影响下层的交互,可以pointer-events:none pointer-events介绍 pointer-events: auto | none ...

  5. #Python基础 利用Pyinstaller 模块对python代码进行打包exe

    一般我们都用 Python 的 Pyinstaller 模块进行打包,这里记录Pyinstaller 模块进行打包. 一:安装 Pyinstaller 模块 pip install PyInstall ...

  6. 2023-02-17:sdl是跨平台的多媒体开发库,请问用go语言如何调用?

    2023-02-17:sdl是跨平台的多媒体开发库,请问用go语言如何调用? 答案2023-02-17: 用 github.com/moonfdd/sdl2-go 这个库. 这是我自己写的golang ...

  7. 2019年蓝桥杯C/C++大学B组省赛真题(等差数列)

    题目描述: 数学老师给小明出了一道等差数列求和的题目.但是粗心的小明忘记了一部分的数列,只记得其中N 个整数. 现在给出这N 个整数,小明想知道包含这N 个整数的最短的等差数列有几项? 输入格式 输入 ...

  8. windows下搭建docker容器环境

    下载Docker Desktop https://www.docker.com/ 安装Docker Desktop(软件默认安装c盘,若要安装到其他盘,在安装之前创建软连接再进行安装) 在自定义磁盘中 ...

  9. CentOS系统重命名

    感觉默认的系统名称很难看,得改改,如下 一.查看linux 系统版本信息 [root@iZbp15rmf8lyj2yhq136ebZ ~]# cat /etc/redhat-release CentO ...

  10. ERROR: Failed to install the following Android SDK packages as some licences have not been accepted.

    android studio 配置sdk时提示如下错误 麻麻蛋~ 根据accepted 了解到是安装android-26时未被允许:于是执行如下步骤 1.cd 到sdk目录 D:\develop\An ...