发现问题
使用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Ω时
= 文章来源:https://www.toymoban.com/news/detail-786054.html
而根据芯片内部反相器的跨导
,增益裕量满足最小值5倍,晶振起振较为稳定
立创商城:文章来源地址https://www.toymoban.com/news/detail-786054.html
到了这里,关于STM32外部RTC晶振不起振,深刻剖析无源晶振起振原理--以理论指导实践,以实践反馈理论的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!