你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

基于STM32外围电路硬件经验分享

[复制链接]
攻城狮Melo 发布时间:2023-4-16 17:15
复位电路:) L3 A3 s) N" F
        复位 :让MCU回到最开始的状态。并且从头开始,重新执行程序( p3 M9 Z) r3 p% E" j* `% L6 @( d
        
# g8 Q2 z5 _6 a& h5 v; s        我们什么时候需要复位?) c& [* Z8 ~' c
                    1.烧录的时候   * M0 [6 p; n  O( k  r, p
  w/ F8 \( o7 P. i
                    2.程序跑飞了的时候
" n& B: E( b  ~8 m0 Y
1 V* a6 R  L, L" e                    3.上电复位(上电的时候需要复位), N4 U& n1 t6 ]9 |
            
! @, m$ O6 P; l. T4 N) \& H        复位方式:. A" y( B* L/ i# w! [" r
            1.上电复位: --- 一定要有
6 u5 s9 ]* s7 q0 U7 u                MCU的Reset是复位引脚,当这个引脚为低电平时,单片机会产生复位。              7 T/ w. P  S$ [1 _2 I  _$ p: S

& u/ E( @' |* q% U  ~4 m/ M            2. 按键复位:--- 可有可无(看需求)  g& f8 D4 X. K' D. ~# F, D. n' |
                K10按下,产生复位动作  I% y' @' U' s& J7 @! `+ b5 N

3 q' K. h: C% [) q7 p
6073d5f8634c424384883b4cef0e52db.png

- |/ c6 A4 Q3 D3 w, W
9 f1 F! @2 Q1 X9 [
e8534846f0224d3eacb37623da274a6e.png

7 u5 @1 j/ t* B8 y1 C0 f$ B1 ?- G, f# N# d9 v
         这是阻容复位电路。当复位引脚低电平的时候复位。当上电的瞬间,C13电容开始充电,电容处于短路状态,电容上面的电压为低电平,此时MCU复位引脚被拉低,MCU执行复位,这样就实现了上电的时候复位功能了。# C( |+ v3 P5 Y$ k% e8 c
        实际上,单片机内部也有上电复位电路,那么我们之所以还要在单片机外部加上复位电路的原因是:因为外部上电复位电路复位时间较长,较长的复位时间,可以使得等电源、系统充分稳定后,MCU再来启动并执行程序,保证了MCU、系统正常运行。. |$ C: F- K- ]4 r) C

1 i9 F/ m" o6 H0 ~        注意:由于电容的精度不够,而且电容还会受到温度的影响,存在温漂,所以阻容复位电路的延时并不精确。但是,阻容复位电路可以满足绝大部分的需要了。/ i+ y3 Y  F& B* i

. s. ~6 G, I/ N, B        上电复位的目的:  ?& d& o9 J, e/ t( x( n! f
        1.等待供电电源、系统稳定后,再来启动MCU,执行程序,否则MCU、系统无法正常运行。7 x$ f+ ?3 C* N9 u2 y$ r
, ^6 F2 g- E7 R/ y; ?
        2.复位会初始化部分寄存器1 E4 E  p4 r; S. {

& T" m1 y) w, G# X5 [& N         注意R21和C13的选择(一般选择10k电阻,104电容就可以,即:延时大约10uS)。其中,电容不能选择太小,否则C13电容很快就充满电了,那么此时电容上面就不是低电平了,但是,很有可能此时电源、系统还没有到达稳定状态。那么芯片供电电源、系统不稳定,就会导致MCU和整个系统工作有问题,有可能MCU时而启动成功,时而启动失败。# G, t2 |  @  w
5 R- Y7 \1 ]# X, k

9 V- r" ~+ Y$ g( k 晶振电路:. {4 U' g5 M4 _! J

" n* n3 L$ Q5 K
44233f9031a544da83811d46299f796e.png

) D7 h0 E! z' l) W! e# ~3 M
! k5 x! ]/ i0 E3 X  S9 e
1f7815ccda634b64aee5ad584baa6dbb.png

. L" x# Y% j: r: ?! x1 L( A7 E7 V: V1 s
87d4285b38854f58b59786573f350131.png
7 _: V& C- H+ R- t$ q
% S( X  U; M0 @0 U
        单片机内部集成的HSI时钟源是就是RC振荡器。4 L9 w8 l" H. t
3 K1 Y* B: X1 H0 e. V( U! q
c00277b3bbf742f5a0a79437234e06d7.png
9 Q1 t  P0 R+ k9 R+ `
# t$ E5 B- [$ N5 y1 V2 @
        晶振电路在布线的时候,尽量靠近单片机,因为晶振引脚,PCB走线也有电容电阻效应。
# o, }# x( i7 I9 j* B) E3 z. H4 H# I9 I$ t  ?8 F' j: \, @
c5d6b9450d4c436cadd2f520f2e8c831.png
' D% H/ i( l3 j
9 B+ t9 [" ]. |. \; w3 v5 @
7988cdd7dc04412e8542c0ef9f0a846f.png
+ P6 a' O4 ?% l  G3 H
# q4 a  r0 U: Q, \+ d7 u- W
晶体振荡器分为无源晶振和有源晶振两种类型。
( i! V7 e/ _7 ~& U
9 ^& O. m. @# ]) |6 v
+ L+ {/ d) P& N" s; j5 Y' D' d
无源晶振:

( u. O* |4 x, J8 e7 Y. j5 s  ?1 `% H3 ^. W: j1 L2 O
28e1001214d386f3fea73b178c0b95c6.jpg
2 }3 J! [1 B5 G, m! o: p: }
- y" i4 V) t5 {
+ ~# C6 \7 Y! U( i$ H
        无源晶振与有源晶振的英文名称不同,无源晶振为 crystal(晶体),而有源晶振则叫做 oscillator(振荡器)。1 o# s; ?  }  }/ C6 @+ T- p& ~
6 u* m8 y8 f, ^0 @
        无源晶振是有2个引脚的无极性元件,需要借助于时钟电路才能产生振荡信号,自身无法振荡起来,所以“无源晶振”这个说法并不准确;有源晶振有 4只引脚,是一个完整的振荡器,其中除了石英晶体外,还有晶体管和阻容元件,因此体积较大。* i5 Y$ V- S  y% h
! ]& P* E7 _$ g- z; `  r- L, S1 C
        无源晶振和有源晶振的区别很多时候是大家直接通过观察了解到的 。尤其是针对 2520贴片晶振,3225贴片晶振, 5032贴片晶振 ,并且是四脚封装的石英晶振来说, 包括有源晶振,也包括无源晶振。
0 I+ L. l8 p& H# v  e& x0 Y8 Y2 N$ K5 {" }7 B% K
# L0 \" M% K/ x, x: Q
有源晶振
3 g- M8 n3 k! b4 `* C
        有源晶振通常的用法:一脚悬空,二脚接地,三脚接输出,四脚接电压。
: |" t5 S, `9 K, R+ A
6 |& V0 r2 j6 g
        有源晶振不需要DSP的内部振荡器,信号质量好,比较稳定,而且连接方式相对简单(主要是做好电源滤波,通常使用一个电容和电感构成的 PI 型滤波网络,输出 端用一个小阻值的电阻过滤信号即可),不需要复杂的配置电路。相对于无源晶体,有源晶振的缺陷是其信号电平是固定的,需要选择好合适输出电平,灵活性较 差,而且价格高。
- U$ l# d/ o5 N3 q
4 `2 N, i) z. w6 w7 _" f
        有源晶振是由石英晶体组成的,石英晶片之所以能当为振荡器使用,是基于它的压电效应:在晶片的两个极上加一电场,会使晶体产生机械变形;在石英晶片上加上 交 变电压,晶体就会产生机械振动,同时机械变形振动又会产生交变电场,虽然这种交变电场的电压极其微弱,但其振动频率是十分稳定的。
7 s* V' {+ x' Y. o% X  C: D4 W
, z- h. b; ~5 V, _2 Q
0940bcebbb08c327518075bc7877aa4d.png
6 R; f/ N: _0 Q" D
1 c5 c1 x7 Q  V% V
        当外加交变电压的频率与 晶片的固有频率(由晶片的尺寸和形状决定)相等时,机械振动的幅度将急剧增加,这种现象称为“压电谐振”。& X; G; K* V1 R
" S+ F. T9 k: L. w' w5 w9 h
        压电谐振状态的建立和维持都必须借助于振荡器电路才能实现。图 3 是一个串联型振荡器,晶体管 T1 和 T2 构成的两级放大器,石英晶体 XT 与电容 C2 构成 LC 电 路。在这个电路中,石英晶体相当于一个电感,C2 为可变电容器,调节其容量即可使电路进入谐振状态。该振荡器供电电压为 5V,输出波形为方波。
- h6 R: c# G  Z7 E- `% h+ U0 x) }
0 A& a9 u; I# D! Q% L4 S4 ^
UART、RS232、RS485它们之间的区别:
9 p  y) d/ O( \, B        UART,是通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),既然是“器”,显然,它就是个设备而已,要完成一个特定的功能的硬件,它本身并不是协议。那么它要完成什么功能呢?它的最基本功能,是串行数据和并行数据之间的转换。
7 h1 ?2 x' I0 P8 S5 S* N1 f
( x8 `6 d# n; D! }( k/ ?/ T
        这就是UART做的最基本工作,进一步的,它还要控制“发车的班次”,比如确认一个Byte的这8个bit是什么时候开始的,又是什么时候结束的,两个班次之间至少要隔多长时间的缓冲,等等。这一部分,也具有协议的特征,但是相对于道路上的协议,更具有一般性,或曰,是与车在什么道路上开,相对独立的。# L; b5 ^8 Z) F. g
7 k# b  @- G1 n. {
c4b0f470f03f49a9b357a915a7af29fb.png

7 i3 G0 X& y/ ^; _7 k& f
5 l3 b8 f  s& b% ^0 H* F, C9 T        RS232/RS485,是两种不同的电气协议,也就是说,是对电气特性以及物理特性的规定,作用于数据的传输通路上,它并不内含对数据的处理方式。比如,最显著的特征是:RS232使用3-15v有效电平,而UART,因为对电气特性并没有规定,所以直接使用CPU使用的电平,就是所谓的TTL电平(可能在0~3.3V之间)。更具体的,电气的特性也决定了线路的连接方式,比如RS232,规定用电平表示数据,因此线路就是单线路的,用两根线才能达到全双工的目的;而RS485, 使用差分电平表示数据,因此,必须用两根线才能达到传输数据的基本要求,要实现全双工,必需用4根线。但是,无论使用RS232还是RS485,它们与UART是相对独立的,但是由于电气特性的差别,必须要有专用的器件和UART接驳,才能完成数据在线路和UART之间的正常流动。
$ _' u5 k- K# N& p

( _7 X' D" l4 \! N9 Y8 M        UART、RS232、RS485它们实际上都是串口上面的属性,只不过它们的功能不一样。UART的功能是将串行转并行,而RS232、RS485是一种电平标准
+ }+ V9 |+ ~% A6 t
4 c0 b: K% {4 D$ ]3 O9 _8 ~* H" u5 {- P( f; }. O$ f0 e
TTL电平信号:  Z7 Y. ~' W# e: V  v
) b, t# ~  S, K$ c7 ?; i! G; x; x
TTL电平标准:4 Q+ u4 m0 y* h: i- c
输出 L: <0.8V ;
/ m+ `5 `( R# A( `$ [3 \输出 H:>2.4V。1 W2 L/ Q8 t4 G% L- o" F/ c
输入 L: <1.2V ;3 B/ C: T+ e9 @) z
输入H: >2.0V。
* R; S3 h6 Y( f6 }$ \% t! }2 T. h* Y
        TTL电平信号之所以被广泛使用,原因是:通常我们采用二进制来表示数据。而且规定,+5V等价于逻辑“1”,0V等价于逻辑“0”。这样的数据通信及电平规定方式,被称做TTL(晶体管-晶体管逻辑电平)信号系统。( ~7 d+ B; k4 t" n
7 ~* ?) A3 m. F7 V8 T" A; W- |
        TTL电平长距离传输不了,抗干扰不行,衰减也大。长距离传输过程只能用RS232电平或者485电平,后者更远,在发送部分将TTL转换后,传输,接收部分再将传输电平转换为TTL电平。TTL作为逻辑电平很好,但是长距离传输确实能力有限。
