|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 岁月如歌21 于 2025-10-30 15:54 编辑 7 \/ }1 y! E$ ?$ d% {- }* Q! B* e% j
6 g% S: {# T$ z& Y: F) P* }2 k
I/O口 不够,咋办* i r9 |! x$ n" p4 Y# d5 G
8H8K64U-45MHz-LQFP64, 60个 I/O,1 w1 G# S/ E) `7 L
32G12K128-35I-LQFP64, 60个 I/O,
, a* G' g6 k. }# ZAI8051U-LQFP48, 45个 I/O,; a4 d" u! [5 `: ], q! L% q
====重要的输入/输出信号尽量用mcu内部的I/O来处理, STC-MCU的抗干扰强
0 r6 U% P3 Y$ s4 I. h4 p8 v====不够的不重要的输出,用MCU本身的高速SPI强推挽输出 扩展 74HC595, <RMB0.2【0.12 ~ 0.20】, 6 }/ W& B. J# _3 l7 m
1个74HC595扩展8个I/O, 可以多个74HC595级联, 不需要再 增加/浪费 控制的I/O口,7 d! ~" b& s8 l' ]4 B5 ?5 h
虽然是串行传送控制,但一次性锁存并行输出8 g$ x6 t: h5 x. s! [0 y& x5 p
====控制的 SPI 输出口设置成强推挽输出模式,20mA以上的驱动能力,使输出信号的抗干扰能力超强
. e4 R* X6 l/ b' }6 u 防止74HC595的串行输入控制信号受干扰,用强推挽输出控制扩展的74HC595, 可以这么讲,: \1 s w- M! q3 o2 g* ^9 Z1 m
干扰使出吃奶的力气也干扰不了74HC595, 如果谁说能,那你系统太差到无法理解了4 ?+ r$ U5 q7 P8 Q& C
传统的弱上拉工作模式的I/O口输出的抗干扰方式是,并小电容到地或加强的上拉电阻如2K!
0 H* K0 E% q# }" y1 Q; R4 O2 q 软件上增加涮新的频率,软件冗余设计,有强推挽输出, 这个软件上增加涮新的频率就没啥实践价值了,当然加了更好 I% o8 B) A3 C6 V3 ^% j
====输入尽量用 MCU 自己的I/O口(有施密特触发输入),如有按键,可考虑用 ADC-I/O 检测,4 l0 S, Y7 j% D7 {7 i5 r
1路ADC检测4/8/16个按键很轻松
, c" N0 }# P! H$ e% |9 Q9 t! n4 O====按键ADC扫描配合软件去干扰也很容易下图 1组SPI 可以 级联扩展多个 74HC595, 而不需要 再增加控制的I/O
2 O! U; m$ g) x/ p" o& A
! G* ], L/ _) ]# W串行扩展输入74HC165的问题是,容易受干扰 !串行输入是高阻输入或准双向口,容易受干扰,
% C- \3 ?6 @+ Y( V! q) T===特别需要软件反复读取判断,浪费系统时间
+ E) v4 t: [0 p1 b===或输入口对地并小电容,增加成本" x# |. `' }. n6 }0 f( B. ]
===不如改成强推挽扩展输出,扩展 74HC595,不需要软件抗干扰,不需要增加电容
6 v4 r7 x8 k% u& a
! }! }1 s1 U# ]3 u7 S7 T下图,1路 ADC 检测 16个按键,还可以更多
! y# t. V7 L: v
2 N/ v/ H4 {5 c
% ~4 Z: h% `6 L+ S" f1 {7 X下图 1组SPI 可以 级联扩展多个 74HC595, 而不需要 再增加控制的I/O
8 V- d, H% l) q0 o# `" ]0 K5 v
9 G& ?3 D. E: h+ _! s3 d$ W0 q2 C$ b. Y& c9 s6 } R# i, B& Q% q
O, O* G6 }* |6 Q _% K
& I c, n6 h1 H5 Y# J/ b' T |
|