STM32最小系统的组成详解(附电路图)
嵌入式之入坑笔记 2023-04-23


经常使用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.1*10K*0.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程序下载、调试电路:


作者简介:

本人95后技术男,从事嵌入式软件开发,专注于技术成长和技术分享。目标是每天进一步一点点,通过技术改变自己的生活,创造自己的美好未来!如果你也对嵌入式感兴趣,欢迎关注我呀!


声明:

本文作者:嵌入式之入坑笔记

文章版权归作者所有,转载请注明出处!




声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 【7.24 深圳】2025国际AI+IoT生态发展大会/2025全球 MCU及嵌入式技术论坛


  • 相关技术文库
  • 单片机
  • 嵌入式
  • MCU
  • STM
  • 基于C51单片机实现汽车座椅自动控制系统的软硬件设计

    引言 随着人们生活水平的提高,对汽车座椅的舒适性要求也越来越高,要求对汽车座椅地调节能够更加简单、方便、快捷。目前,汽车座椅位置的调节多采用基于手动调节方式的机械和电动控制两种方式。汽车座椅位置的调节...

    07-02
  • MCS51单片机程序设计时堆栈的计算方法解析

    用C语言进行MCS51系列单片机程序设计是单片机开发和应用的必然趋势。Keil公司的C51编译器支持经典8051和8051派生产品的版本,通称为Cx51。应该说,Cx51是C语言在MCS51单片机上的扩展,既有C语言的共性,又有它自己...

    07-02
  • 51单片机定时器工作原理及用法

    TMOD : 控制定时器的工作方式。8个bit,高四位 bit 控制 T1,、低四位 bit 控制 T0。因为定时器有4种工作方式;TMOD = 0x00(工作方式0),TMOD = 0x01(工作方式0),TMOD = 0x02(工作方式2),TMOD = 0x03(工作方式3)。...

    07-02
  • 51单片机学习单片机之路总结

    学习单片机有一学期了,现在也由51转到STM32了。一直想对51的学习做一个总结。也希望对别人有一些启发。也给后学者提供一些建议。当然本文是我对自己学习过程的总结,若有不对的地方,还请高手指出。 我想,再看本...

    07-02
  • hot51增强型单片机开发板原理图

    功能要求: 一):绿灯25s倒计时,绿灯过度红灯有5s黄灯时间,红灯25s后直接跳绿灯。 二):按键按下模拟闯红灯输入,产生5s蜂鸣器鸣叫。 开发环境: 软件:Keil uVision4 硬件:HOT51增强型单片机开发板 程序代码:...

    07-01
  • 51单片机的延时子程序

    延时程序在单片机编程中使用非常广泛,但一些读者在学习中不知道延时程序怎么编程,不知道机器周期和指令周期的区别,不知道延时程序指令的用法, ,本文就此问题从延时程序的基本概念、机器周期和指令周期的区别和联系...

    07-01
  • 什么是Flash盘?Flash盘的结构是什么样的?

    Flash是大家常使用的存储之一,对于Flash,大家或多或少有所了解。上篇文章中,小编对Flash闪存的类型有所介绍。为继续增进大家对Flash的认识,本文将对Flash盘、Flash盘结构以及Flash读写操作予以介绍。如果你对本...

    07-01
  • 深谈嵌入式系统,嵌入式系统是如何组成的?

    嵌入式系统在生活中有诸多应用,大家对于嵌入式系统或多或少有所耳闻。在前两篇文章中,小编对嵌入式系统进行过详细介绍。为继续增进大家对嵌入式系统的认识,本文将对嵌入式系统的组成加以说明。如果你对嵌入式系...

    06-27
  • 嵌入式系统秘籍共享,最全嵌入式系统解析

    嵌入式系统的应用十分广泛,因此越来越多的人学习嵌入式系统。由此,在学习嵌入式系统之前,我们应当对嵌入式系统具备一些认识。所以在本文余下部分,小编将对嵌入式系统进行全面解析。如果你对嵌入式系统具有兴趣...

    06-27
  • 51单片机超声波测距程序详解

    51单片机超声波测距程序详解 超声波四通道测距:超声波测距实现分为三大块: 其一是12864带字库的液晶驱动程序: 代码如下: /////////////////12864驱动程序/////////////////////////// //1写数据 void WriteDat...

    06-25
  • 51系列单片机的引脚图

    51系列单片机的引脚图 端子介绍 l P0.0~P0.7 P0口8位双向口线(在引脚的39~32号端子)。 l P1.0~P1.7 P1口8位双向口线(在引脚的1~8号端子)。 l P2.0~P2.7 P2口8位双向口线(在引脚的21~28号端子)。 l P3.0~P3.7 P2口8...

    06-25
  • 51单片机串口通信需要加超时中断吗?

    接收数据时,超过一定时间就算出错. 这个超时的时间是单片机自己算出的吗?超时的时间是由编程序的人定的,他定多长就多长从一段程序开始 实现电脑向 单片机发送一些数据,单片机返回Iget +数据 #include #define u...

    06-25
下载排行榜
更多
评测报告
更多
广告