STM32F101超值型选型指南:32KB/64KB/128KB三规格级资源对比与RTU场景核算

低成本 RTU 选型纠结 F103 还是 F101?结论先给:F101 基本型砍掉的模块在 RTU 场景里一项都不是必需。只有 USART 路数、ADC 通道数、Flash/SRAM、GPIO 这四项越规格级上限时才升级。

2026-10-25
STM32F101超值型选型指南RTU低成本嵌入式

做一款低成本 RTU 采集终端,要接 8 路模拟量、3 路 485、还要把数据存进片内 Flash。同事递过来一颗 STM32F103C8T6,128KB Flash、64KB SRAM、3 个 ADC、2 个 SPI——一看参数就知道资源富余。但 F103 的价格比 F101 超值型贵了近 40%。结论先给:对于多数低成本 RTU,STM32F101 基本型已经够用。F101 砍掉的 FSMC 外存控制器、USB OTG、以太网、双 ADC 同步模式、TIM1 高级定时器这些模块,在 RTU 场景里一个都用不上;而 F101 保留的 Cortex-M3 36MHz 内核、7 通道 DMA、16 路 ADC、3 路 USART,刚好是 RTU 要的那套。本文把 F101x6/x8/xB 三个规格级的资源列成一张选型表,按场景逐项核算。

一、先把三个规格级的硬件摆上桌

STM32F101 基本型(Access Line)的核心规格:ARM Cortex-M3 32 位内核,最高 36MHz,1.25 DMIPS/MHz(Dhrystone 2.1),单周期乘法加硬件除法,0 等待存储器访问。电源范围 2.0~3.6V,工作温度 -40~+85℃,四种封装——VFQFPN36、LQFP48、LQFP64、LQFP100。

真正的选型决策发生在"选哪个规格级"上。数据手册给出的器件功能和配置如下(整理自 STM32F101 数据手册 2007 年 11 月中文第四版,表二):

资源F101x6(32K/64K Flash)F101x8(64K/128K Flash)F101xB(128K Flash)
闪存32KB / 64KB64KB / 128KB128KB
SRAM6KB / 10KB10KB / 16KB16KB
通用定时器2 个3 个3 个
SPI1 个1~2 个2 个
I²C1 个1~2 个2 个
USART2 个2~3 个3 个
ADC10 通道10 / 16 通道16 通道
GPIO26 ~ 37 个37 ~ 51 个51 ~ 80 个
DMA7 通道7 通道7 通道
ADC 转换时间1µs / 单次转换,12 位精度

这张表最直观的结论是:F101x6 规格级的资源就已经能覆盖绝大多数低成本 RTU 需求,只有在 GPIO 数量、ADC 通道数或 USART 数量不够时,才需要升到 x8 或 xB。F103 比 F101 多出的那些模块(FSMC、USB、以太网、双 ADC 同步),没有一个是 RTU 场景里必须的——RTU 要的是"稳、便宜、够用",不是"功能最全"。

二、RTU 场景逐项核算:什么时候升到 x8 或 xB

假设一款典型 RTU 需要:2~3 路 USART(RS-485 从站 + GPRS/LoRa 上行 + 可能的调试口)、8 路模拟量采集、1 路 SPI(外接 Flash 或 LoRa 模块)、若干 GPIO(数字量输入输出、继电器控制)。把这个需求表代入资源对比:

需求项F101x6 能否满足不够时升到哪个规格
2 路 USARTF101x6 基本款 2 路 USART,够用3 路需求才升到 x8 带 3 路 USART 的型号
8 路模拟量 ADCF101x6 10 通道 ADC,够用≥ 11 路需求才升到 16 通道的 x8/xB
1 路 SPIF101x6 基本款 1 路 SPI,够用≥ 2 路 SPI 才升到带 2 路 SPI 的型号
32KB FlashF101x6 最低 32KB,基本够用协议栈 + 业务逻辑超过 32KB 时升 64KB 或 128KB
6KB SRAM够用(无 RTOS、无大缓冲)跑 RTOS 或多路大缓冲时需要 10KB 或 16KB
GPIO 数量26 个(VFQFPN36 封装)超过 26 个引脚需求必须换更大的封装规格级

