什么是外设时钟根配置

外设需要工作也需要时钟驱动,通过多路选择器以及对应的寄存器配置初始化最适合的外设频率可以让外设更高频的工作。
从上面截图以及红框中可以看到,外设时钟根perclk_clk_root与ipg_clk_root为大多数常用的外设提供时钟,初始化这两个时钟根需要先对ahb_clk_root进行初始化
初始化ahb_clk_rootahb_clk_root的时钟来源在cbcdr[periph_clk_sel]处有一个多路选择器
从上面这个图可以看出ahb_clk_root最大支持的频率是132mhz,如果在cbcdr[periph_clk_sel]这个多路选择器这里选择了上路,那它的时钟来源最大的频率是pll3_480,通过cbcdr[periph_clk2_rodf]分频后最大只能到120(此时分频器的值是4,如果是3的话160则超过了最大值),因为ahb_clk_root限制最大是132。因此cbcdr[periph_clk_sel]这个多路选择器,选择下路, 同时在cbcmr[pre_periph_clk_sel]时选择pll2的pfd2时钟源,它的时钟频率是396mhz,最终达到ahb_clk_root时经过cbcdr[ahb_podf]分频器处理刚好得到132mhz的频率。
/// 配置外接设备的时钟频率 /// cbcmr[pre_periph_clk_sel]选择pll2->pfd2 /// 先将19-18两个bit位清0 /// 再将19-18两个bit位的数据写成1,选择pfd2 ccm->cbcmr &= ~(3 > 5) & 0x1);/* 修改 ahb_podf 位的时候需要先禁止 ahb_clk_root 的输出,但是 * 我没有找到关闭 ahb_clk_root 输出的的寄存器,所以就没法设置。 * 下面设置 ahb_podf 的代码仅供学习参考不能直接拿来使用!! * 内部 boot rom 将 ahb_podf 设置为了 3 分频,即使我们不设置 ahb_podf, * ahb_root_clk 也依旧等于 396/3=132mhz。 */#if 0 /// 将cbcdr[ahb_podf]的12-10三个bit位清0 ccm->cbcdr &= ~(7 > 1) & 0x1);#endif初始化ipg_clk_rootipg_clk_root的频率最大值是66mhz,从ahb_clk_root过来的频率是132mhz,所以这里只需要将cbcdr[ipg_podf]分频器的值设置成除2即可。
/// 将9-8两个bit位的数据清0ccm->cbcdr &= ~(3 特别说明修改 ahb_podf 位的时候需要先禁止 ahb_clk_root 的输出,但是
我没有找到关闭 ahb_clk_root 输出的的寄存器,所以就没法设置。下面设置 ahb_podf 的代码仅供学习参考不能直接拿来使用!!内部 boot rom 将 ahb_podf 设置为了 3 分频,即使我们不设置 ahb_podf, * ahb_root_clk 也依旧等于 396/3=132mhz。# 外设时钟根配置

Silicon Labs推出微型低功耗可定制时钟IC系列SI512XX
车速传感器出故障的现象盘点_车速传感器的故障检测与排除
源码级和算法级的功耗测试与优化
分析3种分布式锁的设计与实现
苹果与高通或有可能再度合作 共同推进5G iPhone研发
什么是外设时钟根配置
AMD高管驳斥外媒报道 文章存在多个事实错误
汽车车灯的保养知多少?很多车主都没在意!
Xbox Series预热海报疑似曝光 显示将于4月6日举办媒体活动
工业的三个工业特征决定了工业互联网的特殊性
TFT型液晶显示器基本介绍
这款为物流而生的海豚为何能吸睛无数?
AI技术对医疗保健行业有何影响?
如何对电弧故障断路器进行维护
如何用加速度计提高倾角测量精度(含详细计算过程)
示波器差分探头怎么用
小米6最新消息:小米6C现身GFXBench、配骁龙660代号Jason,配置、跑分曝光!
软通动力再添鸿蒙生态盟友,引领鸿蒙原生应用黄金时代
为什么存储系统的性能涉及到无数的IO环节?
荣电集团与钕希科技签署全面战略合作