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
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 SWI EEPROM 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 |
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.