Page 1 of 1

PCF8575C - 16-bit I2C I/O expander

Posted: 30 July 2006, 13:08 PM
by jay
I am building an interface to my home alarm system (Ademco VISTA 50P). It requires 32 I/O, and 2 rs232s. I looked at Don's AN-203 (I/O Expansion techniques) which uses a PCF8574A as an example. I have been looking at the PCF8575C (16 bit version) for my application. It appears to me programming would be just like the 8574A except two data bytes vs one. I would like to separating the CPU (ZX-44 based) complex from the I/O boards by about a meter using i2C. Any gotcha's I should watch out for? -- Jay

Posted: 01 August 2006, 16:30 PM
by dkinzer
I haven't used the 16-bit expander myself. I suspect that you are correct that you simply read/write two bytes instead of just one.

A longer cable will present a higher bus capacitance to the I2C drivers. You will undoubtedly have to use smaller pullup resistors on SDA/SCL with the longer cable than you would for a shorter cable. The Atmel documentation gives formulae for the minimum and maximum value for the pullup resistors as follows for speeds up to 100KHz:

Code: Select all

Rmin = (Vcc - 0.4) / 3mA
Rmax = 1000nS / Cb
This suggests that the maximum allowable bus capacitance, Cb, is about 650pF. The specifications for your cable may include a capacitance value per length of cable.

There are different specifications for operating above 100KHz. Generally, the longer the bus, the slower will be your maximum operating speed.

Posted: 02 August 2006, 9:27 AM
by jay
Earlier in the spec it says: ".. limited by the bus capacitance limit of 400pF .. ". Appreciate the pointer.
Jay