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.

LAUNCHXL-CC1312R1: Receiving and Sending Manchester coded data using 433.92 MHz OOK modulation.

Part Number: LAUNCHXL-CC1312R1
Other Parts Discussed in Thread: CC1312R, CC1310

Tool/software:

Hello,

We want to use the CC1312R1 chip for receiving RC codes from legacy sensors/ push buttons and also sending RC codes to legacy hand-held devices/ monitors using 433.92MHz OOK modulation with Manchester encoding.

The SmartRF Studio provides an option (formatConf=>fecMode under CMD_PROP_RADIO_DIV_SETUP) to select Manchester-coded binary modulation.

However, we could not set up the correct configuration settings and overrides for the reception of RC codes.

Can you please recommend the settings and necessary overrides for Both RX and TX modes to make LAUNCHXL-CC1312R1 work for receiving and sending Manchester-coded data using 433.92 MHz OOK modulation?

Thanks and Regards. 

  • I believe you can get problems getting this to work in RX. The CC1312R is designed to receive a preamble + sync word. The old protocols typically don't use neither. If this is a protocol that sends 3 equal packets in a row and/ or the start of the packet is always the same you can be a bit creative of what you use as a preamble/ sync word. Note that the CC1312R doesn't do manchester coding on the sync word, this you have to take into account when setting the sync word.    

  • Hello,

    Currently the sub-1 experts are out of office. Once they return, they will respond to your question. 

    Thanks,
    Alex F

  • Please see the following post on how to enable Manchester encoding/decoding when using the OOK patch:

    (+) CC1310: CC1310 OOK Manchester Decoding - Sub-1 GHz forum - Sub-1 GHz - TI E2E support forums

    Siri

  • Hi, thank you for your reply. We installed SmartRF Studio 7 (v2.32.0) and used CC1312R and CC1310 Launchpads for testing. Editing MCE_RFE_OVERRIDE to (1,0,17,1,0,0) does not affect CC1310 and CC1312R stops working. Is a separate OOK patch required to enable Manchester encoding, or is it inside if we start from one of the default OOK settings available in SmartRF Studio?   

  • No separate patch is needed for Manchester, and you should use the OOK patch for both CC1310 and CC1312R.

    However, I see that I get some problems if I try testing this with Studio on CC1312R, while it works for the CC1310.

    I hence did the following exercise to demonstrate that Manchester coding works for both devices:

    CC1312R

    Here is used the default rfPacketTX example from the SDK, and modified it to transmit a packet of fixed length 4.

    Payload is 0x00, 0xFF, 0xAA, 0x55

    The data are transmitted with Manchester mode enabled, mening that the ti_radio_config.c file must be added manually to your project to be able to modify it:

    The reason to use fixed length is that for demo purposes I want to receive both with and without Manchester enabled.

    Modified rfPacketTX below:

    #define PAYLOAD_LENGTH      4
    
    static RF_Object rfObject;
    static RF_Handle rfHandle;
    
    static uint8_t packet[PAYLOAD_LENGTH] = {0x00, 0xFF, 0xAA, 0x55};
    
    void *mainThread(void *arg0)
    {
        RF_Params rfParams;
        RF_Params_init(&rfParams);
    
        GPIO_setConfig(CONFIG_GPIO_GLED, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW);
    
        GPIO_write(CONFIG_GPIO_GLED, CONFIG_GPIO_LED_OFF);
    
        RF_cmdPropTx.pktLen = PAYLOAD_LENGTH;
        RF_cmdPropTx.pPkt = packet;
        RF_cmdPropTx.startTrigger.triggerType = TRIG_NOW;
        RF_cmdPropTx.pktConf.bVarLen = 0x0; // Fixed length
    
        rfHandle = RF_open(&rfObject, &RF_prop, (RF_RadioSetup*)&RF_cmdPropRadioDivSetup, &rfParams);
    
        RF_postCmd(rfHandle, (RF_Op*)&RF_cmdFs, RF_PriorityNormal, NULL, 0);
    
        while(1)
        {
            RF_runCmd(rfHandle, (RF_Op*)&RF_cmdPropTx, RF_PriorityNormal, NULL, 0);
    
            GPIO_toggle(CONFIG_GPIO_GLED);
    
            RF_yield(rfHandle);
    
            usleep(500000);
        }
    }

    CC1310

    C1310 I control from Studio, as it for this device was possible to change the overrides.

    If I first configure CC1310 to run without Manchester, I set the packet length to fixed 8 bytes (as I am transmitting 4 bytes with Manchester )

    As you can see below, I am receiving data that is Mancester encoded

    Enabling Manchester encoding also on the CC1310 receiver, I receive the 4 Manchester encoded data sent from the CC1312R:

    Siri

  • Thank you for sharing the example project with a test demo. We successfully reproduced and tested this demo setup with both 868.00 MHz OOK and 433.92 OOK settings.
    We found in CC13x0 and CC13x2 Technical Reference Manuals that in Manchester-coding mode, a 0 data bit is encoded as 01b, and a 1 data bit is encoded as 10b in the TI RF Stack.

    We need to support different encoding/decoding protocols, for example, 1000b for 0 data bit and 1110b for 1 data bit. Is it possible to configure/change the encoding/decoding protocol via override? Or is there any alternative approach?

    Thank you and best regards.

  • 0 -> 1000

    and

    1 -> 1110 

    is not supported (I can't see how this should be manchester ecoded, as both the 0 and 1 have 1 -> 0 transition)

    To accomlish this you need to do the encoding/decoding yourselves.

    That menas that you need to use the device in Fixed Packet Length as the device itself will not understand the encoded length, and you also must do CRC calculation in SW.

    BR

    Siri