MCU最小系统电路设计(以STM32F103C8T6为例)
目录
一、何为最小系统?
二、最小系统电路设计
1.电源
(1)各种名词解释
(2)为什么会有VDD_1 _2 _3区分?
(3)Mirco USB
(4)5v->3.3v滤波电路
(5)电源指示灯
2.复位电路
(1)什么是复位
(2)复位引脚和电路
3.晶振模块
(1)复位引脚
(2)时钟和时钟树
(3)为什么不直接使用内部8M时钟源?
(4)8MHz主晶振介绍
(5)为什么选择32.768KHz RTC晶振?
(6)晶振原理图
4.程序下载口
(1)JTAG下载:
(2)SWD下载:
(3)串口下载:
(4)程序下载口原理图编辑
5.启动方式
(1)三种启动方式:
(2)启动原理图
一、何为最小系统?
最小系统板就是一个最精简的电路,精简到只能维持MCU最基本的正常工作
二、最小系统电路设计
1.电源
(1)各种名词解释
VCC | 电路的供电正电压 | VDDD | 芯片的工作数字正电压 |
GND | 电路的供电负电压 | VSSD | 芯片的工作数字负电压 |
VDD | 芯片的工作正电压 | VREF+ | ADC基准参考正电压 |
VSS | 芯片的工作负电压 | VREF- | ADC基准参考负电压 |
VDDA | 芯片的工作模拟正电压 | VBAT | 电池或其他电源供电 |
VSSA | 芯片的工作模拟负电压 | VEE | 负电压供电 |
VDDA,VSSA:
VBAT:(RTC为实时时钟,LSE为低速外部时钟)
(2)为什么会有VDD_1 _2 _3区分?
因为VDD和VSS在芯片内部都是连在一起的,封装的时候从不同的地方分别引出,目的是为了提供可靠的电源完整性。
(3)Mirco USB
- 1)Vbus:电源引脚。
- 2)D+:数据线+。
- 3)D-: 数据线-。
- 4)ID脚:Identification,检测的意思。ID线—以用于识别不同的电缆端点,mini-A插头(即A外设)中的ID引脚接地,mini-B插头(即B外设)中的ID引脚浮空。
- 5)GND:接地
(4)5v->3.3v滤波电路
(5)电源指示灯
电路:
示例图:
2.复位电路
(1)什么是复位
就是让单片机程序复位,把除了备份区域寄存器以外所有寄存器状态恢复至原始状态,简单来说就是让程序重头开始跑。
(2)复位引脚和电路
复位引脚:当NRST为低电平时复位
复位电路:
3.晶振模块
(1)复位引脚
(2)时钟和时钟树
时钟:
时钟树:
(3)为什么不直接使用内部8M时钟源?
通过数据手册我们可以得知:内部的HSI是由ST出厂时校准过的,但是精度并不高,在0~70℃下误差范围达到1.3%到2%,即便是在标准的25℃下,也有 -1.1%到1.8% 的误差。
对于高波特率的异步串口通讯,或者需要高精度定时的场合,(如:需要跑积分算法的时候),用HSI就有隐患,甚至根本达不到设计要求。
(4)8MHz主晶振介绍
晶振是由石英晶体组成的,石英晶体之所以能当为振荡器使用,是基于它的压电效应:在晶片的两个极上加一电场,会使晶体产生机械变形;在石英晶片上加上交变电压,晶体就会产生机械振动,同时机械变形振动又会产生交变电场,虽然这种交变电场的电压极其微弱,但其振动频率是十分稳定的。当外加交变电压的频率与晶片的固有频率(由晶片的尺寸和形状决定)相等时,机械振动的幅度将急剧增加,这种现象称为“压电谐振”。
晶振电路为主控芯片提供系统时钟,所有的外设工作,CPU工作都要基于该时钟,类似于整个系统的“心跳节拍”。
晶振分为无源和有源,但是本质上都是皮尔斯震荡电路(反相放大器+电阻+电容+晶体+电源),只不过对于单片机而言,单片机内部集成了反相放大器和电阻以及电源,外接晶体和电容就可以了,这里的晶体就称之为无源晶振。
而有源晶振是将皮尔斯振荡器作成一个整体,直接加电源即可工作,当然,价格也会比无源的贵一些。
- 增益控制: 增益很大的反相放大器。
- 8MHZ谐振器: 晶体。
- CL1、CL2: 匹配电容。是电容三点式电路的分压电容,接地点就是分压点。以接地点即分压点为参考点,输入和输出是反相的,但从并联谐振回路即石英晶体两端来看,形成一个正反馈以保证电路持续振荡,它们会稍微影响振荡频率,主要用与微调频率和波形,并影响幅度。
- RF: 反馈电阻(一般≥1MΩ)它使反相器在振荡初始时处于线性工作区。
- REXT: 限流电阻,与匹配电容组成网络,提供180度相移,同时起到限制振荡幅度,防止反向器输出对晶振过驱动将其损坏。
(5)为什么选择32.768KHz RTC晶振?
32.768KHZ的晶振产生的振荡信号经过石英钟内部分频器进行15次分频后得到1HZ/秒的信号。
那为什么选择15分频呢?
频度越高计时精度越高,误差越小。
通常工作频率越高,单片机等数字电路的功耗越大,32.768KHz这个频率比较低,对降低电路功耗有利。
综上选择32.768Hz是取折中的选择!
(6)晶振原理图
4.程序下载口
STM32F103C8T6烧录下载方法大体上有三种,分别为JTAG下载,SWD下载,以及串口下载。
(1)JTAG下载:
JTAG全名为Joint Test Action Group,即为联合测试行动小组,是一种国际标准测试协议。JTAG下载是需要依靠烧录器的,标准的JTAG接口是4线的,包括 JTMS, JTCK,JTDI, JTDO,它们的功能分别是模式选择,时钟输入,数据输入和数据输出,烧录器上的引脚对应连接到STM32F103C8T6的I/O口分别为PA13,PA14,PA15,PB3,加上接VCC和GND,所以JTAG接口最少需要6个引脚。同时单片机的BOOT0,BOOT1引脚要接地。
(2)SWD下载:
SWD全名为Serial Wire Debug,即为串行调试接口。SWD下载是需要依靠烧录器的,SWD接口是2线的,包括SWDIO,SWCLK,它们的功能分别是数据输入输出和时钟输入,烧录器上的引脚对应对应连接到STM32F103C8T6的I/O口分别为PA13,PA14,加上接VCC和GND,所以SWD接口最少需要4个引脚。同时单片机的BOOT0,BOOT1引脚要接地。
(3)串口下载:
通过USART进行烧录下载。串口下载是不需要依靠烧录器的,它直接通过安卓线连接电脑和单片机,其中STM32F103C8T6与电脑相连接的串口为USART2,对应的I/O口为PA2(TX),PA3(RX),一般在开发板上会使用串口下载,简单方便。同时单片机的BOOT0引脚要接高电平,BOOT1引脚要接低电平。
我们这里采用的烧录方式为SWD下载,下载电路设计时将PA13(SWDIO),PA14(SWCLK),VCC和GND这4个引脚引出
(4)程序下载口原理图
5.启动方式
(1)三种启动方式:
第一种方式(boot0 = 0):Flash memory启动方式
启动地址:0x08000000 是STM32内置的Flash
因为JTAG或者SWD模式下载程序时,是下载到内置的Flash中
所有重启后需要从内置Flash启动程序。
第二种方式(boot0 = 1;boot1 = 0):System memory启动方式
启动地址:0x1FFF0000从系统存储器启动,这种模式启动的程序功能是由厂家设置的。
系统存储器是芯片内部一块特定的区域,STM32在出厂时,由ST在这个区域内部预置了一段BootLoader, 也就是我们常说的ISP程序, 这是一块ROM,出厂后无法修改。一般来说,我们选用这种启动模式时,是为了从串口下载程序,因为在厂家提供的BootLoader 中,提供了串口下载程序的固件,可以通过这个BootLoader将程序下载到系统的Flash中。
第三种方式(boot0 = 1;boot1 = 1):SRAM启动方式。
启动地址:0x20000000 内置SRAM,既然是SRAM,自然也就没有程序存储的能力了,这个模式一般用于程序调试。假如我只修改了代码中一个小小的地方,然后就需要重新擦除整个Flash,比较的费时,可以考虑从这个模式启动代码(也就是STM32的内存中),用于快速的程序调试,等程序调试完成后,在将程序下载到SRAM中。
(2)启动原理图
总结:
相关文章:

