|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 岁月如歌21 于 2025-10-30 15:54 编辑
. Y* z2 J8 m1 |# R! Y, \% h& }5 p. F
I/O口 不够,咋办
5 ~ _8 b2 l T6 s! j# l5 l% x1 ~8H8K64U-45MHz-LQFP64, 60个 I/O,
( b, p' q/ y, X) j2 I0 H32G12K128-35I-LQFP64, 60个 I/O,
- C% i6 `& v& {) n* Z* i* O1 cAI8051U-LQFP48, 45个 I/O,- m6 r- Y1 s0 v5 ?+ ~* c7 a z! r
====重要的输入/输出信号尽量用mcu内部的I/O来处理, STC-MCU的抗干扰强4 v% [) h7 O8 n8 U" K" v
====不够的不重要的输出,用MCU本身的高速SPI强推挽输出 扩展 74HC595, <RMB0.2【0.12 ~ 0.20】, # x* W% ?2 w) ^5 W0 X2 ?
1个74HC595扩展8个I/O, 可以多个74HC595级联, 不需要再 增加/浪费 控制的I/O口,; x! Y5 a4 S& b/ H* H% r
虽然是串行传送控制,但一次性锁存并行输出
d/ ^% D# a' J* |. ^. N$ ~====控制的 SPI 输出口设置成强推挽输出模式,20mA以上的驱动能力,使输出信号的抗干扰能力超强
) t9 H9 x* c% c$ X; H9 ~3 T 防止74HC595的串行输入控制信号受干扰,用强推挽输出控制扩展的74HC595, 可以这么讲,' f1 k4 s. L8 T+ E$ ~
干扰使出吃奶的力气也干扰不了74HC595, 如果谁说能,那你系统太差到无法理解了
7 n) u, R; { I5 y 传统的弱上拉工作模式的I/O口输出的抗干扰方式是,并小电容到地或加强的上拉电阻如2K!, `3 u+ k- Q" M) y3 h! a
软件上增加涮新的频率,软件冗余设计,有强推挽输出, 这个软件上增加涮新的频率就没啥实践价值了,当然加了更好
# S3 A- E5 U) }) ?# l$ H5 o% ], i====输入尽量用 MCU 自己的I/O口(有施密特触发输入),如有按键,可考虑用 ADC-I/O 检测,
: P. H- r7 s* ^ 1路ADC检测4/8/16个按键很轻松
+ `( X6 C! a0 U====按键ADC扫描配合软件去干扰也很容易下图 1组SPI 可以 级联扩展多个 74HC595, 而不需要 再增加控制的I/O
: M; N# |9 N, b# X# C$ ~$ W. o! P$ t1 {7 r" b
串行扩展输入74HC165的问题是,容易受干扰 !串行输入是高阻输入或准双向口,容易受干扰,
2 t4 t0 w0 f" T. I: e2 L' {===特别需要软件反复读取判断,浪费系统时间; c0 h8 J3 ^ } i& b6 b
===或输入口对地并小电容,增加成本% O2 \3 ]) s( D. L: G
===不如改成强推挽扩展输出,扩展 74HC595,不需要软件抗干扰,不需要增加电容
1 f+ z4 {& A& j9 v5 X
& O8 g0 e. C. x$ _下图,1路 ADC 检测 16个按键,还可以更多8 q1 Y) K, _# @# r' R
6 W8 x3 s1 s( e( l" F& K
: S" P4 T+ u( d$ f0 N7 E2 X下图 1组SPI 可以 级联扩展多个 74HC595, 而不需要 再增加控制的I/O3 y" j p' a; f1 c# H) D3 l" D
@% I7 F0 o# u& I; s; A" u& d! E# S8 p) P, _# W! L, q
+ X. m# c: W f, a, s, c
* B5 @/ q' {) n- Q% s6 R8 \4 L0 l |
|