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: Interest in moving an RF application from MSP430 + CC1101 to CC1310 but has concerns about squeezing into the Flash memory space of the CC1310 (32KB target Flash size).

Part Number: CC1310
Other Parts Discussed in Thread: CC1101, , SIMPLICITI

TI RF Team,

Our customer has interest in moving their RF application from MSP430 + CC1101 to CC1310 but has concerns about squeezing into the Flash memory space of the CC1310 (32KB target Flash size).

[CUSTOMER]

We have 16KB of firmware + driver running the CC1101 currently.  If we switched to the CC1310, would we need to use a TI software stack that would add extra code?  I just want to be sure our application plus any TI software used on the CC1310 will fit in the 32KB or 64KB of flash space provided.

[TI]

Just to first level set.  Just please clarify what (stack) would run on the CC1310 specifically?

 In terms of code size comparison, although there is no hard set rule between MSP430 and ARM, keep in mind the MSP430 uses the proprietary 16-bit core to squeeze into potentially smaller memory footprints, whereby the 32-bit ARM cores (M3, M4, etc) can perform better but may use slightly more code space.  There are a lot of papers and such out there such as this (below) which probably talk to maybe 15-20% general rule of thumb (adder for ARM code size).  For example, this particular paper talks to a 19% advantage for 16-bit MSP430 vs. ARM M3.

Electronics | Free Full-Text | Compact Implementation of ARIA on 16-Bit MSP430 and 32-Bit ARM Cortex-M3 Microcontrollers (mdpi.com) [mdpi.com]

 We have very small sub1G stacks that typically squeeze into 10s of Ks of code space, few K or RAM.  (TI legacy SimpliciTI RF stack used Ks of Flash and 100s bytes RAM).

We also have BLE devices with the Stack in ROM (~80KB) meaning only ~8-10KB are needed for application (API, driver calls, etc).

CC1101 Transceivers are hosted in external MCUs anyway (such as MSP430) so may be a null point after all ?  (ie 16KB on MSP430 equating to say ~20KB on CC1310…?)

 But again, if comparing MSP430 + CC1101 to CC1310 stand-alone, I don’t anticipate that we’d have a big memory issue or concern overall.  Plus, the CC13xx family offers some P2P compatible options with larger memory sizes also.

[CUSTOMER]

there’s going to be radio control software that comes with the SDK for the CC1310.   Similar to the “empty” or “basic” projects for the CC2340 (that we are already aware of).  The size of those projects is roughly what I’d consider “stack” or extra code and API that TI provides that our code needs to call for radio operation.  I think you kinda answered it below that were looking at “10s of Ks of code space, few K or RAM.  (TI legacy SimpliciTI RF stack used Ks of Flash and 100s bytes RAM).”

 There’s some folks casting doubt on whether our currently 16K CC1101-based application firmware is going to fit in 32K on a CC1310.  I’d like to figure that out pretty quick.

 [TI]

So we may need to lean on the E2E Forums which will still be monitored by TI over the holiday break (if urgent enough on your end)…

 We there with this thread will initiate an E2E thread for this inquiry and perhaps even share code (separately from E2E)?

 Lastly, if a user had both CC1101 and CC1310 HW today (even LaunchPads for CC1310…)…and if so could run a quick test using perhaps the SimpliciTI stack?

SIMPLICITI Driver or library | TI.com [ti.com]

CC1310: CC1310 communicate with CC11xx running simpliciti protocol - Sub-1 GHz forum - Sub-1 GHz - TI E2E support forums [e2e.ti.com]

 We may need our LPRF team’s support on this, which I’m just afraid won’t be ‘pretty quick’ given Christmas is now 3 days away.  Wink

Thank you for your patience over the holiday break.

 TY,

CY

  • Quick update prior to the holidays:

    [CUSTOMER]

    I built some very simple CC1310 example projects without RTOS.  They didn’t fit in 32K of flash.  I tried both the “listen before talk” and “Echo RX” projects.  Both compiled to around 40K.  That suggests we’d have to at least bump ourselves up to the 64K.

    [TI/CY]

     I was actually suggesting our TI SimpliciTI stack which squeezes into an even smaller memory footprint.

    But I actually feel that this is an encouraging datapoint (with the out of box SDK and no optimization or assistance from our RF team).!

     I’ll update the E2E Thread accordingly as we transition into the holiday season now together.

     I would still suggest 64KB anyway … if that wasn’t made clear from the beginning.  32KB just seems too small.

    FOR THE TI TEAM:

    1) please review above and comment please

    2) has SimpliciTI been ported to CC1310 yet, just out of curiosity?

    3) any further thoughts welcomed.

    Happy Holidays y'all!!

    -Chris

  • Hi Chris, and Happy New Year

    This is what I got when building some of our default examples with and without TI-RTOS:

    Not sure how this fit the 40K that the customer claims they are seeing.

    How much more Flash they will need, depends on the application that they want to run on top of this, but the RF Driver and the Radio API is already included, together with all the other drivers.

    SimpliciTI is not and will not be supported on the CC1310. There is support for EasyLink, but this is not very flexible, so I strongly recommend that they use the rfPacketRX and rfPacketTX examples as a starting point and use the Radio API directly.

    Siri

  • Hi Siri,

    I think we can put this one to rest now.  Appreciate the input very much.  Very helpful to our and customer's understanding.

    -Chris