MCU最小系统电路设计(以STM32F103C8T6为例)
目录 一、何为最小系统? 二、最小系统电路设计 1.电源 (1)各种名词解释 (2)为什么会有VDD_1 _2 _3区分? (3)Mirco USB (4)5v->3.3v滤波电路 &#…...

[JavaWeb学习日记]JSP+Cookie+Filter与登录+CRUD案例
目录 一.JSP 二.EL表达式与JSTL标签 三.Cookie 四.Session 五.Filter 六. 登录CRUD:品牌增删改查案例 Demo一览 1.导包 2.构建包结构 3.创建数据库表tb_brand与user 4.创建实体类 5.mybatis的配置文件和logback配置文件 6.写接口 7.工具类:生成图片与…...

Ruby网络爬虫教程:从入门到精通下载图片
概述 网络爬虫技术在信息时代扮演着重要的角色,它可以自动化地获取互联网上的信息,为用户提供便利的数据服务。本文将带领读者从零开始,通过学习Ruby编程语言,逐步掌握网络爬虫的设计与实现,重点介绍如何利用网络爬虫技…...

各中间件性能、优缺点对比
参考资料: Kafka、ActiveMQ、RabbitMQ、RocketMQ 有什么优缺点?...

修改表中某个字段等于另一个字段减去 2 小时的 SQL
需求:将表中到达时间按照客户要求改为比赛时间的提前 N 小时,具体如下: 表结构 update contestSchedule SET mainRefereeArrivalTimeDATE_FORMAT(CONCAT(2024-03-04 ,gameTime)- INTERVAL 2 HOUR, %H:%i), assistantRefereeArrivalTimeDAT…...

