1、为什么选择STM32
1.1 什么是STM32
意法半导体(ST)集团于1988年6月成立,是由意大利的SGS微电子公司和法国Thomson半导体公司合并而成。1998年5月,SGS-THOMSON Microelectronics将公司名称改为意法半导体有限公司,是世界最大的半导体公司之一。 STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex®-M0,M0+,M3, M4和M7内核。
它具有以下三个特点:
•新的基于ARM内核的32位MCU系列
–标准的ARM架构
–内核为ARM公司为要求高性能、低成本、低功耗的嵌入式应用专门设计的Cortex-M内核
•超前的体系结构
–高性能
–低电压
–低功耗
–创新的内核以及外设
•简单易用/自由/低风险
按内核架构分为不同产品
•主流产品(STM32F0、STM32F1、STM32F3)
•超低功耗产品(STM32L0、STM32L1、STM32L4、STM32L4+)
•高性能产品(STM32F2、STM32F4、STM32F7、STM32H7)
1.2 Cortex内核
STM32F1属于Cortex-M系列中的Cortex-M3内核,采用ARMv7-M架构。STM32F4属于Cortex-M4系列采用ARMv7-ME架构。 Cortex-A5/A8采用ARMv7-A架构。传统的ARM7系列采用的是ARMv4T架构。
ARMv7架构定义了三大分工明确的系列:
“A”系列:面向尖端的基于虚拟内存的操作系统和用户应用
“R”系列:针对实时系统
“M”系列:对微控制器
CM3内核优点
1.高性能Cortex-M内核
采用ARM公司流行的标准内核Cortex-M3
低动态功耗上实现的高性能
哈佛结构上实现1.25DMIPS/MHZ,功耗只有0.19mv/MHZ
比ARM7TDMI改进了30%
单周期的乘法和硬件除法
不可分的位操作,实现对RAM,I/O和寄存器的最优访问
2.最佳的代码密度
Thumb-2指令集以16位指令的密度实现32位指令性能(与ARM7TDMI的 ARM模式比减少了30%-45%的代码量)
3.可预见的运行时间
中断控制器嵌在内核之中,中断之间的间隔最少可达6个CPU周期
从低功耗模式唤醒只需6个CPU周期
4.改进的调试功能
串行单步调试和JTAG调试
CM4内核优点
1.先进的Cortex-M4内核
浮点运算能力
增强的DSP处理指令
2.更多的存储空间
高达1M字节的片上闪存
高达196K字节的内嵌SRAM
FSMC:灵活的外部存储接口
3.极致的运行速度
以168MHz高速运行时可达到210DMIPS的处理能力
4.跟高级的外设
新增功能:照相机接口,加密处理器,USB高速OTG接口等
增强功能:更快的通信接口,更高的采样率,带FIFO的DMA控制器等
1.3 STM32 VS ARM7
DMIPS: 处理器测整数计算能力为(N*100万)条指令/秒
1.4 Cortex-M家族
1.5 Cortex-M3 VS M4内核对比
1.6 Cortex-M4低功耗设计
1.7 Cortex-M4更高级的外设
2.STM32概述
2.1 CM3芯片结构
2.2 芯片内部资源
STM32F103ZET6 &STM32F103RCT6
内核:
32位 高性能ARM Cortex-M3处理器
时钟:高达72M,实际还可以超屏一点点
单周期乘法和硬件除法
IO口:
STM32F103ZET6: 144引脚 112个IO
STM32F103RCT6:64引脚 51个IO
大部分IO口都耐5V(模拟通道除外)
支持调试:SWD和JTAG,SWD只要2根数据线
存储器容量:
STM32F103ZET6: 512K FLASH,64K SRAM
STM32F103RCT6: 256K FLASH,48K SRAM
时钟,复位和电源管理:
2.0~3.6V电源和IO电压
上电复位,掉电复位和可编程的电压监控
强大的时钟系统:
4~16M的外部高速晶振
内部8MHz的高速RC振荡器
内部40KHz低速RC振荡器,看门狗时钟
内部锁相环(PLL,倍频),一般系统时钟都是外部或者内部高速时钟经过PLL倍频后得到
外部低速32.768K的晶振,主要做RTC时钟源
低功耗:
睡眠,停止和待机三种低功耗模式
可用电池为RTC和备份寄存器供电
AD:
3个12位AD【多达21个外部测量通道】
转换范围:0~3.6(电源电压)
内部通道可以用于内部温度测量
内置参考电压
DA:
2个12位DA
DMA:
12个DMA通道(7+5=12; 7通道DMA1,5通道DMA2) 支持外设:定时器,ADC,DAC,SDIO,I2S,SPI,I2C,和USART
定时器:多达11个定时器
4个通用定时器
2个基本定时器
2个高级定时器
1个系统定时器
2个看门狗定时器
通信接口:多达13个通信接口
2个I2C接口
5个串口
3个SPI接口
1个CAN2.0
1个USB FS
1个SDIO
芯片内部结构图:
STM32F407ZGT6
内核:
32位 高性能ARM Cortex-M4处理器
时钟:高达168M,实际还可以超屏一点点
支持FPU(浮点运算)和DSP指令
IO口:
STM32F407ZGT6: 144引脚 114个IO
大部分IO口都耐5V(模拟通道除外)
支持调试:SWD和JTAG,SWD只要2根数据线
存储器容量:
1024K FLASH,192K SRAM
时钟,复位和电源管理:
1.8~3.6V电源和IO电压
上电复位,掉电复位和可编程的电压监控
强大的时钟系统
4~26M的外部高速晶振
内部16MHz的高速RC振荡器
内部32KHz低速RC振荡器,看门狗时钟
内部锁相环(PLL,倍频),一般系统时钟都是外部或者内部高速时钟经过PLL倍频后得到
外部低速32.768K的晶振,主要做RTC时钟源
低功耗:
睡眠,停止和待机三种低功耗模式
可用电池为RTC和备份寄存器供电
AD:
3个12位AD【多达24个外部测量通道】
内部通道可以用于内部温度测量 -内置参考电压
DA:
2个12位DA
DMA:
16个DMA通道 ,带FIFO和突发支持
支持外设:定时器,ADC,DAC,SDIO,I2S,SPI,I2C,和USART
定时器:多达17个定时器
10个通用定时器(TIM2和TIM5是32位)
2个基本定时器
2个高级定时器
1个系统定时器
2个看门狗定时器
通信接口:多达17个通信接口
3个I2C接口
6个串口
3个SPI接口
2个CAN2.0
2个USB OTG
1个SDIO
芯片内部结构图:
这里大家只要记住TIM1 和 TIM8、GPIO、ADC、SPI等是高速外设,所以挂载在APB2总线之下(APB2、APB1,2>1,所以APB2为高速时钟总线),TIM2~TIM7 挂载在APB1总线之下,就够了。
2.3 STM32F1各芯片关联
2.4 STM32 命名规则
2.5 STM的选型
STM32是ST的所有产品的统称,ST有两大家族STM8和STM32。STM8主要针对于低成本,对主频要求比较低、运算速度要求不是很高的低端市场。STM32主要应用于项目对主频要求较高、运算速度比较快、实时性好的中高端市场。STM32有很多产品大致划分可分为主流MCU、高性能MCU、低功耗MCU。其中主流MCU如STM32F1系列、高性能MCU如STM32F4、STM32F7系列、低功耗MCU如STM32L0系列。并且每个系列产品下面还会根据闪存容量、外设数量、封装大小分为很多种类并且价格也是差别很大。
STM32型号的说明:以STM32F103RBT6这个型号的芯片为例,该型号的组成为7个部分,其命名规则如下:
1 | STM32 | STM32代表ARM Cortex-M内核的32位微控制器。 |
---|---|---|
2 | F | F代表芯片子系列。 |
3 | 103 | 103代表增强型系列。 |
4 | R | R这一项代表引脚数,其中T代表36脚,C代表48脚,R代表64脚,V代表100脚,Z代表144脚,I代表176脚。 |
5 | B | B这一项代表内嵌Flash容量,其中6代表32K字节Flash,8代表64K字节Flash,B代表128K字节Flash,C代表256K字节Flash,D代表384K字节Flash,E代表512K字节Flash,G代表1M字节Flash。 |
6 | T | T这一项代表封装,其中H代表BGA封装,T代表LQFP封装,U代表VFQFPN封装。 |
7 | 6 | 6这一项代表工作温度范围,其中6代表-40——85℃,7代表-40——105℃。 |
3.总结
STM32最具竞争力的优势:
1)极高的性能: 主流的Cortex内核。
2)丰富合理的外设,合理的功耗,合理的价格
3)强大的软件支持:丰富的软件包
4)全面丰富的技术文档
5)芯片型号种类多,覆盖面广
6)强大的用户基础:最先成功试水CM3芯片的公司,积累了大批的用户群体,为其领先做铺垫