没有合适的资源?快使用搜索试试~ 我知道了~
首页STM32L0x中文参考手册.pdf
资源详情
资源评论
资源推荐

2017 年 01 月文档 ID 025274 Rev 1 [English Rev 4] 1/952
RM0367
参考手册
基于超低功耗 STM32L0x3 高级 ARM
®
的
32 位 MCU
前言
本参考手册面向应用开发人员,提供有关使用 STM32L0x3 微控制器存储器与外设的完整
信息。
STM32L0x3 构成一个微控制器系列,各产品具有不同的存储器大小、封装和外设。
有关订购信息以及器件的机械与电气特性,请参见相应的数据手册
。
有关 ARM
®
Cortex
®
-M0+ 内核的信息,请参见Cortex
®
-M0+
技术参考手册
。
相关文档
Cortex
®
-M0+ 技术参考手册,可从 www.arm.com 获取。
STM32L0 系列 Cortex
®
-M0+ 编程手册 (PM0223)。
STM32L0x3 数据手册。
www.st.com

目录 RM0367
2/952 文档 ID 025274 Rev 1 [English Rev 4]
目录
1 文档约定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
1.1 寄存器相关缩写词列表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
1.2 词汇表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
1.3 外设可用性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
1.4 产品类别定义 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2 系统和存储器概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.1 系统架构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.1.1 S0:Cortex® 总线 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.1.2 S1:DMA 总线 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.1.3 总线矩阵 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
AHB/APB 总线桥 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55
2.2 存储器组织结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.2.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.2.2 存储器映射和寄存器边界地址 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.3 嵌入式 SRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.4 自举配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
存储区交换(仅限第 5 类器件). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61
物理重映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61
内部自举程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61
3Flash 程序存储器和数据 EEPROM (FLASH) . . . . . . . . . . . . . . . . . . . . . . 62
3.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.2 NVM 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.3 NVM 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.3.1 NVM 的构成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.3.2 双存储区自举功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.3.3 读取 NVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
读取协议 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68
CPU 频率/工作模式 /NVM 读取时间之间的关系 . . . . . . . . . . . . . . . . . . . . . . . . . .69
数据缓冲 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70
3.3.4 写入/擦除 NVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
写入/ 擦除协议 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .76
解锁/ 锁定操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77

