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

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

[复制链接]
攻城狮Melo 发布时间:2023-4-16 17:15
复位电路:) F6 p0 i% f5 Q; y/ u8 M2 L
        复位 :让MCU回到最开始的状态。并且从头开始,重新执行程序
6 D2 F' O) N& E! }        ; \; o8 f- R' h+ K! \
        我们什么时候需要复位?# j$ S( |0 q' d- y$ ]  L
                    1.烧录的时候   * W& A# J  D1 H' W

2 {5 @' o8 k+ K$ b                    2.程序跑飞了的时候
+ K' i8 z* y8 P, E3 C. I$ J& s' O5 `8 \8 l: V+ d& i+ F
                    3.上电复位(上电的时候需要复位)& b9 b$ a# t/ V
            8 q9 }7 I' k: l5 C
        复位方式:3 Q- {' K& A" P% w
            1.上电复位: --- 一定要有
- k: e) u, L0 c5 l5 Y- R& k0 f                MCU的Reset是复位引脚,当这个引脚为低电平时,单片机会产生复位。              
& t7 T- `" s+ Q. E3 i0 I
" T6 T2 ?+ c' O            2. 按键复位:--- 可有可无(看需求)
0 }2 [( e8 ?& p/ a                K10按下,产生复位动作
3 V1 o" h6 l# U# t6 h1 L' @* Y' K, j% m2 i& a' d- {' y2 x0 f1 q. O+ e& V
6073d5f8634c424384883b4cef0e52db.png

6 S- X4 r( ?" K- N" C
7 s* |: i& v: O
e8534846f0224d3eacb37623da274a6e.png
8 h9 X! i* l, Y" T- @
5 p8 G2 l6 S2 u+ {( O
         这是阻容复位电路。当复位引脚低电平的时候复位。当上电的瞬间,C13电容开始充电,电容处于短路状态,电容上面的电压为低电平,此时MCU复位引脚被拉低,MCU执行复位,这样就实现了上电的时候复位功能了。
6 x3 H! ]* }9 L+ \3 ^
        实际上,单片机内部也有上电复位电路,那么我们之所以还要在单片机外部加上复位电路的原因是:因为外部上电复位电路复位时间较长,较长的复位时间,可以使得等电源、系统充分稳定后,MCU再来启动并执行程序,保证了MCU、系统正常运行。1 {6 D0 {% x5 r4 R/ i

( f3 \/ C6 W7 h& i        注意:由于电容的精度不够,而且电容还会受到温度的影响,存在温漂,所以阻容复位电路的延时并不精确。但是,阻容复位电路可以满足绝大部分的需要了。2 y1 d* m3 {! s8 ~1 e

8 L+ U! F2 U: ?1 U. n        上电复位的目的:
- M% n9 e6 b; m        1.等待供电电源、系统稳定后,再来启动MCU,执行程序,否则MCU、系统无法正常运行。: |( H0 \3 O# D+ ^* B- H
1 D/ L* y- H* M& [2 x
        2.复位会初始化部分寄存器
! ^' x- X% ~: [. Z4 i. r6 b* a1 J7 r- R1 o
         注意R21和C13的选择(一般选择10k电阻,104电容就可以,即:延时大约10uS)。其中,电容不能选择太小,否则C13电容很快就充满电了,那么此时电容上面就不是低电平了,但是,很有可能此时电源、系统还没有到达稳定状态。那么芯片供电电源、系统不稳定,就会导致MCU和整个系统工作有问题,有可能MCU时而启动成功,时而启动失败。- u. \! Q$ C5 t' T! f4 V' I0 m
! _: E0 P# H8 E! X! J1 R9 P# g
, o6 I5 S/ o! y5 i
晶振电路:* _3 [) [6 H. P4 g/ w0 p

# ?7 c( y- z0 [3 M9 `3 c; R
44233f9031a544da83811d46299f796e.png
4 m' Z/ Z) U. t/ W! _0 T8 m" U- G

) t, B3 _8 Y/ {" T. E
1f7815ccda634b64aee5ad584baa6dbb.png
) I2 ^* m5 v2 S0 Q

5 J" h3 e) i4 V/ z2 ?) w
87d4285b38854f58b59786573f350131.png
% L! A. U, U/ X5 Z) f7 o

7 u0 P: J  K' a5 m1 |        单片机内部集成的HSI时钟源是就是RC振荡器。
4 Q/ H# q7 {% A* D5 n7 x3 q* u
/ e, R) Q# L7 F
c00277b3bbf742f5a0a79437234e06d7.png

( i% N9 t7 ]) u/ U+ m

# z7 q& a8 s& A; g; l        晶振电路在布线的时候,尽量靠近单片机,因为晶振引脚,PCB走线也有电容电阻效应。
, ~, z( v  Q/ A' Y( G* m: K# W  f3 v& m: X0 S, E0 D% I
c5d6b9450d4c436cadd2f520f2e8c831.png

$ a+ t, v: I( o3 `5 ]/ z# M4 p8 k
: Z3 u2 e2 Z, m& t2 F
7988cdd7dc04412e8542c0ef9f0a846f.png
6 s" A( R; L1 U- t5 g3 H' f
2 g0 T- |1 q1 W* E+ ~% n9 L; |+ V4 h
晶体振荡器分为无源晶振和有源晶振两种类型。
* F: Z3 N! |1 _( S4 H
& ^6 |9 @1 b' h7 ?/ j4 |: o% e. ^

& V0 {0 Q' F3 F. C% `无源晶振:

6 }. O/ \$ ?( t' T  v
! v" y0 M( E5 d8 O" d
28e1001214d386f3fea73b178c0b95c6.jpg
, `6 p6 t% p+ Z. M: i

- B. `4 c- D" p2 B
% V; H5 b" p9 j# U
        无源晶振与有源晶振的英文名称不同,无源晶振为 crystal(晶体),而有源晶振则叫做 oscillator(振荡器)。
0 @5 |& u, |7 ]6 p5 C, c2 }5 R- E4 K% e* N* u
        无源晶振是有2个引脚的无极性元件,需要借助于时钟电路才能产生振荡信号,自身无法振荡起来,所以“无源晶振”这个说法并不准确;有源晶振有 4只引脚,是一个完整的振荡器,其中除了石英晶体外,还有晶体管和阻容元件,因此体积较大。
' I6 Z  k' c& T& s* F, Q6 k( v
0 l: g  t3 z0 R# _1 s        无源晶振和有源晶振的区别很多时候是大家直接通过观察了解到的 。尤其是针对 2520贴片晶振,3225贴片晶振, 5032贴片晶振 ,并且是四脚封装的石英晶振来说, 包括有源晶振,也包括无源晶振。
  f+ c" ?9 U. N5 L; `( X
. D5 a9 p( J5 Z3 N, P8 v, \
$ k& n# d9 p' C$ F6 c$ v
有源晶振

, a8 W6 {, \) P6 [" A# ~        有源晶振通常的用法:一脚悬空,二脚接地,三脚接输出,四脚接电压。8 F1 Q1 u1 m6 h, }6 ]& H9 V
2 `* @7 H' Z. N+ Q1 I4 L! f1 f2 ^
        有源晶振不需要DSP的内部振荡器,信号质量好,比较稳定,而且连接方式相对简单(主要是做好电源滤波,通常使用一个电容和电感构成的 PI 型滤波网络,输出 端用一个小阻值的电阻过滤信号即可),不需要复杂的配置电路。相对于无源晶体,有源晶振的缺陷是其信号电平是固定的,需要选择好合适输出电平,灵活性较 差,而且价格高。
7 z6 K4 B9 F  `- Q2 D2 c3 _

, ]' R! _% D, p        有源晶振是由石英晶体组成的,石英晶片之所以能当为振荡器使用,是基于它的压电效应:在晶片的两个极上加一电场,会使晶体产生机械变形;在石英晶片上加上 交 变电压,晶体就会产生机械振动,同时机械变形振动又会产生交变电场,虽然这种交变电场的电压极其微弱,但其振动频率是十分稳定的。: c7 `: O  A- A

" Z8 K! |/ Y& R: S! K0 q% r0 ?
0940bcebbb08c327518075bc7877aa4d.png

2 ~. I% y, E: g5 V& x3 F: `9 L  U
' P1 y$ ]% k& U) h        当外加交变电压的频率与 晶片的固有频率(由晶片的尺寸和形状决定)相等时,机械振动的幅度将急剧增加,这种现象称为“压电谐振”。
% V( y1 E0 z4 n7 U
, A! l7 U, i# g" B% U7 i8 \: Z: y        压电谐振状态的建立和维持都必须借助于振荡器电路才能实现。图 3 是一个串联型振荡器,晶体管 T1 和 T2 构成的两级放大器,石英晶体 XT 与电容 C2 构成 LC 电 路。在这个电路中,石英晶体相当于一个电感,C2 为可变电容器,调节其容量即可使电路进入谐振状态。该振荡器供电电压为 5V,输出波形为方波。1 K, S; m2 ^7 l9 P7 H. j; _+ @
" @, O/ J7 F; s3 n
UART、RS232、RS485它们之间的区别:1 C) h! ]& E* U4 K# T# v# s
        UART,是通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),既然是“器”,显然,它就是个设备而已,要完成一个特定的功能的硬件,它本身并不是协议。那么它要完成什么功能呢?它的最基本功能,是串行数据和并行数据之间的转换。' _7 {$ f: Z6 J; w& ^2 Z
) ]/ Z  j* a+ A& x9 c# \( V/ J
        这就是UART做的最基本工作,进一步的,它还要控制“发车的班次”,比如确认一个Byte的这8个bit是什么时候开始的,又是什么时候结束的,两个班次之间至少要隔多长时间的缓冲,等等。这一部分,也具有协议的特征,但是相对于道路上的协议,更具有一般性,或曰,是与车在什么道路上开,相对独立的。2 E/ w' w# A% ]2 g' N

& C5 X9 r0 s4 X" D7 t* p: s) q  ?
c4b0f470f03f49a9b357a915a7af29fb.png
% Q/ l# w9 ~" b% u- {8 l) L
# U2 Z' P0 u9 l
        RS232/RS485,是两种不同的电气协议,也就是说,是对电气特性以及物理特性的规定,作用于数据的传输通路上,它并不内含对数据的处理方式。比如,最显著的特征是:RS232使用3-15v有效电平,而UART,因为对电气特性并没有规定,所以直接使用CPU使用的电平,就是所谓的TTL电平(可能在0~3.3V之间)。更具体的,电气的特性也决定了线路的连接方式,比如RS232,规定用电平表示数据,因此线路就是单线路的,用两根线才能达到全双工的目的;而RS485, 使用差分电平表示数据,因此,必须用两根线才能达到传输数据的基本要求,要实现全双工,必需用4根线。但是,无论使用RS232还是RS485,它们与UART是相对独立的,但是由于电气特性的差别,必须要有专用的器件和UART接驳,才能完成数据在线路和UART之间的正常流动。
; j' c  U. N) ^: v0 Y% p: k  N3 b  G

; y; ~" M) F& i        UART、RS232、RS485它们实际上都是串口上面的属性,只不过它们的功能不一样。UART的功能是将串行转并行,而RS232、RS485是一种电平标准  |* b$ C1 d9 ^& r! g, F

# J( \& f' F: S! `/ l5 `
* E  C5 O! d# M$ U7 v5 I# M4 `1 MTTL电平信号:& M( I/ e* O/ o% K5 q
% R; V) W/ F" g4 T' G
TTL电平标准:
6 ~9 b. l( s! }! j% }% H) l/ g输出 L: <0.8V ;" P9 j, _# _4 O  A# M: O
输出 H:>2.4V。
7 }  i8 m9 s3 @7 {输入 L: <1.2V ;( _( ?% `1 M7 ]$ E
输入H: >2.0V。- c" \* T, J& X5 a8 b8 w# B' `

) ?6 b9 o# F: Z  x        TTL电平信号之所以被广泛使用,原因是:通常我们采用二进制来表示数据。而且规定,+5V等价于逻辑“1”,0V等价于逻辑“0”。这样的数据通信及电平规定方式,被称做TTL(晶体管-晶体管逻辑电平)信号系统。$ @. v  [6 i& f# Z$ h9 D5 R
8 F1 x  u* ?. L2 K& z
        TTL电平长距离传输不了,抗干扰不行,衰减也大。长距离传输过程只能用RS232电平或者485电平,后者更远,在发送部分将TTL转换后,传输,接收部分再将传输电平转换为TTL电平。TTL作为逻辑电平很好,但是长距离传输确实能力有限。  f+ r% a: p6 m, g# W

" v. E) I" h$ T

& b% n  z* ]7 E$ `1 J4 ARS232串口, u* a# ?/ \% K6 W7 x$ [4 m9 ?& W
    RS232是计算机与通信工业应用中最广泛一种串行接口。它以全双工方式工作,需要地线、发送线和接收线三条线。RS232只能实现点对点的通信方式。
% u, s1 x: T, |- ?   RS232串口缺点5 ^% c  F% F& ?. V: s3 X7 z' p
    ●接口信号电平值较高,接口电路芯片容易损坏。
4 Y( l9 v# s3 w    ●传输速率低,最高波特率19200bps。
# G* R( j2 p& v2 U  M8 U' r8 ]    ●抗干扰能力较差。
1 }$ B& c* F$ F    ●传输距离有限,一般在15m以内。/ a( }. @5 s# r0 P$ I
    ●只能实现点对点的通讯方式。
4 S9 B1 v. w8 v& M! y   RS232串口接口定义
: {+ V# |9 e; ?0 l" s    RXD:接收数据,TXD:发送数据,GND/SG:信号地。& ^5 S# o/ k& c$ K6 w0 i

: q1 _! O$ L8 m" Y3 Q逻辑1(MARK)=-3V~-15V
- y, B; M5 O6 T; h% d, ^- w& u; |8 v8 h
逻辑0(SPACE)=+3~+15V4 K5 N9 b$ M3 U2 A

' w! W* `0 r1 w9 N/ T) J/ Q2 b, u

3 Q- u+ j6 Y+ Q RS485串口0 m# }* }* W5 ~7 e2 d
      RS485串口特点
9 I  C" \4 }! o( M0 ^    ●RS485采用平衡发送和差分接收,具有良好的抗干扰能力,信号能传输上千米。
* q' b9 d' b+ o    ●RS485有两线制和四线制两种接线。采用四线制时,只能实现点对多的通讯(即只能有一个主设备,其余为从设备)。四线制现在很少采用,现在多采用两线制接线方式。- T5 {2 M! m- q& v0 p
    ●两线制RS485只能以半双式方式工作,收发不能同时进行。4 J3 g5 A" M- {: Q8 L, o+ O
    ●RS485在同一总线上最多可以接32个结点,可实现真正的多点通讯,但一般采用的是主从通信方式,即一个主机带多个从机。
  i1 [' B) }7 e( U4 X) B( s5 g    ●因RS485接口具有良好的抗干扰能力,长的传输距离和多站能力等优点使其成为首选的串行接口。   
% ]+ P9 ~3 I5 s$ I- v4 d' L- ?- L, d2 r! F. d2 {  o5 R% t; _4 U; _
        通常情况下,发送驱动器A、B之间的正电平在+2~+6V,负电平在-2~6V,另有一个信号地C。
# S6 H+ ]$ X# i: d) x
6 G' u& h7 O3 \  d+ y  A1 h# w
; @; g" f- E$ y! `* y% y4 ~
USB电平:4 `8 [. i* b4 f
电源线是5V,为USB设备提供最大500mA的电流,它与数据线上的电平无关,数据线是差分信号,通常D+和D-在+400mV~-400mV间变化,在传统的单端(Single-ended)通信中,一条线路来传输一个比特位。高电平表示1,低电平表示0。倘若在数据传输过程中受到干扰,高低电平信号完全可能因此产生突破临界值的大幅度扰动,一旦高电平或低电平信号超出临界值,信号就会出错。在差分传输电路中,输出电平为正电压时表示逻辑“1”,输出负电压时表示逻辑“0”,而输出“0”电压是没有意义的,它既不代表“1”,也不代表“0”。$ k/ X3 I5 p$ L1 C

% Q4 N0 S5 @7 e4 @8 S* [
: }8 B: o0 p6 N3 S/ C/ Z
CMOS电平
6 E8 l$ |  w% j7 D+ `0 w* F        COMS集成电路是互补对称金属氧化物半导体(Compiementary symmetry metal oxide semicoductor)集成电路的英文缩写,电路的许多基本逻辑单元都是用增强型PMOS晶体管和增强型NMOS管按照互补对称形式连接的,静态功耗很小。
# n. X  n4 h" w: }9 l7 a5 g$ W# y% F* L7 m0 G& \7 b/ H( ^
        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电路中不适用的输入端不能悬空,否则逻辑混乱。% |) x$ e, G# [7 l' D5 J4 P6 A
/ g% I# k: l, }/ i- r5 {" t

" J; f5 T' s* BUSB转串口电路:
& O, l+ E  `* ^8 J) K+ {# K7 D* c7 i; I0 p6 i5 a8 f
b84fc331d858416db1ddd90b6d1b3a8f.png

% O/ x4 a6 h: D' M+ ]( m
3 f  N* e4 Y9 m3 P& E0 F% O 这是一个USB接口电路,连接电脑。
. s8 S' v. {9 b6 P5 o9 e* j( t8 g0 n9 }2 V) P- f0 X7 W2 f3 |( |
ffeb72d7f84c491c9a62988d68871f6c.png
& ^4 ]7 a7 p& J+ P# }$ k

$ b5 M7 g* Q5 h% L+ j& d
5d6c4135c7434105b8933b01c01e6b7d.png

* X1 n7 r: P+ S" X3 z) ]2 W# ?9 r6 g& d! o
53f96453f21841f7b8aa51441d0aebca.png

8 o6 Q* R" y& t& ]. ?1 J* {8 g
; w) q# w' _: `7 H          CH340是一个usb转串口的芯片(USB电路为5V,所以CH340芯片也是5V供电)。当然,串口的电平标准有很多,这里我们可以看到,我们是将USB转换为TTL电平,通过UART来与CPU进行通信。2 r, m; a) Y5 a% R6 p# n; K
/ V. q  a/ [9 |! t- [9 s* b
        CH340的接收端RXD与CPU的发送端UART1 TX  相连接,即CPU通过TX发送消息给CH340的RXD接收,然后CH340又通过UD+将信息发送给USB接口。' h; ]/ R! Y* o/ U. ]6 \

- K1 \4 u1 H0 W# B) t       同理,CH340的接收端TXD与CPU的发送端UART1 RX  相连接。CH340通过UD-接收来自USB接口发送的信息,而CPU则通过RX来接收由CH340的TXD发送的信息。. U3 r4 I5 x! O0 S

: M8 n. `. r- z1 Q  t: A, t' u

2 g8 j# j) \+ R9 h. ?        注意:CH340也需要用外部晶振电路来驱动。因为它需要在时钟的基础上面来发送/接收数据。9 K- f$ K2 z* H( @6 P' @- \
! v6 f/ f4 T. V0 u
# e" _5 W2 p5 Y3 W. D# U
那为什么红框处要加一个二极管D4?' v- t& P9 _; q2 ^' G# L2 A
        我们可以看到,CH340芯片是5V供电,而cpu是3.3V供电。当cpu的UART1 RX接收来自CH340的TXD发送的数据的时候,此时D4二极管截止,D4二极管的阳极就为上拉电阻提供的3.3V,而不是CH340芯片的5V。那么此时,cpu识别到的电平就是TTL电平3.3V,而不是5V电平。
3 l) _! m# m# h4 O9 k5 I5 l5 V3 B
; v9 m: v7 {2 E7 W2 ~$ [4 B
0c8348a3a4cd4b7a9afa03f9f6427c4b.png

# U$ ?1 a7 L, F! e7 u% Y* f% _: d4 p
8 }: K& `( w- ?  _# F
809ddc776e8c4e388babbf9a7312cc83.png
2 D, N! {3 r5 _# c8 D

0 D9 g4 c) X& J( d        5 g( r6 Y6 U9 b( s" E1 {) T
注意:有的芯片供电是3.3V,它是不需要加这个二极管和上拉电阻的。( ]- N2 O3 ~. l* q
————————————————/ j3 O. `0 @0 k* c1 {! p
版权声明:无敌小小雷# b, \% h" R. H: x+ S6 H, I
如有侵权请联系删除/ s' _% B* v- J, U8 P8 @+ ]
1 X0 I. [$ J) u7 E  k5 C! ?7 g6 h

3 C& G6 Q+ Z& L) T$ y) I7 c1 @/ ]" h- `7 F1 Y8 h& J. i
收藏 评论0 发布时间:2023-4-16 17:15

举报

0个回答

所属标签

相似技术帖

官网相关资源

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