ON 20030713@8:21:23 AM at page: http://www.sxlist.com/techref/scenix/lib/io/osi2/i2c/i2c_sx.htm JMN-EFP-786 James Newton Says I was debugging my project that uses an I2C EEprom and found a small bug in the example VP code. At the end of the I2CRead subroutine, after sending a Stop, the example code sends an ACK. This appears to cause the Start sent with the next command to fail, not a big deal since the Start is repeated again. The documentaton for the I2C EEproms, under READ OPERATIONS, states:
"... The 24xx00 will then issue an acknowledge and transmits the eight bit data word. The master will not acknowledge the transfer but does generate a stop condition and the device discontinues transmission (Figure 8-2). After this command, ..."
Comment out the 2 lines that send the ACK and it works fine:
:non_seq JMP Send_stop ; no, signal stop & exit ; doc says "The Master will not acknowledge the transfer but does generate a stop ..." ; CLRB out_bit ; yes, setup acknowledge bit ; CALL Write_bit ; and send it RETP ;leave and fix page bitsON 20030713@8:25:36 AM at page: http://www.sxlist.com/techref/scenix/lib/io/osi2/i2c/i2c_sx.htm JMN-EFP-786 James Newton edited the page. Difference: http://www.sxlist.com/techref/diff.asp?url=H:\techref\scenix\lib\io\osi2\i2c\i2c_sx.htm&version=1