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芯片的公司,积累了大批的用户群体,为其领先做铺垫
|