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.

Need help: Another Problem when using CC2541 Flash with TPS62730 2.1V power supply

Other Parts Discussed in Thread: TPS62730, CC2541, TPS62736, TPS62733, TPS62743

Dear TI' Engineer,

According to TI's reference, TI recommand TPS62730 to be the power supply of CC254x.

I use TPS62730 to power the CC2541, the TPS62730 output is 2.1V. 

I found that when powered with TPS62730, the internal Flash cannot be accessed normaly, as the osal_nv_item_init() returns FAILED.

So I remove TPS62730 and use a TEK Programmable Power to power the CC2541.

I find that:

If VCC=1.9-2.2V, the BLE connection and characteristics read/write are OK. But NV Flash can not be accessed normally.

If VCC=2.3V-3V, the BLE connection and characteristics read/write are OK. And NV Flash can be accessed normally.

So, I think TPS62730 is not suitable for CC2541 if NV Flash access is needed. Am I right?

         And besides TPS62733 and TPS62736, is there any other solution to provide ultra low power 2.3V? Because I find that TPS62733 and TPS62736 are a lot more expensive than TPS62730.

         Thank you.

Frank

  • Hi,

    This shouldn't be a problem at all. At least not in my experience. Do you have enough capacitance on your board? Flash operations are kind of sudden and current-peaky. Have you scoped the chip supply voltage during these operations?

    There should be a comparison on this page:  

    Best regards,
    Aslak

  • Hi Aslak,

       

        Thank you very for your reply.

        I take 2.2uF capacitance at the input of TPS62733 and another 2.2uF at the output. The voltage is 2.1V quite stable.

        And I tried a TEK PROGRAMMABLE POWER SUPPLY to provide 2.1V directly to CC2541, but when do Flash operation, the read out data is all 0xFFFF.

        The Flash operation is right when I use 2.3V.

     

    Frank

  • Hi,

    That's pretty weird. I've notified some more hardware-oriented colleagues (who are on vacation this week).

    What's osal_nv_item_init()? I can't find this. Did you mean osal_snv_init()?

    Did you check the actual voltage into the chip to see whether it's stable? I just verified that SNV works using the CC2541 keyfob with the TPS62730. Did you try the same code on the keyfob? Have you tried switching out the device for another one?

    BR,
    Aslak
  • Hi,

    Increase the cap values to 10uF or 47uF in the input and o/p and check.

    Have you kept the current knob in the power supply to medium or max, in the TEK power supply?

    Also please attach any screenshots of the voltages if you are using a oscilloscope.

    Regards,

    Vijay

  • It could be a HW issue. Are all power pins properly connected? Is the ground pad connected to the ground plane? Could you post an image of your layout and your schematic?
  • Hi Vijay,

      

             Thank you very much for reply.

             The problem still exist using 47uF cap. The TEK power supply current limit is set to 200mA.

             The voltage of 2.1V is stable. 

             BR,

    Frank

  • Hi Aslak,

        Thank you very much for reply.

          The BLE1.4.0 does not have osal_nv.c, only has osal_nv.h. The osal_nv.c is in the Zigbee stack, and I copy it to my project. I find this in several forum, many people do like this. And the osal_nv.c work well when the powe is 2.3V or higher.

          The voltage is stable at the VCC pin of CC2541.

          I don't have the keyfob right now, and I will buy one and try my code on it. (change P1_5 to P0_7)

          I tried 3 of my devices, the same problem occur.

          BR,

    Frank

  • Hi Fredrik K,

         Thank you very much for reply!

         I've checked that all power pins are well connected.

        The schematic and layout are as follows:

         

  • Hi,

    There is an SNV driver included with BLE 1.4.0, which is used by the BLE stack for bonding etc.

    Find it under OSAL/osal_snv.c in IAR. I would recommend you use this driver for simple NV storage on the CC254x chipsets.

    Best regards,
    Aslak

  • Hi Aslak,

          Yes, but snv does not feed my needs. And nv works well when I use 2.3V or above, so I think the nv program is compatinle with CC2541

  • Hi Aslak N.

    The problem has been solved.
    The osal_nv.c I used was a version in 2011. I downloaded an old version of 2008, and replace the file, the NV can be accessed normally even under 1.9V.
    That is quite strange. The 2011 version osal_nv.c can work normally above 2.3V. It seems the driver software is deeply associated with the internal IC hardware.
    Do you have any idea why the 2011 version cannot work under 2.1V?

    Thank you.
    Frank
  • Hi,

    This is as you stated a ZigBee driver. I can only guess that there's some check in there for battery voltage or similar. There are some differences between the ZigBee IC and the BLE IC. I have notified the ZB team to look at your post.

    BR,
    Aslak

  • Hi Aslak,

    That's very nice of you. Thank you very much.
    Frank
  • Hi,
    the OSAL NV driver provisions a protection mechanism that prevents write/erase operations on the internal flash of the device are done when the voltage is at certain level. This is for systems powered for instance directly from a battery.
    The threshold has been set to 5% margin over the nominal operating voltage (ie 2.0 V) to deal with operation like frequent erase/program, like in the case a page is compressed which may incur in a surge of current being consumed and hence a drop of voltage if the system is powered directly from a battery power source.
    That is why it is set to 2.1. The value can of course be adjusted in SW, depending on your design. Please check out VDD_MIN_NV in the code base value if you use the plain osal_nv driver.
    Hope this help.
    Thanks,
    TheDarkSide
  • From a HW point of view it is completely safe to lower this SW limit. The Brown-out detector (BOD) will ensure that the device will not be harmed should the voltage drop below the operating limit during flash access.

    I suggest you set the limit to somewhere between 1.9 and 2.0 V and see if that reaolves the problem.

    Cheers,
    Fredrik
  • Hi TheDarkSide,

    Thank you very much. I learns a lot from your explanation.
    In my case, CC2541 is powered with TPS62730, which will provide a stable 2.1V in DCDC mode. And I will guarantee the NV operation takes only when the TPS62730 is in DCDC mode. If the Vin goes under 2.2V and TPS62730 goes into Bypass mode, no NV operation will be taken.


    I have a question: Will the NV operation always be reliable under stable 2.1V power supply, for example, provided by TPS62730 in DCDC mode? Since TPS62730 is a recommanded DCDC for CC2541.


    Thank you.

    Frank

  • Hi Fredrik,

    I set the limit to 1.95V, and did some NV read/write test, the result is right.
    But I wonder, whether the NV operation can always be reliable under 2.1V? Since the design is used in a daily used product.

    Thank you.
    Frank
  • Hi Frank,

    With the TPS regulator providing stable 2.1 V you will not have any issues with the limit set at 1.95 V.

    Cheers,
    Fredrik
  • Hello,

    I think I have a similar problem; I use the Sensortag application and are not able to start without the 2.5V debugger voltage. I use a TPS62743 for powering the device in 2.1V. The voltage are stable but the device doesn't start up. Where can I change the BOD level ? Thanks Nicolas