武汉芯源CW32L052 FLASH存储器

2024-01-24 武汉芯源( CW32生态社区公众号)
CW32L052,武汉芯源 CW32L052,武汉芯源 CW32L052,武汉芯源 CW32L052,武汉芯源

一、概述

CW32L052内部集成了64KB嵌入式FLASH供用户使用,可用来存储应用程序和用户数据。支持对 FLASH 存储器的读、擦除和写操作,支持擦写保护和读保护。内置 FLASH 编程所需的高压 BOOST 电路,无须额外提供编程电压。


二、FLASH存储器组织
· 总容量64KB,分页管理

· 每页 512 字节

· 共 128 页


三、FLASH存储器保护

FLASH 存储器具有擦写保护和读保护功能。

· 擦写保护


包括锁定页擦写保护和PC 地址页擦写保护,处于保护状态的页面不能被擦写,可避免 FLASH 内容被意外改写。

· 读保护

· 以整片 FLASH 为保护对象,不支持单页保护,可避免用户代码被非法读取。


四、FLASH存储器操作

FLASH 存储器操作包括:读操作、擦除、写(编程)操作。


五、页擦除

FLASH 的页擦除操作的最小单位为 1 页,即 512 字节。页擦除操作完成后,该页所有地址空间的数据内容均为 0xFF。


如果对未解锁的 FLASH 页面进行页擦除操作,或者对*正在运行的程序[^1]*进行擦除操作,会操作失败,产生错误中断标志。


CW32L052 内部 FLASH 存储器被划分为 128 页,每 8 页对应擦写锁定寄存器的1 个锁定位。擦写锁定寄存器的各位域与 FLASH 锁定页面的对应关系如下表所示:



六、写操作

基于嵌入式 FLASH 的特性,写操作只能将 FLASH 存储器中位数据由‘1’改写为‘0’,不能由‘0’改写为‘1’, 因此在写数据之前先要对对应地址所在页进行擦除操作。


基于以上陈述,总结出以下三个原则:

· 不可对数据位内容为‘0’的地址写入

· 不可对锁定区域内的地址写入

· 不可对 PC(程序指针)所在的页的地址写入


七、读操作

CW32L052 对 FLASH 的读操作支持 3 种不同位宽,可采用直接访问绝对地址方式读取,读取的数据位宽必 须和对应地址边界对齐。


八、核心代码

//单片机头文件
#include "main.h"
//硬件驱动
#include "gpio.h"
#include "delay.h"

//子程序
void LCD_Configuration(void);       //段式LCD配置函数
void LCD_Display(uint16_t dispdata);     //段式LCD显示函数
uint8_t FLASH_Erase(void);         //FLASH页擦除函数
uint8_t FLASH_Write(uint8_t *ByteData,uint16_t amount); //FLASH写操作函数

int main(void)
{
 int i;
 int temp8;
 uint8_t cnt=0;
 uint8_t WriteBuf[256];
 
    LED_Init();    //初始化程序运行情况指示灯
 LCD_Configuration();    //配置LCD液晶显示屏
 
 FLASH_Erase();          //页擦除操作
 for(i=0;i<256;i++)      //验证是否擦除成功
 {
  temp8=*((volatile uint8_t*)(512*127+i));
  if(temp8!=0xff)
  {
   while(1)
   {
    LED2_ON();       //LED2闪烁
    Delay_ms(300);
    LED2_OFF();
    Delay_ms(300);
   }
  }
 }
 
 for(i=0;i<256;i++)      //准备写入FLASH存储器的数据
 {
  WriteBuf[i]=i;
 }
 FLASH_Write(WriteBuf,256); //写操作
 for(i=0;i<255;i++)           //验证是否写入正确
 {
  temp8=*((volatile uint8_t*)(512*127+i));
  if(temp8!=i)
  {
   while(1)
   {
    LED1_ON();     //LED1、LED2同时闪烁指示写入失败
    LED2_ON();
    Delay_ms(300);
    LED1_OFF();
    LED2_OFF();
    Delay_ms(300);
   }
  }
 }
 
 LED1_ON();       //指示擦除、读、写均成功
 LED2_ON();
    while(1)
    {
  LCD_Display(*((volatile uint8_t*)(512*127+cnt)));  //LCD上依次显示写入的数据
  Delay_ms(500);
  cnt++;
    }
}

uint8_t FLASH_Erase(void)    //页擦除
{
 int flag=1;
 
 FLASH_UnlockPages(512*127,512*127);
 flag=FLASH_ErasePages(512*127,512*127);
 FLASH_LockAllPages();
 if(flag!=0)
 {
  while(1)
  {
   LED1_ON();
   Delay_ms(300);
   LED1_OFF();
   Delay_ms(300);
  }
 }
 
 return 0;
}

