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.

CC1350: Run BLE-stack and SUB1-GHz with dual image concept

Part Number: CC1350

Hi All,

After I understood that TI cc1350 does not support the BLE and sub1-ghz at the same time, and the only option for now is to set dual image, i have few questions about dual image:

1- Did the cc1350 came with more than 128KB?

2- Did 128KB is enufh to run BLE and sub1-GHz?

3- Did there is any example to run dual imag?

4- In the dual image the moving from BLE and sub1-GHz done by hardware interrupt, can i replace this interrupt in timer interrupt, like each 10 seconds i change from BLE to sub1-GHz and Sub1-GHz to BLE?

5- Did there is a way to share memory between the SUB1-GHz image and the BLE and the boot-loader? example: if the BLE connected i want to disable the SUB1-GHz, so i need update some flag, and the interrupt timer (that suppose to replace BLE to sub1-GHz) will read this value and do not replace the BLE.

  • Nav.Dev,

    We do have a working example to show connected BLE + Sub-1 GHz using the Dual Image Concept example, but we are in the process of getting it published to the web. Keep in mind that this is not concurrent BLE + Sub-1 GHz, but is role-switching done by rebooting the device. The example allows a payload to be set over BLE, which is then sent via Sub-1 GHz after the device switches images. It will be published as a TI Design, as TIDC01001. It is too much information to post on e2e, but I will update this thread as soon as it is available.

    To answer the questions you have:

    1. The CC1350 only contains 128kB of Flash.
    2. In the example I mentioned, we managed to fit one BLE service with Sub-1 GHz TX, with around 10 kB of Flash left over.
    3. See above.
    4. It is possible to do this, but you will continue to lose BLE connection each time the device reboots to the Sub-1 GHz image (see previous statement above). Are you wanting to have a BLE connection, or just send BLE beacons? If BLE beacons, we have an example already in the CC13x0 SDK that does this (rfWsnDmNode), and there is no dual image needed.
    5. You can store the value and read it in RAM for a continually changing variable. This can be done with #pragma. For example, to store the value and not re-initialize it upon reboot, you can declare the variable as follows:

    #pragma NOINIT (flag)
    #pragma location=AUX_WR_ADDRESS
    uint8_t flag;

    This is done in the example I mentioned, where AUX_WR_ADDRESS is 0x400E0700 (a section of AUX_RAM).

    Skyler
  • The TI design I mentioned is now up on the web: www.ti.com/.../TIDC-01001.

  • Hi skyler and thanks for responding, unfortunately i am getting error from TI besite by using your link, did there is another link that you can share please?
    The msg is:
    "Sorry we couldn't find your page:
    The page you are looking for might have been removed, had its name changed, or is temporarily unavailable.

    Please check the address bar to make sure the link is typed correctly, use the links below to locate the information you want, or search the site for another destination.

    If you are certain that this URL is valid, please send us feedback about the broken link.
    "
  • There is just an extra ) at the end of the link. Try this one:
    www.ti.com/.../TIDC-01001
  • Thanks a lot skyler,
    In the tiduco2.pdf 1.1 System Description, there is explanation of what the dual image ability, i understand that the example can run both BLE Peripheral and Packet RX.
    Can the Dual image run:
    1- BLE Peripheral .
    2- WOR sub1-ghz.
    3- RX packet.
    4- TX packet.
    ?
    Regard Navh
  • Navh,

    Are you asking if the dual image can have any of those on a separate image, and not just with the BLE Peripheral example? I believe all of the examples you listed should work with the dual image. The main constraint is that of the flash size, and the BLE Stack consumes the most. With regard to the example (BLE Peripheral / Packet TX), you can replace Packet TX with WOR (simply adjust the task function and SmartRF settings). There should be enough flash to combine TX and RX in the same image. However, we have only tested the current configuration (BLE + Sub-1 TX).

    Skyler

  • Thanks Skyler for responding,

    I want BLE peripheral and TX and RX and WOR, all of them together, did there is enough space for all of them at the same time?

  • I cannot guarantee that they will all fit, but the code size of the Sub-1 GHz examples seems small enough that they should fit on Image B. Image A needs to be dedicated to BLE because it links to the BLE stack, but Image B can be configured for the Sub-1 GHz functions.

    Keep in mind that BLE and Sub-1 GHz operation is not concurrent in this example, and that a reset is used to switch images. This means that the BLE connection will be dropped when the Sub-1 image is active, and will need to be re-initialized from the central device upon switching to the BLE image.

    Skyler
  • Hi,Skyler
    Thanks for this example,i have been looking for some way to do this for a long time

    so is it possible to maintain the BLE connection by:

    1-using a large connection Interval in the BLE image (e.g. 500 ms)

    2- saving the BLE connection state  before rebooting to the Sub-1 GHz image

    3- rebooting to the BLE image using a clock interrupt instead of pressing button 2  

    4- load the BLE connection state in the BLE image before the next  connection event ?

  • Hi Peter,

    We have not tested this, so I would suggest trying to see if it works. I would think that if you're saving the connection state in the device, it should keep the connection alive as long as it is within the interval.

    Skyler