STM32单片机最小系统的复位电路和一个时钟电路

STM32单片机最小系统包括一个复位电路和一个时钟电路,如图1所示。图中复位电路使用的是上电复位电路,STM32单片机NRST引脚输入低电平,则发生复位。

STM32F103RCT6是一款嵌入式微控制器集成电路(IC),32位Cortex-M3核心处理器,速度为72MHz,程序存储器容量为256KB,程序存储器类型为FLASH,RAM容量为48K,封装LQFP64。

STM32单片机最小系统的复位电路和一个时钟电路

STM32单片机最小系统的复位电路和一个时钟电路

STM32单片机命名规则:

STM32单片机最小系统的复位电路和一个时钟电路

STM32单片机最小系统:

所谓单片机最小系统,就是由单片机正常运行所必需的最少部件组成的系统。

单片机最小系统上电后,单片机可以正常复位和下载程序,但没有其他功能。

在保证最小系统正确的基础上,可以依次添加其他功能模块或器件,使单片机具有实际功能。

STM32单片机的最小系统包括复位电路和时钟电路,如图1所示。

图中的复位电路采用了上电复位电路。 当STM32单片机的NRST引脚输入低电平时,就会发生复位。

STM32单片机最小系统的复位电路和一个时钟电路

图1:STM32F103微控制器最小系统

电源引脚:

VDD为单片机数字电源正极,VSS为数字电源负极。 有 5 个 VDD 引脚和 5 个 VSS 引脚。 VDDA是单片机模拟电源正极,负责给内部ADC和DAC模块供电。 VSSA为模拟电源负极。

还有一个电源引脚,就是VBAT。 BAT是电池。 该引脚用于连接电池的正极端子。 STM32具有RTC功能(实时时钟),因此有一个VBAT引脚。

原理图上预留了一颗CR1220纽扣锂电池。 当主电源存在时,系统中的VCC3.3向VBAT供电;

当主电源被切断时,CR1220纽扣电池为STM32自带的RTC模块供电,从而保证即使在主电源被切断的情况下,实时时钟模块仍能正常工作。

但这样的设计,有一个矛盾需要解决。 如果VBAT引脚直接连接VCC3.3和CR1220,会出现以下问题:

1. 当电池电压高于3.3V时,电池会向AMS1117输出电流,使芯片发热并快速消耗电池电量。

2、如果电池电压低于3.3V,AMS1117产生的3.3V会给电池充电,此时CR1220电池无法充电。

为了解决上述问题,我们设计VBAT引脚的供电电路如下:

STM32单片机最小系统的复位电路和一个时钟电路

D1 防止电池电流流向 AMS1117,D2 防止 AMS1117 产生的 3.3V 流向电池。

这种设计的原因是“二极管的单向导电性”。

在正常的产品设计中,最好在每个电源引脚旁边放置一个0.1uF的电容滤波器,以滤除电源中的噪声和杂波。

复位引脚NRST:

重置就是重新启动。 STM32的复位引脚为低电平复位。 正常工作状态下,复位引脚为高电平。

STM32单片机最小系统的复位电路和一个时钟电路

设置和复位单片机的目的是将电路初始化到某种状态。 在复位期间,微控制器将存储设备和一些寄存器加载到制造商预设的值中。

一般来说,单片机复位电路的作用就是将状态机初始化为空状态。

单片机上电复位原理:

将外部电容和电阻连接到复位引脚 NRST。

当复位电平(低电平)持续两个机器周期以上时,复位有效。 系统上电后,由于电容的充电,低电平会维持一段时间,使单片机复位。

刚上电后,电容两端电压为0,为低电平复位。 RC电路有充电曲线(即电容器两端的电压变化曲线)。 单片机识别外部电平并有连接电压,保证rc电路的电容电压充电到单片机的临界电压时间,如果大于两个机器周期即可满足单片机的复位条件;

当3.3V电源加到VCC3.3上时,RC电路导通,NRST与地之间的电位差就是电容与地之间的电位差。 电容充电后NRST与地电位差仅达到3.3V,因此在电容充电过程中,到芯片引脚的信号均为低电平。

