I²C Byte Write

Please put this data at this address…

An I²C byte write is used to write a byte of data to a specific address.

i2c-byte-write1.png

EEPROM Byte Write Procedure

  1. Check for bus idle
  2. Send start condition, wait for it to complete
  3. Write control byte (with device address)
  4. Check for bus idle
  5. Write high byte of memory address
  6. Check for bus idle
  7. Write low byte of memory address
  8. Check for bus idle
  9. Write byte of data
  10. Check for bus idle
  11. Send stop condition, wait for it to complete
  12. Wait for write cycle to complete (ACK from EEPROM)

Example Code (PIC18)

Specific I²C function names and parameters may differ depending on your target device, compiler and/or peripheral library.

IdleI2C(); // Ensure module is idle
StartI2C();
while (SSPCON2bits.SEN);
// Initiate START condition
// Wait until START condition is over
WriteI2C(0xA0); // Write 1 byte - R/W bit should be 0
IdleI2C(); // Ensure module is idle
WriteI2C(HighAddress); // Write high address byte to EEPROM
IdleI2C(); // Ensure module is idle
WriteI2C(LowAddress); // Write low address byte to EEPROM
IdleI2C(); // Ensure module is idle
WriteI2C(Data); // Write data byte to EEPROM
IdleI2C(); // Ensure module is idle
StopI2C();
while (SSPCON2bits.PEN);
// Send STOP condition
// Wait until STOP condition is over
while (EEAckPolling(0xA0)); // Wait for write cycle to complete
© 2024 Microchip Technology, Inc.
Notice: ARM and Cortex are the registered trademarks of ARM Limited in the EU and other countries.
Information contained on this site regarding device applications and the like is provided only for your convenience and may be superseded by updates. It is your responsibility to ensure that your application meets with your specifications. MICROCHIP MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND WHETHER EXPRESS OR IMPLIED, WRITTEN OR ORAL, STATUTORY OR OTHERWISE, RELATED TO THE INFORMATION, INCLUDING BUT NOT LIMITED TO ITS CONDITION, QUALITY, PERFORMANCE, MERCHANTABILITY OR FITNESS FOR PURPOSE. Microchip disclaims all liability arising from this information and its use. Use of Microchip devices in life support and/or safety applications is entirely at the buyer's risk, and the buyer agrees to defend, indemnify and hold harmless Microchip from any and all damages, claims, suits, or expenses resulting from such use. No licenses are conveyed, implicitly or otherwise, under any Microchip intellectual property rights.