上表的关键判断规则是:只有当某一项需求越过了 x6 规格级的上限时,才整体升到 x8 或 xB。不要为了"可能未来会用到 3 路 USART"就选 x8——先看当前版本的真实需求,资源富余带来的成本上浮在批量生产里会被放大到每一块板上。

三、Flash 和 SRAM 容量核算:32KB Flash 装什么、6KB SRAM 放什么

STM32F101 高密度型号没有 F103 那样的页结构差异——F101 的 Flash 全部按 2KB 一页擦除(参考手册 PM0056),按半字(16 位)写入。32KB 就是 16 页,64KB 是 32 页,128KB 是 64 页。

RTU 固件的 Flash 占用大致如下(基于 GCC ARM 工具链,-O2 优化,含 FreeRTOS 和 Modbus 协议栈):

模块典型占用说明
启动代码 + 中断向量表~0.5KBCMSIS 启动文件
FreeRTOS 核心~4KB任务调度 + 信号量 + 定时器
Modbus 协议栈(RTU + TCP 子集)~8KB从站模式 + 寄存器映射
外设驱动代码~6KBUSART DMA + ADC + SPI + GPIO
业务逻辑 + 配置管理~8KB采集任务 + 上报逻辑 + 参数区
合计~26KB离 32KB 还有约 6KB 余量

这个 26KB 的估算是基于"不含 Bootloader"的前提。如果需要在线升级(OTA),Bootloader 本身就要占 8~12KB 的 Flash,这时 32KB 的 F101x6 就不够了——必须升到 64KB 或 128KB 的规格级。

SRAM 方面,6KB 够用的前提是不开大缓冲。典型分配:FreeRTOS 堆 ~2KB、任务栈每任务 512 字节(3 个任务约 1.5KB)、Modbus 收发缓冲各 256 字节、加上全局变量和 DMA 缓冲区——总计约 4KB,离 6KB 还有 2KB 余量。如果需要多路大缓冲(比如 GPRS 上行帧缓冲 1KB × 2),那 6KB 就紧了,要升到 10KB 或 16KB 的规格级。

四、F101 砍掉的模块到底是什么

对比 F103 标准型,F101 基本型砍掉了以下模块:

被砍掉的模块F103 标准型F101 基本型RTU 是否需要
FSMC(灵活静态存储控制器)有无不需要,片内 Flash 够用
USB 2.0 FS OTG有无RTU 一般不用 USB 通信
以太网 MAC + PHY有无RTU 一般走 485/GPRS,需要网口则外接 W5500
双 ADC 同步 / 交替模式有(2 个 ADC)1 个 ADC不需要高精度同步采样场景
TIM1 高级定时器有无RTU 无电机控制
DAC(数模转换器)部分型号有无不需要模拟输出
CAN 控制器部分型号有无工业总线场景少

每一项都能在 RTU 场景里找到"不需要"的理由——这也是为什么 F101 作为超值型能活下来的根本原因。砍掉的东西如果在目标应用里没用,那就是纯成本负担。

五、选型之外必须确认的硬约束

F101 基本型有三个容易被忽略但在低成本 RTU 里会直接影响 BOM 的细节。第一,电源范围是 2.0V 到 3.6V,F103 是 2.0V 到 3.6V(高密度型号)或 1.8V 到 3.6V(中/低密度)——如果 RTU 需要从 5V 或 12V 供电,两者都需要额外 LDO,差异不大;但如果能用 3.3V 直接供电,F101 的 2.0V 下限意味着电池供电到 2.1V 才会复位,比 F103 多撑约 10% 的电量。

