神农鼎 发表于 2023-2-5 10:50:21

I/O口 不够,咋办

I/O口 不够,咋办
8H8K64U-45MHz-LQFP64, 60个 I/O,现货;
32G12K128-35I-LQFP64, 60个 I/O,现货;
AI8051U-LQFP48, 45个 I/O,现货;
====重要的输入/输出信号尽量用MCU内部的I/O来处理, STC-MCU的抗干扰强
====不够的不重要的输出,用MCU本身的高速SPI强推挽输出 扩展 74HC595, <RMB0.2【0.12 ~ 0.20】,
         1个74HC595扩展8个I/O, 可以多个74HC595级联, 不需要再 增加/浪费 控制的I/O口,
         虽然是串行传送控制,但一次性锁存并行输出
====控制的 SPI 输出口设置成强推挽输出模式,20mA以上的驱动能力,使输出信号的抗干扰能力超强
         防止74HC595的串行输入控制信号受干扰,用强推挽输出控制扩展的74HC595, 可以这么讲,
         干扰使出吃奶的力气也干扰不了74HC595, 如果谁说能,那你系统太差到无法理解了
         传统的弱上拉工作模式的I/O口输出的抗干扰方式是,并小电容到地或加强的上拉电阻如2K!
         软件上增加涮新的频率,软件冗余设计,有强推挽输出, 这个软件上增加涮新的频率就没啥实践价值了,当然加了更好
====输入尽量用 MCU 自己的I/O口(有施密特触发输入),如有按键,可考虑用 ADC-I/O 检测,
         1路ADC检测4/8/16个按键很轻松
====按键ADC扫描配合软件去干扰也很容易

串行扩展输入74HC165的问题是,容易受干扰 !串行输入是高阻输入或准双向口,容易受干扰,
===特别需要软件反复读取判断,浪费系统时间
===或输入口对地并小电容,增加成本
===不如改成强推挽扩展输出,扩展 74HC595,不需要软件抗干扰,不需要增加电容

下图,1路 ADC 检测 16个按键,还可以更多
https://www.stcaimcu.com/data/attachment/forum/202302/05/103139o0bx6igu78cmp36x.png

下图 1组SPI 可以 级联扩展多个 74HC595, 而不需要 再增加控制的I/O
















jwd 发表于 2023-2-5 22:31:54

我一般习惯用74165作为输入的扩展,输出单独控制,不然用595或者273之类的扩展还得考虑输出相互影响,要不就得增加输出口个数:)

神农鼎 发表于 2023-2-5 22:37:52

输出相互影响===?
74HC595 扩展输出是,串行输入,带锁存的并行输出,有啥麻烦,我们是优选后,推这个方案的,
现在客人当中见到最多的扩展I/O,也是这个,可能跟我们的参考设计方案也有关系

梁工 发表于 2023-2-6 12:21:28

ADC检测按键可以节省很多IO,但是要注意,任何时候只能有一个键按下,不支持多键按下。按键的接触电阻过大可能会影响键识别,处理程序要判断ADC读数的变化率来确定按键已经稳定。

扩展数字IO,最常用的是输入用74HC165,输出用74HC595,这一对天仙配,非常好用,可以级联多片。比如LED点阵屏就用大量的74HC595(或兼容的专用IC)做驱动,一个单元板64*16点的,通常会使用8片74HC595.

ACLX51 发表于 2023-2-6 18:42:01

I2C 扩展 IO 也可以,成本会高一些

梁工 发表于 2023-2-7 10:42:19

ACLX51 发表于 2023-2-6 18:42
I2C 扩展 IO 也可以,成本会高一些

I2C速度慢,不建议。

qq603599910 发表于 2023-2-8 13:03:44

之前用过LS164做输出扩展.

梁工 发表于 2023-2-8 14:08:09

qq603599910 发表于 2023-2-8 13:03
之前用过LS164做输出扩展.

164没有锁存功能,移位时各个输出会“闪烁”一下,建议使用595.

蓝色海阳 发表于 2023-3-1 10:51:07

有没有人做过串口输入的按键?如果用串口输入按键,是不是也能节省IO口呢

chen 发表于 2023-3-1 16:36:32

蓝色海阳 发表于 2023-3-1 10:51
有没有人做过串口输入的按键?如果用串口输入按键,是不是也能节省IO口呢 ...

一般情况下不会这样做,只是按键的话矩阵或者AD按键,输入的话五六十个输入一般也够用了。反正我都是尽量输入用io,剩下的输出不够就扩展,实在不够的话就换芯片:lol可惜stc没144脚的芯片
页: [1] 2 3 4
查看完整版本: I/O口 不够,咋办