你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【ST MCU实战经验】如何用LSE 校准STM32F4 内部RC 振荡器

[复制链接]
苏柚 发布时间:2016-1-8 14:57
问题:
此问题由客户提出,客户在使用STM32F411 开发产品的时候,采用的是HIS 作为主时钟,同时使用了
UART 与其他MCU 进行异步通信.
客户发现部分产品UART 不能正常通信.
调研:
1. 通过使用示波器来测量UART 的TX 的波特率,发现误差较大,查看原理图和代码发现他们使用
HIS 作为主时钟,且没有使用PLL 来倍频.
2. 由于UART 直接用HIS 作为时钟源,所以考虑通过使用LSE 校准STM32F411 的HIS 值来使得
UART 波特率准确.
3. 我们STM32 官方提供了基于STM32F0 的HIS 校准方法AN4067(基于STM32Cube).其基本原理如
下写的很清楚:
4. 所以我们将其移植到STM32F4 上:
a. 替换STM32F0HAL 为STM32F4HAL
b. 修改工程器件相关的配置.
c. 去掉与STM32F4 HIS 校准无关的文件,只保留his.c/h
d. 修改main.c 的主程序,初始化校准前频率测试校准后频率测试.
HSIFrequencyBeforeCalib 为校准前的频率值,可以在IAR 的Watch 窗口查看.
 HSIFrequencyAfterCalib 为校准后的频率值,可以在IAR 的Watch 窗口查看.
e. 定义使用USE_REFERENCE_LSE 和__HSI2LSECALIBRATE_TEST__,使能使用
LSE 校准HIS 功能函数.
结论:
1. STM32 MCU 内部高速时钟是可以通过外部提供的精确时钟源进行校准的.
2. 我们提供一篇应用笔记和参考代码给客户演示如何校准HIS,基于STM32Cube 的良好的可
移植行,很方便的从STM32F0 移植到其他STM32 产品上面.
3. 如果客户在使用异步通信且没有使用PLL 作为时钟源,建议在系统启动的时候增加校准代
码来增强系统的容错能力.

详细代码和解答请下载文档:https://www.stmcu.org.cn/document/detail/index/id-216750
更多实战经验文档:https://www.stmcu.org.cn/document/list/index/category-657


收藏 评论0 发布时间:2016-1-8 14:57

举报

0个回答

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

相似分享

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版