手中有利器, 方为真英雄 STM32F0 技术介绍及对比
STM32F0 片上资源一览 STM32F0 模拟外设 计数器 通信端口 功能外设 ADC DAC CMP TIM WDG RTC SPI I2C USART TSC CRC CEC DMA 基础 共用模块 Flash/SRAM PWR RCC GPIO 内核 架构 2
STM32 系列微控制器外设资源一览 3 STM32F0 STM32F1 STM32F2 STM32F3 STM32F4 STM32L 内核 Cortex M0 Cortex M3 Cortex M3 Cortex M4 Cortex M4 Cortex M3 CPU 频率及架构 Flash & 预取指 48MHz 72MHz 120MHz 72MHz 168MHz 32MHz 64 KB 3*32 位 1 MB 128 位 SRAM 8 KB 96 KB 工作电压 & 低功耗 启动引脚 2.0 ~ 3.6V 三种 BOOT0 2.0 ~ 3.6V 三种 BOOT0 BOOT1 1 MB 128 位 128KB + 4KB 1.65 ~ 3.6V 三种 BOOT0 BOOT1 256 KB 128 位 40 KB 2.0 ~ 3.6V 三种 BOOT0 BOOT1 1 MB 128 位 192KB + 4KB 1.7 ~ 3.6V 三种 BOOT0 BOOT1 384 KB 128 位 48 KB 1.65 ~ 3.6V 五种 BOOT0 BOOT1 Presentation Title 26/09/2012
STM32 系列微控制器特性一览 ( 续 1) 4 STM32F0 STM32F1 STM32F2 STM32F3 STM32F4 STM32L 读写保护三层两层三层三层三层三层 调试接口 SWD JTAG SWD JTAG SWD JTAG SWD JTAG SWD JTAG SWD 封装引脚数 /GPIO 数 32/27 48/39 64/55 36/26 48/37 64/51 100/80 144/112 64/51 100/82 144/114 176/140 48/37 64/52 100/84 64/51 100/82 144/114 176/140 48/37 64/51 100/83 132/109 A/D 模块 1 3 3 4 3 1 D/A 1 2 2 3 2 2 比较器 2 0 0 7 0 2 Presentation Title 26/09/2012
STM32 系列微控制器特性一览 ( 续 2) 资源数目 STM32F0 STM32F1 STM32F2 STM32F3 STM32F4 STM32L TIM 8 14 14 14 14 9 WDG 2 2 2 2 2 2 RTC SPI( 于之复用的 I2S) 1 硬件日历 1 32 位计数器 1 硬件日历 1 硬件日历 1 硬件日历 1 硬件日历 2(1) 3(2) 3(2) 3(2) 3(2) 3(2) I2C 2 2 3 2 3 2 USART 2 5 6 3 6 5 TSC 1 0 0 1 0 1 CRC 1 1 1 1 1 1 CEC 1 STM32F100 0 1 0 0 DMA 1 2 2 2 2 2
谢谢! 欢迎访问 www.st.com/stm32
内核 Cortex-M0 内核 7 Cortex M0 架构指令集总线接口中断数 V6M Thumb, Thumb 2 AHB Lite 1 32 + NMI 专为低成本低功耗应用设计 中断优先级 4 MPU 单周期乘法指令硬件除法 BIT BANDING CMSIS 无有无无支持 Presentation Title 26/09/2012
架构总线架构 8 Cortex M0 DMA 系统总线 (48MHz) DMA 总线 总线矩阵 AHB (48MHz) AHB (48MHz) AHB (48MHz) Flash I/F SRAM AHB2GPIO FLASH GPIO A, B,C, D, F AHB (48MHz) RCC, CRC, Touch Sensing controller (TSC) 仲裁器 AHB2APB APB (48MHz) SYSCFG, TIMs, WWD, IWWD, RTC, I2Cs, USARTs, SPI/I2Ss, HDMI CEC, DBGMCU Presentation Title 26/09/2012
基础外设片上闪存通用特性 9 片上闪存特性一瞥 容量高达 64K 字节 擦写次数 :10k 次 半字写速度 :52.5µs( 典型 ) 页擦除 / 全片擦除 :20ms( 最小 )/40ms( 最大 ) 片上闪存组织架构 主存储区 信息块 :3K 字节系统存储区 + 6 个选项字节 系统存储区用于出厂前存放启动代码 选项字节用来控制读 写保护 ; 系统配置 ; 以及存放用户数据 Presentation Title 26/09/2012
基础外设片上闪存独有特性 10 片上闪存接口集成预取指队列 :3*32 位 存储器预取 Cortex M0 控制器 内核 16 位 32 位 16 位 THUMB Instructions 指令 THUMB2 /// Data-DMA-Debug 指令 THUMB2 BUS 指令 仲裁器 32 位 32 位 32 位 FLASH 存储器 16 位数据 32 位数据 8 位数据 Presentation Title 26/09/2012
基础外设片上 SRAM 11 带校验的片上 SRAM, 容量高达 8K 字节 32 位数据 + 4 位校验位 读 SRAM 时自动校验 校验出错时 : 产生 NMI, 并同时置位 SRAM_PEF@SYSCFG 寄存器 如果设置了 SRAM_PARITY_LOCK@SYSCFG, 还可和 TIM1 的刹车输入相连 Presentation Title 26/09/2012
基础外设 电源管理 V DD :2.0 ~ 3.6 V V DDA 区域 V DDA :2.0 ~ 3.6 V ADC DAC 工作时 V DDA V SSA ADC DAC COMP 温度传感器复位模块 PLL V DDA 最低电压 2.4V V DD 区域 I/O Rings V 18 区域 V BAT :1.65 ~ 3.6 V POR 监控 V DD V SS V DD STANDBY 电路 ( 唤醒逻辑,IWWDG) 电压调节器 内核存储器数字外设 PDR 监控 V DD 和 V DDA 低电压检测 电池备份域 PVD 监控 V DD V BAT LSE crystal 32K osc BKP 寄存器 RCC BDCR 寄存器 RTC
基础外设低功耗模式 13 实现了三种低功耗模式 睡眠 (SLEEP) 停止 (STOP) 和待机 (STANDBY) 模式 运行 (RUN) 模式 HSE 旁路 8MHz x 6 PLL = 48MHz / 代码从 FLASH 运行 / 打开所有外设时钟 运行 (RUN) 模式 HSE 旁路 8MHz x 3 PLL = 24MHz / 代码从 FLASH 运行 / 打开所有外设时钟 运行 (RUN) 模式 HSI 8MHz / 代码从 FLASH 运行 / 打开所有外设时钟 睡眠 (SLEEP) 模式 HSI 8MHz / 2 x 12 PLL = 48MHz / 打开所有外设时钟 停止 (STOP) 模式电压变换器工作在低功耗模式 / 关闭所有晶体 / 关闭监控 VDDA 的 PDR 待机 (STANDBY) 模式关闭 LSI 和 IWWDG / 关闭监控 VDDA 的 PDR IDD / IDDA 22.9 / 0.166 (ma) 11.7 / 0.088 (ma) 4.15 / 0.079 (ma) 12.9 / 0.243 (ma) 3.6 / 1.34 (µa) 1.1 / 1.21 (µa) 以上数据在 TA = 25 C, VDD =3.3V VDDA= 3.3 V 时测量 Presentation Title 26/09/2012
启动模式 14 选项字节中的 BOOT1 位域 启动模式选择 BOOT0 引脚 启动模式 说明 x 0 从用户闪存启动用户代码区映射到逻辑 0 地址 0 1 从系统闪存启动系统存储区映射到逻辑 0 地址 1 1 从片上 SRAM 启动内置 SRAM 区映射到逻辑 0 地址 系统存储区启动 出厂前内置 Bootloader 代码 使得用户可以通过 USART1 或 USART2 烧录片上用户闪存 用户可通过 MEM_MODE[1:0] 动态修改逻辑 0 地址映射 复位时 MEM_MODE 的值由 BOOT 设置决定 程序运行时, 用户可修改 MEM_MODE 的值 用于 IAP(Cortex-M0 内核没有向量表重定位寄存器 ) Presentation Title 26/09/2012
提供 3 级读保护选择 读写保护 LEV0( 不保护 ) LEV1( 一级读保护 ) LEV2( 二级读保护 ) LEV2 的设置不可逆 区域 用户存储区 系统存储区 选项字节 备份寄存器 读保护级别 用户代码执行 调试 / 从 RAM 启动 / 从系统闪存启动 读操作写操作擦除读操作写操作擦除 LEV 1 允许允许允许不允许不允许不允许 LEV 2 允许允许允许无意义无意义无意义 LEV 1 允许不允许不允许允许不允许不允许 LEV 2 允许不允许不允许无意义无意义无意义 LEV 1 允许 允许 允许 允许 允许 允许 LEV 2 允许 允许 不允许 无意义 无意义 无意义 LEV 1 允许允许无意义不允许不允许无意义 LEV 2 允许允许无意义无意义无意义无意义
调试模块 16 仅支持 SWD 单线调试模式 SWDIO 内置了上拉电阻 SWCLK 内置了下拉电阻 提供数据断点和程序断点功能 支持低功耗模式下的调试 SWDIO SWCLK STM32 调试模块 VDD Cortex_M0 调试模块 SW DP 支持对定时器 看门狗和 I2C(SMBUS GND 模式 ) 的调试 Presentation Title 26/09/2012
提供多种封装选择 17 Presentation Title 26/09/2012
STM32F0 Vs. STM32F1 引脚兼容 18 STM32F1 系列 STM32F0 系列 QFP48 QFP64 引脚定义 QFP48 QFP64 引脚定义 5 5 PD0 OSC_IN 5 5 PH0 OSC_IN 6 6 PD1 OSC_OUT 6 6 PH1 OSC_OUT 18 VSS_4 18 PF4 19 VDD_4 19 PF5 35 47 VSS_2 35 47 PF6 36 48 VDD_2 36 48 PF7 20 28 Boot1/PB2 20 28 PB2 Presentation Title 26/09/2012
基础外设 GPIO 的通用特性 最大 64 引脚封装上, 多达 55 个双向 GPIO 全部都可配置成外部中断来把系统从停止模式唤醒 输出可配置 来自片上外设或输出数据寄存器的开漏或推挽输出, 输出上下拉可配置 输入可配置 输入到片上外设或输入数据寄存器, 输入上下拉可配置 作为 AHB 总线上的外设, 最高翻转速率可达 12MHz 可通过寄存器对单个引脚做置位和复位的原子操作 每个引脚通过复用开关和多个外设相连, 避免外设间的冲突 GPIO 的配置可锁定, 直到下次系统复位 除 ADC DAC 和电池备份域引脚, 其余 GPIO 都是 5V 容忍
基础外设 GPIO 的功能框图 模拟输入 可编程功能输入到片上外设 读操作 输入数据寄存器 0 On Off 施密特触发器输入电路 VDD VDD or VDD_FT (1) On/Off 上拉 GPIO 引脚 VDD 写操作读 写操作 位操作寄存器 来自片上外设可编程功能输出 输出数据寄存器 输出控制 推挽或开漏 VSS 输出电路 On/Off VSS 下拉 VSS 模拟输出
模拟外设 ADC 的通用特性 单 ADC 模块,16 个外部通道 3 个内部通道 内部通道 : 温度传感器 内部参考电压, 电池电量 工作电压范围 :2.4V ~ 3.6V 支持对某个通道的单次或一组通道的扫描转换 支持单次 连续转换模式 间隔转换模式 转换精度可配置 6 位 8 位 10 位 12 位, 可选 12 位精度情况下, 转换速度可高达每秒 1M 次采样 模拟看门狗可对单个或所有通道的转换值进行监测, 并在超出设定门限时产生中断
模拟外设 ADC 的独有特性 ADC 模块时钟可配置 : 使用片上 14MHz 振荡器时 系统时钟可独立于 ADC 模块时钟 可以开启自动节电模式 更多中断和事件, 便于用户管理 采样阶段结束 转换结束 转换序列结束 溢出错误 PCLK ADC 分频因子 /2 or /4 数字接口 14MHz 内部独立振荡器 14MHz max 模拟接口
模拟外设 ADC 的独有特性 (2) ADC 低功耗特性 自动延迟转换 自动节电模式 硬件或软件触发 ADC 状态 1 Delay 2 Delay 1 Delay ADC 功耗 (AUTOFF =0, AUTDLY =0) ON ADC 功耗 (AUTOFF =1, AUTDLY =0) OFF ON OFF ON ADC 功耗 (AUTOFF =1, AUTDLY =1) OFF ON OFF ON OFF OFF ON OFF ADC 等待触发信号 启动时间 i 通道转换时间
DMA 请求据总线模拟外设 ADC 的功能框图 VDDA VSSA ADC_IN0......... ADC_IN15 GPIO 端口 温度传感器 多路复用开关 采样和保持 Start SAR ADC AUTOFF ADEN/ADDIS 12 位数据寄存器 VREFINT VBat 模拟看门狗事件 地址 数AUTDLY ADSTP 启动和停止控制 ADRY EOSMP OVR EOC EOS AWD 标志 ADSTART ADRYIE EOSMPIE EOSIE EOCIE OVRIE AWDIE 中断使能位 TIM1_TRGO TIM1_CC4 软件触发 TIM2_TRGO 模拟看门狗 TIM3_TRGO TIM15_TRGO EXTRIG bit 12 比特高门限寄存器 EXTSEL[2:0] bits 连到 NVIC 的 ADC 中断矢量 12 比特低门限寄存器 24
模拟外设 DAC 的通用特性 单 DAC 模块 工作电压范围 :2.4V ~ 3.6V 输出精度可配置 8 位 12 位, 可选 具有 DMA 功能 输出通道可使能内部缓冲, 以提高驱动电流
模拟外设 DAC 的功能框图 TSELx[2:0] 控制寄存器 SWTRIGx TIM2_TRGO TIM3_TRGO TIM6_TRGO MAMPx[3:0] WAVEx[1:0] TENx DMAENx Ext_IT_9 TIM15_TRGO DHRx 12 bits 控制逻辑 DMA 请求 12 bits DORx 12 bits VDDA VSSA 数字到模拟的转换 DAC_OUTx
模拟外设 比较器的通用特性 2 个比较器模块 工作电压范围 :2.0V ~ 3.6V 比较器输入 输出可灵活配置 输入有多个选择 :I/O 引脚 DAC 输出引脚 内部参考电压及其分压 输出设置 :I/O 引脚 定时器 内部中断线 比较器速度 功耗以及滞回都可配置 2 个比较器可组合成窗口比较器 睡眠模式 停止模式下比较器仍可工作, 并使用内部中断线唤醒系统 安全性 : 比较器配置寄存器具有写保护特性, 避免被意外修改其配置
模拟外设 比较器的功能框图 PA1 配置成 AN 即可 PA1 + COMP 1 Edge selection PA0 / PA6 / PA11 COMP Interrupt (EXTI) GPIO 配置成 AF 寄存器控制 PA0 PA4 (DAC1) PA5 Band Gap ¾ Band Gap ½ Band Gap ¼ Band Gap - Window mode selection TIM1_BKIN TIM1_OCrefClear TIM1_IC1 TIM2_IC4 TIM2_OCRefClear TIM3_IC1 TIM3_OCRefClear 寄存器控制 PA1 配置成 AN 即可 PA3 + COMP 2 Edge selection PA7 / PA12 GPIO 配置成 AF COMP Interrupt (EXTI) 寄存器控制 PA2 PA4 (DAC1) PA5 Band Gap ¾ Band Gap ½ Band Gap ¼ Band Gap - TIM1_BKIN TIM1_OCrefClear TIM1_IC1 TIM2_IC4 TIM2_OCRefClear TIM3_IC1 TIM3_OCRefClear 寄存器控制
计数外设 定时器的通用特性 1 个基本定时器 常用于基本定时, 或驱动 DAC 6 个通用定时器 1 个 32 位计数器 5 个 16 位计数器 多个通道, 可用于输入捕获 输出比较 PWM 产生 单脉冲输出等 1 个用于马达控制的高级定时器 死区时间可控制 刹车输入 重复计数器使得在可设置的定时器周期后才更新定时器配置寄存器 所有通用定时器拥有的特性 定时器可被外部信号同步也可定时器之间彼此同步 ( 级联 )
计数外设 定时器的功能框图 ETR Clock ITR 1 ITR 2 ITR 3 ITR 4 Trigger/Clock Controller Trigger Output 16-Bit Prescaler Auto Reload REG +/- 16-Bit Counter CH1 CH2 CH3 CH4 BKIN Capture Compare Capture Compare Capture Compare Capture Compare CH1 CH1N CH2 CH2N CH3 CH3N CH4
计数外设 定时器的功能比较 计数器位数和方向 比较捕获 + 互补输出 分频因子 最大时钟 DMA 特性同步模块外部触发刹车输入 重复计数器 TIM1 TIM2 TIM3 TIM6 TIM14 TIM15 TIM16 TIM17 16 位向上向下 32 位向上向下 16 位向上向下 16 位向上 16 位向上 16 位向上 16 位向上 16 位向上 4+3 0 16 位分有有无无无频因子 1+0 48MHz 无无 有有有有有 4+0 有有有无无 4+0 有有有无无 测量内外部时钟 2+1 有有无有有 1+1 有无无有有 1+1 有无无有有 无 无
计数外设 看门狗的特性和框图 两个看门狗都有 窗口 特性 独立窗口看门狗 LSI 作为 12 位计数器驱动时钟, 低功耗模式仍可工作 设置选项字节, 可硬件开启独立窗口看门狗 窗口看门狗 SYSCLK 作为 7 位计数器驱动时钟, 低功耗模式下停止工作 EWI 中断可用于喂狗失败造成系统即将复位之前, 做紧急处理工作 窗口看门狗 :7 位向下计数器 独立窗口看门狗 :12 位向下计数器 0xFFF 或者 RLR[11:0] W[6:0] WIN[11:0] 3Fh T6 bit 不允许刷新 刷新窗口 time 0 不允许刷新 刷新窗口 time Reset Reset
合理使用低功耗模式 + 独立看门狗 前提 : 独立看门狗是由软件使能的, 上电时默认关闭 复位 检查 SFTRST@RCC_CSR = 0 进入低功耗模式 有 = 1 检查 magic code 无 使能独立看门狗 正常流程 需要进入低功耗 : 1. 在 RAM 的特殊 location 标记 magic code 2. 手动产生系统复位
计数外设 RTC 的通用特性 亚秒级别的硬件日历模块 闹钟的年 月 日 时 分 秒可独立配置 多种方法提高日历精度 数字精确校准 使用已有 50 或 60Hz 信号调整日历精度 和远程已知时钟同步调整日历精度 可输出闹钟标志和校准时钟信号 包含 20 字节备份寄存器 小于 1uA 的超低功耗
计数外设 RTC 的独有特性 更精确的数字电路校准 可动态校准, 无需停止日历运行 入侵检测和时间戳功能 2 个引脚可用于入侵检测 带滤波并提供基准电压的入侵检测 支持电平和边沿检测 入侵事件可以同时触发时间戳记录 PC13/14/15 可配置成在待机模式仍保持输出电平 日历 闹钟具有亚秒级别的时间信息
计数外设 RTC 的校准比较 平滑校准 STM32F4/ STM32L 大容量 STM32F2/ STM32L 中容量 STM32F1 STM32F0 ±1.91 ±1.91 精度 (ppm) ±0.95 0.95 ±0.95 ±0.48 没有 ±0.48 平滑校准范围 (ppm) 480 ~ +480 0~120 480 ~+480 异步分频 位数 7 7 精度 (ppm) 2and+4 2and+4 粗略校准 范围 (ppm) 63 ~ +126 63 ~ +126 没有粗略校准和异步分频 7 没有粗略校准 同步分频位数 15 13 20 15 RTCCLK 平滑校准异步分频粗略校准同步分频 1Hz
计数外设 RTC 的功能框图 入侵检测引脚 1 入侵检测引脚 2 备份寄存器和 RTC 控制寄存器 入侵标志 时间戳引脚 时间戳寄存器 时间戳标志 参考时钟输入引脚 闹钟 HSE / 32 LSE LSI RTCCLK 精确校准 年月日时分秒亚秒 = 闹钟标志 可读写向下计数器 7 位异步分频 15 位同步分频 PREDIV_A [6:0] PREDIV_S [14:0] 年 月 日 周 Calendar 时 分 秒 亚秒 (12 24 小时制 ) OSEL@CR RTC_ALARM 1 Hz 512 Hz COE@CR RTC_CALIB 37
通信外设 SPI 的通用特性 最高通信速率可达 18M 比特 / 秒 支持全双工 单线单工 单线半双工等通信模式 时钟极性 相位以及数据位序可灵活配置 片选信号可由硬件或软件管理 可动态地在主设备模式 从设备模式之间切换 集成硬件 CRC 模块 只支持 8 位 16 位数据帧 SPI1 模块和 I2S 复用
通信外设 SPI 的独有特性 数据帧长度可灵活配置 4 位 ~ 16 位 片选信号支持多种模式 NSS 脉冲模式 TI 片选模式 发送方和接收方各拥有 4 字节 FIFO, 并可触发 DMA 支持数据 pack, 以减小 CPU 负载
通信外设 SPI 的功能框图 SPI 功能引脚 接收 FIFO 地址 数据总线 CRC 控制器 移位寄存器 发送 FIFO 通信控制器 波特率产生器 内部片选 片选逻辑
通信外设 I2C 的通用特性 支持 100K 的标准速度总线和 400K 的快速总线 支持多主抢占总线下的仲裁 支持 7 位和 10 位从地址寻址 支持广播地址模式 从设备模式下时钟延展特性可配置 能触发 DMA 请求, 并带 1 字节缓冲
通信外设 I2C 的独有特性 支持 1MHz 的 Fast+ I2C 总线速度 作为从设备可被多个 7 位地址寻址 发送方可对数据建立和保持时间灵活配置 时钟和数据线上滤波可配置 从设备可对每个接收到的字节进行应答控制 模块拥有双时钟域 被寻址时可把系统从低功耗模式唤醒 总线速度可以和 PCLK 独立
通信外设 I2C 的功能框图 时钟控制 数字滤波 模拟滤波 GPIO 逻辑 SCL SYSCLK HSI I2C_CLK I2C1 数据控制 数字滤波 模拟滤波 GPIO 逻辑 SDA PCLK 寄存器 SMBA APB 总线
通信外设 USART 的通用特性 最高通信率可达 6M 比特 / 秒 数据帧可灵活配置 数据位 停止位长度 ; 校验位 ; 波特率 收 发模块各自独立的使能控制 支持多处理器通信模式 未被寻址的节点可处于静默状态 支持单线半双工通信模式 具有多种扩展模式 LIN IrDA SIR 智能卡 ModBus 通信
通信外设 USART 的独有特性 支持同步通信主设备模式, 数据位序可配置 时钟过采样位数可配置 :8 倍或 16 倍 支持自动波特率检测 收 发引脚可软件交换 支持对 Modem 和 RS485 收发器的硬件流控 RTS CTS DE 模块拥有双时钟域 可把系统从停止模式唤醒 波特率重新设置时不影响 PCLK( 外设总线时钟 )
功能外设 TSC( 触摸感应 ) 的特性 基于表面电荷转移原理的电容感应式触摸按键 可同时测量 6 通道, 支持最多 18 个通道 电荷转移全过程由硬件完成, 无需 CPU 参与 可实现非接触式 按键 线性和旋转的感应 不同封装的芯片 ST 提供 STMTouch touch sensing firmware library 模拟 I/O 组 STM32F051Rx STM32F051Cx (64 引脚 ) (48 引脚 ) STM32F051Kx (32 引脚 ) G1 + G2 + G4 + G5 3 + 3 + 3 + 3 3 + 3 + 3 + 3 3 + 3 + 3 + 3 G3 3 2 2 G6 3 3 0 能够测量的通道个数 18 17 14
功能外设 CRC 的特性 可用于验证传输数据和存储数据的完整性 采用 32 位 CRC 以太网多项式 输入数据宽度可配置 基于 AHB 总线的 CRC 计算速度更快 输入输出位序可反转 CRC 初值可配置
功能外设 DMA 的特性 支持 5 个通道 每个通道连接多个外设请求 外设请求可重映射到 2 个不同通道上 各 DMA 请求拥有 4 级可配置的软件优先级和由自身序号决定的硬件优先级 支持外设和存储器之间 外设之间 和存储器之间的传输 传输源和目的端的数据宽度可独立配置, 以模 拟 pack 和 unpack 5 支持循环模式
谢谢! 欢迎访问 www.st.com/stm32