我想知道,既然微控制器可以在每个引脚上吸收 20 mA 的电流,如果我可以通过软件将 4 个引脚端口设为低电平,并且只需将负载的正极连接到 Vcc,这是驱动更大负载的可靠方法吗?唯一需要担心和祈祷的是机器周期足够快以处理同时设置所有引脚的波动吗?我在正确的轨道上吗?
使用没有任何驱动电路的微控制器吸收 80 mA 电流?
如果不购买“模块”是您的问题,请考虑在晶体管上花费 6 美分(或更少),该晶体管会很高兴地吸收 200 或 500 mA 并且只占用一个引脚用于其基本控制输入。我认为 6 美分是我为最后一批 100 个 2N3904/6 和 2N4401/2 支付的价格。购买低于此数量没有多大意义,但如果您喜欢一次支付 4 倍的价格,请成为我的客人。
这些与最先进的零件相距甚远,但它们可以很好地完成特定类型的工作,而且成本相当低。
它应该工作得很好,但你需要记住一些事情。
- 最大 VCC 或最大 GND 电流。微控制器可以通过其 VCC 或 GND 引脚支持最大电流。
- 最大端口电流。单个端口也具有最大电流。
- 引脚 ESR。GPIO 输出将根据通过它的电流量而产生电压下降(或上升)。通常,建议的通过引脚的最大电流是针对与 VCC 或 GND 相比的给定输出电压。
例如:MSP430G2xxx 系列电压输出低电平将从 Gnd 上升 1 伏特,约为 30mA。
如果您的负载在这些规格范围内,您的 80mA 负载示例应该适用于 ATMega 微控制器,那么另一个问题是防止短路。
您需要确保一次更改整个端口,而不是一次更改一个引脚。如果您一次只更改一个引脚,从低到高或从高到低,那么您可以在引脚之间创建一个完全短路,烧毁其中的一个或多个。根据启动时引脚的默认状态,在您的代码设置它们之前,如果没有额外的部分,这可能无法避免。还要尝试将其与单个端口隔离,因为同时更改多个端口会很困难,并且端口之间的电压差可能会造成伤害。
通常,在引脚上串联电阻会有所帮助。这些电阻器最终也将与每个引脚并联,这有助于调节它们之间的电流。
假设您希望 4 个引脚上的 80 mA 负载相等,那么这是 4 个额外的部分,作为保护。那时,您也可以只使用一个晶体管 + 电阻对。
通过仔细编码,您应该不需要这些,并且并行 gpio 将作为电流接收器正常工作。
集电极开路输出,只能拉低,不存在短路问题,但仍应同时更改。不同时更改它们可能会导致只有一个输出的电流,如果没有电流限制器,这将导致问题。典型的微控制器 GPIO 不是集电极开路,但您可以通过仅在输出低阻抗和高阻抗输入模式之间切换来模仿它。
如果数字端口的推挽或 Vcc 或开漏极接地,则永远不要将其连接到地。检查数据表,我认为 rasp pi 没有数据表,但信息就在那里。下沉不同于采购。如果你有一个开漏输出,你有时可以吸收比推挽更多的电流。您可能可以通过并联开漏配置获得更多收益,因为您不会在芯片中消耗大量功率,但您仍然受到线宽的限制,如果超出此范围,它会变热烧掉。
推挽通常是个坏主意,您可以在处理器上并联引脚以提供更多电流,但不会通过 Vcc Io 或 I/O 电压电源引脚获得更多电流。在某些情况下,数字设备会为您提供 Vccio 和引脚本身的电流额定值。不要超过这些额定值。
对我来说,尽管我认为如果一切顺利的话它可能会起作用,但这是一个非常糟糕的主意,因为如果你有一行代码错误,或者在下载代码时发生了一些不好的事情,那么很容易冒烟。只是不好的做法