STM32CubeMX Crystal/Ceramic Resontor

前言

最近在验证去年画好的一套板子,因为是验证,大概齐看看有没有问题。
采用STM32CubeMX生成的HAL库工程框架来测试。各种例子CubeMX包里面都有。

发现一个奇怪的问题,外部时钟时钟初始化很少能通过。导致只能使用HSI+LSI来编程。

当时没在意,就是以为元件问题(晶振和起振电容货不好,精度不合规,或者我焊工太差)。

这几天又做了一块BMS板子,又发现外部时钟初始化过不了。
上网一查,好像很多同学都说有问题。工作计划里面,我都考虑使用外部有源晶振来提供时钟了。

看了一眼ST官方的晶振设计文档(en.CD00221665.pdf AN2867),讲究蛮多的。但是只要元件(晶振+2个起振电容)质量是正品,值不错,精度够,布线讲究,还不能起振,那还真不知所措。

在这里插入图片描述
在这里插入图片描述
晶振这块的布线,已经很注意了。虽然没有ST官方晶振指南布线那么讲究,也说的过去。见过很多布线不讲究的板子,人家板子也跑的好好的。

用CubeMX生成测试程序后,点了一个LED灯,就这么简单的程序。
发现在时钟初始化时,老是过不去,HAL_RCC_OscConfig()会失败。
因为是打样板子,没有做钢网过炉子。自己借助显微镜来手工焊接。是自己手笨将晶振焊接坏了?
x2是OSC 3215-2P,起振电容为10pf
x1是OSC 5032-2P,起振电容为20pf
连续换了4轮晶振元件(x1,x2, c6,c7,c35,c36),焊接上,用CubeMX生成的测试工程测试,都过不了时钟初始化HAL_RCC_OscConfig()那里。

以为是自己焊接功力不行,联系好同事(他专职焊工,有10+年经验)让他搞,然后我再测试。

正好他去现场了,我继续找资料。
当看到 https://blog.csdn.net/u012564117/article/details/93969372时,有点被电到的感觉。

马上回头去看CubeMX向导。
在这里插入图片描述
晶振选择为3种:
Disable 这个是不用外部晶振
Crystal/Ceramic Resontor 这个是用无源外部晶振
BYPASS Clock Source 这个是有源外部晶振

这段时间我用CubeMX生成测试工程,晶振这块选的都是 “BYPASS Clock Source”。这事弄的,真丑陋。。。

正好实验板已经带来了(准备让同事帮焊接晶振),马上接上12V电池包,开始试验。好使!时钟初始化过了,LED灯亮灭都好使…

一个人玩确实不好,好多问题自己一个人想,都想偏了,犯一些低级错误。

我们以前工程都是固件库编程,有些手头的实验板都是寄存器编程。没有HAL库的积累。赶上验证板子时,都没有一个靠谱的测试程序。都是眼泪。

回想起焊接晶振那块,因为有显微镜加持,焊接质量不敢说太好,还过的去吧,焊接时间也就几秒,也不会轻易将元件烧毁。还是要相信自己。哪有问题找哪里。

不过自己长时间搞不定的事情,还是要怀疑一下自己,去借鉴下网上其他同学的经验。

以前产品也出过一些,从来没发现STM32的MCU晶振不起振。可能还是出货量不到那个级别吧。

看网上其他同学,在出货量巨大时,还是会发现用无源晶振会有概率不起振。有的同学说,已经参照了ST官方的晶振设计手册,还是会不起振。

下次,如果再弄板子,而且价格不敏感,准备上4脚的贴片有源晶振了。
8MHZ和32.768KHZ的价格,在力创上看了,大概3~4元一只。那一个MCU成本就加10元(主/副晶振),像我这套板子,用了6个MCU. 成本就加60元。

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值