没有合适的资源?快使用搜索试试~ 我知道了~
STM32F4系列芯片中文学习资料
需积分: 25 59 下载量 34 浏览量
2018-03-07
09:01:17
上传
评论 2
收藏 1.37MB DOCX 举报
温馨提示
试读
30页
STM32F40,STM32F41,STM32F42,STM32F43系列芯片详细学习笔记,初学者很有用。
资源推荐
资源详情
资源评论
2 存储器和总线架构
64 KB CCM(内核耦合存储器)数据 RAM 不属于总线矩阵,只能通过 CPU 对其进行访问。
对 APB 寄存器执行 16 位或 8 位访问时,该访问将转换为 32 位访问:总线桥将 16 位或 8 位
数据复制后提供给 32 位向量。
存储器组织结构
程序存储器、数据存储器、寄存器和 I/O 端口排列在同一个顺序的 4 GB 地址空间内。
各字节按小端格式在存储器中编码。字中编号最低的字节被视为该字的最低有效字节,而编号
最高的字节被视为最高有效字节。
嵌入式 SRAM
STM32F405xx/07xx 和 STM32F415xx/17xx 带有 4 KB 备份 SRAM(请参见第 5.1.2 节:电
池备份域)和 192 KB 系统 SRAM
系统 SRAM 分为三个块:
● 映射在地址 0x2000 0000 的 112 KB 和 16 KB 块
● 映 射 在 地 址 0x2002 0000 的 64 KB 块 , ( 适 用 于 STM32F42xxx 和
STM32F43xxx)。。AHB 主总线支持并发 SRAM 访问(通过以太网或 USB OTG HS):例
如,当 CPU 对 112 KB 或 64 KB SRAM 进行读/写操作时,以太网 MAC 可以同时对 16 KB
SRAM 进行读/写操作。
● 在地址 0x1000 0000 映射的 64 KB 块,只能供 CPU 通过数据总线访问。
位段
Cortex™-M4F 存储器映射包括两个位段区域。这些区域将存储器别名区域中的每个字映射 到
存储器位段区域中的相应位。在别名区域写入字时,相当于对位段区域的目标位执行读-修改-
写操作。
bit_word_addr = bit_band_base + (byte_offset x 32) + (bit_number × 4)
自举配置
BOOT0 为专用引脚,而 BOOT1 则与 GPIO 引脚共用。一旦完成对 BOOT1 的采样,相应
GPIO 引脚即进入空闲状态,可用于其它用途。
器件退出待机模式时,还会对 BOOT 引脚重新采样。因此,当器件处于待机模式时,这些
引 脚必须保持所需的自举模式配置。这样的启动延迟结束后, CPU 将从地址 0x0000 0000
获 取栈顶值,然后从始于 0x0000 0004 的自举存储器开始执行代码。
注意:如果器件从 SRAM 自举,在应用程序初始化代码中,需要使用 NVIC 异常及中断向量
表和偏 移寄存器来重新分配 SRAM 中的向量表。
嵌入式自举程序模式用于通过以下串行接口重新编程 Flash:
● USART1(PA9/PA10)
● USART3(PB10/11 和 PC10/11)
● CAN2(PB5/13)
● USB OTG FS(PA11/12) 从设备模式(DFU:器件固件升级)。
嵌入式自举程序代码位于系统存储器中,在芯片生产期间由 ST 编程。
物理重映射
选择自举引脚后,应用程序软件可以将某些存储器设定为从代码空间进行访问(这样,可
通过 ICode 总线而非系统总线执行代码)。这样的修改通过在 SYSCFG 控制器中编程第
8.2.1 节: SYSCFG 存储器重映射寄存器 (SYSCFG_MEMRMP) 来实现。
3 嵌入式 Flash 接口
主要特性
● Flash 读操作
● Flash 编程/擦除操作
● 读/写保护
● I-Code 上的预取操作
● I-Code 上的 64 个缓存(128 位宽)
● D-Code 上的 8 个缓存(128 位宽)
● 对于 STM32F40x 和 STM32F41x,容量高达 1 MB;对于 STM32F42x 和 STM32F43x,
容量高达 2 MB
● 128 位宽数据读取
● 字节、半字、字和双字数据写入
● 扇区擦除与全部擦除
● 存储器组织结构
Flash 结构如下:
— 主存储器块,分为 4 个 16 KB 扇区、1 个 64 KB 扇区和 7 个 128 KB 扇区
— 系统存储器,器件在系统存储器自举模式下从该存储器启动
— 512 字节 OTP(一次性可编程),用于存储用户数据
OTP 区域还有 16 个额外字节,用于锁定对应的 OTP 数据块。
— 选项字节,用于配置读写保护、BOR 级别、软件/硬件看门狗以及器件处于待机或
停止模式下的复位。
● 低功耗模式(有关详细信息,请参见参考手册的“电源控制 (PWR)”部分)
自适应实时存储器加速器 (ART Accelerator™)
Flash 控制寄存器解锁
复位后,Flash 控制寄存器 (FLASH_CR) 不允许执行写操作,以防因电气干扰等原因出现对
Flash 的意外操作。此寄存器的解锁顺序如下:
1.在 Flash 密钥寄存器 (FLASH_KEYR) 中写入 KEY1 = 0x45670123
2. 在 Flash 密钥寄存器 (FLASH_KEYR) 中写入 KEY2 = 0xCDEF89AB
如果顺序出现错误,将返回总线错误并锁定 FLASH_CR 寄存器,直到下一次复位。
也可通过软件将 FLASH_CR 寄存器中的 LOCK 位置为 1 来锁定 FLASH_CR 寄存器。
擦除
Flash 擦除操作只能针对扇区或整个 Flash(批量擦除)执行。擦除时间取决于 PSIZE 编程
值。
通过 FLASH_CR 寄存器中的 PSIZE 字段配置并行位数。并行位数表示每次对 Flash 进行写 操
作时将编程的字节数。PSIZE 受限于电源电压以及是否使用外部 VPP 电源。
编程
不允许针对 Flash 执行跨越 128 位行界限的数据编程操作。
写访问宽度(字节、半字、字或双字)必须与所选并行位数类型(x8、x16、x32 或 x64)
相 符。
选项字节
OTP
OTP 区域划分为 16 个 32 字节的 OTP 数据块和 1 个 16 字节的 OTP 锁定块。OTP 数据块 和
锁定块均无法擦除。锁定块中包含 16 字节的 LOCKBi (0 i 15),用于锁定相应的 OTP 数据
块(块 0 到 15)。每个 OTP 数据块均可编程,除非相应的 OTP 锁定字节编程为 0x00。锁
定字节的值只能是 0x00 和 0xFF,否则这些 OTP 字节无法正确使用。
4 CRC 计算单元
CRC 主要特性
● 使用 CRC-32 (以太网)多项式:0x4C11DB7
— X32 + X26 + X23 + X22 + X16 + X12 + X11 + X10 +X8 + X7 + X5 + X4 + X2+ X +1
● 单输入/输出 32 位数据寄存器
● CRC 计算在 4 个 AHB 时钟周期 (HCLK) 内完成
● 8 位通用寄存器 (可用于临时存储)
剩余29页未读,继续阅读
资源评论
ljzhello2
- 粉丝: 0
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功