基于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电路

启动方式 BOOT0 BOOT1
从主闪存存储器启动 0 x
从系统存储器启动 1 0
从内置SRAM启动 1 1

程序下载接口,如下图所示(型号: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文库

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

相关推荐

  1. stm32f103c8t6系统

    2024-05-03 21:52:03       8 阅读
  2. 基于STM32F103C8T6四轴无人机悬停代码

    2024-05-03 21:52:03       15 阅读
  3. 基于STM32F103C8T6单片机1秒定时器设计与应用

    2024-05-03 21:52:03       33 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-03 21:52:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-03 21:52:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-03 21:52:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-03 21:52:03       20 阅读

热门阅读

  1. 函数与作用域

    2024-05-03 21:52:03       12 阅读
  2. AtCoder Beginner Contest 351 D题 Grid and Magnet

    2024-05-03 21:52:03       12 阅读
  3. css 居中方法

    2024-05-03 21:52:03       11 阅读
  4. 本地微服务springboot集成ftp服务器

    2024-05-03 21:52:03       14 阅读
  5. unity生成随机表元素间隔距离相同的点

    2024-05-03 21:52:03       19 阅读
  6. Centos 7.6(1810) 打包Openssh8.1p1

    2024-05-03 21:52:03       15 阅读