shushi007 发表于 2020-8-9 01:37

麻烦确认一下HK32F030F4P6这款芯片工作时钟的问题

我使用HK32F030F4P6这款芯片,HSI 从8M/2*12=48M 倍频为SYSCLK,但是GPIO最快翻转的时候只有6M左右,这个最快翻转是SYSCLk的1/4,也就是说MCU实际工作频率只达到了24M的样子。检查了频率等都没有错,估计可能flash等待周期引起SYSCLK=48M 但实际MCU要执行指令要等待flash取指而降为1/2的执行频率。麻烦确认 flash等待周期要如何配置,我如果配置为0个等待周期好像程序跑飞了,开了预取指设置1个等待周期实际降频1/2运行,这款CPU到底有指令预取指缓存没有?注意我这里是问MCU实际跑的频率,而不是问SYSCLK是不是48M的频率,可能外设等都可以跑48M但MCU降频了。



gpio操作,两条str指令一个gpio的方波,理论频率为48/4=12M,但实际只有6M左右。

annko2005 发表于 2020-8-10 08:44

我们的flash访问等待周期在我们的应用手册的Flash_ACR寄存器有说明,你关心的MCU的主频是否是48MHZ,你配置PA8做MCO输出,测量一下你的配置输出频率是否与你设置的一致。

fengrenjian 发表于 2020-8-10 11:32

有没有芯片详细的参考手册?reference manual

shushi007 发表于 2020-8-10 11:38

annko2005 发表于 2020-8-10 08:44
我们的flash访问等待周期在我们的应用手册的Flash_ACR寄存器有说明,你关心的MCU的主频是否是48MHZ,你配置P ...

我回去试一下,MCO输出也只是确认sysclk是否配置为48Mhz,不是MCU是否实际工作在48Mhz,因为MCO的输出直接和设置的频率始终相关直接跳过了MCU的控制,现在我的疑问是配置为48Mhz,MCU是否真的工作在48Mhz,因为cpu有取值等操作,如果取值或者其他原因导致CPU不能真正工作在48Mhz。还有就是我配置降频使sysclk在24Mhz,设置等待周期为0的时候,MCU控制GPIO的翻转最快也是在3Mhz不是6Mhz,也是一半,不知道为什么?

HSXP063 发表于 2020-8-10 11:47

shushi007 发表于 2020-8-10 11:38
我回去试一下,MCO输出也只是确认sysclk是否配置为48Mhz,不是MCU是否实际工作在48Mhz,因为MCO的输出直 ...

你把预取指关了,FLASH 周期不是0 的时候   开预取指执行效率要慢很多

shushi007 发表于 2020-8-15 02:00

HSXP063 发表于 2020-8-10 11:47
你把预取指关了,FLASH 周期不是0 的时候   开预取指执行效率要慢很多

最后测试结果,无论flash周期和预取指如何配置,cpu只能工作在24MHz一下,外设可以工作在48M,stm32f030的就不会!!!

ifxz0123 发表于 2020-12-3 18:09

shushi007 发表于 2020-8-15 02:00
最后测试结果,无论flash周期和预取指如何配置,cpu只能工作在24MHz一下,外设可以工作在48M,stm32f030 ...

技术问题死磕是可以的,但是在ST和HK之间画等号就有问题了{:lol:}。毕竟国产不能和HK做成一模一样的程度吧

Dick Hou 发表于 2020-12-11 08:44

shushi007 发表于 2020-8-15 02:00
最后测试结果,无论flash周期和预取指如何配置,cpu只能工作在24MHz一下,外设可以工作在48M,stm32f030 ...

MCU没有降频,但是IO翻转达不到1/4,目前国内没有几个厂家能做到1/4主频。这是因为M0集成的时候,效率不高导致,原厂设计问题。你跑个coremark,就知道和ST的区别了。

数据采集存储 发表于 2020-12-15 15:17

这个不错,感谢楼主,感谢楼主。
页: [1]
查看完整版本: 麻烦确认一下HK32F030F4P6这款芯片工作时钟的问题