• 资料介绍
    • 问题描述
    • 问题确认
    • 问题分析
    • 问题解决
    • 小结
  • 资料预览
  • 相关推荐
申请入驻 产业图谱

LAT1252 关于STM32WL LSE添加反馈电阻后无法起振问题

03/25 14:36
212
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

LAT1252 关于STM32WL LSE添加反馈电阻后无法起振问题

606.20 KB

问题描述

客户调试 STM32WLE5JB 样机的时候遇到这样一个问题:在调试 LPUART,不打开外部时钟的时候,能够正常打印,若开启外部的 HSE 和 LSE 后就没有打印。

问题确认

发现上述问题时,客户使用 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.

问题分析

由于前面都是用客户的电脑和程序调试,客户的电脑上的 Keil 版本不能单步调试。针对客户的问题,基于 STM32WL AT slave 例程,运行在客户样机上发现现象一致,也是卡死在 HAL_RCC_OscConfig 。但使用单步调试进入 HAL_RCC_OscCongig 里面发现,卡死具体的原因不是 HSE,而是 LSE 初始化出了问题,一直在等待 LES ready 的信号。

问题解决

针对 LSE 无法起振问题,尝试了上面针对硬件软件多种方法后依然没有解决。后来仔细检查客户原理图发现,客户在 32.768KHZ 晶振上添加了 1M 的反馈电阻。

小结

本篇笔记分析了客户使用外部时钟调试 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 晶振。

资料预览

点赞
收藏
评论
分享
加入交流群
举报

相关推荐

方案定制

去合作
方案开发定制化,2000+方案商即时响应!