15.AUTOCALIBRATION

Diamond-MM-32DX-AT features automatic calibration of both analog inputs and outputs. The potentiometers, which are subject to tampering, vibration, and maladjustment, have been completely eliminated. Instead, all calibration adjustments are performed using an octal 8-bit TrimDAC and precision, low-drift reference voltages on the board. The optimum TrimDAC values for each input range are stored in an EEPROM and recalled automatically on power up. As an upgrade from the DMM-32-AT, the DMM32DX-AT now has the A/D autocalibration algorithm programmed into the dsPIC, featuring a faster, autonomous autocalibration.

To calibrate the board through software a calibration utility program and software driver function enables you to calibrate the analog inputs and outputs at any time for any range and store the settings in the EEPROM. This feature dramatically improves the accuracy and reliability of the board, since you can calibrate the board as often as desired without worrying about temperature or time drift.

On the analog outputs, the full-scale output range is programmable to any voltage up to 10V, and the board will calibrate to the programmed range. The analog outputs are fed back to the A/D converter so that they too can be calibrated without user intervention.

How it Works?

The DMM-32DX-AT autocalibration circuit uses an octal 8-bit TrimDAC IC to provide small adjustments to the offset and gain at various points in the circuit. Four of the DACs are used for the A/D calibration, and the other four are used for the D/A. The 8-bit TrimDAC values are stored in an on-board EEPROM and are recalled automatically on power-up.

An on-board ultra-stable +5V reference chip with 5ppm offset drift is used as the voltage reference for all calibration operations. From this reference several intermediate values are derived that are used for the calibration. One is just under +5V, and one is just above 0V. These values are measured at the factory, and their values are stored in the on-board EEPROM for use by the calibration program. Note that the actual values of the reference signals does not matter, as long as they are stable, since the calibration routine knows the values and can adjust the calibration circuit to achieve them. An extra input multiplexor chip is used to feed the calibration voltages into the A/D circuit during the process.

For bipolar A/D calibration, first 0V is measured, and the TrimDAC is adjusted until the target A/D reading is achieved. For unipolar calibration, the voltage just above 0 is used as the first measurement value. Two TrimDAC channels are used for the offset. The first channel provides a coarse adjustment to bring the A/D readings into range, and then the second channel provides a fine adjustment for maximum accuracy. The use of both coarse and fine adjustments provides a wider range of total adjustment capability. The range of the fine adjustment exceeds the smallest change in the coarse adjustment, so there is no gap in the adjustment range.

After the offset is adjusted, the full-scale is adjusted in a similar manner. The reference value just under 5V is fed into the A/D, and two additional TrimDACs provide coarse and fine adjustments to achieve the target A/D near-full-scale reading.

Once the A/D is completely calibrated, the 16-bit (or 12-bit) D/A channels can be calibrated. Unlike the A/D circuit, which uses a single A/D for all input channels, the D/A circuit actually contains a single D/A converter for each of the 4 output channels. These channels are fed into the calibration multiplexor and the remaining 4 TrimDAC channels are used to calibrate them in a similar manner to the A/D. A single adjustment is used for the high reference, and both coarse and fine adjustments are used for the low reference.

The entire process takes about one second for each input range. Once it is complete, the board is ready to run. All 8 TrimDAC values are stored in the EEPROM so that the next time power is cycled to the board, the values will be loaded automatically.

How to perform autocalibration with software ?

The Universal Driver™ software provides two functions, dscADAutocal() and dscDAAutocal(), that can be called from within a user program to calibrate the board at any time. In addition, a standalone DOS program, DMM32CAL.EXE, is provided to enable calibration without requiring any programming.

How to perform autocalibration with dsPIC ?

The Diamond-MM-32DX-AT has an onboard microprocessor that can perform autocalibration for you, automatically. The microprocessor can be configured to trigger calibration because of temperature changes, or it can be manually triggered by software.

Temperature-triggered auto autocalibration is enabled by writing a 1 to Page 4, Base + 14, bit 3, ACREL. When this bit is set, the Autocal holdoff line is released. The dsPIC will monitor temperature changes and autocalibrate the board every 5’C.

If users want more control over auto autocalibration, they can set the ACHOLD bit to stop the temperature trigger (this is the default state), and use the ACTRIG bit to engage autocalibration when desired.

While the dsPIC is running auto autocalibration, Base + 4, bit 5, ACACT will be high. Users should monitor this bit whenever they have enabled auto autocalibration.

While the dsPIC is autocalibrating, user software may not interact with the A/D circuit. When performing regular A/D functions users should set ACHOLD bit high to turn off auto autocalibration.

Last updated