STM32 最小系统
单片机最小系统是指用最少的电路组成单片机可以工作的系统,通常最小系统包含:电源电路、时钟电路、复位电路、调试/下载电路,对于STM32还需要启动选择电路。
电源电路
不同的MCU的工作电压可能是不一样的,比如51单片机通常为5V,而STM32单片机通常为3.3V。因此,通常需要查阅该MCU的数据手册才能确定工作电压和规范。
打开“2_官方资料”的《1_STM32F103xE数据手册【重要】.pdf》(后简称,《数据手册》),找到“5.1.6Power supply scheme”电源方案小结,可以看到如图 5.2.1 框图。
结合《数据手册》“5.3.1 General operating conditions”的表 5.2.1 ,可得知上图中的各电压值大小。
- VDD-VSS:标准工作电压;电压范围:2V~3.6V;从VDD1 ~ VDD11,VSS1 ~VSS11共有11组;需要11个100nF 和1个4.7uF去耦电容;经过MCU内部Regulator电源管理,为CPU、存储器等供电;
- VDDA-VSSA:模拟工作电压;电压范围:2V~3.6V(未使用ADC) 2.4V~3.6V(使用ADC);需要1个10nF和1个1uF去耦电容;由VDDA输入,为ADC、DAC等供电;
- VREF±VREF-:基准参考电压;电压范围:2.4V~ VDDA;可以使用独立参考电压VREF(需10nF+1uF高频滤波电容),也可使用VDDA输入,为ADC、DAC等作基准参考电压;
- VBAT:RTC备用电源;电压范围:1.8V~ 3.6V;通常使用纽扣电池外部供电,当主电源VDD掉电后,VBAT为实时时钟(Real-Time Clock,RTC)和备份寄存器供电(此时功耗超低);
从数据手册了解到以上知识后,再来看看原理图第三页的MCU电源部分。左边的U1B(U1A和U1B共同组成U1,即MCU)是MCU所有电源相关引脚,可以看到VDDA 、VDD1 ~ VDD11、 VREF+都直接接在了VDD_3V3上(3.3V),VSSA 、VSS1 ~ VSS11、 VREF-都接在了GND上,VBAT接在了VDD_BAT上。右边是一系列退耦电容,这些电容在Layout(PCB布局走线)时,需要均匀分布在每组电源引脚附近。此时,MCU电源部分符合数据手册的要求。
前面VDD_3V3需要外部提供给MCU,也就是通过电源适配器提供,而一般的电源适配器通常为5V或 12V,因此还需要电源转换电路,将外部输入的12V或5V转换为3.3V。下图 5.2.3、图 5.2.4、图 5.2.5分别为12V电源输入电路、12V转5V电路、5V转3.3V电路,在5V转3.3V电路中有一个红色LED灯,用于提示用户整个系统电源正常工作,该部分电路读者仅作了解即可。
最后再看看RTC电源电路,在外部12V输入时,VDD_3V3为3.3V,而J5的纽扣电池约为3V,D5为肖特基二极管,此时VDD_3V3大于纽扣电池电压,因此由VDD_3V3供电。当外部12V无输入时,VDD_3V3为0V, 而J5的纽扣电池约为3V,此时VDD_3V3小于纽扣电池电压,由纽扣电池供电,保证RTC继续运行,电路如图 5.2.6 所示。
时钟电路
MCU是一个集成芯片,由非常复杂的数字电路和其它电路组成,需要稳定的时钟脉冲信号才能保证正常工作。时钟如同人体内部的心脏一样,心脏跳动一下,推动血液流动一下。时钟产生一次,就推动处理器执行一下指令。除了CPU,芯片上所有的外设(GPIO、I2C、SPI等)都需要时钟,由此可见时钟的重要性。
芯片运行的时钟频率越高,芯片处理的速度越快,但同时功耗也越高。为了功耗和性能兼顾,微处理器一般有多个时钟源,同时还将时钟分频为多个大小,适配不同需求的外设。
由《数据手册》可得到如图 5.2.7 所示的时钟树,这里只关心时钟源,时钟的分配使用放在后面讲解。
可以看到一共有四个时钟源:
①HSI(High Speed Internal clock signal):
HSI是内部的高速时钟信号,频率8MHz。因为是内部提供,可以降低成本,缺点是精度较差。
②HSE(High Speed External clock signal):
HSE是外部的高速时钟信号,需要外部电路晶振,输入频率范围要求为4-16MHz。因为需要外部电路提
供,成本会增加,但精度较好。
③LSE(Low Speed External clock signal):
LSE是外部的低速时钟信号,需要外部电路晶振,输入频率范围要求为32.768KHz。一般用于RTC实时
时钟。
④LSI(Low Speed Internal clock signal):
LSI是内部的低速RC振荡器,频率40KHz。一般用于看门狗、RTC实时时钟等。
对于STM32F103系列的MCU,都需要一个高速时钟和一个低速时钟,而这两个时钟可以选择使用内部时钟源节约成本,也可以选择外部时钟源输入提高精度。如果使用内部时钟源,则无需设计外部电路,反之,则需要时钟电路。
继续查看《数据手册》,可以看到如图 5.2.8 和图 5.2.9 所示的外部时钟输入参考电路。手册上提到对于HSE,当晶振为8MHz时,CL1和CL2的容值范围为5pF~25pF。REXT用于产生负反馈,保证放大器工作在高增益的线性区,同时也起到限流作用,通常在兆欧级,具体由晶振决定。
对于LSE,当晶振为32.768KHz时,CL1和CL2的容值范围为5pF~15pF。之所以选择32.768KHz,是因为32768=215,分频设置寄存器通常为2n的形式,这样经过15次分频就很容易得到1Hz的频率。
从数据手册了解到以上知识后,再来看看原理图第三页的时钟电路部分,如图 5.2.10 所示。高速时钟和低速时钟都可由外部提供,且电路设计与数据手册一致。
晶振旁的负载电容,应选择高质量陶瓷电容(NPO),以满足高频率场合。在Layout(PCB布局走线)时,晶振和负载电容,应尽可能的靠近MCU,以减少输出失真和启动时的稳定时间,保证振荡器可靠工作。
复位电路
嵌入式系统中,由于外界环境干扰,难免出现程序跑飞或死机,这时就需要复位让MCU重新运行。查看《参考手册》,可见如图 5.2.11 所示复位电路。该电路将一个按键接在了NRST引脚,一旦按键按下,NRST就会接地,拉低NRST,实现复位。
再来看看原理图上的复位电路,如图 5.2.12 所示。当开发板正常工作时,VDD_3V3上拉NRST, POWER_EN为前面12V转5V电源芯片的使能引脚,此时被电源芯片钳位在6.5V。当SW1被按下,D1为肖特基二极管,NRST和POWER_EN都会导通接地,拉低NRST和POWER_EN,使MCU复位,同时断开系统供电。
调试/下载电路
不同的MCU,调试/下载的方式可能不一样。比如51系列单片机,使用串口下载程序,同时也使用仿真调试。对于STM32,可以使用串口下载程序,也能使用串口打印进行简单调试,但STM32支持更高效的JTAG(Joint Test Action Group)调试接口和SWD(Serial Wire Debug)调试接口。
该电路比较简单,所涉及的引脚参考表 3.4.1,原理图如图 5.2.13 所示。
启动选择电路
不同的MCU,启动的方式的种类可能不一样。比如51系列单片机,只能从内置存储器读取数据启动,因此没有启动选择的必要。对于STM32,可以从内置存储器启动(默认),可以从系统存储器(用于从USART1下载程序),可以从内部SRAM启动(调电消失,可用于调试),出现多个启动方式,就需要启动选择。
STM32通过BOOT1和BOOT2引脚的电平组合进行启动选择,组合方式和电路设计如图 5.2.14 所示。
当J1拨码开关的1、4脚断开(对应开发板红色拨码开关的1号拨码朝下),2、3脚任意(对应开发板红色拨码开关的2号拨码任意)。此时BOO1为0,BOOT1任意,开发板上电,MCU将从内部主存储器读取数据启动,是最常用的启动方式。
当J1拨码开关的1、4脚连接(对应开发板红色拨码开关的1号拨码朝上),2、3脚断开(对应开发板红色拨码开关的2号拨码朝下)。此时BOO1为1,BOOT1为0,开发板上电,MCU将从系统存储器读取数据启动,在系统存储器里面厂家烧写的串口下载程序,此时可以通过USART1烧写新程序到主存储器。
当J1拨码开关的1、4脚连接(对应开发板红色拨码开关的1号拨码朝上),2、3脚连接(对应开发板红色拨码开关的2号拨码朝上)。此时BOO1为1,BOOT1为1,开发板上电,MCU将直接从内部SRAM启动,SRAM的烧写次数寿命比Flash更多,可用于调试。
各启动模式的启动示意图如图 5.2.15 所示。通常,我们只使用主存储器启动即可。从系统存储器启动,实现从串口下载程序也逐渐被淘汰,STM32的高端MCU已经不支持该方式下载。从SRAM启动也没什么必要,目前Flash的烧写寿命次数也远远超过用户实际烧写次数。
【总结】
本小结带领读者学习了如何读原理图,也对STM32的最小系统有了一些了解。后面的电路众多,在分析某个电路时,结合相关手册的参考电路和说明, 加上不断积累,相信读者也能灵活分析原理图。
百问网技术论坛:
http://bbs.100ask.net/
百问网嵌入式视频官网:
https://www.100ask.net/index
百问网开发板:
淘宝:https://100ask.taobao.com/
天猫:https://weidongshan.tmall.com/
技术交流群(鸿蒙开发/Linux/嵌入式/驱动/资料下载)
QQ群:869222007
单片机-嵌入式Linux交流群:
QQ群:536785813
STM32 最小系统相关推荐
- STM32最小系统电路
文章目录 STM32最小系统电路图 一,电源电路: 二,复位电路: 三,除了以上三大电路还要有烧录程序用的USB转TTL电路 四,启动模式电路:绿色线连接的20脚和44脚 杨桃32学习笔记,本文图片文 ...
- AD软件绘制stm32最小系统电路原理图与PCB图
文章目录 AD软件绘制stm32最小系统电路原理图与PCB图 一.在Altium Designer下建立工程 1. 新建工程 2. 新建图纸以及相关的库 二.绘制最小原件库 三.绘制原理图 1. 首先 ...
- 绘制一个stm32最小系统的电路原理图;完成STM32+SD卡 的系统原理图设计
一.实验要求 掌握电路原理图绘制.安装Altium Designer 18,学习使用Altium Designer绘制一个stm32最小系统的电路原理图,并在此基础上完成STM32+SD卡 的系统原理 ...
- 用Altium Designer绘制stm32最小系统的电路原理图并完成STM32+SD卡 的系统原理图设计
目录 一.安装Altium Designe18 二.用AD18绘制stm32最小系统的电路原理图 1.新建工程 2.添加原理图 3.下载并添加元件库 4.绘制芯片模块原理图 4.1 常见的工具栏介绍 ...
- 1.1双摇杆遥控器电路部分--stm32最小系统
目录 遥控器核心:stm32最小系统 一. 摘要 二.电路 三.导出封装到AD 四.结语 遥控器核心:stm32最小系统 一. 摘要 1. 本篇是遥控器专栏第一篇,主要介绍核心系统:STM32F103 ...
- 硬件电路设计之如何设计一个STM32最小系统?
STM32最小系统主要由STM32F103RCT6微处理器.时钟晶振电路.按键复位电路.电源稳压电路以及BOOT电路等部分构成,该最小系统所使用的微处理器是一款32位的处理器,该处理器基于高性能的 ...
- 使用Altium Designer 18绘制stm32最小系统的电路原理图
文章目录 前期准备 一.查找stm32最小系统原理图 二.创建stm32最小系统元件库 1.建立一个元件库工程 2.系统自带的PCB封装的生成 PCB的封装 与PCB封装对应的SCH封装 3.自定义的 ...
- 用Altium Designer软件绘制一个stm32最小系统的电路原理图
学习使用Altium Designer软件绘制一个stm32最小系统的电路原理图 一.stm32最小系统电路原理图 二.绘制stm32最小原理图 (一)新建工程 (二)添加新的Schematic(原理 ...
- 绘制STM32最小系统电路原理图、STM32F103读取SD卡的数据
绘制STM32最小系统电路原理图.STM32F103读取SD卡的数据 文章目录 绘制STM32最小系统电路原理图.STM32F103读取SD卡的数据 1 AltiumDesigner 软件配置 2 A ...
- Altium Designer绘制stm32最小系统PCB
Altium Designer绘制stm32最小系统PCB 一.检查原理图封装,并导入到PCB工程 二.布局 三.布线 四.覆铜 五.丝印整理 六.电气规则检查 七.添加logo 八.生成BOM和网络 ...
最新文章
- python自动开发之(算法)第二十七天
- 拿到WP官方主题Twenty Ten就是一顿nofollow伺候
- arch更新失败的办法
- java中Log4j的使用
- POJ-2481 Cows---树状数组的运用
- Linux下rpm包x86、i386、i486、i586、i686和x86_64 后缀含义
- 国防科大天河计算机应用,国防科大计算机学院:让本科生进入“天河”团队
- Java SE有几个代码_JavaSE常用类及方法的介绍(附代码)
- odbc spoon连接postgre_ado、odbc连接Postgre SQL
- qt样式表中背景图片的使用
- c mysql使用场景_Mysql 场景
- 【完结】深度学习CV算法工程师从入门到初级面试有多远,大概是25篇文章的距离...
- 解决securecrt rz 上传rar,gif文件不正确问题【转】
- 复杂数组类型的深拷贝
- Java 媒体框架 之 JMF
- 新版Iconfont-阿里巴巴矢量图标库支持三种引用方式
- 渠道触点归因、推广来源追踪
- 基于stc15f2k60s2芯片单片机编程(秒表)
- 汽车ECU软件开发之应用层软件与底层软件
- UNIX环境编程(c语言)--文件I/O-文件共享