ST意法半导体
直播中

李猛

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

STM32MP135D的TIM2使用ETR作为外部时钟时,无法使用PE15作为输入,是哪里的问题?

主芯片为STM32MP135D,使用最新的STM32CubeMX配置tiM2为外部时钟模式2,管脚选择PE15
实测计数器不会增加,当改用PA15时是正常的;参考最新手册看明显有问题,各位能否帮忙验证一下,是否我的程序问题,还是手册错误?




回帖(1)

胡秋阳

2025-6-17 18:06:19

关于 STM32MP135D 的 TIM2 使用 ETR 作为外部时钟时,PE15 无法工作而 PA15 可以的问题,经过分析,问题最可能出现在芯片的引脚复用功能分配上,即 PE15 在某些封装或特定条件下并不支持 TIM2_ETR 功能。 以下是详细排查步骤和原因分析:




?️ 可能原因及排查步骤




  1. 检查数据手册中的复用功能映射表:



    • 查阅 STM32MP135D 数据手册 (Datasheet)Pinouts and pin description 章节(需要与你的确切封装匹配,如 TFPMFP10、TFPMFP15 等)。

    • 仔细查找 PE15 这一行,在 Alternate functions 列中,确认是否列出了 TIM2_ETR 作为其复用功能之一。

    • 关键点: STM32CubeMX 的引脚下拉列表有时会显示不支持的选项(这可能是CubeMX的BUG或未及时更新针对特定型号的限制)。手册才是最终依据。

    • 预计结论: 你很可能在数据手册中发现 PE15 没有列出 TIM2_ETR 作为复用功能,或者该功能被标为“仅限特定封装/特定条件下可用”(但这种情况下CubeMX通常不显示选项)。而 PA15 在手册中明确支持 TIM2_ETR。?




  2. 确认 STM32CubeMX 配置:



    • 打开你的 CubeMX 工程。

    • Pinout & Configuration 视图下,点击 PE15 引脚。

    • 在右侧 Configuration 面板中,查看 Alternate function 下拉菜单。虽然你选择了 TIM2_ETR,但需要确认 CubeMX 在你选择的这个 具体的 STM32MP135D 封装型号 下,实际允许给 PE15 分配该功能。不同封装的引脚功能支持是不同的。

    • 可以在 Timers > TIM2 的配置中,点击 ETR 引脚选择器旁边的放大镜图标 ?,它会自动过滤并高亮当前有效可用的引脚。看 PE15 是否在其中被高亮(可用)或灰显(不可用)。




  3. 检查生成的代码 (验证复用功能号):



    • 即使 CubeMX 显示了 TIM2_ETR 选项,也需要检查它生成的实际复用功能号(AF)是否正确。

    • 在生成的代码中(如 HAL_GPIO_Init() 函数调用附近),查找对 PE15 的配置。确认代码设置了引脚为 AF 模式,并且 AF 号对应的是 TIM2_ETR(通常是 GPIO_AFx_TIM2)。

    • 关键比较: 比较 PE15 和正常工作的 PA15 的初始化代码部分,看复用功能号 GPIO_AFx 是否一样。如果 PE15 的 AF 号与 PA15 的不同或明显错误,说明 CubeMX 分配错了(可能性较小)。如果 AF 号正确但 PE15 就是不工作,且 CubeMX 显示可用,那可能涉及勘误或硬件问题(但概率低于复用功能不支持)。




  4. 检查 GPIOE 时钟:



    • 确保 GPIOE 端口时钟已使能。CubeMX 通常会处理好这一点,但在手动添加/修改代码时可能遗漏。在调试器或代码中检查 RCC->MP_AHB1ENSETR 寄存器是否设置了 RCC_MP_AHB1ENSETR_GPIOEEN 位。__HAL_RCC_GPIOE_CLK_ENABLE(); 函数调用是否存在。




  5. 检查信号质量与硬件连接:



    • 使用示波器或逻辑分析仪测量实际输入到 PE15 的信号:

      • 频率是否在 TIM2 支持的 ETR 输入范围内?(查看参考手册)

      • 信号幅度(高电平要 > V_{IH},低电平 < V_{IL},手册中有规定)?

      • 边沿是否干净?有没有毛刺?

      • 确保信号源能力足够驱动芯片输入(必要时加上拉)。


    • 检查 PCB 上 PE15 的走线是否连通?焊接是否可靠?是否与其他线路短路?




  6. 查看 STM32MP135D 勘误手册:



    • 前往 ST官网,下载 STM32MP135D 的勘误手册 (Device Errata Sheet - ES0649)

    • 搜索涉及 TIM2, ETR, GPIOE, 或 PE15 的勘误项。

    • 关键点: 可能(虽然不常见)存在特定硅片版本上,TIM2 ETR 在除默认 PA0/PA15 之外的特定引脚上无法工作的勘误。






? 最可能的原因与结论



  • 极大概率原因: 你所使用的 STM32MP135D 的具体封装不支持将 TIM2_ETR 功能分配到 PE15 引脚。 数据手册中的复用功能映射表是权威依据。即使 CubeMX 在某些视图下显示了该选项(这可能是个需要报告的CubeMX小BUG或UI不严谨之处),硬件层面可能并不支持。你观察到 PA15 工作正常完美地佐证了 TIM2 ETR 本身的功能是完好的。

  • 其他较小可能性:

    • GPIOE 时钟未被使能(但CubeMX生成的代码通常不会遗漏)。

    • 硬件问题(PE15 引脚损坏、虚焊、信号质量问题)。

    • 非常罕见的硅片勘误(需查证)。

    • STM32CubeMX 在生成 PE15 的复用功能代码时出错(实际AF号配错)。



建议操作顺序:



  1. 立即核对数据手册中 PE15 的复用功能列表(最重要一步!)。

  2. 在 CubeMX 中用放大镜功能确认 TIM2_ETR 实际可用引脚。

  3. 检查生成的 GPIO 初始化代码中 PE15 的复用 AF 号是否正确。

  4. 检查硬件连接和信号质量。

  5. 最后查阅勘误手册。


如果你在数据手册中确认 PE15 确实 不支持 TIM2_ETR,那么问题就找到了 ? 该封装下 PE15 没有这个功能。请改用手册和 CubeMX 明确支持的引脚(如 PA15、PA0 或该封装支持的其他可选引脚)。这是一个典型的芯片引脚功能约束问题,CubeMX 的界面有时会模糊这种约束,但手册始终是金标准。希望这个分析能帮你彻底解决问题!

举报

更多回帖

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