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.

CC2650 POWER_SAVING uart

Other Parts Discussed in Thread: CC2650, Z-STACK

Hello,
 
My setup :
  • CC2650 (master) <-> Mux/Demux <-> Serial device (slave)
  • MRDY and SRDY are not used.
  • IOID_6 and IOID_7 are used to control the Mux/Demux
The Mux/demux is used to isolate the cc2650 from the serial device in idle state
 
My goal is :
  • cc2650 write a command to the serial device, 
  • which in return send a response.
 The Mux/Demux is put in a state so that the :  
  • CC2650 RX is linked to Serial deviceTX
  • CC2650 TX is linked to Serial deviceRX
When there is no power saving, this works fine, the readcallback is triggered. 
It uses roughly 2-3 mA idle.
 
In power saving mode, it uses roughly 0.2 mA idle
Before writing to the serial device,
I’ve put the following code
 
Power_setConstraint(Power_SB_DISALLOW);
Power_setConstraint(Power_IDLE_PD_DISALLOW);
 
Timeout for an event to do the following
 
Power_releaseConstraint(Power_SB_DISALLOW);
Power_releaseConstraint(Power_IDLE_PD_DISALLOW);
 
I see that the time it is awake, it uses 2-3 mA.
 
Yet, the readcallback is never triggered.
  
Have I missed something ?
Thanks for any clue.
 
Best regards,
Nises
  • Hi,
     
    I forgot to point out that my custom board was :
    . for a BLE device
    . using tirtos_simplelink_2_13_00_06
     
     
    I’ve used the same board to make a zigbee equivalent.
    The setup was the following :
    . zstack_home_1_02_02a_44539
    . IAR for ARM 7.50
    . tirtos_simplelink_2_11_01_09
    . I don’t have the MRDY/SRDY pins, nor use any SWHS
     
     
    What I have noticed :
    . Even without POWER_SAVING in the PREPROCESSOR symbols (app & zstackcore), the current drawn is < 0.2 mA.
    . I do not have to set any Power_setConstraint() in my code.
    . When I do a UART_read(), current raises to about 4.0 mA.
      Callback is triggered when it has read the number of bytes wanted, current falls back to 0.2 mA
      All the power management is done in the default uart driver.
    Thanks for any clue.

    Best regards,

    Nises
  • Check if any pin of your CC2650 is leaking current.
  • Hi Yikai Chen,

    Thanks for replying.

    < 0.2 mA seemed ok for me.
    My question was rather why there is a difference in uart management between BLE and Zigbee ?
    In BLE, from what I have read in the TI forum, either we must use MRDY/SRDY or SWHS to be able to read UART while using low power.
    In Zigbee, there is nothing special to do, or am I missing something in BLE ?

    Best regards,
    Nises
  • There is no difference using UART in BLE or Z-Stack. Both need CC26xx not under power saving to make UART work.
  • Hi Yikai Chen,

    I agree with you, the CC26xx has to be awake to get data from the uart.

    From what I've understood in Power_Management_CC26xx.pdf, when you make a UART_read() call, the PM is done there.

    My zigbee platform seems to work like this.

    Idle < 0.2 mA

    UART_read() 4.0 mA

    After reading wanted bytes, goes down to < 0.2 mA.

    Anyway, I'll check the differences in my code in the 2 platforms.

    Thanks, best regards,

    Nises

  • You are welcome and you see current consumption 4 mA because CC26xx is not under sleeping.