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

2024-05-03 18:04

本文主要是介绍基于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文库

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

这篇关于基于STM32的最小系统电路设计(STM32F103C8T6为例)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/957331

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

poj 1258 Agri-Net(最小生成树模板代码)

感觉用这题来当模板更适合。 题意就是给你邻接矩阵求最小生成树啦。~ prim代码:效率很高。172k...0ms。 #include<stdio.h>#include<algorithm>using namespace std;const int MaxN = 101;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int n

poj 1287 Networking(prim or kruscal最小生成树)

题意给你点与点间距离,求最小生成树。 注意点是,两点之间可能有不同的路,输入的时候选择最小的,和之前有道最短路WA的题目类似。 prim代码: #include<stdio.h>const int MaxN = 51;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int P;int prim(){bool vis[MaxN];

poj 2349 Arctic Network uva 10369(prim or kruscal最小生成树)

题目很麻烦,因为不熟悉最小生成树的算法调试了好久。 感觉网上的题目解释都没说得很清楚,不适合新手。自己写一个。 题意:给你点的坐标,然后两点间可以有两种方式来通信:第一种是卫星通信,第二种是无线电通信。 卫星通信:任何两个有卫星频道的点间都可以直接建立连接,与点间的距离无关; 无线电通信:两个点之间的距离不能超过D,无线电收发器的功率越大,D越大,越昂贵。 计算无线电收发器D

【区块链 + 人才服务】可信教育区块链治理系统 | FISCO BCOS应用案例

伴随着区块链技术的不断完善,其在教育信息化中的应用也在持续发展。利用区块链数据共识、不可篡改的特性, 将与教育相关的数据要素在区块链上进行存证确权,在确保数据可信的前提下,促进教育的公平、透明、开放,为教育教学质量提升赋能,实现教育数据的安全共享、高等教育体系的智慧治理。 可信教育区块链治理系统的顶层治理架构由教育部、高校、企业、学生等多方角色共同参与建设、维护,支撑教育资源共享、教学质量评估、

poj 1734 (floyd求最小环并打印路径)

题意: 求图中的一个最小环,并打印路径。 解析: ans 保存最小环长度。 一直wa,最后终于找到原因,inf开太大爆掉了。。。 虽然0x3f3f3f3f用memset好用,但是还是有局限性。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#incl