Hello,
Ive been trying to communicate between two arduinos (Uno and Uno, or Mega and Uno) using the I2C differential breakout component PCA9615.
Im using the Wire.h library, and the simple example code:
https://www.arduino.cc/en/Tutorial/MasterWriter
This code works fine when connecting the arduinos directly (common GND and A4 to A4, A5 to A5), and monitor prints the data.
Problem comes up when trying to use the component , connections are as following from both ends of two arduinos:
-
3.3[v] from arduino to VDDA
-
GND to GND
-
A4 or pin 20 on Mega to the SDA
-
A5 or pin 21 to the SCL
-
connection between PCA9615’s using RJ45 cables, i tryed several types: CAT5, CAT5e,CAT6.
*soldering seems fine to me, and when one end is connected to computer, it supplies voltage to other end through the cables.
-
Common GND seems to be fine through components - data transfer is good when disconnecting only the SDA, SCL lines and connecting them directly between the to arduinos and not through the components.
-
One thing i noticed - connection of the SCL pin to arduino seems to freeze processing, two examples: 1) using i2c scanner when connecting the SCL, monitor gets stuck on scanning. 2) Im using an RF receiver which collects inputs from a joystick, the data flows fine until connecting the SCL to arduino.
I didnt quite understand if pullup resistors are needed in these components, especially when using the Mega, cause i know it has internal resistors when connecting to the right pins.
If anyone can help il be glad.