华大电子MCU CIU32L061x8存储器(Flash)一

发布者:DelightWish123最新更新时间:2024-08-13 来源: cnblogs关键字:华大电子  MCU  存储器  Flash 手机看文章 扫描二维码
随时随地手机看文章

5 、Flash 存储器Flash

5.1 简介

Flash 存储器连接在 AHB 总线上,由 Flash 控制器统一管理,可对存储器执行取指、读取、编程和擦除操作,并具有安全访问机制和读写保护等功能。

5.2 Flash 主要特性

l 高达 128 KB 的用户存储空间

- 块大小:16 KB

- 页大小:512 字节

l 32-bits 位宽读取/写入

l 支持页擦除、块擦除、批量擦除

l 可配置 3 种读出保护等级(RDP)

l 2 块可配置的代码读出保护区域(PCROP)

l 2 块可配置的写入保护区域(WRP)

l 可配置大小的用户安全存储区域

5.3 Flash 功能描述

5.3.1 Flash 存储器组成

Flash 存储器按 32-bits 位宽执行读写访问,可存储指令和数据。

Flash 存储器的组成如下:

l User flash 区:用于存储用户程序和数据,存储空间为 128KB,分成 8 个

块(Block),每个块包含 32 个页(Page),每页 512 字节;

l System memory 区:用于存储 Bootloader 和算法 API,存储空间为14KB;

l Option bytes 区:用于存储外设和存储器保护配置的选项字节;

l Engineer 区:用于存储 UID、TS/BGR 校准值;

l OTP 区:一次性可编程区域,共 512 字节。

 

5.3.2 Flash 读取访问等待周期

Flash 存储器连接在 AHB 总线上,读取 Flash 时使用 HCLK 时钟。当 HCLK 的 时钟频率超出 Flash 存储器的工作频率时,就会造成数据读取错误,此时需要插入等待周期。 Flash 访问控制寄存器(FLASH_ACR)中的 LATENCY[1:0]位域,用于配置 Flash 读取访问的等待周期,HCLK 时钟频率与 Flash 读取访问等待周期的对应关系见 下表。

为保证 Flash 读取访问不出现异常或错误,当要改变 HCLK 的时钟频率时,必须按照特定步骤进行配置。

l 提高 HCLK 频率的配置步骤:

1) 通过配置 FLASH_ACR 寄存器中的 LATENCY[1:0]位域,增大 Flash

读取访问的等待周期;

2) 读取 LATENCY[1:0]位域,检查等待周期已配置成功;

3) 提高 HCLK 频率,可通过配置 RCC 时钟配置寄存器(RCC_CFG

中的SYSW[2:0]位域,切换更高频率的时钟源,或通过配置HPRE[2:0]

位域,减小系统时钟的分频值;

4) 配置 SYSW[2:0]位域后,必须对 RCC_CFG 寄存器中的 SYSWS[2:0]

位域进行检查,确认系统时钟已切换完成。

l 降低 HCLK 频率的配置步骤:

1) 降低 HCLK 频率,可通过配置 RCC 时钟配置寄存器(RCC_CFG

中的SYSW[2:0]位域,切换更低频率的时钟源,或通过配置HPRE[2:0]

位域,增大系统时钟的分频值;

2) 配置 SYSW[2:0]位域后,必须对 RCC_CFG 寄存器中的 SYSWS[2:0]

位域进行检查,确认系统时钟已切换完成;

3) 通过 FLASH_ACR 寄存器中的 LATENCY[1:0]位域,减小 Flash 读取

访问的等待周期;

4) 读取 LATENCY[1:0]位域,检查等待周期已配置成功。

5.3.3 Flash 解锁

为防止 Flash 被意外修改,增加了保护措施,必须向特定寄存器写入密钥,才能解锁相关功能的配置权限。

5.3.3.1 Flash 控制寄存器解锁

复位后,Flash 控制寄存器(FLASH_CR将处于写保护锁定状态。要配置

FLASH_CR 寄存器,需首先进行解锁操作。

FLASH_CR 寄存器的解锁操作,必须严格按照以下步骤顺序执行:

1) 向 FLASH_CRKEY 寄存器写入密钥 1:0xE57A 1A85;

2) 向 FLASH_CRKEY 寄存器写入密钥 2:0x7C6E 8391;

3) 检查 FLASH_CR 寄存器中的 LOCK 位,当该位清 0 时,表明 FLASH_CR 寄存器已解锁。解锁完成后,才能对 FLASH_CR 寄存器进行配置。

