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.

ADS1220: Measure of RTD Pt100 with ADS1220 and STM32H7 (over SPI connexion)

Part Number: ADS1220

Dear TI, dear Angel Rodriguez,

we are testing the board that I mentioned in my previous question [1]  to use the ADS1220 to measure precise temperature with RTD 3-wire Pt100 sensor.

1.Schematics
We use this schematic following the validation with the EVB and the cjmcu-1220 attached to Arduino MCU.
The ADS1220 is connected to SPI bus to the STM32H7 MCU for MOSI/MISO/CK and CS/DRDY are connected over GPIO expander.


The GPIO expander is working correctly and we can communicate with the ADS1220 over SPI configuring the registers and read the Output code however the received data seem not correct but the hardware connexion seems working properly

2.SPI communications
The probing on the SPI lines seem correct
D4=CK, D5=MISO, D6=MOSI, D7=CS


we can observe the in-coming MISO data


3.Software configuration
We are currently using the code below

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <Adafruit_MCP23X17.h>
#include <Protocentral_ADS1220.h>
#include <SPI.h>
#include <atomic>
Adafruit_MCP23X17 mcp;
#define PGA 32 // Programmable Gain, confirm that the same as set_pga_gain
#define VREF 2.048 // Internal reference of 2.048V
#define VFSR VREF/PGA
#define FULL_SCALE (((long int)1<<23)-1)
#define ADS1220_CS_PIN PIN_SPI_SS
#define ADS1220_DRDY_PIN 2
// #define NUM_ADS1220 8
#define NUM_ADS1220 1
SPISettings spi_settings(1000000, MSBFIRST, SPI_MODE1);
Protocentral_ADS1220 ads1220[NUM_ADS1220];
int32_t adc_data;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


However we receive the following data which

ADS1220 No.0 Diff (mV): -1.47
Read: 0xFFFD0D28 (-193240)

So I am wondering if the current registers configuration is correct to retrieve correctly data for 3-wire RTD measurement.

My best,

Zabieru.


[1] : e2e.ti.com/.../ads1220-ads1220-spi-connexion-to-stm32h7

  • Dear Angel Rodriguez,


    I hope you are doing well. Some updates on our side

    - we have connected pins on the ADS1220
    AIN3/REFN1 <--> AIN0/REFP0
    AIN2              <--> AIN1
    in reference to the EVB
    - we do have better looking at the output data we receive (around ~0x2BF66)

    However we have an instability in the measure over SPI (10Hz sampling) with some values close to ~0x2BF66 but also way higher/lower values.
    I am wondering if I am missing a filter components  on the AIN and REF pins, however when testing the cjmcu-1220 it gave good results.

    How can I fix this instability ? Software/Hardware/Register settings ?

    Much regards,
    Zabieru.

  • Hi Zabieru,

    Apologies for the late response.

    I will take a closer look at this issue and get back to you soon. 

    Best Regards,

    Angel

  • Hi Angel,

    some updates on our side to focus on the pt100 accurate measure.

    for reference below is our schematic

    R=pin alone
    B/W=pin together
    on the Pt100 3-wire RTD sensor

    1.Measure of 1V in differential works fine
    We are able to measure accurately 1V in differential between AIN0 and AIN1 and the measure were stable over the spi link

    2.When plugging the 3-wires pt100 with the following configuration in the driver

    ADS1220_CONFIG0_PGA_ENABLE | ADS1220_CONFIG0_GAIN_1 | ADS1220_CONFIG0_MUX_AIN0_AIN1
    ADS1220_CONFIG1_BCS_OFF | ADS1220_CONFIG1_TS_DISABLED | ADS1220_CONFIG1_CM_SINGLE_SHOT |ADS1220_CONFIG1_MODE_NORMAL | ADS1220_CONFIG1_DR_45_SPS
    ADS1220_CONFIG2_IDAC_250UA | ADS1220_CONFIG2_PSW_OPEN | ADS1220_CONFIG2_FILTER_NONE | ADS1220_CONFIG2_VREF_EXTERNAL0
    ADS1220_CONFIG3_DRDYM_ONLY_DRDY | ADS1220_CONFIG3_I1MUX_AIN2 | ADS1220_CONFIG3_I2MUX_AIN3

    I got 0xFExxxx output code instead of 0x2Bxxx (100ohms reference value)

    Maybe I am missing something in the configuration or in the wiring ?

    Much regards,
    Zabieru.

  • Dear Angel,

    more updates as we progress but not yet at perfect output_code accuracy that the ads1220 is able to deliver.
    After some bitshifting fixes we now have an output code in average of 0x21A70 (78.87ohms) over few ms sampling averaging but the pt100 connected (using a Yokogawa CA150 to output perfect 100ohms) with 100ohms RTD value.
    So we have delta of about 20ohms somewhere.
    Does it ring a bell for you somewhere ? I recall our configuration below

    ADS1220_CONFIG0_PGA_ENABLE | ADS1220_CONFIG0_GAIN_1 | ADS1220_CONFIG0_MUX_AIN1_AIN0;
    ADS1220_CONFIG1_BCS_OFF | ADS1220_CONFIG1_TS_DISABLED | ADS1220_CONFIG1_CM_CONTINUOUS |ADS1220_CONFIG1_MODE_NORMAL | ADS1220_CONFIG1_DR_20_SPS;
    ADS1220_CONFIG2_IDAC_250UA | ADS1220_CONFIG2_PSW_OPEN | ADS1220_CONFIG2_FILTER_BOTH | ADS1220_CONFIG2_VREF_EXTERNAL0;
    ADS1220_CONFIG3_DRDYM_ONLY_DRDY | ADS1220_CONFIG3_I1MUX_AIN2 | ADS1220_CONFIG3_I2MUX_AIN3;

    I wish I can finalize this correction soon to be able to make accurate tests of 8 ads1220 in parallels.

    Much regards,

    Zabieru.

  • Hi Zabieru,

    I have been going over this information and unfortunately I'm not too sure what could be the problem.

    The schematic / hardware connections seem ok.

    I am bringing this issue up with some team members to gather their feedback on the issue. I will get back to you as soon as I gather some feedback and will update you by tomorrow. 

    Apologies for not being able to get to this sooner.

    Have there been any updates on your side in the meantime?

    Best Regards,

    Angel

  • Hi Zabieru,

    Was there a pcb made for this schematic or is this setup being fly-wired together? 

    Taking a closer look we notice that there is no anti-aliasing filtering at the input pins from the schematic, and there may be some considerable noise issues as well.

    Would it be possible to provide us with a picture of the setup, so we have a better idea of what it looks like?

    Best Regards,

    Angel

  • Hi Zabieru,

    Have you tried measuring the voltage across the RTD and across the reference resistor with an oscilloscope? With the IDACs set at 250uA the voltage across the reference resistor should be around 1.2V and the voltage across the RTD should be around 25mV, the oscilloscope will also allow you to see if there is any significant noise present at these points. 

    It may also be helpful if you can provide the logic analyzer / saleae files of the writings to the configuration register and of the data readings to ensure the communication looks correct. 

    Best Regards,

    Angel