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: Simultaneous transmission of data from set of 2 different radio with 2 different address causes havoc

Part Number: CC1310

Hi Team,

I have made firmware do execute 2-way communication between 2 CC1310 radios along with the concept of address verification.

So that data that is intended to be received by radio having particular address is received by that radio only.

This works fine if both radios with different addresses are transmitting one after another.

But if bot radios start transmitting at same time the data is corrupted and also one of the radio stops receiving.

Please provide some input.

Thank you

Vikram

  • Excuse me, why do your hardwares transmit packets at the same time?
  • You should never send on the same channel at the same time with more than one radio. If you do the signals from the different radios will be mixed together and it will not be possible to recognize the sent signal.

    In a radio system you should always ensure that only one radio is in Tx at a given time to avoid this. (LBT or CCA is typically used)
  • Hi TER,

    Thank you for the information and I got it.

    So, basically because I am using the same channel for communication over the radio the data is getting corrupted even though the address are different. Is that correct?

    But my understanding from the Concentrator and Node example was that if the address are different the radio should not even receive the data it is not intended for it.

    So just to clarify what I had actually meant to ask was :

    I have total of 4 radio boards CC1310 burned with firmware. All the 4 radios has the capability of 2-way communication as per the firmware designed.

    The source address on one radio is 0x01(Basically the node address if you take the concentrator and node example) and on another radio is 0x05.

    The destination address on one radio is 0x11 (Again basically the RECEIVER ADDRESS if you take the concentrator and node example) and another radio is 0x12.

    The program is designed in such a way that radios with address 0x01 and 0x11 are suppose to communicate with each other and radios with address 0x05 and 0x12 are suppose to communicate with each other.

    This is done so that in case radio with address 0x01 and 0x05 are transmitting packets then those packets are received by only 0x11 and 0x12 address radio respectively and not received by other radios which don't have those receiver address.

    Now, if all radios are 'ON' at all the time and if radio with address 0x01 is transmitting data and one with address 0x05 is not transmitting data, then as per my firmware only radio with address 0x11 is able to receive and radio with address 0x12 does not receive any data. This is as expected.

    Similarly, if radio with address 0x05 is transmitting data and one with address 0x01 is not transmitting data, then as per my firmware only radio with address 0x12 is able to receive and radio with address 0x11 does not receive any data. This is as expected.

    But the problem arises when all radios are 'ON' and if radios with addresses 0x01 and 0x05 are transmitting data at same time to radios with address 0x11 and 0x12 then data is getting merged on the reception side that is on radios with address 0x11 and 0x12.

    As per the concept mentioned in the radio Concentrator and radio Node example this should not happen as I am using the "Radio_enableRxAddrrFilter" function.

    As you mentioned about the problem transmitting over same channel but should this not arise when my addresses are same?

    I hope this clarifies my problem.

    Thank you

    Vikram

  • The address filtering is not relevant when two radios send on the same channel at the same time.

    Given that Tx1 and Tx2 are sending at the same time the signals from Tx1 and Tx2 will be joined into a new signal that would be the sum of Tx1 and Tx2 at the receiver antenna. The resulting signal will be not be possible to recognized as either Tx1 or Tx2.

    If Tx1 has much more power than Tx2 the resulting waveform will still be possible to be decoded as Tx1 but Tx2 will be lost in the noise.

    Therefore most standards require that you use either LBT or CCA to avoid start sending if a different sender is already on the air.
  • Hi TER,

    This explaination makes perfect sense and understanding to me.
    Greatly appreciated.
    Vikram
  • Hye TER,

    I understood what you meant if we try to transmit on same channel even though different address are assigned.
    Just one more question I had.
    What if we want to transmit data from Tx1 and Tx2 at same time. Is there a way to change the channel if one channel is busy at run time?
    Thank you
    Vikram
  • The SDK contains a LBT example. Here, the packet is not sent on the channel before the channel is free. This is the typical way to do this since the receiver have to know which channel you want to send on next.
  • Thank you TER for the information.

    I did look into that example but I did not find any where how does the transmission occurs on different channel if the particular channel is busy.

    As there is no information about different channel of transmission and switching to it.

    Thank you

    Vikram

  • I never claimed the example changed channel. What it does is to wait until the channel is free to send something.

    If you change channel depending on if the the channel is busy or not, how is the receiver going to know which channel you jump to?
  • Sorry I did not meant that you claimed that it changes channel.
    I understand about the fact that receiver needs to know which channel it is going to receive.
    But I am trying to find out if it is ever possible to change the channel so that the receiver is also made aware that a particular channel is busy for transmission so the transmission will occur on different channel there by making sure that even if Tx1 and Tx2 wants to transmit at same time it is possible to get the data on Rx1 and Rx2?

    Thank you
    Vikram
  • If the sender switches channel due to noise the receiver has no means to know about this as far as I know.

    Say the Tx side uses channel 1, 2 and 3. Channel 1 and 2 is noisy (meaning that the Tx checks the RSSI first on channel 1 and then on channel 2) and uses channel 3. The Rx will listen to channel 1 and have no means to know what decision the Tx has made. You can have the Rx listen to channel 1 and then 2 and then 3 but for several channels that takes a lot of time and the Tx side has to use a long preamble to avoid packets getting lost.
  • Thank you TER for the information.
    So how does this mobile phones work because they also work on the radio frequency range if I am not wrong?
    And it is highly possible that multiple people call on same frequency band and still able to communicate properly with right people.

    Please correct me if I am wrong in understanding.

    Thank you
    Vikram
  • Vikram,

    You need to use frequency multiple access (have multiple channels) and also have time division multiplex. Here is an appnote showing how to get multiple bidirectional links into one RF channel.

    www.ti.com/.../swra433.pdf

    I am sorry upfront, but we have no plans to port this to CC1310.

    Regards,
    /TA
  • Thank you TA for the reply.
    At least that provided me some place to start with.

    Thank you for the App note.
    Vikram