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: Long Range Mode understandings

Part Number: CC1350

Hi guys !

I would like to understand very well those two categories of modes that Ti provides for configuring my transmitted packets: 

One mode called : Mode 1- Legacy Long Range Packet Format and Im attaching a photo of ti reference:


So in this mode, what should I configure in my smartRF to use this mode of configuration ? could you show me where's the option for using this mode in my smartRF studio tool? and at which deviation should I configure my smartRF studio for this mode?

Also what's my syncword Data in HEXA this mode use? , what's the payload length in this mode? I didn't understand what's N and DSS symbols that are found in multiplication sum for

length of payload:N*8*DSS symbols...what should its values be(value of DSS, N) ? could you please explain and illustrate all those parameters of mode 1 by an example of transmitted packet with explaining its transmitted data and how it looks once transmitted? thanks alot!

  • What's the CRC in this mode? is it the same as Termination Bytes? thanks

  • How do I check the validation of my packet of this mode if it doesn't have CRC ? thanks alot

  • For SmartRF Studio:

    See chapter 6 in https://www.ti.com/lit/an/swra642/swra642.pdf. The sync word in hex is also given in the app note. 

    Note that the recommended mode is mode 2. 

    I have to check some details regarding the length byte and CRC but will not be able to do that before next week. 

  • what's DSS? and length of payload/crc? really weird

  • What DSSS is is covered in detail in chapter 3 in the app note. 

  • I know it's found :) but I didn't understand it, is it valued as 2 or 5 or integer or what? 

    thanks for any assistance

  • Because the length of payload is N*8*2*DSS , I dont know what's N neither DSS .. I already read about DSS but unfortunately didn't understand well

    thanks

  • As I have understood it you may treat long range mode as any other phy. The coding/ encoding is done by the modem meaning that as a user you just see the data without DSSS. Meaning that if you have the payload 0x010203 and variable length, the length is 0x3.

    Meaning that length and CRC can be treated the same way as in the rfPacketRX and rfPacketTx examples. 

    The description of DSSS is included for engineers that want all the details but you can use the mode without knowing anything about how the data is treated. 

  • Didn't get you 100%

    I would try by an example to be more clear:

    lets assume I use mode 1 legacy so my packet data is divided to those catagories:

    first I have the preamble is "0101 ....01" and its length 40bit (written 40 symbol in the photo above) .

    followed by  the syncword which it's s FE6B28400194D7BF, LSB-first (here I didn't understand what does it mean LSB first .. I know what does LSB mean but didn't understand why did he mention that LSB first and what did it mean?) , length of my syncword is 64bit.

    followed by payload Data, here I totally didn't understand what's the length(once again your explanation really wasn't cleared for me)..how do I calculate the length of my payload data? the length of payload is given by this equation which I truly didn't understand its parameters , equation of payload length: N*8*2*DSSS symbols  , what's N and DSSS? 

    followed by termination, here is that termination the same as CRC? Im asking because I want to validate packets that transmitted in this mode 1 legacy long range. the length of termination isn't understandable for me, it's given by this equation: 6*2*DSSS symbols , once again what's DSSS?

    thanks alot for any clarifications and I really read much on ti tutrial before posting here and unfortunately I didn't understand 100% those parameters/questions.

    thanks for any assistance

  • TER said:

    As I have understood it you may treat long range mode as any other phy. The coding/ encoding is done by the modem meaning that as a user you just see the data without DSSS. Meaning that if you have the payload 0x010203 and variable length, the length is 0x3.

    Meaning that length and CRC can be treated the same way as in the rfPacketRX and rfPacketTx examples. 

    The description of DSSS is included for engineers that want all the details but you can use the mode without knowing anything about how the data is treated. 

    I didn't understand you sentence once said "Meaning that length and CRC can be treated the same way" , so the length of payload actually is the length of my hexa words that I configure them (write them) into my smartRF studio in mode 1(legacy long range) ?! 

  • LSB vs MSB: If you have a byte that contain 00001111, MSB first means that over the air it's sent like 00001111 but if it's LSB first the data over the air will be 11110000.

    Is this request related to your other questions? We would be able to give you better help if you described your system requirements and system setup in more detailed. If you use the RF commands both for RX and TX, you don't need to know anything about the CRC since it's added by the modem on the TX side and removed and checked by the modem on the RX  side. For the length, test some with SmartRF Studio.   

  • Regarding to LSB I got you, about the inverted syncword, what does it mean? lets assume that syncword is  0xFE6B 2840 0194 D7BF so what's the inverted syncword in this example? thanks.

    Another question about CRC, as you know already Im doing my own Receiver for my own purpose manually (not using already RX receiver that ti provides and I know that there's already hardware for that :) ) 

    I want to know the CRC bytes in order once I get the transmitted packet to check if it's valid or not valid, may you please help me in that if the termination of my packet in mode 1 is the same as CRC bye? if so, then as I asked before what's the termination length and payload length? if you could example that by an arbitrary data packet for explanation would be really appreciated ! thanks alot .. 

  • From what you have written: On the TX side, do you use Long Range Mode and on the RX side you are receiving this using IQ samples? If that is the case, could you cover more on the background for doing it this way?

  • EXACTLY !

    Yup , on the RX side I was getting IQ samples, but I solved the problem and now on the RX side I see the bit as binary data (I know it's hardly challenged but I succeed)

    now , you can assume that I have bits as binary values which I can see my transmitted packet data , so my problem is to know:

    from where my packet start ?

    from where it gets finished?

    what;s length of my CRC (if it's termination or not ..still doesn't know) ?

    what's length of my payload ?

    I want to know those parameters in order to be able to extract CRC from the received packet  and to validate my received packet if it's valid or not valid!

  • You are aware of that when using IQ samples you have to implement a demodulator that processes the IQ stream and convert it into received bits? The samples you get from the IQ patch is not demodulated data. 

  • Hi Ter , I already said that I have done that :) thanks for your instruction, but you're answering me about something than what Im asking :) 

    my question is straight forward, I'm asking my questions after I have got the received packet as BITS in binary (this means already built what you're telling me .. (but my problem is this(as what I mentioned before):

    from where my packet start ?

    from where it gets finished?

    what;s length of my CRC (if it's termination or not ..still doesn't know) ?

    what's length of my payload ?

    I want to know those parameters in order to be able to extract CRC from the received packet  and to validate my received packet if it's valid or not valid!w

  • You have written that you get a bit stream, not that you have implemented a modem.

    First: have you tested the modem with one on the "normal" testcases (without coding)? How are you doing sync word search in your modem since the payload start after you have received a valid sync word. 

  • Yes, I see on the normal test cases (without mode 1 or 2 ..general mode as smartRf default)  .. yes I see all what you said but in the normal mode it's straight forward ..there's no complexity to calculate the length of payload or crc ..

    but in mode 1 and 2 here is my problem for detecting where's CRC/Payload and how many bytes each one has ... etc .. 

  • I need to understand the mechanism of mode 1 and 2 in order to start testing of what I'm getting identical to the theoretical rules of the mode itself or not ....

  • With regards to the packet format shown in 4.1 and 4.2 in https://www.ti.com/lit/an/swra642/swra642.pdf:

    The length byte and the CRC bytes are part of the payload. 

    Meaning when you receive a long range mode packet you have to do the following:

    - Search for the sync word

    - When you have found a valid sync word, you know that you will receive the payload until you receive the termination sequence.

    - Decode the payload. The length byte will be the first byte in the buffer and the CRC will be the last 2. You can also start decoding the stream on the fly after finding the sync word and when you have decoded the length you know how many bytes you will receive before you find the termination sequence. 

    An inverted sync word is where all the bit are flipped: 0x01101011 inverted is 0x10010100. 

  • So lemme to explain what I understand from you, the length of the payload will be the first Byte(8bit) in the payload itself, this means first 8bit(binary) in the payloadData is actually the payload's length ..and the last two bytes in the payload data (last 16bit -binary-) is the CRC bytes? CRC Byte is always 2 bytes if I understand you well..doesn't matter which mode I use mode1/default/mode2 will always the CRC be 2 bytes !

    Am I right? thanks alot for your assistance.

  • Yes, after decoding of the payload the first 1 byte will be length and the last 2 CRC. This should be the same regardless of mode.

  • I will try and update next week about every thing .. 

    But I still in confusion about DSSS and N parameters that mode 1 / mode 2 using , could you please explain to me them? are they constant? and how they are related to my packet that configured as mode 1 or mode 2 ? I know you're already explained in brief about DSSS but didn't get you!

    it would be appreciated if you could explain them by taking an arbitrary packet as an example to what you're explaining .. 

    Appreciated

  • The details on how long range mode works is covered in the app note. I'm not able to provide more details that this.The DSSS and N factor is constant and sets the effective data rate as covered in the app note. 

  • I understand you very well !

    but still something isn't obvious for me and confused at.

    lets assume I received my packet (configured as mode 1) and I see where my syncword is started , so because I know the length of my syncword .. so I know when it finishes, this means I know where my payload data is started in my packet!

    what's confusing me, if I want to get the CRC I need to know the length of my payload data in order to arrive to the last two bytes of my payload .. so how do I know the length of my payload data? I need the length in order to figure out the two last byte of my payload data ..in other words to figure out the CRC , I can't by just knowing where my payload starts know the CRC because knowing CRC means to know the end of my payload data, in other words to know the payload data 's length ..

    could you assist me please how do I know the length of my payload in order to arrive to the last bytes of my payload data(i.e arrive to CRC) ? thanks

  • You know the end of the payload without knowing the length since after the payload you have the termination sequence. Meaning that when you find the termination sequence you know that the 2 bytes you have decoded before this is CRC. ANs also the length of the payload is the first byte you decode from the payload. 

  • But I don't know the termination sequence neither its data or its length, so how do I know the end of the payload ? thanks.

    From your explanation I figure out you're assume that termination sequence is constant, if so, what's the termination data sequence(I mean the value of the termination sequence)? thanks.

  • @

    So what do I suggest me to do? thanks alot.

  • From time to time it could take a few days to get the required information internally.

    What is the estimated volume for your product? 

  • What? didn't understand you at all

  • From time to time it could take a few days to get the required information internally. Meaning that sometimes it could take a few days to answer your question. You asked a follow-up question on a Sunday and pinged again the same day. Sunday is not a workday and you should not expect an answer then. 

    What is the estimated volume for your product? : How many CC1350 are you planning of buying? 

  • Hi, I didn't understand what do you mean in your last comment, sorry!

  • Termination bits: To get the FEC in a known state. See https://en.wikipedia.org/wiki/Convolutional_code