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.

ADC128D818 I2C ACK problem

Other Parts Discussed in Thread: ADC128D818

Hi

I am using a MCU (PIC32MX795F512L) to interface with this ADC (ADC128D818) via I2C.

My test setup is shown in the following schematic.

  • The I2C frequency is configured to operate at 100kHz.
  • V+ is stable at 3.28V

Since A0 and A1 is tied to GND the slave address must be 0x1D.

I want to set the internal register to the configuration register, 0x00.

As such the first byte written by the MCU is ((0x1D)<<1)|0 => 0x3A

The second byte will be 0x00.

I have tried this, but the device does not ACK on both byte transmits. Signal 1 is SDA and signal 2 is SCL probed at the slave device.

I have tried also reading the default configuration register data, but only get 0xFF as opposed to 0x08, meaning the slave device did not touch the SDA line.

I have tried writing out other possible addresses. I have only received an ACK on the FIRST byte for addresses 0x01 and 0x7C, but I know that these are reserved in the I2C protocol.

Any thoughts?

Dewald

  • Hi,

    Some possibilities to check:

    Are there other pull up resistors on the SDA and SCL lines for other devices?  These would be in parallel with the 2.2k resistors and may make the total parallel resistance too small.  For 3.3V the Rpmin is about 1k.

    Is there a random spike on the SCL line that is not showing up on the oscilloscope?  This would be interpreted by the device as another clock pulse.

    Mike