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.

ADS1118: Config Register is not applied

Part Number: ADS1118

Hi,

I'm using the ADS1118 for my Master Thesis with Arduino Uno. When I tested the SPI interface, the ADC gave back 0V when asked for theSignal on AIN3 to ground and 0°C when asked for the temperature. After further investigations I made the observations described below. Would be very happy about support, since I'm out of ideas...

Supply Voltage: 5V

Input pins not connected for the test, except AIN3, which is connected to supply

Observations:

- The Arduino sends the wanted Config Register on the MOSI-wire. The signal was checked both with Logic Analyser and scope and also bit for bit compared to the data sheet. With the scope I also checked the signal on the ADC pin itself, so I am sure that the signal actually reaches the ADS1118 and there are no problems with the wiring.
- The MISO-Pin sends the value "0" as well as the current register used by the ADC. You can see that it is the default config as described in the data sheet, which for me means that the chip is working, but for some reason not updating its config register. Unfortunately, in this mode I can't check either, if the conversion itself would work (no point there anyways if the communication doesn't work, just, you know, straws...)
- Soldering mistakes are highly unlikely, I checked all the connections and they're just as they should be. I also ruled out that the chip was dmaged during soldering, for once the process itself was very quick and also I'd expect the chip to not work at all in this case.
- The clock polarity and phase setup were verified both in the code and via measurement with the scope and logic analyser.

Logic Analyser Output:

Scope:

If you need any more info, please tell me and I'll hopefully be able to provide it.

Thanks,

Nina

  • Hi Nina,

    Can you send me a schematic of your system so I can see how it is setup? That might help us figure out what is going on here.

    Also, you should check to make sure there is a solid ground connection between the ADC and the Arduino. That would be my first thought given that the device does not seem to be responding to commands properly.

    -Bryan

  • Hi Bryan,

    thanks for your reply. This is the schematic:

    Could the problem be, that I'm using Analog ground for the ADS1118? It's connected to my digital ground plane on the board, but not close to the Arduino/ADS compilation.

    Nina

  • Somehow the insertion of the grafic didn't work before, hence this message.

  • Hi Nina,

    Thanks for the schematic.

    Indeed if there is not a good ground connection between the two boards this could cause communication issues. Is this a single board, or multiple boards with flywiring between them? If a single board, how and where is AGND connected to GND?

    Also, you might want to try to initiate conversions anyway and see what happens. At least you can take data with the default settings and see if you get the correct output from the ADC.

    -Bryan

  • Hi Bryan,

    so here's a photo of my little messy board:

    You'll notice that there are still some components missnig, which is basically because I wanted to test the most critical part first... I highlighted the connection of GND and AGND, though I now added a little cable from close to the ADS1118 directly to the Arduino GND pin. (I might redo that with a connection directly to the Pin, though, now that I look at it...)

    With the multimeter the two gnd pins are well connected, however the results are the same as before.

    How can I start a conversion in the default mode? I tried putting about half the supply voltage to AIN01 and gnd to AIN02, but didn't see anything. But wouldn't I expect this, when in default? Isn't default single shot with the "start conversion" bit = 0?

    Nina

  • Hi Nina,

    Yes, you are correct, the ADC cannot be started with the default settings, my apologies for the confusion.

    What is your SCLK speed? And if you slow it down, do you get better results?

    Also, can you confirm the ADC and MCU are both biased to the same voltage level (+5V)?

    -Bryan

  • Hi Bryan,

    I already tried reducing the frequency in steps, without change in results. Sorry, should have stated that above as well... At the moment I using a frequency of 4kHz, so way below maximum.

    The ADC is supplied by the 5V output of the Arduino, according to the multimeter it's 4.95V at the pin. The 5V on the Arduino board pin and on the MCU are the same according to the Arduino schematics:

    Maybe I should replace the ADC with one of my spare chips and try again?

    Cheers,

    Nina

  • Hi Nina,

    Can you check the physical connections on the ADS1118 pins? In the image you sent, it definitely appears that the GND pin is misaligned compared to the trace (as does the adjacent pin, AIN0). I also don't see a connection to VDD, though maybe this is through the board?

    There is a possibility that these pin connections could be bad, and that the part is actually being back driven by one of the digital pins e.g. CS. That is why the device appears to be functioning, though not properly.

    You might also probe DIN directly at the ADC pin to make sure the correct signals are actually reaching the device.

    -Bryan

  • Hi Bryan,

    I rechecked all the connections with the multimeter and they were fine. But then I thought maybe there's a tiny gap that's closed by pressing the probe on the pin, so I redid the soldering anyway and tadaa! It works.

    Such an unnecessary mistake, thank you so much for your help and time!

    VDD and AIN03 are both connected to the supply voltage, since I will not be using the latter.

    Cheers,

    Nina

  • Hi Nina,

    Glad it is working now, and thank you for posting how the problem was resolved.

    -Bryan