1. 问题描述
客户调试stm32wle5jb 样机的时候遇到这样一个问题:在调试lpuart,不打开外部时钟的时候,能够正常打印,若开启外部的hse 和lse 后就没有打印。
2. 问题确认
发现上述问题时,客户使用stm32cubemx 生成的工程,所以首先建议客户检查lpuart 的时钟配置有没问题,并且让客户尝试使用stm32cube_fw_wl_v1.2.0projectsnucleowl55jcexamplesuartlpuart_wakeupfromstop 例程对比验证。后来客户发现是开启外部时钟hse 和lse 后,程序直接卡死在hal_rcc_oscconfig ,测量不到hse 的32mhz 信号。而客户的程序移植到st 官方的stm32wl nucleo 板上可以正常运行。通过前面的验证很容易怀疑是不是客户样机外部hse 32mhz 的晶振没有起振。拿到客户的样机后,尝试更换32mhz 晶振,调整晶振负载电容和使用tcxo,发现都没办法测量到32mhz 信号,客户程序依旧卡死在hal_rcc_oscconfig.
3. 问题分析
由于前面都是用客户的电脑和程序调试,客户的电脑上的keil 版本不能单步调试。针对客户的问题,基于stm32wl at slave 例程,运行在客户样机上发现现象一致,也是卡死在hal_rcc_oscconfig 。但使用单步调试进入hal_rcc_osccongig 里面发现,卡死具体的原因不是hse,而是lse 初始化出了问题,一直在等待les ready 的信号。具体代码如下:
针对上面的分析,把rtc时钟源更改为hse_rtc,如下图一,图二, at slave例程可以正常运行,32mhz晶振可以起振,使用at指令可以测量出rf有正常发射出信号。
图一
图二
同时,对于客户需要使用lpuart,可以按照图三的时钟配置验证:
图三
客户用他们手上样机同步验证,发现结果一致。确实不使用lse后,样机可以正常工作,32mhz晶振也可以正常起振。下一步就要分析导致lse无法正常工作的原因。客户有按建议尝试更换32.768khz的晶振以及负载。并且调整lsedrive为high 即__hal_rcc_lsedrive_config(rcc_lsedrive_high),发现依然无法正常使用lse。
4.问题解决
针对lse无法起振问题,尝试了上面针对硬件和软件多种方法后依然没有解决。后来仔细检查客户原理图发现,客户在32.768khz晶振上添加了1m的反馈电阻,如图四r34
图四
而在stm32wl 规格书 ds13105 multiprotocol lpwan 32-bit arm cortex-m4 mcus, lora, (g)fsk, (g)msk, bpsk, up to 256kb flash, 64kb sram (version 8)中明确表示禁止在32.768khz 晶振的osc32_in 和osc32_out引脚中间添加反馈电阻。如下图五:
图五
后面按规格书要求,去掉客户样机上的r34 1m电阻,32.768khz 晶振就可以正常起振,程序不会再卡死在lse初始化。问题得到解决。
另外,根据an2867 关于stm32mcu晶振的参考设计要求,从客户晶振规格书查到下面参数:
esr=90k 欧姆
cl = 12.5pf
c0 = 1.3pf
计算得到跨导:gmcrit=2.9032ua/v
可以看到跨导大于stm32wle5jbi6规格书中lse最大驱动能力2.7ua/v,如图六示:显然增益裕量不符合起振条件即gainmargin>5
图六
所以最后也建议客户后续更换符合stm32wl规格书要求的32.768khz 晶振。具体晶振选型可以参考an2867。
5.小结
本篇笔记分析了客户使用外部时钟调试stm32wl lpuart无法正常工作的问题。最后分析出问题是由lse的32.768khz晶振没有正常起振引起。而32.768khz晶振无法正常起振则是因为客户在32.768khz晶振上添加了1m的反馈电阻。虽然在an2867里有对stm32晶振使用反馈电阻的建议,但需要注意的是针对stm32wl这颗芯片,其规格书中有明确要求禁止在32.768khz 晶振的osc32_in 和osc32_out引脚中间添加反馈电阻。后面将客户样机上的1m的反馈电阻去掉后,样机的32.768khz 晶振可以正常起振,程序运行正常。虽然最后客户样机使用晶振可以正常起振,但根据an2867,客户晶振的增益裕量是不符合起振条件的。所以为了避免后续产品量产时出现低速晶振无法起振问题,建议客户参考an2867选择合适的32.768khz 晶振。
来源:stm32单片机
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理
英特尔助力安防,打造智能安防
PLC控制系统的故障诊断及处理方法
各种高压电机的区别,特点
便携式DVD液晶屏尺寸
Moley机器人厨房继首亮六年后终上线
关于STM32WL LSE 添加反馈电阻后无法起振问题
如何利用IAR单片机编程软件建立烧录程序
基于IGBT器件的三相逆变器驱动电路的设计与分析
AI芯片及平台你了解多少
学习模拟电子技术的6本“宝典”推荐
LSI:加快半导体创新,为存储和网络提速
低价32位MCU大军压境,8位ASIC MCU看涨
厦华电子宣布拟16亿元收购福光股份 进军光学元组件领域
烟雾报警器的芯片方案开发分享
汉思化学芯片底部填充胶定制服务,助力国产蓝牙耳机厂商创新研发
热烈欢迎泉州丰泽青商会一行到访睿泽参观交流
国内NFC支付用户渗透率低 苹果伺机进入
直流电路与交流电路的区别和特点
伺服驱动器的常见故障和处理方法
如何推动5G技术与能源互联网行业的融合发展