历史上的今天
返回首页

历史上的今天

今天是:2024年10月15日(星期二)

正在发生

2021年10月15日 | STM32系统时钟树分析

2021-10-15 来源:eefocus

下面是一个STM32芯片的时钟树图

1、LSI是低速内部时钟,RC振荡器,频率为32kHz左右。供独立看门狗和自动唤醒单元使用。

2、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。这个主要是RTC的时钟源。

3、HSE是高速外部时钟,课接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~26MHz。我们开发板接的是8M的晶振。HSE也可以直接作为系统时钟或者PLL输入。

4、HSI是高速内部时钟,RC振荡器,频率为16MHz。可以直接作为系统时钟或者用作PLL输入。

5、PLL为锁相环倍频输出。STM32F4有两个PLL:


(1)主PLL由HSE或者HSI提供时钟信号,并具有两个不同的输出时钟。

第一个输出PLLP用于生成高速的系统时钟(最高168MHz)

第二个输出PLLQ用于生成USB OTG FS的时钟(48MHz),随机数发生器的时钟和SDIO时钟。


(2)专用PLL(PLLI2S)用于生成精确时钟,从而在I2S借口实现高品质音频性能。

 这里写图片描述 这里写图片描述

大家在图中可以看到一些梯形,这些梯形为选择器。左边为选择器,右边为分频器


LSI,低速内部时钟

LSI低速内部时钟,频率为32kHz。RC振荡器产生,因为是RC振荡器产生,所以频率不是很稳定。主要对右边的独立看门狗做时钟。因为独立看门狗对时钟的精度要求不是很高,所以可以使用LSI。LSI比较简单,简单的理解就是一个电阻一个电容。


LSI还可以作为RTC模块的时钟来源。在RTC模块左边有一个选择器,那么它不仅可以选择LSI作为时钟来源,还可以选择LSE作为时钟来源。


LSE,低速外部时钟

LSE一般是由外接的一个精确的32.768k的晶振产生,比较稳定,一般情况下RTC选择LSE作为时钟源。RTC的时钟来源还可以来自HSE(图上有线连着,顺着线找)。


MCO1/MCO2

在LSE下面有MCO1和MCO2两个引脚,这两个引脚就是把芯片内部的时钟输出到引脚。MCO1对应的是PA8,MCO2对应的是PC9(笔者这里使用的STM32F407芯片),MCO1和MCO2都有一个选择器,可以选择四个时钟来源,选择好时钟来源后经过一个分频器,分频就是对时钟进行除法运算,然后再输出到对应的引脚。


HSE,高速外部时钟

HSE是由外接的晶振产生的,是4MHz~26MHz。HSE产生时钟后会先经过一个分频器,这个分频系数是2~31,分频后的时钟才可以作为RTC时钟的一个选择。


HSI,高速内部时钟

这里写图片描述

由RC振荡器产生,精度不高。首先,可以作为MCO1的一个时钟来源,其次可以作为系统时钟的一个来源。向下会将时钟信号送给一个选择器,这个选择器可以选择来自HSE和HSI的信号。左边一个“/M”的分频器,会把选择的时钟/M之后产生一个频率,产生一个频率后就到了PLL。


PLL,锁相环倍频输出

这里写图片描述

上面的叫主PLL,下面的叫专用PLL。主PLL产生两种时钟,一种作为系统时钟;一种叫作PLL48CK的时钟,用于USB OTG的时钟。专用PLL时钟主要是给I2S模块使用,因为I2S主要处理音频问题,对于频率的要求比较高,所以就有一个专用PLL。时钟信号从“/M”分频器出来后,进入“xN”的倍频器,然后在“/P”、“/Q”或者“/R”,“/P”出来后作为系统时钟;“/Q”出来后作为PLL48CK时钟;“/Q”出来后作为I2S时钟。从这里我们就能计算出从PLL出来的时钟频率,假设从选择器进去的时钟频率为f,PLL=(f/M)(N/P)或者PLL=(f/M)(N/Q)或者PLL=(f/M)*(N/R)。


