EDA365电子论坛网

标题: I/O口 不够,咋办 [打印本页]

作者: 岁月如歌21    时间: 2025-10-30 15:49
标题: I/O口 不够,咋办
本帖最后由 岁月如歌21 于 2025-10-30 15:54 编辑 & @2 T* ?8 h# b' I
& A" D, `: i9 p  D' W" [/ ?
I/O口 不够,咋办9 ?: C; _8 K( ?8 ^9 F% o! r/ ?
8H8K64U-45MHz-LQFP64, 60个 I/O,
- l/ Q/ d& @' {- Q0 q32G12K128-35I-LQFP64, 60个 I/O,
7 a2 I# p2 W; v9 J' GAI8051U-LQFP48, 45个 I/O,
; W/ S2 d- I, o8 t====重要的输入/输出信号尽量用MCU内部的I/O来处理, STC-MCU的抗干扰强
8 R0 E$ Q7 S% }& m8 w* F8 d: d====不够的不重要的输出,用MCU本身的高速SPI强推挽输出 扩展 74HC595, <RMB0.2【0.12 ~ 0.20】,  . S' O! M' f- o3 O' p# [- u
         1个74HC595扩展8个I/O, 可以多个74HC595级联, 不需要再 增加/浪费 控制的I/O口,5 D( v& D! y8 j
         虽然是串行传送控制,但一次性锁存并行输出
( J! B  X1 i7 ?/ b- S8 |====控制的 SPI 输出口设置成强推挽输出模式,20mA以上的驱动能力,使输出信号的抗干扰能力超强0 |. J# |9 E! ]' h
         防止74HC595的串行输入控制信号受干扰,用强推挽输出控制扩展的74HC595, 可以这么讲,- A* Y, M$ H8 v& p  k
         干扰使出吃奶的力气也干扰不了74HC595, 如果谁说能,那你系统太差到无法理解了8 T7 b6 O) [5 K  C. v2 }
         传统的弱上拉工作模式的I/O口输出的抗干扰方式是,并小电容到地或加强的上拉电阻如2K!8 d; _9 P1 q$ `# Z2 B& G3 W: e
         软件上增加涮新的频率,软件冗余设计,有强推挽输出, 这个软件上增加涮新的频率就没啥实践价值了,当然加了更好+ ^$ ~' `& F1 m1 S! u
====输入尽量用 MCU 自己的I/O口(有施密特触发输入),如有按键,可考虑用 ADC-I/O 检测,
3 a2 A" v8 B* }2 \7 [" j9 d         1路ADC检测4/8/16个按键很轻松
* x9 l! B3 W! F====按键ADC扫描配合软件去干扰也很容易下图 1组SPI 可以 级联扩展多个 74HC595, 而不需要 再增加控制的I/O' w- H: U+ o3 p$ d( F" C  j
6 K2 O  v- T' H# B% v
串行扩展输入74HC165的问题是,容易受干扰 !串行输入是高阻输入或准双向口,容易受干扰,
) Y5 @# v* B9 r( T0 C# h* D, t===特别需要软件反复读取判断,浪费系统时间
, [0 k( [3 {( P/ {% ]# v===或输入口对地并小电容,增加成本
$ K2 p; f7 f- C1 v===不如改成强推挽扩展输出,扩展 74HC595,不需要软件抗干扰,不需要增加电容# ~$ [7 [4 Z- @# u

/ s0 F4 b0 D8 e4 X! l. o  \! x7 h下图,1路 ADC 检测 16个按键,还可以更多
8 a. k) s7 V2 j+ P

0 _2 [! j/ @: V5 h( W8 ~1 G0 p/ v4 t! m% @. n1 x, u/ F
下图 1组SPI 可以 级联扩展多个 74HC595, 而不需要 再增加控制的I/O
5 B  t% G+ @$ r9 k1 ?8 M" _
0 G1 e0 F8 P- R) M0 m$ B6 v
9 t* Y  i" @( `& T
! _% S- d3 F" W) J, [

/ ~, y1 X0 ^6 U# {
作者: Quiescent_521    时间: 2025-10-31 17:58
有完整的例子程序吗
作者: 岁月如歌21    时间: 2025-11-3 16:17
Quiescent_521 发表于 2025-10-31 17:58* A1 d8 h0 Q4 a3 x
有完整的例子程序吗

' q! W$ `) h  m0 V有的,可以到STC官网上直接下载
- I7 U0 `+ s+ X# H0 W; m& }) e




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2