注意:FLASH_CR 寄存器中与选项字节相关的控制位(OBL_LAUNCH 和 OPTSTRT), 必须在 Flash 选项字节解锁后才能进行配置。 密钥必须严格按照顺序写入,如果出现以下情况,将产生总线错误同时触发 HardFault 中断,直到再次复位后,才能重新对 FLASH_CR 寄存器进行解锁:

l 向 FLASH_CRKEY 寄存器写入错误的密钥值;

l 解锁顺序错误,先向 FLASH_CRKEY 寄存器写入密钥 2:0x7C6E 8391;

l 解锁后继续向 FLASH_CRKEY 寄存器写入任意值(包括密钥)。

将 FLASH_CR 寄存器中的 LOCK 位重新置 1,能恢复 FLASH_CR 寄存器的写 保护锁定状态。通过复位,也能使 FLASH_CR 寄存器恢复成写保护锁定状态。

注意:当 FLASH_SR 寄存器中的 BSY 位为 时,对 FLASH_CR 寄存器的写入将无效,FLASH_SR 寄存器中的 PESERR 标志将置 1Flash 当前操作将继续正常执行。

5.3.3.2 Flash 选项字节解锁

复位后,Flash 选项字节处于写保护锁定状态,所有的选项字节加载寄存器、

FLASH_CR 寄存器中的 OBL_LAUNCH 位和 OPTSTRT 位,都会被写保护。要对选项字节进行更新,就先要进行解锁操作。

Flash 选项字节的解锁操作,必须严格按照以下步骤顺序执行:

1) 先解锁 Flash 控制寄存器 FLASH_CR(详见: Flash 控制寄存器解锁);

2) 向 FLASH_OPTKEY 寄存器写入密钥 1:0x6A89 4D7B;

3) 向 FLASH_OPTKEY 寄存器写入密钥 2:0x7C31 1F5A;

4) 检查 FLASH_CR 寄存器中的 OPTLOCK 位,当该位清 0 时,表明 Flash选项字节已解锁。解锁完成后,才能对选项字节加载寄存器及其控制位(OBL_LAUNCH 和 OPTSTRT)进行配置。

密钥必须严格按照顺序写入,如果出现以下情况,将产生总线错误同时触发

HardFault 中断,直到再次复位后,才能重新对 Flash 选项字节进行解锁:

l 向 FLASH_OPTKEY 寄存器写入错误的密钥值;

l 解锁顺序错误,先向 FLASH_OPTKEY 寄存器写入密钥 2:0x7C31 1F5A;

l 解锁后继续向 FLASH_OPTKEY 寄存器写入任意值(包括密钥);

l 在对 FLASH_CR 寄存器解锁前,向 FLASH_OPTKEY 寄存器写入任意值

(包括密钥)。 将 FLASH_CR 寄存器中的 OPTLOCK 位重新置 1,能恢复 Flash 选项字节的写保护锁定状态。通过复位,也能使 Flash 选项字节恢复成写保护锁定状态。当 FLASH_CR 寄存器恢复成写保护锁定状态时(LOCK 位置 1),Flash 选项字节也会被恢复成写保护锁定状态,OPTLOCK 位将自动置 1。

5.3.3.3 Flash 掉电控制位解锁

复位后,Flash 访问控制寄存器(FLASH_ACR中的 PDEN 位将处于写保护锁定状态,该位用于控制 Flash 的掉电。要配置 PDEN 位,就要先进行解锁操作。PDEN 位的解锁操作,必须严格按照以下步骤顺序执行:

1) 先解锁 FLASH 控制寄存器 FLASH_CR(详见:Flash 控制寄存器解锁);

2) 向 FLASH_PDKEY 寄存器写入密钥 1:0x57D9 3AB6;

3) 向 FLASH_PDKEY 寄存器写入密钥 2:0x9A2D 827C;

4) 检查 FLASH_CR 寄存器中的 PDLOCK 位,当该位清 0 时,表明 PDEN 位已解锁。解锁完成后,可对 PDEN 位进行配置。密钥必须严格按照顺序写入,如果出现以下情况,将产生总线错误同时触发 HardFault 中断,直到再次复位后,才能重新对 PDEN 位进行解锁操作:

l 向 FLASH_PDKEY 寄存器写入错误的密钥值;

