ReRAM click carries a resistive RAM module. Resistive RAM, also known as ReRAM, is a non-volatile memory type, that works by changing the resistance across a dielectric solid-state material, often referred to as a memristor. Compared to traditional flash memory, ReRAM offers much faster, bit-alterable, erase-free operation. It delivers much lower read latency, faster write performance than Flash, can be architected with smaller pages to reduce read and write latencies, lower energy and increased lifetime of the storage solutions. Although the ReRAM is still being developed, this ReRAM module can write data at bus speed, has an extremely high endurance of 1.2 x 106 read/write cycles, data retention period of 10 years, and very fast SPI interface.
How does it work?
ReRAM is an abbreviation for resistive Random Access Memory. This is a fairly new type of memory. The main features of ReRAM modules include write endurance, read / write cycles with no delay and data retention even after power loss. This makes these modules a kind of universal memory, a hybrid between standard RAM modules and EEPROM and similar types of FLASH memory. The ability to randomly access the memory cells without the need to refresh them and with no delay makes this type of memory looks like an SRAM. Data retention after power off, makes it look like a FLASH memory. Therefore, it is often referred to as the universal memory.
There are certain downsides and flaws that prevent this type of memory to become the main memory medium and replace all types of memory used so far. ReRAM memories involves generating defects in a thin oxide layer, known as oxygen vacancies (oxide bond locations where the oxygen has been removed), which can subsequently charge and drift under an electric field. The motion of oxygen ions and vacancies in the oxide would be analogous to the motion of electrons and holes in a semiconductor. The problems with this is obvious: these memories rely on exotic materials and complicated switching mechanisms, so the development is quite complex. There are various methods used to overcome these problems, but they remain the main reasons why this type of memory hasn’t replaced other memory types, yet. However, in the embedded world, where the memory amount demands are rather limited, this type of memory most certainly deserves attention. ReRAM is a perfect solution for cost-sensitive applications, such as wearables and IoT devices
ReRAM click board uses the MB85AS4MT, a 4 megabits serial SPI ReRAM memory module from Fujitsu Semiconductor. This module contains 524.288 x 8 bits of memory that can be randomly accessed. The pinout of the used memory module is the same as most commonly used EEPROM modules so that it can directly replace it. The usual SPI lines – SO, SI, SCK and #CS pins from the MB85AS4MT IC are routed to the mikroBUS™ SPI port (MISO, MOSI, SCK and CS pins). Besides the SPI serial bus, there are two more pins routed to the mikroBUS™.
The #HOLD pin of the MB85AS4MT IC is routed to the RST pin of the mikroBUS™ and it is used to hold the data transfer. When this pin is pulled to a LOW logic level, all data transfer operations are suspended. However, this function is enabled only when the device is already addressed with the CS pin pulled to a LOW level. This allows to pause the data transfer and resume it later without the need to first address it via the CS pin, reducing the output latency that way. While the data transfer is paused, the SO pin will switch to a high impedance mode (HIGH Z) and will remain inactive. The SCK pulses are completely ignored. The #HOLD pin of the MB85AS4MT IC is pulled to a HIGH logic level by an onboard pull-up resistor.
The #WP pin of the MB85AS4MT IC is routed to the PWM pin of the mikroBUS™ and it is used to prevent writes to the status register, acting as a hardware write protect pin. It is routed to the RST pin of the mikroBUS™.
The logical organization of the module, such as read and write commands and the status register of the MB85AS4MT IC are the same as with most commonly used EEPROM modules, such as the one used in EEPROM 4 click. That allows this memory module, as well as ReRAM click to replace the existing EEPROM module with not too much additional work. The provided libraries offer all the functions needed to work with the ReRAM click. Their usage is demonstrated in the included example application which can be used as a reference for further development.
This Click Board™ is designed to be operated only with 3.3V logic level. A proper logic voltage level conversion should be performed before the Click board™ is used with MCUs with logic levels of 5V. It is ready to be used as soon as it is inserted into a mikroBUS™ socket of the development system.
Specifications
Type
ReRAM
Applications
A perfect solution for cost-sensitive applications, such as wearables and IoT devices
On-board modules
MB85AS4MT, a 4 megabits serial SPI ReRAM memory module from Fujitsu Semiconductor.
Key Features
ReRAM click features an ReRAM memory module. Due to the used memory type, it inherits all the benefits of having both features typically found RAM and EEPROM modules. Fast, nonvolatile memory which can endure an unlimited number of write cycles
Interface
SPI
Feature
No ClickID
Compatibility
mikroBUS™
Click board size
S (28.6 x 25.4 mm)
Input Voltage
3.3V
Pinout diagram
This table shows how the pinout on ReRAM click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
Onboard settings and indicators
Label | Name | Default | Description |
---|---|---|---|
LD1 | PWR | – | Power LED Indicator |
ReRAM click electrical specifications
Description | Min | Typ | Max | Unit |
---|---|---|---|---|
Operating voltage | 1.65 | – | 3.6 | V |
Operating temperature | -40 | – | 85 | °C |
SCK Clock Frequency | – | – | 5 | MHz |
Data endurance | – | 1.2 × 106 | – | Cycles |
Data retention (at +85 °C) | – | 10 | – | Years |
Software support
We provide a library for the ReRAM click on our LibStock page, as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.
Library Description
Library contains functions for getting temperature and humidity. Library contains functions for getting and setting user register. Library contains functions for changing resolution and soft reset. Library contains functions for enabling/disabling heater and OTP.
Key functions:
T_RERAM_RETVAL reram_send_cmd( uint8_t cmd_code )
– This function allows user to send a desired command.T_RERAM_RETVAL reram_read_mem( uint32_t memAddr, uint8_t *dataOut, uint16_t nBytes )
– This command allows user to read RAM.T_RERAM_RETVAL reram_write_mem( uint32_t memAddr, uint8_t *dataIn, uint16_t nBytes )
– This command allows user to write RAM.
Examples description
The application is composed of three sections :
- System Initialization – Initializes peripherals and pins.
- Application Initialization – Initializes SPI serial interface and puts a device to the initial state. The device now is ready to receive command from user.
- Application Task – (code snippet) – Executes a device commands depending on the entered string commands by user. The user can perform a complete control of the ReRAM by using this driver and demo example, which includes all possible commands:
- wren – enable Status and RAM writing command (Write Enable Latch is set),
- wrdi – disable Status and RAM writing command (Write Enable Latch is reset),
- rdsr – read Status register command (shows status messages),
- wrsr – write Status register command (also executes Status Write Protection),
- read – read ReRAM array command (depending on the entered parameters, shows error messages),
- write – write ReRAM array command (depending on the entered parameters, shows error messages),
- rdid – read device ID command,
- sleep – puts a device to sleep state,
- wakeup – wakes up a device. All possible parameters for each command can be entered from user side. When user wants to execute a ‘write’ or ‘wrsr’ command, the Write Enable will be automatically enabled.
Note : Write Enable Latch is reset after the following operations: After ‘wrdi’ command recognition. The end of writing process after ‘wrsr’ command recognition. The end of writing process after ‘write’ command recognition.
Data will not be written in the protected blocks of the ReRAM array. Upper 1/4 goes from address 0x60000 to 0x7FFFF. Upper 1/2 goes from address 0x40000 to 0x7FFFF. The entire ReRAM array goes from address 0x00000 to 0x7FFFF.
void applicationTask() { process(); }
Additional Functions :
- _pow – Power math function.
- _strcmp – Allows user to compare two strings, does two strings match or not.
- _str_to_dec – Allows user to enter a determined number of digits and converts these digits from ASCII format to decimal value.
- process – Allows user to enter a string command and executes a command processing.
The full application code, and ready to use projects can be found on our LibStock page.
Other Mikroe Libraries used in the example:
- Conversions
- C_String
- SPI
- UART
Additional notes and informations
Depending on the development board you are using, you may need USB UART click, USB UART 2 click or RS232 click to connect to your PC, for development systems with no UART to USB interface available on the board. The terminal available in all MikroElektronika compilers, or any other terminal application of your choice, can be used to read the message.
mikroSDK
This Click board™ is supported with mikroSDK - MikroElektronika Software Development Kit. To ensure proper operation of mikroSDK compliant Click board™ demo applications, mikroSDK should be downloaded from the LibStock and installed for the compiler you are using.
For more information about mikroSDK, visit the official page.