uint8_t FLASH_Write(uint8_t *ByteData,uint16_t amount)  //写操作
{
 int flag=1;
 
 FLASH_UnlockPages(512*127,512*127);
 flag=FLASH_WriteBytes(512*127,ByteData,amount);
 FLASH_LockAllPages();
 if(flag!=0)
 {
  while(1)
  {
   LED2_ON();
   Delay_ms(300);
   LED2_OFF();
   Delay_ms(300);
  }
 }
 
 return 0;
}

void LCD_Configuration(void)      //段式LCD配置
{
    __RCC_LCD_CLK_ENABLE();
 RCC_LSI_Enable();
 
    LCD_InitTypeDef LCD_InitStruct = {0};

    LCD_InitStruct.LCD_Bias = LCD_Bias_1_3;
    LCD_InitStruct.LCD_ClockSource = LCD_CLOCK_SOURCE_LSI;
    LCD_InitStruct.LCD_Duty = LCD_Duty_1_4;
    LCD_InitStruct.LCD_ScanFreq = LCD_SCAN_FREQ_256HZ;
    LCD_InitStruct.LCD_VoltageSource = LCD_VoltageSource_Internal;

    LCD_Init(&LCD_InitStruct); 
 LCD_COMConfig(LCD_COM0 | LCD_COM1 | LCD_COM2 | LCD_COM3, ENABLE);
    LCD_SEG0to23Config(LCD_SEG0|LCD_SEG1|LCD_SEG2|LCD_SEG3|LCD_SEG4|LCD_SEG5|LCD_SEG6|LCD_SEG7, ENABLE);
   
 LCD_Cmd(ENABLE);
}

void LCD_Display(uint16_t dispdata)   //LCD显示
{
 uint16_t DisBuf[10]={NUM0,NUM1,NUM2,NUM3,NUM4,NUM5,NUM6,NUM7,NUM8,NUM9};
 
 LCD_Write(LCD_RAMRegister_0,0x00000000);
 LCD_Write(LCD_RAMRegister_1,0x00000000);
 
 if(dispdata<10)
  LCD_Write(LCD_RAMRegister_0,DisBuf[dispdata]);
 else if(dispdata<100)
  LCD_Write(LCD_RAMRegister_0,DisBuf[dispdata/10]|DisBuf[dispdata%10]<<16);
 else if(dispdata<1000)
 {
  LCD_Write(LCD_RAMRegister_0,DisBuf[dispdata/100]|DisBuf[dispdata/10%10]<<16);
  LCD_Write(LCD_RAMRegister_1,DisBuf[dispdata%10]);
 }
 else
 {
  LCD_Write(LCD_RAMRegister_0,0xffffffff);
  LCD_Write(LCD_RAMRegister_1,0xffffffff);
 }
 
}



视频演示


九、补充

FLASH存储器和EEPROM存储器对比


一般性的总结:


使用场景侧重:

· EEPROM:频繁的擦写操作,如存储计数器、传感器数据等

· FLASH:大容量、高速读写,如存储程序代码和固件等

授权代理商:世强先进(深圳)科技股份有限公司
技术资料,数据手册,3D模型库,原理图,PCB封装文件,选型指南来源平台:世强硬创平台www.sekorm.com
现货商城,价格查询,交期查询,订货,现货采购,在线购买,样品申请渠道:世强硬创平台电子商城www.sekorm.com/supply/
概念,方案,设计,选型,BOM优化,FAE技术支持,样品,加工定制,测试,量产供应服务提供:世强硬创平台www.sekorm.com
集成电路,电子元件,电子材料,电气自动化,电机,仪器全品类供应:世强硬创平台www.sekorm.com
  • +1 赞 0
  • 收藏
  • 评论 0

本文由出山转载自武汉芯源( CW32生态社区公众号),原文标题为:CW32L052 FLASH存储器,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

评论

   |   

提交评论

