I'm trying to get into capacitive sensing and therefore need a stable communication between an Arduino and a TI FDC2114, which is already soldered on an EVM. Both support I2C, and because of the different operating voltage of 5V for the Arduino and 3.3V for the FDC, I'm using an PCA9512A bidirectional level shifter and 10k pullups to 5V (Arduino Mega internal) as well as to 3.3V.
When scanning the address of the FDC, I sometimes get a positive response (ACK on last clock after the requested 7bit address) but mostly a NACK. Even if I receive a ACK, some seconds later the FDC can't pull down the SDA to 0V anymore and I get NACK again. In case of NACK, it may help to unplug SDA and SCL while under voltage and plug them back in, but it doesn't work every time. I've already changed all wires, so it shouldn't be an mechanical problem. I also observed that the peak Voltage is 3.4V on SCL and more than 3.6V on SDA, but I don't know if this could cause any problems and also where the voltage difference results from.
When using the included MCU of the EVM, there are no problems at all. What am I missing, why doesn't it work reliable?

I used an 2-channel Oscilloscope. SCL on the first and SDA on the second channel. I measured the difference between HIGH and LOW on both SDA and SCL, which resulted in 3,6V (some peaks up to 3,9V!) Besides that, SDA as well as SCL are a perfect square signal. I observed those points right in front of SDAOUT and SCLOUT. I will upload trace images on wednesday, because it's not my own oscilloscope. The same applies to measurement of currents.
– J. Mustard Oct 02 '17 at 15:04ACCpin on the PCA9512A is connected. (b) The physical location of the capacitors, is important. (c) You said: "10k pullups to 5V (Arduino Mega internal)" An Arduino Mega uses the ATmega1280 MCU, but its spec (see page 355) says the internal pull-up resistors are anywhere between 20k to 50k. (e) I look forward to seeing the scope traces. – SamGibson Oct 03 '17 at 18:13