|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 岁月如歌21 于 2025-10-30 15:54 编辑 7 u3 x: w. g* t4 n9 l3 t7 l
8 h3 f% E+ E9 _; l; l" T B" ^& U J- OI/O口 不够,咋办
% A, V& _- ?8 {3 V1 Y8H8K64U-45MHz-LQFP64, 60个 I/O,
' Z' G) z4 _8 d' T& p( Y# R32G12K128-35I-LQFP64, 60个 I/O,! ]6 F* N) [) |3 n( ~2 y( Y$ Q! U
AI8051U-LQFP48, 45个 I/O,2 b) b0 S; @! s! k
====重要的输入/输出信号尽量用mcu内部的I/O来处理, STC-MCU的抗干扰强4 d2 H* m6 o) S1 }9 {
====不够的不重要的输出,用MCU本身的高速SPI强推挽输出 扩展 74HC595, <RMB0.2【0.12 ~ 0.20】,
- O9 N" p) M/ T 1个74HC595扩展8个I/O, 可以多个74HC595级联, 不需要再 增加/浪费 控制的I/O口,
+ ^/ L" s/ X) P8 B. Y, m: B 虽然是串行传送控制,但一次性锁存并行输出
7 Q: \, c r W+ n& H0 X% x N+ c- s====控制的 SPI 输出口设置成强推挽输出模式,20mA以上的驱动能力,使输出信号的抗干扰能力超强
/ g# X0 B2 d: \2 O0 R, A) E# n 防止74HC595的串行输入控制信号受干扰,用强推挽输出控制扩展的74HC595, 可以这么讲,
% u! V3 A; B# ]+ v+ J 干扰使出吃奶的力气也干扰不了74HC595, 如果谁说能,那你系统太差到无法理解了
) c' q/ g* ^# f1 e. I 传统的弱上拉工作模式的I/O口输出的抗干扰方式是,并小电容到地或加强的上拉电阻如2K!8 ?7 N7 ~" z0 h! m8 W! a5 v
软件上增加涮新的频率,软件冗余设计,有强推挽输出, 这个软件上增加涮新的频率就没啥实践价值了,当然加了更好
2 s' d3 k3 _. q( s" ?====输入尽量用 MCU 自己的I/O口(有施密特触发输入),如有按键,可考虑用 ADC-I/O 检测,
' y7 j& C" f6 Y8 ] 1路ADC检测4/8/16个按键很轻松
# c& W3 a9 {& d====按键ADC扫描配合软件去干扰也很容易下图 1组SPI 可以 级联扩展多个 74HC595, 而不需要 再增加控制的I/O P7 p" T m$ G4 N8 U
Z0 H8 s4 q' f; e6 T C. M% n串行扩展输入74HC165的问题是,容易受干扰 !串行输入是高阻输入或准双向口,容易受干扰,
8 O9 [4 j: X7 `2 R( E- }===特别需要软件反复读取判断,浪费系统时间
" X+ o/ t* g8 C4 X* `===或输入口对地并小电容,增加成本
0 ]; v* W) Z2 q# W* U===不如改成强推挽扩展输出,扩展 74HC595,不需要软件抗干扰,不需要增加电容( e7 {" u* q# S0 h% A
5 t. g+ C/ e$ V% Z( m2 N* A
下图,1路 ADC 检测 16个按键,还可以更多
/ m- E% k6 [2 J# ~, g1 |$ ? r
3 C4 z8 b& x( Q- a
0 l1 O L9 `# v- j; \& U9 j下图 1组SPI 可以 级联扩展多个 74HC595, 而不需要 再增加控制的I/O
: Y" K7 l n6 b6 A; ^
& V% X' A: Z3 {7 [( c1 V; y! [8 a0 _- Q k& d( r
( o; A( C- L5 k% J" j/ J
; J* r G; t. P0 o9 |, i7 l |
|