STM32的最小系统组成的详解

news2024/12/29 2:47:37

经常使用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即可,这是个经验值。

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

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

(2)反馈电阻: 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后技术男,从事嵌入式软件开发,专注于技术成长和技术分享。目标是每天进一步一点点,通过技术改变自己的生活,创造自己的美好未来!如果你也对嵌入式感兴趣,欢迎关注我呀!

声明:

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

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

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/77979.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【自省】使用Executors.xxx违反阿里Java代码规范,那还不写定时任务了?

一、背景 在《分布式锁主动续期的入门级实现-自省 | 简约而不简单》中通过【自省】的方式讨论了关于分布式锁自动续期功能的入门级实现方式,简单同步一下上下文: 客户端抢到分布式锁之后开始执行任务,执行完毕后再释放分布式锁。持锁后因客…

微服务守护神-Sentinel-热点-授权-系统规则

引言 书接上篇 微服务守护神-Sentinel-降级规则 ,上面介绍了Sentinel降级规则,本篇继续来Sentinel的热点、授权、系统规则。 热点规则 何为热点?热点即经常访问的数据。很多时候我们希望统计某些热点数据中访问频次最高的 Top K 数据&…

# String-security(配置异常处理器,封装JWT工具类)

1 JWT是做什么的? 为了在前后端分离项目中使用 JWT ,我们需要达到 2 个目标: 在用户登录认证成功后,需要返回一个含有 JWT token 的 json 串。 在用户发起的请求中,如果携带了正确合法的 JWT token ,后台需要放行&a…

ELK日志分析系统

目录 一.ELK概述 1.1 ELK简介 1.2 ELK日志组件 1.2.1 ELK组件介绍 1.3 日志处理步骤 二. Elasticsearch 集群部署 2.1 关闭防火墙 ​2.2 ELK Elasticsearch 集群部署(在Node1,Node2节点上操作) ​ 2.2.1 更改主机名​ 2.2.2 配置域名…

RCE漏洞简介

今天继续给大家介绍渗透测试相关知识,本文主要内容是RCE漏洞简介。 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 再次强调:严禁对未授权设备进行…

高级篇之如何升级5GCPE固件

高级篇之如何升级5GCPE固件1. 准备工作2. 安装5GCPE串口驱动3. 升级固件3.1 选择固件3.2 选择串口号3.3 下载固件3.4 下载固件意外情况4. 重新启动结束!LINKPI-5GCPE是LINKPI推出的可以做户外移动直播的 5G无线网关,可以支持三种模式: 网卡模…

计算机网络-分组交换与电路交换

有志者,事竟成 文章持续更新,可以关注【小奇JAVA面试】第一时间阅读,回复【资料】获取福利,回复【项目】获取项目源码,回复【简历模板】获取简历模板,回复【学习路线图】获取学习路线图。 文章目录一、分组…

普乐蛙VR航天科技馆太空体验馆VR太空舱体验馆vr飞碟遨游太空

什么是航天航空主题馆 普乐蛙VR航天航空体验馆系列 普乐蛙VR航天航空主题馆可以根据客户的需求,用航天航空的科技氛围方案进行布置,大多用最新的黑科技,让整个馆充满科技科幻的感觉,使人沉浸,容易进入主题。馆内设置不…

MySQL函数:列转行CONCAT、CONCAT_WS、GROUP_CONCAT的使用(精要)

前言 很久没有接触Mysql了。 今天心血来潮,突然想了解一下Mysql列转行,看了一些文章,重点不清晰,遂有下文! Mysql官网、 社区版下载( Windows版_mysql.8.0.31下载 ) 概述 Mysql内部提供了列转…

UNIAPP实战项目笔记50 登录和注册页面的布局

UNIAPP实战项目笔记50 登录和注册页面的布局 实际案例图片 登录页面布局 注册页面布局 显示登录和注册页面布局 页面布局的切换 具体内容图片自己替换哈&#xff0c;随便找了个图片的做示例 具体位置见目录结构 完善布局页面和样式 代码 login.vue部分 <template><v…