图中A~G表示的地方:

A: 这里是看门狗时钟输入。从图中可以看出,看门狗时钟源之恩给你是低速的LSI时钟。

B: 这里是RTC时钟源,从图上可以看出,RTC的时钟源可以选择LSI,LSE,以及HSE分频后的时钟,HSE分频系数为2~31。

C: 这里是STM32F4输出时钟MCO1和MCO2。MCO1是芯片的。PA8引脚输出时钟。它有四个时钟来源分别为:HSI,LSE,HSE和PLL时钟。MCO2是向芯片的PC9输出时钟,它同样有四个时钟来源分别为:HSE,PLL,SYSCLK以及PLLI2S时钟MCO输出时钟频率最大不超过100MHz。

D: 这里我们值得是以太网PTP时钟,AHB时钟,APB2高速时钟,APB1低速时钟。这些时钟都是来源与SYSCLK系统时钟。其中以太网PTP时钟是使用系统时钟。最大时钟为168MHz,APB2高速时钟最大频率为84MHz,而APB1低速时钟最大频率为42MHz。

F: 这里是指I2S时钟源。从图可以看出,I2S的时钟源来源于PLLI2S或者映射到I2S_CKIN引脚的外部时钟。I2S出于音质的考虑,对时钟精度要求很高。

G: 这是STM32F4内部以太网MAC时钟的来源。对于MII接口来说,必须向外部PHY芯片提供25MHz的时钟,这个时钟,可以由PHY芯片外接晶振,或者使用STM32F4的MCO输出来提供。然后,PHY芯片再给STM32F4提供ETH_MII_TX_CLK和ETH_MII_RX_CLK时钟。对于RMII接口来说,外部必须提供50MHz的时钟驱动PHY和STM32F4的ETH_RMII_REF_CLK,这个50MHz时钟可以来自PHY、有源晶振或者STM32F4的MCO。我们的开发板使用的是RMII接口,使用PHY芯片提供50MHz时钟驱动STM32F4的ETH_RMII_REF_CLK.

H: 这里是指外部PHY提供的USB OTG HS (60MHz)时钟。

推荐阅读

史海拾趣

Dialog公司的发展小趣事

到了1981年,Dialog公司从洛克希德导弹航空公司中独立出来,成为了一个子公司,并开始独立经营。在独立发展的初期,Dialog公司继续专注于通信技术的研发,并逐渐将业务范围拓展到了个人便携式应用、低功耗短程无线应用以及LED固态照明、显示和汽车应用等领域。

Forge Europa Ltd公司的发展小趣事

随着技术实力的不断增强,Forge Europa Ltd公司开始将目光投向国际市场。公司积极参与国际展会,与全球客户建立联系,并通过优化供应链管理,确保产品能够迅速响应国际市场需求。在欧洲市场,Forge Europa凭借其高品质的产品和专业的服务,迅速赢得了众多知名客户的青睐。同时,公司还不断拓展北美、亚洲等新兴市场,逐步建立起覆盖全球的销售网络。

申风(everanalog)公司的发展小趣事

在申风(everanalog)公司的发展过程中,技术突破和产品创新一直是其核心竞争力。公司不断投入研发资源,致力于开发出具有自主知识产权的集成电路产品。其中,多通道整合型电源管理芯片的成功研发,不仅填补了国内市场的空白,也赢得了客户的广泛认可。这些技术突破和产品创新为公司的快速发展奠定了坚实的基础。

Dow-Key Microwave Corporation公司的发展小趣事

为了实现公司的国际化发展战略,Dow-Key Microwave积极开展国际合作与交流。公司与全球知名的电子企业和研究机构建立了紧密的合作关系,共同开展技术研发和市场开拓活动。这些合作不仅提升了公司的技术水平和市场影响力,还为公司的国际化发展提供了有力支持。同时,公司还积极参与国际展览和论坛活动,展示公司的最新技术和产品成果,进一步提升了公司的国际知名度和品牌形象。

