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.

CC1352R: High pick current before the first ADC conversion in SC

Part Number: CC1352R

Hello,

We are developing a new device using CC1352R and coin cell battery CR2032. We need to measure the battery voltage with minimum load (OCV). For this purpose, we wrote very simple program using the SC and the internal ADC converter.

1. First, the SC will wait 10ms in Low-power mode for battery recovery.

2. The SC takes the control over the ADC converter. Initializes it and takes 9 measurements every 1ms.

3. The SC returns the control of the internal ADC converter and wakes up the system CPU application.

The problem is that ALWAYS before the first measurement (around 1ms after the initialization of the ADC), there is a significant pick in the current consumption. We suppose that this is a recharge pulse. Please see the attached picture. We did a lot of tests to understand and to control this pulse, but without success.

1. First, using the functions sysDisableVddrRechargeDet(), sysEnableVddrRechargeDet() and sysCheckVddrRechargeDet(flag) we tried to check whether this pulse is a recharge pulse. NOTHING. The flag is not set.

2. Second, we tried to used the recommended function sysForceAndWaitOnVddrRecharge() in Low-power mode before the ADC converter to be initialized. NOTHING. The position of this pulse is the same.

For now, we added only one additional delay before the first measurement, but this is not a good solution for us.

The main question is how to control this pulse to have stable battery voltage without any voltage drops before the real ADC conversion?

Why does the function sysForceAndWaitOnVddrRecharge() not work?

Attached picture:

Thank you very much for your reply in advance.

  • TO be able to look into this, the best thing would be if you could provide me with SC code so that I can generate the same SC code as you are running, and then I can run it from the empty project in the SDK, to be able to reproduce it.

    If you use the sensor controller for other stuff than the ADC, this can be removed.

    BR

    SIri

  • Hi,

    The SC project is attached. There is not a secret. This is a test project based on the examples in the SC help about the ADC converter.

    My main project executes the SC task manually every 1s or 2s. Waits the task to complete and checks the ADC samples in the output data structure.

    Before to start the tasks, you have 3 input configuration parameters. The default values can be used without modifications.

    In this SC project, there is one more task which I don't used (it is not started).

    SC_test_project.zip

  • Hi

    I will need your sensor controller project file (.scp) so that I can open the project in sensor controller Studio.

    BR

    Siri

  • Please also include info on what the main program should do. I tried to just start the BATTERY_VOLTAGE_TASK from the empty example, but I do not see anything other than recharge pulses.

    Siri

  • The SC project file is included in the zip.file.

  • The purpose of the CP project and the task "Battery voltage" is to measure the battery voltage/VDDS using the internal ADC. The main project only convert the raw ADC sample in microvolts. With the default values of the input parameters, the task waits 10ms and after that will measure 16 times the battery voltage/VDDS. In the end, it will wake up the system CPU application.

    The main MCU does only one thing. Resets the data structures and starts manually the task. Waits in Standby mode the measurements to complete. After that, it reads all output data and converts the raw ADC values in microvolts. In Debug mode, I check what is the current battery voltage.

  • Hi

    Unfortunately I am not seeing ANY ADC activity with the default SC code that you shared.

    Am I suppose to run only the SCIF_BATTERY_VOLTAGE_TASK_ID or both tasks?

    What do you set scifStartRtcTicksNow to, and what do you do in the callback?

    Siri

  • Hello,

    1. You don't see any ADC activity because the SC is in ACTIVE mode (880uA).

    2. Ignore the first task. Even if you want you can delete this task from the project.

    3. No need to have RTC ticks. I start the Battery voltage task MANUALY every 1s. Check the output data stricture with the results. You will see the raw ADC samples from the measurements.

    The questions is, why is there so big pick in the current consumption before the first measurement? How to control this pick for minimum noise during the ADC measurement?

  • Please share the complete code for what you are doing from an application point of view.

    You can use the empty project as a starting point, and then share code so that I can run the exact same thing as you are (I do not want a written explanation to what you do, just code)

    Siri