微控制器是一种集成电路芯片,采用超大规模集成电路技术,将具有数据处理能力的中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、各种I/O端口、中断系统和定时器。 /计数器和其他功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路复用器、A/D转换器等电路)被集成到一块硅芯片中,形成一个小而完整的微计算机系统。 由于其内部结构简单、体积小、成本低,8位单片机广泛应用于一些较简单的控制器中。 常见的8位单片机主要有:Intel的51系列、Atmel的AVR系统、Microchip的PIC系列、TI的MSP430系列等。STM32是功能比较强大的32位单片机。 它与8位单片机最大的区别在于,它不仅可以使用寄存器进行编程,还可以使用官方提供的库文件进行编程,不仅编程方便,而且更容易移植。
STM32及嵌入式
嵌入式是一种以应用为中心、以计算机技术为基础的特殊计算机系统。 软件和硬件均可定制,以满足应用系统对功能、可靠性、成本、体积和功耗等严格要求。 主要分为四种类型:DSP、微控制器MCU、微处理器和SOC。 一个完整的嵌入式系统从开发过程上分为四层:硬件层、驱动层、操作系统层和应用层。 STM32是MCU的一种,因此也是一种嵌入式技术。
STM32 和 ARM
ARM可以说是一个公司的名称,是一类微处理器的总称,也代表了一种技术。 事实上,ARM是一家芯片标准公司。 它负责芯片核心的架构设计,并将具体实现授权给TI、ST等半导体公司。 例如,任何Cortex-M3芯片都具有相同的核心结构,但区别在于其内存容量、片上外设、IO等模块。 为了让不同芯片公司生产的Cortex-M3芯片在软件上基本兼容,ARM和芯片厂商共同提出了一套标准CMSIS(Cortex Microcontroller Software Interface Standard),翻译过来就是ARM Cortex™微控制器。 “软件接口标准”,即它的库函数。
STM32系列32位闪存微控制器基于ARM Cortex™-M处理器,旨在为MCU用户提供新的开发自由度。 它包括一系列 32 位产品,结合了高性能、实时功能、数字信号处理、低功耗和低电压操作,同时保持了高集成度和易于开发性。 主要产品型号有:
STM32F1系列主流MCU
STM32 F1系列主流MCU满足工业、医疗和消费市场的各种应用需求。 凭借该产品系列,意法半导体在 ARM Cortex-M 微控制器领域处于世界领先地位,并为嵌入式应用树立了里程碑。 该系列通过一流的外设和低功耗、低电压操作实现了高性能,同时还通过简单的架构和易于使用的工具以实惠的价格实现了高度集成。
该系列由五个引脚、外设和软件兼容的产品线组成。
• 物有所值的STM32F100- 24 MHz CPU,具有电机控制和CEC 功能
• 基本 STM32F101 – 36 MHz CPU,具有高达 1MB 闪存
• STM32F102 – 带 USB FS 的 48 MHz CPU
• 增强型 STM32F103- 72 MHz CPU,具有高达 1MB 闪存、电机控制、USB 和 CAN
• 连接STM32F105/107- 72 MHz CPU,带以太网MAC、CAN 和USB 2.0 OTG
目前主要产品型号有:
STM32F103
STM32F103 器件采用 Cortex-M3 内核,CPU 最高速度为 72 MHz。 该产品系列具有16KB~1MB Flash、多种控制外设、USB全速接口和CAN。具体产品型号及对应的Flash尺寸、封装类型和引脚数如下图所示
STM32F103ZE特点
我们
本系列将使用STM32F103ZE芯片进行实验。 其功能特点是:
核心:ARM32位Cortex-M3 CPU,最大工作频率72MHz,1.25DMIPSMHz。 单周期乘法和硬件除法。
内存:片上集成512KB闪存。 6-64KB SRAM 存储器。
时钟、复位和电源管理:2.0-3.6V电源和IO接口驱动电压。 POR、PDR 和可编程电压检测器 (PVD)。 4-16MHz晶体振荡器。 内嵌工厂调整的8MHz RC振荡电路。 内部 40 kHz RC 振荡电路。 CPU时钟的PLL。 带 RTC 校准功能的 32kHz 晶体振荡器。
低功耗:3种低功耗模式:睡眠、停止、待机模式。 VBAT 为 RTC 和备份寄存器供电。
调试模式:串行调试(SWD)和JTAG接口。
DMA:12通道DMA控制器。
支持的外设:定时器、ADC、DAC、SPI、IIC 和 UART。
2 个 12 位 us 级 AD 转换器(16 通道):AD 测量范围:0-3.6 V。双采样和保持功能。 温度传感器集成在片上。
2 通道 12 位 DA 转换器:STM32F103xC、STM32F103xD、STM32F103xE 独有。
多达112个快速IO端口:根据型号的不同,有26、37、51、80和112个IO端口,所有这些都可以映射到16个外部中断向量。 除模拟输入外,所有输入均可接受高达 5V 的输入。
最多11个定时器:4个16位定时器,每个定时器有4个ICOCPWM或脉冲计数器。 2个16位6通道高级控制定时器:最多可使用6个通道用于PWM输出。
2个看门狗定时器(独立看门狗和窗口看门狗)。
定时器:24位倒数计数器。 两个 16 位基本定时器用于驱动 DAC。
最多 13 个通信接口:2 个 IIC 接口(SMBusPMBus)。 5个USART接口(ISO7816接口、LIN、IrDA兼容、调试控制)。 3 个 SPI 接口 (18 Mbits),其中两个与 IIS 复用。 CAN接口(2.0B)。 USB 2.0 全速接口。 SDIO接口。
STM32的优秀体现在以下几个方面:
1.超低价格。 用8位机的价格得到32位机是STM32的最大优势。
2.周边设备很多。 STM32具有很多外设和功能包括:FSMC、TIMER、SPI、IIC、USB、CAN、IIS、SDIO、ADC、DAC、RTC、DMA等,并且具有非常高的集成度。
3.丰富的型号。 仅STM32 M3内核就有F100、F101、F102、F103、F105、F107、F207、F217等8个系列数百个型号,有QFN、LQFP、BGA等封装可供选择。 同时,STM32还推出了STM32L、STM32W等超低功耗、无线应用的M3芯片。
4. 优良的实时性能。 84个中断,16级可编程优先级,所有引脚均可用作中断输入。
5、优秀的功耗控制。 每个STM32外设都有自己独立的时钟开关,可以通过关闭相应外设的时钟来降低功耗。
6、极低的开发成本。 STM32的开发不需要昂贵的仿真器。 只需串口即可下载代码,同时支持SWD和JTAG调试口。 SWD调试可以给您的设计带来很多方便。 只需2个IO口即可实现仿真调试。
学习STM32有两本很好的中文资料:
《STM32参考手册》中文版V10.0
《Cortex-M3权威指南》中文版(宋岩译)
前者是ST官方提供的STM32通用参考资料。 内容内容翔实,但没有例子,也没有过多介绍Cortex-M3架构(估计是ST写的,好像读者很熟悉Cortex-M3一样)。 你只能根据自己对书本的理解来编写相关的代码。 后者是专门介绍Cortex-M3架构的书。 有简单的例子,但是没有专门针对STM32的介绍。 所以学习STM32的时候一定要结合本资料来阅读。
参考链接
[1]STM32维基百科
[2] 意法半导体微控制器
[3]基于STM32的13个经典项目设计实例
[4]STM32官方学习笔记