This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC1310: TIRTOS for Bat Monitor and Temperature extraction

Part Number: CC1310

Hello,

I am using the TI RTOS in conjunction with obtaining the Temperature and Battery Monitor input voltage. My questions is directly related to the Battery Monitor voltage. The TI RTOS has a API of:

 battery_volt_ti = AONBatMonBatteryVoltageGet();

This returned value has the voltage of whole number in bits [10:8] and bits [7:0] represent the fractional decimal value. I have a high end power supply that I can control the output voltage to 1 mV. As I increase the voltage slowly, I have noticed that the returned value jumps in a non +1 fashion. For example here is my test code:

AONBatMonEnable(); // Needed to enable
while (1)
{
   Task_sleep(SLEEP_FOR_1S);
   battery_measure_ready = AONBatMonNewBatteryMeasureReady();
   battery_volt_ti = AONBatMonBatteryVoltageGet();
   // Note battery_volt_ti[10:8] = whole voltage
   // battery_volt_ti[7:0] = fraction portion.
   sprintf(txt,"Battery Monitor (%d) = %x\r\n", battery_measure_ready,battery_volt_ti);
   uprintf(txt);
   temp = ((battery_volt_ti & 0xFF) * 3922) / 1000;
   sprintf(txt,"Battery Monitor Voltage = %d.%03d\r\n", battery_volt_ti >> 8, temp);
   uprintf(txt);
}

what I am finding out is that by increasing the voltage 3.116V to 3.117V the output changes from 0x318 to 0x324. I understand about the accuracy and resolution, but I was expecting the AD to produce and increasing value of say 0x319. This happens in a similar manner when going down. There is 8 bits of resolution in the structure from the register for the fractional decimal value, so why is it jumping for such a low change in input voltage.

Thank you,

Shawn