|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 岁月如歌21 于 2025-10-30 15:54 编辑 - t# U( W% Z3 d) y' i) G
' ^$ u& i8 v; c Z8 }& OI/O口 不够,咋办9 c7 M6 Z" A# \
8H8K64U-45MHz-LQFP64, 60个 I/O,4 R7 J3 F8 ~& I: f5 k
32G12K128-35I-LQFP64, 60个 I/O,
' F# e; _9 u! L( gAI8051U-LQFP48, 45个 I/O,
5 ]9 Y! [2 t- G* b G3 R1 `/ {====重要的输入/输出信号尽量用mcu内部的I/O来处理, STC-MCU的抗干扰强
+ l7 H- {# ]% v! k1 y====不够的不重要的输出,用MCU本身的高速SPI强推挽输出 扩展 74HC595, <RMB0.2【0.12 ~ 0.20】,
( Z: y: q+ @% |. I. O! X. l0 t 1个74HC595扩展8个I/O, 可以多个74HC595级联, 不需要再 增加/浪费 控制的I/O口,' _) _- ~2 ]5 P; g3 l% J+ v. X
虽然是串行传送控制,但一次性锁存并行输出7 n T! ]0 E2 F9 @2 e5 Z5 S4 [
====控制的 SPI 输出口设置成强推挽输出模式,20mA以上的驱动能力,使输出信号的抗干扰能力超强4 `$ b, G |& D
防止74HC595的串行输入控制信号受干扰,用强推挽输出控制扩展的74HC595, 可以这么讲,
* H; r: c5 c" X9 s$ @ 干扰使出吃奶的力气也干扰不了74HC595, 如果谁说能,那你系统太差到无法理解了
/ ?( B) W* e) G# T7 N 传统的弱上拉工作模式的I/O口输出的抗干扰方式是,并小电容到地或加强的上拉电阻如2K!4 k% u3 R6 h. U4 m4 Y0 S
软件上增加涮新的频率,软件冗余设计,有强推挽输出, 这个软件上增加涮新的频率就没啥实践价值了,当然加了更好' J8 ^" L5 m, E# m% z
====输入尽量用 MCU 自己的I/O口(有施密特触发输入),如有按键,可考虑用 ADC-I/O 检测,
# x R4 {3 \4 ^, j 1路ADC检测4/8/16个按键很轻松3 ~" C) H G" K6 Y& b- ]" r8 Z
====按键ADC扫描配合软件去干扰也很容易下图 1组SPI 可以 级联扩展多个 74HC595, 而不需要 再增加控制的I/O* o7 z% p* }% M, ^0 l7 T3 x
( l) k4 f8 A2 f* n
串行扩展输入74HC165的问题是,容易受干扰 !串行输入是高阻输入或准双向口,容易受干扰,, `9 B- X& I% O1 e' G+ p
===特别需要软件反复读取判断,浪费系统时间
- e& o! J$ [* d! h% [* |. T2 y===或输入口对地并小电容,增加成本
) l5 t- E p% C* F6 p' }( d===不如改成强推挽扩展输出,扩展 74HC595,不需要软件抗干扰,不需要增加电容 D: @- I- _' z; B8 k
- B0 C4 g! Q) B& ~! ]下图,1路 ADC 检测 16个按键,还可以更多
) Z& F! u% H3 l" i2 b
4 |3 l* E4 i G
) R b! d$ C, p1 \5 Y& m7 x% Y下图 1组SPI 可以 级联扩展多个 74HC595, 而不需要 再增加控制的I/O6 I4 N) H* O O2 K) Y7 O8 S
% Q n! t: m% X. h- ]5 z. z
9 k* d H0 ]6 t, m' W9 _
6 H- D$ |9 o+ S: _2 x
, h% Y& g, H- X& L# @ |
|