Hi, I am having a bit of problem with the data output from my AD7176. I attached a schematic for reference.
I wish to convert a signal between 0 and 10V. For this reason, I have added the AD8475 as front end to the ADC. I am using the 0.4 attenuation pins to give full scale voltage of 4V. I have allowed for the use of the input to AD8475 as either single ended or differential. At the moment, I am testing the single ended option with negative input tied to AVSS.
At power up, I set only the following register, leaving the others default:
- Read ID to check that it is ok, get back 0xC94
- Write 0x0000 to register 0x01 in order to disable internal reference, I have external 4.096V reference.
- Write 0x0040 to register 0x02 in order to enable the DATA_STAT
- Write 0x0000 to register 0x20 to select unipolar coding with external reference
- Write 0x8016 to register 0x10 to enable AIN0 measured against REF- (AVSS) with Setup0
- Write 0x0043 to register 0x11 - mainly to disable at this point, will use it later in bipolar mode
Then I start the read process continuously, waiting for the DRDY to go low each time before doing the next read.
Setting the positive input to AVSS as well, produces the expected 0V between the output pins of AD8475, measured across the pins with calibrated multimeter (actually, 0.01mV).
My expectation was to read 0x000000 out of ADC (give or take a few bits on the LSB side toggling from noise). But I get a value of 0xFFD92F which does not make any sense to me.
Applying 5.04V the input from my supply, gives an overflow of 0xFFFFFF for the 2V at input of ADC after 0.4 gain from AD8475. The ADC error bit is set as expected for the 0xFFFFFF, but I am not quite sure why this is an overflow condition. Any ideas on the reason for the overflow?
Applying 4.096V to the input from my reference source also provides an overflow.
I decided to measure the pins into the AD7176-2 with reference to AVSS instead of between the pins 5 and 6 of AD8475, since I am no longer testing the differential inputs. JUST for sanity check.
Both inputs tied to AVSS:
Pin 5 = 4.096V (i.e. REF+)
Pin 6 = 4.096V (i.e. REF+).
This is with both inputs tied to AVSS. This of course provides the diff voltage of 0V.
IN- = AVSS and IN+ = 4096mV:
Pin 5 = 4.914V (i.e. REF+)
Pin 6 = 3.276V (i.e. REF+).
This is with both inputs tied to AVSS. This of course provides the diff voltage of 1638mV = 4095mV on input.
IN- = AVSS and IN+ = 4991mV:
Pin 5 = 4.959V (i.e. REF+)
Pin 6 = 2.98V (i.e. REF+).
This is with both inputs tied to AVSS. This of course provides the diff voltage of 1979mV = 4947mV on input (close enough)
So from this I gather that the output out of the AD8475 is fine. What I am concerned about is the fact the the voltages are quite high. I am wondering what the effect would be for a greater input voltage i.e. 10V.
Is this because the VOCM pin of AD8475 is tied to 4096mV (REF+). Initially I did not have this pins connected at all, then I did not get the overflow issues, but still, the ADC output did not correlate the way I expect it.
Can someone advise on the connection of the VOCM pin when interfacing the AD8475 to the AD7176-2?
What about my register settings?
Do I need to fiddle with the gain and offset registers?
Help much appreciated. I don't ask quickly before at least trying to solve the problem. I spent 3 days on this so far.