首页 供应 求购 产品 公司 登陆

华大电子MCU CIU32L061x8存储器二

  • 发布时间:2023-03-06 14:25:12
    报价:面议
    地址:辽宁,沈阳,辽宁省沈阳市铁西区建工西路5号财富星座B座
    公司:沈阳芯硕科技有限公司
    手机:13802923731
    电话:024-85718900
    用户等级:普通会员 已认证

    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 寄存器的写保护锁定状态。

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

    提醒:联系时请说明是从志趣网看到的。

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

©志趣网