- 【嵌入式开发-STM32】初识STM32
- 一、什么是STM32
- 二、STM32的拓展
- 三、如何确定STM32选型
- 3.1、STM32的命名方法
- 3.2、数据手册与参考手册
- 3.3、选型原则
- 3.4、设计与打样
STM32是基于ARM Cortex-M内核的32位微控制器,其包括STM32F1xx(低端)、STM32F4xx(中端)、STM32F7xx(高端)等一系列产品。
STM32可以将其拆分为ST、M、32三个部分,其中ST是由意大利SGS微电子公司和法国Thomson半导体公司合并后的意法半导体公司,是一家SOC厂商;M是指其是基于Cortex-M内核的微控制器;32代表32bit。
这里有四个重点概念我想阐述一下:
ARM公司与SOC厂商
- ARM内核:所有采用ARM内核的芯片都是ARM芯片,ARM公司并不负责实现芯片的设计与生产。 内核就是CPU中实现运算的核心,ARM内核是一个统称,其有ARM7、ARM9、ARM11、Cortex等内核家族。简单来说相当于ARM公司为所有厂商提供了一个统一的底层标准即为ARM内核。
- SOC厂商:SOC(System On Chip,片上系统)厂商负责实现芯片的设计与生产,常见的SOC厂商有Qualcomm(高通)、MTK(联发科)、Intel(英特尔)、HiSilicon(海思)等等
微控制器与微处理器
- 微控制器(Microcontroller):属于处理器,由CPU+片内内存+片内外设三部分组成,单片机就属于微控制器,所有的支持设备都集成在单个芯片上。
- 微处理器(Microprocessor):属于处理器,可以理解为一个功能强大的CPU,通过增加额外的拓展外设可以组成微计算机系统。概括一下两者的区别就在于能否不借助其他外设组件实现与周围环境的通信。
STM32属于一个微控制器,由STM32最小系统和各种外接的常用通信接口组成,拓展功能非常强大。
1、串口通信(USART,Universal Synchronous/Asynchronous Receiver/Transmitter),用于与串口接口的设备通信。常用的有USB转串口模块、ESP8266-WIFI模块、GPS模块、GSM模块、指纹识别模块等。
下图分别是ESP8266-WIFI模块、USB转TTL串口模块、指纹识别模块。(图源网络,侵权立删)
2、内部集成电路(I2C),用于与I2C接口的设备通信。常用的有电容屏、陀螺仪MPU6050、带点可擦可编程只读存储器EEPROM等。
3、串行通信接口(SPI,Serial Peripheral Interface),用于跟SPI接口的设备通信。常用的有穿行FLASH、以太网W5500、音频模块VS1053。
4、通用型输入输出(GPIO,General-Purpose Input/Output),其引脚可以供使用者由成功自由使用。常用的如蜂鸣器、LED、Button按键等。
常见的其他拓展接口类型还有:安全数字输入输出(SDIO,Secure Digital Input and Output)、静态存储器控制器FSMC(Flexible Static Memory Controller)、集成电路内置音频总线I2S(Inter-IC Sound)、串行音频接口SAI(Serial Audio Interface)、模/数转换器ADC(Analog-to-Digital Converter)这些以后使用到时再详细介绍。
ST公司对STM32系列的命名规则十分严格,如下:
我使用的板子是STM32F429IGT6,我以其为例解释一下对应的含义
很多人可能会把数据手册与参考手册混为一谈,实际上两者有相应的区别。
- 数据手册,也就是常说的Datasheet,也是在设计芯片原理图或者拿到新芯片之后需要首先阅读的手册,在数据手册中会详细说明芯片的功能作用、引脚功能说明、内存映射、芯片上各元件的封装特性等。 在自行设计芯片时不能天马行空,按照自己的主观意愿完成设计,而是需要对应于数据手册完成设计。
- 参考手册,参考手册是对片上外设功能的说明以及各寄存器的描述,在利用芯片编程完成对应功能时需要反复查询,其中可能记录了一些元件初始化的流程程序等。
两个手册都建议中英文对照阅读,因为有些时候中译版本可能不太准确。
在完成自己项目需求的前提下尽可能降低成本,影响成本的因素主要有以下三个方面:
1、功耗:内核越高,功耗越高,成本越高
2、资源:引脚越多,资源越多,成本越高
3、内存:Flash越大,ARM越大,成本越高