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.

CC3200: High current consumption even in hibernate

Part Number: CC3200

Dear tech support,

We are in the final stage to put our product into mass production and the product uses CC3200 as the core MCU.  We set up a test bed with 20 products running in parallel.  Our product would send heartbeat signal to our server every 15 minutes and then go into hibernate afterward.  In the beginning all samples consume around 30uA in hibernation state.  However, after running a few days, one of the sample starts to consume 28mA in hibernation state.  The other samples still keep the same 30uA level.  Our hibernation code is as following paragraph. 

==========

UART_PRINT("Hibernated ! KnobState=%d LocalTime=%d\n\r", Event_File.KnobState, LocalTime);
MAP_UtilsDelay(80000);
Utils_SpiFlashDeepPowerDown();
MAP_PRCMHibernateEnter();

==========

We could not figure out why this sample behave differently.  Could you tell us how to find the root cause of this problem?

Vincent

  • Hi Vincent,

    The CC3200 does not seem to be entering hibernate, which could happen if you are pending an IRQ in your application.

    Are you calling sl_Stop before you enter hibernate? Are you able to wake up from this state?

    Best regards,

    Sarah

  • Hi! Sarah,
    Except for high hibernate current, our NFC chip could send interrupt signal to wake up CC3200.  By the way, we did not call sl_Stop before we call hibernate function call.  How do we identify whether CC3200 really enters hibernate state or not?
    Vincent
  • Hi Vincent,

    In hibernate mode, both the MCU and NWP lose state. For the NWP, this is equivalent to calling sl_Stop(0).

    We suggest calling sl_Stop(200) so this allows the NWP to finish pending items and shut down gracefully. By calling this before hibernate, it should clear any pending IRQs from the host driver so the MCU can fully enter hibernate.

    Can you try adding sl_Stop(200) to your hibernate sequence? If you can access the device with a debugger, you can also check the state of the application.

    Best regards,

    Sarah

  • Hi! Sarah,

    We did add a sl_Stop(0) before EnterHIBERNATE routine and the board still consume 29mA during hibernate.  What should I test next?

    Vincent

  • Hi Vincent,

    Please try sl_Stop(200). This gives the NWP time to finish its tasks.

    1. Have you parked your pins before entering hibernate?
    2. Are there peripherals connected to the CC3200?
    3. How are you measuring the current consumption by the bad board? Are you measuring the system or our device specifically?

    Best regards,

    Sarah

  • Hi!  Sarah, 

    We changed sl_Stop() from sl_Stop(0) to sl_Stop(200) and it still consumes 30mA approximately in hibernate state.  We also did disconnect all other peripheral from the CC3200 but it still consumes the same level of current in hibernate state.  When we disconnect all peripherals on the board, the power supply only send the power to the CC3200 chip.  That is how we obtain the conclusion that the current is consumed by the CC3200 chip.  What would you suggest us to do next?

    Vincent

  • Hi Vincent,

    Do you have external pull-ups or pull-downs on the board?

    If I understood your first post correctly, you are only seeing this issue on one board. Have you replicated it on any other board? If not, please try swapping the CC3200 device with a known good board, and see if the issue occurs with the good board/bad CC3200 or the bad board/good CC3200.

    Best regards,

    Sarah

  • Hi!  Sarah,

    Our first test is to replace the CC3200 chip with a new CC3200 chip.  After that, the board only consume under 30uA in hibernate.  We shall check whether we could put the original CC3200 chip to a good board and see how it goes.  

    Vincent

  • Hi! Sarah,

    We did another test.  We put the trouble CC3200 chip on another good board.  The board would demonstrate the same high hibernate current consumption.  The phenomenon meets our expectation that the CC3200 chip has some issues.

    Vincent

  • Hi Vincent,

    Can you share your UART terminal logs with us? We'd like to see what is going on when the device tries to enter hibernate. NWP logs may also be helpful: http://processors.wiki.ti.com/index.php/CC3100_%26_CC3200_Capture_NWP_Logs

    You said in your original post that the jump in hibernate current only occurs after a few days. Does it take the same amount of time every test? Are you always connected the same AP? Do you see any disconnection events or errors occurring?

    Best regards,

    Sarah

  • Hi! Sarah,

    The console output for a simple hibernate program is as following!

    ===============================================

    HIB: Wake up on Power ON

    ------------Battery power system . ----------------
    Hibernated !

    I also attach a picture to prove the power consumption in this case.

    Vincent

  • Hi Vincent,

    The last thing I would ask you to verify is if you flash the device with the hibernate example in the SDK, do you see the same behavior?

    Have you ever seen this issue on any other device? Or is it just the one?

    Best regards,

    Sarah

  • Hi! Sarah,

    Here are the console output for the hib example running on the board which has the sympton.

    ====================

    [2019-12-20 15:53:47.475] n\n===============================================
    [2019-12-20 15:53:47.475]
    [2019-12-20 15:53:47.475] HIB: Wake up on Power ON
    [2019-12-20 15:53:47.475]
    [2019-12-20 15:53:47.475] ------------Battery power system . ----------------
    [2019-12-20 15:53:51.826] Hibernated !
    [2019-12-20 15:53:52.612]
    [2019-12-20 15:53:52.612]
    [2019-12-20 15:53:52.612] ******============================================******
    [2019-12-20 15:53:52.642]
    [2019-12-20 15:53:52.642] HIB: Woken up from Hibernate
    [2019-12-20 15:53:52.642] HIB2: wakeup from Proximity...
    [2019-12-20 15:53:52.642]
    [2019-12-20 15:53:52.642]
    [2019-12-20 15:53:52.642] ========================================================
    [2019-12-20 15:53:52.642] starting the procedures of locking/unlocking emulation
    [2019-12-20 15:53:52.642]
    [2019-12-20 15:53:52.642] Before Battery ADC_vaule = 0AEB...
    [2019-12-20 15:53:52.660] lock state
    [2019-12-20 15:53:52.660] Mifare Scaning ...
    [2019-12-20 15:53:52.675] Mifare Polling scan [1]
    [2019-12-20 15:53:52.722] Mifare Polling scan [2]
    [2019-12-20 15:53:52.788] Mifare Polling scan [3]
    [2019-12-20 15:53:52.851] Mifare Polling scan [4]
    [2019-12-20 15:53:52.898] Mifare Polling scan [5]
    [2019-12-20 15:53:52.952]
    [2019-12-20 15:53:52.952]
    [2019-12-20 15:53:52.952] ======================
    [2019-12-20 15:53:52.952] = Card not exist ! =
    [2019-12-20 15:53:52.952] ======================
    [2019-12-20 15:53:52.952]
    [2019-12-20 15:53:52.952] Count number = 1
    [2019-12-20 15:53:52.952]
    [2019-12-20 15:53:52.952] After Battery ADC_vaule=0AED...
    [2019-12-20 15:53:52.968] Hibernated !
    [2019-12-20 15:53:53.831]

    ====================

    During hibernate period, the power consumption is still over 30mA.  After the problem occurred to the board, the board does demonstrate the sympton that consumes more than 30 mA during hibernate period.  

    This problems only appears on this board.  We did not see the other board to demonstrate the same problem.  However, the error rate is too high considering that we only make about 20 boards this time.  In the beginning, the boards seems to be functional without problem.  What should we do to diagnose this problem further?

    Vincent

  • Hi!  Sarah,

    What should I do next to find the root cause?  At the moment, this board demonstrates the phenomenon after it went online for a while.  We would like to know whether this is caused by certain abnormal operations or some defects in the design.  This is quite important for a high reliability use case. 

    Vincent

  • Hello Vincent,

    I will send you a friend request. Please send me your board's schematic and gerbers via direct message. I will then review it and provide feedback by the end of the week at the latest. 

    BR,

    Seong

  • Hi! Seong,

    Have you received my private message?  I have already sent you the schematic and layout.  Please review them for us.  Thanks! 

    Vincent

  • Hi Vincent,

    I reviewed your schematic and the only feedback I have is that a 100k pull up resistor to VBAT is missing on pin57. This is required to achieve the lowest current in Hibernate. However, this does not explain why the current would jump from 30uA to 30mA.

    In addition, the current should be measured across time to properly calculate the avg current consumption. That being the case, a basic multimeter or source meter w mA resolution is not sufficient for cases where the current fluctuates. Instead, the current consumption of the device should be measured using a DC power analyzer or an oscilloscope+current probe. Although this appnote was intended for the CC3220 device, see Section 2.4.

    This way, you can visually determine exactly when the device is in Hibernate mode and properly measure the avg current consumption within this window.

    Also, if you're not already doing, it would be best to measure the current consumption of the CC3200 by itself. Hibernate current is ~4uA.

    BR,

    Seong