0

我遇到了 stm32f103c8 的意外问题。我正在对芯片进行编程,复位后,它开始运行程序,但几秒钟后,微控制器变得混乱并停止运行程序。之后,当我尝试重新编程微控制器时,IDE(IAR EWARM)告诉“目标保持在复位状态”。
这是一个非常不寻常的问题,因为有时当我将 nRST 引脚直接连接到 VCC(3.3V)时,微控制器运行程序但不幸的是电流超过 120mA,芯片最终崩溃。
我正在使用 STM32CubeMX 生成代码,我的程序员是 STLINK V2(克隆),也尝试过 Jlink V8.0(克隆)但没有改变结果。
难道是因为克隆程序员?

谁能帮我解决这个问题?

谢谢

4

1 回答 1

1

切勿将 nRST 直接连接到 VDD/VCC。这是一个双向输入输出,只能连接到开漏/开集信号。它可以从外部或内部拉低,除内部上拉电阻外,绝不能拉高或驱动高。

当您的调试器或程序员完成对闪存的编程并想要开始运行新程序时,它需要能够将该线拉低,如果您在硬件中将此线连接到它可能会在外部执行此操作,否则它必须能够使用内部复位脉冲发生器通过软件将其拉低。如果它这样做并且您在外部将线路连接到高电平,那么您实际上是在短路您的电源,这是您观察到的过电流情况的原因。

也许最初的问题是您的假冒 ST-Link 将其复位输出配置为推挽式,而它应该是开漏的。

我建议最简单的方法是让 nRST 线不连接,并将您的编程工具配置为仅使用软件复位。

于 2021-04-15T15:08:18.530 回答