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.

ADS1271EVM: ADS1271EVM - DRDY problem

Part Number: ADS1271EVM

Hi sir,

I am using ADS1271evm and stm32f7 to communicate via SPI,

and i use external clock that is 6.25 MHz , SPI Baud rate is 3.125 MBit/s

When DRDY Low , i send SCLK signal 24bits (8bits/8bits/8bits) , and Dout feedback some signal 

Problem 1 : When DRDY is Low , it have one pulse. this is normal condition? if not, how can i solve it .

Problem1 : i give 2V analog signal , and i don't know how to check the Dout data is correct or not ? my computation is below , the computing result is data ,

 please help me check the computation is correct or not? 

if (HAL_SPI_TransmitReceive(&hspi1,tData, rData, 6, 50)==HAL_OK)
{

read = ((int32_t)rData[0] << 16) ;

read |= ((int32_t)rData[1] << 8);

read |= rData[2];

data = read / 16777216; #24bits

}

  • Hi Evan,

    Welcome to the TI E2E Forums!

    The /DRDY signal pulses when a new conversion completes and the last conversion result has not be read from the device. /DRDY is already low, so it is driven high first. See Figure 63 (DRDY timing with no readback). Notice how once you start sending clocks the DRDY signal is returned high...the next /DRDY indication should show up as only a falling edge.

    For the conversion of data, what units do you want to convert to (V, %FS, etc.)? I posted this example (https://e2e.ti.com/support/data-converters/f/73/p/699762/2587855#2587855) of how to aggregate the bytes into a signed 32-bit integer. Once you have this value computed you then 1) Multiply it by the LSB size (V per code) to get the voltage, OR 2) divide by the number of codes to get out a percentage of full-scale (FS).

    Do take care to mind the data type your using when writing C code. If "data" is a double and "read" is an int32, make sure to typecast 'read' to a double otherwise the integer division may return 0 and then assign it to "data".