网站首页 全球最实用的IT互联网站!

人工智能P2P分享Wind搜索发布信息网站地图标签大全

当前位置:诺佳网 > 电子/半导体 > 控制/MCU >

瑞萨RL78系列单片机支持百万次读写的数据闪存方

时间:2024-01-22 09:27

人气:

作者:admin

标签:

导读:早期的存储器只能写一次,随后紫外线擦写的存储器问世,支持上千次读写操作。...

早期的存储器只能写一次,随后紫外线擦写的存储器问世,支持上千次读写操作。

随着技术的发展,闪存的读写越来越快,读写次数也越来越多。十万次读写已经是目前最低配置,百万次读写将成为标配。

如今,存储器的价格已不再是20年前昂贵买不起的价格,基本可以用“白菜价”来形容了。所以,现在MCU内部集成存储的容量越来越大,性能也越来越高。

今天结合瑞萨RL78系列单片机支持百万次读写的数据闪存(Data Flash)给大家讲述一下其读写方法。

数据闪存(Data Flash)概述

最近这些年推出的大部分MCU,基本都有供用户可编程和使用的Flash,RL78系列MCU也是类似的Flash,官方叫数据闪存(Data Flash)。

数据闪存(Data Flash)可供用户存储产品的标定参数、运行数据等,这样就可以免去片外存储器件,有效的降低了用户的硬件成本。

Data Flash特点:

用户能基于瑞萨官方提供的库来使用MCU内部的数据闪存,虽然MCU内部的闪存仍以1K字节块作为单位,但是用户可以按照字节进行读写。

RL78资源的不同,对应的内部数据闪存的大小也不尽相同,一般大小在2K-8K字节范围之间,就单个地址,当前读写次数能达到1,000,000次,可在1.8-5.5伏电压范围内进行操作。

Data Flash使用说明

Data Flash应用库的下载:

如果你用的是CC-RL编译器,请在如下地址下载应用库和API应用文档:

https://www.renesas.cn/cn/zh/document/upr/data-flash-library-type04-ver105-cc-rl-compiler-rl78-family?language=en

如果你用的是CA78K0R编译器,请在如下地址下载应用库和API应用文档:

https://www.renesas.cn/cn/zh/document/upr/data-flash-library-type04-ver105-ca78k0r-compiler-rl78-family

(提醒:请复制链接到浏览器下载)

避开MCU内部RAM相关区域:

根据MCU的硬件手册和《Self RAM list of Flash Self-Programming Library for RL78 Family》规定,有些MCU的RAM部分区域不能被数据库使用,因此需要在section设置进行避开,否则编译会出错,不同MCU要求也不尽相同,以R5F100LE为例,闪存库仅能使用RAM FFE00H ~ FF2FFH以外的区域,如下。

wKgaomWtxNKAKyM2AADzp1mWgeg848.jpg

如下是基于R5F100LE在CS+上的具体section配置,以避开相应的区域,其他型号的MCU也可参考。

wKgZomWtxNKAFMTFAATOTs-feDc067.jpg

Data Flash测试

把RL78闪存库加载到应用工程里,然后调用初始化和读写函数进行数据的操作,当前使用RL78G13硬件板型号是“YRPBRL78G13”。然后在R5F100LE Data Flash的起始地址连续写一串数据“0x11,0x22,0x33, … 0xCC,并把它们读出出来,数据定义以及应用代码如下:

unsigned char Execute_status;    
unsigned char W_DataFla_buff[3]  = {0x11,0x22,0x33};
unsigned char W_DataFla_buff1[3] = {0x44,0x55,0x66};
unsigned char W_DataFla_buff2[3] = {0x77,0x88,0x99};
unsigned char W_DataFla_buff3[3] = {0xAA,0xBB,0xCC}; 
unsigned char R_DataFla_buff[12]; 
unsigned long int address=0x00;
         R_FDL_Init(); 
       Execute_status = R_FDL_BlankCheck(0x00,1024);
        if (Execute_status == 0x1b) 
        {
        R_FDL_Erase(0x00);
        }  
        R_FDL_Write(address,&W_DataFla_buff[0],3); 
        address+=3;
        R_FDL_Write(address,&W_DataFla_buff1[0],3); 
        address+=3;
        R_FDL_Write(address,&W_DataFla_buff2[0],3); 
        address+=3;
        R_FDL_Write(address,&W_DataFla_buff3[0],3); 
        address+=3;
        Execute_status = R_FDL_Iverify(0x00,1024);
        if (Execute_status == 0x1b) 
        {
                return;   


        }     
        R_FDL_Read(0x00,&R_DataFla_buff[0],12);
        PFDL_Close();

代码在硬件板“YRPBRL78G13”上运行测试结果如下,执行正确。

3f93cf86-b8c4-11ee-8b88-92fbcf53809c.png3fa01192-b8c4-11ee-8b88-92fbcf53809c.png








审核编辑:刘清

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信