EERAM 5V click is a static RAM (SRAM) memory click board™ with the unique feature – it has a backup non-volatile memory array, used to store the data from the SRAM array. Since the SRAM is not able to maintain its content after the power loss, the non-volatile EEPROM backup can be a very handy addition that can be used to preserve the data, even after the power loss event. This is a very useful feature when working with critical or sensitive applications. The memory backup procedure can be executed both automatically and manually. When it is set to work in the manual mode, the onboard capacitor will act as a power source with enough power to complete the backup cycle. The power-on backup restore mode is also available, taking only about 25ms to complete.
EERAM 5V click offers combined benefits from both SDRAM and EEPROM worlds. The SDRAM array has zero cycle delay while reading or writing data and infinite read and write cycles, While the EEPROM endures more than one million store cycles and data retention prediction for more than 200 years. With these features, EERAM 5V click can be used for a wide range of different applications as the additional memory used to store some sensitive intermediate results of complex calculations, or it can be simply used as the additional semi-volatile SDRAM, for any embedded application. It can be also used to store factory default values, that can be restored on a reset or demand.
How does it work?
The click board™ uses the 47C16, an I2C serial chip with 16 Kbit and EEPROM backup, from Microchip. The memory cells are organized into 2048 bytes, each 8bit wide. The data is read and written by the I2C serial communication bus, routed to the respective pins of the mikroBUS™ (SCL and SDA pins). To access the device, the first byte sent from the host MCU should be the I2C slave address. In most cases, the master I2C device will be the host MCU itself. The slave IC2 address depends on the state of the hardware address pins on the EERAM 3.3V click. These pins are routed to the onboard SMD jumpers, labeled as A1 and A2, so they can be pulled either to a HIGH or to a LOW logic level. Besides the address pins, the I2C slave address is determined by the section of the device that needs to be accessed. There are two sections, accessed by a different slave address: SRAM section and the CONTROL REGISTER section. The datasheet of the 47C16 contains more information on these addresses and how to access certain groups of registers. However, provided click library functions allow easy and transparent operation with the EERAM 5V click. The provided example application demonstrates the usage of these library functions, and it can be used as a reference for future custom application development.
The EERAM 5V click can backup or restore its content, utilizing the integrated EEPROM non-volatile array, which is not directly accessible. There are several ways to achieve this:
- The most useful method is the auto-store method. To automatically store the data on power loss, the ASE bit of the status register should be set. This will allow the capacitor connected between the VCAP pin of the 47C16 I2C and GND to be used as a temporary power supply (roughly speaking), when the main power is lost (VCAP voltage drops under a certain threshold). It will provide enough power to store the data to the embedded EEPROM array.
- There is a hardware pin on the 47C16 IC, which is used to initiate the hardware (manual) store to EEPROM function. A low-to-high signal edge on the HS pin will cause the backup function to be executed. This pin is routed to the INT pin of the mikroBUS™.
- Auto-restore is initiated after every power on, when the capacitor voltage (VCAP) raises beyond the internally set threshold. It is automatically executed, and no special actions or procedures are needed to trigger this process. A small switch onboard, labeled as SW1 is used to disconnect the VCC power supply from the capacitor, preventing it from being charged and effectively disabling the auto-store and restore functions that way.
The store to EEPROM/backup function will not be executed if the SDRAM content has not been changed since the last time it was written to EEPROM. This is tracked by the AN bit of the status register.
The click board uses only 5V power rail from the mikroBUS™. The I2C lines are pulled to a HIGH logic level by the onboard resistors, so the device is ready to be used with 5V MCUs, right out of the box. Although the EERAM 5V click is designed to work only with 5V MCUs, there is also a 3.3V alternative version of this device. More information can be found on the product page of the EERAM 3.3V click.
Specifications
Type
SRAM
Applications
Provides an additional RAM memory for a wide range of embedded applications, especially useful if retaining of the working parameters is required upon the power failure or power off cycle
On-board modules
The 47C16 I2C, a serial EERAM from Microchip
Key Features
EERAM 5V click features 16 Kb of SRAM, with the automatic or manual backup and recall to/from the integrated EEPROM, upon power-down
Interface
I2C
Feature
No ClickID
Compatibility
mikroBUS™
Click board size
S (28.6 x 25.4 mm)
Input Voltage
5V
Pinout diagram
This table shows how the pinout on EERAM 5V click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
Jumpers and settings
Designator | Name | Default Position | Default Option | Description |
---|---|---|---|---|
JP1 | A1 | Left | 0 | Address select 1 |
JP2 | A2 | Left | 0 | Address select 2 |
SW1 | SW1 | Down | OFF | Automatic/manual data store and recall |
Buttons and LEDs
Designator | Name | Type | Description |
---|---|---|---|
LD1 | PWR | LED | Power Indication LED |
Software support
We provide a library for EERAM 5V click on our LibStock page, as well as a demo application (example), developed using MikroElektronika compilers and mikroSDK. The provided click library is mikroSDK standard compliant. The demo application can run on all the main MikroElektronika development boards.
Library Description
Key functions:
void eeram5v_read (uint16_t address, uint8_t * pDataOut, uint8_t countOut);
- Reads the data from the selected SRAM address onwards.void eeram5v_write (uint16_t address, uint8_t * pDataIn, uint8_t countIn);
- Writes the data to SRAM memory array.
Examples Description
The application is composed of three sections:
- System Initialization - I2C module initialization
- Application Initialization - EERAM5V driver initialization
- Application Task – Writing data to click memory and displaying the read data via UART.
void applicationTask() { mikrobus_logWrite("Writing MikroE to SRAM memory, from address 0x0150:",_LOG_LINE); eeram5v_write(0x0150, wrData, 9); mikrobus_logWrite("Reading 9 bytes of SRAM memory, from address 0x0150:",_LOG_LINE); eeram5v_read(0x0150, rdData, 9); mikrobus_logWrite("Data read: ",_LOG_TEXT); mikrobus_logWrite(rdData,_LOG_LINE); Delay_ms(1000); }
The full application code, and ready to use projects can be found on our LibStock page.
Other mikroE Libraries used in the example:
- I2C
- UART
Additional notes and information
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.