DESCRIPTION
SWI EEPROM Click is a compact add-on board that provides a highly reliable memory solution. This board features the AT21CS01, a single-wire serial EEPROM with a unique, factory-programmed 64-bit serial number from Microchip Technology. The AT21CS01 has an ultra-high write endurance capability allowing more than one million cycles for each memory location to meet the requirements for today's high-write endurance applications. It is internally as 128 words of 8 bits each with achieved communication through a single I/O pin with Standard-Speed and High-Speed mode options. Also, it offers a security register with a factory-programmed serial number, which makes it the easiest way to add identification to various accessories and consumables. This Click board™ is suitable for applications where identification or memory storage is required.
SWI EEPROM Click is supported by a mikroSDK compliant library, which includes functions that simplify software development. This Click board™ comes as a fully tested product, ready to be used on a system equipped with the mikroBUS™ socket.
HOW DOES IT WORK?
SWI EEPROM Click, as its foundation, uses the AT21CS01, 2-pin serial electrically erasable and programmable read-only memory (EEPROM) that harvests energy from the SI/O pin to power the integrated circuit from Microchip Technology. It provides 1,024 bits organized as 128 words of 8 bits each, a security register with a 64-bit factory programmed serial number, and an extra 16-bytes of user-programmable and permanently lockable storage. It delivers a guaranteed unique serial number for inventory tracking, asset tagging and can always protect the data if needed.
The AT21CS01 benefit from 100 years of data retention, combining their unprecedented data storage with excellent energy efficiency. It is characterized by high reliability and ultra-high writing endurance capability, allowing more than one million cycles for each memory location to meet today's high-write endurance applications' requirements.
SWI EEPROM Click communicates with MCU using the Single-Wire interface that, by definition, requires only one data line (and ground) for communication with MCU. The SI/O pin routed to the PWM pin of the mikroBUS™ socket is a bidirectional input/output pin used to serially transfer data to and from the device featuring a maximum 15.4Kbps bit rate in Standard-Speed mode and 125Kbps in High-Speed mode.
The AT21CS01 uses a modified I2C interface to extract power from the reading and writing sequences. The software sequence sent to the device is an emulation of what would be sent to an I2C serial EEPROM, except that a 4-bit opcode replaces a typical 4-bit device type identifier of 1010b in the device address. The device has been architected to allow for rapid deployment and significant reuse of existing I2C firmware.
This Click board™ can be operated only with a 3.3V logic voltage level. The board must perform appropriate logic voltage level conversion before use with MCUs with different logic levels. However, the Click board™ comes equipped with a library containing functions and an example code that can be used, as a reference, for further development.
SPECIFICATIONS
Type | EEPROM |
Applications | Can be used for applications where identification or memory storage is required. |
On-board modules | AT21CS01 - 2-pin serial electrically erasable and programmable read-only memory (EEPROM) that harvests energy from the SI/O pin to power the integrated circuit from Microchip Technology |
Key Features | High reliability, a unique, factory-programmed 64-bit serial number, ultra-high write endurance, Standard-Speed and High-Speed mode options, and more. |
Interface | SWI |
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 SWI EEPROM Click 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 | SI/0 | Single-Wire Data IN/OUT | |
NC | 2 | RST | INT | 15 | NC | ||
NC | 3 | CS | RX | 14 | NC | ||
NC | 4 | SCK | TX | 13 | NC | ||
NC | 5 | MISO | SCL | 12 | NC | ||
NC | 6 | MOSI | SDA | 11 | NC | ||
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 |
---|---|---|---|
LD1 | PWR | - | Power LED Indicator |
SWI EEPROM CLICK ELECTRICAL SPECIFICATIONS
Description | Min | Typ | Max | Unit |
---|---|---|---|---|
Supply Voltage | - | 3.3 | - | V |
Memory Size | - | - | 1 | Kbit |
Write Endurance | 1.000.00 | - | - | Write Cycles |
Data Retention | 100 | - | - | Years |
Operating Temperature Range | -40 | +25 | +85 | °C |
SOFTWARE SUPPORT
We provide a library for the SWI EEPROM Click as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.
Package can be downloaded/installed directly from NECTO Studio Package Manager(recommended way), downloaded from our LibStock™ or found on mikroE github account.
Key functions:
swieeprom_init
- SWI EEPROM initialization function.swieeprom_write_data_to_memory
- SWI EEPROM write data to memory.swieeprom_read_data_from_memory
- SWI EEPROM read data from memory.
Examples description
This application shows capability of SWI EEPROM Click board. It checks if device is present, initializes it and show it's functionality to read from memory and write to memory.
The demo application is composed of two sections :
static void application_task ( void ) { #define WRITE_DATA_STRING "MikroE" #define START_MEMORY_ADDRESS 0x10 //write memory if ( swieeprom_write_data_to_memory( &swieeprom, START_MEMORY_ADDRESS, WRITE_DATA_STRING, 6 ) ) { log_line( " > Write ERROR!" ); } else { log_line( " > Write done!" ); } Delay_ms( 1000 ); //read_memory uint8_t rx_buf[ 8 ] = { 0 }; if ( swieeprom_read_data_from_memory( &swieeprom, START_MEMORY_ADDRESS, rx_buf, 6 ) ) { log_line( " > Read ERROR!" ); } else { log_txt( " > Read data: " ); log_line( rx_buf ); if ( 0 != strstr( rx_buf, WRITE_DATA_STRING ) ) { log_line( " > Data Match!" ); } else { log_line( " > Data Mismatch!" ); } } Delay_ms( 1000 ); //clear memory if ( swieeprom_clear_data_from_memory( &swieeprom, START_MEMORY_ADDRESS, 6 ) ) { log_line( " > Clear ERROR!" ); } else { log_line( " > Clear done!" ); } Delay_ms( 1000 ); //read_memory uint8_t rec_buf[ 8 ] = { 0 }; if ( swieeprom_read_data_from_memory( &swieeprom, START_MEMORY_ADDRESS, rec_buf, 6 ) ) { log_line( " > Read ERROR!" ); } else { log_txt( " > Read data: " ); log_line( rec_buf ); if ( 0 != strstr( rec_buf, WRITE_DATA_STRING ) ) { log_line( " > Data not cleared!" ); } else { log_line( " > Data cleared!" ); } } log_line( "******************************************" ); Delay_ms( 3000 ); }
The full application code, and ready to use projects can be installed directly from NECTO Studio Package Manager(recommended way), downloaded from our LibStock™ or found on mikroE github account.
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.
RESOURCES
Click board™ Catalog
Click Boards™
mikroBUS™
mikroSDK
DOWNLOADS
SWI EEPROM click example on Libstock
SWI EEPROM click 2D and 3D files
SWI EEPROM click schematic
AT21CS01 datasheet