STM32
直播中

贾熹

8年用户 1687经验值
私信 关注
[问答]

STM32WL55CC HSEDRY始终为0,无法使用TCXO怎么办?

图纸如下,使能外部TCXO后,设置HSEBYPPWR为1 HESON为1,但始终等不到HSCRDY为1。
示波器测量TCXO输出。0.8Vpp。后按手册在TCXO输出到OSC_IN引脚间串入10pF电容,在OSC_IN端测量幅度为0.4Vpp,但是还是HSEDRY始终不为1。
原理图如下:

设置如下:

回帖(1)

罗星

2025-7-15 17:02:01

根据您的描述和提供的原理图,STM32WL55CC无法检测到外部TCXO(HSE始终未就绪)。以下是系统性的排查和解决方案:




关键问题分析




  1. TCXO信号幅度不足



    • 原始TCXO输出为0.8Vpp → 经10pF电容衰减到0.4Vpp(示波器测量)。

    • STM32WL的HSE输入要求:最小高电平电压 ( V{IH} = 0.7 times V{DD} )(≈2.31V @3.3V),最小峰峰值建议>0.8V。

    • 问题:0.4Vpp信号过弱,无法触发MCU的HSE检测电路。




  2. 偏置电压未建立



    • HSE旁路模式要求OSCIN引脚在直流偏置为 ( V{DD}/2 )(1.65V)下工作。

    • 原理图中未设计外部偏置电阻,依赖MCU内部偏置,但信号过弱时内部电路可能无法稳定建立偏置。




  3. 软件配置隐患



    • 需确保先关闭HSE → 设置旁路模式 → 再开启HSE(配置顺序错误可能导致旁路模式不生效)。






硬件修正方案


1. 移除串联电容(关键改动)



  • 问题:10pF电容导致信号衰减50%,幅度降至0.4Vpp。

  • 解决移除TCXO与OSC_IN之间的10pF电容(C65),改为直接连接:
     - TCXO_OUT → 10pF电容 → OSC_IN
    + TCXO_OUT → 直接连接 → OSC_IN


    • 同时确保TCXO输出是轨到轨(Rail-to-Rail)的方波(多数TCXO支持),避免直流偏置冲突。



2. 增加外部偏置电阻(推荐)




  • 在OSCIN引脚增加对地电阻 **( R{pull-down} = 200 Omega )(或100Ω~1kΩ)**,强制拉低直流偏置:



    • TCXO输出方波时,高电平由TCXO驱动(无需上拉),低电平由下拉电阻增强。

    • 修改后的电路:
      TCXO_OUT → OSC_IN
      OSC_IN → GND (通过200Ω电阻)




  • 原理图修改参考
    Modified Schematic




3. 其他硬件检查



  • TCXO频率:确保为32MHz(非32MHz可能导致不兼容)。

  • 电源稳定:用示波器检查TCXO的VCC(3.3V)无噪声/跌落。

  • PCB布局:TCXO到OSC_IN的走线尽量短(<20mm),避免干扰。




软件配置修正


#include "stm32wlxx_hal.h"

void SystemClock_Config(void) {
  RCC_OscInitTypeDef RCC_OscInitStruct = {0};

  // 1. 关闭HSE(必须)
  CLEAR_BIT(RCC->CR, RCC_CR_HSEON);
  while ((RCC->CR & RCC_CR_HSERDY) != 0); // 等待HSERDY清零

  // 2. 启用旁路模式
  SET_BIT(RCC->CR, RCC_CR_HSEBYP);       // 关键:旁路使能

  // 3. 重新开启HSE
  SET_BIT(RCC->CR, RCC_CR_HSEON);
  while ((RCC->CR & RCC_CR_HSERDY) == 0); // 等待HSERDY置位

  // 4. 配置系统时钟(后续代码)
  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
  RCC_OscInitStruct.HSEState = RCC_HSE_ON;     // HSE已外部使能
  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  HAL_RCC_OscConfig(&RCC_OscInitStruct);
}



调试步骤



  1. 信号测量

    • 移除电容、增加下拉电阻后,用示波器测量OSC_IN引脚:

      • 峰峰值:应为≥0.8V(理想方波)。

      • 直流偏置:波形的中值在1.65V±0.3V内。



  2. 检查HSERDY寄存器

    • 在调试器中查看 RCC->CR 寄存器的 HSERDY 位(第17位)是否变为1。


  3. 逻辑分析仪:若仍不成功,用逻辑分析仪捕捉HSEON开启后的信号变化。




常见错误总结



























问题 解决方法
TCXO信号幅度<0.8Vpp 移除10pF电容,增强驱动能力
缺少直流偏置 增加OSC_IN到GND的200Ω电阻
旁路模式配置顺序错误 确保关闭HSE→设HSEBYP→再开HSE
TCXO未使能 检查TCXO_EN引脚是否为高电平


结果验证:按上述修正后,99%同类问题可解决。若仍异常,重点检查TCXO输出是否稳定及焊接问题。


举报

更多回帖

发帖
×
20
完善资料,
赚取积分