华大电子MCU CIU32L061x8存储器二

  • 发布时间:2023-03-06 14:25:12,加入时间:2021年07月05日(距今1032天)
  • 地址:中国»辽宁»沈阳:辽宁省沈阳市铁西区建工西路5号财富星座B座
  • 公司:沈阳芯硕科技有限公司, 用户等级:普通会员 已认证
  • 联系:宣女士,手机:13802923731 电话:024-85718900 QQ:3540893315

5.3.5 User flash 区擦除操作

User flash 区支持以下擦除方式:

l 页擦除(512 字节)

l 块擦除(16KB)

l 批量擦除(128KB)

Flash 存储器在执行擦除操作时,不能同时进行读取操作,需要等待存储器完成 擦除操作后,读取操作才能正常进行,擦除完成后的 Flash 数据为全 1。

5.3.5.1 User flash 区页擦除步骤

对 User flash 区进行页擦除操作(512 字节),可遵循以下步骤:

1) 检查 Flash 状态寄存器(FLASH_SR中的 BSY 标志,以确认当前没有正在执行的 Flash 操作;

2) 检查 FLASH_SR 寄存器,确认错误标志均已清除;

3) 解锁 Flash 控制寄存器(FLASH_CR,使 LOCK 位清 0;(详见:Flash 控 制寄存器解锁

4) 配置 FLASH_CR寄存器中的 ER_MODE[1:0]位域为 01,进入页擦除模式;

5) 配置 FLASH_CR 寄存器中的 PNB[7:0]位域,选择待擦除区域的页号;

6) 配置 FLASH_CR 寄存器中的 ERASE 位置 1,启动 Flash 擦除,同时 BSY 标志将自动置 1;

7) 查询并等待 BSY 标志清 0,表明擦除操作已完成,此时 ERASE 位也将自 动清 0;

8) 如果要对多个页执行擦除操作,可重复执行步骤 5 到 7;

9) 配置 FLASH_CR 寄存器中的 ER_MODE[1:0]位域为 00,退出擦除模式;

10) 配置 FLASH_CR 寄存器中的 LOCK 位置 1,恢复 FLASH_CR 寄存器的写保护锁定状态。

5.3.5.2 User flash 区块擦除步骤

对 User flash 区进行块擦除操作(16KB),可遵循以下步骤:

1) 检查 Flash 状态寄存器(FLASH_SR中的 BSY 标志,以确认当前没有正在执行的 Flash 操作;

2) 检查 FLASH_SR 寄存器,确认错误标志均已清除;

3) 解锁 Flash 控制寄存器(FLASH_CR,使 LOCK 位清 0;(详见:Flash 控制寄存器解锁);

4) 配置 FLASH_CR寄存器中的 ER_MODE[1:0]位域为 10,进入块擦除模式;

5) 配置 FLASH_CR 寄存器中的 PNB[2:0]位域,选择待擦除区域的块号;

6) 配置 FLASH_CR 寄存器中的 ERASE 位置 1,启动 Flash 擦除,同时 BSY 标志将自动置 1;7) 查询并等待 BSY 标志清 0,表明擦除操作已完成,此时 ERASE 位也将自动清 0;

8) 如果要对多个块执行擦除,可重复执行步骤 5 到 7;

9) 配置 FLASH_CR 寄存器中的 ER_MODE[1:0]位域为 00,退出擦除模式;

10) 配置 FLASH_CR 寄存器中的 LOCK 位置 1,恢复 FLASH_CR 寄存器的写保护锁定状态。

5.3.5.3 User flash 区批量擦除步骤

批量擦除用于擦除整个 User flash 区域(128KB),可遵循以下步骤:

1) 检查 Flash 状态寄存器(FLASH_SR中的 BSY 标志,以确认当前没有正在执行的 Flash 操作;

2) 检查 FLASH_SR 寄存器,确认错误标志均已清除;