FILTRONETICS Inc公司的发展小趣事

进入21世纪后,FILTRONETICS意识到全球化市场的重要性,开始积极开拓国际市场。公司加强了与国际客户的沟通与合作,参加了多个国际电子展会,展示了公司的技术和产品。同时,公司还在海外设立了分支机构,以便更好地服务当地客户。通过不懈的努力,FILTRONETICS成功打入多个国际市场,并赢得了众多国际客户的信赖和支持。

Enterpoint公司的发展小趣事

为了进一步扩大市场份额,Enterpoint公司开始积极拓展国际市场。他们通过参加国际电子展会、建立海外销售网络等方式,不断提升品牌知名度和影响力。同时,公司还积极寻求与国际知名企业的合作机会,通过技术交流和产品合作,不断提升自身的技术实力和产品质量。

问答坊 | AI 解惑

求示波器原理的资料

找了好久,市场上没有一本关于示波器的书,淘宝也搜了。最多有本用示波器修电视机的。哪能找到些好书啊?有电子版的给我发一份好吗?先谢了。hongyijiabox@163.com…

查看全部问答>

发帖发问一个bootloader问题并邀请学习6410,PXA3XX等高级货的同志了!

这几天看了6410的eboot,并对nk.bin以及nk.nb0文件重新了解了一下,发现了很多疑问。 主要是我以前一直用ADS bootloader,现在觉得两者有不可思议的差别。 一、ADS bootloader没有拷贝全局变量到RAM的行为,但是eboot.nb0有——但是这两个格式的 ...…

查看全部问答>

急!!!IIC0改成IIC1!

如题。用的2450的板子,wince5.0的平台。现在用IIC1接我的IC芯片。现在拿到手的IIC驱动是IIC0的,即用的GPE14\\GPE15,我需要将其换成IIC1,即GPB7\\GPB8。我做了如下修改: 1、 WINCE500\\PLATFORM\\SMDK2450\\Src\\Drivers\\IIC\\i2c.c中 //#de ...…

查看全部问答>

菜鸟提问,请指教。关于中断

void int0_init(void) {         if(rEINTPEND == (1…

查看全部问答>

cramfs根文件系统启动问题

我用的优龙YL2410开发板,最近想自己制作一个cramfs跟文件系统,参考网上比较著名的一个文档《Linux系统移植》的根文件系统制作部分自己制作了一个cramfs的文件系统my_rootfs.cramfs,其中busybox使用的是1.1.3。把my_rootfs.cramfs烧写到板子后发 ...…

查看全部问答>

wince5.0 S3c2440官方bsp,带camera驱动

wince5.0 S3c2440官方bsp,带camera驱动: http://www.itxxh.cn/book/2440/zaxsw1565.shtml WINCE5.0系统下,OV9650 CAMERA驱动程序: http://www.itxxh.cn/book/2440/zaxsw1568.shtml…

查看全部问答>

sim卡座无电

我用的sim300模块,连不上线,后来发现模块给sim卡座供电的管脚没有电,这是什么原因?以前的时候一切都正常,最近要用了,却出毛病了。…

查看全部问答>

怎么样的汇编代码才算绝对地址代码,生成obj里的也没有浮动地址。

怎么样的汇编代码才算绝对地址代码,生成obj里的也没有浮动地址。 是不是代码里不要段这个伪操作就可以了?…

查看全部问答>

LM3s8962体验之五……精确的位操作

Bit-banding 又称为:极细微的位处理操作, 精确的位操作,位别名区。 为了减少读-修改-写(RMW)操作的时间,ARM在Cortex-M3处理器中引入了bit-banding技术。在bit-banding使能的处理器中,存储器映射的特定区域(SRAM和外设区)能够使用地址别 ...…

查看全部问答>

论坛的论坛,不是在做电源吗?人呢?

怎么回事,没人参加吗?好萧条啊…

查看全部问答>