I don't quite understand how you power analog section of the ADC. I see two decoupling caps connected to AVDD, but nothing else.
As kulky64 says, the schematic is missing AVDD supply. Also, your graph shows values changing by a tiny amount (hundredths of a degree C) yet the code has this
commented out, and according to the code, integer values from the ADC register are being plotted. There is some inconsistency between these things.
I think he commented out conversion from raw integer values to temperature just for debugging purposes, but didn't bother to change y axis label. Judging by the values in the 1.55E+7 range these are integer ADC data in the upper range of 24-bit ADC.
Ah I see. The exponent was hard to read : )
Yes, as kulky64 says, i want to make sure that Matlab get the 24bit raw data.
Thx for your mention.
The discontinuous code seems to result from two bits being exchanged or swapped. From an examination of the data, I believe bits D23 (MSB) and D21 are swapped. This might be a software issue, but it could be a problem with power supply decoupling as well. If you are sure it is NOT a software issue, I suggest using your originally posted schematic where there are two capacitors connected to AVDD and two capacitors connected to DVDD, but AVDD and DVDD are not connected directly together. Then add a resistor or 100 Ohms to 150 Ohms between AVDD and DVDD, be sure that the 0.1uF capacitor at AVDD is as close to the AVDD pin of AD7793 as possible and be sure that your board has a proper ground plane. This will decouple AVDD from DVDD, helping to keep digital noise out of the analog supply. Any digital noise out of the analog supply of the ADC can cause any of a number of problems, depending upon the design and internal layout of the ADC.
Recently, i am working on a project of using AD7793 with Arduino mini pro as accuracy temperature measurement,
I am using 4-wire PT1000 , 5.1k ohms (use multimeter measure 5.237k ohms) as ref resistance.
AD7793 set ( Continuous read , Gain 4 , bipolar, external reference, current 210uA, update rate 4.17Hz . )
The Arduino code and Matlab data acquisition code are posed as follow.
But i get weird "discontinuous" output signal, seems it get different offset when the temperature rise or fall .
please help me out.
Thanks a lot
Arduino code :
Matlab code :
I scope the digital signals as follow.
D0 - ~CS
D1 - DIN
D2 - DOUT/~RDY
D3 - SCLK
(In continuous read mode)