This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

FDC1004: Trouble initiating I2C communication between Arduino and 3.3V Slave

Part Number: FDC1004

Hi to all, first post in here, please be kind.  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've read an text on Kynix Semiconductor Electronic Blog , but it not help me anymore.

A few points for clarification: In the schematics the pullups on the 5V-side are wrong. They are internal, not external as the image suggests. Furthermore they are actually 10k, because it's an Arduino Mega 2560. All devices share a solid common ground. I tried frequencies between 100kHz and 400kHz, but none of them seemed to work. ACC pin is pulled up to 3.3V by a 10k resistor, which enables rise time accelerators. The capacitors are as close to the FDC as possible.

Thanks all!

  • Hi Lazhu,

    I'm sorry to hear you're having issues with the I2C communication. I'm not familiar with the level shifter you're using. Could you post some scope captures of the I2C communication coming directly from the MCU and also captures of the I2C lines after the shifter?

    Thank you!

    Best regards,
    Blair