ST意法半导体
直播中

vinww特烦恼

8年用户 1088经验值
擅长:存储技术
私信 关注
[问答]

STM32G0使用从未闪烁过的MCU为电路板供电时,蜂鸣器始终打开的原因是为什么?

你好。
我有一个电路,主要包含:(i) MCU 引脚 PA2 连接到 ULN2003 晶体管阵列输入和 10k 下拉电阻,以及 (ii) ULN2003 的相应输出连接到小型蜂鸣器 GND。理论上,该电路应该在 MCU 引脚浮动时将晶体管输入保持在逻辑零,从而防止蜂鸣器在不需要时打开。
我注意到以下几点:
  • 当使用从未闪烁过的 MCU 为电路板供电时,我的蜂鸣器始终打开。当我检查 MCU 引脚 PA2 时,我读到 3.3V。这个3.3V虽然有10K的下拉电阻,但还是会出现,所以我们可以确定此时的PA2管脚必须配置为输出,逻辑置1。
  • 如果我刷新一个什么也不做的程序(在主入口点之后的简单无限“for”循环),然后进行电源循环,蜂鸣器不再打开,MCU 引脚现在读数为 0。
  • 如果我擦除整个 MCU 并再次进行电源循环,则蜂鸣器会打开。
该 MCU(STM32G0)的数据表指示“默认情况下,所有 GPIO 都配置为模拟输入”。
所以有些奇怪,因为出厂时的默认状态和批量擦除后的默认状态似乎至少有几个引脚输出(当使用 500 欧姆负载时,我可以从这些引脚吸收 6mA 到 gnd),所以它们是不浮动)。
我还发现其他具有相同行为的引脚,例如 PB10 和 PB11 上的 SCL 和 SDA。这些引脚仅连接到接头,因此启动时在这些引脚上发现的 3.3V 不能来自引脚本身以外的任何地方。
任何线索可能会发生什么?









更多回帖

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