Hello,
I am working on AD7730 (ADC) ic which is interface with controller to read load cell data. I just want to calibrate load cell. I have epoch load cell which has 2mV/V sensitivity and supply voltage is 5 V. The output voltage of load cell range is -10 to +10 mV.
I have mV generator. when i give 0 mV from mV generator to AD7730, It shows 0.2 mV offset in register. When I increase the voltage upto 10 mV the offset increases.
How i calibrate load cell using Ad7730.
Below is my code for your reference:
void ADC_loadcell_Setup()
{
/* this setup is for data outrate of ADC is 1024Hz,Chop mode filter enable
* Internal full scale calibration for bipolar input,24 bit data mode,5V reference,channel 1
* Internal zero scale calibration for bipolar input,24 bit data mode,5V reference,channel 1
*/
// write to filter Register
WriteRegister(CR_SINGLE_WRITE|CR_FILTER_REGISTER,3,FR2_SINC_AVERAGING_100|FR1_SKIP_OFF|FR1_FAST_OFF|FR0_CHOP_ON);
__delay_cycles (200);
// internal Full-scale calibration
WriteRegister(CR_SINGLE_WRITE|CR_MODE_REGISTER,2,MR1_MODE_INTERNAL_FULL_CALIBRATION| MR1_BU_BIPOLAR|MR1_WL_24_BIT|MR0_HIREF_5V|MR0_RANGE_80MV|MR0_CHANNEL_1);
while(!((P2IN&BIT0)==0)){} //wait for calibration complete
__delay_cycles (200);
// internal zero-scale calibration
WriteRegister(CR_SINGLE_WRITE|CR_MODE_REGISTER,2,MR1_MODE_INTERNAL_ZERO_CALIBRATION| MR1_BU_BIPOLAR|MR1_WL_24_BIT|MR0_HIREF_5V|MR0_RANGE_10MV|MR0_CHANNEL_1);
while(!((P2IN&BIT0)==0)){} //wait for calibration complete
__delay_cycles (200);
// continuous conversion mode
WriteRegister(CR_SINGLE_WRITE|CR_MODE_REGISTER,2,MR1_MODE_CONTINUOUS| MR1_BU_BIPOLAR|MR1_WL_24_BIT|MR0_HIREF_5V|MR0_RANGE_10MV|MR0_CHANNEL_1);
while(!((P2IN&BIT0)==0)){} //wait for device ready for conversion
spi_tx(CR_CONTINUOUS_READ_START|CR_DATA_REGISTER); //read continuous data mode
}
Thank You