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.

RTOS/LAUNCHXL-CC1310: Getting stable ADC reference while battery powered

Part Number: LAUNCHXL-CC1310
Other Parts Discussed in Thread: CC1310

Tool/software: TI-RTOS

Hi All,

I am trying to develop an application that will power the CC1310 directly from a battery (nominally 3V). I am very keen to use the ADC to measure the anaolg voltage coming out of one of the on board sensors, but I am unsure how to instruct the device to use an internal reference, so the ADC reading is consistent despite the battery power.

I would also like to monitor the batter voltage, is this something that the chip can do, or will I have to feed the battery voltage into an ADC pin?

Please can someone tell me how to achieve this using the LaunchPad development kit, as I am designing a custom PCB based on this reference.

Regards,

-Steve

  • Steve,

    Which version of TI-RTOS or SimpleLink SDK are you currently using?

    I would start by checking the CC1310_LAUNCHXL.c file in your project. This file will contain a section labeled ADC. Within this section, you should see an array of ADCCC26XX_HWAttrs. The refSource field specifies the reference voltage used by the ADC. By default, this should be set to ADCCC26XX_FIXED_REFERENCE. This reference voltage does not vary with the battery voltage. Refer to the "docs\tidrivers\tidriversAPIs" document in your product installation and click on ADCCC26XX.h for more details.

    ADCCC26XX_FIXED_REFERENCE vs. ADCCC26XX_VDDS_REFERENCE

    The refSource specifies whether the internal reference of the ADC is sourced from the battery voltage or a fixed internal source.

      • In practice, using the internal fixed voltage reference sets the upper range of the ADC to a fixed value. That value is 4.3V with input scaling enabled and ~1.4785V with input scaling disabled. In this mode, the output is a function of the input voltage multiplied by the resolution in alternatives (not bits) divided by the upper voltage range of the ADC. Output = Input (V) * 2^12 / (ADC range (V))
      • Using VDDS as a reference scales the upper range of the ADC with the battery voltage. As the battery depletes and its voltage drops, so does the range of the ADC. This is helpful when measuring signals that are generated relative to the battery voltage. In this mode, the output is a function of the input voltage multiplied by the resolution in alternatives (not bits) divided by VDDS multiplied by a scaling factor derived from the input scaling. Output = Input (V) * 2^12 / (VDDS (V) * Scaling factor), where the scaling factor is ~1.4785/4.3 for input scaling disabled and 1 for input scaling enabled.


    To monitor the battery voltage, include the following in your application:

    <ti/devices/cc13x0/driverlib/aon_batmon.h>

    This file contains APIs which allow you to monitor the battery voltage.

    Derrick

  • There was a suggested answer and since there has been no active on this thread for more than a week, the suggested answer was marked as verify. Please feel free to select the "Reject Answer" button and reply with more details.