MB85RC256V 的概述以及 MB85RC256V 用OSS-ECAL的提供情况。MB85RC256V 是 RAMXEED 公司生产的 FeRAM(Ferroelectric Random Access Memory) 32,768words × 8 bits。
MCU interface : I2C、GPIO
注意: 本资源的原始语言为英语。 翻译仅为方便起见提供概要,可能使用了机器翻译,我们对翻译的准确性和合理性不作任何保证。 此外,在进行实际设计等操作前,请务必参考最新版本的Datasheet。
MB85RC256V
概述
MB85RC256V 是一种采用强电介质工艺和硅栅极 CMOS 工艺制造的 32,768 字节 × 8 位结构的 FeRAM(强电介质随机访问存储器)。
MB85RC256V 如同 SRAM 一样,无需使用数据备份电池即可实现数据保持。
MB85RC256V采用的存储单元在写入/读取操作中,每字节至少可承受10¹²次耐久性,远超其他非易失性存储器产品。
MB85RC256V无需像闪存或E2PROM那样需要较长的写入时间,因此实现了按字节单位的写入功能。因此,无需等待写入完成的写入忙状态序列。
特点
- bit配置:32,768 word × 8 bit
- 两线制串行接口:通过串行时钟(SCL)和串行数据(SDA)的两个端口即可实现所有控制功能。
- 工作频率:1 MHz(最大)
- 读写耐用性:1012 次/字节
- 数据保留:10 年(+85°C)、95 年(+55°C)、200 年(+35°C)以上
- 工作电源电压:2.7 V 至 5.5 V
- 低功耗:工作电源电流 200 μA(最大值 @1 MHz) 待机电流 27 μA(典型值)
- 工作环境温度范围:-40°C 至 +85°C
- 包装:塑料SOP,8针(150mil)、塑料SOP,8针(208mil),两种包装均符合RoHS指令。
OSS-ECAL规格
API 函数
OSS-ECAL API 函数基本上被假定为周期性Thread (TASK) 的函数调用。
etSTS oMB85RC256V_BYTE_WRITE( etCMP cmp, uint16 mem_adr, uint8 val )
oMB85RC256V_BYTE_WRITE函数是用于将指定地址mem_adr处的值val写入MB85RC256V的API函数。
备注:
使用此函数时,请先通过oMB85RC256V_WP_DIS函数解除写保护后再使用。
返回值 | etSTS | OSS-ECAL status code | |
eSTS_FIN | 成功完成 | ||
eSTS_ERR_PARAMETER | 参数错误(内存地址) | ||
eSTS_ERR_I2C_OBJECT | SPI 对象选择错误 | ||
eSTS_ERR_OTHERS_RUN | 其他组件正在执行程序 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行 HAL (iMXRT1051B1052B, STM32F4) | ||
eSTS_ERR_HAL_I2C | HAL I2C 错误 | ||
参数 IN | etCMP cmp | OSS-ECAL 组件代码 | |
uint16 mem_adr | 内存地址 | 0x0000 至 0x7fff | |
uint8 val | 要写入的数据 |
etSTS oMB85RC256V_PAGE_WRITE( etCMP cmp, uint16 mem_adr, uint16 len, uint8* buf )
oMB85RC256V_PAGE_WRITE函数是一个API函数,用于将指定地址mem_adr起始的buf[0]至buf[len-1]的值依次写入MB85RC256V。
备注:
当mem_adr + len大于0x7fff时,地址将滚动到0x0000。
返回值 | etSTS | OSS-ECAL status code | |
eSTS_FIN | 成功完成 | ||
eSTS_ERR_PARAMETER | 参数错误(内存地址) | ||
eSTS_ERR_I2C_OBJECT | SPI 对象选择错误 | ||
eSTS_ERR_OTHERS_RUN | 其他组件正在执行程序 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行 HAL (iMXRT1051B1052B, STM32F4) | ||
eSTS_ERR_HAL_I2C | HAL I2C 错误 | ||
参数 IN | etCMP cmp | OSS-ECAL 组件代码 | |
uint16 mem_adr | 内存地址 | 0x0000 至 0x7fff | |
uint16 len | 写入字节数 | ||
uint8* buf | 写入数据缓冲区 |
etSTS oMB85RC256V_CURRENT_READ( etCMP cmp, uint8* rlt )
oMB85RC256V_CURRENT_READ函数是一个API函数,用于从MB85RC256V中读取上次读取或写入地址加1后的1字节值,并将其保存到rlt中。
备注:
上次读取或写入的地址加上1后大于0x7fff时,地址将滚动到0x0000。
返回值 | etSTS | OSS-ECAL status code | |
eSTS_FIN | 成功完成 | ||
eSTS_ERR_I2C_OBJECT | SPI 对象选择错误 | ||
eSTS_ERR_OTHERS_RUN | 其他组件正在执行程序 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行 HAL (iMXRT1051B1052B, STM32F4) | ||
eSTS_ERR_HAL_I2C | HAL I2C 错误 | ||
参数 IN | etCMP cmp | OSS-ECAL 组件代码 | |
uint8* rlt | 要读取的数据 |
etSTS oMB85RC256V_RANDOM_READ( etCMP cmp, uint16 mem_adr, uint8* rlt )
oMB85RC256V_RANDOM_READ函数是一个API函数,用于从MB85RC256V中指定的地址mem_adr读取1字节的数据,并将其保存到rlt中。
备注:
返回值 | etSTS | OSS-ECAL status code | |
eSTS_FIN | 成功完成 | ||
eSTS_ERR_PARAMETER | 参数错误(内存地址) | ||
eSTS_ERR_I2C_OBJECT | SPI 对象选择错误 | ||
eSTS_ERR_OTHERS_RUN | 其他组件正在执行程序 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行 HAL (iMXRT1051B1052B, STM32F4) | ||
eSTS_ERR_HAL_I2C | HAL I2C 错误 | ||
参数 IN | etCMP cmp | OSS-ECAL 组件代码 | |
uint16 mem_adr | 内存地址 | 0x0000 至 0x7fff | |
uint8* rlt | 要读取的数据 |
etSTS oMB85RC256V_SEQ_READ( etCMP cmp, uint16 mem_adr, uint16 len, uint8* buf )
oMB85RC256V_SEQ_READ函数是一个API函数,用于从MB85RC256V的指定地址mem_adr开始,依次读取len个数据,并将这些数据保存到buf[0]到buf[len-1]中。
备注:
当mem_adr + len大于0x7fff时,地址将滚动到0x0000。
返回值 | etSTS | OSS-ECAL status code | |
eSTS_FIN | 成功完成 | ||
eSTS_ERR_PARAMETER | 参数错误(内存地址) | ||
eSTS_ERR_I2C_OBJECT | SPI 对象选择错误 | ||
eSTS_ERR_OTHERS_RUN | 其他组件正在执行程序 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行 HAL (iMXRT1051B1052B, STM32F4) | ||
eSTS_ERR_HAL_I2C | HAL I2C 错误 | ||
参数 IN | etCMP cmp | OSS-ECAL 组件代码 | |
uint16 mem_adr | 内存地址 | 0x0000 至 0x7fff | |
uint16 len | 读取的字节数 | ||
uint8* buf | 读取数据缓冲区 |
etSTS oMB85RC256V_DIAG_ID( etCMP cmp )
oMB85RC256V_DIAG_ID 函数是一个 API 函数,用于读取制造商 ID 和产品 ID,并将制造商 ID = RAMXEED (0x00A) 和产品 ID = 0x510 的比较结果作为返回值返回。
备注:
返回值 | etSTS | OSS-ECAL status code | |
eSTS_FIN | 比较结果 真实 | ||
eSTS_ERR_DIAG | 比较结果 错误 | ||
eSTS_ERR_I2C_OBJECT | SPI 对象选择错误 | ||
eSTS_ERR_OTHERS_RUN | 其他组件正在执行程序 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行 HAL (iMXRT1051B1052B, STM32F4) | ||
eSTS_ERR_HAL_I2C | HAL I2C 错误 | ||
参数 IN | etCMP cmp | OSS-ECAL 组件代码 |
etSTS oMB85RC256V_WP_EN( etCMP cmp )
oMB85RC256V_WP_EN 函数是用于对 MB85RC256V 执行“写保护启用(写禁用)= ‘Hi’”输出的 API 函数。
备注:
返回值 | etSTS | OSS-ECAL status code | |
eSTS_FIN | 成功完成 | ||
eSTS_ERR_GPIO_OBJECT | GPIO 对象选择错误 | ||
参数 IN | etCMP cmp | OSS-ECAL 组件代码 |
etSTS oMB85RC256V_WP_DIS( etCMP cmp )
oMB85RC256V_WP_DIS 函数是用于对 MB85RC256V 执行“写保护禁用(写使能)= ‘低’”输出的 API 函数。
备注:
返回值 | etSTS | OSS-ECAL status code | |
eSTS_FIN | 成功完成 | ||
eSTS_ERR_GPIO_OBJECT | GPIO 对象选择错误 | ||
参数 IN | etCMP cmp | OSS-ECAL 组件代码 |
HAL 支持列表
OSS-ECAL 的 HAL 支持如下。 请注意,即使使用相同的 HAL,不同的版本、MCU 和开发环境也可能无法协同工作。 该列表正在按顺序扩展。
Manufacturer | SDK/IDE Tool | HAL Name | Ver | HALNAME | Support |
---|---|---|---|---|---|
Arduino | Arduino IDE | Arduino | 1.8.6 | ARDUINO | X |
Arm | Keil MDK v6 | Mbed OS | 6.17.0 | MBED | X |
Debian | – | GNU/Linux | 10.3 | Linux | X |
Infineon | ModusToolbox | mtb-hal-cat1 | 2.4.3 | ModusToolbox | X |
NXP | MCUXpresso SDK | SDK_2.x_EVKB-IMXRT1050 | 2.16 | iMXRT1051B1052B | X |
Renesas | Synergy Software Package | HAL | 2.6.0 | SSP | – |
STMicroelectronics | STM32Cube | STM32CubeF4 | V1.28.1 | STM32F4 | X |
开发环境
OSS-ECAL 开发过程中的 MCU 和开发环境如下。
HALNAME | Manufacturer | Board | MCU | IDE |
---|---|---|---|---|
ARDUINO | Arduino | 1.Mega 2560 Rev3 2.Arduino Pro Mini 3.3V | ATmega2560 ATmega328P | Arduino IDE 2.3.3 |
MBED | STMicroelectronics | STM32 Nucleo-64 boards | STM32F401RETx | Arm Keil Studio Cloud |
Linux | BeagleBoard | BeagleBone Black | TI AM335x | – |
ModusToolbox | Infineon | CY8CPROTO-063-BLE PSoC 6 BLE Prototyping Kit | CYBLE-416045-02 | ModusToolbox |
iMXRT1051B1052B | NXP | IMXRT1050-EVKB | i.MX RT1050 | MCUXpresso IDE |
SSP | Renesas | S7G2 SK | R7FS7G27H3A01CFC | e² studio for Renesas Synergy |
STM32F4 | STMicroelectronics | STM32 Nucleo-64 boards | STM32F401RETx | STM32CubeIDE |
文件结构
Folder* | File | Summary |
---|---|---|
MB85RC256V_HALNAME_010000/sample | sample.c (.cpp) | Sample application program |
sample.h | Sample application header | |
MB85RC256V_HALNAME_010000 | oMB85RC256V.c (.cpp) | OSS-ECAL program for MB85RC256V |
oMB85RC256V.h | OSS-ECAL header for MB85RC256V | |
oss_ecal.h | OSS-ECAL common header | |
MB85RC256V_ARDUINO.ino | Sample application programs for Arduino | |
user_setting.c (.cpp) | User configured constants and tables | |
user_setting.h | User configuration Header | |
oHAL_i2c_stm32f4.c | HAL Program for STM32Cube FW_F4 | |
oHAL_i2c_stm32f4.h | HAL Header for STM32Cube FW_F4 | |
readme.md | Readme | |
OSS-ECAL Terms of Use.txt | OSS-ECAL Terms of Use |
* 有关 HALNAME,请参阅 HAL 支持。
OSS-ECAL 下载
请从 OSS-ECAL 英文网站下载 OSS-ECAL。下载时,请先登录 OSS-ECAL 英文网站,然后再进行操作。
内置方法
如何在用户程序中整合多个 OSS-ECAL(相同的 MCU 功能)
如何在用户程序中整合多个 OSS-ECAL(不同 MCU 功能)
注意
OSS-ECAL 示例版本不适用于线程(任务)或不同优先级的中断。 请不要像下面的示例那样使用它。
例如 如果每个传感器被分配到相同的 ADC 组,而 OSS-ECAL API 在具有不同优先级的进程中执行,则可能无法获得正确的值。
ADC Gr0 Ch0 Temperature sensor AD22100A 每隔 100 毫秒采集一次温度(低优先级)
ADC Gr0 Ch1 Pressure sensor MPX5999D 事件中断时采集压力(高优先级)