PCF8575C - 16-bit I2C I/O expander
PCF8575C - 16-bit I2C I/O expander
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
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:
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.
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
There are different specifications for operating above 100KHz. Generally, the longer the bus, the slower will be your maximum operating speed.
- Don Kinzer