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 WOR and Sniffer Mode Code Example

Other Parts Discussed in Thread: CC1310, SYSBIOS

Hi All,

Is there any code example for CC1310 WOR and Sniffer mode? Thanks a lot.

BR,

Lina

  • Hi Lina,

    We are currently working on including a WOR software example in the next public release of the TI-RTOS. This would be a slow WOR which would use the RTC to wake up and check if there is any energy or preamble and stay in RX if there is, otherwise it will go back to sleep.

    If there is an example available for general distribution before that, we will make sure to post a reference to it on this forum.

    Best regards,

    Niklas

  • Hi,Niklas,

    Is the WOR software example have been published?And if not what's the time? We need it,We are anxious !

    Best regards,
    Shoubo Lu
  • The WOR example will be included in the January release of TI-RTOS (end of the month)
  • Hi,TER:
    Thanks for your reply.We all know in CC1310: The RTC is clocked from the low-frequency oscillator. The RTC can generate timed events to the CM3
    and wake the device from idle or standby.So I want to use this method to save power energy in CC1310.But in the file C:\ti\tirtos_simplelink_#_##_##_##\products\bios_#_##_##_##\packages\ti\sysbios\family\arm\cc26xx\Timer.c,when I call the function Timer_start (Timer_Object *obj),well the arguments :Timer_Object *obj need to be defined,but I don't know how to manage it,global variable or local variable???and how to initialize it ,call which function to do this?Can you tell me?I'm looking forward to you reply.
  • Hi,Niklas,

    Is the WOR software example have been published?And if not what's the time? We need it,We are anxious !

    Best regards,
    Shoubo Lu
  • The January release of TI-RTOS has been delayed to about 14. February. The example will be included in this release.
  • Hi TER,

    Is the WOR software example have been published?And if not what's the time? We need it,We are anxious !

    Best regards,
    Shoubo Lu
  • The newest release has been somewhat delayed due to a late found bug in the drivers that had to be fixed. The new release will be out in a few days time.
  • Hey team,
    Any update on this by chance?

    Thank you,
    Brad
  • Originally the release was due for tomorrow but some of the RF drivers needs further optimization so the data will move out a few days.
  • TI-RTOS containing WOR examples are now possible to download from software-dl.ti.com/.../index.html

  • Hi,

    I could measure current consumption for active RX phase, but I wonder how big is current consumption between RX ON states and average volume for rfWakeOnRadioRx sample application?

    I can not use my DMM because of small time between RX activity (just 500 ms).

    Here is CC1310 rfWakeOnRadioRx consumption measured on 10 Ohm resistor in power line (XDS100V3 disconnected)

  • Is there any information with regards to estimated current usage for different WOR wakeups per second?

    I'd just like to get an idea on how much lower than the standard 5.5mA receive current? 

  • Hi

    The chip enters stand-by in between wake-ups so the the average current consumption between wake-ups when using the sniff command is less than 0.6 uA

    Siri

  • Hi, Siri,

    Am I understand right - average current for this sample application is 52.472 uA and I should use this figure to calculate battery life time? Of course we need to add real RX activity - data receiving and faulse activity due to interference.

    What is measurement settings for above screenshot (measurement device type and method)?

    BR,

    Oleg

  • Thanks for the test Siri, much appreciated.

    The average is done over 1 sniff command and 2 stand-by phases, wouldn't it be better to do it with Marker 2 at around -0.43ms.

    The results do seem very positive though.
  • Hi Oleg

    The plot was meant to show the average current consumption when the chip is in standby. This average current consumption is 542 nA in my case.

    In the test I did, the radio enters RX every 500 ms (it is in RX just before cursor 1 and just after cursor 2). The peak in the middle of the plot is the recharge current in standby (please see http://www.ti.com/lit/swra486) for more details.

    BR

    Siri

  • Hi Scot

    The average current consumption (when taking RX into account) was in this case below 16 uA.

  • I am testing on the Launchpad for CC1310, and between RX I am getting 7.75uA (on a 3.3V supply) and during RX current goes up to 8.135mA. With a WOR interval of 1s instead of 500ms, the average current consumption is 618uA. The two modifications I made to the rfWakeOnRadioRx example project were to reduce the WOR rate, and to modify smartrf_settings.c to operate at 915MHz. The XDS and LED headers have been all removed, and dropping the CPU frequency to 6MHz from 48MHz doesn't change the supply noticeably, are there any sources that could account for this extra current? (I'm assuming the antenna mismatch from moving to 915MHz would change the RX current requirements slightly, but I'm also seeing more than 10x current in standby).
  • SpartanEngineer:
    - Normally you will not save any current by reducing the CPU clock. You will reduce power for one time unit but you will use longer time to do a task.
    - The numbers you report sounds a bit strange. How long are you staying in Rx when your average is 618 uA? Could you post a plot that shows the power profile over a couple of wake ups?
  • I've bumped the CPU clock back up to 48MHz since it doesn't seem to affect average power much.

    The last time I measured with a meter, the RX lasted only one sample (less than ~68ms). Out of 200k samples collected, 15k were at the higher current, the rest were lower than 10uA. Attached is a plot of my latest testing, where I reduced symbol rate to 2.4kBaud, and deviation to 1kHz which seemed to help peak power - the frequency of high current events has also been reduced since I'm now doing a WOR wakeup every 5 seconds, but the time it spends high is the same.

  • Could you also zoom into one of the peaks? Do you have a differential probe and measure the voltage over a series resistor or how do you measure this?

    Is the current consumption when you actually receive a packet or is it when it goes up in Rx, check if it's a preamble on the air and goes to sleep again?
  • I've attached a slightly zoomed graph, the peak only shows up as one sample so I'm also including a table that shows one of the peak values. To measure the current, I disconnect all jumpers on the Launchpad, then connect the GND jumper and the USB cable. I am using a Keithley DMM7510 to then make a current measurement by connecting the hi-probe to the 3.3V on the XDS side and the lo-probe to the 3.3V on the CC1310 side. In this case the current consumption is without receiving a packet, only the periodic wake up; however, the peak current doesn't change even if I am transmitting packets.

    Time Reading
    2.025084 0.006497m
    2.042423 0.008774m
    2.059757 0.544186m
    2.096417 0.006947m
    2.113761 0.008954m
    2.131096 0.006666m

  • I changed ccfg.c to make SET_CCFG_MODE_CONF_DCDC_RECHARGE 0x01, then turned on local optimizations with -mf 2 in the project properties. The reported average current is now 20uA, probably slightly higher than default (<16uA) because of antenna mismatch at 915MHz, but much better than my initial results.

  • Hi TER,

    Can you explain, why reducing the CPU clock does not affects the power consumption ?

  • If you look isolated on the current consumption over a few clock cycles lowering the clock frequency will lower the power consumption.
    BUT:
    - If you use half the clock frequency you will use double the time to finish the task
    - For CC13xx/ CC26xx the MCU current consumption is a constant (bias etc) + x uA / MHz meaning that if you go down in clock frequency the constant current consumption will have larger impact

    From this looking at the average current consumption over time using the default clock is the most energy efficient.
  • Thanks TER.

    To make more clear,
    CC1310 Active Mode current consumption is 1.2 mA + 25.5 uA/MHz.

    @ 48 MHz = 2.5 mA
    @ 24 MHz = 1.9 mA

    If we have 2 mS(@ 48 MHz) task for every 1 second period. The average current consumption is;

    i_avg = i_active_mode x (t_active_mode/period)
    i_avg_48MHz = (2.5/1000) x ((2/1000)/1) = 5 uA
    i_avg_24MHz = (1.9/1000) x ((4/1000)/1) = 7.6 uA

    So it seems, faster clock speed is more energy efficient as you told.
    Thanks.