|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 岁月如歌21 于 2025-10-30 15:54 编辑 ' m! c) z* Q/ H9 O1 O3 g7 n
+ J4 }* E+ h& Y, `& H8 \
I/O口 不够,咋办3 V4 }: h8 H2 F/ ^3 I
8H8K64U-45MHz-LQFP64, 60个 I/O,
- }4 @5 ]+ X2 A" z% M* N) I32G12K128-35I-LQFP64, 60个 I/O,
% D, m1 A4 I: q1 n" Y6 N6 L7 t" MAI8051U-LQFP48, 45个 I/O,
: C a& O2 h3 f6 g; [2 y- d$ r& X====重要的输入/输出信号尽量用mcu内部的I/O来处理, STC-MCU的抗干扰强 R' V# `) R: `" U3 f* u
====不够的不重要的输出,用MCU本身的高速SPI强推挽输出 扩展 74HC595, <RMB0.2【0.12 ~ 0.20】,
* G8 g% G& _0 d/ Q2 g" ? 1个74HC595扩展8个I/O, 可以多个74HC595级联, 不需要再 增加/浪费 控制的I/O口," b+ ^: B3 C, X, N6 \
虽然是串行传送控制,但一次性锁存并行输出
' J w; D, Q- g" B& ^4 J8 E- k====控制的 SPI 输出口设置成强推挽输出模式,20mA以上的驱动能力,使输出信号的抗干扰能力超强
9 x8 J% R* v$ d+ ?: }! C 防止74HC595的串行输入控制信号受干扰,用强推挽输出控制扩展的74HC595, 可以这么讲,
& r5 ]/ }& ^, b1 `' `; }. U6 t 干扰使出吃奶的力气也干扰不了74HC595, 如果谁说能,那你系统太差到无法理解了4 q$ S( p! \, m* J, g( T
传统的弱上拉工作模式的I/O口输出的抗干扰方式是,并小电容到地或加强的上拉电阻如2K!
: t4 v/ m$ [, u! R! |$ V 软件上增加涮新的频率,软件冗余设计,有强推挽输出, 这个软件上增加涮新的频率就没啥实践价值了,当然加了更好
, i1 T# o+ A( h. A8 y====输入尽量用 MCU 自己的I/O口(有施密特触发输入),如有按键,可考虑用 ADC-I/O 检测,
* E$ D1 l/ o1 f0 B ]- _% A 1路ADC检测4/8/16个按键很轻松
0 I( D) A3 }( a- E====按键ADC扫描配合软件去干扰也很容易下图 1组SPI 可以 级联扩展多个 74HC595, 而不需要 再增加控制的I/O
" f0 r* t8 m" L4 a& M5 t0 Z* c3 O7 G7 W, { F
串行扩展输入74HC165的问题是,容易受干扰 !串行输入是高阻输入或准双向口,容易受干扰,
/ x9 B+ q2 c1 h===特别需要软件反复读取判断,浪费系统时间' Z0 u# w6 } ], {
===或输入口对地并小电容,增加成本
: \2 U$ q& C4 W===不如改成强推挽扩展输出,扩展 74HC595,不需要软件抗干扰,不需要增加电容: ]: I5 n; g1 K3 I4 l- b
8 @& S3 W3 E! q8 e7 n8 N
下图,1路 ADC 检测 16个按键,还可以更多
6 u4 M% v6 ^% n% n8 ^
Y$ j g9 s/ q0 t
% w O- m& N4 Z, s( c7 k, N7 J下图 1组SPI 可以 级联扩展多个 74HC595, 而不需要 再增加控制的I/O
/ p6 w# g3 }' f) x _
2 A) `5 W2 O5 f) `" R2 b( q( `. W
0 }& b \1 u" }0 w9 u5 V; |- v' j
+ V( `, Z2 n" E0 L; `6 j
2 Z. g2 @. T. Q- u* E
|
|