单片机最小系统是指用最少的电路组成单片机可以工作的系统,通常最小系统包含:电源电路、时钟电路、复位电路、调试/下载电路,对于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 ,可得知上图中的各电压值大小。

  1. VDD-VSS:标准工作电压;电压范围:2V~3.6V;从VDD1 ~ VDD11,VSS1 ~VSS11共有11组;需要11个100nF 和1个4.7uF去耦电容;经过MCU内部Regulator电源管理,为CPU、存储器等供电;
  2. VDDA-VSSA:模拟工作电压;电压范围:2V~3.6V(未使用ADC) 2.4V~3.6V(使用ADC);需要1个10nF和1个1uF去耦电容;由VDDA输入,为ADC、DAC等供电;
  3. VREF±VREF-:基准参考电压;电压范围:2.4V~ VDDA;可以使用独立参考电压VREF(需10nF+1uF高频滤波电容),也可使用VDDA输入,为ADC、DAC等作基准参考电压;
  4. 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 最小系统相关推荐

  1. STM32最小系统电路

    文章目录 STM32最小系统电路图 一,电源电路: 二,复位电路: 三,除了以上三大电路还要有烧录程序用的USB转TTL电路 四,启动模式电路:绿色线连接的20脚和44脚 杨桃32学习笔记,本文图片文 ...

  2. AD软件绘制stm32最小系统电路原理图与PCB图

    文章目录 AD软件绘制stm32最小系统电路原理图与PCB图 一.在Altium Designer下建立工程 1. 新建工程 2. 新建图纸以及相关的库 二.绘制最小原件库 三.绘制原理图 1. 首先 ...

  3. 绘制一个stm32最小系统的电路原理图;完成STM32+SD卡 的系统原理图设计

    一.实验要求 掌握电路原理图绘制.安装Altium Designer 18,学习使用Altium Designer绘制一个stm32最小系统的电路原理图,并在此基础上完成STM32+SD卡 的系统原理 ...

  4. 用Altium Designer绘制stm32最小系统的电路原理图并完成STM32+SD卡 的系统原理图设计

    目录 一.安装Altium Designe18 二.用AD18绘制stm32最小系统的电路原理图 1.新建工程 2.添加原理图 3.下载并添加元件库 4.绘制芯片模块原理图 4.1 常见的工具栏介绍 ...

  5. 1.1双摇杆遥控器电路部分--stm32最小系统

    目录 遥控器核心:stm32最小系统 一. 摘要 二.电路 三.导出封装到AD 四.结语 遥控器核心:stm32最小系统 一. 摘要 1. 本篇是遥控器专栏第一篇,主要介绍核心系统:STM32F103 ...

  6. 硬件电路设计之如何设计一个STM32最小系统?

      STM32最小系统主要由STM32F103RCT6微处理器.时钟晶振电路.按键复位电路.电源稳压电路以及BOOT电路等部分构成,该最小系统所使用的微处理器是一款32位的处理器,该处理器基于高性能的 ...

  7. 使用Altium Designer 18绘制stm32最小系统的电路原理图

    文章目录 前期准备 一.查找stm32最小系统原理图 二.创建stm32最小系统元件库 1.建立一个元件库工程 2.系统自带的PCB封装的生成 PCB的封装 与PCB封装对应的SCH封装 3.自定义的 ...

  8. 用Altium Designer软件绘制一个stm32最小系统的电路原理图

    学习使用Altium Designer软件绘制一个stm32最小系统的电路原理图 一.stm32最小系统电路原理图 二.绘制stm32最小原理图 (一)新建工程 (二)添加新的Schematic(原理 ...

  9. 绘制STM32最小系统电路原理图、STM32F103读取SD卡的数据

    绘制STM32最小系统电路原理图.STM32F103读取SD卡的数据 文章目录 绘制STM32最小系统电路原理图.STM32F103读取SD卡的数据 1 AltiumDesigner 软件配置 2 A ...

  10. Altium Designer绘制stm32最小系统PCB

    Altium Designer绘制stm32最小系统PCB 一.检查原理图封装,并导入到PCB工程 二.布局 三.布线 四.覆铜 五.丝印整理 六.电气规则检查 七.添加logo 八.生成BOM和网络 ...

最新文章

  1. python自动开发之(算法)第二十七天
  2. 拿到WP官方主题Twenty Ten就是一顿nofollow伺候
  3. arch更新失败的办法
  4. java中Log4j的使用
  5. POJ-2481 Cows---树状数组的运用
  6. Linux下rpm包x86、i386、i486、i586、i686和x86_64 后缀含义
  7. 国防科大天河计算机应用,国防科大计算机学院:让本科生进入“天河”团队
  8. Java SE有几个代码_JavaSE常用类及方法的介绍(附代码)
  9. odbc spoon连接postgre_ado、odbc连接Postgre SQL
  10. qt样式表中背景图片的使用
  11. c mysql使用场景_Mysql 场景
  12. 【完结】深度学习CV算法工程师从入门到初级面试有多远,大概是25篇文章的距离...
  13. 解决securecrt rz 上传rar,gif文件不正确问题【转】
  14. 复杂数组类型的深拷贝
  15. Java 媒体框架 之 JMF
  16. 新版Iconfont-阿里巴巴矢量图标库支持三种引用方式
  17. 渠道触点归因、推广来源追踪
  18. 基于stc15f2k60s2芯片单片机编程(秒表)
  19. 汽车ECU软件开发之应用层软件与底层软件
  20. UNIX环境编程(c语言)--文件I/O-文件共享

热门文章

  1. LNMP一台搭建和zabbix监控nginx状态
  2. 荷兰 转专业 计算机,【干货】关于荷兰留学转专业的!请看这里
  3. 最简单的图片预览功能【兼容IE8】
  4. 揭秘超分辨率的正确打开方式
  5. android 固定横屏,Android开发强制横屏和强制竖屏设置实例代码
  6. android 视频电话
  7. 基于java的出租车预约系统
  8. 黄委计算机知识,有备无患 黄委-黄委会备考之黄河及水利知识
  9. 两种并发模式:半同步半异步 领导者追随者
  10. hive sql数据分析面试整理