I use 4 EEPROMs of microchip 24LC1025 in 28335 i2c bus.
I use i2c tx & rx fifo interrupt (max 16 byte). the 24LC1025 memory is manged by page unit (of 128 byte size).
When I write into eeprom, all operation is ACKED.
I have a problem, which is the ACK Polling procedure.
ACK polling procedure is only that a write control byte for check ACKED.
How can I send only a write control byte?
the followings are my code part.:
// ---------------- Sending I2caRegs.I2CSAR = pMsg->slaveAddress; I2caRegs.I2CMDR.all = 0x6EA0; // (RM=1, no FIFO data) //---------------- In ISR i2c_int1a_Isr if(IntSource ==I2C_ARDY_ISRC) { // OK. Acked. // end of it. } if( IntSource == I2C_NACK_ISRC ) { if( I2caRegs.I2CSTR.bit.NACK == 1) { I2caRegs.I2CMDR.bit.STP = 1; I2caRegs.I2CSTR.all = I2C_CLR_NACK_BIT; // NACKed. // re-try ACK polling } } //------------------- end of code -----------------------------
Cho, Cheol-Hyeon.