历史上的今天
返回首页

历史上的今天

今天是:2025年02月25日(星期二)

正在发生

2020年02月25日 | STM32F7系列时钟相关问题一:HSE模式配置

2020-02-25 来源:eefocus

老实说,用过很多的芯片,但是都没有太仔细的研究过芯片的细节,只要做的工作还是停留在调用函数的层面,但是要想更深入的学习一款芯片不了解细节是不行的。于是,我就拿阿波罗来班门弄斧了。粗略看了阿波罗的时钟体系,做一些笔记,记录下来(如果说的有错误,希望大家积极指正,我将不胜感激):从时钟源的角度,分为两类外部时钟(E)和内部时钟(I)。


从时钟速率的角度,分为两类高速时钟(HS)和低速时钟(LS)。


而把它们组合起来就有四种时钟:HSE、HIS、LSE、LSI。至于为什么会有这么复杂的时钟配置,主要是考虑到系统的性能和功耗两个方面的因素吧。单一时钟的话可能会导致性能过剩并且功耗过高。多个时钟的话可以平衡功耗和性能之间的平衡。


特此说明一下,系统复位后,默认初始化的是HIS时钟提供sysclock。也就是16MHZ。为了提示系统性能,我们需要使能外部时钟晶振(板载25MHz)。使能后也明显可以看出来芯片的温度升高了(使用内部的温度传感器测试,在后续有图片为证)。


这四类时钟在芯片内部通过配置,完成对各个外设的驱动。到了芯片内部,对应到那么多的外设,时钟的分类就更多了,但是主要考虑到桥的存在,分为五类:AHB3、AHB2、AHB1、APB2、APB1。芯片内的所有外设都分别挂载在这五个总线上,至于哪个外设挂歪在哪个总线上,我们就需要查看芯片的RM0410 Reference manual(Page74)了。


今天为了测试时钟的配置,我就用通用定时器TIM2做下示范操作:

首先查看TIM2挂载在哪条总线:

可知挂载在APB1总线上。


接着就可以查看TIM的时钟回路

不论STM8还是STM32系列的MCU,芯片复位后默认时钟源都是内部HSI,要使用外部时钟源HSE的话,得通过软件对相关控制寄存器进行使能配置才行。

如果使用外部HSE的话,一般有两种模式:

1、外部晶体/陶瓷谐振器(HSE晶体)模式


    这种模式用得比较常见,HSE晶体可以为系统提供较为精确的时钟源。在时钟控制寄存器RCC_CR中的HSERDY位用来指示高速外部振荡器是否稳定。在启动时,直到这一位被硬件置’1’,时钟才被释放出来。HSE晶体可以通过设置时钟控制寄存器里RCC_CR中的HSEON位被启动和关闭。


    该时钟源是由外部无源晶体与MCU内部时钟驱动电路共同配合形成,有一定的启动时间,精度较高。为了减少时钟输出的失真和缩短启动稳定时间,晶体/陶瓷谐振器和负载电容必须尽可能地靠近振荡器引脚。负载电容值必须根据所选择的晶体来具体调整。手册里明确地写明了这句,很多时候似乎被无视了。关于这点,ST官方有专门出了个应用笔记,编号为AN2867。可以去www.stmcu.com.cn 或者www.st.com 搜索下载。


    整体上讲,陶瓷晶体和石英晶体的主要区别就在于精度和温度稳定性上。石英晶体比陶瓷晶体精度要高,温度稳定性要好。


2、外部时钟源(HSE旁路)模式


    该模式下必须提供外部时钟。用户通过设置时钟控制寄存器中的HSEBYP和HSEON位来选择这一模式。外部时钟信号(50%占空比的方波、正弦波或三角波)必须连到SOC_IN引脚,此时OSC_OUT引脚对外呈高阻态。


    所谓HSE旁路模式,是指无需上面提到的使用外部晶体时所需的芯片内部时钟驱动组件,直接从外界导入时钟信号。犹如芯片内部的驱动组件被旁路了。


    不过,在使用该模式时,经常有人出现配置错误,即使用跟HSE晶体模式一样的配置。这点在STM8/STM32应用中都有人发生。 所幸的是使用这个旁路模式的情形不像使用外部晶体模式那么多,不然可能更多人在这里遇到麻烦。


    我们不妨以STM3F4系列芯片为例。


    关于寄存器位上面已经提到了,旁路模式除了配置HSEON还得配置HSEBYP位。


    对于标准库函数voidRCC_HSEConfig(uint32_t RCC_HSE)


    或CUBE库函数__HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState)里的相关参数可能是:RCC_HSE_ON、 RCC_HSE_Bypass或RCC_HSE_OFF的其中之一。


    如果使用STM32CUBEMX图形配置界面的话可以看到3个选项:

    在ST MCU应用开发中,常有人会用到有源晶振作为时钟源。如果用它该选择哪种工作模式呢?

    有源晶振一般是四脚封装,电源、地线、振荡输出和一个控制端【或者悬空端】。相比无源晶体,有源晶振本身就是个完整的振荡器件,只需要供给适当的电源就能输出时钟,无须额外的振荡驱动匹配电路。其时钟输出不依赖于外部器件振荡电路,相对更不容易受外部线路不稳定性的影响。自然其价格往往要高于无源晶体,不过其输出电平幅度往往不能像无源晶体那样随着应用电路的变化而变化。


    不难看出,如果使用有源晶振作为外部时钟源的话,我们应该配置为HSE旁路模式,而不是HSE晶体模式。将有源晶振的输出脚接到MCU的OSC_IN脚。

推荐阅读

史海拾趣

DUBILIER公司的发展小趣事

