How does it work?
EEPROM 6 Click is based on the DS28EC20, a 20Kb of data EEPROM with a fully featured 1-Wire interface in a single chip from Analog Devices. The memory is organized as 80 pages of 256 bits each. In addition, the device has one page for control functions such as permanent write protection and EPROM-Emulation mode for individual 2048-bit (8-page) memory blocks. A volatile 256-bit memory page called the scratchpad acts as a buffer when writing data to the EEPROM to ensure data integrity. Data is first written to the scratchpad, from which it can be read back for verification before transferring it to the EEPROM.
Each DS28EC20 has its own unalterable and unique 64-bit registration number. The registration number guarantees unique identification and is used to address the device in a multidrop 1-Wire net environment. In addition to the EEPROM, the device has a 32-byte volatile scratchpad. Writes to the EEPROM array are a two-step process. First, data is written to the scratchpad and then copied into the main array. The user can verify the data in the scratchpad before copying.
The protocol for accessing the DS28EC20 through the 1-Wire interface consists of additional steps:
- Initialization sequence – It consists of a reset pulse transmitted by the MCU followed by the presence pulse transmitted by the DS28EC20, which gives the MCU information that the DS28EC20 is on the bus and is ready to operate.
- ROM Function Command – Once the MCU has detected a presence, it can issue one of the seven ROM function commands that the DS28EC20 support.
- Memory Function Command – Commands necessary for accessing the memory of the DS28EC20.
- Transaction/Data – The idle state for the 1-Wire bus is high. If for any reason a transaction needs to be suspended, the bus MUST be left in the idle state if the transaction is to resume. If this does not occur and the bus is left low for more than 16μs (Overdrive speed) or more than 120μs (Standard speed), one or more devices on the bus can be reset.
The EEPROM 6 Click communicates with MCU using the 1-Wire interface that supports both a Standard and Overdrive communication speed of 15.4kbps (max) and 90kbps (max), respectively. If not explicitly set into the Overdrive mode, the DS28EC20 communicates at Standard speed. The 1-Wire communication line is routed to the SMD jumper labeled as GP SEL, which allows routing of the 1-Wire communication either to the PWM pin or to the AN pin of the mikroBUS™ socket. These pins are labeled as GP0 and GP1 respectively, the same as the SMD jumper positions, making the selection of the desired pin simple and straightforward.
This Click board™ is designed to be operated with both 3.3V and 5V logic voltage levels that can be selected via VCC SEL jumper. This allows for both 3.3V and 5V capable MCUs to use the 1-Wire communication lines properly. However, the Click board™ comes equipped with a library that contains easy to use functions and an example code that can be used as a reference for further development.
Specifications
Type
EEPROM
Applications
Can be used for applications like device authentication, analog-sensor calibration, ink and toner printer cartridge identification, data for self-configuration of central office switches, wireless base stations, or other modular-based rack systems.
On-board modules
EEPROM 6 Click is based on the DS28EC20, a 20Kb of data EEPROM with a fully featured 1-Wire interface in a single chip from Maxim Integrated.
Key Features
Unique registration number that ensures error-free device selection, switchpoint hysteresis and filtering to optimize performance in the presence of noise, 200k write/erase cycle endurance, and more.
Interface
1-Wire
Feature
No ClickID
Compatibility
mikroBUS™
Click board size
S (28.6 x 25.4 mm)
Input Voltage
3.3V or 5V
Pinout diagram
This table shows how the pinout on EEPROM 6 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 |
JP1 | VCC SEL | Right | Power Supply Voltage Selection 3V3/5V: Left position 3V3, Right position 5V |
JP2 | GP SEL | Right | 1-Wire Data Communication Pin Selection: Left position GP1, Right position GP0 |
EEPROM 6 Click electrical specifications
Description | Min | Typ | Max | Unit |
---|---|---|---|---|
Supply Voltage | -0.5 | – | 6 | V |
Memory Size | – | – | 20 | Kb |
Write/Erase Cycles (Endurance) | 200k | – | – | cycle |
Operating Temperature Range | -40 | – | +85 | °C |
Software Support
We provide a library for the EEPROM 6 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
The EEPROM 6 Click utilises the “One_Wire” Library for it’s communications and functionalities.
Key functions:
void eeprom6_one_wire_init ( )
– Function initialises one wire communication.void eeprom6_read_mem ( uint16_t reg_adr, uint16_t n_len )
– The Read Memory function allows data to be sequentially read starting at an initial address.uint8_t eeprom6_write_mem ( uint16_t reg_adr, uint16_t n_len )
– The Write Memory function allows data bytes to be written sequentially.
Examples description
The application is composed of three sections :
- System Initialization – Initializes LOG structure.
- Application Initialization – Initalizes the device, performs safety check, and start to write log.
- Application Task – This example shows capabilities of EEPROM 6 Click board by writting “MikroE” into first 6 memory locations, and then reading it back.
void application_task ( ) { mikrobus_logWrite( "Writing : ", _LOG_TEXT ); mikrobus_logWrite( val_in, _LOG_TEXT ); eeprom6_write_mem( 0x0000, 9 ); Delay_ms( 100 ); mikrobus_logWrite( "Reading : ", _LOG_TEXT ); eeprom6_read_mem ( 0x0000, 9 ); mikrobus_logWrite( val_out, _LOG_TEXT ); mikrobus_logWrite( "-------------------", _LOG_LINE ); Delay_ms( 5000 ); }
The full application code, and ready to use projects can be found on our LibStock page.
Other mikroE Libraries used in the example:
- void eeprom6_one_wire_init ( ) – Function initialises one wire communication , returns Family Code.
- void eeprom6_rom_skip ( ) – Function sends skip ROM command.
- void eeprom6_read_mem ( uint16_t reg_adr, uint16_t n_len ) – The Read Memory function allows data to be sequentially read starting at an initial address.
- uint8_t eeprom6_write_mem ( uint16_t reg_adr, uint16_t n_len ) – The Write Memory function allows data bytes to be written sequentially, returns 1 if error has occured.
The full application code, and ready to use projects can be found on our LibStock page.
Other mikroE Libraries used in the example:
- One Wire
- 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.