分享

外部复位导致MCU内部复位失效

 李清龙1023 2023-11-04 发布于安徽

FPGA的IO用于做外部的MCU的复位功能,导致MCU内部复位失效

问题详细描述

为了方便在板卡板卡复位,我们的硬件工程师在做单板设计时,把MCU的复位IO 连接了到FPGA,可以通过FPGA来复位板卡的MCU。但是测试时发现,如果是单板状态,可以顺利下载固件,但是如果是集成情况下无法正常下载固件,且看门狗复位也受影响。

图片

问题具体分析

出现这个问题后,首先想到的是可能是芯片复位信号受影响了,因为使用调试器通过SWD接口下载固件时需要硬件复位或者软件复位的方式复位MCU。 而这个信号又受FPGA控制(强制拉高),在下载的场景可能会复位失败。

因此查看了STM32 Reference manual RM0008 Page 91 Power Reset 章节,仔细看了内部复位框图后找到了答案。从下图可以看到 STM32 MCU 的NRST 是一个双向接口,在内部复位电路产生复位动作时,会输出一个低电平的信号;如果这个时候FPGA输出的是高电平,则信号会发生冲突

图片

问题解决方案

因为FPGA的IO 无法配置为Open-Drain输出,只能配置为Push-pull推挽输出,导致当需要主动复位时,无法将NRST信号拉低,因此只能把FPGA 复位MCU的功能去掉,即把MCU外部复位控制信号断开(R112电阻 空贴)。

总结和建议

外部IC 连接NRST 信号导致MCU 内部复位信号失效的问题是由于STM32 MCU 的NRST 引脚结构引起的,如果设计使用外部复位的方式,最好使用Open-Drain输出,否则容易出现我遇设计中遇到的问题。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多