CH592X 最大系统时钟的是 60MHz 还是 80MHz

image.png

在 CH592 V1.8版本的数据手册中,给定了系统主频的范围为 

32KHz, 由 LSE 外部低速晶振32.768K或LSI内部32K RC振荡器 提供时钟信号,

2MHz~10MHz,由HSE外部高速晶振32M提供时钟信,

15MHz ~ 80MHz,由HSE外部高速晶振32M校正内部480M PLL 时钟产生时钟信号,

这样理解对吗?


此外,在给定的CH592示例代码中,只给了

image.png

这几种取值,不知道是否可以取到最高值 80 MHz的系统主频?


我自己按照分频规则新建了几种时钟频率,如下图:

image.png

中间 80MHz ~ 240MHz的时钟频率是我自己定义的,仅测试了 80 MHz的,但是CH592X好像无法正常运行,烧录完成就卡在 BOOT 模式,好像在不断重启。更高的频率没有再进行测试。


那这个是我设置的问题还是系统本身就不能跑到60MHz以上呢?

自己做了一下测试,测试结果如下表。

图片1.png

其中频率和分频系数按照数据手册规定,测试的方波输出代码如下:

这个是测试 FLASH 运行代码时,引脚的输出方波频率。

image.png

这个是测试 RAM 运行代码是,引脚的输出方波频率。

image.png

测试的平台为 CH592X的测试板。

统计了一下 RAM 频率随时钟增加的频率,如下图:

图片2.png统计了 FLASH 代码运行频率与主频关系,如下图:

图片3.png得出结论,CH592X 使用 PLL 作为时钟源的时候,其可用的工作频率范围为 18.46MHz ~ 60 MHz。 


80Mhz的主频可以跑,但是要代码都在RAM中运行。因此不建议用80M,建议使用60M。


确实,按照您说的的方式,我修改了代码,将更改时钟的代码放入了主循环中,重新测定了频率表。

测试的代码如下,测试RAM的代码:

image.png

测试 FLASH 的代码如下:

image.png

测试的结果如下:


1736847998357908.png

图片5.png

就是测试结果有点奇怪,高频部分 FLASH 代码不能运行可以理解,但是当频率低到一定程度时,FLASH代码也会出现不能运行的情况,有点奇怪。


如果需要低频率作为主频,例如32K,可以参考博客:

CH573修改主频 - SweetTea_lllpc - 博客园

注意使用蓝牙功能,主频需要在16M以上。


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