拉线援(AD PADS Cadence快捷键汇总)

年纪越大&#xff0c;记性就不太好了&#xff0c; 要干的活越多&#xff0c; 还要盯盘&#xff0c; 效率得提升一下。 总结下平时拉线容易用到的快捷键、评审资料等。 以后不断更新完善。 公众号发消息&#xff08;Download|拉线援&#xff09;可获得源文档。 一、Altium Desi…

水文气象站远程监测物联网系统,彰显水利治理智慧

我国在几千年的历史中都对水利设施建设十分重视&#xff0c;修建了各种类型的水利设施&#xff0c;在古代的生活、农业生产、防洪排水、漕运等多个方面发挥着非常重要的作用&#xff0c;如都江堰、郑国渠、坎儿井等设施更是青史留名。 到了现代&#xff0c;水资源治理依旧是民生…

开源SCRM营销平台-MarketGo产品介绍(二)

1、MarketGo概述 MarketGo中国式营销自动化开源项目标杆。 MarketGo更像是一个 SDK 、引擎&#xff0c;通过提供的标准化功能和基础能力&#xff0c;让开发者能快速搭建一个营销自动化系统&#xff0c;快速完成从0-1的过程&#xff0c;并且能基于开放的能力和源码&#xff0c…

爱了、阿里巴巴 JAVA 岗发布,最新内部面试题(含 P5-P7)

不少人对阿里巴巴技术岗的体系结构及级别的技术要求设置不太清楚&#xff0c;想去面试心里没底&#xff0c;下面简单介绍一下阿里 P5-P7 技术岗要求体系以及为大家分享一份涵盖阿里巴巴 P5-P7 的完整面试题&#xff01; 阿里 P5(高级研发工程师) 工作要求&#xff1a; 能独立…

容器的常用方法和线程安全(Map、List、Queue)

一、Map 1. HashTable 线程安全的Map&#xff0c;用synchronized锁 2. Collections.synchronizedMap Collections.synchronizedMap(new HashMap()) 可以把HashMap变成线程安全的&#xff0c;锁粒度比HashTable稍微小一点 3. ConcurrentHashMap ConcurrentHashMap主要提高…

【C++】STL - vector使用和模拟实现

&#x1f431;作者&#xff1a;傻响 &#x1f431;专栏&#xff1a;《C/C - STL》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; ​ 目录 No.1.vector的介绍及使用 1.1 vector的介绍 1.2 vector的接口 vector的构造函数接口 vector的…

最近很火的电视剧《点燃我,温暖你》男主角学神和女主角课代表计算机考试实现的跳动的爱心,全程用代码复原真实的实现

最近很火的电视剧《点燃我&#xff0c;温暖你》男主角学神和女主角课代表计算机考试实现的跳动的爱心&#xff0c;全程用代码复原真实的实现。 学神考试100分&#xff0c;只是因为试卷只有100分&#xff01; 该剧改编自作家Twentine创作的小说《打火机与公主裙》&#xff0c;讲…

微服务框架 SpringCloud微服务架构 微服务保护 31 限流规则 31.5 流控效果【排队等待】

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 微服务保护 文章目录微服务框架微服务保护31 限流规则31.5 流控效果【排队等待】31.5.1 流控效果【排队等待】31.5.2 案例31.5.3 总结31 限流…

JAVA物业管理系统带小程序源码

源码分享&#xff01;文末卡片查看联系方式获取源码。 基于Web&#xff0c;使用MySQL数据库&#xff0c;使用安全框架&#xff1a;shiro, 使用技术&#xff1a;springspringMVCMybatis&#xff0c;小程序 前端框架&#xff1a;layui 编译器&#xff1a;IntelliJ IDEA 项目构…

Linux消息中间件-RabbitMQ

Linux消息中间件-RabbitMQ 消息中间件 MQ简介 MQ 全称为Message Queue, 消息队列。是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息&#xff08;针对应用程序的数据&#xff09;来通信&#xff0c;而无需专用连接来链接它们。消息传递指的是程序之间通…