讲师博文
STM32最小系统及电路基本原理 来源 : 华清远见     2024-08-28

本文讲述了STM32最小系统及其电路基本原理,在本文中以STM32F103C8T6单片机为例,在下文中以F103简称。STM32最小系统是指能够使STM32正常工作的最基本的电路单元,主要由微控制器、时钟电路、复位电路、电源电路、下载电路组成。

1、微控制器

STM32其实是对ST(意法半导体)公司生产的32为微控制器的简称。STM32更具名称不同有非常多的版本规格,以STM32F103C8T6为例(命名规则如下图),它代表的就是ST公司生产的有48或者49个引脚、64kbytes闪存、QFP(方形扁平式)-40封装、适用温度范围在℃-85℃的基础型主流入门级32位单片机。命名规则图如图1所示。

图1·STM32命名规则

微控制器是一种集成电路,以F103为例,它集成了CPU、GPIO、SPI、UART、IIC等外设,可以满足市面上绝大多数的电子元器件的控制要求。芯片图如图2所示。

图2·STM32F103C8T6

2、电源电路

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

本电路除了降压模块还有三个电容,当电源接入时,其幅值是从0开始的,波动非常大,故加入电容可以起到滤波作用,由电容充放电效应将大波动的直流电转为小波动的直流电。

图3·电源电路

3、时钟电路

STM32最小系统时钟电路又被称为“晶振电路”。晶振电路,全称为晶体震荡电路,用于产生稳定,准确的频率信号的电路,它的主要功能是提供精确的时间基准和稳定的系统时钟。时钟电路的原理图如图4所示。

图4·时钟电路

晶振电路一般采用8MHz的高速晶振,也可以是其他的,F103支持的外部高速晶振是4MHz-16MHz,通过倍频和分频为单片机提供系统时钟,为芯片的各个模块提供运转动力。图中的两个电容为时钟电路的负载电容,可以让晶振提供更加稳定的震荡频率,它与晶振一起形成一个并联谐振电路,可以对输出信号进行微调,同时提供相位补偿。一般来说8MHz的晶振通常采用12pF或者20pF的电容作为负载电容。

4、复位电路

STM32有三种复位方式:电源复位、系统复位和后备域复位。在STM32最小系统中,复位电路就是使单片机产生电源复位的电路。电路图如图5所示。STM32单片机运行过程中只要NSRT引脚输入低电平,芯片就会复位。如图5,芯片上电后,NSRT引脚将保持高电平,当KEY1按下时,VCC将接地,此时NRST将会置为低电平,产生复位。电容C1的作用是在单片机上电时产生上电复位,刚上电时C1会进行充电,NRST将会保持低电平,当C1充满后NRST将变为高电平。

图5·复位电路

5、下载电路

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

BOOT电路如图6所示。在单片机上电或复位后,启动方式有三种:内部FLASH(主闪存存储器)启动、内部SRAM启动、系统存储器启动。

图6·BOOT电路

单片机可以通过设置BOOT0和BOOT1的引脚电平的高低来设置启动方式。由STM32芯片参考手册可知,BOOT0和BOOT1的电平高低和启动方式的对应关系如下图图7所示。

图7·BOOT启动模式图

(1)主闪存存储器启动

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

(2) 系统存储器启动

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

<1>将BOOT0设置为1,BOOT1设置为0,然后按下复位键,这样才能从系统存储器启动BootLoader

<2>最后在BootLoader的帮助下,通过串口下载程序到Flash中

<3>程序下载完成后,又有需要将BOOT0设置为GND,手动复位,这样,STM32才可以从Flash中启动可以看到, 利用串口下载程序还是比较的麻烦,需要跳帽跳来跳去的,非常的不注重用户体验。

(3) 内置SRAM启动

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

6、总结

在本文中,我们探讨了STM32最小系统的基本组成部分及其电路原理。STM32是最常用的32位微控制器之一,广泛应用于各种嵌入式系统项目中。了解其最小系统的构成有助于开发者构建可靠的硬件平台,并为进一步的软件开发打下坚实的基础。

关键要点回顾

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

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

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

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

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

结论

通过本文的学习,我们可以了解到构建一个STM32最小系统所需的关键组件和技术细节。这些基础知识不仅对于初学者非常重要,而且对于经验丰富的开发者来说也是很好的复习和巩固机会。掌握了这些核心概念之后,开发者可以更加自信地进行STM32相关的项目开发,无论是简单的原型制作还是复杂的工业控制系统设计。

展望未来

随着嵌入式系统技术的发展,STM32的应用领域也在不断扩展。未来,STM32将继续发挥其在物联网(IoT)、自动化控制和其他领域的关键作用。因此,掌握STM32最小系统的设计原理和实践技巧对于从事相关工作的工程师们来说至关重要。

最后的建议

在设计STM32最小系统时,请确保考虑到EMC(电磁兼容性)和热管理问题,以提高系统的稳定性和可靠性。

实践是检验真理的唯一标准,尝试自己动手构建一个STM32最小系统,这将帮助你更好地理解和掌握这些概念。持续关注STM32的新版本和更新,以便利用最新的功能和优化。

希望本文能帮助你更好地理解和设计STM32最小系统。祝你在未来的项目中取得成功。感谢您的阅读!

扫码申领本地嵌入式教学实录全套视频及配套源码

上一篇:为什么人工智能用 Python?

下一篇:人工智能关键技术进展与应用

400-611-6270

Copyright © 2004-2024 华清远见教育科技集团 版权所有
京ICP备16055225号-5京公海网安备11010802025203号