STM32外部RTC晶振起振原理剖析及实践指导

发现问题

使用cubemx配置RTC时钟为外部LSE时钟源之后,运行代码发现代码卡在LSE时钟初始化上。
当外接两个22pf匹配电容时晶振无法正常起振,当去除匹配电容之后正常工作,使用示波器抓取信号发现信号不稳定。

查找资料

于是开始查找资料,查找到ST官方关于晶振振荡器的相关文档链接:

英文原稿:https://pan.baidu.com/s/1KhNFi93t99395QASgge4ag?pwd=pp5a
中文翻译:https://pan.baidu.com/s/1jIr-eTTLYVBKxnm01DfITg?pwd=fd84

翻阅《ST微控制器振荡器指南.pdf》文档,后查阅有振荡器的增益裕量
请添加图片描述

皮尔斯振荡器

发现晶振起振与振荡器的增益裕量有关,而增益裕量与晶振频率、负载电容(CL 厂家给的晶振的参数)、匹配电容(C0 晶振两端接的电容值)、晶振的等效串联电阻(ESR)和振荡器的反向器的跨导有关。

解决问题过程

查阅使用的晶振参数

请添加图片描述

由于我使用的是H750的芯片
查阅H7芯片内部反相器的跨导
请添加图片描述

表中的Drive level为stm32内部的驱动能力,对应HAL库为

__HAL_RCC_LSEDRIVE_CONFIG(RCC_LSEDRIVE_HIGH);

更高的驱动等级对应更强的起振能力

增益裕量计算公式:
请添加图片描述


可以开始计算我所选择的晶振是否满足H750的驱动条件:

当外接匹配电容值为20求得:
请添加图片描述
=请添加图片描述
计算得当外接20pf匹配电容时,远大于H7芯片内部反相器的跨导中的跨导值,从而不满足晶振起振条件,无法起振。


当外接匹配电容值为0求得:
请添加图片描述请添加图片描述
发现增益裕量小于low驱动等级的2.5,晶振可以起振,但是不满足可靠起振条件的5倍,与示波器抓取晶振信号波形不稳定的现象一致。


解决方法

而根据公式计算,当晶振负载电容为6pf,ESR为35KΩ时
请添加图片描述
= 请添加图片描述

而根据芯片内部反相器的跨导,增益裕量满足最小值5倍,晶振起振较为稳定
立创商城:请添加图片描述

物联沃分享整理
物联沃-IOTWORD物联网 » STM32外部RTC晶振起振原理剖析及实践指导

发表评论