I am bringing up a new project using the 28377s Delfino which we have designed to make use of the differential mode ADC's (16-bit). The analog front end is tested and presents the IN+ and IN- signals differentially to the correct pins with the common-mode range in the required spec.
The problem I am facing is that when using the DriverLib functions to read back ADC values, the DriverLib provided ADC_readResult(ADCDRESULT_BASE, ADC_SOC_NUMBER0) function returns a uint16_t number. With differential mode signalling we should be receiving a signed integer number and simply casting the result as an int16_t doesn't fix this. IF we do cast it to int16-T and read out the data for a few operating points (including the gain of of our analog front end) we get the following relationship:-

There is a bit of noise etc but the linear relationship is about the right gain. The issue is that the ADC natively reports a value of about -32767 when the differential input is zero which is wrong. Is there another function in DriverLib which allows me to read the differential ADC output as a native int16_t?
Thanks,
Iain