1. STM32分类
STM32有不同内核的IC,如下图所示:
2. 命名规则
命名规则如下图所示,如我有一款STM32芯片名字为:STM32F407ZGT6
- STM32:ST公司的ARM 32bit 微控制器
- F:通用性
其它型号包括:F-通用型,S-简单型,L-低功耗,H-高性能,AL-汽车应用低功耗型,AF-汽车应用通用型。
- 407:高性能系列
0-精简类型,1-增强系列,2-增强系列,3-增强系列, 4-高性能系列,7-高性能系列
子系列有:00, 01, 03, 05, 07
- Z: 114 Pin
- G: 1MByte FLash
I: 2MByte Flash
- T: LQFP封装
- 7: 工业级温度范围:-40~105℃
2)STM32F40x 命名
3. 架构图
STM32芯片主要有内核和片上外设组成,与电脑类比,芯片的内核和外设就如同电脑上的CPU与主板、内存、显卡、硬板的关系。
STM32不同的芯片型号采用的内核是不一样的,内核即CPU,CPU由ARM公司设计。
ARM公司并不生产芯片,而是出售其芯片技术授权。芯片生产厂商如ST、TI、Freescale负责内核之外的部件设计并生产整个芯片
这些内核之外的部件就称为外设。如GPIO、USART、I2C、SPI等都叫做片上外设。
STM32芯片架构图如下:
从图中可以看出,内核与外设之间通过各种总线进行连接
4. 总线
主系统由 32 位多层 AHB 总线矩阵构成,如下图:
1)I 总线
Cortex™-M4F 内核通过此总线获取指令。
此总线访问的对象是包含代码的存储器(内部 Flash/SRAM 或通过 FSMC 的外部存储器)。
2)D 总线
此总线用于将 Cortex™-M4F 数据总线和 64 KB CCM 数据 RAM 连接到总线矩阵。
内核通过此总线进行立即数加载和调试访问。此总线访问的对象是包含代码或数据的存储器(内部Flash 或通过 FSMC 的外部存储器)
3)S 总线
Cortex™-M4F <----> 外设 或 SRAM 中的数据
也可通过此总线获取指令(效率低于 ICode)
此总线访问的对象是 112 KB、64 KB 和 16 KB 的内部 SRAM、包括 APB 外设在内的 AHB1 外设、AHB2 外设以及通过 FSMC 的外部存储器。
4)DMA 存储器总线
DMA 通过此总线来执行存储器数据的传入和传出。
此总线访问的对象是数据存储器:内部 SRAM(112 KB、64 KB、16 KB) 以及通过 FSMC 的外部存储器。
5)DMA 外设总线
DMA 通过此总线访问 AHB 外设或执行存储器间的数据传输。
此总线访问的对象是 AHB 和 APB 外设以及数据存储器:内部SRAM 以及通过 FSMC 的外部存储器。
6)以太网 DMA 总线
以太网 DMA 通过此总线向存储器存取数据。
此总线访问的对象是数据存储器:内部 SRAM(112 KB、64 KB 和 16 KB)以及通过FSMC 的外部存储器。
7)USB OTG HS DMA 总线
USB OTG DMA 通过此总线向存储器加载/存储数据。
此总线访问的对象是数据存储器:内部 SRAM(112 KB、64 KB 和 16 KB)以及通过 FSMC 的外部存储器。
8)总线矩阵
总线矩阵用于主控总线之间的访问仲裁管理。仲裁采用循环调度算法。
9)AHB/APB 总线桥 (APB)
借助两个 AHB/APB 总线桥 APB1 和 APB2,可在 AHB 总线与两个 APB 总线之间实现完全同步的连接,从而灵活选择外设频率。
5. IO
STM32不同类型具备不同的Pin脚个数,如附录所示。
可以将所有Pin脚分为如下几种类型:
序号 | 引脚类型 | 引脚 | 备注 |
---|---|---|---|
1 | 电源 | VBAT、VDD、VSS、VDDA、VSSA,VREF+、VREF-等 | VBAT是备用电源 VDD和VSS是数字电源 VDDA和VSSA是模拟电源 VREF+和VREF-是参考电源。 |
2 | 晶振 | 主晶振IO、RTC晶振IO | |
3 | 下载&调试 | 用于JTAG下载的IO:JTMS、JTCK、JTDI、JTDO、NJRST | |
4 | BOOT | BOOT0、BOOT1 | 用于设置系统的启动方式 |
5 | GPIO | GPIOA ~ GPIOx | 专用器件接到专用总线,如I2C、SPI、SDIO、FSM、DCMI等总线需要接到专用的IO。 根据实际使用的GPIO功能进行连接即可 |
以上,1/2/3/4 组成一个最小系统
附录
1. ARM发展史
2. ARM架构:
3. STM32F10x 命名规则
4. 封装类型
- BGA 封装
- LQFP 封装
- VFQFPN 封装
- WLCSP64 封装