1. 总线框图
该时钟树目前不要求记住,等以后编程时,只需要时不时回头翻看即可。代码写多了,这些知识自会烂熟于胸。
1.1 AHB总线
AHB的全称是"Advanced High-performance Bus",中文翻译就是"高级高性能总线"。这是一种在计算机系统中用于连接不同硬件组件的总线架构,它可以帮助这些组件之间高效地传输数据和信息。这个总线架构通常用于处理速度较快且对性能要求较高的部件之间的通信。
为了方便理解,我们可以形象的用一个例子来说明什么是AHB:
一条大街上,有很多房子,每家房子每天都有一些自己的操作,有的房子每天都要点外卖,有的房子每天都要做奶茶,有的房子每天都要做汉堡....
由于受到环境限制,每个房子里面的人不可以走出房子,但是他们需要向外卖东西或者买入一些东西。
但是,有一个大巴士,他可以帮助这些房子运送自己要买入的东西和要卖出的东西,帮助这些房子进行物品的交换。
大巴士有一些特点,准时发车,24小时不间断;谁家的房子亮灯了,并且有人给他招手了,大巴士就停下来给他运东西。
每个房子也都有些特点,家里有个灯,还有个招手员。但是每家的招手员不同,有的是老爷爷,有的是小孩子,有的是运动员,他们招手的频率不同。
在这个例子中,这条大街和巴士构成了一套系统,我们称之为AHB总线。
- 不同的房子代表着不同的功能功能外设,比如GPIO,SRAM,USBHS等。
- 房子的灯表示是否启用对应的功能。
- 房子的招手员决定了功能执行的频率。
- 大巴士24小时不间断准时发车,可以理解为晶振震荡过程中,会去按照房子招手员的频率去访问他们。
简单的进行总结,AHB的主要作用是帮助不同的硬件组件(比如处理器、内存、外设等等)之间高效地传输数据和信息。想象一下,计算机就像是一个大家庭,各个成员需要分享信息和资源。AHB就像是家庭里的交通工具,让不同的家庭成员之间能够顺畅地交流和共享。
1.2 APB总线
APB的全称是"Advanced Peripheral Bus",中文翻译就是"高级外设总线"。这是一种用于连接计算机系统中外部设备(外设)的总线架构,它可以帮助外设和其他部件之间传输数据和信息。这个总线通常用于连接一些相对简单的外部设备。
APB的作用和AHB类似,只不过AHB是大巴士,APB是小巴士,吞吐量不同。
2. 时钟树
2.1 时钟树
Clock Tree。时钟树是在集成电路设计中的一个重要概念,它是一种组织结构,用于分配和传递时钟信号到芯片内的各个功能模块。时钟树的设计和优化对于确保整个芯片的正常运行、时序准确性和功耗效率都非常关键。
2.2 倍频
将一个较低频率的时钟信号倍频到更高频率是一种常见的操作,通常使用锁相环(PLL,Phase-Locked Loop)或者数字锁相环(DLL,Delay-Locked Loop)等电路来实现。以下是一个基本的步骤来将外部晶振8M倍频到168M,假设你使用的是PLL:
- 反馈回路设置:将外部晶振8M连接到PLL的参考输入。这个参考输入相当于上面提到的“主时钟源”。
- 设置分频比:调整PLL的分频比,这个分频比就是你想要的倍频比。在你的情况下,希望从8M倍频到168M,那么分频比就是168M/8M = 21。
- 锁定环路:启动PLL,并且调整它的参数,使得输出频率为所需的168M。这个过程中,PLL会自动调整内部的时钟信号来尽量与输入参考时钟同步。
GD32和STM32采用的就是PLL这种方式实现倍频的。