随着技术的不断进步和市场的不断变化,DUBILIER公司意识到必须不断拓展市场以保持竞争力。因此,公司决定采取多元化的市场战略,进入多个不同的细分市场。通过与行业合作伙伴建立紧密的合作关系,DUBILIER公司成功地将其产品推广到了更广泛的领域。同时,公司还积极开拓国际市场,将产品出口到世界各地。这些努力不仅为公司带来了更多的商业机会,还进一步巩固了其在全球电子行业的地位。

Avel Lindberg公司的发展小趣事

DUBILIER公司非常重视人才的培养和发展。公司建立了完善的人才培训体系,为员工提供各种培训和发展机会。通过内部培训和外部引进相结合的方式,DUBILIER公司培养了一支高素质、专业化的技术和管理团队。这些人才不仅为公司的发展提供了强大的支持,还为公司赢得了更多的商业机会和合作伙伴。

Accelink Technologies Co Ltd公司的发展小趣事

作为一家领先的电子企业,DUBILIER公司深知其对社会和环境的影响。因此,公司积极履行社会责任,致力于推动可持续发展。公司采取了一系列环保措施,减少生产过程中的废弃物和污染物排放。同时,DUBILIER公司还积极参与公益事业,为社会做出积极贡献。这些努力不仅提升了公司的社会形象,还为公司赢得了更多的尊重和信任。

ATO SOLUTION公司的发展小趣事

在电子行业中,产品质量是企业生存和发展的关键。ATO SOLUTION公司始终坚持以质量为核心,建立了严格的质量管理体系。公司从原材料采购到产品生产的每一个环节都进行严格把控,确保产品质量的稳定性和可靠性。这种对品质的执着追求,使公司赢得了客户的信任和口碑,为公司的长期发展奠定了坚实基础。

Big-Sun Electronics Co Ltd公司的发展小趣事

面对电子行业的快速变化和市场竞争的加剧,Big-Sun Electronics Co Ltd公司积极实施多元化战略。公司不仅继续深耕电子芯片领域,还逐步拓展至智能家居、物联网等新兴领域。通过产业转型和升级,Big-Sun成功实现了业务的多元化发展,为公司的可持续发展奠定了坚实基础。

Harbour Industries公司的发展小趣事

背景:进入21世纪后,电子行业进入了快速整合阶段,大型企业纷纷通过并购来扩大规模、增强实力。Handok也加入了这一行列,制定了积极的并购扩张战略。

发展:Handok通过精准的市场分析和战略评估,成功并购了几家在电子元器件和电子设备领域具有领先技术的中小企业。这些并购不仅为Handok带来了先进的技术和人才储备,还极大地拓宽了公司的产品线和服务范围。

影响:并购后的Handok实现了从单一产品向多元化产品线的转型,市场竞争力显著提升,为公司的长远发展奠定了坚实的基础。

问答坊 | AI 解惑

有谁有鉴相器的资料?有卖的不?

正弦波信号射频频率范围4-30MHZ,输入信号VPP…

查看全部问答>

[资料] 背光及照明用LED驱动IC技术

[资料] 背光及照明用LED驱动IC技术…

查看全部问答>

eboot 启动问题。

我用的是nboot+eboot启动,下面是输信息。请高手指点一下。 \\par Mini(4k) NandBoot V2.0. [2007-09-28] \\par \\par \\par NAND Boot Start \\par NAND Boot End \\par Boot time=nTCNT*82uS. nTCNT=0x052f. \\par I/O Strength Max \ ...…

查看全部问答>

高手帮忙,在CE上的Bluetooth问题

在CE上Bluetooth设置PIN问题 我用的SDK是STANDARDSDK_500,可是这SDK里没有Btdrt.lib,因此找了个Btdrt.lib 但是在使用BthGetPINRequest()、BthSetPIN()函数还是不能用 可能是手动加入的Btdrt.lib关连到其它的LIB,这要如何解决? 或者谁做的,你 ...…

查看全部问答>

wince6.0 是否支持SHLoadImageResource?

请各位帮帮忙看看! 我在windows moible 5.0 上使用SHLoadImageResource是可以的 而在wince6.0上 却找不到SHLoadImageResource 是不是wince6.0 不支持 SHLoadImageResource? …

查看全部问答>

转让一些板子(已结束)

1.    ok6410 买来2.3个月,具体我也不知道了。装了android系统后当时间看看。没真正开发过。720元。 2.    lm3s8962 申请来的。芯片太贵,放弃学习。248元。加钱换cc2530板子最好,我有无限龙3700元那个套件的光盘 ...…

查看全部问答>

关于自加,自减,和标准输出

#include <stdio.h> void main() {   int x=3,y;     y=––x+––x+x++;     printf(\"x=%d   y=%d\\n\",x,y);  } x=2,y=3     不懂 ??????? &n ...…

查看全部问答>

有关IAP使用HEX或BIN文件格式的探讨

BIN优点,下载时二进制传输效率高,一个起始地址和长度(均可事先知道)搞定.因起始地址和长度在 下载一开始就可以知道,所以只需要擦除实际代码大小的FLASH,避免大FLASH空间小代码时擦除FLASH的时间和FLASH损耗. 缺点:当代码分段在不同地址时,如 ...…

查看全部问答>

STM8S105PA1脚不能设置为上拉输入

STM8S105  PA1脚不能设置为上拉输入,是什么原因?? PA2脚都可以设置为上拉输入;…

查看全部问答>

智能家居的技术

用zigbee技术做智能家居已经快六年了, 而且也用了zigbee技术作了些抄表系统。 最近突然有个想法,就是利用PLC(power line communication 电线载波通信)来做智能家居, 这几天也挺认真的研究了下PLC技术,两者其实各有千秋, 各位有什么好的建议 ...…

查看全部问答>