MCU最小系统电路设计(以STM32F103C8T6为例)

news2024/11/18 5:53:21

目录

一、何为最小系统?

二、最小系统电路设计

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)启动原理图

总结:

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

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

相关文章

Unity编辑器功能Inspector快捷自动填充数据和可视化调试

我们有时候可能需要在面板增加一些引用,可能添加脚本后要手动拖动,这样如果有大量的脚本拖动也是不小的工作量 实例 例如:我的脚本需要添加一个Bone的列表,一个个拖动很麻烦。 实现脚本 我们可以用这样的脚本来实现。 public…

浅谈结构化数据、非结构化数据,关系数据库、非关系数据库

结构化数据和非结构化数据两者之间存在一定的区别。以下是具体分析: - **结构化数据**:通常指的是那些组织严谨、格式规范统一的数据,它们存储在关系数据库中,可以通过二维表的形式进行逻辑表达。这类数据有明确的数据模型&#…

微信小程序开发系列(十三)·如何使用iconfont、微信小程序中如何使用字体图标

目录 1. 如何使用iconfont 2. 微信小程序中如何使用字体图标 3. 背景图的使用 1. 如何使用iconfont 在项目中使用到的小图标,一般由公司设计师进行设计,设计好以后上传到阿里巴巴矢量图标库,然后方便程序员来进行使用。 小程序中的字体…

最简单 导航栏 html css

dhl.html <!DOCTYPE html> <html><head><meta charset"utf-8"><title>导航栏</title><link type"text/css" rel"stylesheet" href"css/dhl.css"></head><div class"dhl&quo…

2024.3.5 网络编程

思维导图 复习课堂作业&#xff1a;IO多路复用 select 实现服务端 #include<myhead.h> #define SER_IP "192.168.68.154" #define SER_PORT 1234int main(int argc, const char *argv[]) {//1、创建用于监听的套接字int sfd -1;sfdsocket(AF_INET, SOCK_STR…

【笔记】ArkTS 语言(OpenHarmony系统)

一、官方简介和文档 介绍&#xff1a;aArkTS 语言 | 华为开发者联盟 (huawei.com) 学习指南&#xff08;文档&#xff09;&#xff1a;初识ArkTS语言-学习ArkTS语言-入门 | 华为开发者联盟 (huawei.com) 二、ArkTS语言知识 &#xff08;一&#xff09;编程语言介绍 Mozilla创…

ASUS华硕天选2锐龙版笔记本电脑FA506ICB/FA706IC原装出厂Windows11系统,预装OEM系统恢复安装开箱状态

链接&#xff1a;https://pan.baidu.com/s/122iHHEOtNUu4azhVPnxNuA?pwdsqk7 提取码&#xff1a;sqk7 适用型号&#xff1a; FA506IM、FA506IE、FA506IC、FA506IHR FA506IR、FA506IHRB、FA506ICB、FA506IEB FA706IM、FA706IE、FA706IC、FA706IHR FA706IR、FA706IHRB、F…

DxO PureRAW:赋予RAW图像生命,打造非凡视觉体验 mac/win版

DxO PureRAW 是一款专为RAW图像处理而设计的软件&#xff0c;旨在帮助摄影师充分利用RAW格式的优势&#xff0c;实现更加纯净、细腻的图像效果。该软件凭借其强大的功能和易于使用的界面&#xff0c;成为了RAW图像处理领域的佼佼者。 DxO PureRAW 软件获取 首先&#xff0c;Dx…

python 操作 minio

座右铭&#xff1a;怎么简单怎么来&#xff0c;以实现功能为主。 欢迎大家关注公众号与我交流 环境安装 pip install -U minio 示例代码 import os from minio import Minio from loguru import logger from datetime import timedeltaclass Client:endpoint: ip:portaccess…

【笔记】Android 漫游定制SPN定制有关字段

一、SPN模块简介 【笔记】SPN和PLMN 运营商网络名称显示 Android U 配置 WiFiCalling 场景下PLMN/SPN 显示的代码逻辑介绍 【笔记】Android Telephony 漫游SPN显示定制&#xff08;Roaming Alpha Tag&#xff09; 二、相关配置字段 non_roaming_operator_string_array 是否…

