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.

ADS114S08B: SFOCAL: PGA and MUX settings effect

Part Number: ADS114S08B

We're in the design stage, we will have +/- 2.5V for the analog front end and will be using a mixture of PGA settings between 2 and 32 for various channels and will use Burn Out Current for some T/C inputs.

Does the SFOCAL command permanently change, or temporarily override any of the MUX settings besides closing the two switches at the top of fig 42 to short (AVDD + AVSS)/2 to AINp and AINn?

Does it open all of the other MUX switches, and the BOC switches, and then return them to the settings before the SFOCAL....or does our code need to do all that?

Does SFOCAL similarly affect the PGA gain setting? 

General Questions:

If SFOCAL doesn't affect the PGA, do you recommend using any particular Gain?

Is doing an SFOCAL for each PGA Gain used recommended (I'm guessing it's not needed)?

  • Hi Peter,

    The SFOCAL command follows the same control settings as if you were using the System Monitor functionality in the SYS register settings.  As stated from Table 25 on page 64 of the ADS114S08B datasheet, "PGA inputs shorted to (AVDD + AVSS) / 2 and disconnected from AINx and the multiplexer; gain set by user".  At the bottom of the table note 1 states "With system monitor functions enabled, the AINx multiplexer switches are open for the (AVDD + AVSS) / 2 measurement, the temperature sensor, and the supply monitors".

    To answer some of the more specific questions, the mux settings are not changed but instead the mux switches are temporarily opened while taking the SFOCAL measurement.  Following the SFOCAL, the mux is returned to the previous settings.  The SFOCAL command uses the current PGA settings and does not change them for the offset calibration.

    It is best to issue the SFOCAL for the PGA gain that will be used, however you plan to use multiple gains.  Consider that the value in the OFC register is subtracted from the conversion result.  The code value in the register can vary greatly depending on the full-scale range when the measurement was taken.  So it would be best to not make any SFOCAL measurement, but instead make the measurement manually for each gain you plan to use then subtract the offset value from measurement based on the value taken for each of the PGA settings.

    One method you can use is to have an array of data with each cell containing the code value for each PGA setting when the input is shorted.  Following device power-up you can take measurements by setting the System Monitor function to the shorted input at (AVDD-AVSS)/2.  Take several measurements and average the results for each PGA setting.  Let's say the array is called OffsetTable[8], and the PGA settings are based on the PGA configuration register settings where 0 is a gain of 1 and 7 is a gain of 128.  You then might have a variable representing the gain applied called Gain.  For the conversion result you would adjust your code returned by subtracting the code represented in the table for the gain applied from the conversion result.

    ConversionResult = ADCcodeReturned - OffsetTable[Gain]

    All that said, you might not find the need to issue any offset calibration for a 16-bit device, but if you do want to correct for offset you should do it for each gain separately.

    Best regards,

    Bob B