根据RC电路充电方程V(t)=U+A*e-(t/RC),只要适当选择R和C的值,就可以保证充电时间大于芯片复位所需的时间。 我们一般选择R为10K电阻,C为0.1uF电容。

晶振引脚:

STM32有两组晶振,一组用于向单片机提供主时钟(5:OSC_IN,6:OSC_OUT)。 主时钟晶振采用8MHz晶振(为了程序中方便内部倍频,一般采用8MHz晶振)。

一组用于为RTC提供时钟(3:OSC32_IN,4:OSC32_OUT)。 RTC时钟晶振需要连接32.768K晶振。 至于为什么采用32.768KHz,大家可以去百度了解一下。

实际应用中,如果不使用RTC功能,则无需连接RTC晶振。

STM32的时钟电路分为两种模式:内部时钟和外部时钟。

外部时钟是在OSC_IN和OSC_OUT之间添加晶振。 单片机的内部振荡器可以产生自激振荡并产生时钟信号。 在晶振两侧添加20~30pF陶瓷电容起到微调时钟频率的作用。 ,使频率更加稳定。

内部时钟是STM32内部产生的,所以如果不使用外部晶振则不需要连接。 内部时钟采用芯片内部振荡电路,精度低,温漂大,无需外部振荡器件。

STM32单片机最小系统的复位电路和一个时钟电路

启动引脚:

STM32有两个BOOT引脚,分别是BOOT0和BOOT1。 这两个引脚的高低电平决定了单片机的启动和工作模式。

STM32单片机最小系统的复位电路和一个时钟电路

第一种(BOOT1=X,BOOT0=0)启动方式是用户最常用的FLASH启动方式。 默认启动模式。

第二种(BOOT1=0,BOOT0=1)启动方式是系统内存启动方式。 STM32自带的BootLoader(俗称ISP程序)就是这种启动模式。 如果出现编程硬件错误,可以将BOOT0=1切换为该模式,重新编程Flash即可恢复正常。 芯片出厂后,任何人都无法修改或擦除BootLoader所在区域的内容,即它是ROM区域。

第三种(BOOT1=1,BOOT0=1)启动方式是STM32嵌入式SRAM启动。 该模式用于调试。

STM32单片机最小系统的复位电路和一个时钟电路

一般我将BOOT0和BOOT1接地。

以上就是最小系统的全部内容。 当然,只有以上部分是不够的。 一般来说,最小系统还包括以下几个部分:

电源电路:

由于STM32单片机一般采用3.3V供电,而生活中一般常见5V电源(电脑USB口、手机充电器、移动电源…),所以一般采用AMS1117-3.3V稳压电源芯片转换5V降压电压为3.3V,该芯片的封装一般为SOT223。

STM32单片机最小系统的复位电路和一个时钟电路

下载电路:

当然,除了上述部分之外,还需要下载电路。 STM32的下载方法如下:

(1)串口下载

使用串口下载需要单片机中相应程序的支持,而这样的程序放在系统存储器中,由ST在生产线上写入,用于通过可用的串行接口对Flash存储器进行重新编程。

在系统内存启动方式下进行下载,因为厂家提供的BootLoader提供了串口下载程序的固件,通过这个BootLoader就可以将程序下载到系统的Flash中。 程序烧录在FLASH中。

注意:使用该方法需要BOOT0=1,即需要外部电路支持才能实现串口下载。

(2)JLINK或STLINK下载

一般我们使用JTAG或SWD模式来下载程序,但建议使用SWD模式来下载。 SWD模式只需要三个引脚(GND、SWCLK、SWDIO)即可实现程序下载功能。

STM32单片机最小系统的复位电路和一个时钟电路

结尾

单片机

合肥师范学院本科生毕业论文(设计)报告(学生用表)

2024-2-9 20:00:48

单片机

基于51单片机的波形发生器(课程设计)的设计讲解

2024-2-9 21:05:11

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索