第二,VBAT 后备域的供电范围是 1.8V 到 3.6V(数据手册 5.1.3 节)——这意味着当主电源关断后,VBAT 能给 RTC 和后备寄存器供电,但供电电压最低只要 1.8V 就能保持数据和时标不丢失。对于要求断电时仍需保留运行时统计值(比如累计运行时间、累计告警次数)的 RTU,VBAT 比 EEPROM 备份更便宜——一颗 0.1µF 的电容就能让后备域保持几十秒到几分钟,成本几厘钱。

第三,F101 的三种低功耗模式:睡眠模式(仅 CPU 停止,SRAM 和寄存器保持,典型电流 < 0.5mA,唤醒延迟 < 1µs)、停机模式(所有时钟停止,SRAM 和寄存器保持,典型电流 < 2µA,唤醒由任何 EXTI 或中断触发)、待机模式(Flash 失活,仅备份域保持,典型电流 < 1µA,唤醒由复位、WKUP 引脚或 RTC 闹钟触发)。对于电池供电的 RTU,三种模式的选择直接决定了平均电流——停机模式下 2µA 意味着一颗 1800mAh 的电池能撑约 100 年(理论值),待机模式下接近 200 年。

六、选型的七步核查清单

#核查项判定方法
1USART 路数数清楚 RS-485 + 上行 + 调试各占几路,超过 2 路才需要带 3 路的型号
2ADC 通道数模拟量路数 ≤ 10 时 x6 够用,≥ 11 升到带 16 路的规格级
3SPI / I²C 数量是否需要多路 SPI(Flash + LoRa + 显示屏)
4Flash 容量固件 + Bootloader 总量 × 1.2,超出当前规格级上限就升
5SRAM 容量总栈 + 堆 + 缓冲 × 1.3,超出当前规格级上限就升
6GPIO 数量封装尺寸决定 GPIO 数,先定封装再看规格级
7工作温度 / 供电F101 全系 -40~+85℃、2.0~3.6V,够用

最后一条经验:选"够用"而不是"最大"。按百片级采购价估算,STM32F101C8T6(64KB Flash、LQFP48)的单价约为 STM32F103C8T6 的 60%,折算到整板成本节省 15~20%——这个数字在年出货千台以上时就不是小数目。当不确定未来会不会需要更多资源时,先在原型板上用当前规格级跑通业务逻辑,再做一次容量核算,算出来的余量比你以为的要大。

F101 的 DMA 控制器与 F103 完全兼容,7 个通道支持定时器、ADC、SPI、I²C、USART 五种外设。以 USART1 接收为例,通道 5 的配置只需三步——设定外设地址、存储器地址和计数:

/* USART1_RX → DMA1 通道 5,循环模式,512 字节缓冲 */
DMA1_Channel5->CPAR  = (uint32_t)&USART1->DR;
DMA1_Channel5->CMAR  = (uint32_t)uart_rx_buf;
DMA1_Channel5->CNDTR = sizeof(uart_rx_buf);
DMA1_Channel5->CCR   = DMA_CCR_MINC | DMA_CCR_CIRC | DMA_CCR_EN;
USART1->CR3         |= USART_CR3_DMAR;

一句话总结:STM32F101 基本型在 RTU 场景里的性价比来自一个核心判断——它砍掉的 FSMC、USB、以太网、双 ADC、高级定时器这些模块,在采集终端里一个都不是必需;只要 USART 路数、ADC 通道数、Flash/SRAM 容量、GPIO 数量这四项没过规格级上限,选 F101x6 规格级就是最优解,比同 Flash 容量的 F103 节省近 40% 成本。

本文基于《STM32F101 数据手册 基本型》(2007 年 11 月中文第四版)及 STM32F10x 闪存编程手册(PM0056)整理优化。

需要定制开发?

沧州艾诺威电子 — 国家高新技术企业,20+项国家专利
嵌入式系统开发 · 物联网方案 · AI智能硬件 · 一站式交付

立即微信咨询

电话:13930711029 | 邮箱:tech@czinv.com | 24小时内响应