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.

ADS1100: Sometimes data corrupted.

Part Number: ADS1100
Other Parts Discussed in Thread: TMP100, PCA9306

Hello TI.

I have a problem with data conversion value and configuration register. I still reading 3 bytes (2 bytes of data and 1 byte of configuration register) with 9ms interval time.

Sometimes I received different value of configuration register (example: 0xFF or 0x83) than I expected (0x81). In this case the ADS1100 looks like it has been reprogramed to different configuration because converted data is different. Sometimes I have strange data value (example 0xFFFF) that I expected (0xF123).

Pull-up resistors and all I2C line was checked. To inform you I have some other devices connected to this I2C line (EEPROM and TMP100) with different address.

Please let me know what I shall do in this case. it is urgent issue for me.

Schematic.

Please see on pictures from oscilloscope.

Correct data and configuration.

Correct data and configuration.

Bad configuration.

In other case I have bad configuration at all.

Sometimes I have bad data and configuration (data 0xFFFF, configuration 0xFF).

  • Remigiusz,


    I'm not sure what's happening with your setup, but there are a few things to check.

    First how many devices are on this I2C bus? I'd verify that all the devices have a unique I2C address. Here I can see that there are two ADS1100s on the board and you don't want to get the different address versions mixed up. I'd also check any other devices and verify their addresses.

    Another thing that I would try is shorting through the inductances on the supply. Normally, I wouldn't put an inductance because these ADCs will have some amount of digital current being pulled through and digital currents will spike at the internal clock frequencies. This large L(di/dt) may cause some spiking in voltage. If the spikes are high enough, this may cause the device to reset.

    Verify the addresses for the I2C bus and then check what happens when you short across the inductors. Let me know what you get.


    Joseph Wu

  • Hi Joseph,

    We have several components on I2C line and all components has unique address. We are sure because it was working some weeks ago.

    I removed all inductors on PCB and nothing was change.

    Thanks for your point regarding cause of device reset. Maybe we have problem with power supply (5V) or GND.

    Is it possible reset ADS1100 device with incorrect value (no defalut value) of Control Register?

  • Remigiusz,


    First, a reset of the ADS1100 will always come back with the default setting. It wouldn't come back with an incorrect value.

    I'm not sure what's going on, but I'd like to focus on the I2C communication. One thing that I noticed was that there was some noise (circled in red) before the second byte of this frame that you showed:

    The after the address byte, device first ACKs the communication, but never responds again after the noise. SDA always remains high and all of the ACKs come from the master. Here, the potential problem is that noise that occurs on the first ACK from the ADS1100. However, For all of the scope shots with communication problems, it looks like the slave stops communicating in in the middle of a transaction and is no longer responding by the end of the communication.

    My guess is that somehow the ADS1100 is receiving a STOP condition and after that, it no longer responds. I'm not sure how that's happening, but I would check for noise on the I2C communication. You may want to adjust the I2C to be slower, or use higher value pull up resistors to see if either affect this error. A small amount of capacitance on the bus lines may also clean up the communication.

    Out of curiosity, what controller are you using? Are you bit-banging the I2C or are you using an I2C module?


    Joseph Wu

  • Remigiusz,

    One other possibility was that there might be some communication problem based on the levels of the supply. Are you running a 5V supply for the ADC, but a 3.3V supply for the microcontroller? If so, there might be some interface problems between the two because of the different levels. In this case, you would normally match the voltage levels or use some sort of voltage level shifter between the two (like a PCA9306).

    Joseph Wu

  • Remigiusz,

    I haven't heard from you for a while so I thought I'd check on this problem. In my last posts, I thought there might be some issue involving the device receiving some I2C STOP because of the clock timing, or because of some voltage level mismatch between the master and the ADS1100.

    I'll close this thread for now, but if you are still having these communication problems, post back and we can continue to work on this.


    Joseph Wu

  • I'm sorry for being late but we found problem on rising edge on clock signal.

    Wait for a picture.

  • Hello All.

    We found the problem with rising edge on clock signal.

    Sometimes after this disturbance on rising edge we had high data signal. Probably this is the reason.

    Thanks for your help.

    Regards.

    Remik.