基于STM32的最小系统电路设计(STM32F103C8T6为例)

前言:本篇博客为嵌入式硬件领域的文章,对 STM32 的最小系统电路设计进行教学。本篇博客以嘉立创 EDA(标准版)进行绘制 STM32F103C8T6 的最小系统电路 PCB 板,STM32 的最小系统通常包括:微控制器、时钟电路、电源电路、复位电路以及程序下载端口。本篇博客对 STM32F103C8T6 的最小系统进行介绍并强调绘制 PCB 过程中的注意事项!(PCB绘制图见篇末)

最小系统电路:

PCB绘图:

 

一、最小系统电路概述

最小系统电路通常指的是能够维持一个微控制器(MCU)的电路,包括以下几个基本部分:

1、微控制器(MCU): 最小系统电路的核心,负责处理数据和运行程序;

2、时钟电路: 提供MCU运行所需的时钟信号,通常包括晶体振荡器和相关的电容;

3、电源: 为MCU和其他电路提供稳定的电源。可能包括电压调节器、滤波电容等;

4、复位电路: 确保MCU在上电或需要时能够正确地启动和复位;

5、程序下载端口: 允许程序员将代码烧录到MCU中,并在开发过程中进行调试。这通常包括JTAG、SWD、ISP等接口;

这个最小系统电路是构建更复杂系统的基础,可以根据具体的应用需求进行扩展和修改。在设计时,需要考虑MCU的规格、功耗、工作电压、接口需求等因素,以确保系统的稳定运行。

二、最小系统电路设计

2.1 微控制器(MCU)

微控制器(Microcontroller,简称MCU)是一种集成电路,它集成了中央处理单元(CPU)、内存、输入/输出(I/O)接口和部分外设功能,用于控制电子设备的一个或多个功能。本篇博客的最小系统板使用 STM32F103C8T6 作为 MCU 进行操作,STM32F103C8T6拥有非常多的外设功能,包括:GPIO、UART、USB、SPI、I2C以及CAN等,可以制造出各种样式的电子产品。

微控制器电路中的去耦电容(作者是拆分下来画的),如下图所示:

去耦电容核心作用是来滤除杂波的,保持引脚电压的稳定。这些电容也尽量离芯片相关引脚近一点。分布在芯片四周即可。

2.2 时钟电路

STM32 最小系统板的时钟电路又称为 “晶振电路”。晶振电路,全称为晶体振荡电路,是电子设备中用于产生稳定、准确的频率信号的电路。晶振电路广泛应用于各种电子产品中,如计算机、手机、通信设备等,其主要作用是提供精确的时间基准和稳定的系统时钟。

时钟电路(晶振电路)用来给芯片提供时钟信号,原理图如下:

PCB绘制需要注意的点:

1、画板时晶振尽量离芯片近一点;
2、晶振底部尽量不要穿过其他支路,防止信号串扰;
3、不同型号的晶振可能需要不同的电路设计,根据自己使用的晶振型号设计;

2.3 电源

该STM32最小系统板上的电源电路使用了AMS1117-3.3V模块,属于典型的降压电源电路。将输入的 5V 电压进行降压,最终输出需要使用的 3.3V 电压。

电源电路中使用的两种不同的电容?

(1)、 输入滤波电容的作用:

输入电压,当接入电源,其幅值是从零起始的,波动非常大,加入足够容量的电容进行滤波后,因电容的充放电效应,该脉动直流变成纹波不大的直流电,这是输入滤波的作用。

(2)、输出滤波电容的作用:

稳压电路的工作过程需要从输出采样,然后根据其反馈值调节输出以达稳压的目的。如果此时没有输出滤波电容,只要因负载变化带来的电压波动频率恰好与稳压电路的调节速率差不多就会产生振荡效应,导致输出失控,所以稳压输出也必须加滤波电容,而且增加滤波电容也可以进一步增加稳压输出的稳定性。

★大电容和小电容并联的作用:

至于与大容量电解电容并联的小电容,其作用在于旁路频率较高的波动电压,因为铝电解电容的制造工艺导致其具有较大的ESL(等效电感),无法滤除高频成份,故需加个小电容。

2.4 复位电路

STM32 有三种复位方式:电源复位、系统复位和后备域复位;

电源复位时,当RESET引脚被拉低(KEY1被按下),产生外部复位,并产生复位脉冲,从而使系统复位。

2.5 程序下载端口

程序下载电路包括:BOOT电路和程序下载接口

★BOOT电路

启动方式BOOT0BOOT1
从主闪存存储器启动0x
从系统存储器启动10
从内置SRAM启动11

程序下载接口,如下图所示(型号:HEADER_1*4P):

三、启动方式

一般来说就是指我们下好程序后,重启芯片时,SYSCLK 的第4个上升沿,BOOT 引脚的值将被锁存。用户可以通过设置 BOOT1 和 BOOT0 引脚的状态,来选择在复位后的启动模式。

3.1 主闪存存储器启动