l 解锁顺序错误,先向 FLASH_PDKEY 寄存器写入密钥 2:0x9A2D 827C;

l 解锁后继续向 FLASH_PDKEY 寄存器写入任意值(包括密钥);

l 在对 FLASH_CR 寄存器解锁前,向 FLASH_PDKEY 寄存器写入任意值(包括密钥)。 将 FLASH_CR 寄存器中的 PDLOCK 位重新置 1,能恢复 PDEN 位的写保护锁定状态。另外通过复位,也能使 PDEN 位恢复成写保护锁定状态。当 FLASH_CR 寄存器恢复成写保护锁定状态时(LOCK 位置 1),PDEN 位也会被恢复成写保护锁定状态,PDLOCK 位将自动置 1。

5.3.4 Flash 功耗管理

为进一步降低系统功耗,当程序仅在 SRAM 中运行时,通过将 Flash 访问控制 寄存器(FLASH_ACR中的 PDEN 位置 1,能使 Flash 进入 Power Down 状态。在配置 PDEN 位前,要先进行解锁操作,解锁步骤详见:Flash 掉电控制位解锁。Flash处于Power Down状态时,可通过配置PDEN位清0,使Flash从Power Down 状态恢复成上电状态。

注意: Flash 恢复成上电状态后,需等待 10μs 才允许对 Flash 进行操作。

当进入 Stop 或 Standby 模式时,Flash 将自动进入 Power Down 状态。如果在进入低功耗模式前,Flash 处于上电状态,则在唤醒后 Flash 将自动上电。


关键字:华大电子  MCU  存储器  Flash 引用地址:华大电子MCU CIU32L061x8存储器(Flash)一

上一篇:华大电子MCU CIU32L061x8存储器(Flash)二
下一篇:华大电子MCU-CIU32L061x8简介及特点

推荐阅读最新更新时间:2026-03-20 11:50

MCU片上存储器详解:RAM、ROM、Flash及TF卡、SD卡的原理与区别总汇
一般来说,MCU里的存储器件包括RAM、ROM以及Flash三种,而RAM又分为DRAM和SRAM,ROM又分为EPROM、EEPROM,Flash又分为NOR和NAND,此外,还有一种被称为SD/TF卡的存储器,它们的主要区别是什么?常见容量是多少?常见的使用场景又是什么样的?本篇笔记将回答这些问题。 1. RAM 首先来说RAM,RAM分为DRAM和SRAM,简单来说,DRAM使用电容器存储数据,数据会随时间消失,因此需要定期刷新以保持数据,所以称之为Dynamic,DRAM速度较慢但存储容量大,且成本低,一般用作MCU的主内存或者图形内存,比如我们常说的“代码会先读入RAM,然后再运行”,这里的RAM就是指的
[单片机]
MSP430单片机FLASH存储器结构(3)
1,FLASH操作程序设计 下面我们来学习编程的内容。在学习编程前,我们要先了解一下FLASH存储模块的控制寄存器。 FLASH存储模块的所有操作都通过控制相关的控制寄存器来实现的。包括FCTL1、FCTL2、FCTL3三个控制寄存器,其中FCTL1主要包含对FLASH的编程和擦除操作的控制位;FCTL2主要定义进入时序发生器前的时钟源和分频系数;FCTL3保存FLASH存储模块的一些标志位。 2, FCTL1控制寄存器 FWKEY:FLASH存储模块的安全键值。共8位,对FLASH操作时应该向其中写入对应的安全键值,否则会引起PUC信号以及KEYV信号。0x96:读取时的安全键值;0x5A:写入时的安全键值
[单片机]
MSP430<font color='red'>单片机</font>的<font color='red'>FLASH</font>与<font color='red'>存储器</font>结构(3)
8051单片机操作K9KF5608 FLASH存储器程序
//-----------------------函数声明,变量定义-------------------------------------------------------- #include reg51.h #include stdio.h #include intrins.h #include reg51.h sbit FLASH_CLE=P1^0; sbit FLASH_ALE=P1^1; sbit FLASH_WE=P1^2; sbit FLASH_WP=P1^3; sbit FLASH_CE=P1^4; sbit FLASH_RD=P1^5; sbit FLASH_RB=P1^6; void WriteCom
[单片机]
华大电子MCU-CIU32F011x3、CIU32F031x5低功耗介绍
9. 低功耗(LOW POWER) 9.1. 低功耗模式 在系统或电源复位以后,微控制器处于正常模式运行状态,系统所用时钟为 256KHz 内部 RC 振荡器输出。当 CPU 不需继续运行时,可以利用进入多种低功耗模式来节省功耗。例如等待某个外部事件时,用户需要根据低电源消耗、启动时间和可用的唤醒源等条件,选定一个低功耗模式。 三种低功耗模式 • 待机模式(Idle Mode) • 停止模式(Stop Mode) • 睡眠模式(Sleep Mode) 注: 可以通过关闭未使用的外设、时钟源使功耗降低。此外,在运行模式下,可以通过以下方式中的一种降低功耗 • 降低系统时钟 • 关闭 APB 和 AHB 总线上未被使用
[单片机]
<font color='red'>华大</font><font color='red'>电子</font><font color='red'>MCU</font>-CIU32F011x3、CIU32F031x5低功耗介绍
华大电子MCU-CIU32F011x3、CIU32F031x5同步串行接口
12. 同步串行接口(SSP) 12.1. 模块介绍 SPI_IIC 模块可用作 SPI 接口通信和 IIC 接口通信,两种功能同一时间只能选择其中一种使用。该模块集成两种接口协议,节省资源的同时又能满足不同的应用需求。 12.2. 功能特点 12.2.1. SPI 功能 • 支持主模式和从模式工作 • 可编程时钟极性,采样相位,支持 4 种模式 • 支持 1~32bit 传输 • 支持 5byte 发送/接收数据缓冲 • 传输数据顺序 MSB 和 LSB • 支持标准模式,三线模式 • 可触发中断的专用发送和接收标志 12.2.2. IIC 功能 • 支持主模式和从模式 • 主模式支持时钟同步和总线仲裁
[单片机]
华大电子MCU-CIU32L061x8简介及特点
华大电子MCU- CIU32L061x8 产品特性 l 48MHz Cortex®-M0+ 32-bit CPU l 128KB User flash,具有代码读出保护区 l 14KB System memory,内嵌安全算法 API l 512Byte OTP l 16KB SRAM 沈阳芯硕科技有限公司是华大电子专业代理商,有技术问题可咨询芯虎论坛. l 灵活的功耗管理模式 - 1.35μA Standby 模式+5 唤醒引脚 - 1.55μA Stop 模式,时钟停止,IO、寄存器、CPU、SRAM 保持 - 2.05μA Stop 模式+RTC - 3.8μs 唤醒@ Stop 模式,从 flash 执行程序 l 电源监
[单片机]
Flash存储器闪存工作原理及具体步骤
  什么是闪存?了解闪存最好的方式就是从它的“出生”它的“组成”均研究的透彻底底的。   闪存的存储单元为三端器件,与场效应管有相同的名称:源极、漏极和栅极。栅极与硅衬底之间有二氧化硅绝缘层,用来保护浮置栅极中的电荷不会泄漏。采用这种结构,使得存储单元具有了电荷保持能力,就像是装进瓶子里的水,当你倒入水后,水位就一直保持在那里,直到你再次倒入或倒出,所以闪存具有记忆能力。   与场效应管一样,闪存也是一种电压控制型器件。NAND型闪存的擦和写均是基于隧道效应,电流穿过浮置栅极与硅基层之间的绝缘层,对浮置栅极进行充电(写数据)或放电(擦除数据)。而NOR型闪存擦除数据仍是基于隧道效应(电流从浮置栅极到硅基层),但在写入数据时
[嵌入式]
<font color='red'>Flash</font><font color='red'>存储器</font>闪存工作原理及具体步骤
ATmega8 Flash程序存储器
系统内可编程的Flash 程序存储器 ATmega8具有8K字节的在线编程Flash,用于存放程序指令代码。因为所有的AVR指令为 16位或32位,故而Flash组织成4K x 16位的形式。用户程序的安全性要根据Flash程序存 储器的两个区:引导(Boot) 程序区和应用程序区,分开来考虑。 Flash 存储器至少可以擦写10,000 次。ATmega8的程序计数器(PC) 为12 位,因此可以寻 址4K 字的程序存储器空间。引导程序区以及相关的软件安全锁定位请参见P 196“ 支持引 导装入程序 -在写的同时可以读(RWW, Read-While-Write) 的自我编程能力” ,而P 209“ 存储器编程” 详述了用
[单片机]
ATmega8 <font color='red'>Flash</font>程序<font color='red'>存储器</font>
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved