第2章 STM32单片机结构和最小系统分解
- 格式:ppt
- 大小:795.50 KB
- 文档页数:22
STM32最小系统STM32是意法半导体推出的一款32位微控制器,具有低功耗、高性能和丰富的外设资源等特点,被广泛应用于工业控制、消费电子、通信设备等领域。
而STM32最小系统则是指搭载STM32芯片的最小化硬件系统,通常包括主控芯片、时钟电路、电源管理电路和一些基本的外设接口电路等。
本文将介绍STM32最小系统的搭建方法和相关注意事项。
一、硬件设计。
1.主控芯片的选择。
STM32系列微控制器种类繁多,不同型号的芯片具有不同的性能和外设资源。
在设计最小系统时,首先需要根据实际应用需求选择合适的STM32芯片。
一般来说,最小系统中常用的是一些低端型号的STM32芯片,例如STM32F103C8T6、STM32F030F4P6等,这些芯片具有较低的成本和较少的引脚数量,非常适合用于最小系统的设计。
2.时钟电路设计。
STM32芯片需要外部提供稳定的时钟信号才能正常工作,因此在最小系统中需要设计时钟电路。
一般来说,可以选择使用石英晶体振荡器或者陶瓷谐振器作为时钟源,并通过合适的电路将时钟信号输入到STM32芯片的时钟输入引脚上。
3.电源管理电路设计。
STM32芯片需要提供稳定的电源供电才能正常工作,因此在最小系统中需要设计电源管理电路。
一般来说,可以选择使用稳压芯片或者LDO芯片来对输入电压进行稳压,以保证STM32芯片的工作电压在规定范围内。
4.外设接口电路设计。
最小系统通常需要提供一些基本的外设接口,例如LED指示灯、按键、串口通信接口等。
在设计最小系统时,需要根据实际应用需求设计相应的外设接口电路,并将其与STM32芯片相连接。
二、PCB布线。
在完成最小系统的硬件设计之后,需要进行PCB布线设计。
在进行PCB布线设计时,需要注意以下几点:1.将主控芯片、时钟电路、电源管理电路和外设接口电路等按照原理图进行合理布局,以减小信号传输路径长度,降低电磁干扰。
2.合理划分电源和地域,以减小电源回路的阻抗,提高系统的抗干扰能力。
stm32单片机的工作原理STM32单片机是一款广泛应用于嵌入式系统的微控制器,具有高性能、低功耗和丰富的外设资源等特点。
本文将详细介绍STM32单片机的工作原理,并对其各个部分进行解析。
一、概述STM32单片机是由意法半导体(STMicroelectronics)公司开发的一款32位微控制器。
它采用了先进的ARM Cortex-M内核,非常适用于嵌入式控制应用。
STM32单片机具有丰富的外设资源,如通用IO口、定时器、通信接口(如USART、SPI、I2C)等,可以满足不同应用的需求。
二、内核结构STM32单片机的内核结构采用了Harvard体系结构,主要由处理器核、存储器和总线组成。
处理器核负责指令执行和数据处理,存储器用于存储程序代码和数据,总线则用于连接处理器核和存储器。
1. 处理器核STM32单片机的处理器核采用了ARM Cortex-M系列的核心。
它具有强大的计算能力和高效的指令执行速度,支持多种指令集和调试接口,能够满足不同应用的需求。
处理器核负责执行存储在存储器中的程序代码,控制外设的操作,并根据指令完成相应的数据处理。
2. 存储器STM32单片机的存储器分为Flash存储器和RAM存储器两部分。
Flash存储器用于存储程序代码和常量数据,可在电源关闭后保持数据的不变性。
RAM存储器用于存储临时的变量和数据,速度较快但断电后数据会消失。
3. 总线STM32单片机的总线用于连接处理器核和存储器,同时也用于连接外设。
总线分为数据总线、地址总线和控制总线三部分。
数据总线用于传输数据,地址总线用于指定存储器或外设的地址,控制总线用于传递读写和控制信号。
三、外设资源STM32单片机具有丰富的外设资源,可以满足各种嵌入式控制应用的需求。
这些外设包括通用IO口、定时器、通信接口等。
1. 通用IO口通用IO口是STM32单片机最常用的外设之一,它可以配置为输入或输出,用于连接外部设备或传感器。
通用IO口的数量和类型取决于具体型号,一般都有多个引脚可供使用。
第⼆章STM32的结构和组成2.5 芯⽚⾥⾯有什么STM32F103采⽤的是Cortex-M3内核,内核即CPU,由ARM公司设计。
ARM公司并不⽣产芯⽚,⽽是出售其芯⽚技术授权。
芯⽚⽣产⼚商(SOC)如ST、TI、Freescale,负责在内核之外设计部件并⽣产整个芯⽚,这些内核之外的部件被称为核外外设或⽚上外设。
如:GPIO、USART(串⼝)、I2C、SPI等都在做⽚上外设。
ICode总线ICode中的I表⽰Instruction,及指令。
我们写好的程序编译之后都是⼀条条指令,存放在FLASH中,内核要读取这些指令来执⾏程序就必须通过ICode总线。
驱动单元DCode总线D表⽰Data,即数据,这要总线是⽤来取数的。
DMA系统总线⽤来传输数据,这个数据可以是在某个外设的数据寄存器。
被动单元内部的闪存存储器:即FLASH,我们编写好的程序就放在这个地⽅。
内核通过ICode总线来取⾥⾯的指令。
内部的SRAM:通常说的RAM,程序的变量开销都是基于内部的SRAM。
内核通过DCode总线访问。
FSMC:灵活的静态的存储器控制器。
AHB到APB的桥从AHB总线延伸出来的两条APB2和APB1总线,上⾯挂载着STM32各种各样的特⾊外设。
我们经常说的GPIO、串⼝、I2C、SPI这些外设在这条总线上,这是我们学习STM32的重点,重点、重点。
2.6存储器映射存储器映射:给存储器分配地址的过程。
存储器重映射:给存储器在分配⼀个地址就叫存储器重映射。
2.7寄存器映射给已经分配好的地址的⼜特定功能的内存单元取别名的过程就叫寄存器映射。
STM32⼊门系列-STM32最⼩系统介绍STM32最⼩系统组成,也就是能够使得单⽚机正常运⾏程序,最少需要连接哪些器件。
⼀般来说,STM32最⼩系统由四部分组成:电源电路复位电路晶振电路下载电路STM32单⽚机由ARMCortexM3、总线矩阵、外设组成。
单⽚机开发板能够做哪些事情是⾃⼰的选择。
我们可以制作⼀款STM32最⼩系统核⼼开发板,当然根据实际项⽬的需求,加上单⽚机的某些特定外设模块。
简单说,要利⽤到STM32芯⽚所有引脚来设计具有特定或者通⽤功能的开发板。
⾸先要把STM32最⼩系统画出来,之后再添加需要⽤到的外设。
电源电路VDD表⽰数字电源的正极,⽽VSS是负极。
VDDA⽤来表⽰模拟电源正极(供电给ADC、DAC模块),VSSA是负极。
VREF+是参考电压输⼊引脚正极,VREF-是对应的负极。
ADC、DAC分别负责模数、数模转换。
在场合中,需要较的⾼信噪⽐,为此把模、数信号分开,来规避彼此影响。
于是有了数、模电源引脚之分。
为了给模拟电源提供标准电压信号,需要⽤到VREF引脚。
在对噪声要求不⾼的情况下,只需要做简单隔离即可。
⽐如,分别在VDD、VDDA以及VSS、VSSA之间接上0Ω电阻。
把VREF+与VDDA连接,把VREF-与VSSA连接。
在实际应⽤中,VREF+⽤来连接标准的电压输出,⽐如REF3133,产⽣标准的3.300V 电压,如下图所⽰。
因为STM32具有RTC功能(实时时钟),有VBAT(电池)引脚(接电池正极)。
出于安全考虑,设计如下电路。
既可以在有外接电源时保护电池,⼜可以在没有外接电源时给RTC供电。
原理容易理解,利⽤了⼆极管的单向导通性。
复位电路复位就是通常说的重启,STM32复位引脚是低电平复位,⽽正常⼯作状态时复位引脚是处于⾼电平状态。
晶振电路STM32有两组晶振,给单⽚机提供主时钟的晶振和给RTC提供时钟的晶振。
实际上,若⽤不到RTC功能,那么RTC晶振可不连接。
STM32单片机最小系统详解STM32F103RCT6:STM32F103RCT6是一种嵌入式-微控制器的集成电路(IC),32位Cortex-M3内核处理器,速度是72MHz,程序存储器容量是256KB,程序存储器类型是FLASH,RAM容量是48K,封装LQFP64。
STM32单片机命名规则:STM32单片机最小系统:所谓单片机最小系统,就是让单片机能够正常运行,最少且必须的器件所组成的系统。
单片机最小系统上电之后,单片机可以正常复位,下载程序,除此之外没有其他任何功能。
在最小系统保证正确的基础上,可以依次添加其他功能模块或器件,使之单片机具有实际功能。
STM32单片机最小系统包括一个复位电路和一个时钟电路。
如下图1所示。
图中复位电路使用的是上电复位电路,STM32单片机NRST引脚输入低电平,则发生复位。
图1 STM32F103单片机最小系统电源引脚:VDD是单片机的数字电源正极,VSS是数字电源负极,共有5个VDD引脚,5个VSS引脚。
VDDA是单片机的模拟电源正极,负责给内部的ADC、DAC模块供电,VSSA是模拟电源负极。
还有一个电源引脚,就是VBAT,BAT就是Battery(电池),这个引脚用来连接电池的正极的。
STM32带RTC功能(实时时钟),所以有VBAT引脚。
原理图上预留了一个CR1220纽扣锂电池,当主电源供电存在的情况下,由系统中的VCC3.3给VBAT供电;当主电源断电之后,由CR1220纽扣电池给STM32自带的RTC模块供电,从而能够保证实时时钟模块在主电源掉电的情况下还能够正常工作。
但是这样设计的话,这里有一个矛盾需要解决。
如果VBAT引脚直接与VCC3.3和CR1220连接的话,会存在下面问题:1、当电池电压高于3.3V,电池就会输出电流到AMS1117,使得芯片发烫,还会很快消耗电池电量。
2、如果电池电压低于3.3V,AMS1117产生的3.3V,就会给电池充电,而这种CR1220电池是不能够充电的。
STM32最小系统硬件组成详解0组成:电源复位时钟调试接口启动1、电源:一般3.3V LDO供电加多个0.01uf去耦电容2、复位:有三种复位方式:上电复位、手动复位、程序自动复位通常低电平复位:(51单片机高电平复位,电容电阻位置调换)上电复位,在上电瞬间,电容充电,RESET出现短暂的低电平,该低电平持续时间由电阻和电容共同决定,计算方式如下:t = 1.1RC (固定计算公式) 1.1*10K*0.1uF=1.1ms需求的复位信号持续时间约在1ms左右。
手动复位:按键按下时,RESET和地导通,从而产生一个低电平,实现复位。
3、时钟:晶振+起振电容 +(反馈电阻MΩ级)如使用内部时钟:对于100脚或144脚的产品,OSC_IN应接地,OSC_OUT应悬空。
2)对于少于100脚的产品,有2种接法:i)OSC_IN和OSC_OUT分别通过10K电阻接地。
此方法可提高EMC性。
32.768KHZ:可选择只接高速外部时钟8MHZ或既多接一个32.768MHZ的外部低速时钟。
32.768KHZ时钟作用:用于精准计时电路万年历通常会选择32.768KHz的晶振,原因在于32768=2^15,而嵌入式芯片分频设置寄存器通常是2的次幂的形式,这样经过15次分频后,就很容易的1HZ的频率。
实现精准定时。
用于精准计时电路万年历晶振:一般选择8MHZ 方便倍频有源:更稳定成本更高需要接电源供电不需要外围电路 3脚单线输出无源:精度基本够方便灵活便宜最大区别:是否需要单独供电无源晶振需要外接起振电容:晶振的两侧有两个电容OSC——OUT不接,悬空有源晶振作用:1、使晶振两端的等效电容等于或接近于负载电容;2、起到一定的滤波的作用,滤除晶振波形中的高频杂波;该起振电容的大小一般选择10~40pF,当然根据不同的单片机使用手册可以具体查阅,如果手册上没有说明,一般选择20pF、30pF 即可,这是个经验值。
调整电容可微调振荡频率:一般情况下,增大电容会使振荡频率下降,而减小电容会使振荡频率升高,反馈电阻: 1M 负反馈同时也是限流1、连接晶振的芯片端内部是一个线性运算放大器,将输入进行反向180度输出,晶振处的负载电容电阻组成的网络提供另外180度的相移;整个环路的相移360度,满足振荡的相位条件,2、晶振输入输出连接的电阻作用是产生负反馈,保证放大器工作在高增益的线性区,一般在M欧级;3、限流的作用,防止反向器输出对晶振过驱动,损坏晶振,有的晶振不需要是因为把这个电阻已经集成到了晶振里面。
**STM32单片机系统结构**STM32是STMicroelectronics生产的32位Flash微控制器家族,基于ARM Cortex-M0, M3, M4, M7, M33核心。
该系列单片机的设计目的是提供一个高性能、低成本、低功耗的平台,适用于各种嵌入式应用。
以下是STM32单片机的主要系统结构特点:1. **核心处理器**:基于ARM Cortex-M系列,这是一个为嵌入式应用优化的处理器,提供高性能的处理能力,同时保持低功耗。
2. **内存结构**:STM32微控制器具有Flash和RAM两种主要内存。
Flash 用于存储程序代码,而RAM用于在运行时存储数据和变量。
STM32单片机还具有多种外部和内部存储器接口,便于扩展内存。
3. **时钟系统**:STM32具有一个复杂的时钟系统,包括内部振荡器、外部振荡器接口和多个时钟分频器。
这些时钟源可以为微控制器的不同部分提供精确的时钟信号,以满足不同的时序需求。
4. **中断和事件系统**:该微控制器配备了嵌套向量中断控制器(NVIC),能够处理多个中断源,并允许设置优先级。
这使得STM32能够响应实时事件,是实时操作系统(RTOS)的理想选择。
5. **电源管理**:STM32单片机具有多种低功耗模式,允许设计人员在性能和功耗之间进行优化。
此外,还有睡眠模式、停止模式和待机模式,以满足不同的低功耗应用需求。
6. **外设接口**:STM32提供了丰富的外设接口,如GPIO(通用输入/输出)、UART(通用异步收发器)、SPI(串行外设接口)、I²C(内部集成电路)等。
这些接口使STM32能够与各种外部设备通信。
7. **调试和支持**:为支持开发和调试过程,STM32具有多种调试模式,例如JTAG和串行线调试(SWD)。
此外,STMicroelectronics还提供了丰富的软件和硬件开发工具,如STM32CubeMX和STM32CubeIDE,简化了开发过程。