PCA9665_2 © NXP B.V. 2006. All rights reserved.
Product data sheet Rev. 02 — 7 December 2006 51 of 91
NXP Semiconductors PCA9665
Fm+ parallel bus to I2C-bus controller
the SCL line is held LOW by the PCA9665 after the 2bytes have been sent
the PCA9665 sends an Interrupt, sets SI = 1 and updates I2CSTA register
I2CSTA reads 28h
5. Program I2CCOUNT = 40h (64 bytes to read and Last byte acknowledged).
6. Load I2CDAT with A1h (I2C-bus slave address and Read command).
7. Program I2CCON with STA = 1, SI = 0, MODE = 1.
the PCA9665 sends a ReSTART command
an interrupt is asserted and the I2CSTA register is updated
the I2CSTA register reads 10h
8. Program I2CCON with STA = STO = SI= 0, MODE = 1.
address A1h is sent followed by a read of 64 data bytes
the last data byte is acknowledged
the SCL line is held LOW by the PCA9665 after the data is read
the PCA9665 sends an interrupt and updates I2CSTA register
I2CSTA reads 50h
9. The microcontroller reads the 64 data bytes from the PCA9665.
10. Program I2CCOUNT = C0h (64 bytes and Last byte is not acknowledged).
11. Program I2CCON with STA =STO = SI = 0, MODE = 1.
12. The PCA9665 reads 64 bytes and does not acknowledge the last byte.
the PCA9665 sends an Interrupt and updates I2CSTA register
the I2CSTA reads 58h
the SCL line is held LOW by the PCA9665
the slave should release the SDA line
13. The microcontroller reads the 64 bytes from the PCA9665.
14. Program I2CCON with SI = STA= 0, ST0 = 1, MODE = X.
the PCA9665 sends a STOP condition
no interrupt is generated by the PCA9665
the I2CSTA register contains F8h
8.6 I2CCOUNT register
Whena wr ite to the I2CCOUNT register is requested, the bufferpointer is reset and points
at the first byte. Loading of the data in the I2CDAT buffer then starts at the first byte.
Once an operation has been performed (SI =1 and an interr upt is generated), the
I2CCOUNT register contains the number of bytes that have been received (Receiver
mode) or the number of bytes that have been sent (Transmitter mode). SeeTable42 for
more information.
In Buffered Transmitter mode, the first byte that is sent to the I2C-bus is always the first
byte that has been loaded in the I2CDAT buffer.