Jetpack Compose: Hello Android
Jetpack Compose 是一个现代化的工具包,用于使用声明式方法构建原生 Android UI。在本博文中,我们将深入了解一个基本的 “Hello Android” 示例,以帮助您开始使用 Jetpack Compose。我们将探讨所提供代码片段中使用的函数和注解。 入门 在…...

蓝桥每日一题 (差分)3月3号
//3279改变数组元素 自己做TLE:奈何想不出怎么用差分 #include<bits/stdc.h> using namespace std; //3279 改变数组元素(超时) const int N2e510; vector<int>a; int t,n; int main() {cin>>t;while(t--){cin>>n;…...

Mybatis和Spring Data Jpa的优缺点比较(八股文)
ORM(Object-Relational Mapping)框架是一种用于实现对象与关系数据库之间映射的工具或库。它可以将数据库中的表和记录映射成对象和属性,使开发人员可以使用面向对象的方式操作数据库,而不需要编写复杂的SQL语句。ORM框架的主要功…...

LeetCode买卖股票的最佳时机
LeetCode买卖股票的最佳时机 121 买卖股票的最佳时机Ⅰ 题目描述 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计…...

Codeforces Round 932 (Div. 2)----->A. Entertainment in MAC
一,思路: 简单的字符串处理,当反转字符串后如果字典序减小了,那么肯定不会再执行反转操作,而是执行操作2,将反转后的字符串拼接(这样必定构造一个回文串),那么之后的操作…...

【JavaScript】 短路运算的妙用 ||
短路运算的妙用 下方举例中的写法技巧,在实际开发中,经常用到。这种写法,是一种很好的「容错、容灾、降级」方案,需要多看几遍。 1、JS 中的&&属于短路的与: 如果第一个值为 false,则不会执行后面的…...

密码学之椭圆曲线
引言 DH(Diffie-Hellman)密钥交换算法于1976年提出,是第一个公开密钥交换算法。其基础是数学中的群论,群论也是大多数公开密钥密码的基础。简单来说,群是一组元素的集合以及在这些元素上定义的特殊二元运算。 一个群需要满足如下性质: 封闭性:群中两个元素的运算结果仍…...

overleaf latex 笔记
overleaf: www.overleaf.com 导入.tex文件 1.代码空一行,代表文字另起一段 2. 1 2 3 排序 \begin{enumerate} \item \item \item \end{enumerate} 3.插入图片 上传图片并命名 \usepackage{float}导包\begin{figure}[H]:表示将图…...

第十五届蓝桥杯青少组STEMA测评SPIKE初级真题试卷 2024年1月
第十五届蓝桥杯青少组STEMA测评SPIKE初级真题试卷 2024年1月 来自:6547网 http://www.6547.cn/doc/vywur8eics...

10个常见的Java面试问题及其答案
问题: Java的主要特性是什么? 答案: Java的主要特性包括面向对象、平台无关、自动内存管理、安全性、多线程支持、丰富的API和强大的社区支持。 问题: 什么是Java的垃圾回收机制? 答案: Java的垃圾回收机…...

Vue跳转页面传递参数
Vue跳转页面传递参数 🌟 前言 欢迎来到我的小天地,这里是我记录技术点滴、分享学习心得的地方。📚 🛠️ 技能清单 编程语言:Java、C、C、Python、Go、前端技术:Jquery、Vue.js、React、uni-app、EchartsUI…...

【已解决】conda环境下ROS2 colcon build编译选择特定python解释器
目录 1 问题背景2 问题探索3 问题解决4 告别Bug 1 问题背景 环境: ROS2 HumbleUbuntu22.04 现象:运行colcon build后由cpp编译生成的python导出库(如自定义消息、服务等),其版本与由python setup.py安装的python库版本不一致,导致…...

