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

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

[复制链接]
攻城狮Melo 发布时间:2023-4-16 17:15
复位电路:
: Z8 x5 }7 T) X5 y% s* I* K        复位 :让MCU回到最开始的状态。并且从头开始,重新执行程序
' g7 x9 ^& w9 P        
8 H/ t" M3 T3 \        我们什么时候需要复位?
  Y; c! f, e9 f/ P0 j                    1.烧录的时候   
: G* ?/ ~: X! \. i5 z( h; n- P# |7 n
                    2.程序跑飞了的时候, Y* }% e9 Q% t! L
2 b: i& ]$ z1 x/ q* n
                    3.上电复位(上电的时候需要复位)1 }. y# {/ i% e" O8 k& v
            & f3 g+ X# B% y& f7 W
        复位方式:( n* r; I! A4 E( j
            1.上电复位: --- 一定要有+ _! ~8 E* O0 d! h4 [
                MCU的Reset是复位引脚,当这个引脚为低电平时,单片机会产生复位。              7 c4 \9 m, {: V
" q% L; ?/ l. n
            2. 按键复位:--- 可有可无(看需求)
/ S# q+ g# I7 n5 I0 K. O                K10按下,产生复位动作& h. Z( d; C6 N# ?/ m; |9 B

  p& S8 U) _3 t6 R
6073d5f8634c424384883b4cef0e52db.png
/ I' b; [" K4 b7 c( a* ?2 F4 u
9 a2 ]* I, p6 a" T
e8534846f0224d3eacb37623da274a6e.png
" ~) s9 l& m0 y& S1 d' x( {! u6 q) }. M) J
9 D3 J- [# u+ h: k2 l* ?% C
         这是阻容复位电路。当复位引脚低电平的时候复位。当上电的瞬间,C13电容开始充电,电容处于短路状态,电容上面的电压为低电平,此时MCU复位引脚被拉低,MCU执行复位,这样就实现了上电的时候复位功能了。+ O+ j3 e+ y5 }  o
        实际上,单片机内部也有上电复位电路,那么我们之所以还要在单片机外部加上复位电路的原因是:因为外部上电复位电路复位时间较长,较长的复位时间,可以使得等电源、系统充分稳定后,MCU再来启动并执行程序,保证了MCU、系统正常运行。9 ~+ T& X+ M& y

4 [& V" T, H" F0 A+ N0 D        注意:由于电容的精度不够,而且电容还会受到温度的影响,存在温漂,所以阻容复位电路的延时并不精确。但是,阻容复位电路可以满足绝大部分的需要了。
# y$ ^3 v- `2 ^9 b
# X, L1 F2 Q7 T. X; t$ b        上电复位的目的:
7 `3 `' p4 T( |6 Y        1.等待供电电源、系统稳定后,再来启动MCU,执行程序,否则MCU、系统无法正常运行。
- A8 ~# n: A$ k% Q# D" K) n

7 b8 P" f; N" p" y, W        2.复位会初始化部分寄存器/ |! u+ g, [( L! _5 J

3 j3 Q% W3 o2 D* T0 S+ M         注意R21和C13的选择(一般选择10k电阻,104电容就可以,即:延时大约10uS)。其中,电容不能选择太小,否则C13电容很快就充满电了,那么此时电容上面就不是低电平了,但是,很有可能此时电源、系统还没有到达稳定状态。那么芯片供电电源、系统不稳定,就会导致MCU和整个系统工作有问题,有可能MCU时而启动成功,时而启动失败。& r) O7 [6 f/ U
  U7 n5 S' O6 R; I2 y3 n1 Y. I

6 b) Q0 }; @; c4 U- |, v& B 晶振电路:2 B% {7 X, I6 t9 Z2 Z/ H3 g% l

8 d  [8 `8 t! V5 N: X4 F% t
44233f9031a544da83811d46299f796e.png

* m  N# B; \3 W5 D8 d
1 X9 Y' h+ E& t. a$ @% e: ^( q! _- H
1f7815ccda634b64aee5ad584baa6dbb.png
9 J3 G# h* v+ _2 l  k, t

5 \+ d" c2 `( M: k3 y2 p
87d4285b38854f58b59786573f350131.png
9 B: L( C; k4 B

8 ?! T; p" }, M, O, ]1 e        单片机内部集成的HSI时钟源是就是RC振荡器。
' Y1 P; \7 Z2 }' ~( s# _: f) N  p6 u
c00277b3bbf742f5a0a79437234e06d7.png

# T4 `, {" w/ [. W) u8 V9 a
( ^. S, N$ p" A% r5 ]# h
        晶振电路在布线的时候,尽量靠近单片机,因为晶振引脚,PCB走线也有电容电阻效应。! l! R$ K9 @# s5 j) R  J
; Y: ~; y! Y+ \) X
c5d6b9450d4c436cadd2f520f2e8c831.png
. q0 D" E- s) Z! h3 m5 z

1 q) V8 u( y/ h  p
7988cdd7dc04412e8542c0ef9f0a846f.png
9 E9 v; i; k' V* p' y9 K

: T2 B& y( P6 ]7 J. W- [. c- _( D: Q+ x晶体振荡器分为无源晶振和有源晶振两种类型。
+ Q, s9 [& n6 s# A
% E2 v6 ^) t1 ^0 o
# H! G3 b) @1 d5 g. C- h5 J$ A6 K
无源晶振:
% M3 E+ d) g5 ]2 Q! G+ j

; D- ~$ A4 `" ~6 {
28e1001214d386f3fea73b178c0b95c6.jpg
) B  g4 |& a! u

, q/ z" B: K; _1 t8 h! c
3 x5 q& I( p4 q$ V# H- D
        无源晶振与有源晶振的英文名称不同,无源晶振为 crystal(晶体),而有源晶振则叫做 oscillator(振荡器)。, r# f% k% q3 }

, K* L" k4 e4 ]! Y$ v$ U) N& H        无源晶振是有2个引脚的无极性元件,需要借助于时钟电路才能产生振荡信号,自身无法振荡起来,所以“无源晶振”这个说法并不准确;有源晶振有 4只引脚,是一个完整的振荡器,其中除了石英晶体外,还有晶体管和阻容元件,因此体积较大。
* T! t. G3 ]5 a2 ?7 G7 R+ J7 h  {
        无源晶振和有源晶振的区别很多时候是大家直接通过观察了解到的 。尤其是针对 2520贴片晶振,3225贴片晶振, 5032贴片晶振 ,并且是四脚封装的石英晶振来说, 包括有源晶振,也包括无源晶振。
7 t5 |; s+ m( V' V  N9 I. M% ?% x. |9 q+ ^" _; {
) ]- U7 ~$ s( X+ E. l) n
有源晶振

9 R! t! j7 u8 C  Q5 L) y+ I0 F        有源晶振通常的用法:一脚悬空,二脚接地,三脚接输出,四脚接电压。
. R( r8 J. u9 h3 K, F/ _6 d% H
. U2 K; }& B4 w$ E% |. j8 V: h
        有源晶振不需要DSP的内部振荡器,信号质量好,比较稳定,而且连接方式相对简单(主要是做好电源滤波,通常使用一个电容和电感构成的 PI 型滤波网络,输出 端用一个小阻值的电阻过滤信号即可),不需要复杂的配置电路。相对于无源晶体,有源晶振的缺陷是其信号电平是固定的,需要选择好合适输出电平,灵活性较 差,而且价格高。  V) S2 w* Q' z5 J. Q( Y
* c$ B" `, z$ h# K! {1 }3 r' M
        有源晶振是由石英晶体组成的,石英晶片之所以能当为振荡器使用,是基于它的压电效应:在晶片的两个极上加一电场,会使晶体产生机械变形;在石英晶片上加上 交 变电压,晶体就会产生机械振动,同时机械变形振动又会产生交变电场,虽然这种交变电场的电压极其微弱,但其振动频率是十分稳定的。9 a5 p7 O+ z/ u' S( a, B# L

$ I- F0 P7 D" Y* E* u! X
0940bcebbb08c327518075bc7877aa4d.png
( F1 P& L2 I. y  ]) M
$ v! C6 W9 O3 a* f' J' I
        当外加交变电压的频率与 晶片的固有频率(由晶片的尺寸和形状决定)相等时,机械振动的幅度将急剧增加,这种现象称为“压电谐振”。9 K) \/ O5 T4 s2 {$ b# \- B
5 m8 Q7 b; W/ R# Q) P" R6 ^( `$ B/ F
        压电谐振状态的建立和维持都必须借助于振荡器电路才能实现。图 3 是一个串联型振荡器,晶体管 T1 和 T2 构成的两级放大器,石英晶体 XT 与电容 C2 构成 LC 电 路。在这个电路中,石英晶体相当于一个电感,C2 为可变电容器,调节其容量即可使电路进入谐振状态。该振荡器供电电压为 5V,输出波形为方波。
' a" `. Q3 J7 F# ]4 a! F5 x" |
4 q7 r  U; X: Q# Z1 j' U0 a# _
UART、RS232、RS485它们之间的区别:1 y# u2 j  f+ g; {/ Z8 h$ w
        UART,是通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),既然是“器”,显然,它就是个设备而已,要完成一个特定的功能的硬件,它本身并不是协议。那么它要完成什么功能呢?它的最基本功能,是串行数据和并行数据之间的转换。
' k4 z1 @+ g! U0 A& J: X

# V: G/ r" P$ @; I" a: I$ k4 B        这就是UART做的最基本工作,进一步的,它还要控制“发车的班次”,比如确认一个Byte的这8个bit是什么时候开始的,又是什么时候结束的,两个班次之间至少要隔多长时间的缓冲,等等。这一部分,也具有协议的特征,但是相对于道路上的协议,更具有一般性,或曰,是与车在什么道路上开,相对独立的。
7 M( A. ]. ?( G$ J* \- t! ^1 f- @4 u- s1 Y7 K; `: L! ^; O
c4b0f470f03f49a9b357a915a7af29fb.png
) }: @8 y- M3 f  m
) R! r1 w2 W) c& J* g6 ^
        RS232/RS485,是两种不同的电气协议,也就是说,是对电气特性以及物理特性的规定,作用于数据的传输通路上,它并不内含对数据的处理方式。比如,最显著的特征是:RS232使用3-15v有效电平,而UART,因为对电气特性并没有规定,所以直接使用CPU使用的电平,就是所谓的TTL电平(可能在0~3.3V之间)。更具体的,电气的特性也决定了线路的连接方式,比如RS232,规定用电平表示数据,因此线路就是单线路的,用两根线才能达到全双工的目的;而RS485, 使用差分电平表示数据,因此,必须用两根线才能达到传输数据的基本要求,要实现全双工,必需用4根线。但是,无论使用RS232还是RS485,它们与UART是相对独立的,但是由于电气特性的差别,必须要有专用的器件和UART接驳,才能完成数据在线路和UART之间的正常流动。/ D1 t+ S* a0 t- U, x- U' e# q% u
' v7 a, A+ @- D8 ^# {
        UART、RS232、RS485它们实际上都是串口上面的属性,只不过它们的功能不一样。UART的功能是将串行转并行,而RS232、RS485是一种电平标准7 l% b" P+ [& @, l
8 {; b8 u; i% [1 W0 \& W

4 Y9 }; H9 u! w" @8 i8 iTTL电平信号:
  u$ A  k+ ^# G  |3 k
: Z0 z5 b. {1 j) R. TTTL电平标准:0 v. n3 K# J3 W! x1 ?9 Y, ?1 v
输出 L: <0.8V ;& h/ m, a1 u+ \/ ]: I$ W
输出 H:>2.4V。) h; Y4 F. `, F0 z/ A9 T0 o1 Z
输入 L: <1.2V ;; b3 l# @+ ?: R# k# ?* U+ L
输入H: >2.0V。
$ L$ M) _; ^( w, r% P) H
2 S) a* O6 F) R        TTL电平信号之所以被广泛使用,原因是:通常我们采用二进制来表示数据。而且规定,+5V等价于逻辑“1”,0V等价于逻辑“0”。这样的数据通信及电平规定方式,被称做TTL(晶体管-晶体管逻辑电平)信号系统。
" e7 X/ L8 v1 `# m. L4 H5 }3 E
# X+ E7 T4 ~' r+ p
        TTL电平长距离传输不了,抗干扰不行,衰减也大。长距离传输过程只能用RS232电平或者485电平,后者更远,在发送部分将TTL转换后,传输,接收部分再将传输电平转换为TTL电平。TTL作为逻辑电平很好,但是长距离传输确实能力有限。; p5 A, M: U( N- O, X& ]7 V
  J# Y2 w% C' s3 r) v0 b6 O. d
: _% t* l. U- G
RS232串口
$ b2 A+ C  z4 L( h' j9 d    RS232是计算机与通信工业应用中最广泛一种串行接口。它以全双工方式工作,需要地线、发送线和接收线三条线。RS232只能实现点对点的通信方式。
9 H1 C1 ^: a+ ~+ |   RS232串口缺点& k6 f, M/ q6 A- I- t
    ●接口信号电平值较高,接口电路芯片容易损坏。% Q# B4 N; X# k" |3 p6 O2 D
    ●传输速率低,最高波特率19200bps。% E* T7 {9 j7 V$ Q2 w
    ●抗干扰能力较差。
6 H# d+ J& J& e  q; R: y  M    ●传输距离有限,一般在15m以内。: y! u  t9 l$ X' X. ~2 P
    ●只能实现点对点的通讯方式。
) M& e; d& j3 W6 [. B6 h   RS232串口接口定义, B: F& O( I$ K9 X" M/ v5 l4 R
    RXD:接收数据,TXD:发送数据,GND/SG:信号地。7 E  G' Q, w2 o: ^# I8 V0 Y

/ f: z  S$ k( G  J: B逻辑1(MARK)=-3V~-15V
% h4 k& h7 q+ j, y8 ?* a8 j* Z
* c5 E, |" S2 _2 W* B! b* _逻辑0(SPACE)=+3~+15V! O9 V) f( t4 v* F" B) x; F
! P7 {. h+ U( i( A% z% t
9 q" f/ a/ C" G1 h+ U7 [5 V
RS485串口: B- q- }* B) ~' _5 @* n9 j% d
      RS485串口特点- @% v: o# A" k
    ●RS485采用平衡发送和差分接收,具有良好的抗干扰能力,信号能传输上千米。
. f' z8 T3 T" i2 S2 V" Q& T5 q    ●RS485有两线制和四线制两种接线。采用四线制时,只能实现点对多的通讯(即只能有一个主设备,其余为从设备)。四线制现在很少采用,现在多采用两线制接线方式。
6 H1 \5 a5 Q- {, b$ z1 F% P' @# V    ●两线制RS485只能以半双式方式工作,收发不能同时进行。
2 A* r* \1 L$ |4 m    ●RS485在同一总线上最多可以接32个结点,可实现真正的多点通讯,但一般采用的是主从通信方式,即一个主机带多个从机。
+ Q3 ?! B: M( ?    ●因RS485接口具有良好的抗干扰能力,长的传输距离和多站能力等优点使其成为首选的串行接口。   
% J  n5 w% C0 J2 c9 |5 O1 _" r' [+ s" }* `" m. m/ u' G
        通常情况下,发送驱动器A、B之间的正电平在+2~+6V,负电平在-2~6V,另有一个信号地C。5 r* M. ~. ~+ a. A- u5 x

; n( ]1 a7 O/ i

5 F2 r- v8 W) h- {; B% A- dUSB电平:+ m2 k1 p. e4 A( w! A, i1 Y7 y
电源线是5V,为USB设备提供最大500mA的电流,它与数据线上的电平无关,数据线是差分信号,通常D+和D-在+400mV~-400mV间变化,在传统的单端(Single-ended)通信中,一条线路来传输一个比特位。高电平表示1,低电平表示0。倘若在数据传输过程中受到干扰,高低电平信号完全可能因此产生突破临界值的大幅度扰动,一旦高电平或低电平信号超出临界值,信号就会出错。在差分传输电路中,输出电平为正电压时表示逻辑“1”,输出负电压时表示逻辑“0”,而输出“0”电压是没有意义的,它既不代表“1”,也不代表“0”。
. ]# `6 O# b" A& `# l
+ p: N% a& l3 n

% w9 W' r$ @2 `+ u9 P$ \% L* F  YCMOS电平
1 F) d  P$ }3 p$ Q2 T% x        COMS集成电路是互补对称金属氧化物半导体(Compiementary symmetry metal oxide semicoductor)集成电路的英文缩写,电路的许多基本逻辑单元都是用增强型PMOS晶体管和增强型NMOS管按照互补对称形式连接的,静态功耗很小。. W" g0 ?# k6 W0 V- {! a* M
3 v; B3 i6 j7 q0 P) I' O: n6 S+ C
        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电路中不适用的输入端不能悬空,否则逻辑混乱。
, c  J  k& M) E# |$ b' |
9 k$ l0 K# A8 O
4 [8 [& d! a  K5 Z6 q
USB转串口电路:
/ M( ^1 v4 B' Z* L/ B9 a- A% E! t( l1 R" [, z+ Q$ B
b84fc331d858416db1ddd90b6d1b3a8f.png

% C$ b4 `5 ~9 s0 a& r
. ^, n1 W6 c! U# p' ?( t 这是一个USB接口电路,连接电脑。1 S; _- H" H, U9 K$ V/ ~
9 v4 q" s5 u& _. T( {1 j3 [
ffeb72d7f84c491c9a62988d68871f6c.png
( v2 y* _7 S! B, a3 ~1 s. l- G
* J% e) l$ D9 l7 f
5d6c4135c7434105b8933b01c01e6b7d.png

6 ?" N$ [- p/ S4 D5 y2 Y) M8 w
: c. t7 z7 |( ^9 S# y! ^2 b1 ?
53f96453f21841f7b8aa51441d0aebca.png

, \! l. z- u$ G5 F$ r. r" y5 C) \; z
  l+ Q# \  t- I" Y' F( D+ Z4 H          CH340是一个usb转串口的芯片(USB电路为5V,所以CH340芯片也是5V供电)。当然,串口的电平标准有很多,这里我们可以看到,我们是将USB转换为TTL电平,通过UART来与CPU进行通信。- P& @( N3 S- d/ v8 E

# K: O4 Z4 m8 W/ b0 F  q        CH340的接收端RXD与CPU的发送端UART1 TX  相连接,即CPU通过TX发送消息给CH340的RXD接收,然后CH340又通过UD+将信息发送给USB接口。
  O) U, |3 n$ c" O/ U  j" L% x: p+ s7 A8 }# M
       同理,CH340的接收端TXD与CPU的发送端UART1 RX  相连接。CH340通过UD-接收来自USB接口发送的信息,而CPU则通过RX来接收由CH340的TXD发送的信息。
1 w- ?1 g: @7 _% w/ b2 x' ]+ R4 c0 B* a8 m$ H- J/ h1 a( _2 ?) T& v+ s

" ]$ X4 F8 X2 O+ c1 z        注意:CH340也需要用外部晶振电路来驱动。因为它需要在时钟的基础上面来发送/接收数据。
* m. j) D+ \4 c4 g1 k
! A% i# ?# w9 _* d9 Q

) U1 s* W" S8 |那为什么红框处要加一个二极管D4?' p  t' a. ~/ G4 a5 Y5 n( D7 k
        我们可以看到,CH340芯片是5V供电,而cpu是3.3V供电。当cpu的UART1 RX接收来自CH340的TXD发送的数据的时候,此时D4二极管截止,D4二极管的阳极就为上拉电阻提供的3.3V,而不是CH340芯片的5V。那么此时,cpu识别到的电平就是TTL电平3.3V,而不是5V电平。
: |4 S% h3 P9 g2 F2 u4 b
& X7 h/ M: D$ B/ G. q
0c8348a3a4cd4b7a9afa03f9f6427c4b.png
: w& H; p( ^' O

- P" ^; \: n% C* u+ R. Q; A
2 h. q& J' ~; S+ ~2 M
809ddc776e8c4e388babbf9a7312cc83.png

& `4 s. ^; ^* T/ m: b2 \1 L
3 e% X1 b6 V& N        ' [* M0 x: A2 W' O! u- E/ B
注意:有的芯片供电是3.3V,它是不需要加这个二极管和上拉电阻的。
3 G0 ^4 W2 a6 g, Z————————————————" c5 d: R: p2 j9 m* s
版权声明:无敌小小雷# t: V0 e" {( b
如有侵权请联系删除
# [# s5 ~8 U( x$ \5 R2 r1 g" @" w! y6 L; }
- d  `, d. g! v  ~# o

( w# R" t: ]* Y; c
收藏 评论0 发布时间:2023-4-16 17:15

举报

0个回答

所属标签

相似技术帖

官网相关资源

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