问题详细剖析
涌现这个问题后,首先想到的是可能是芯片复位旗子暗记受影响了,由于利用调试器通过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输出,否则随意马虎涌现我遇设计中碰着的问题。








