|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 岁月如歌21 于 2025-10-30 15:54 编辑
3 M& Z% z1 \# C- Z: h
+ _( L" O' r+ q# O5 A: EI/O口 不够,咋办
3 |8 d/ x. |* r. N6 i% {- d) [ d/ D8H8K64U-45MHz-LQFP64, 60个 I/O,
& k% x( K' X5 |# p! j) z4 L32G12K128-35I-LQFP64, 60个 I/O,8 `& D2 H0 N2 r% h$ M& T
AI8051U-LQFP48, 45个 I/O,8 [- p/ h; }5 J: t
====重要的输入/输出信号尽量用mcu内部的I/O来处理, STC-MCU的抗干扰强3 y$ `) W- t5 Z- A8 R! H
====不够的不重要的输出,用MCU本身的高速SPI强推挽输出 扩展 74HC595, <RMB0.2【0.12 ~ 0.20】, . \3 {. V5 o8 a4 C
1个74HC595扩展8个I/O, 可以多个74HC595级联, 不需要再 增加/浪费 控制的I/O口,
7 @/ j+ L' R; F: C' ^8 l- t 虽然是串行传送控制,但一次性锁存并行输出1 X8 F8 ?0 F5 r
====控制的 SPI 输出口设置成强推挽输出模式,20mA以上的驱动能力,使输出信号的抗干扰能力超强
: e" b t, ]8 |" [ 防止74HC595的串行输入控制信号受干扰,用强推挽输出控制扩展的74HC595, 可以这么讲,) D" |$ ~- x4 g. f) D$ v( K" I
干扰使出吃奶的力气也干扰不了74HC595, 如果谁说能,那你系统太差到无法理解了
0 @% R9 n* N" r6 j$ K: M/ s 传统的弱上拉工作模式的I/O口输出的抗干扰方式是,并小电容到地或加强的上拉电阻如2K!8 D/ I5 ~: F' p" L5 t7 w% o" |
软件上增加涮新的频率,软件冗余设计,有强推挽输出, 这个软件上增加涮新的频率就没啥实践价值了,当然加了更好
# i i/ S9 F/ G# ]2 Y# s7 E====输入尽量用 MCU 自己的I/O口(有施密特触发输入),如有按键,可考虑用 ADC-I/O 检测,
7 W/ \5 n d- B! G6 I 1路ADC检测4/8/16个按键很轻松* n) W+ x0 ~6 ^$ e% ^$ |
====按键ADC扫描配合软件去干扰也很容易下图 1组SPI 可以 级联扩展多个 74HC595, 而不需要 再增加控制的I/O1 a! g8 ]7 l9 v+ p6 M
/ S: K" g3 p* W: g/ S7 h) t8 N
串行扩展输入74HC165的问题是,容易受干扰 !串行输入是高阻输入或准双向口,容易受干扰,
0 x" T% k1 s6 {1 l===特别需要软件反复读取判断,浪费系统时间! `4 |" X; k& X6 C: x& ]& T
===或输入口对地并小电容,增加成本( j2 n9 m# \9 H
===不如改成强推挽扩展输出,扩展 74HC595,不需要软件抗干扰,不需要增加电容+ D2 i' r; K: E1 G1 `8 \; i
" s0 W- u5 K8 ]0 y" i. ]下图,1路 ADC 检测 16个按键,还可以更多
% ~! R+ R# W- }) z
% |- p) F( g6 z3 f" n* p
) F' V n+ Q {; |; A
下图 1组SPI 可以 级联扩展多个 74HC595, 而不需要 再增加控制的I/O
& Q# V. ]; d; n& E+ Z$ v
2 f. W9 u9 p" W
! Q Y, C" E0 B/ v+ }4 b# ]
* w; Z, K) T: Z3 Y2 [; |4 ]& ~: @( ]9 Q7 V- }4 Y
|
|