|
复位电路: 复位 :让MCU回到最开始的状态。并且从头开始,重新执行程序8 H; p) M& A. i+ l+ G. k 6 h3 ~4 [9 W+ v 我们什么时候需要复位? 1.烧录的时候 . E9 X' D) o2 I$ K5 F) C" S 2.程序跑飞了的时候 4 R. q9 p; I( ?2 a* ?/ K5 k1 W' ~ 3.上电复位(上电的时候需要复位)1 ~" }: I8 B" K9 o4 n" a# _ 复位方式:+ t8 a8 r/ p2 V1 n* c1 Y% x 1.上电复位: --- 一定要有 MCU的Reset是复位引脚,当这个引脚为低电平时,单片机会产生复位。 2. 按键复位:--- 可有可无(看需求)/ r3 i q% ^, d: o( T K10按下,产生复位动作
- z8 p* ^5 X' c& {( ~( U$ Y 这是阻容复位电路。当复位引脚低电平的时候复位。当上电的瞬间,C13电容开始充电,电容处于短路状态,电容上面的电压为低电平,此时MCU复位引脚被拉低,MCU执行复位,这样就实现了上电的时候复位功能了。- e; z3 {. c5 R3 \5 F, s7 T) a$ r/ ^ 实际上,单片机内部也有上电复位电路,那么我们之所以还要在单片机外部加上复位电路的原因是:因为外部上电复位电路复位时间较长,较长的复位时间,可以使得等电源、系统充分稳定后,MCU再来启动并执行程序,保证了MCU、系统正常运行。! z2 K5 d* X: N2 d7 b 6 T& K T+ H- d$ v5 E0 o2 A 注意:由于电容的精度不够,而且电容还会受到温度的影响,存在温漂,所以阻容复位电路的延时并不精确。但是,阻容复位电路可以满足绝大部分的需要了。. K6 z( k6 ?! U `/ w" s( ] + B7 J; k% H' x( R 上电复位的目的: 1.等待供电电源、系统稳定后,再来启动MCU,执行程序,否则MCU、系统无法正常运行。 2.复位会初始化部分寄存器 注意R21和C13的选择(一般选择10k电阻,104电容就可以,即:延时大约10uS)。其中,电容不能选择太小,否则C13电容很快就充满电了,那么此时电容上面就不是低电平了,但是,很有可能此时电源、系统还没有到达稳定状态。那么芯片供电电源、系统不稳定,就会导致MCU和整个系统工作有问题,有可能MCU时而启动成功,时而启动失败。4 p- A$ y# V4 @% C$ q 晶振电路:
( x* {1 l" ?( e3 P& Y
单片机内部集成的HSI时钟源是就是RC振荡器。' |! `. f, B6 S; Q4 z 2 M" G# v: Y/ p' F1 n7 d& y) a. r
晶振电路在布线的时候,尽量靠近单片机,因为晶振引脚,PCB走线也有电容电阻效应。8 Z' }" w: u# B7 t
9 Q a- B7 h0 |6 u6 y( f 晶体振荡器分为无源晶振和有源晶振两种类型。+ n$ B' R1 Y, h1 ] 0 |6 A! c" E; O0 t ) H) c7 _2 o6 t3 w 无源晶振: 6 L' d; j$ Y: ]) y% l! g
5 g9 x% L! n0 f+ v& W+ { 无源晶振与有源晶振的英文名称不同,无源晶振为 crystal(晶体),而有源晶振则叫做 oscillator(振荡器)。 0 w4 |( c' d% V: {% b/ t* h 无源晶振是有2个引脚的无极性元件,需要借助于时钟电路才能产生振荡信号,自身无法振荡起来,所以“无源晶振”这个说法并不准确;有源晶振有 4只引脚,是一个完整的振荡器,其中除了石英晶体外,还有晶体管和阻容元件,因此体积较大。 无源晶振和有源晶振的区别很多时候是大家直接通过观察了解到的 。尤其是针对 2520贴片晶振,3225贴片晶振, 5032贴片晶振 ,并且是四脚封装的石英晶振来说, 包括有源晶振,也包括无源晶振。1 g, l# Z; t0 P4 ~ 6 G, O% _9 U' t& b 有源晶振) |& `1 J1 G: U& L/ x 有源晶振通常的用法:一脚悬空,二脚接地,三脚接输出,四脚接电压。( k1 |' s! f6 H- J6 B& @ ' Q, S( k" [& x& a 有源晶振不需要DSP的内部振荡器,信号质量好,比较稳定,而且连接方式相对简单(主要是做好电源滤波,通常使用一个电容和电感构成的 PI 型滤波网络,输出 端用一个小阻值的电阻过滤信号即可),不需要复杂的配置电路。相对于无源晶体,有源晶振的缺陷是其信号电平是固定的,需要选择好合适输出电平,灵活性较 差,而且价格高。4 o; ~. }6 d& V+ j3 | ) r( o# P% }1 F 有源晶振是由石英晶体组成的,石英晶片之所以能当为振荡器使用,是基于它的压电效应:在晶片的两个极上加一电场,会使晶体产生机械变形;在石英晶片上加上 交 变电压,晶体就会产生机械振动,同时机械变形振动又会产生交变电场,虽然这种交变电场的电压极其微弱,但其振动频率是十分稳定的。6 T* y. v0 L8 q s6 ?6 d+ S- M - B+ x/ g" Q0 E0 n* `! m: Q! W8 N
当外加交变电压的频率与 晶片的固有频率(由晶片的尺寸和形状决定)相等时,机械振动的幅度将急剧增加,这种现象称为“压电谐振”。+ @1 ^$ H/ q( M3 i; ^ 压电谐振状态的建立和维持都必须借助于振荡器电路才能实现。图 3 是一个串联型振荡器,晶体管 T1 和 T2 构成的两级放大器,石英晶体 XT 与电容 C2 构成 LC 电 路。在这个电路中,石英晶体相当于一个电感,C2 为可变电容器,调节其容量即可使电路进入谐振状态。该振荡器供电电压为 5V,输出波形为方波。 UART、RS232、RS485它们之间的区别: UART,是通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),既然是“器”,显然,它就是个设备而已,要完成一个特定的功能的硬件,它本身并不是协议。那么它要完成什么功能呢?它的最基本功能,是串行数据和并行数据之间的转换。 4 q# u8 \$ C- G" R& n 这就是UART做的最基本工作,进一步的,它还要控制“发车的班次”,比如确认一个Byte的这8个bit是什么时候开始的,又是什么时候结束的,两个班次之间至少要隔多长时间的缓冲,等等。这一部分,也具有协议的特征,但是相对于道路上的协议,更具有一般性,或曰,是与车在什么道路上开,相对独立的。
) e4 C$ e ]$ k f0 J% U1 _ RS232/RS485,是两种不同的电气协议,也就是说,是对电气特性以及物理特性的规定,作用于数据的传输通路上,它并不内含对数据的处理方式。比如,最显著的特征是:RS232使用3-15v有效电平,而UART,因为对电气特性并没有规定,所以直接使用CPU使用的电平,就是所谓的TTL电平(可能在0~3.3V之间)。更具体的,电气的特性也决定了线路的连接方式,比如RS232,规定用电平表示数据,因此线路就是单线路的,用两根线才能达到全双工的目的;而RS485, 使用差分电平表示数据,因此,必须用两根线才能达到传输数据的基本要求,要实现全双工,必需用4根线。但是,无论使用RS232还是RS485,它们与UART是相对独立的,但是由于电气特性的差别,必须要有专用的器件和UART接驳,才能完成数据在线路和UART之间的正常流动。 % z- o4 i, Q0 W+ v7 O UART、RS232、RS485它们实际上都是串口上面的属性,只不过它们的功能不一样。UART的功能是将串行转并行,而RS232、RS485是一种电平标准 : R! E' } E+ B) ~2 D$ {% ?4 K9 } y * ?6 [. v R! h/ X5 w, a TTL电平信号: / O$ Y6 o/ q3 y( J$ ^ TTL电平标准:2 _2 p. p6 S i3 | 输出 L: <0.8V ;( g) }1 i* e8 z6 |5 a; U 输出 H:>2.4V。" E D6 E+ O# P2 A4 g 输入 L: <1.2V ; 输入H: >2.0V。 , e2 J! E: o7 q1 Z5 Z TTL电平信号之所以被广泛使用,原因是:通常我们采用二进制来表示数据。而且规定,+5V等价于逻辑“1”,0V等价于逻辑“0”。这样的数据通信及电平规定方式,被称做TTL(晶体管-晶体管逻辑电平)信号系统。# x; ?6 E; X. j TTL电平长距离传输不了,抗干扰不行,衰减也大。长距离传输过程只能用RS232电平或者485电平,后者更远,在发送部分将TTL转换后,传输,接收部分再将传输电平转换为TTL电平。TTL作为逻辑电平很好,但是长距离传输确实能力有限。, [, z Q( u4 V5 w) D/ I4 E RS232串口/ n3 {# L5 M6 @) }; Z' R RS232是计算机与通信工业应用中最广泛一种串行接口。它以全双工方式工作,需要地线、发送线和接收线三条线。RS232只能实现点对点的通信方式。: c1 S) q4 ]$ g3 u4 f% K5 R RS232串口缺点# b# h: c% h# p9 j$ n0 ~! Y/ _ ●接口信号电平值较高,接口电路芯片容易损坏。" \% B* Q2 _* d7 u* N" a% k" P ●传输速率低,最高波特率19200bps。4 s! e T. R, b1 v8 b" } ●抗干扰能力较差。 ●传输距离有限,一般在15m以内。 t. Q# H4 b3 w8 ^' |1 a" H ●只能实现点对点的通讯方式。 RS232串口接口定义$ e; l/ Z$ o( w5 \7 F RXD:接收数据,TXD:发送数据,GND/SG:信号地。 $ j% H4 i/ u0 M- { 逻辑1(MARK)=-3V~-15V & r5 `; g/ J1 J& [( V* z" o2 M 逻辑0(SPACE)=+3~+15V! U) |( p% T+ M& ^! f, y8 k$ G ; P5 l1 r2 a; r2 q% V 9 P9 \' S3 S2 m9 B* T RS485串口& g6 t6 }3 L( ?9 Y& _: p# j RS485串口特点$ e2 l/ H0 E' c) u$ I ●RS485采用平衡发送和差分接收,具有良好的抗干扰能力,信号能传输上千米。3 t* e! c% F# r0 S6 r4 Q) d ●RS485有两线制和四线制两种接线。采用四线制时,只能实现点对多的通讯(即只能有一个主设备,其余为从设备)。四线制现在很少采用,现在多采用两线制接线方式。/ b) ^* {* G, G: }* ` ●两线制RS485只能以半双式方式工作,收发不能同时进行。7 e& ~$ l# K; ]: q A [ e ●RS485在同一总线上最多可以接32个结点,可实现真正的多点通讯,但一般采用的是主从通信方式,即一个主机带多个从机。 ●因RS485接口具有良好的抗干扰能力,长的传输距离和多站能力等优点使其成为首选的串行接口。 通常情况下,发送驱动器A、B之间的正电平在+2~+6V,负电平在-2~6V,另有一个信号地C。4 ^3 {. f5 J( w3 ?" `. j5 k " d' F3 z; O4 h/ Z USB电平: 电源线是5V,为USB设备提供最大500mA的电流,它与数据线上的电平无关,数据线是差分信号,通常D+和D-在+400mV~-400mV间变化,在传统的单端(Single-ended)通信中,一条线路来传输一个比特位。高电平表示1,低电平表示0。倘若在数据传输过程中受到干扰,高低电平信号完全可能因此产生突破临界值的大幅度扰动,一旦高电平或低电平信号超出临界值,信号就会出错。在差分传输电路中,输出电平为正电压时表示逻辑“1”,输出负电压时表示逻辑“0”,而输出“0”电压是没有意义的,它既不代表“1”,也不代表“0”。 ^3 r5 C" X, X) ]0 Z CMOS电平 COMS集成电路是互补对称金属氧化物半导体(Compiementary symmetry metal oxide semicoductor)集成电路的英文缩写,电路的许多基本逻辑单元都是用增强型PMOS晶体管和增强型NMOS管按照互补对称形式连接的,静态功耗很小。3 Y [) t# J& g7 e9 W 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电路中不适用的输入端不能悬空,否则逻辑混乱。& l( ]( ^' y% k) N USB转串口电路:/ j9 \. a1 {; @$ y
" F" V# X" `+ F: ?. X$ c: I 这是一个USB接口电路,连接电脑。+ y9 |$ r; _* B! L; Y - ^& L+ R$ i0 ?3 z& r
" k3 [$ I" Z' A7 l5 v5 b
# t v, @7 ?- O8 \ l2 d3 Z CH340是一个usb转串口的芯片(USB电路为5V,所以CH340芯片也是5V供电)。当然,串口的电平标准有很多,这里我们可以看到,我们是将USB转换为TTL电平,通过UART来与CPU进行通信。 CH340的接收端RXD与CPU的发送端UART1 TX 相连接,即CPU通过TX发送消息给CH340的RXD接收,然后CH340又通过UD+将信息发送给USB接口。 , F' N4 b5 U/ F! B& C, u3 Q8 b# W( P 同理,CH340的接收端TXD与CPU的发送端UART1 RX 相连接。CH340通过UD-接收来自USB接口发送的信息,而CPU则通过RX来接收由CH340的TXD发送的信息。 注意:CH340也需要用外部晶振电路来驱动。因为它需要在时钟的基础上面来发送/接收数据。9 y e' z5 q* v' ]2 e& Y% v) U9 a . s& P3 ~% I. \ 1 M) n/ X+ U7 j 那为什么红框处要加一个二极管D4? 我们可以看到,CH340芯片是5V供电,而cpu是3.3V供电。当cpu的UART1 RX接收来自CH340的TXD发送的数据的时候,此时D4二极管截止,D4二极管的阳极就为上拉电阻提供的3.3V,而不是CH340芯片的5V。那么此时,cpu识别到的电平就是TTL电平3.3V,而不是5V电平。7 N+ `8 ~! {9 ]5 |0 W# P( A ?9 j- v7 l3 ?
注意:有的芯片供电是3.3V,它是不需要加这个二极管和上拉电阻的。# o2 b; z9 I5 I. g0 ]. _8 M ————————————————; F: s% P0 V8 H; f# @! }: ? 版权声明:无敌小小雷 如有侵权请联系删除 7 M1 Q# T" w. g" P 8 K% v( {1 m. w0 G5 M5 Y |
《MCUBoot课程》学习笔记+从信任链原理到量产实践
使用STM32 MCU和MPU连接PDM数字麦克风
好用软件推荐-TouchGFX Designer
HRTIM 指南
全新OpenSTLinux 6.1版本发布
兔哥的ST67——【000】ST67模组订购
【经验分享】STM32实例-RTC实时时钟实验④-获取RTC时间函数与中断服务函数
刘氓兔的64位入门挑战【1】——MP257芯片下单和硬件准备
刘氓兔的64位入门挑战【0】——MP257选型
基于STM3的开发环境搭建经验分享
微信公众号
手机版