1、第一种方式(boot0 = 0):Flash memory启动方式

启动地址:0x08000000 是 STM32 内置的 Flash,一般我们使用 JTAG 或者 SWD 模式下载程序时,就是下载到这个里面,重启后也直接从这启动程序。基本上都是采用这种模式。

3.2 系统存储器启动

2、第二种方式(boot0 = 1;boot1 = 0):System memory启动方式

启动地址:0x1FFF0000从系统存储器启动,这种模式启动的程序功能是由厂家设置的。一般来说,这种启动方式用的比较少。系统存储器是芯片内部一块特定的区域,STM32在出厂时,由ST在这个区域内部预置了一段BootLoader, 也就是我们常说的ISP程序, 这是一块ROM,出厂后无法修改。一般来说,我们选用这种启动模式时,是为了从串口下载程序,因为在厂家提供的BootLoader 中,提供了串口下载程序的固件,可以通过这个BootLoader将程序下载到系统的Flash中。但是这个下载方式需要以下步骤:

1、将BOOT0设置为1,BOOT1设置为0,然后按下复位键,这样才能从系统存储器启动BootLoader
2、最后在BootLoader的帮助下,通过串口下载程序到Flash中
3、程序下载完成后,又有需要将BOOT0设置为GND,手动复位,这样,STM32才可以从Flash中启动可以看到, 利用串口下载程序还是比较的麻烦,需要跳帽跳来跳去的,非常的不注重用户体验。

3.3 内置SRAM启动

3、第三种方式(boot0 = 1;boot1 = 1):SRAM启动方式

启动地址:0x20000000 内置SRAM,既然是SRAM,自然也就没有程序存储的能力了,这个模式一般用于程序调试。假如我只修改了代码中一个小小的 地方,然后就需要重新擦除整个Flash,比较的费时,可以考虑从这个模式启动代码(也就是STM32的内存中),用于快速的程序调试,等程序调试完成后,在将程序下载到SRAM中。

四、PCB绘制的注意事项

以下内容是作者自己总结的需要注意点,后续如果还有,作者还会继续补充到这里。

1.PCB的边缘层是机械层。
2.要注意走电源的线要画的尽量粗一些。(容易被忽略的点)
3.PCB覆铜的过程中,没有导线的地方都是空白的,只有有导线连接的地方会被附上铜。
4.器件在画PCB的时,要尽可能的短一些,减少环境噪声等干扰(带来相应的问题是器件之间存在些许的干扰)。
5.可以使用局部覆铜,可以增强散热。
6.原理图空脚不能只空着,要么接地,要么就标上×的引脚符号。
7.有USB的情况下,要尽量在前面加上一个保险丝。(作用:起静电放电防护。)
8.PCB中GND引脚可以不接,最后直接对地覆铜即可。
9.局部铺铜的话,不用选去除死铜那个选项,直接快捷键P+R即可。
10.PCB要测距离的话,就按ctrl+m
11.在PCB画图的工程中,连线尽量不要走直角,应该选择大90°的角度进行连线,从PCB加工生产的角度来说,最好不要直角走线,而是采用弧形走线或钝角走线(避免电磁影响、频率影响、腐蚀度影响、美观性影响)

五、PCB绘制图分享

绘制图地址: STM32F103C8T6的PCB绘制图资源资源-CSDN文库

如果积分不够的朋友,点波关注评论区留下邮箱作者无偿提供源码和后续问题解答。求求啦关注一波吧 !!!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PHP医院安全(不良)事件报告系统源码 vue2+element支持11大类不良事件上报、审核处理、分析改进

PHP医院安全(不良)事件报告系统源码 vue2element支持11大类不良事件上报、审核处理、分析改进 医院安全(不良)事件管理系统采用无责的、自愿的填报不良事件方式,有效地减轻医护人员的思想压力,实现以事件为…

unity制作app(4)--PANEL套scroll view

这个东西之前做过,主要是唤醒界面可能失去控制权,一步一步做吧。 1.panel是一个容器,初始形状等价于屏幕,是可以按比例调整的! 比如此时我想做“加入我们”里面的信息录入功能,panel的大小和位置如下所示…

【深入浅出MySQL】「性能调优」高性能查询优化MySQL的SQL语句编写

高性能查询优化MySQL的SQL语句编写准则这里写目录标题 总体优化大纲(1)优化查询性能:通过索引降低全表扫描频率优化方向案例介绍问题分析解决方案建立复合索引建立单独索引 (2)优化数据表与查询:合理使用非…

零基础学习数据库SQL语句之操作表中数据的DML语句

我们的数据库是根据页面原型和相关需求完成相关开发的 在表中添加数据 删除数据 修改数据 添加数据 页面模型 当点击保存的时候就能将表单数据提交到服务端 服务端将数据添加到数据库 我们要用insert语句 将数据添加到数据库中 代码演示 CREATE DATABASE Dduo; USE Dduo…

数据库(MySQL)—— 多表查询