Nginx使用—http基础知识

web访问流程 当我们在客户端通过浏览器输入网址的时候&#xff0c;这时候是访问不到服务器的&#xff0c; 先会去找到DNS解析服务器&#xff0c;DNS解析服务器返回IP地址&#xff0c; 客户端通过http协议向服务端发送请求&#xff0c;服务器响应请求并返回对应的资源给客户端&a…

【排序】详解冒泡排序

一、思想 冒泡排序的基本思想是利用两两比较相邻记录的方式&#xff0c;通过一系列的比较和交换操作&#xff0c;使得较大或较小的元素逐渐移动到数列的一端。在每一轮的排序过程中&#xff0c;都会从数列的起始位置开始&#xff0c;对相邻的元素进行比较&#xff0c;如果它们…

【论文笔记】Language Models are Unsupervised Multitask Learners

Language Models are Unsupervised Multitask Learners 回顾一下第一代 GPT-1 &#xff1a; 设计思路是 “海量无标记文本进行无监督预训练少量有标签文本有监督微调” 范式&#xff1b;模型架构是基于 Transformer 的叠加解码器&#xff08;掩码自注意力机制、残差、Layernorm…

linux系统---LNMP架构下部署社区论坛与博客

一.编译安装Nginx&#xff08;web服务器&#xff09; 1.关闭防火墙 systemctl stop firewalld systemctl disable firewalld setenforce 0 2、安装依赖包 yum -y install pcre-devel zlib-devel gcc gcc-c make 3、创建运行用户 nginx 服务程序默认 以 nobody 身份运行&a…

upload-Labs靶场“11-15”关通关教程

君衍. 一、第十一关 %00截断GET上传1、源码分析2、%00截断GET上传 二、第十二关 %00截断POST上传1、源码分析2、%00截断POST上传 三、第十三关 文件头检测绕过1、源码分析2、文件头检测绕过 四、第十四关 图片检测绕过上传1、源码分析2、图片马绕过上传 五、第十五关 图片检测绕…

CSS的标准文档流,web后端开发框架

了解校招 知己知彼才能百战百胜&#xff0c;在准备校招之前&#xff0c;我们先要了解校招。 什么是校招&#xff1f; 校招&#xff0c;全称校园招聘&#xff0c;指企业招聘那些即将毕业的学生。校招主要分为三个部分&#xff1a;简历筛选&#xff0c;笔试&#xff0c;面试。 …

MATLAB环境下基于LSTM模型的癫痫发作检测方法

癫痫预测研究是利用脑电信号对癫痫发病过程做出及时的预测以促进癫痫发病的防治&#xff0c;这一研究的重点在于充分利用癫痫发生前后人体大脑产生的脑电信号。但截至上世纪九十年代初期&#xff0c;医学工作者及相关领域的专家们仍然相信癫痫病的发生过程是一种突发的、毫无规…

el-dialog封装组件

父页面 <template><div><el-button type"primary" click"visible true">展示弹窗</el-button><!-- 弹窗组件 --><PlayVideo v-if"visible" :visible.syncvisible /></div> </template><sc…

Kafka数据推送配置 | 如何设置账号密码验证?

背景&#xff1a;之前资产信息用网络接口进行数据推送&#xff0c;但是接口推送需要验证而且反应较慢。Kafak中间件提供了另一种可行的数据推送方式&#xff0c;它可以进行消息队列推送&#xff0c;且反应速度快。但是Kafka需部署在公网环境&#xff0c;并进行登录验证&#xf…

笔记本小键盘怎么开?探索笔记本小键盘的奥秘

对于许多笔记本用户来说&#xff0c;小键盘&#xff08;也称为数字键盘或NumPad&#xff09;是一个不可或缺的工具&#xff0c;它为用户提供了快速输入数字和进行计算的便利。然而&#xff0c;并非所有的笔记本电脑都配备有物理小键盘&#xff0c;而且有时我们可能会发现小键盘…