Part Number: ADS1256
Other Parts Discussed in Thread: ADS1261
Hello Experts,
I am designing a multichannel data acquisition system using the ADS1256. The application requires frequent switching of the input MUX, PGA settings, and Data Rates.
Running a hardware self-calibration (SELFCAL) after every change in MUX/PGA configuration introduces a significant latency (up to ~1s depending on DRATE), which is unacceptable for my target system throughput.
To maintain high throughput while keeping high accuracy, I am planning to implement a software calibration strategy. I would appreciate your feedback on whether this approach is valid.
Here is the workflow:
-
Characterization: The MCU cycles through all necessary MUX/PGA/DRATE combinations. For each config, it runs
SELFCAL, reads the resulting OFC and FSC register values, and stores them in a lookup table in the MCU RAM. -
Acquisition: During normal operation, I write "Ideal" values to the ADC registers (OFC = 0 and FSC = IDEAL FSC from datasheet Table 18). This allows switching MUX/PGA instantly without waiting for calibration. The ADC outputs "Uncalibrated Data".
-
Compensation: The MCU applies a linear correction to the uncalibrated data using the stored OFC/FSC values.
Based on the ADS1256 architecture (Figure 23 of the datasheet and equation 3), I derived the following compensation formula to be calculated by the MCU:
Final_Output = FSC/Ideal_FSC*(Raw_Output - OFC/alpha*Ideal_FSC*beta)
Where:
-
FSCandOFC: The stored real calibration values. -
Ideal_FSC,Alpha,Beta: Coefficients from Datasheet Table 18.
Here are my questions:
- Is this mathematical model correct for the ADS1256 internal ALU processing path?
- Are there any hidden pitfalls in driving the ADS1256 with fixed "ideal" calibration registers while handling the calibration correction externally?
Thanks in advance for your support.
Alessandro