Tool/software:
Hello,
I have been measuring different channels of the ADS7066 ADC and am experiencing problems with the readings.
I have considered the internal sampling capacitor inside the ADS7066 to calculate the delay required for the signal to stabilize before performing the reading, based on the typical application described in Section 8.2
From my calculations, the internal sampling capacitor charging time (5 * τ) is 2.25e-8 s. I implemented a delay of 1 µs between selecting the channel as the MUX input and sending the NOP condition to perform the ADC read operation, as I thought this delay would be sufficient.
// Select channel as MUX input SPI_ADS7066_writeSingleRegister(hADS7066, CHANNEL_SEL_ADDRESS, channel); delay_us(1); // Send no operation to let adc convert SPI_ADS7066_sendNOP(hADS7066); // Read data from channel in SDO port if (WRSPI_Receive(pADS7066Desc->hSPI,(uint8_t *)&RxRawData, 3) != EMBL_OK){ SEGGER_RTT_printf(0, "ERROR: Failed to receive data\n"); Throw(EMBL_ERROR); }
However, with this 1 µs delay, the ADC readings are unstable. I tested with different delays and found that with a delay of 500 µs, the readings are stable.
How can I reduce the delay time between channel readings while ensuring the signal remains stable? How does this happen? Am I right with my thoughts?
Thank you very much for your help!