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 bits

ON 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