文档 ID 025274 Rev 1 [English Rev 4] 3/952
RM0367 目录
38
NVM 写入/擦除操作的详细说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .79
对半页 Flash 程序存储器执行并行写入操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .85
状态寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .88
3.4 存储器保护 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
3.4.1 RDP(读保护) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
3.4.2 PcROP(专有代码读取保护) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
3.4.3 防止意外的写入/擦除操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
3.4.4 写入/擦除保护管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
3.4.5 保护错误 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
写保护错误标志 (WRPERR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .94
读错误 (RDERR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .94
3.5 NVM 中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
3.5.1 硬性故障 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
3.6 存储器接口管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
3.6.1 操作优先级和流程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
读取 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .96
写入/ 擦除 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .96
选项字节加载 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .96
3.6.2 操作序列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
执行写入操作时请求读取数据. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .97
执行写入操作时请求取指 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .97
执行写入操作时请求执行另一写入操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .97
3.6.3 执行读取操作时更改等待周期数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
3.6.4 掉电 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
3.7 Flash 寄存器说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
对寄存器执行读取操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .98
对寄存器执行写入操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .98
3.7.1 访问控制寄存器 (FLASH_ACR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
3.7.2 编程和擦除控制寄存器 (FLASH_PECR) . . . . . . . . . . . . . . . . . . . . . . . 100
3.7.3 掉电密钥寄存器 (FLASH_PDKEYR) . . . . . . . . . . . . . . . . . . . . . . . . . . 103
3.7.4 PECR 解锁密钥寄存器 (FLASH_PEKEYR) . . . . . . . . . . . . . . . . . . . . . 103
3.7.5 编程和擦除密钥寄存器 (FLASH_PRGKEYR) . . . . . . . . . . . . . . . . . . . 104
3.7.6 选项字节解锁密钥寄存器 (FLASH_OPTKEYR) . . . . . . . . . . . . . . . . . . 104
3.7.7 状态寄存器 (FLASH_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
3.7.8 选项字节寄存器 (FLASH_OPTR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
3.7.9 写保护寄存器 1 (FLASH_WRPROT1) . . . . . . . . . . . . . . . . . . . . . . . . . 109
3.7.10 写保护寄存器 2 (FLASH_WRPROT2) . . . . . . . . . . . . . . . . . . . . . . . . . 110
3.7.11 Flash 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

目录 RM0367
4/952 文档 ID 025274 Rev 1 [English Rev 4]
3.8 选项字节 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .112
3.8.1 选项字节说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
3.8.2 加载保护标志时发生不匹配 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
3.8.3 通过软件重载选项字节 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
4 循环冗余校验计算单元(CRC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
4.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .114
4.2 CRC 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .114
4.3 CRC 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .114
多项式可编程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .115
4.4 CRC 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .116
4.4.1 数据寄存器 (CRC_DR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
4.4.2 独立数据寄存器 (CRC_IDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
4.4.3 控制寄存器 (CRC_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
4.4.4 CRC 初始值 (CRC_INIT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
4.4.5 CRC 多项式 (CRC_POL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
4.4.6 CRC 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
5 防火墙 (FW) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
5.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
5.2 防火墙主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
5.3 防火墙功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
5.3.1 防火墙 AMBA 总线监听 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
5.3.2 功能要求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
调试注意事项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .121
写保护. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .122
中断管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .122
5.3.3 防火墙段 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
代码段. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .122
非易失性数据段 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .122
易失性数据段 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .122
5.3.4 段访问方式及其属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
不同防火墙状态下的段访问 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .123
段属性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .123
5.3.5 防火墙初始化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
5.3.6 防火墙状态 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
打开防火墙 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126
关闭防火墙 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126

文档 ID 025274 Rev 1 [English Rev 4] 5/952
RM0367 目录
38
5.4 防火墙寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
5.4.1 代码段起始地址寄存器 (FW_CSSA) . . . . . . . . . . . . . . . . . . . . . . . . . . 127
5.4.2 代码段长度寄存器 (FW_CSL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
5.4.3 非易失性数据段起始地址寄存器 (FW_NVDSSA) . . . . . . . . . . . . . . . . . 128
5.4.4 非易失性数据段长度寄存器 (FW_NVDSL) . . . . . . . . . . . . . . . . . . . . . . 128
5.4.5 易失性数据段起始地址寄存器 (FW_VDSSA) . . . . . . . . . . . . . . . . . . . . 129
5.4.6 易失性数据段长度寄存器 (FW_VDSL) . . . . . . . . . . . . . . . . . . . . . . . . . 129
5.4.7 配置寄存器 (FW_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
5.4.8 防火墙寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
6 电源控制 (PWR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
6.1 电源 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
6.1.1 独立 A/D 和 DAC 转换器电源和参考电压 . . . . . . . . . . . . . . . . . . . . . . 133
在具有多于 64 个引脚和 UFBGA64 的封装上 . . . . . . . . . . . . . . . . . . . . . . . . . .133
在 64 引脚及以下的封装上(除了 BGA 封装) . . . . . . . . . . . . . . . . . . . . . . . . .133
6.1.2 独立 LCD 供电 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
6.1.3 RTC 和 RTC 备份寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
RTC 寄存器访问 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .134
6.1.4 调压器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
6.1.5 动态电压调节管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
范围 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .135
范围 2 和 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .135
6.1.6 动态电压调节配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
6.1.7 当 VDD 降至 1.71 V 以下时的调压器和时钟管理 . . . . . . . . . . . . . . . . . 136
6.1.8 修改 VCORE 范围时的调压器和时钟管理 . . . . . . . . . . . . . . . . . . . . . . 137
6.1.9 当 VDD 介于 1.71 V 到 2.0 V 之间时的电压范围和限制 . . . . . . . . . . . 137
6.2 电源监控器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
6.2.1 上电复位 (POR)/掉电复位 (PDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
6.2.2 欠压复位 (BOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
6.2.3 可编程电压检测器 (PVD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
6.2.4 内部参考电压 (VREFINT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
6.3 低功耗模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
6.3.1 低功耗模式下时钟的行为 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
睡眠和低功耗睡眠模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .143
停止和待机模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .143
6.3.2 降低系统时钟速度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
6.3.3 外设时钟门控 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
6.3.4 低功耗运行模式(LP 运行) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
剩余951页未读,继续阅读














安全验证
文档复制为VIP权益,开通VIP直接复制

评论1