首页资源分类嵌入式处理器ARM MPU > STM32F4中文版FALSH编程手册.pdf

STM32F4中文版FALSH编程手册.pdf

已有 445117个资源

下载专区

上传者其他资源

    文档信息举报收藏

    标    签:STM32F4中文版FALSH编程手册

    分    享:

    文档简介

    STM32F4中文版FALSH编程手册

    文档预览

    PM0081 编程手册 STM32F40xxx 和 STM32F41xxx Flash 编程手册 前言 本编程手册介绍了 STM32F405xx、STM32F407xx、STM32F415xx 和 STM32F417xx 微控制 器 Flash 的编程方法。为方便起见,本文档将上述产品统称为 STM32F40x 和 STM32F41x (除非另行声明)。 STM32F40x 和 STM32F41x 嵌入式 Flash 可采用在线编程或在应用中编程两种方式。 在线编程 (ICP) 方式适用于更新 Flash 的所有内容,更新时使用 JTAG、SWD 协议或自举程 序将用户应用程序加载到微控制器。ICP 可实现快速而高效的设计迭代,并且避免了不必要 的器件封装处理或插接。 与 ICP 方法相比,在应用中编程 (IAP) 可通过微控制器支持的任何通信接口(I/O、USB、 CAN、UART、I2C 和 SPI 等)将编程数据下载到存储器。使用 IAP 方式时,可以在应用程 序运行期间对 Flash 重新编程。但是,部分应用程序必须事先通过 ICP 方式编程到 Flash。 Flash 接口根据 AHB 协议实施指令访问和数据访问。它将实施可加快 CPU 代码执行速度的 预取缓冲器,以及执行 Flash 操作(编程 / 擦除)所必需的逻辑。编程 / 擦除操作可在整个产 品电压范围内执行。读写保护和选项字节的设置也通过 FLASH 接口来操作。 2011 年 09 月 文档 ID 018520 第 1 版 1/25 www.st.com 目录 目录 PM0081 1 Flash 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.2 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.3 Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.4 读接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.4.1 CPU 时钟频率与 Flash 读取时间之间的关系 . . . . . . . . . . . . . . . . . . . . . . 8 1.4.2 自适应实时存储器加速器 (ART Accelerator™) . . . . . . . . . . . . . . . . . . . . 9 1.5 擦除和编程操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.5.1 Flash 控制寄存器解锁 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.5.2 编程/ 擦除并行位数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.5.3 擦除 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.5.4 编程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.5.5 中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.6 选项字节 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.6.1 关于用户选项字节的说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.6.2 用户选项字节编程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.6.3 读保护 (RDP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.6.4 写保护 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.7 一次性可编程字节 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.8 Flash 接口寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.8.1 Flash 访问控制寄存器 (FLASH_ACR) . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.8.2 Flash 密钥寄存器 (FLASH_KEYR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.8.3 Flash 选项字节密钥寄存器 (FLASH_OPTKEYR) . . . . . . . . . . . . . . . . . 19 1.8.4 Flash 状态寄存器 (FLASH_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 1.8.5 Flash 控制寄存器 (FLASH_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 1.8.6 Flash 选项控制寄存器 (FLASH_OPTCR) . . . . . . . . . . . . . . . . . . . . . . . 22 1.8.7 Flash 接口寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2 版本历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2/25 文档 ID 018520 第 1 版 PM0081 表格索引 表格索引 表 1. 表 2. 表 3. 表 4. 表 5. 表 6. 表 7. 表 8. Flash 模块构成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 CPU 时钟 (HCLK) 频率对应的等待周期数 (VOS = ‘1’) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 编程 / 擦除并行位数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 选项字节构成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 关于选项字节的说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 OTP 区域构成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Flash 寄存器映射与复位值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 文档版本历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 文档 ID 018520 第 1 版 3/25 3 图片索引 图片索引 PM0081 图 1. 图 2. 图 3. 系统架构内的 Flash 接口连接 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 32 位连续指令的执行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 RDP 级别 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4/25 文档 ID 018520 第 1 版 PM0081 词汇表 本节简要介绍本文档中所用首字母缩略词和缩写词的定义: ● CPU 内核集成了两个调试端口: — JTAG 调试端口 (JTAG-DP) 提供基于联合测试工作组 (JTAG) 协议的 5 引脚标准 接口。 — SWD 调试端口 (SWD-DP) 提供基于串行线调试 (SWD) 协议的 2 引脚(时钟和数 据)接口。 有关 JTAG 和 SWD 协议的信息,请参见《Cortex-M4F 技术参考手册》 ● 字:32 位数据 / 指令。 ● 半字:16 位数据 / 指令。 ● 字节:8 位数据。 ● 双字:64 位数据。 ● IAP(在应用中编程):IAP 是指可以在用户程序运行期间对微控制器的 Flash 进行重 新编程。 ● ICP(在线编程):ICP 是指可以在器件安装于用户应用电路板上时使用 JTAG 协议、 SWD 协议或自举程序对微控制器的 Flash 进行编程。 ● I-Code:此总线用于将 CPU 内核的指令总线连接到 Flash 指令接口。通过此总线可执行 预取操作。 ● D-Code:此总线用于将 CPU 的 D-Code 总线(文字池数据加载和调试访问)连接到 Flash 数据接口。 ● 选项字节:存储于 Flash 中的产品配置位。 ● OBL:选项字节加载器。 ● AHB:高级高性能总线。 ● CPU:指 Cortex-M4F 内核。 文档 ID 018520 第 1 版 5/25 24 Flash 接口 1 Flash 接口 PM0081 1.1 简介 Flash 接口可管理 CPU 对 1 MB(64 Kb × 128 位)Flash 进行的 AHB I-Code 和 D-Code 访 问。该接口可针对 Flash 执行擦除和编程操作,并实施读写保护机制。 Flash 接口通过指令预取和缓存机制加速代码执行。 1.2 主要特性 ● Flash 读操作 ● Flash 编程 / 擦除操作 ● 读 / 写保护 ● I-Code 上的预取操作 ● I-Code 上的 64 个缓存行(128 位) ● D-Code 上的 8 个缓存行(128 位) 图 1 所示为系统架构内的 Flash 接口连接。 图 1. 系统架构内的 Flash 接口连接 &RUWH[0) ,㓪ⷕᘏ㒓 &RUWH[ ‫ݙ‬Ḍ '㓪ⷕᘏ㒓 ,㓪ⷕ '㓪ⷕ 6ᘏ㒓 $+% ԡ ᣛҸᘏ㒓 )ODVK᥹ষ )ODVKᘏ㒓 ԡ $+% ԡ ᭄᥂ᘏ㒓 )/,7)ᆘᄬ఼ )ODVK &&0᭄᥂ 5$0 '0$ '0$ 86%+6 ҹ໾㔥 䆓䯂)ODVKЁⱘᣛҸ 䆓䯂)ODVKЁⱘ᭄᥂੠᭛ᄫ∴ )/,7)ᆘᄬ఼䆓䯂 $+% ԡ ㋏㒳ᘏ㒓 ໪䆒 65$0 )60& $+% ໪䆒 DL 6/25 文档 ID 018520 第 1 版 PM0081 Flash 接口 1.3 Flash Flash 具有以下主要特性: ● 高达 1 MB 容量 ● 128 位宽数据读取 ● 字节、半字、字和双字数据写入 ● 扇区擦除与批量擦除 ● 存储器构成 Flash 结构如下: — 主存储器块,含 4 个 16 KB 扇区、1 个 64 KB 扇区 和 7 个 128 KB 扇区。 — 系统存储器,器件在系统存储器自举模式下从该存储器自举。 此区域为意法半导体预留,其中包含自举程序,用以通过以下接口之一对 Flash 进 行重新编程:USART1、USART3、CAN2、USB OTG FS 设备模式(DFU:设备 固件升级)。自举程序由 ST 在器件制造期间编写,用于防止误写 / 误擦除操作。 — 512 OTP(一次性可编程)字节,用于存储用户数据。 OTP 区域包含 16 个附加字节,用于锁定相应的 OTP 数据块。 — 选项字节:读写保护、BOR 级别、软件 / 硬件看门狗以及器件在待机或停机模式下 的复位。 ● 低功耗模式(有关详细信息,请参见参考手册的“电源控制 (PWR)”部分) 表 1. Flash 模块构成 块 名称 主存储器 扇区 0 扇区 1 扇区 2 扇区 3 扇区 4 扇区 5 扇区 6 . . . 扇区 11 系统存储器 OTP 区域 选项字节 块基址 0x0800 0000 - 0x0800 3FFF 0x0800 4000 - 0x0800 7FFF 0x0800 8000 - 0x0800 BFFF 0x0800 C000 - 0x0800 FFFF 0x0801 0000 - 0x0801 FFFF 0x0802 0000 - 0x0803 FFFF 0x0804 0000 - 0x0805 FFFF . . . 0x080E 0000 - 0x080F FFFF 0x1FFF 0000 - 0x1FFF 77FF 0x1FFF 7800 - 0x1FFF 7A0F 0x1FFF C000 - 0x1FFF C00F 大小 16 KB 16 KB 16 KB 16 KB 64 KB 128 KB 128 KB . . . 128 KB 30 KB 528 KB 16 KB 文档 ID 018520 第 1 版 7/25 24 Flash 接口 PM0081 1.4 读接口 1.4.1 CPU 时钟频率与 Flash 读取时间之间的关系 注: 为了准确读取 Flash 数据,必须根据 CPU 时钟 (HCLK) 频率和器件电源电压在 Flash 存取控 制寄存器 (FLASH_ACR) 中正确地编程等待周期数 (LATENCY)。表 2 所示为等待周期与 CPU 时钟频率之间的对应关系。 VOS = ‘0’ 时,fHCLK 最大值 = 144 MHz。 表 2. CPU 时钟 (HCLK) 频率对应的等待周期数 (VOS = ‘1’) 等待周期 (WS) (LATENCY) 电压范围 2.7 V - 3.6 V HCLK (MHz) 电压范围 2.4 V - 2.7 V 电压范围 2.1 V - 2.4 V 电压范围 1.8 V - 2.1 V(1) 0 WS(1 个 CPU 周期) 0 1, 1->2, 0->2) 时,不会执行批量擦除。 ● 级别 2:禁止调试 / 芯片读保护 将 0xCC 写入 RDP 选项字节时,即激活读保护级别 2。此时,由级别 1 提供的所有保 护均生效,从 SRAM 或系统存储器自举时将禁止系统存储器和所有调试功能(CPU JTAG 调试和单线调试),并且用户选项不能再更改。 存储器读保护级别 2 是不可撤消的操作。激活级别 2 后,保护级别不能再降回级别 0 或 级别 1。 激活级别 2 后,将永久性禁止 JTAG 端口(相当于 JTAG 熔丝)。这样,将无法执行边界扫 描。意法半导体无法对设为保护级别 2 的缺陷部件进行分析。 图 3 所示为 RDP 级别切换的过程。 图 3. RDP 级别 5'3 $$K੠ &&K ݊ᅗ䗝乍Ꮖׂᬍ ‫ݭ‬䗝乍ࣙᣀ 5'3 &&K 㑻߿ 5'3 &&K ‫ݭ‬䗝乍˄5'3㑻߿ᦤछ˅ࣙᣀ ᪺䰸䗝乍 ᮄⱘ㓪⿟䗝乍 ‫ݭ‬䗝乍˄5'3㑻߿䰡Ԣ˅ࣙᣀ ᡍ䞣᪺䰸 ᪺䰸䗝乍 ᮄⱘ㓪⿟䗝乍 㑻߿ 5'3 $$K 5'3 &&K 咬䅸ؐ ‫ݭ‬䗝乍ࣙᣀ 5'3 &&K  $$K ‫ݭ‬䗝乍ࣙᣀ 5'3 $$K ‫ݭ‬䗝乍ࣙᣀ 5'3 &&K 㑻߿ 5'3 $$K 5'3 $$K ݊ᅗ䗝乍Ꮖׂᬍ ‫ݭ‬䗝乍˄5'3㑻߿Ⳍৠ˅ࣙᣀ ᪺䰸䗝乍 ᮄⱘ㓪⿟䗝乍 DL 1.6.4 注: 写保护 Flash 中的用户扇区(0 到 11)具备写保护功能,可防止因程序计数器 (PC) 跑飞而发生意 外的写操作。当扇区 i 中的非写保护位 (nWRPi, 0 ≤ i ≤ 11) 为低电平时,无法对扇区 i 执行擦 除或编程操作。因此,如果某个扇区处于写保护状态,则无法执行批量擦除。 如果尝试对 Flash 中处于写保护状态的区域执行擦除/编程操作(由写保护位保护的扇区、锁 定的 OTP 区域或永远不能执行写操作的 Flash 区域,例如 ICP),则 FLASH_SR 寄存器中 的写保护错误标志位 (WRPERR) 将置 1。 选择存储器读保护级别(RDP 级别 = 1)后,如果已连接 CPU 调试功能(JTAG 调试或单线 调试)或者正在从 RAM 执行自举代码,则即使 nWRPi = 1,也无法对 Flash 扇区 i 执行编程 或擦除操作。 16/25 文档 ID 018520 第 1 版 PM0081 Flash 接口 1.7 一次性可编程字节 表 6 所示为 OTP 区域中一次性可编程 (OTP) 部分的构成。 表 6. 块 0 1 . . . 15 锁定块 OTP 区域构成 [128:96] [95:64] [63:32] OTP0 OTP0 OTP1 OTP0 OTP0 OTP1 OTP0 OTP0 OTP1 OTP1 OTP1 OTP1 OTP15 OTP15 . . . OTP15 OTP15 OTP15 OTP15 LOCKB15 ... LOCKB11 ... LOCKB12 LOCKB8 LOCKB7 ... LOCKB4 [31:0] OTP0 OTP0 OTP1 OTP1 OTP15 OTP15 LOCKB3 ... LOCKB0 地址字节 0 0x1FFF 7800 0x1FFF 7810 0x1FFF 7820 0x1FFF 7830 . . . 0x1FFF 79E0 0x1FFF 79F0 0x1FFF 7A00 OTP 区域划分为 16 个 32 字节的 OTP 数据块和 1 个 16 字节的 OTP 锁定块。OTP 数据块 和锁定块均无法擦除。锁定块中包含 16 字节的 LOCKBi (0 ≤ i ≤ 15),用于锁定相应的 OTP 数据块(块 0 到 15)。每个 OTP 数据块均可编程,除非相应的 OTP 锁定字节编程为值 0x00。锁定字节的值只能是 0x00 和 0xFF,否则这些 OTP 字节无法正确使用。 文档 ID 018520 第 1 版 17/25 24 Flash 接口 PM0081 1.8 1.8.1 Flash 接口寄存器 Flash 访问控制寄存器 (FLASH_ACR) Flash access control register Flash 访问控制寄存器用于使能/禁止加速功能,并且可根据 CPU 频率控制 Flash 访问时间。 地址偏移:0x00 复位值:0x0000 0000 访问:无等待周期,按字、半字和字节访问 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 Reserved 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Reserved DCRST ICRST DCEN ICEN PRFTEN rw w rw rw rw Reserved LATENCY rw rw rw 位 31:11 保留,必须保持清零。 位 12 DCRST:数据缓存复位 (Data cache reset) 0:数据缓存不复位 1:数据缓存复位 只有在禁止数据缓存时才能在该位中写入值。 位 11 ICRST:指令缓存复位 (Instruction cache reset) 0:指令缓存不复位 1:指令缓存复位 只有在禁止指令缓存时才能在该位中写入值。 位 10 DCEN:数据缓存使能 (Data cache enable) 0:禁止数据缓存 1:使能数据缓存 位 9 ICEN:指令缓存使能 (Instruction cache enable) 0:禁止指令缓存 1:使能指令缓存 位 8 PRFTEN:预取使能 (Prefetch enable) 0:禁止预取 1:使能预取 位 7:3 保留,必须保持清零。 位 2:0 LATENCY:延迟 (Latency) 这些位表示 CPU 时钟周期与 Flash 访问时间之比。 000:零等待周期 001:一个等待周期 010:两个等待周期 011:三个等待周期 100:四个等待周期 101:五个等待周期 110:六个等待周期 111:七个等待周期 18/25 文档 ID 018520 第 1 版 PM0081 Flash 接口 1.8.2 Flash 密钥寄存器 (FLASH_KEYR) Flash key register 借助 Flash 密钥寄存器,可允许访问 Flash 控制寄存器,进而允许执行编程和擦除操作。 地址偏移:0x04 复位值:0x0000 0000 访问:无等待周期,按字访问 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 KEY[31:16] w w w w w w w w w w w w w w w w 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 KEY[15:0] w w w w w w w w w w w w w w w w 位 31:0 FKEYR:FPEC 密钥 (FPEC key) 要将 FLASH_CR 寄存器解锁并允许对其执行编程 /擦除操作,必须顺序编程以下值: a) KEY1 = 0x45670123 b) KEY2 = 0xCDEF89AB 1.8.3 Flash 选项字节密钥寄存器 (FLASH_OPTKEYR) Flash option key register 借助 Flash 选项字节密钥寄存器,可允许在用户配置扇区中执行编程和擦除操作。 地址偏移:0x08 复位值:0x0000 0000 访问:无等待周期,按字访问 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 OPTKEYR[31:16] w w w w w w w w w w w w w w w w 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 OPTKEYR[15:0] w w w w w w w w w w w w w w w w 位 31:0 OPTKEYR:选项字节密钥 (Option byte key) 要将 FLASH_OPTCR 寄存器解锁并允许对其编程,必须顺序编程以下值: a) OPTKEY1 = 0x08192A3B b) OPTKEY2 = 0x4C5D6E7F 文档 ID 018520 第 1 版 19/25 24 Flash 接口 PM0081 1.8.4 Flash 状态寄存器 (FLASH_SR) Flash status register Flash 状态寄存器提供正在执行的编程和擦除操作的相关信息。 地址偏移:0x0C 复位值:0x0000 0000 访问:无等待周期,按字、半字和字节访问 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 Reserved BSY r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Reserved PGSERR PGPERR PGAERR WRPERR rc_w1 rc_w1 rc_w1 rc_w1 Reserved OPERR EOP rc_w1 rc_w1 位 31:17 保留,必须保持清零。 位 16 BSY:繁忙 (Busy) 该位指示某个 Flash 操作正在进行。该位在 Flash 操作开始时置 1,在操作结束或出现错误时 清零。 0:当前未执行任何 Flash 操作 1:正在执行 Flash 操作 位 15:8 保留,必须保持清零。 位 7 PGSERR:编程顺序错误 (Programming sequence error) 如果代码在控制寄存器未正确配置的情况下对 Flash 执行写访问,将由硬件为该位置 1。 写入 1 即可将该位清零。 位 6 PGPERR:编程并行位数错误 (Programming parallelism error) 如果在编程期间数据访问类型(字节、半字、字和双字)与配置的并行位数 PSIZE (x8, x16, x32, x64) 不符,将由硬件为该位置 1。 写入 1 即可将该位清零。 位 5 PGAERR:编程对齐错误 (Programming alignment error) 如果要编程的数据不能包含在同一个 128 位 Flash 行中,将由硬件为该位置 1。 写入 1 即可将该位清零。 位 4 WRPERR:写保护错误 (Write protection error) 如果要擦除/ 编程的地址属于 Flash 中处于写保护状态的区域,将由硬件为该位置 1。 写入 1 即可将该位清零。 位 3:2 保留,必须保持清零。 位 1 OPERR:操作错误 (Operation error) 如果检测到 Flash 操作(编程 / 擦除)请求,但由于存在并行位数错误、对齐错误、顺序错误 或写保护错误而无法运行,将由硬件对该位置 1。只有在使能错误中断 (ERRIE = 1) 后,该 位才会置 1。 位 0 EOP:操作结束 (End of operation) 当成功完成一个或多个 Flash 操作(编程 / 擦除)时,由硬件将该位置 1。只有在使能操作结 束中断 (EOPIE = 1) 后,该位才会置 1。 写入 1 即可将该位清零。 20/25 文档 ID 018520 第 1 版 PM0081 Flash 接口 1.8.5 Flash 控制寄存器 (FLASH_CR) Flash control register Flash 控制寄存器用于配置和启动 Flash 操作。 地址偏移:0x10 复位值:0x8000 0000 访问:当前未执行任何 Flash 操作时无等待周期,按字、半字和字节访问。 31 30 LOCK rs 15 14 29 28 27 Reserved 13 12 11 Reserved 26 25 24 23 22 ERRIE EOPIE rw rw 10 9 8 7 6 PSIZE[1:0] Reserv rw rw ed rw 21 20 19 Reserved 5 4 3 SNB[3:0] rw rw rw 18 2 MER rw 17 1 SER rw 16 STRT rs 0 PG rw 位 31 LOCK:锁定 (Lock) 该位只能写入 1。该位置 1 时,表示 FLASH_CR 寄存器已锁定。当检测到解锁序列时,由 硬件将该位清零。 如果解锁操作失败,该位仍保持置 1,直到下一次复位。 位 31:26 保留,必须保持清零。 位 25 ERRIE:错误中断使能 (Error interrupt enable) 当 FLASH_SR 寄存器中的 OPERR 位置 1 后,可通过该位使能中断产生功能。 0:禁止产生错误中断 1:使能产生错误中断 位 24 EOPIE:操作结束中断使能 (End of operation interrupt enable) 当 FLASH_SR 寄存器中的 EOP 位置 1 后,可通过该位使能中断产生功能。 0:禁止产生中断 1:使能产生中断 位 23:17 保留,必须保持清零。 位 16 STRT:启动 (Start) 该位置 1 后可触发擦除操作。该位只能通过软件置 1,并在 BSY 位清零后随之清零。 位 15:10 保留,必须保持清零。 位 9:8 PSIZE:编程大小 (Program size) 这些位用于选择编程并行位数。 00 x8 编程 01 x16 编程 10 x32 编程 11 x64 编程 位 7 保留,必须保持清零。 位 6:3 SNB:扇区编号 (Sector number) 这些位用于选择要擦除的扇区。 0000 扇区 0 0001 扇区 1 ... 1011 扇区 11 不允许使用其它值 文档 ID 018520 第 1 版 21/25 24 Flash 接口 PM0081 位 2 MER:批量擦除 (Mass Erase) 针对所有用户扇区激活擦除操作。 位 1 SER:扇区擦除 (Sector Erase) 激活扇区擦除。 位 0 PG:编程 (Programming) 激活 Flash 编程。 1.8.6 Flash 选项控制寄存器 (FLASH_OPTCR) Flash option control register FLASH_OPTCR 寄存器用于修改用户选项字节。 地址偏移:0x14 复位值:0x0FFF AAED。释放复位时,将 Flash 中的值加载到这些选项位。 访问:当前未执行任何 Flash 操作时无等待周期,按字、半字和字节访问。 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 Reserved nWRP[11:0] rw rw rw rw rw rw rw rw rw rw rw rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 RDP[7:0] nRST_ nRST_ WDG_ STDBY STOP SW Reserv BOR_LEV OPTST OPTLO RT CK ed rw rw rw rw rw rw rw rw rw rw rw rw rw rs rs 位 31:28 保留,必须保持清零。 位 27:16 nWRP:无写保护 (Not write protect) 这些位包含复位后写保护选项字节的值。通过对这些位执行写操作,可将新的写保护值编程 到 Flash。 0:已激活写保护 1:未激活写保护 位 15:8 RDP:读保护 (Read protect) 这些位包含复位后读保护选项字节的值。通过对这些位执行写操作,可将新的读保护值编程 到 Flash。 0xAA:级别 0,未激活读保护 0xCC:级别 2,激活芯片读保护 其它值:级别 1,激活存储器读保护 位 7:5 USER:用户选项字节 (User option bytes) 这些位包含复位后用户选项字节的值。通过对这些位执行写操作,可将新的用户选项字节值 编程到 Flash。 位 7:nRST_STDBY 位 6:nRST_STOP 位 5:WDG_SW 注: 当 WDG 模式从硬件切换到软件或从软件切换到硬件时,需要执行系统复位才能更改 生效。 位 4 保留,必须保持清零。 22/25 文档 ID 018520 第 1 版 PM0081 Flash 接口 位 3:2 BOR_LEV:BOR 复位级别 (BOR reset Level) 这些位包含用来激活/释放复位的供电电压阈值。可通过对这些位执行写操作,来编程新的 BOR 级别。BOR 默认为关闭。当电源电压 (VDD) 降至所选 BOR 级别以下时,将产生器件复位。 00:BOR 级别 3 (VBOR3),复位阈值电压范围为 2.70 V 到 3.60 V 01:BOR 级别 2 (VBOR2),复位阈值电压范围为 2.40 V 到 2.70 V 10:BOR 级别 1 (VBOR1),复位阈值电压范围为 2.10 V 到 2.40 V 11:BOR 关闭 (VBOR0),复位阈值电压范围为 1.80 V 到 2.10 V 注: 有关 BOR 特性的完整详情,请参见器件数据手册中的“电气特性”部分。 位 1 OPTSTRT:启动选项 (Option start) 该位置 1 后可触发用户选项操作。该位只能通过软件置 1,并在 BSY 位清零后随之清零。 位 0 OPTLOCK:锁定选项 (Option lock) 该位只能写入 1。该位置 1 时,表示 FLASH_OPTCR 寄存器已锁定。当检测到解锁序列 时,由硬件将该位清零。 如果解锁操作失败,该位仍保持置 1,直到下一次复位。 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 DCRST 12 ICRST 11 DCEN 10 ICEN 9 PRFTEN 8 7 6 5 4 3 2 1 0 1.8.7 Flash 接口寄存器映射 表 7. 偏移 Flash 寄存器映射与复位值 寄存器 0x00 0x04 0x08 FLASH_ACR Reserved Reserved LATENC Y Reset value 00000 00 0 FLASH_KEY R KEY[31:16] KEY[15:0] Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 FLASH_OPT KEYR OPTKEYR[31:16] OPTKEYR[15:0] Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 BSY 0x0C 0x10 FLASH_SR Reset value FLASH_CR Reset value 1 LOCK EOPIE Reserved Reserved 0 Reserved STRT Reserved Rese rved 0 0000 00 Reserved Reserved PSIZ E[1:0 ] SNB[3:0] 0 00 0000 00 PGSERR PGPERR PGAERR WRPERR OPERR EOP MER SER PG BOR_LEV OPTSTRT OPTLOCK nRST_STDBY nRST_STOP WDG_SW Reserved 0x14 FLASH_OPT CR Reserved nWRP[11:0] RDP[7:0] Reset value 11111111111110101010111 110 1 文档 ID 018520 第 1 版 23/25 24 版本历史 2 版本历史 表 8. 文档版本历史 日期 版本 变更 2011 年 09 月 15 日 1 初始版本。 PM0081 24/25 文档 ID 018520 第 1 版 PM0081 请仔细阅读: 中文翻译仅为方便阅读之目的。该翻译也许不是对本文档最新版本的翻译,如有任何不同,以最新版本的英文原版文档为准。 本文档中信息的提供仅与 ST 产品有关。意法半导体公司及其子公司 (“ST”)保留随时对本文档及本文所述产品与服务进行变更、更正、修改或改进 的权利,恕不另行通知。 所有 ST 产品均根据 ST 的销售条款出售。 买方自行负责对本文所述 ST 产品和服务的选择和使用, ST 概不承担与选择或使用本文所述 ST 产品和服务相关的任何责任。 无论之前是否有过任何形式的表示,本文档不以任何方式对任何知识产权进行任何明示或默示的授权或许可。如果本文档任何部分涉及任何第三方产品 或服务,不应被视为 ST 授权使用此类第三方产品或服务,或许可其中的任何知识产权,或者被视为涉及以任何方式使用任何此类第三方产品或服务或 其中任何知识产权的保证。 除非在 ST 的销售条款中另有说明,否则,ST 对 ST 产品的使用和 / 或销售不做任何明示或默示的保证,包括但不限于有关适销性、适合特定用途(及 其依据任何司法管辖区的法律的对应情况),或侵犯任何专利、版权或其他知识产权的默示保证。 意法半导体的产品不得应用于武器。此外,意法半导体产品也不是为下列用途而设计并不得应用于下列用途:(A)对安全性有特别要求的应用,例如, 生命支持、主动植入设备或对产品功能安全有要求的系统; (B)航空应用; (C)汽车应用或汽车环境,且 / 或 (D)航天应用或航天环境。如果意 法半导体产品不是为前述应用设计的,而采购商擅自将其用于前述应用,即使采购商向意法半导体发出了书面通知,采购商仍将独自承担因此而导致的 任何风险,意法半导体的产品设计规格明确指定的汽车、汽车安全或医疗工业领域专用产品除外。根据相关政府主管部门的规定,ESCC、QML 或 JAN 正式认证产品适用于航天应用。 经销的 ST 产品如有不同于本文档中提出的声明和 / 或技术特点的规定,将立即导致 ST 针对本文所述 ST 产品或服务授予的任何保证失效,并且不应以 任何形式造成或扩大 ST 的任何责任。 ST 和 ST 徽标是 ST 在各个国家或地区的商标或注册商标。 本文档中的信息取代之前提供的所有信息。 ST 徽标是意法半导体公司的注册商标。其他所有名称是其各自所有者的财产。 © 2013 STMicroelectronics 保留所有权利 意法半导体集团公司 澳大利亚 - 比利时 - 巴西 - 加拿大 - 中国 - 捷克共和国 - 芬兰 - 法国 - 德国 - 中国香港 - 印度 - 以色列 - 意大利 - 日本 - 马来西亚 - 马耳他 - 摩洛哥 — 菲律宾 — 新加坡 - 西班牙 - 瑞典 - 瑞士 - 英国 - 美国 www.st.com 文档 ID 018520 第 1 版 25/25 25

    Top_arrow
    回到顶部
    EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱bbs_service@eeworld.com.cn 或通过站内短信息或QQ:273568022联系管理员 高进,我们会尽快处理。