STM32最小系统组成详解

发布者:心语乐章最新更新时间:2023-08-21 来源: elecfans关键字:STM32  最小系统  复位电路 手机看文章 扫描二维码
随时随地手机看文章

经常使用STM32开发的工程师对于它的开发环境的最小系统是必须要有所了解的,特别是硬件工程师在设计硬件的时候对这个最小系统就要更加的深入了解了,如果最小系统的搭建都有问题,那以后的使用很难避免不出现问题。


话不多说,进入正题说说STM32的最小系统的基本组成!


1、STM32最小系统硬件组成包括哪些?

STM32的最小系统的硬件组成主要有:电源电路复位电路、时钟电路、调试接口电路、启动电路。


电源 : 一般是3.3V输入作为STM32芯片的工作电压,实际中很多采用LDO将5V转换为3.3V进行供电,另外电路上还要加多个0.01uf去耦电容对输入电压进行滤波,稳定输入电压。


复位:STM32中有三种复位方式,分别为:上电复位、手动复位、程序自动复位。上电复位是指芯片根据外部搭建的复位电路,在上电的时候进行的复位;手动复位是指通过外部的复位电路自己手动进行复位;程序复位是在软件中通过代码对STM32芯片进行的复位。


2、复位电路

STM32单片机的复位电路的作用是在进行复位的时候,让单片机的程序计数器回到0000H这个地址,从而让程序从开始处重新执行。


复位操作还会将一些寄存器、存储单元的值重新设置为初始的设定值,让单片机重新开始执行。


STM32单片机的三种复位方式的区别:

1)上电复位:是在单片机上电启动的时候进行复位的,不需要人为干预,自动完成复位;

2)手动复位:通过外部的复位电路手动进行复位,比如按钮、开关之类的;

3)程序复位:通过程序内部的程序进行复位,一般有内核复位函数、看门狗复位等的软件复位方式。

(1)上电复位:

上电复位是需要通过外部的电容实现的。

图片

在上图的电路中,上电复位电路由VCC、C1、R2组成。

假设单片机在RESET端输入高电平时进行复位,那么上电复位的原理为:在上电瞬间,C1电容的充电电流很大,电容相当于短路,RESET出现短暂的高电平,这个高电平会对单片机进行复位。当C1电容两端的电压达到VCC时,电容C1充满电就相当于断路,RESET端变为低电平,单片机开始运行。由此,即实现了自动上电复位。

有一个问题是需要注意的:自动复位电路中,RESET端的高电平持续的时间要维持在一定的时间才能完成复位,这个时间一般要求1ms左右。

高电平持续时间由上电复位电路中的电阻和电容共同决定,计算公式如下:

t = 1.1RC(电平持续时间的计算公式)

在上图中,高电平的持续时间为:t = 1.110K0.1uF = 1.1ms,需求的高电平复位信号持续时间大于1ms,可以实现复位操作。

(2)硬件复位:

硬件复位还是可以参照图:

图片

按键S5按下时,RESET端为高电平,从而对单片机进行复位,松开按键S5单片机正常运行。

3、时钟(晶振)电路

3.1、时钟电路介绍

一个简单的时钟电路如下:

图片

时钟电路的组成班阔: 晶振+起振电容 +反馈电阻(MΩ级)

晶振:一般选择8MHZ 方便倍频。常见的晶振有:

有源:更稳定 成本更高 需要接电源供电 不需要外围电路 3脚单线输出

无源:精度基本够 方便灵活 便宜

这两者最大的区别:是否需要单独供电。

无源晶振不需要供电,但是需要外接起振电容;有源晶振是需要提供工作电压的。

(1)晶振两端的电容的作用:

1、使晶振两端的等效电容等于或接近于负载电容;

2、起到一定的滤波的作用,滤除晶振波形中的高频杂波;

该起振电容的大小一般选择10~40pF,当然根据不同的单片机使用手册可以具体查阅,如果手册上没有说明,一般选择20pF、30pF即可,这是个经验值。

调整电容可微调振荡频率:

一般情况下,增大电容会使振荡频率下降,而减小电容会使振荡频率升高;

()反馈电阻: 1M 负反馈同时也起到限流的作用。

晶振电路主要分析如下:

1、连接晶振的芯片端内部是一个线性运算放大器,将输入进行反向180度输出,晶振处的负载电容电阻组成的网络提供另外180度的相移; 整个环路的相移360度,满足振荡的相位条件;

2、 晶振输入输出连接的电阻作用是产生负反馈,保证放大器工作在高增益的线性区,一般在M欧级;

