I am working with an AD7794 ADC Device at the moment and i'm currently investigating whether or not the Offset Register Value drifts with Temperature (25C to 150C). Before I put in the Code to output the Offset Value I thought I would check over the Datasheet and Check the Values I read from the Offset Register at 25C.
The Datasheet clearly says that the default (Power On/Reset) value should be 0x800000 but when I read from the Offset Register for CH0 - CH5 I get the following values:
CH0 = 0x88FFFF
CH1 = 0x89FFFF
CH2 = 0x8AFFFF
CH3 = 0x8BFFFF
CH4 = 0x8CFFFF
CH5 = 0x8DFFFF
Now, the first thing that stands out to me is that CH3/4/5 all share the same Offset Register - therefore I expected them to all be the same value?
So... my first question to anyone with more experience than me is - are those values garbage or do they look reasonable? I suspect they are garbage. Which leads me onto the next question...
Below is the psuedo code for how I am reading the Offset Register Value for CH0 (CH1 - 5 are the same but with a different CONFIG to represent the Channel Number).
Does this seem logical and am I doing anything incorrect?
AD7794AT_SPI1_ENABLE; //Turn on the ADC Device
AD7794Config.CONFIG = AD7794_CONF_GX; //AD7794_CONF_GX = 0b0000000000000000 - Basically set for CH0
AD7794_Send_Command_Write(AD7794_COMM_WR_CONF); //Set comms register for a write command to Configuration Register
AD7794_Set_Config(AD7794Config.CONFIG); //Send config to Configuration Register
AD7794_Send_Command_Write(AD7794_COMM_WR_MODE); //Set comms register for a write command to Mode Register
AD7794_Set_Mode(AD7794_MODE_SINGLESHOT); //AD7794_MODE_SINGLESHOT = 0b0011001000011010
AD7794_Send_Command_Read(AD7794_COMM_RD_OFFSET); //Set comms register for a Read from the Offset Register
Read_Register(); //Perform a 24bit read from the Offset Register
AD7794AT_SPI1_DISABLE; //Turn off the ADC Device
I have also tried an Internal Zero and Full Scale Calibration on the device and I still read the same values from the Offset Registers - I get the feeling I'm not quite doing something right but I can't see what it can be? Anyone have any ideas?