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.

ADS1262: /DRDY pin comes high state permanently after reading a data

Part Number: ADS1262

Hello, 

I am reading data in direct form with the ADS1262. /DRDY pin is polled to read data when the pin comes low as it is specified in the datasheet. The system reads two data correctly but after the second reading the /DRDY pin comes high permanently. What could be the reason?

*The initialization of ADS1262 is good, since the registers are written correctly and the pin /DRDY starts to come low to the programmed frequency.

*I also have checked the registers during the process and they doesn´t change either.

*AVDD and DVDD power are correct during all process.

I attach you some images.

The first two images are about the reading of the first data correctly.

 

The second two images are about the reading of the second data, when /DRDY comes to high state permanently.

Thanks in advance.

  • Hi User,

    I have a few questions for you:

    • Can you share your schematic and register settings?
    • How are you sampling: via continuous conversions or pulse-convert mode?
    • Are you using the START command or the START pin to begin conversions?
    • Can you label the scope shots you send out? I am not sure which waveforms correspond to which pins, and I don't want to guess incorrectly

    Let me know. Thanks!

    -Bryan

  • Hi,

    Can you share your schematic and register settings?

    This is the ADS1262 connection. It is connected to a load cell. The connection is similar to the used in the ADS1262EVM-PDK evaluation board, in fact in this moment a I am working on the ADS1262 evaluation board.

    This is the initialization function, where you can see the registers settings.

    How are you sampling: via continuous conversions or pulse-convert mode?

    I am sampling via continuous conversion mode.

    This is the read data function. It uses the HAL_SPI_Receive. HAL_SPI_Receive functions uses in turn the HAL_SPI_Transmitreceive. The problem happens after reading the second data, inside the HAL_SPI_Transmitreceive.

    1.  Read data function

    2. HAL_SPI_Receive function

    3. HAL_SPI_TransmitReceive function: In this part of the function where the bits are transmitted and received, in the transmission of the last bit, pin /DRDY comes to high state (highlighted part with an arrow).

    Are you using the START command or the START pin to begin conversions?

    I have tried with both.

    Can you label the scope shots you send out? I am not sure which waveforms correspond to which pins, and I don't want to guess incorrectly

    Yes sorry, I forgot it.

    Yellow: /DRDY signal.

    Pink: SCLK signal

    Blue: DOUT/DRDY signal

    Green: DIN signal

    Thanks in advance.

  • Hi user,

    Thanks for the additional information.

    When DRDY hangs like this, is there a way to recover from it? Can you just issue a new START command and the device starts working again? Do you need to toggle CS, or issue the RESET command? Do you need to cycle the power supplies?

    Also, are you getting valid data while the device is converting (before it starts to freeze)?

    Have you tried bypassing the external crystal and using the ADS1262's internal oscillator? Some customers have reported stability issues with these crystal circuits, and tuning them can be a challenge. If this does not change the ADC's behavior then at least that can be ruled out.

    -Bryan

  • Hi Bryan,

    I have solved the problem, I share the process in case it is useful to anyone.

    I noticed, in the oscilloscope images that I sent you, that when second data was read, a small variation in the DIN signal happened (green signal).

    I zoomed this variation and found it to have this shape (It is zoomed to 100 mV/div.)

    Seeing this I was checked the datasheet and I found in ''9.4.7.1 Read Data Direct (ADC1 Only)'' that...

    ''Read data direct requires that no serial activity occur from the time of DRDY low to the readback, or the data are invalid. The serial interface is full duplex; therefore, commands are decoded during the data readback. If no command is intended, keep the DIN pin low during readback. If an input command is sent during readback, the ADC executes the command, and data interruption may result.''

     

    So I concluded that this signal in DIN line could be the cause of reading stop and that /DRDY pin comes high permanently.

    To solution this I was checked the HAL_SPI_Receive and as I didn´t control de dummy data that was sending, I decided to change it for HAL_SPI_TransmitReceive function, and send my own dummy data (all zeros or all ones), and it worked. This would be the correct read function:

  • Hi User,

    Glad you identified the issue and that it has been resolved. Indeed any activity on DIN would cause an issue during readback as the device assumes you are clocking in a new command.

    Thanks for posting your solution as well, I hope it will be useful for other customers in the future.

    -Bryan