3、 限流的作用,防止反向器输出对晶振过驱动,损坏晶振,有的晶振不需要是因为把这个电阻已经集成到了晶振里面。

3.2、时钟电路应用

STM32的时钟树:

三种不同的时钟源可被用来驱动系统时钟(SYSCLK):

1)HSI振荡器时钟

2)HSE振荡器时钟

3)PLL时钟

这些设备有以下2种二级时钟源:

1)40kHz低速内部RC,可以用于驱动独立看门狗和通过程序选择驱动RTC。RTC用于从停机/待机模式下自动唤醒系统。

2)32.768kHz低速外部晶体也可用来通过程序选择驱动RTC(RTCCLK)。

当不被使用时,任一个时钟源都可被独立地启动或关闭,由此优化系统功耗。

3.2.1、STM32的3个内部时钟

HSI时钟:

HSI时钟信号由内部8MHz的RC振荡器产生,可直接作为系统时钟或在2分频后作为PLL输入。HSI RC振荡器能够在不需要任何外部器件的条件下提供系统时钟。它的启动时间比HSE晶体振荡器短。然而,即使在校准之后它的时钟频率精度仍较差。 当HSI被用于作为PLL时钟的输入时,系统时钟能得到的最大频率是64MHz 。

LSI时钟: LSI RC担当一个低功耗时钟源的角色,它可以在停机和待机模式下保持运行,为独立看门狗和自动唤醒单元提供时钟。LSI时钟频率大约40kHz(在30kHz和60kHz之间)。

PLL时钟: 内部PLL可以用来倍频HSI RC的输出时钟或HSE晶体输出时钟。

3.2.2、两个外部时钟

HSE时钟: 高速外部时钟信号(HSE)由以下两种时钟源产生:

1)HSE外部晶体/陶瓷谐振器

2)HSE用户外部时钟

为减少时钟输出的失真和缩短启动稳定时间,晶体/陶瓷谐振器和负载电容器必须尽可能地靠近振荡器引脚。负载电容值必须根据所选择的振荡器来调整。

LSE时钟: LSE晶体是一个32.768kHz的低速外部晶体或陶瓷谐振器。它为实时时钟或者其他定时功能提供一个低功耗且精确的时钟源。

4、启动(BOOT)电路

STM32芯片的启动方式是可以选择的,方式的选择通过启动模式选择端口(BOOT)进行选择,有BOOT(B1)和BOOT2(B2)两种选择,启动模式的选择方式如下图所示:

图片

STM32三种启动模式对应的存储介质均是芯片内置的,它们是:

1)用户闪存 = 芯片内置的Flash。

2)SRAM = 芯片内置的RAM区,就是内存啦。

3)系统存储器 = 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是通常说的ISP程序。这个区域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROM区,它是使用USART1作为通信口。

5、调试、下载电路

STM32有两种调试接口,JTAG为5针, SWD为2线串行(一共四线),下载电路除了前面两种还有串口下载、ISP下载。

比如常用的JTAG程序下载、调试电路:

图片


关键字:STM32  最小系统  复位电路 引用地址:STM32最小系统组成详解

上一篇:STM32 GPIO寄存器的相关知识
下一篇:stm32可以跑Linux操作系统吗?

推荐阅读最新更新时间:2024-11-09 10:16

