找回密码
 立即注册
查看: 7812|回复: 31

I/O口 不够,咋办

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15609
发表于 2023-2-5 10:50:21 | 显示全部楼层 |阅读模式
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个按键,还可以更多


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















回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:518
  • 最近打卡:2025-05-01 05:52:49
已绑定手机

46

主题

1694

回帖

2540

积分

金牌会员

积分
2540
发表于 2023-2-5 22:31:54 | 显示全部楼层
我一般习惯用74165作为输入的扩展,输出单独控制,不然用595或者273之类的扩展还得考虑输出相互影响,要不就得增加输出口个数:)
  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15609
发表于 2023-2-5 22:37:52 | 显示全部楼层
输出相互影响===  ?
74HC595 扩展输出是,串行输入,带锁存的并行输出,有啥麻烦,我们是优选后,推这个方案的,
现在客人当中见到最多的扩展I/O,也是这个,可能跟我们的参考设计方案也有关系
  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2023-2-6 12:21:28 | 显示全部楼层
ADC检测按键可以节省很多IO,但是要注意,任何时候只能有一个键按下,不支持多键按下。按键的接触电阻过大可能会影响键识别,处理程序要判断ADC读数的变化率来确定按键已经稳定。

扩展数字IO,最常用的是输入用74HC165,输出用74HC595,这一对天仙配,非常好用,可以级联多片。比如LED点阵屏就用大量的74HC595(或兼容的专用IC)做驱动,一个单元板64*16点的,通常会使用8片74HC595.
  • 打卡等级:以坛为家II
  • 打卡总天数:411
  • 最近打卡:2025-02-05 10:18:49

1

主题

24

回帖

2257

积分

金牌会员

积分
2257
发表于 2023-2-6 18:42:01 | 显示全部楼层
I2C 扩展 IO 也可以,成本会高一些

点评

I2C速度慢,不建议。  详情 回复 发表于 2023-2-7 10:42
  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2023-2-7 10:42:19 | 显示全部楼层
ACL*** 发表于 2023-2-6 18:42
I2C 扩展 IO 也可以,成本会高一些

I2C速度慢,不建议。
  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2024-05-02 21:48:56

6

主题

48

回帖

614

积分

高级会员

积分
614
发表于 2023-2-8 13:03:44 | 显示全部楼层
之前用过LS164做输出扩展.

点评

164没有锁存功能,移位时各个输出会“闪烁”一下,建议使用595.  详情 回复 发表于 2023-2-8 14:08
  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2023-2-8 14:08:09 | 显示全部楼层
qq6035*** 发表于 2023-2-8 13:03
之前用过LS164做输出扩展.

164没有锁存功能,移位时各个输出会“闪烁”一下,建议使用595.
  • 打卡等级:以坛为家I
  • 打卡总天数:272
  • 最近打卡:2025-05-01 08:13:48

3

主题

17

回帖

578

积分

高级会员

积分
578
发表于 2023-3-1 10:51:07 | 显示全部楼层
有没有人做过串口输入的按键?如果用串口输入按键,是不是也能节省IO口呢
  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2023-12-06 15:33:02

20

主题

110

回帖

771

积分

荣誉版主

积分
771
发表于 2023-3-1 16:36:32 | 显示全部楼层
蓝色*** 发表于 2023-3-1 10:51
有没有人做过串口输入的按键?如果用串口输入按键,是不是也能节省IO口呢 ...

一般情况下不会这样做,只是按键的话矩阵或者AD按键,输入的话五六十个输入一般也够用了。反正我都是尽量输入用io,剩下的输出不够就扩展,实在不够的话就换芯片:lol可惜stc没144脚的芯片
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-1 20:22 , Processed in 0.134518 second(s), 122 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表