QT C++实践| 连接数据库的登录界面实现| 附源码
前言 在之前的两篇博客中QT C实战:实现用户登录页面及多个界面跳转、QT C实践|超详细数据库的连接和增删改查操作|附源码分别详细讲解了:登录界面的制作(UI布局、页面跳转、登录逻辑等)、QT如何连接Mysql数据库,并进行…...

html样式排版
<template><div class"box"><div class"header">头部</div><div class"main"><div class"left">菜单</div><div class"right"><div class"right-contentr"&g…...

Java:性能优化细节31-45
Java:性能优化细节31-45 31、合理使用java.util.Vector 在使用java.util.Vector时,需要注意其性能特性和最佳实践,以确保应用程序运行高效。Vector是一个同步的集合类,提供了动态数组的实现。由于它是线程安全的,所以…...

YOLOv9独家原创改进|增加SPD-Conv无卷积步长或池化:用于低分辨率图像和小物体的新 CNN 模块
专栏介绍:YOLOv9改进系列 | 包含深度学习最新创新,主力高效涨点!!! 一、文章摘要 卷积神经网络(CNNs)在计算即使觉任务中如图像分类和目标检测等取得了显著的成功。然而,当图像分辨率较低或物体较小时&…...

Android Gradle开发与应用 (四) : Gradle构建与生命周期
1. 前言 前几篇文章,我们对Gradle中的基本知识,包括Gradle项目结构、Gradle Wrapper、GradleUserHome、Groovy基础语法、Groovy语法概念、Groovy闭包等知识点,这篇文章我们接着来介绍Gradle构建过程中的知识点。 2. Project : Gradle中构建…...

[MRCTF2020]Transform1
a[33]"9,10,15,23,7,24,12,6,1,16,3,17,32,29,11,30,27,22,4,13,19,20,21,2,25,5,31,8,18,26,28,14" b[33]"103,121,123,127,117,43,60,82,83,121,87,94,93,66,123,45,42,102,66,126,76,87,121,65,107,126,101,60,92,69,111,98,77" python代码 a3 [103…...

JavaWeb HTTP 请求头、请求体、响应头、响应体、响应状态码
J2EE(Java 2 Platform Enterprise Edition)是指“Java 2企业版”,B/S模式开发Web应用就是J2EE最核心的功能。 Web是全球广域网,也称为万维网(www),能够通过浏览器访问的网站。 在日常的生活中,经常会使用…...

穿越数字防线:SSH协议的全景解析与未来展望
SSH基本概念 SSH(Secure Shell)是一个用于计算机网络的加密协议,设计用来提供一种安全的方式通过不安全的网络进行远程登录和其他网络服务。SSH协议主要用于远程管理系统和安全地传输信息。 SSH的历史背景 SSH由Tatu Ylnen于1995年开发&am…...

语文教学方法有哪些,产生了什么效果
你是否曾想过,一位普通的语文老师如何化身为智慧的引导者,点燃学生心中的求知之火?让我们一起探寻那些神奇的语文教学方法,以及它们带来的深远影响。 不仅让知识变得容易理解,更在无形中培养了学生的各项能力。通过谈话…...

Docker之网络配置
目录 一. Docker网络介绍 1.1 网络模式 1.2 bridge模式(默认模式) 1.2.1 什么是桥接模式 1.2.2 效果演示 1.2.3 桥接模式的特点 1.3 host模式 1.3.1 什么是host模式 1.3.2 仅主机模式的特点 二. Docker网络实操 2.1 bridge桥接模式 2.1 host仅主机模式 三. Docker自定义网络…...

Mybatis实现分页查询数据(代码实操讲解)
在MyBatis中实现分页查询的常见方式有两种:使用MyBatis内置的分页插件如PageHelper,或者手动编写分页的SQL语句。下面我将为你提供两种方式的示例代码。 使用PageHelper分页插件 首先,确保你的项目中已经添加了PageHelper的依赖。在Maven项…...

【自动驾驶技术系列丛书学习】1.《自动驾驶技术概论》学习笔记
《自动驾驶技术概论》学习笔记 致谢:作者:王建、徐国艳、陈竞凯、冯宗宝 -------------------------------------------------------------------------------------------------------- 笔记目录 《自动驾驶技术概论》学习笔记 1.汽车发展史 2.国…...

2023年全国职业院校技能大赛 GZ073网络系统管理赛项 模块A:网络构建(运维配置)
1.完成整网连通后,进入网络监控运维阶段,运维软件已安装在PC的虚拟机中,通过运维平台监控拓扑中所有网络设备(AP除外)。考试现场提供运维平台登陆的用户名密码信息。 2.通过运维平台将被监控设备纳入监控范围;通过拓扑配置功能,将网络拓扑配置到平台中。...