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

早期的存储器只能写一次,随后紫外线擦写的存储器问世,支持上千次读写操作。
随着技术的发展,闪存的读写越来越快,读写次数也越来越多。十万次读写已经是目前最低配置,百万次读写将成为标配。
如今,存储器的价格已不再是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以外的区域,如下。
如下是基于r5f100le在cs+上的具体section配置,以避开相应的区域,其他型号的mcu也可参考。
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”上运行测试结果如下,执行正确。


鼎盛合方案——快递吊钩电子秤方案
土壤盐分测定仪器的应用、参数及性能
WiFi还没走,LiFi还没搞懂,又来一个Wifig技术
区块链是否能够降低云存储的成本
工业设计将会对我们的生活造成什么影响
瑞萨RL78系列单片机支持百万次读写的数据闪存方法概述
大功率无人机反制设备的结构和工作原理
AstroA40游戏耳机评测 音质不俗佩戴舒适
受内存降价影响三星半导体今年营收将下滑20%
华数机器人针对面板行业推出触屏面板柔性组装搬运生产工作站
汽车起动机是如何启动发动机的
浅析在Qi标准下设计的5W无线电源设计
MATLAB离散信号如何产生和运算
长光华芯车载激光雷达VCSEL阵列芯片通过车规级AEC-Q102认证
运动蓝牙耳机什么牌子好,运动蓝牙耳机推荐
高压开关机械特性测试仪操作方式的介绍
2018年区块链最大的投资机会一定是公链!
77GHz雷达信号处理流程框图及应用方案
芯谋重磅研报:2022年中国功率分立器件市场规模同比增21%
各大手机厂商快充技术及代表作汇总