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.

ADS1248 system monitor

Other Parts Discussed in Thread: ADS1248

Hi, 

I successfully managed to read voltage from an PT100 sensor, now I am trying to use the system monitor in order to make a system check. I thought the sequence to do so is as follow: 

1-Configure MUX1 register to select a system monitor (write to MUXCAL2:0, 0x03 for temperature diode)

2-Send RDATA command

3-Send 3 NOP commands and read Datas

I tried to get measurement this way but I didn't receive a good result (118mv for 25°C, so I should get a close value).

Is there something missing in this operation?

  • Houssem,

    In general, your process looks correct, but I did have a few questions.

    First, what data do you receive? Is it consistently the same or similar values? Second, how long do you wait send the RDATA command and to read the data? Are you polling for the DOUT/DRDY line to indicate that the data is ready?

    Joseph Wu

  • Hello Joseph,

    Yes I am receiving the same value everytime (0.000062 V)even when I change the monitor (tempreture, AVDD, DVDD ...).

    I am using a nDRDY interrupt to know that the Data is ready after configuring and sending the RDATA command. I managed to measure tempreture with PT100 sensor and I received meaningful values using this method. I thought that it should be the same for the system montor. 

  • Houssem,


    I'm not sure what exactly is the problem, but my guess would be an error in the communication. I would read back register 02h to make sure that the part is in the configuration that you expect. You can also read back the other registers just to make sure of the configuration.

    Along this same line, it might be that you have toggled the MUXCAL bits but are setting it to 001 each time. That would take the AINP and AINN and tie them together at mid-supply. That would be close to 0V as an input. If the device is uncalibrated, then this might be close to the value of 0.000062V that you see (I assume that you're reading something like 0000FEh as the input, with some amount of change in the reading).

    One other possibility, is that you might get some errant readings if the reference isn't turned on, or isn't connected. This is a less likely possibility to check after reading back the registers.


    Joseph Wu

  • Hello Joseph,

    Thanks for the reply, I am just back into the system monitor of the ADS1248, it turns out that the internal ref must be on and the onboard reference must be selected. I also had to remove the Self-Offset Calibration (SPI command) in my initialization in order to have good values of the internal temreture, DVDD and AVDD. But I need to keep the Self Offset Calibration in the initialization. I can't find why does it affect the measurement, nothing is mentionned in the datasheet.

    How can I get good values from the system monitor without removing the Self Offset Calibration command in the initialization?

  • Houssem,


    If you are using the internal reference, then yes the reference must be turned on and it must be selected. The ADS1248 has options for multiple external references. While this makes different types of measurements possible, you have to specifically select where the ADC reference inputs come from.

    You mention that you're having problems with the Self offset calibration affecting the internal temperature measurement, DVDD and AVDD. I'll need you to be very specific about describing what the problem you see is. Measurement values are very helpful, and I'll mention that later.

    The temperature sensor can be measured from MUXCAL, but what are you with DVDD and AVDD? Also, could you describe what setup commands you send prior to the self offset calibration?

    After that, look at some of the readings you get. Once you perform the self offset calibration, read back the offset calibration register, what is the contents of the register? I would also get pre and post calibration reading to show the difference in the readings. I'd like to know the output code, and not just the voltage reading that you get. This would be for any measurement that you feel is in error.

    By reporting back some of the measurements, we should have a better idea of what problems you're having in the self offset calibration.


    Joseph Wu

  • Hello Joseph

    Thanks for the reply. My issue resides on the calibration. I am only making a self offset calibration and I am making it this way:

    1-Initilize the ADS1248 (GPIO config, SPI config and then make a hardware reset through reset input pin)

    2-Send Self-Offset Calibration command (do I need to set PGA and select channels before?)

    3-Wait for Data ready signal

    4-Enable internal reference and select onboard reference

    5-Write the MUXCAL without affecting VREFCON and REFSELT (0x03 for tempreture, 110 for AVDD measurement, 111 for DVDD measurement)

    6-wait for data ready signal

    7-Receive measurement result (multiply it by 4 for AVDD and DVDD measurement)

    I make sure that I am writing to registers correctly each time. 

    This operation is successful if I don't make self offset calibration (pint 2- and 3-) and I get 3.27V for DVDD measurement wich is good, if I make the self offset calibration I get 1.22V (I am reading value and multiplying by 4 for DVDD).

    I think that I am missing something about the self offset calibration. I wish you can help me with that.

  • Houssem,


    Thanks for the last post. I do have a few things to try to see if we solve this calibraion problem. First, the self offset calibration should be done after the device is set in the way that you want to use it. I would first issue all of the setup commands (including data rate, PGA gain, and reference settings) before issuing the self offset command. Also, I would consider that there may be some delay after turning on the device, or turning on the reference, so you may need to wait for things to settle before performing certain tasks.

    Looking at the order of what you're doing, I'd re-order some of it.

    1. Initilize the ADS1248.

    2. Enable internal reference and select onboard reference.

    3. Set PGA and select channels

    4. Send Self-Offset Calibration command.

    5. Wait for data ready signal.

    6. Write the MUXCAL without affecting VREFCON and REFSELT (0x03 for tempreture, 110 for AVDD measurement, 111 for DVDD measurement).

    7. Wait for Data ready signal.

    8. Receive measurement.

    I'd also like to know what commands your sending for initialization. Just remember that the before running any calibration, you need to set up the device just how you would use it. Also, keep in mind that powering on the device, pulling a reset, and turning on a reference all have delay times or settling times that you'll need to wait before further operations.

    Regardless, try this new order and let me know if the measurement improves.


    Joseph Wu

  • i have the same problem but temperature monitoring seems to be ok the issue is with avdd ,dvdd and voltage ref

    i get this value from ads1248 (4935307) and if i use "Conversion Result = (VSP/4)/VREF " i don't get the 5 volts for avdd

    any help ???

  • Brahem,


    When you measure your power supply, what value do you get?

    I want to check the exact value because the data that you get does not look far from the expected value. With the data 4935307d, you can calculate the ADC conversion:

    Output (V) = (4935307d/2^23)*2.048V = 0.588*2.048 = 1.205V

    Since this value should be (AVDD-AVSS)/4, take 1.205V*4 = 4.82V which is close to the 5V. We don't give an accuracy specification for the system monitors, and I suspect that the accuracy is a few percent.


    Joseph Wu
  • Hello Joseph yup it was a power supply problem this result was from a well functioning system we got worst results but their power supply was not ok rhank you