AD7124 Always reads zero. RDY/IDLE bit is always 1

Hello,

I am trying to bring up an AD7124-8 to measure a 3-Write RTD. I have tried many configurations, but have not managed to read any values from the data register, nor banish all errors from the error register. 

All reads from the DATA register always return 0. All reads from the STATUS register always show the IDLE/RDY bit as high, and the error bit is high if I enable enough errors. 

Schematic

I have 1 PT100 RTD connected to the RTD1 input as pictured. All other RTDs connections are left floating. 

Voltage Measurements

REGCAPA = 1.92V

REGCAPD = 1.795V

REFIN+ - REFIN- = 1.21V

AIN2 - AIN1 = 398 mV

Register Dump

0x00,0x000000c0
0x01,0x00000081
0x02,0x00000000
0x03,0x00003505
0x04,0x00000000
0x05,0x00000014
0x06,0x00000080
0x07,0x0007fbda
0x08,0x00000000
0x09,0x00008022
0x0a,0x00000001
0x0b,0x00000001
0x0c,0x00000001
0x0d,0x00000001
0x0e,0x00000001
0x0f,0x00000001
0x10,0x00000001
0x11,0x00000001
0x12,0x00000001
0x13,0x00000001
0x14,0x00000001
0x15,0x00000001
0x16,0x00000001
0x17,0x00000001
0x18,0x00000001
0x19,0x000009e4
0x1a,0x00000860
0x1b,0x00000860
0x1c,0x00000860
0x1d,0x00000860
0x1e,0x00000860
0x1f,0x00000860
0x20,0x00000860
0x21,0x00060180
0x22,0x00060180
0x23,0x00060180
0x24,0x00060180
0x25,0x00060180
0x26,0x00060180
0x27,0x00060180
0x28,0x00060180
0x29,0x00800000
0x2a,0x00800000
0x2b,0x00800000
0x2c,0x00800000
0x2d,0x00800000
0x2e,0x00800000
0x2f,0x00800000
0x30,0x00800000
0x31,0x00554f25
0x32,0x00554f25
0x33,0x00554f25
0x34,0x00554f25
0x35,0x00554f25
0x36,0x00554f25
0x37,0x00554f25
0x38,0x00554f25

Any support is appreciated!

Parents
  • 0
    •  Analog Employees 
    on Jun 4, 2021 6:25 AM

    Hi, 

    Apologies. This is just a common steps I prefer to check if the ADC is converting and communicating properly with the MCU. Upon power up, can you pull /CS low and just monitor the DRDY pin if it is pulsing at correct ODR? 

    Once you see it is pulsing, can you try to change the ODR settings and then see again if it is now pulsing at the new ODR? Then you can also check if you configure the ADC correctly by writing and reading to the same register. Once you confirm that the ADC is converting and that the SPI interface is good. Then we can go to the hardware debugging.

    I'm sorry I'm kinda loaded now, but I will review this and come back to you if I find anything else. 

    Thanks,

    Jellenie

  • Hi Jellenie,

    I have powered on the ADC, pulled /CS low, and DOUT/RDY remains high. 

    I'm pretty sure something else is the issue. Maybe even the ADC is broken? I'd be surprised though.

    My reasoning is that when I communicate with the device, it appears to be functioning correctly.

    For example, the ID register reads back correctly. If I enable the MCLK_COUNT_EN bit in the ERROR_EN_REGISTER, the MCLK_COUNT register begins to update as expected. 

  • 0
    •  Analog Employees 
    on Jun 5, 2021 1:43 AM in reply to secret-engineer

    Hi 

    If it remains high then it seems the ADC is not converting. Just to confirm the above suggestion is upon power up when ADC is at default config is that correct? 

    Because I reviewed your register settings. It appears that your gain is set to 16. So if you have an input of 398mV then multiplying it with 16 will exceed and saturate the ADC. May I know why you used 1000uA? I am assuming you are using PT100 right? Have you seen this tool? This would help you check if the config is acceptable for ADC. Please have a look and let me know your feedback. 

    https://www.analog.com/media/en/designtools/calculators/rtd_configurator_and_error_budget_calculator-rel1.0.0.exe 

    Thanks,

    Jellenie

  • Hi

    >Just to confirm the above suggestion is upon power up when ADC is at default config is that correct? 

    I've tried both in default config, and after configuration the current source. 

    Right after boot, using the default values, and enabling all the errors, I see that the error register is 0xA880, showing that reference is not detected, and and both inputs are over voltage, and the analog LDO is not happy.

    If I enable the current sources, all errors go away except the Analog LDO error (ALDO_PSM_ERR).

     I've looked at the tool. Thanks! I believe I should change my reference and headroom resistor 2K and 330 ohm respectively.

    I also believe setting a gain of 8 and a current of 500uA is better.

  • 0
    •  Analog Employees 
    on Jun 8, 2021 12:06 AM in reply to secret-engineer

    Hi, 

    Yes because I think the default config uses external reference and if your REFIN pins has no voltage because of the absence of IOUT then the ADC won’t convert which is the reason why DRDY remains high or low. 

    We have here our recent released article regarding RTD application including the tool. Hope you find this helpful.

    https://www.analog.com/media/en/analog-dialogue/volume-55/number-2/how-to-select-and-design-the-best-rtd-temperature-sensing-system.pdf 

    Thanks,

    Jellenie

  • Hi,

    Thanks, that's a helpful guide. From reading it, my circuit is correct, with the exception that the reference resistor and headroom resistor need to be changed.

    The error bit that is still set is ALDO_PSM_ERR. This won't go away no matter what I do. If I measure the analog LDO output, it's around 1.9V. Is this okay? This is what I'm the most stuck on, since even with correct reference voltages greater than 0.7V, or using an internal reference, this bit remains high. 

    If I disable the monitoring, then the bit goes away, but I believe the error condition is still present, just hidden.

     

  • 0
    •  Analog Employees 
    on Jun 8, 2021 12:44 AM in reply to secret-engineer

    Hi, 

    That is weird. Do you read the error registers consecutively and does the error flag remains as always or is it only appeared once? 

    It is curious as you've mentioned that the LDO output is around 1.9V so that should be okay. I am wondering what might have causing this issue as the LDO output appears to be fine. Are you using Eval+ software or your own code? 

    Thanks,

    Jellenie

Reply
  • 0
    •  Analog Employees 
    on Jun 8, 2021 12:44 AM in reply to secret-engineer

    Hi, 

    That is weird. Do you read the error registers consecutively and does the error flag remains as always or is it only appeared once? 

    It is curious as you've mentioned that the LDO output is around 1.9V so that should be okay. I am wondering what might have causing this issue as the LDO output appears to be fine. Are you using Eval+ software or your own code? 

    Thanks,

    Jellenie

Children