3) 解锁 Flash 控制寄存器(FLASH_CR,使 LOCK 位清 0(详见:Flash 控制寄存器解锁);

4) 配置 FLASH_CR 寄存器中的 ER_MODE[1:0]位域为 11,进入批量擦除模式;

5) 配置 FLASH_CR 寄存器中的 ERASE 位置 1,启动 Flash 擦除,同时 BSY标志将自动置 1;

6) 查询并等待 BSY 标志清 0,表明擦除操作已完成,此时 ERASE 位也将自动清 0;

7) 配置 FLASH_CR 寄存器中的 ER_MODE[1:0]位域为 00,退出擦除模式;

8) 配置 FLASH_CR 寄存器中的 LOCK 位置 1,恢复 FLASH_CR 寄存器的写保护锁定状态。

5.3.5.4 User flash 区擦除错误

在对 User flash 区执行擦除操作的过程中,可能会出现以下错误标志:

l Flash 操作序列错误标志 PESERR:

- 在 ERASE 位被置 1 的同时,如果 ER_MODE[1:0] 位域为 00,则不会

启动擦除操作,错误标志 PESERR 将置 1;

- 在 ERASE 位被置 1 的同时,如果待擦除的区域(PNB[7:0])超出了

Flash 的有效空间,则不会启动擦除操作,错误标志 PESERR 将置 1;

- 当有错误标志(PESERR、PROGERR、SIZERR、PGAERR、WRPERR)

未被清除时,配置 ERASE 位置 1,则不会启动擦除操作,错误标志PESERR 将置 1;

- ERASE、OPTSTRT、OBL_LAUNCH 中任意 2 个以上控制位同时置 1,

则不会启动对应的操作,错误标志 PESERR 将置 1。

l 写保护错误标志 WRPERR:

- 如果要擦除的区域受到安全保护机制的影响,包含有受保护的区域,

则不会启动擦除操作,FLASH_SR 寄存器中的 WRPERR 标志将置 1。

5.3.6 User flash 区编程操作

对 Flash 存储器执行编程操作,每次能写入的数据长度固定为 32bits(字),不支持其他长度的数据写入。

FLASH 存储器在执行编程操作时,不能同时进行读取操作,需要等待存储器完成编程操作后,读取操作才能正常进行。

与 Flash 擦除操作类似,编程操作也会受到安全保护机制的影响:

5.3.6.1 User flash 区编程操作步骤

对 User flash 区进行编程操作,可遵循以下步骤:

1) 检查 Flash 状态寄存器(FLASH_SR中的 BSY 标志,以确认当前没有正在执行的 Flash 操作;

2) 检查 FLASH_SR 寄存器,确认错误标志均已清除;

3) 解锁 Flash 控制寄存器(FLASH_CR,使 LOCK 位清 0(详见:Flash 控制寄存器解锁);

4) 配置 FLASH_CR 寄存器中的 PG_MODE 为 1,进入 Flash 编程模式;

5) 向 Flash 目标地址写入 32bits 数据,写入后 BSY 标志将自动置 1;

6) 查询并等待 BSY 标志清 0,表明编程操作已完成;7) 如果要对多个地址进行编程,可重复步骤 5 和 6;

8) 配置 FLASH_CR 寄存器中的 PG_MODE 位为 0,退出 Flash 编程模式;

9) 配置 FLASH_CR 寄存器中的 LOCK 位置 1,恢复 FLASH_CR 寄存器的写保护锁定状态。

沈阳芯硕科技有限公司是华大电子专业代理商,有技术问题可咨询芯虎论坛.

联系我时请说明来自志趣网,谢谢!

免责申明:志趣网所展示的信息由用户自行提供,其真实性、合法性、准确性由信息发布人负责。使用本网站的所有用户须接受并遵守法律法规。志趣网不提供任何保证,并不承担任何法律责任。 志趣网建议您交易小心谨慎。