Hi All.
I need some advice with pull-up resistors when using the I2C expander (MCP23008) and extenders(PCA9600). I am a bit confused on where I need pullup resistors, where to place optional resistors and if I should use trim pots rather than normal resistors.
Background: I am currently in conceptional phase of my home automation system and have decided on using I2C for communication between multiple Master controllers and their Slaves. Due to cable lengths a I2C buffer extender PCA9600 will be used. Slaves that do not require a controller will be connected to MCP23008 expanders which give me 8 GPIOs, e.g. light switches. The MCP23008 will be powered by 5V whereas PCA9600 will probably be connected to 9V. Cables will be standard twisted pair 2x2x0.8 EIB/KNX cable running SDA, SCK, Gnd and 12-30V (with cable losses, 9V shouldn't be an issue for the buffer on the slave side). Cable length will vary up to 30ish m. Due to the number of master controllers and slaves that will be rewuired throughout the house, I will be making custom assembled PCB boards.
Now my issue are the pullup resistors.
-
Master controller (See image 1, section 5). I know that pullup resistors will be required before and after the PCA9600 buffer. However, the values seem to differ depending on cable length.
Q1: Am I correct that the resistor value (R1, R2) )between Arduino and PCA9600 is always constant and only the resistors (R3, R4) on the cable side vary?
Q2: With varying cable lengths, should one rather use a tripot instead of normal resistors with a fix value for R3 & R4? If so, what range would be best suitable?
Q3: Is a higher voltage of 9V for PCA9600 an advantage or should I stick to the 5V as in all the examples in the datasheet? I know that P82B715 would be less prone to interference, but PCA9600 seems to be a bit different in many ways. -
Slave side (See image 2, section 3 & 4) Slave side has both PCA9600 and MCP23008.
Q4: Based on the general datasheets on buffers, pullup resistors (R1, R2) on the buffered side are not required at the slave as they are already at the controller side. Is that correct understanding? If so, I would keep empty solder pads on the PCB should occasionally be required.
Q4: I am unclear from the datasheets if pullup resistors (R3, R4) are required between PCA9600 and MCP23008 or if I should just leave optional solder pads here.
Image 1 - Master controler
Image 2 - Slave
Thanks
Mike