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

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

[复制链接]
攻城狮Melo 发布时间:2023-4-16 17:15
复位电路:
) ?: Q( }& N% x0 \( F        复位 :让MCU回到最开始的状态。并且从头开始,重新执行程序# n" L% i9 Z8 X; K; v6 H2 f
        8 b6 M+ c  C$ s" ~) V. M6 X. q9 m
        我们什么时候需要复位?
. r8 p: w1 t; O# U; k( L+ p                    1.烧录的时候   ) j* r* K( E1 L; u9 L/ J
0 v0 e1 R" I3 P& u' c6 e9 X
                    2.程序跑飞了的时候6 R$ z3 H% \/ K9 ?8 }
: I5 @9 b! G) e8 \, S$ A- a+ Y
                    3.上电复位(上电的时候需要复位)$ k! F! {: m% W, `/ Q# Y
            
. V) ?0 L' p# P) c$ B        复位方式:) m5 I' c9 u7 g& i" |, L
            1.上电复位: --- 一定要有" |) N  O$ r2 s, D
                MCU的Reset是复位引脚,当这个引脚为低电平时,单片机会产生复位。              : y4 M8 M; ^4 [) z. K" A
/ o; t1 n& R6 N
            2. 按键复位:--- 可有可无(看需求)1 t# }$ c+ E" c
                K10按下,产生复位动作
% b0 F& u; L0 r  Y- u% \1 @5 @) @1 i: s5 R) }- S  K/ c1 S
6073d5f8634c424384883b4cef0e52db.png
: w+ y/ G/ W+ z6 B- Y( d' Z
0 \) k; `( c" `
e8534846f0224d3eacb37623da274a6e.png

( J; p' p% ^) \  @- L( f1 B7 u+ e: w" }7 u' v
         这是阻容复位电路。当复位引脚低电平的时候复位。当上电的瞬间,C13电容开始充电,电容处于短路状态,电容上面的电压为低电平,此时MCU复位引脚被拉低,MCU执行复位,这样就实现了上电的时候复位功能了。
! q4 T0 H2 O5 y8 H
        实际上,单片机内部也有上电复位电路,那么我们之所以还要在单片机外部加上复位电路的原因是:因为外部上电复位电路复位时间较长,较长的复位时间,可以使得等电源、系统充分稳定后,MCU再来启动并执行程序,保证了MCU、系统正常运行。
) X9 [% z- \% F5 I
  @: b  m: ^0 G+ c- w* P/ A        注意:由于电容的精度不够,而且电容还会受到温度的影响,存在温漂,所以阻容复位电路的延时并不精确。但是,阻容复位电路可以满足绝大部分的需要了。* m+ S, ]2 Z: V9 i. y

# W( [" H) W% p( \. A& D: N        上电复位的目的:
) n6 V$ [5 _/ _8 K* \' O        1.等待供电电源、系统稳定后,再来启动MCU,执行程序,否则MCU、系统无法正常运行。
) q# _9 z# h, w8 ~0 t$ S, q! W4 |

: s3 W  I( @! C0 n5 \2 ?0 {* k        2.复位会初始化部分寄存器" [2 ?. d1 }: w: ~

  v2 x8 Y( Y1 e6 m. _         注意R21和C13的选择(一般选择10k电阻,104电容就可以,即:延时大约10uS)。其中,电容不能选择太小,否则C13电容很快就充满电了,那么此时电容上面就不是低电平了,但是,很有可能此时电源、系统还没有到达稳定状态。那么芯片供电电源、系统不稳定,就会导致MCU和整个系统工作有问题,有可能MCU时而启动成功,时而启动失败。
3 E* u4 }9 i  `" o) v: r1 T, e
7 j  {$ u$ U6 d  X7 Q

/ N. z% X! a4 z* z1 o; ]. Q4 d 晶振电路:0 [) b! |" b  |, t5 {! o
8 s  U+ l0 C) r9 }
44233f9031a544da83811d46299f796e.png
/ l& {+ E+ A* f$ T

' e( K$ R* l" Z+ I" F
1f7815ccda634b64aee5ad584baa6dbb.png

4 m/ |, W/ j' b! Y9 T( _4 l
7 D5 k0 w$ h5 o
87d4285b38854f58b59786573f350131.png
% Z- P9 K  V; z/ B
! t7 \2 @" q* v
        单片机内部集成的HSI时钟源是就是RC振荡器。
9 x0 ~8 J, n! I& i" ~" y4 ~$ ?0 H) M+ s
c00277b3bbf742f5a0a79437234e06d7.png

5 c; G/ L7 ^6 x( s% A3 M
8 [6 D1 g4 w: ~: l" j4 t/ i
        晶振电路在布线的时候,尽量靠近单片机,因为晶振引脚,PCB走线也有电容电阻效应。
; Z3 D+ ]9 H" E  H8 ]; C1 z$ x  ~- t
c5d6b9450d4c436cadd2f520f2e8c831.png

- v( S) D% r/ }: Y, v& C# u; H) ?, @4 s
7988cdd7dc04412e8542c0ef9f0a846f.png

: u$ h' ]2 |2 i# E$ c" g  p* n: n$ L: t
晶体振荡器分为无源晶振和有源晶振两种类型。. b+ b8 j" s. A" n

9 D, D9 w0 Q0 p# f; Z0 c- r, x8 ~9 U

0 M; M, b6 p3 t5 c7 e, B% Z3 Y3 }6 x无源晶振:
; q- m' J$ W- W, U: J9 x

- ]- o# x* G) y9 I% A
28e1001214d386f3fea73b178c0b95c6.jpg

: I9 ^; @& h  V5 f
; u; y5 v2 W& N, P

% ?6 k4 t( X- ^        无源晶振与有源晶振的英文名称不同,无源晶振为 crystal(晶体),而有源晶振则叫做 oscillator(振荡器)。6 ?( J: Q, ?# l! L, \. f6 }

& K* s- O( u* i2 s) P        无源晶振是有2个引脚的无极性元件,需要借助于时钟电路才能产生振荡信号,自身无法振荡起来,所以“无源晶振”这个说法并不准确;有源晶振有 4只引脚,是一个完整的振荡器,其中除了石英晶体外,还有晶体管和阻容元件,因此体积较大。# {) K! M$ w& \6 C; [% J1 g

2 P& Q5 N* h* d5 _        无源晶振和有源晶振的区别很多时候是大家直接通过观察了解到的 。尤其是针对 2520贴片晶振,3225贴片晶振, 5032贴片晶振 ,并且是四脚封装的石英晶振来说, 包括有源晶振,也包括无源晶振。
2 C) w5 _& y4 C4 L) n
1 R& G& K3 Y& r% |9 q* L

. p" d0 ]; p9 g( z* s, }有源晶振
# L" ~6 R; b) G! C
        有源晶振通常的用法:一脚悬空,二脚接地,三脚接输出,四脚接电压。
# G5 Q* F4 \, N$ I6 k

3 U( k! _4 v' J        有源晶振不需要DSP的内部振荡器,信号质量好,比较稳定,而且连接方式相对简单(主要是做好电源滤波,通常使用一个电容和电感构成的 PI 型滤波网络,输出 端用一个小阻值的电阻过滤信号即可),不需要复杂的配置电路。相对于无源晶体,有源晶振的缺陷是其信号电平是固定的,需要选择好合适输出电平,灵活性较 差,而且价格高。
4 A5 l4 U7 n, ^- h5 T$ k

! e; I& h5 N* A6 G% m, r        有源晶振是由石英晶体组成的,石英晶片之所以能当为振荡器使用,是基于它的压电效应:在晶片的两个极上加一电场,会使晶体产生机械变形;在石英晶片上加上 交 变电压,晶体就会产生机械振动,同时机械变形振动又会产生交变电场,虽然这种交变电场的电压极其微弱,但其振动频率是十分稳定的。! f8 u4 `, T3 J
+ J# \6 G9 G7 T# t8 H3 s
0940bcebbb08c327518075bc7877aa4d.png
7 F/ L/ i, p; Z- u
3 w6 |1 P7 J1 M' S  O
        当外加交变电压的频率与 晶片的固有频率(由晶片的尺寸和形状决定)相等时,机械振动的幅度将急剧增加,这种现象称为“压电谐振”。$ D+ d, Q9 ^$ Y7 Q1 N  j3 @
" x! j: z5 c( Q: U* K
        压电谐振状态的建立和维持都必须借助于振荡器电路才能实现。图 3 是一个串联型振荡器,晶体管 T1 和 T2 构成的两级放大器,石英晶体 XT 与电容 C2 构成 LC 电 路。在这个电路中,石英晶体相当于一个电感,C2 为可变电容器,调节其容量即可使电路进入谐振状态。该振荡器供电电压为 5V,输出波形为方波。
5 O/ b6 M9 [, n( `4 S5 c0 x

, t# ^% w0 o0 z' sUART、RS232、RS485它们之间的区别:
9 ]0 q' {2 g& Y# W+ E: t  k        UART,是通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),既然是“器”,显然,它就是个设备而已,要完成一个特定的功能的硬件,它本身并不是协议。那么它要完成什么功能呢?它的最基本功能,是串行数据和并行数据之间的转换。
  B: P( U* C9 Z: f$ k% K; e$ R* K8 D/ ?

: G* E) m$ m$ C! j4 ]  b7 X& L* N        这就是UART做的最基本工作,进一步的,它还要控制“发车的班次”,比如确认一个Byte的这8个bit是什么时候开始的,又是什么时候结束的,两个班次之间至少要隔多长时间的缓冲,等等。这一部分,也具有协议的特征,但是相对于道路上的协议,更具有一般性,或曰,是与车在什么道路上开,相对独立的。* m5 b: f- P6 q" T
% |, b. P' }" |* [4 B* Y7 q
c4b0f470f03f49a9b357a915a7af29fb.png

6 M" A5 `! e* @  o# ]4 l' M' E0 L; ~8 x1 F  }& B
        RS232/RS485,是两种不同的电气协议,也就是说,是对电气特性以及物理特性的规定,作用于数据的传输通路上,它并不内含对数据的处理方式。比如,最显著的特征是:RS232使用3-15v有效电平,而UART,因为对电气特性并没有规定,所以直接使用CPU使用的电平,就是所谓的TTL电平(可能在0~3.3V之间)。更具体的,电气的特性也决定了线路的连接方式,比如RS232,规定用电平表示数据,因此线路就是单线路的,用两根线才能达到全双工的目的;而RS485, 使用差分电平表示数据,因此,必须用两根线才能达到传输数据的基本要求,要实现全双工,必需用4根线。但是,无论使用RS232还是RS485,它们与UART是相对独立的,但是由于电气特性的差别,必须要有专用的器件和UART接驳,才能完成数据在线路和UART之间的正常流动。
4 ]/ C3 F/ @* Q+ U4 I" O% c

0 p1 m5 W/ q& e. n. t2 }5 d        UART、RS232、RS485它们实际上都是串口上面的属性,只不过它们的功能不一样。UART的功能是将串行转并行,而RS232、RS485是一种电平标准- ^8 V4 m- Y- D( @+ V

1 V, J  N  @& E" e4 K2 C
0 ?" U9 v  G/ ITTL电平信号:
- A' m8 x0 Y) V4 x5 y9 Y; u0 q" ^! H0 c% N& s6 r' `* s& |, v
TTL电平标准:
1 U3 o. D  w; s输出 L: <0.8V ;# u8 x4 F# |$ p4 M
输出 H:>2.4V。8 R/ e3 ]2 I0 t9 r4 a
输入 L: <1.2V ;8 H1 C+ r: s: x; R- E# L
输入H: >2.0V。3 c6 ?' n* }; R' l$ y; }' q
7 u* U$ M4 n. F8 v9 {% r) K
        TTL电平信号之所以被广泛使用,原因是:通常我们采用二进制来表示数据。而且规定,+5V等价于逻辑“1”,0V等价于逻辑“0”。这样的数据通信及电平规定方式,被称做TTL(晶体管-晶体管逻辑电平)信号系统。
/ b3 {) ~* @& D. Y% H0 y3 C

+ z& [1 E4 V! C' ]3 s% D9 v( f) k        TTL电平长距离传输不了,抗干扰不行,衰减也大。长距离传输过程只能用RS232电平或者485电平,后者更远,在发送部分将TTL转换后,传输,接收部分再将传输电平转换为TTL电平。TTL作为逻辑电平很好,但是长距离传输确实能力有限。
6 R* a6 j0 k, B* B0 M5 o, L' S
' @2 n( X4 D) T2 D8 c& o) Z1 b
; T- Q1 D; h4 {5 E& R- v* Z
RS232串口* W' V, P, h0 F
    RS232是计算机与通信工业应用中最广泛一种串行接口。它以全双工方式工作,需要地线、发送线和接收线三条线。RS232只能实现点对点的通信方式。( Y/ U$ G. q) X
   RS232串口缺点7 j4 [. f" O8 Q& _
    ●接口信号电平值较高,接口电路芯片容易损坏。
; ~3 b# A1 E1 e6 l# y0 y0 O    ●传输速率低,最高波特率19200bps。; B" F4 A9 D5 k% r* \1 a
    ●抗干扰能力较差。/ f  {' }8 T2 a7 v  N; P
    ●传输距离有限,一般在15m以内。
: g0 ]& Q" R/ X. X8 m    ●只能实现点对点的通讯方式。
8 M# [2 q4 r. m9 A   RS232串口接口定义
( ?6 O# q$ y7 i& ]1 R    RXD:接收数据,TXD:发送数据,GND/SG:信号地。- }: ?& C3 Y; ^  F

2 S! Z& k9 \6 J6 m1 ?, B逻辑1(MARK)=-3V~-15V0 ~" l3 C1 N' `" o/ }
- X/ Y' U. V( {- r/ ]
逻辑0(SPACE)=+3~+15V
- t. ?; P* x( b# I9 n3 a2 A; n+ `  z: B4 Z- h: L; y

; `$ ~. S/ O: S! r RS485串口
- Q7 {8 {- F' @$ e* N$ N, ^      RS485串口特点
9 M! C9 Q% t. n    ●RS485采用平衡发送和差分接收,具有良好的抗干扰能力,信号能传输上千米。* o3 G# D+ U5 ~
    ●RS485有两线制和四线制两种接线。采用四线制时,只能实现点对多的通讯(即只能有一个主设备,其余为从设备)。四线制现在很少采用,现在多采用两线制接线方式。; f1 l8 I  s# N% E
    ●两线制RS485只能以半双式方式工作,收发不能同时进行。. P& c+ x+ G6 x/ q0 |, {& f
    ●RS485在同一总线上最多可以接32个结点,可实现真正的多点通讯,但一般采用的是主从通信方式,即一个主机带多个从机。; g0 l/ c. Y! N$ z
    ●因RS485接口具有良好的抗干扰能力,长的传输距离和多站能力等优点使其成为首选的串行接口。   
. h1 m' x3 z# g/ k
6 J2 m: D# ?! A3 [1 N        通常情况下,发送驱动器A、B之间的正电平在+2~+6V,负电平在-2~6V,另有一个信号地C。( z- e% O- j1 ]

+ ]1 V) e5 D- d

" ?& c) G1 V$ |) ~2 R" XUSB电平:
8 V2 I  M" e5 T% s4 k! M7 O' \电源线是5V,为USB设备提供最大500mA的电流,它与数据线上的电平无关,数据线是差分信号,通常D+和D-在+400mV~-400mV间变化,在传统的单端(Single-ended)通信中,一条线路来传输一个比特位。高电平表示1,低电平表示0。倘若在数据传输过程中受到干扰,高低电平信号完全可能因此产生突破临界值的大幅度扰动,一旦高电平或低电平信号超出临界值,信号就会出错。在差分传输电路中,输出电平为正电压时表示逻辑“1”,输出负电压时表示逻辑“0”,而输出“0”电压是没有意义的,它既不代表“1”,也不代表“0”。1 s) j; `) s- L# Q: q) g
# y7 M7 l# U, }+ R
. w) V7 v+ d, d8 V: ^4 }
CMOS电平2 ~! U& u4 m4 k) x/ L( M1 ]6 M
        COMS集成电路是互补对称金属氧化物半导体(Compiementary symmetry metal oxide semicoductor)集成电路的英文缩写,电路的许多基本逻辑单元都是用增强型PMOS晶体管和增强型NMOS管按照互补对称形式连接的,静态功耗很小。# z- q( n$ Z! g, n( e1 q: m
9 q' o$ a8 M" k
        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电路中不适用的输入端不能悬空,否则逻辑混乱。
" }3 S7 s5 e/ c  _0 _! B6 x
; o/ O6 a4 X& v6 X: O
( I" c: X0 Z* ]5 `! @
USB转串口电路:
( q  ^: R  K7 Y- {( }7 e
2 Y  U' t0 p, y8 U
b84fc331d858416db1ddd90b6d1b3a8f.png
: G: l9 t, P/ r
- L/ \% Y1 C: U# n
这是一个USB接口电路,连接电脑。
5 R0 N& Q3 d! v) r; ?8 y: `% [( b7 p/ l) P5 h  K8 R) n4 z
ffeb72d7f84c491c9a62988d68871f6c.png

; g, u- b2 D; e" c+ c  M; y' s6 F: h9 r5 @4 o0 Y! t7 S; \
5d6c4135c7434105b8933b01c01e6b7d.png
+ A  @3 o5 h2 ^

2 y! D- t2 U) I
53f96453f21841f7b8aa51441d0aebca.png

" i) k6 x' \% }3 Q; a- U
6 m4 o, u$ O  Z+ D' k% V4 k1 P          CH340是一个usb转串口的芯片(USB电路为5V,所以CH340芯片也是5V供电)。当然,串口的电平标准有很多,这里我们可以看到,我们是将USB转换为TTL电平,通过UART来与CPU进行通信。
1 Y7 u* {7 L- R/ C/ m; W" t% o$ Y3 C# R
& q/ A) k; p) n* z
        CH340的接收端RXD与CPU的发送端UART1 TX  相连接,即CPU通过TX发送消息给CH340的RXD接收,然后CH340又通过UD+将信息发送给USB接口。" m8 W. q6 O/ C* M

6 a) P" L" `' f8 e9 u* X  I       同理,CH340的接收端TXD与CPU的发送端UART1 RX  相连接。CH340通过UD-接收来自USB接口发送的信息,而CPU则通过RX来接收由CH340的TXD发送的信息。5 n* N4 n* A7 q9 }5 ~- K3 ^

3 z* f, q0 F, T8 h/ ]% y0 G  a

9 `$ q3 z/ J' N" }# ]; v+ o. q        注意:CH340也需要用外部晶振电路来驱动。因为它需要在时钟的基础上面来发送/接收数据。  r4 }5 z. N: E, ^0 E( j+ k, [+ P

( a7 E  A5 J  G
. a5 F- @& G+ {0 A2 ]. @4 ^/ R9 H
那为什么红框处要加一个二极管D4?2 b0 U/ `: u/ |, P% d6 l  p! A* A
        我们可以看到,CH340芯片是5V供电,而cpu是3.3V供电。当cpu的UART1 RX接收来自CH340的TXD发送的数据的时候,此时D4二极管截止,D4二极管的阳极就为上拉电阻提供的3.3V,而不是CH340芯片的5V。那么此时,cpu识别到的电平就是TTL电平3.3V,而不是5V电平。
% G. z' \8 F- R8 `+ ]4 d7 |/ k2 Q7 ?0 `9 ]6 H. O
0c8348a3a4cd4b7a9afa03f9f6427c4b.png
6 q5 C, s% g9 Y, i, s8 b1 H

1 J+ n- F/ d% @7 N% e- ~0 s
* J7 p2 W$ E) o6 J
809ddc776e8c4e388babbf9a7312cc83.png

( F/ v. W2 }+ x& W, D+ ?! C! y0 _5 \& Y* f0 y; J
        6 ^  T3 _; L$ l# g
注意:有的芯片供电是3.3V,它是不需要加这个二极管和上拉电阻的。; `2 p9 Q7 @+ K2 g: F& J
————————————————
9 |2 p, w# \. C版权声明:无敌小小雷
% d4 D  d8 [( X如有侵权请联系删除
) m" S, R9 r- }/ P) A% [. v. r. t- t( |1 d! e$ j
/ H8 G. O, U& s. Q1 t1 l
/ l* `: v+ X0 e& ~3 J0 ?; D
赞 收藏 评论0 发布时间:2023-4-16 17:15

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版