FRAM 3 Click Board
FRAM 3 Click Board
The FRAM 3 Click Board™ carries a ferroelectric RAM module. Ferroelectric RAM, also known as FRAM, is a non-volatile memory type, with characteristics that are comparable to much faster DRAM memory modules. It offers a much faster alternative to common serial FLASH and EEPROM modules, which use conventional technologies.
The FRAM 3 Click Board™ uses the MB94R330, a serial FRAM module from Fujitsu Semiconductor LTD. FRAM embedded IC is a proven utility in security applications such as IC cards.
How Does The FRAM 3 Click Board™ Work?
The FRAM 3 Click Board™ utilizes the MB94R330, which is an FRAM (Ferroelectric Random Access Memory) authentication IC using the ferroelectric process and silicon gate CMOS process technologies for forming the nonvolatile memory cells.
The MB94R330 adopts an original communication protocol based on the two-wire serial interface (I2C BUS), a hardware cryptographic macro and a proprietary control core. It is suitable for detecting cloned peripherals and accessories which is used in an electric equipment such as a printer, multifunction printer and so on.
Ferroelectric technology is still being developed and perfected, but the advantages have already been demonstrated. This technology exploits the properties of ferroelectric materials to retain the electric field after they have been exposed to it, the same way the ferromagnetic materials retain their magnetic field. This phenomenon is employed to polarize the FRAM cells and store the information. One of the areas that still need to be improved is the thermal instability, especially on high temperatures. When the ferroelectric material reaches the Curie temperature, its properties are degraded.
Therefore, the high temperature might damage the content of the FRAM module. This is illustrated by the data retention period: while working at 55˚C, the data retention period is 10 years. Still, combined with the endurance of 1010 read/write cycles at bus write speed, this type of memory still represents an ideal solution for applications that have to do a frequent writing to the non-volatile memory locations.
The FRAM 3 Click Board™ uses the I2C communication protocol, allowing very fast serial clock rates. To ensure reliable data transaction and to avoid accidental write to the memory array, the device employs certain protection mechanisms.
The MB94R330 supports the I2C bus, and operates as a slave device. The role of the communication for the I2C bus is different from "Master" side and "Slave" side. The master side has the authority to initiate control. Furthermore, the party line can be connected which connects two or more slave devices to one master. In this case, the slave side has each unique address respectively, and after specifying the address on the slave side, the master side starts to communicate.
The FRAM 3 Click Board™ is suitable for detecting cloned peripherals and accessories which is used in an electric equipment such as a printer, multifunction printer and so on.
SPECIFICATIONS
Type | FRAM |
Applications | It is suitable for detecting cloned peripherals and accessories which is used in an electric equipment such as a printer, multifunction printer and so on. |
On-board modules | MB94R330, a serial FRAM module from Fujitsu Semiconductor LTD. |
Key Features | Free access area 112 bytes, Resource counter area 4 bytes x 8 slot, ID area 8bytes x 4 slot |
Interface | I2C |
Compatibility | mikroBUS |
Click Board™ size | S (28.6 x 25.4 mm) |
Input Voltage | 3.3V |
PINOUT DIAGRAM
This table shows how the pinout of the FRAM 3 Click Board™ corresponds to the pinout on the mikroBUS socket (the latter shown in the two middle columns).
Notes | Pin | Pin | Notes | ||||
---|---|---|---|---|---|---|---|
NC | 1 | AN | PWM | 16 | NC | ||
NC | 2 | RST | INT | 15 | NC | ||
NC | 3 | CS | RX | 14 | NC | ||
NC | 4 | SCK | TX | 13 | NC | ||
NC | 5 | MISO | SCL | 12 | SCL | I2C Clock | |
NC | 6 | MOSI | SDA | 11 | SDA | I2C Data | |
Power Supply | 3.3V | 7 | 3.3V | 5V | 10 | NC | |
Ground | GND | 8 | GND | GND | 9 | GND | Ground |
ONBOARD SETTINGS AND INDICATORS
Label | Name | Default | Description |
---|---|---|---|
JP1 | A0 | Left | Select address 0 |
JP2 | A1 | Left | Select address 1 |
JP3 | A2 | Left | Select address 2 |
Software Support
We provide a library for the FRAM 3 Click Board™ 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 provides control over reading and writing data via I2C module. You can use 2 specific functions for reading and writing to memory.
Key Functions
void fram3_read_data ( uint8_t *data_buf, uint8_t n_buf_size )
- Generic read data functionvoid fram3_write_data ( uint8_t *data_buf, uint8_t n_buf_size )
- Generic write data functionuint8_t fram3_read_free_access_memory ( uint8_t start_addr, uint8_t *data_buf, uint8_t n_buf_size )
- Memory read functionuint8_t fram3_write_free_access_memory ( uint8_t start_addr, uint8_t *data_buf, uint8_t n_buf_size )
- Memory write function
Example Description
The application is composed of three sections :
- System Initialization - Initializes I2C module
- Application Initialization - Initializes driver init
- Application Task - Writes and then reads data from memory
void application_task ( ) { mikroBUS_logWrite( " - Writing... ", _LOG_LINE ); Delay_ms( 500 ); status_check = fram3_write_free_access_memory( 0x00, &write_data[ 0 ], 7 ); if ( status_check == FRAM3_ERROR ) { mikroBUS_logWrite( " - ERROR WRITING!!! ", _LOG_LINE ); for ( ; ; ); } mikroBUS_logWrite( " - Reading... ", _LOG_LINE ); Delay_ms( 500 ); status_check = fram3_read_free_access_memory( 0x00, &read_data[ 0 ], 7 ); if ( status_check == FRAM3_ERROR ) { mikroBUS_logWrite( " - ERROR READING!!! ", _LOG_LINE ); for ( ; ; ); } for ( cnt = 0; cnt < 7; cnt++ ) { mikroBUS_logWrite( &read_data[ cnt ], _LOG_BYTE ); Delay_ms( 100 ); } mikroBUS_logWrite( "", _LOG_LINE ); Delay_ms( 1000 ); mikroBUS_logWrite( "__________________________", _LOG_LINE ); Delay_ms( 500 ); }
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 a USB UART Click Board™, USB UART 2 Click Board™ or RS232 Click Board™ 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
The FRAM 3 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.
Software Support
We provide a library for the FRAM 3 Click Board™ 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 provides control over reading and writing data via I2C module. You can use 2 specific functions for reading and writing to memory.
Key Functions
void fram3_read_data ( uint8_t *data_buf, uint8_t n_buf_size )
- Generic read data functionvoid fram3_write_data ( uint8_t *data_buf, uint8_t n_buf_size )
- Generic write data functionuint8_t fram3_read_free_access_memory ( uint8_t start_addr, uint8_t *data_buf, uint8_t n_buf_size )
- Memory read functionuint8_t fram3_write_free_access_memory ( uint8_t start_addr, uint8_t *data_buf, uint8_t n_buf_size )
- Memory write function
Example Description
The application is composed of three sections :
- System Initialization - Initializes I2C module
- Application Initialization - Initializes driver init
- Application Task - Writes and then reads data from memory
void application_task ( ) { mikroBUS_logWrite( " - Writing... ", _LOG_LINE ); Delay_ms( 500 ); status_check = fram3_write_free_access_memory( 0x00, &write_data[ 0 ], 7 ); if ( status_check == FRAM3_ERROR ) { mikroBUS_logWrite( " - ERROR WRITING!!! ", _LOG_LINE ); for ( ; ; ); } mikroBUS_logWrite( " - Reading... ", _LOG_LINE ); Delay_ms( 500 ); status_check = fram3_read_free_access_memory( 0x00, &read_data[ 0 ], 7 ); if ( status_check == FRAM3_ERROR ) { mikroBUS_logWrite( " - ERROR READING!!! ", _LOG_LINE ); for ( ; ; ); } for ( cnt = 0; cnt < 7; cnt++ ) { mikroBUS_logWrite( &read_data[ cnt ], _LOG_BYTE ); Delay_ms( 100 ); } mikroBUS_logWrite( "", _LOG_LINE ); Delay_ms( 1000 ); mikroBUS_logWrite( "__________________________", _LOG_LINE ); Delay_ms( 500 ); }
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 a USB UART Click Board™, USB UART 2 Click Board™ or RS232 Click Board™ 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
The FRAM 3 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.
FRAM 3 Click Board
Frequently Asked Questions
Have a Question?
Be the first to ask a question about this.