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.

CCS/CC1352R: How to prevent the CC1352R from going into low power mode after generating a 802.15.4 message

Part Number: CC1352R

Tool/software: Code Composer Studio

We are currently using the CC1352R MCU. We need to stop the CPU from going into a low power mode after we generate a 802.15.4 message and transition into a CW beacon signal lasting approximately 100us.

We need to specify the message format and timing.  We want TI 15.4 stack functionality with the CC1352R MCU, with the exception that at the end of a transmitted 802.15.4 message the MCU sends 100us CW signal, preferably with no interruption between the message and the CW signal.

The Ti15.4 stack is what generates IEEE 802.15.4 messages we use for communication.

Can you advise how to achieve the above? 

We are currently just using the regular API call for a data frame transmission that’s provided by the 15.4-stack library:

ApiMac_mcpsDataReq(&dataReq);

  • Hey Lauren,

    The CPU will enter a low power mode as soon as it's done executing events in its queue.

    Which mode are you using in this network? In your network, who is sending the broadcast message (i.e. collector or sensor)? I use the term broadcast here so that we may differentiate from a beacon.

    My concern is with the requirement of having no interruption between message and the CW signal. If you send two separate TX's, there will be some delay between both consecutive TX's. Can you add onto the 802.15.4 message to include the 100us CW signal at the end of that same TX?

    To send a broadcast message, you should be able to send an indirect TX with no ack by setting the destination short address to 0xffff. I am assuming the collector is the one sending this broadcast in this case.

    dataReq.txOptions.indirect = false;
    dataReq.txOptions.ack = false;
    dataReq.dstAddr.addr.shortAddr = 0xFFFF;

  • Hi Ammar,

    Our code is based on the Sensor 2.4GHz example from the CC1352R SDK.

     

    Our preference is to use the TI15.4 stack; we would like to use the ApiMac mentioned before but in addition, control how long the CW lasts at the end of the 802.15.4 message.

    How do we accomplish this?

     

    Alternatively, we could talk to the radio directly. We believe there is a way to string commands together so no interruption occurs between the Tx’s. In this case,  the second command is imbedded in the first command. Is this possible and if so, how do we do it?

    Thanks,

    Lauren

  • Hey Lauren,

    I'm don't think we have the capability in the stack to time particular TX's for a certain duration. I will confirm this and get back to you.

    One thing you may be able to do as a workaround is change the packet length accordingly so that you are transmitting for the desired amount of time.

    If you'd like to talk to the radio directly and not use the 15.4 stack, I would take a look at our rfPacketTX examples posted here: http://dev.ti.com/tirex/explore/node?node=ADtK7QQpkJ5Nyr04Dy1o-g__pTTHBmu__LATEST. If you want to talk to the radio directly and still use the 15.4 stack, you will have to ensure you are not conflicting with their radio commands by checking the radio statuses before performing an operation.

  • Hi Ammar,

    Thank you for your help thus far!

    We are reviewing the link you provided - but I was wondering if you were able to confirm if the stack is capable of timing particular TX's for a certain duration?

    Thanks,
    Lauren

  • Hey Lauren,

    Unfortunately the stack doesn't have have an option to support this use case. It can be added, however, know that doing so will likely conflict with any TX operation performed by the stack.