10405 views|0 replies

178

Posts

0

Resources
The OP
 

How to Calibrate AD7190 [Copy link]

When initializing AD7190, I wanted to perform internal zero potential and internal full-scale calibration, but both were unsuccessful.

The basic configuration procedure is as follows

void initAD7190()
{
u8 sendData[4]={0,0,0,0};
resetAD7190(); //Reset AD7190 //Set configuration register sendData[0] = 0x00; //Chopping disabled, external reference between ref1+ and ref1- sendData[1] = 0x00; //Initial selection of channel 0, between AIN1 and AIN2 , sendData[2] = 0x60; //500nA current source turned off, external reference voltage detection enabled, and input buffer enabled. Bipolar mode , gain 128 writeAd7190Register(0x10,sendData); //Write AD7190 configuration register //Channel 0 performs internal zero-scale calibration sendData[0] = 0x80; //Internal zero-scale calibration MD2 MD1 MD0=0b100 is zero-scale calibration mode sendData[1] = 0x04; //sinc4 filter, disable parity calibration, REJ60=1, better 50Hz rejection sendData[2] = 0x10; //, output rate = 50Hz writeAd7190Register(0x08,sendData); //Write AD7190 mode register while(RDY); //Wait for calibration to complete in idle mode //Channel 0 performs internal full-scale calibration sendData[0] = 0xA0; //Internal full-scale calibration MD2 MD1 MD0=0b101 is full-scale calibration mode sendData[1] = 0x04; //sinc4 filter, disable parity calibration, REJ60=1, better 50Hz suppression sendData[2] = 0x10; //output rate = 50Hz writeAd7190Register(0x08,sendData); //write AD7190 mode register delay(10000); delay does not seem to work here while(RDY); //wait for calibration to complete in idle mode /* read zero-level calibration value to see */






















The value read here is still the initial value, indicating that the calibration is unsuccessful. . . .
readAD7190Reg(0x70);
zeroScalVaule=(u32)spiRevArry[1]<<16;
zeroScalVaule|=(u16)spiRevArry[2]<<8;
zeroScalVaule|=spiRevArry[3];

/* Read out the full-scale calibration value to view */

The value read here is still the initial value, which means the calibration is unsuccessful. . . .


readAD7190Reg(0x78);
fullScalVaule=(u32)spiRevArry[1]<<16;
fullScalVaule|=(u16)spiRevArry[2]<<8;
fullScalVaule|=spiRevArry[3];




//Switch to channel 1

Here we switch the channel to channel 1 and calibrate channel 1
sendData[0] = 0x00; //Chopping disabled, external reference between ref1+ and ref1-
sendData[1] = 0x01; // Initial selection Select channel 1, between AIN3 and AIN4,
sendData[2] = 0x60; //500nA current source turned off, external reference voltage detection enabled, and input buffer enabled. Bipolar mode , gain 128
writeAd7190Register(0x10,sendData); //Write AD7190 configuration register

//Channel 1 performs internal zero-scale calibration
sendData[0] = 0x80; //Internal zero-scale calibration
sendData[1] = 0x04; //sinc4 filter, disable parity calibration, REJ60=1, better 50Hz rejection, output rate = 300Hz
sendData[2] = 0x10;
writeAd7190Register(0x08,sendData); //Write AD7190 mode register
while(RDY); //Wait for calibration to complete in idle mode
//Channel 0 performs internal full-scale calibration
sendData[0] = 0xA0; //Internal full-scale calibration
sendData[1] = 0x04; //sinc4 filter, disable parity calibration, REJ60=1, better 50Hz rejection, output rate = 300Hz
sendData[2] = 0x10;
writeAd7190Register(0x08,sendData); //Write AD7190 mode register
while(RDY); //Wait for calibration to complete in idle mode

/* Read out zero-level calibration value to view */

The value read here is still the initial value, which means the calibration is unsuccessful. . . .

readAD7190Reg(0x70);
zeroScalVaule=(u32)spiRevArry[1]<<16;
zeroScalVaule|=(u16)spiRevArry[2]<<8;
zeroScalVaule|=spiRevArry[3];

/* Read out the full-scale calibration value to view */

The value read here is still the initial value, which means the calibration is unsuccessful. . . .

readAD7190Reg(0x78);
fullScalVaule=(u32)spiRevArry[1]<<16;
fullScalVaule|=(u16)spiRevArry[2]<<8;
fullScalVaule|=spiRevArry[3];
}

The above is the initialization program of AD7190. The communication is normal and there is no problem in the program! Is there a specific step for the calibration of AD7190? Thank you!

This post is from ADI Reference Circuit
 
 

Just looking around
Find a datasheet?

EEWorld Datasheet Technical Support

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号
快速回复 返回顶部 Return list