. |7 G9 o/ }; {3 l; x5 C3 x3 [3 O$ ^' p  J* p

# k- |: b2 f6 b; eRS232串口
; \9 l" F0 |% T( R$ W/ m    RS232是计算机与通信工业应用中最广泛一种串行接口。它以全双工方式工作,需要地线、发送线和接收线三条线。RS232只能实现点对点的通信方式。8 J* I5 i# ?1 I: a! d# O# t( M, V' K
   RS232串口缺点
- K* T& C4 j( E( Y" n0 F% E    ●接口信号电平值较高,接口电路芯片容易损坏。
6 a3 n4 R' t' W1 J% d9 y: n    ●传输速率低,最高波特率19200bps。
7 [1 f0 d) `; L2 m4 M. ~    ●抗干扰能力较差。
4 ?9 c$ j3 D. T9 @- a) ~" e    ●传输距离有限,一般在15m以内。. d0 u2 V; @+ p5 F, R
    ●只能实现点对点的通讯方式。
/ y- T2 l( |7 W% o3 ]" \   RS232串口接口定义
6 E3 j) c7 ?2 Z# d, ~    RXD:接收数据,TXD:发送数据,GND/SG:信号地。/ A0 C: \3 p2 M9 t. u
  O4 F7 K, H6 w9 E
逻辑1(MARK)=-3V~-15V3 S6 |7 F. O- B! N; Y& h% h6 U! l) n
4 Z# v1 O, M0 ^& |" K) y6 G
逻辑0(SPACE)=+3~+15V
0 ?8 W) s2 C" H6 Y' P! u+ V- s9 c' V

: @& h% [6 u. N! ` RS485串口
+ F; i+ @4 [0 x' x. N      RS485串口特点
1 P( [2 h6 z3 K2 B! c    ●RS485采用平衡发送和差分接收,具有良好的抗干扰能力,信号能传输上千米。
. B) G9 i$ N0 f0 e3 n+ B    ●RS485有两线制和四线制两种接线。采用四线制时,只能实现点对多的通讯(即只能有一个主设备,其余为从设备)。四线制现在很少采用,现在多采用两线制接线方式。( j4 |5 v9 U! C/ @" h9 u
    ●两线制RS485只能以半双式方式工作,收发不能同时进行。$ ?9 O) q2 m6 @% X: Q& y
    ●RS485在同一总线上最多可以接32个结点,可实现真正的多点通讯,但一般采用的是主从通信方式,即一个主机带多个从机。0 J3 t* r: n, }* k+ t, z! [
    ●因RS485接口具有良好的抗干扰能力,长的传输距离和多站能力等优点使其成为首选的串行接口。   
0 g, U+ O  ~9 {* ?/ R$ g/ q! v9 J$ {9 F2 M  p
        通常情况下,发送驱动器A、B之间的正电平在+2~+6V,负电平在-2~6V,另有一个信号地C。; [% R/ C8 H7 Y# s$ T( }- o: z% Q

: X8 \2 C- W$ R. i* T8 c! v' s
0 W/ ?$ l2 v$ s9 P4 r% P
USB电平:
4 c) l3 ~0 e. d9 L- N$ q# V电源线是5V,为USB设备提供最大500mA的电流,它与数据线上的电平无关,数据线是差分信号,通常D+和D-在+400mV~-400mV间变化,在传统的单端(Single-ended)通信中,一条线路来传输一个比特位。高电平表示1,低电平表示0。倘若在数据传输过程中受到干扰,高低电平信号完全可能因此产生突破临界值的大幅度扰动,一旦高电平或低电平信号超出临界值,信号就会出错。在差分传输电路中,输出电平为正电压时表示逻辑“1”,输出负电压时表示逻辑“0”,而输出“0”电压是没有意义的,它既不代表“1”,也不代表“0”。3 h4 z' `# ^7 f2 l
+ w- L7 K+ M1 r
: N, H2 `3 Q. P  C
CMOS电平
3 a* U) a  U1 N  L8 S) v        COMS集成电路是互补对称金属氧化物半导体(Compiementary symmetry metal oxide semicoductor)集成电路的英文缩写,电路的许多基本逻辑单元都是用增强型PMOS晶体管和增强型NMOS管按照互补对称形式连接的,静态功耗很小。3 D& l* ^, h/ w+ w9 _# ?% s
" X3 g' l& c, B4 j
        COMS电路的供电电压VDD范围比较广在+5~+15V均能正常工作,电压波动允许±10,当输出电压高于VDD-0.5V时为逻辑1,输出电压低于VSS+0.5V(VSS为数字地)为逻辑0。CMOS电路输出高电平约为0.9Vcc,而输出低电平约为0.1Vcc当输入电压高于VDD-1.5V时为逻辑1,输入电压低于VSS+1.5V(VSS为数字地)为逻辑0。CMOS电路中不适用的输入端不能悬空,否则逻辑混乱。
9 k, o" _% F5 p
5 i' n4 _! Y; j

3 n/ S% `9 }( Q* \USB转串口电路:- P' p8 x9 h* Z# ?' n  R3 o" K

& ?, o. x  A) y% G2 [' ]
b84fc331d858416db1ddd90b6d1b3a8f.png
: p( @8 `: n7 P/ D% q) K- ^% r
' g0 f1 [0 O9 J5 F0 m) M) u, h0 P( X
这是一个USB接口电路,连接电脑。
, A# ?$ \- ~9 o/ p3 J, a' O# N1 ?9 `( s4 [
ffeb72d7f84c491c9a62988d68871f6c.png
" @; k. R0 O. Z( @1 R

. p7 p+ |. W) T" p$ G, [
5d6c4135c7434105b8933b01c01e6b7d.png

/ c) I( t& F) Y& Z. I% j9 O
  n- I$ F1 f3 U7 k; F9 C3 Y' f% w
53f96453f21841f7b8aa51441d0aebca.png
* l5 L) `; E( I* f6 m6 I
# W5 R# c/ M5 u1 I9 j
          CH340是一个usb转串口的芯片(USB电路为5V,所以CH340芯片也是5V供电)。当然,串口的电平标准有很多,这里我们可以看到,我们是将USB转换为TTL电平,通过UART来与CPU进行通信。/ t# v+ ?$ o$ E. H$ Y
( @9 [' K- D& |* C& g) Q$ R
        CH340的接收端RXD与CPU的发送端UART1 TX  相连接,即CPU通过TX发送消息给CH340的RXD接收,然后CH340又通过UD+将信息发送给USB接口。. H  R$ E; F* z' n6 K% P9 j
3 u  x( X# v3 e! I; ]2 s* Q
       同理,CH340的接收端TXD与CPU的发送端UART1 RX  相连接。CH340通过UD-接收来自USB接口发送的信息,而CPU则通过RX来接收由CH340的TXD发送的信息。: T" w- O  P3 i: V5 e% r' E

- R7 O7 f9 b( F# \
1 [& E0 L7 k$ @7 l. S0 X- _' d
        注意:CH340也需要用外部晶振电路来驱动。因为它需要在时钟的基础上面来发送/接收数据。% X9 l" U3 g, M3 k8 @; S+ g

' ~. u9 `, X* T* B# k- N
5 k  K) |3 s) a: B( K& O5 `& A
那为什么红框处要加一个二极管D4?
* H8 \  a& I/ G0 s4 b& Z+ C3 ^        我们可以看到,CH340芯片是5V供电,而cpu是3.3V供电。当cpu的UART1 RX接收来自CH340的TXD发送的数据的时候,此时D4二极管截止,D4二极管的阳极就为上拉电阻提供的3.3V,而不是CH340芯片的5V。那么此时,cpu识别到的电平就是TTL电平3.3V,而不是5V电平。
( E+ E# X9 ~# W2 G( w) A  m! z& J# A: e8 n, i
0c8348a3a4cd4b7a9afa03f9f6427c4b.png
, \& r5 B) {' _/ e5 q
- g* i0 m2 s3 ^- `
" d, H3 @/ S4 }. ]2 Y9 q% x' p
809ddc776e8c4e388babbf9a7312cc83.png

7 B' p% a) J' B# Z) X' |5 L: K& F8 T, @% v6 q- {: G9 }
        1 y6 e: v8 @# w! `
注意:有的芯片供电是3.3V,它是不需要加这个二极管和上拉电阻的。
. q' w0 H1 q; ?( A' d( K1 G( ^: C————————————————
5 \, y6 E' H7 F5 Z( k版权声明:无敌小小雷
5 S. _9 \  {) G# b9 o如有侵权请联系删除
* [" k. ^, j: F2 K+ P9 z% G" J7 R- U( [3 k

* G% e' J/ Y! n, C: V3 ~6 J8 \. B' q+ f. ~
收藏 评论0 发布时间:2023-4-16 17:15

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版