电子产品开发细节之 MCU未使用I/O端口的处理

本文讨论了在电子产品开发中,针对MCU未使用的I/O端口,应当如何正确处理以降低电流消耗和提升系统可靠性。推荐的方法包括设置为输出并开路,或设置为输入并采用上拉电阻。文中强调了上拉电阻的重要性,防止因电噪声导致端口状态变化产生大电流。同时,建议避免多个未使用端口共用一个上拉电阻,以防止潜在的系统损坏风险。

实际的应用系统中,由于考虑未来的功能扩展或其它原因,经常会有未使用的 I/O。如何处理这些 I/O,关系应用系统的消耗电流甚至系统可靠性。因此,正确处理未使用的 I/O 端口,对于基于MCU的控制系统,是非常必要的。

对于双向的 I/O 端口,通常 MCU 的手册会推荐以下两种处理方法:
方法一:将端口设置为输出,并保持开路( open);
方法二:将端口设置为输入,并通过上拉电阻和电源连接;
在这里插入图片描述
对于方法二,之所以通过上拉电阻和电源连接,其目的是为了将输入端口固定到高电平,以避免管脚悬空时可能在管脚上出现中间电压,从而避免贯通电流的发生。

那么,其中的上拉电阻是否可以省略呢?如果单纯从固定管脚到高电平这个作用看,似乎是可以省略的。但是,从系统的安全可靠性角度,这个上拉电阻是不可以省略的。究其原因,需要从 I/O 端口的内部组成来探讨。I/O 端口内部电路的简化示意图,如下图右侧图所示:
在这里插入图片描述
当端口通过方向寄存器设置为输入时,端口的N管和P管都处于截止状态,通过上拉电阻将端口的管脚固定到高电平。通常情况下,执行初始化程序设定方向寄存器后,方向寄存器中的数据不会改变。但是,如果工作环境种存在强噪声,那么方向寄存器中的数据有可能会被意外地篡改。
如果端口的方向因电噪声从输入变更为输出,而且此时端口数据缓冲器中的数据恰好时0,那么端口的N管导通,电流经上拉电阻和N管流入参考地,如图中蓝色的虚线所示。所以,如果省略了这个上拉电阻,会产生大电流,增加系统功耗,甚至造成端口的损坏。

如果有多个未使用端口,为了节约成本,是否可以如下图所示,共用同一个上拉电阻呢?
在这里插入图片描述
从逻辑功能看,这样的处理可以保证每个端口的高电平。但是,这种处理方法存在潜在的风险。

如前文所述,当工作环境中存在强噪声时,方向寄存器可能会被意外篡改。如果共用上拉电阻的两个端口都被意外篡改为输出端口,并且恰好一个端口的数据缓冲器数据 = 1, 另外一个端口的数据缓冲器数据 = 0,那么会有从一个端口的P管流经另外一个端口N管的大电流产生,可能会造成端口的损坏。

因此,不推荐多个端口共用同一个上拉电阻的处理方法。安全的处理方法是,每个端口通过单独的上拉电阻连接到电源,如下图所示。
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值