STM32学习笔记(三)---启动文件
启动文件简介 启动文件由汇编编写,是系统上电复位后第一个执行的程序。 初始化堆栈指针 SP=_initial_sp 初始化PC指针=Reset_Handler 初始化中断向量表 配置系统时钟 调用C库函数_main初始化用户堆栈,最终调用main函数去到C的世界 启动文件中用到的ARM汇编指令 启动文件分析 1. 栈 Stack_Size EQU 0x00000400 AREA STACK, NOINIT, READWRITE, ALIGN=3 Stack_Mem SPACE Stack_Size __initial_sp 开辟栈空间大小为0x00000400(1kb),名字为ST
[单片机]
<font color='red'>STM32</font>学习笔记(三)---启动文件
关于STM32定时器触发SPI逐字收发之应用示例
我们在做SPI应用时,有时希望通过定时器来定时地触发SPI的收发,并利用DMA完成数据的传输。这里,以STM32L476芯片为例来做个演示,以供参考。 本示例的大致过程是这样的: 片内SPI1做Master,SPI2做Slave,均工作在全双工模式。 这里使用片内定时器TIM3,通过它的更新事件触发DMA请求,通过DMA将数据给到SPI1的数据寄存器并发送出去,同时也开启SPI1接收事件的DMA传输。总之,SPI2的收、发事件都启用DMA完成。 TIM3的更新事件周期控制两个SPI的收发节奏,即定时器每产生一次更新事件,SPI1/SPI2这两个主从通信模块就进行一个数据的收发。我们可以通过调整定时器的计时周期来调整
[单片机]
关于<font color='red'>STM32</font>定时器触发SPI逐字收发之应用示例
STM32之旅1——LED
学习了51单片机后,就要接触到更高级一点的单片机了,比如STM32,ST也有很多款单片机,现在用比较基础的学习——STM32F103RCT6。 LED驱动 hal库的使用比较简单,可以直接在STM32CubeMX中分配好IO之后一键生成工程,为了提高程序的可读性,自己写一个头文件,在调用过程中会比较简单。 drv_led.h: #ifndef __DRV_LED_H #define __DRV_LED_H #define LED1_PIN GPIO_PIN_8 #define LED1_PORT GPIOA #define LED2_PIN GPIO_PIN_2 #define LED2_PORT G
[单片机]
关于STM32的入门问题
前言 前两天在群里看到群友们在讨论学习STM32的话题,并且今天也有一位机械专业的准研究生读者也问了STM32的入门问题。 正好我也有一点点经验,所以试着分享一下这个话题。我也不是什么大神,只是一名普通的工程师,以下分享仅仅是自己的一点经验及看法,仅供参考,希望能对一些初学的朋友有所帮助。老鸟略过~~ 找资料 在知乎,我也有看到类似问题:学STM32要买什么书籍、看什么书籍? STM32编程作为一项实操性很强的技能,所以要多实操。初学的话,我觉得书籍就暂时先不买吧,先考虑入手一块STM32开发板,然后跟着开发板的教程走。 几年前,做STM32的教程有很多家: 现在市面上还比较火的基本就只剩前4家了,从这4家中选择一家买
[单片机]
关于<font color='red'>STM32</font>的入门问题
基于Keil、STM32,用C++编写流水灯程序
通常来说,在单片机上编程,要么汇编,要么C语言,而用C++进行开发的很少,那么究竟能不能用C++开发单片机呢? 答案是肯定可以的,下面讲讲基于Keil、STM32,用C++编写流水灯程序的一些内容。 1、为什么很少用C++开发单片机 不知道大家对面向过程和面向对象的理解有多少? C语言面向过程的语言,C++是面向对象的编程语言。结合本文来说,面向过程相比面向对象的编程,代码量更小,运行效率更高。 所以,C语言相比C++具有更小代码量、更快的运行速度。 当然,这里是C相对C++而言。其实,汇编相对C而言,具有更小代码量和更快的运行速度。可以参看文章:用 汇编 和 C语言 写流水灯程序有什么不一样? 因为单片机的RAM和Flash资源
[单片机]
4. stm32启动代码分析(一)
硬件平台: stm32f407ve 软件平台: win10 (OS Name: Microsoft Windows 10 Enterprise OS Version: 10.0.18363 N/A Build 18363) Keil5 5.26.2 HAL库版本: 2.14.0(目前下载的最新的) 库函数的使用要得益于你本身对c语言指针,结构体,及结构体指针的认识。如果你对这些的熟悉程度不够的话,只能说会阻止你进一步前进。 硬件方面,你最好能有基本的数电模电常识,有单片机理论基础,或者微机原理理论,这样你在理解这些硬件组成,或者电路
[单片机]
4. <font color='red'>stm32</font>启动代码分析(一)
STM32入门学习笔记之电容触摸实验(下)
8.3 电容触摸例程 现在PA1端口接一个触摸按键(一块铜箔),利用PA1的触摸按键控制PA0端口的LED状态,按下时LED点亮,抬起时LED熄灭。 (1)新建基础工程,并创建tpad.c,tpad.h,led.c和led.h文件,并导入工程,如下图所示。 (2)在tpad.h文件内添加以下代码。 (3)在led.h文件内添加以下代码 (4)在led.c文件中添加以下代码 (5)在tpad.c文件内添加以下代码 #include tpad.h #include delay.h /*************************************************** Name :TPAD
[单片机]
<font color='red'>STM32</font>入门学习笔记之电容触摸实验(下)
STM32时钟系统介绍与总结
时钟树: 1. HSI振荡器时钟 The HSI clock signal is generated from an internal 8 MHz RC Oscillator and can be used directly as a system clock or divided by 2 to be used as PLL input. The HSI RC oscillator has the advantage of providing a clock source at low cost (no external components). It also has a faster startup time than
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved