|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 岁月如歌21 于 2025-10-30 15:54 编辑
; k: Z& A; ~# J% I6 o
! B4 H+ U! {7 p: uI/O口 不够,咋办
3 X4 X/ h4 n9 M4 B, e5 N/ V8H8K64U-45MHz-LQFP64, 60个 I/O,
" a. _0 A3 S: |8 P5 L9 `32G12K128-35I-LQFP64, 60个 I/O,
y0 z4 ]% x. j: D6 B- ^( hAI8051U-LQFP48, 45个 I/O,, X& q4 E9 j# H2 M8 F# e( p
====重要的输入/输出信号尽量用mcu内部的I/O来处理, STC-MCU的抗干扰强- @, ?% S, ]2 e+ l+ T: h& B
====不够的不重要的输出,用MCU本身的高速SPI强推挽输出 扩展 74HC595, <RMB0.2【0.12 ~ 0.20】,
3 @& b: G& Z3 S3 t3 V/ V/ `4 x4 @# h 1个74HC595扩展8个I/O, 可以多个74HC595级联, 不需要再 增加/浪费 控制的I/O口,
8 M3 w" S' b9 Z3 c- j+ ? 虽然是串行传送控制,但一次性锁存并行输出8 m$ u2 P- W" {0 l) Y: D0 E
====控制的 SPI 输出口设置成强推挽输出模式,20mA以上的驱动能力,使输出信号的抗干扰能力超强1 _$ b: G z% t5 a% |# Q; u/ ^5 C
防止74HC595的串行输入控制信号受干扰,用强推挽输出控制扩展的74HC595, 可以这么讲,- e: U. a6 A6 g" k1 c) H
干扰使出吃奶的力气也干扰不了74HC595, 如果谁说能,那你系统太差到无法理解了9 M/ n/ y0 S1 f* T. j
传统的弱上拉工作模式的I/O口输出的抗干扰方式是,并小电容到地或加强的上拉电阻如2K!$ T; Q. Q5 F7 `' Q/ F
软件上增加涮新的频率,软件冗余设计,有强推挽输出, 这个软件上增加涮新的频率就没啥实践价值了,当然加了更好5 b. Z" u: U m# x" b2 X
====输入尽量用 MCU 自己的I/O口(有施密特触发输入),如有按键,可考虑用 ADC-I/O 检测,
' J! h& a: R. H, Q 1路ADC检测4/8/16个按键很轻松
# @$ [, I+ m- s; ]1 z====按键ADC扫描配合软件去干扰也很容易下图 1组SPI 可以 级联扩展多个 74HC595, 而不需要 再增加控制的I/O% t, i& r0 P7 v& {% f( n" \0 \# ~( v
$ p1 p3 K; i' U N" ]
串行扩展输入74HC165的问题是,容易受干扰 !串行输入是高阻输入或准双向口,容易受干扰,
, W5 t; q2 n4 @1 Q0 c; q/ D===特别需要软件反复读取判断,浪费系统时间
* X2 w- i9 K; j$ N- V===或输入口对地并小电容,增加成本
% X t! f" s1 n/ e, e===不如改成强推挽扩展输出,扩展 74HC595,不需要软件抗干扰,不需要增加电容
0 j& _: `' v) d* }. X; Y8 i4 A$ h ^5 Q n( b* _4 j2 u
下图,1路 ADC 检测 16个按键,还可以更多9 s+ u, D0 N% b. a
* {8 Q3 O1 j) Q% k
% {2 u3 Z/ z8 O8 x
下图 1组SPI 可以 级联扩展多个 74HC595, 而不需要 再增加控制的I/O. m4 _) D8 b9 B% m
- a: v& ~* [" p, L% J7 T
& h: [+ i7 W$ j+ v
' q0 P+ ?2 W7 D, I: W6 e( R; n; O
|
|