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.

BOOSTXL-CC1120-90: Fails to shut down radio when lauchpad controller enters sleep mode. Drains batteries.

Part Number: BOOSTXL-CC1120-90
Other Parts Discussed in Thread: MSP430F5529, , CC1120, CC1190, CC2511

We are using the BOOSTXL-CC1120-90 on the MSP430F5529 USB LaunchPad Evaluation Kit. We programmed the microcontroller using the C library provided by sigfox. 

When we put the microcontroller to sleep, the sigfox board does not shut of the radio. We have tried a number of hacks but are unable to get the radio to shut off, which is needed for battery life. 

Does anyone have any experience with this? We would love an updated C library for this board, or really any resources at all. We are unable to find even the original C library provided to us on the internet. 

Tony 646-704-6653

  • - What is the power consumption of the BOOSTXL-CC1120-90 when it should have been in SLEEP?
    - Is the SO line defined after you have issued a SPWD to CC1120? If this is not done the SO line is undefined which cause high current consumption on the MCU side in sleep.
  • Can you elaborate? The MISO line? What should I set it to? Low? 

  • Yes and to a defined state, either logic '1' or logic '0'

    But looking at the schematic this board uses a TCXO which is not possible to turn off as the board is designed. So even if CC1120 and CC1190 is in SLEEP you will have the power consumption of the TCXO. You can try to populate R28 and remove R5. This will turn off the TCXO when CC1120 goes into SLEEP.
  • The TCXO is not the problem. The radio itself will not turn off. I'm pretty much at a loss at this point. The TI hardware is kind of crappy, with the errata calibration and now this issue. We have tried everything we can think of but cannot get it to enter the lpm sleep. If we never transmit a message then power stays low indefinitely. As soon as we transmit, we cannot revert to low power.

  • None of the TI supplied example code even uses the SPWD strobe.
  • The calibration errata is just for version 2.1 of the chip, version 2.3 where this was fixed has been out since 2014.

    I don't think you answered my question: What is the power consumption you are measuring?

    From your last post it could sound like you still are in Tx. Is this correct? What is the MARC state?

    How does the code that handle the transition from Tx to IDLE to PWD look like? Without knowing what you are doing it's difficult to point out what you are doing wrong.
  • So how do i check the chip version? I do not see any mapping to a PARTVERSION register in any of the code supplied by ti. I see a ton of different code out there for people attempting to use the CC1120, but where would one find the official latest version of a C library?

    We have a crude measuring device, but are seeing .03 to .05 amp after transmit, which is pretty much the same as during.

    I have code to check the marc state, but no list of marc state possibilities. From another persons post I was delaying until marcstate was = 0x41, but that did not change anything.

    I have tried everything i could think of in the transmission code, including turning off all io, strobing idle and looping to confirm, doing resets, etc before strobing SPWD. No change. I have tried playing with the value of the miso pin as well. Heres some code that is in there at the moment. Id be happy to send you a zip of the project. 

                 trxSpiCmdStrobe(CC112X_SIDLE);
                 while((trxSpiCmdStrobe(CC112X_SNOP)& 0xF0) != CC112X_STATE_IDLE);
    
    
                 uint8 writeByte = 0x80;
                   cc112xSpiWriteReg(CC112X_IOCFG3, &writeByte, 1);
                   writeByte = 0x80;
                   cc112xSpiWriteReg(CC112X_IOCFG2, &writeByte, 1);
                   writeByte = 0x80;
                   cc112xSpiWriteReg(CC112X_IOCFG1, &writeByte, 1);
                   writeByte = 0x80;
                   cc112xSpiWriteReg(CC112X_IOCFG0, &writeByte, 1);
    
                   trxSpiCmdStrobe(CC112X_SXOFF);
    
                   while((trxSpiCmdStrobe(CC112X_SNOP)& 0xF0) != CC112X_STATE_IDLE);
    
                       P3OUT &= ~(1 << BIT1);
    
    
    
                 trxSpiCmdStrobe(CC112X_SPWD);

  • In the example software provided on the CC1120 page (www.ti.com/.../swrc253) the PARTVERSION register is mapped and you can find the version by reading that register.

    See page 101 in www.ti.com/.../swru295e.pdf for a full MARC state overview.

    If you are in IDLE the CC1120 current consumption should be 1-2 mA. But how do you control the PA_EN and LNA_EN pins on CC1190? To get low power consumption you also have to have this part in power down.
  • Ter, thanks. I had done a global search for PARTVERSION but somehow missed it. Ive been in and out of any code I can find online with SPWD. I would love some kind of git repo with an official library if that exists, but for now will continue with the revE example.

    I see the marc states in that document, but do not see them mapped to constants in the sw example, but will double check the marcstate before attempting to sleep. 

    We are not doing anything to a CC1190. I assume that is a chip on the CC1120-90 boosterpack. We are only trying to get that boosterpack board to consume low power. For now, the goal would be to returning to consume the same low power as it does before the first transmission (doesnt register on our 0.00 meter). If we can get to that point we can try to turn off more. We cant get under .03amps. If there is something I need to do other than attempting to strobe SPWD then please provide any example code. I am shocked that these are marketed as ultra low power but there is not a single use of SPWD in the example software. 

  • Btw, you can't do a SPI write/ read after a SPWD, then you wake the chip again (stated in the UserGuide)

    As I wrote, you need to set both CC1120 and CC1190 in power down to get low current consumption.
  • We have the radio going to sleep finally with the SPWD strobe. What would we do additionally in software to address the cc1190 chip on the boosterpack? We are still drawing 8ma at rest on the entire kit (micro + modem). We have stolen code to shut off all gpio, usb, xt2. but i cant find anything about shutting off 1190 separately. Thanks for your help.

    Edit...found this code?:

    #ifdef CC1190_PA_LNA
        // initialize the IO
        RF_PA_EN_PxDIR |= RF_PA_EN_PIN;
        RF_LNA_EN_PxDIR |= RF_LNA_EN_PIN;
    
        // configure idle
        RF_PA_EN_PxOUT &= ~RF_PA_EN_PIN;
        RF_LNA_EN_PxOUT &= ~RF_LNA_EN_PIN;
    #endif

  • Table 2 in www.ti.com/.../cc1190.pdf shows how the control signals have to be set to put CC1190 in power down.

    Also ensure that the debugger part of the boosterpack draws current.
  • TER, So I have made a lot of progress. I wanted to ask you if I am at as good as I am going to get. 

    CC1190:
    Do I really need to shut this down separately when using the cc1120-90 boosterpack? Setting the pins to low doesnt make any difference in our power consumption. I would think that when you set the radio board to SPWD that it would shut everything down.

    Power draw:
    The draw measured at the 3.3v isolation bridge is <1ma at rest. The draw measured from batteries is 15.65ma at rest. (powering externally via the 5v header). We need the dcdc converter that is on the debugger side of the isolation block to get to the 3.3v, because we have 5v sensors and only want to use the 5v battery. Surely the dcdc converter isnt using 15ma? What else could be causing that draw? I have removed all other isolation jumpers other than 5 and 3v.

    For anyone else having power issues, check out this video and workshop pdf: training.ti.com/msp430-workshop-series-7-12-low-power-optimization

    Thanks, Tony 

  • Tony,

    Did you see the example code that is on the page where you bought the development kit from, it contains example code which also shows how to sleep the device.

    www.ti.com/.../boostxl-cc1120-90

    Regards,
    /TA
  • Thank you! I reviewed that code and made sure that I was sleeping the 1190. It doesn't appear to have any visible affect on power draw.

    At this point, Can someone just let me know if 15.7 mA usage at rest is normal for powering at the 5v header with 4AA alkalines? I loaded some other programs and they are about the same so I'm not sure there is anything I can do in software to get this down. I am really confused as to what is using this power as the measurements at the 3.3 and 5v isolation jumpers are much lower.

    Another wrinkle. I am entering lpm4, but still being awoken by interrupts. I thought that was not supposed to be possible?
  • Tony,

    When trying to measure low current (1uA), then you need to remove the MSP430 debugger that is built in the MSP430F5529 Launchpad from the equation. This can be done by removing all of the jumpers on the board connecting the debugger with the main MCU. Then you need to power the entire circuit from the 3.3V pin on the launchpad.

    You also need to remove the influence of the CC2511 (that is the debugger on the boosterpack).

    Regards,
    /TA
  • Thanks, I figured that out last night. So I think I am good to go, but am open to any recommendations on the most efficient way to get both 3.3 and 5v out of a pack to power this thing. The radio and sensors need 5.

    I found like four versions of a HAL from TI, with dates all over the place. I wish there was an official git repo for these boards. Having to scour multiple pdfs and zips is a real pain when you are not familiar with the chipset families at all.  

  • I started looking into removing power draw from cc2511 and am not finding any real information. Has anyone done this before? Are we positive this chip is on if the boosterpack is not powered via its usb connector?
  • Tony,

    You will need to physically remove the CC2511 from the board to remove the effects of this device on your sleep current numbers. This board was not designed for sleep current measurements in mind.

    Thomas
  • Removing L12 (referring to www.ti.com/.../swrr145 should also do the trick)