凡亿教育-小燕
凡事用心,一起进步
打开APP
公司名片
凡亿专栏 | 外部复位导致MCU内部复位失效
外部复位导致MCU内部复位失效

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


问题详细描述

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

efd8a6e6961feaa3879047e5168b4d.jpg


问题具体分析

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


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

a985d43b9eb82d5f164e88793281c4.jpg


问题解决方案

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


总结和建议

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


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。
相关阅读
进入分区查看更多精彩内容>
精彩评论

暂无评论