Hello, I am designing a system for 2 Arduinos (Uno and Mega) to communicate via I2C over a distance of approximately 20m. I plan on using Cat6 cable for this.
I did some research and found out that I2C has a relatively short range and so buffers are required to extend the range. I plan on using the P82B715PN I2C bus extender. I found the datasheet, which is shown below.
The basic wiring of the buffer is simple ie SDA or SCL to either Sx or Sy and Lx and Ly are the resulting buffered lines. I am a bit confused however about the pull up resistors required. In Section 8 there are a few example diagrams showing the different possible layouts and some of the technical information is over my head at my current level. So could someone simplify it please? On page 7, figure 6, there is a diagram of a buffered I2C circuit showing locations of the pull up resistors and it is referred to as an arrangement that produces the 'best system performance' in previous text. on a regular short distance I2C circuit there would be pull up resistors on the SDA and SCL lines but on this diagram they are only on the buffered and regular SDA lines, why?
Also, there is a method for calculating the required values of the pull-up resistors but I do not understand what the values mean. There are ranges given as guidelines and assumptions to make such as the load and trace capacitance of each device, but what is the trace capacitance? Would the buffer count as a device? There is a range given for cable capacitance but I dont know whether to assume a high or low value would be preferable. For the final value of the pull-ups, would a higher or lower value be preferable for signal quality? And would all the pull ups have to be equal?
For the transmission through the Cat6 cable, I also did research and found out that the buffered SDA and SCL lines could be transmitted over 2 separate pairs each paired with either VCC or ground, but the VCC and ground need to be decoupled using a capacitor (one of the sources I found: http://cladlab.com/electronics/circuit-design/communication-protocols/i2c-protocol#using-twisted-pair-cabling-and-a-buffer-ic). I then tried researching decoupling capacitors but again I didnt fully understand it. From what I could deduce it is basically a capacitor put in between ground and VCC, is this correct? Would pairing both the buffered SDA and SCL with ground be more beneficial?
These are all the queries I could think of. Sorry if I seem like I'm just trying to get answers the easy way, I prefer to understand a problem as best as I can before I attempt solving it.
So if you could help me I would be very grateful.