|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 岁月如歌21 于 2025-10-30 15:54 编辑
, R6 K3 ?/ D0 L( {: c
+ x, w! }* _/ \I/O口 不够,咋办+ s t9 I7 D9 g! K* t) T" {$ w
8H8K64U-45MHz-LQFP64, 60个 I/O,
2 T+ \, F5 `0 ~3 {( R$ T, {32G12K128-35I-LQFP64, 60个 I/O,
! V3 [6 f/ R4 s9 H9 _: d( [+ [$ RAI8051U-LQFP48, 45个 I/O,
6 @: R1 f' e, l! O====重要的输入/输出信号尽量用mcu内部的I/O来处理, STC-MCU的抗干扰强
* T* J. y1 O9 y! ]! |====不够的不重要的输出,用MCU本身的高速SPI强推挽输出 扩展 74HC595, <RMB0.2【0.12 ~ 0.20】,
5 V: W( J4 a, _+ V1 m: n7 l 1个74HC595扩展8个I/O, 可以多个74HC595级联, 不需要再 增加/浪费 控制的I/O口,
Y+ n& m, I9 I1 v6 m7 N3 Z, F 虽然是串行传送控制,但一次性锁存并行输出4 e- p- A( m8 e+ P: p t
====控制的 SPI 输出口设置成强推挽输出模式,20mA以上的驱动能力,使输出信号的抗干扰能力超强6 o+ S: O5 x. G y
防止74HC595的串行输入控制信号受干扰,用强推挽输出控制扩展的74HC595, 可以这么讲,, C1 [- S+ e6 S- @* G1 G) }* e
干扰使出吃奶的力气也干扰不了74HC595, 如果谁说能,那你系统太差到无法理解了7 q& u6 j, ?. k, v! _# f9 n# f Z
传统的弱上拉工作模式的I/O口输出的抗干扰方式是,并小电容到地或加强的上拉电阻如2K!
; z" `( F/ _1 ?+ G 软件上增加涮新的频率,软件冗余设计,有强推挽输出, 这个软件上增加涮新的频率就没啥实践价值了,当然加了更好' T$ Q f }% g. U2 g* B7 P( C2 r
====输入尽量用 MCU 自己的I/O口(有施密特触发输入),如有按键,可考虑用 ADC-I/O 检测,- z& G+ {5 j! w' ?4 ?. [% Q) Q
1路ADC检测4/8/16个按键很轻松- i J2 S! n( N* U& O
====按键ADC扫描配合软件去干扰也很容易下图 1组SPI 可以 级联扩展多个 74HC595, 而不需要 再增加控制的I/O* z* n$ Z" z+ T' u k
, K# }" o& C; n @9 o串行扩展输入74HC165的问题是,容易受干扰 !串行输入是高阻输入或准双向口,容易受干扰,
0 y$ R( Q& y. o) B===特别需要软件反复读取判断,浪费系统时间. Z J3 s: M1 Y1 d+ r+ ?& c
===或输入口对地并小电容,增加成本; o9 S n- z9 Z: \
===不如改成强推挽扩展输出,扩展 74HC595,不需要软件抗干扰,不需要增加电容& Y* y2 S- G/ }9 A% a
3 B7 G1 {2 q, l' c2 t+ V5 Y
下图,1路 ADC 检测 16个按键,还可以更多$ B: `+ X) K; p8 s) [2 t
! I/ W) n1 p" e+ Y+ R( D0 O) v- y8 Q* ?/ x8 x1 a: q1 e% B- O
下图 1组SPI 可以 级联扩展多个 74HC595, 而不需要 再增加控制的I/O V: w2 X5 b- Y, C2 I
0 N9 F+ V; ^% w' q9 d( ]
* ^+ P/ C: A# C6 ` h0 Z2 Q
1 `" R0 p% Y8 d, V/ r8 @ d) Q0 }% M. P" h& T0 l
|
|