全部评论(0

暂无评论

相关推荐

基于武汉芯源CW32L010低功耗MCU的低成本电动工具方案,空载转速达25000RPM

采用武汉芯源的CW32L010F8P6作为主控实现低成本电动工具方案,通过PWM方波控制算法进行电机转速控制,内部高精度AD转换实现电机电压、反电动势、电流等信号的采样,并实时进行故障停机保护等功能。

产品    发布时间 : 2024-11-05

【IC】武汉芯源CW32L010安全低功耗MCU,树立M0+产品行业新标杆!

近日,武汉芯源半导体CW32L010系列产品正式官方发布。这款产品以其卓越的产品性能,迅速在业界引起了广泛关注,并成功树立M0+产品行业的新标杆。产品是基于eFlash的单芯片低功耗微控制器,集成了主频高达48MHz的ARM®Cortex®-M0+内核、高速嵌入式存储器(多至64K字节FLASH和多至4K字节SRAM)以及一系列全面的增强型外设和I/O口。

产品    发布时间 : 2024-10-10

【产品】武汉芯源CW32L083系列MCU中断系统介绍

本文针对武汉芯源CW32L083系列MCU,同系列产品亦可参考。ARM® Cortex®-M0+内核的嵌套向量中断控制器(NVIC),用于管理中断和异常。NVIC和处理器内核紧密相连,可以实现低延迟的异常和中断处理。

产品    发布时间 : 2022-12-02

武汉芯源(CW)CW32系列微控制器选型表

描述- 武汉芯源半导体目前已推出CW32F003系列、CW32F030系列以及CW32L083系列MCU产品,可以满足各行业的需求,客户行业广泛涉及通信电子、工业电子、消费电子、新能源、安防监控、物联网以及汽车电子等多个行业,并且已经在无线充方案、电子烟方案、水表方案、燃气表方案、BLDC电动工具、BMS方案、三轴云台、无线传感器方案等项目中得到实际应用,未来将能够满足更多的市场需求。

型号- CW32F030K8T7,F002,F003,CW32F030F8V7,CW32L083MCT6,CW32W031R8U6,CW32L031C8T6,A030 系列,L052,L083 系列,F030,L052 系列,CW32F030K8U7,L031 系列,CW32L052R8S6,CW32A030C8T7,A030,CW32L031K8U6,CW32L031C8U6,CW32L031F8P6,CW32L083RCT6,R031 系列,CW32R031C8U6,CW32L052C8T6,CW32L083VCT6,CW32 系列,CW32F020K6U7,F020,CW32,CW32F030F6P7,CW32L052R8T6,CW32F002F3U7,F002 系列,CW32L083RCS6,CW32F020C6U7,R031,CW32L031F8U6,CW32F003F4P7,L031,F030 系列,F003 系列,CW32F020F6U7,CW32F030C8T7,CW32F002F3P7,F020 系列,CW32F003F4U7,CW32L083RBT6,L083,CW32F003E4P7,W031 系列,W031

选型指南  -  武汉芯源  - 2023/11/27 PDF 中文 下载

【技术】武汉芯源CW32单片机UART基本数据收发功能介绍

通用异步收发器是一种通用串行数据总线,常用于系统内各子模块间的数据交换。本文将以武汉芯源推出的CW32系列单片机的CW32L083为例,介绍UART基本数据收发功能。

技术探讨    发布时间 : 2023-04-25

芯片等级怎么分?CW32又该属于哪些等级?

芯片按照应用环境和性能要求的不同,可以分为不同的级别,包括民用级(消费级)、工业级、车规级、军工级和航天级,一般我们接触不到航天级,这里只给大家作为知识补充。每种级别的芯片在制造工艺、可靠性、性能、测试标准和成本等方面存在显著的区别。

技术探讨    发布时间 : 2024-09-18

武汉芯源半导体有限公司

型号- CW24XX,CW32L052R8,CW32L,CW32L031,CW32L052,CW32L SERIES,CW32系列,CW32F,CW32,CW32F030,CW32L031C8,CW24XX系列,CW32F030C8,CW32F003F4,CW32L052C8,CW32R031C8,CW32R031,CW32F003,CW32L031K8,CW32L031系列,CW32F030K8,CW32L052系列,CW32L032K6,CW32L032E6,CW32L083RB,CW32L083RC,CW32 SERIES,CW32A030C8,CW32F系列,CW32L083系列,CW32L083VC,CW32L083RX,CW32L083,CW32W031R8,CW32F030FX,CW32F030F8,CW32F003E4,CW32L083MC,CW32F SERIES,CW32W031,CW32F030F6,CW32F030 SERIES,CW32L系列,CW32L032F6,CW32L031F8

商品及供应商介绍  -  武汉芯源  - 2024/1/15 PDF 中文 下载 查看更多版本

武汉芯源半导体成功举行无锡地区CW32线下技术交流研讨会

2024年7月12日,武汉芯源半导体在无锡成功举办CW32系列MCU技术研讨会,吸引两轮车仪表及电动工具行业客户。孙秀艳总监展示企业实力,李家庆与李芳老师深入讲解产品应用,促进行业合作与技术创新,推动CW32 MCU在多个领域的应用。

原厂动态    发布时间 : 2024-08-19

CW32L052 ARM® Cortex®-M0+ 32 位低功耗微控制器用户手册

型号- CW32L052,CW32L052C8T6-LQFP4,CW32L052 系列

用户指南  -  武汉芯源  - Rev 1.5  - 2024-07-24 PDF 中文 下载 查看更多版本

探索创新,共筑未来 —— 武汉芯源半导体邀您共赴2024年慕尼黑上海电子展

2024慕尼黑上海电子展(electronica China)将于7月8-10日在上海新国际博览中心举办,对武汉芯源半导体而言,这不仅是展示最新产品和应用的机会,更是与国内外客户、合作伙伴深入交流的平台。公司期望通过此次展会,进一步拓展市场,加强与业界的合作。

原厂动态    发布时间 : 2024-07-01

武汉芯源半导体有限公司:致力于成为国产芯片的领航者

型号- CW32L052R8,CW32L,CW32L031,CW32L052,CW32L083 SERIES,CW32L SERIES,CW32系列,CW32F,CW32,CW32F030,CW32L031C8,CW32F030C8,CW32F003F4,CW32L052C8,CW32 SERIES,CW32R030C8,CW32R030,CW32F003,CWS5N65AF,CW32R031,CW32L031K8,CW32L031系列,CW32F030K8,CW32L052系列,CW32F030系列,CW32 FAMILY,CW24CXX,CW32L083系列,CW32F系列,CW32L083VC,CW32L083RX,CW32L083,CW32L031 SERIES,CW32W031R8,CW32F030FX,CW32F003E4,CW32L083MC,CW32F SERIES,CW32F003 SERIES,CW32W031,CW32F030 SERIES,CW32F003系列,CW32L系列,CW32L031F8

商品及供应商介绍  -  武汉芯源  - 2023/4/23 PDF 中文 下载

武汉芯源半导体出席“2024 IIC国际集成电路展览会暨研讨会 ”发表主题演讲并展示相关产品方案

武汉芯源半导体有限公司技术总监张亚凡先生于2024 IIC国际集成电路展览会暨研讨会发表主题演讲《持续奋进,快速完善自有32位超低功耗MCU产品阵容》,针对超低功耗产品设计经验和客户反馈,在宏观方面展示现有产品布局和未来产品计划,在微观方面展示产品外设细节功能的改进。

原厂动态    发布时间 : 2024-04-30

【IC】武汉芯源新推超低功耗32位M0+内核MCU CW32L052系列,主频高达48MHz,支持55路I/O接口

武汉芯源半导体超低功耗家族再添新成员:32位M0+内核MCU CW32L052系列芯片;基于eFlash的单芯片低功耗微控制器,集成了主频高达48MHz的ARM®Cortex®-M0+内核、高速嵌入式存储器,支持最多55路I/O接口。

新产品    发布时间 : 2023-02-23

CW32L052 DMA直接内存访问

本文介绍CW32L052 DMA直接内存访问功能。CW32L052支持DMA(Direct Memory Access),即直接内存访问,无需CPU干预,实现高速数据传输。

设计经验    发布时间 : 2024-04-30

武汉芯源携CW32家族产品现身青岛环球表计大会,展示燃气表、水表等表计产品应用方案以及温控器、无刷电机等工业类应用方案

武汉芯源半导体携CW32家族产品亮相2023年中国国际表计行业年度大会,为表计行业参观者展示了燃气表、水表、电表、可燃气体报警器等表计产品应用方案,以及料位开关、温控器、无刷电机等工业类应用方案。

原厂动态    发布时间 : 2023-05-06

展开更多

电子商城

查看更多

品牌:武汉芯源

品类:EEPROM

价格:

现货: 5,000,000

品牌:武汉芯源

品类:EEPROM

价格:

现货: 5,000,000

品牌:武汉芯源

品类:EEPROM

价格:

现货: 5,000,000

品牌:武汉芯源

品类:EEPROM

价格:

现货: 5,000,000

品牌:武汉芯源

品类:EEPROM

价格:

现货: 3,000,000

品牌:武汉芯源

品类:EEPROM

价格:

现货: 3,000,000

品牌:武汉芯源

品类:EEPROM

价格:

现货: 3,000,000

品牌:武汉芯源

品类:EEPROM

价格:

现货: 3,000,000

品牌:武汉芯源

品类:EEPROM

价格:

现货: 2,000,000

品牌:武汉芯源

品类:EEPROM

价格:

现货: 2,000,000

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

现货市场

查看更多

暂无此商品

海量正品紧缺物料,超低价格,限量库存搜索料号

查看更多

授权代理品牌:接插件及结构件

查看更多

授权代理品牌:部件、组件及配件

查看更多

授权代理品牌:电源及模块

查看更多

授权代理品牌:电子材料

查看更多

授权代理品牌:仪器仪表及测试配组件

查看更多

授权代理品牌:电工工具及材料

查看更多

授权代理品牌:机械电子元件

查看更多

授权代理品牌:加工与定制

世强和原厂的技术专家将在一个工作日内解答,帮助您快速完成研发及采购。
我要提问

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

研发客服
商务客服
服务热线

联系我们

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

投诉与建议

E-mail:claim@sekorm.com

商务合作

E-mail:contact@sekorm.com

收藏
收藏当前页面