数据库(MySQL)—— 多表查询 多表关系一对多多对多一对一多表查询概述数据准备查询形式笛卡尔积 分类连接查询内连接外连接左外连接右外连接 自连接联合查询 今天我们来进入MySQL中一个非常重要的部分:多表查询: 多表关系 多表关…

生产看板:最直观的车间管理方式之一,是马是马户牵出来溜溜。

可视化生产看板在组织工业生产中扮演着重要的角色,它可以提供实时的信息和可视化的数据,帮助团队和管理层更好地监控和管理生产过程。 以下是可视化生产看板在组织工业生产中的作用: 实时监控:可视化生产看板可以显示实时的生产数…

Spring - 10 ( 9000 字 Spring 入门级教程 )

一:MyBatis 进阶 动态 SQL 是 Mybatis 的强大特性之⼀,能够完成不同条件下不同的 sql 拼接。 1.1 if 标签 在注册用户的时候,可能会有这样⼀个问题,如下图所示: 注册分为两种字段:必填字段和非必填字段&…

原创字幕雨技术,二次剪辑混剪搬运短视频必备,轻松过原创

原创字幕雨素材教程,教你如何制作自己专属的字幕雨, 把素材运营到自己的二次剪辑,提升二创短视频的原创度, 帮助你做搬运或者短视频运营,轻松过原创。 课程目录: 1:什么是字幕雨 2&#xf…

FP16、BF16、INT8、INT4精度模型加载所需显存以及硬件适配的分析

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

【c++】继承学习(一):继承机制与基类派生类转换

🔥个人主页:Quitecoder 🔥专栏:c笔记仓 朋友们大家好,本篇文章我们来学习继承部分 目录 1.继承的概念和定义继承的定义继承基类成员的访问方式变化 2.基类和派生类对象赋值转换3.继承中的作用域 1.继承的概念和定义 …

webpack基础---常用loader

webpack 命令式和配置文件 html-webpack-plugin 配置项:{ templete: filename: inject: } 清除上次打包的文件,output: { clear: true } mode选项: none development prodution souce-map:可以精准定位代码行数 { devt…

使用node调用chrome(基于selenium-webdriver包)

下载测试版chrome和chromedriver https://googlechromelabs.github.io/chrome-for-testing/ 把chromedriver复制到chrome的文件里 设置环境变量 编写代码 const { Builder, Browser, By, Key, until } require(selenium-webdriver) const puppeteer require(puppeteer)//查…

Flask模版详解

Flask模版详解 概述Jinja2模板引擎渲染模版的步骤变量控制结构自定义错误页面链接静态文件 概述 模板是一个包含响应文本的文件,其中包含用占位变量表示的动态部分,其具体值只在请求的上下文中才能知道。使用真实值替换变量,再返回最终得到的…

空闲缓冲区(empty) 和 非空缓冲区(full) 的的概念和区别【操作系统 生产者——消费者进程】

首先,我们得有个环境——通常是个缓冲池,这个池子里可以塞很多缓冲区,它们是用来存放数据的。生产者就是那个不停造东西的家伙,而消费者则是等着用这些东西的人。 1. 空闲缓冲区(empty): 这玩意…

C语言:文件操作(上)

片头 嗨!小伙伴们,今天我们来学习新的知识----文件操作,准备好了吗?我要开始咯! 目录 1. 为什么使用文件? 2. 什么是文件? 3. 二进制文件和文本文件? 4. 文件的打开和关闭 5. 文件顺序读写…

硬盘选购指南

转载请注明出处! author karrysmile date 2024年5月3日19:10:52 结论 先给用途分类和价格表 前置知识 没有不好的品牌,只有不好的系列。不用认准哪个品牌就不好,认准口碑好,稳定性好的系列买。(杂牌别买&#xff0…

系统架构设计师错题集

在实时操作系统中,两个任务并发执行,一个任务要等待另一个任务发来消息,或建立某个条件后再向前执行,这种制约性合作关系被称为任务的(9)。 (9)A.同步 B.互斥 C.调度 D.执行 【答案】A 【解析】本题考查…

2024年北京高校后勤餐饮博览会|北京餐饮展览会

高联采高校后勤餐饮博览会 暨第25届北京高校后勤餐饮联合招标采购大会 同期举办:中国北京餐饮供应链博览会 主 题: 因为FOOD校园GOOD / 同创高校大舞台共享精彩高联采 时 间:2024年9月21日-22日 地 点:中国国际展览中心&…

基于深度学习的3D目标检测与跟踪

目标检测和跟踪对于自动驾驶来说是至关重要和基础的任务,旨在从场景中识别和定位出那些预定义类别的对象。在所有形式的自动驾驶数据中,3D点云学习引起了越来越多的关注。目前,有许多用于3D目标检测的深度学习方法。然而,鉴于点云…

Java——数组

一:数组 (1)数组的定义(声明): 数据类型 [ ] 数组名 int [ ] a (比较规范) ; int [ ] a ; int a [ ] (我个人常用); (2&#xff…