CC2500: Enables Manchester encoding/decoding

Part Number: CC2500
Other Parts Discussed in Thread: CC2400

Tool/software:

Hi Team, 

My customer is using CC2500 and they need to enable Manchester encoding/decoding.

When MDMCFG2.MANCHESTER_EN set as 1, the RF packet can not be received.

(  TI_CC_SPIWriteReg(REG_MDMCFG2,       0x7B);  

   TI_CC_SPIWriteReg(REG_MDMCFG1,       0x42); )

But When MDMCFG2.MANCHESTER_EN set as 0, the RF packet can be received.

(  TI_CC_SPIWriteReg(REG_MDMCFG2,       0x73);)

Please help to provide comments or example codes for enabling Manchester encoding/decoding. Thanks.

 

 

 

  • Hello Mike Wu

    I hope you are doing well. When you set the MDMCFG2 Manchester_EN to 1 did you also use fixed packet mode? (Only supported for fixed packet length mode, ie PKTCTRL0.LENGTH_CONFIG=0)

    Thanks,
    Alex F

  • Hi Alex, 

    Thanks for your reply.

    My customer try to modify  PKTLEN and PKTCTRL0:

        TI_CC_SPIWriteReg(REG_PKTLEN,        0x30);    // PACKET_LENGTH = 48 Bytes

        TI_CC_SPIWriteReg(REG_PKTCTRL0,      0x04);    // CC2400_EN = 0, Disable CC2400 support

                                                       // CRC_EN = 1, CRC calculation in TX and CRC check in RX enabled

                                                       // LENGTH_CONFIG = 0, Fixed packet length mode. Length configured in PKTLEN register

    But it still not work.

    Please help to provide comments and check if TI have example code for  fixed packet length.

    Thanks.

  • Manchester encoding works with variable packet length mode if using FSK, but with MSK you need to use fixed packet length mode.

    The reason is that the data transmitted are being inverted.

    Assume you transmit the following data from your transmitter:

    0x55 0x55 0x55 0x55 0xD3 0x91 0xD3 0x91 0x08 0xFF 0xFF 0xFF 0xAA 0xAA 0xFF 0xFF 0xFF

    What is sent on the air would be

    0xAA 0xAA 0xAA 0xAA 0xC2 0x6E 0xC2 0x6E 0xF7 0x00 0x00 0x00 0x55 0x55 0x00 0x00 0x00

    To be able to recevie this, you first have to change the RX sync word to 0xC2 0x6E 0xC2 0x6E.

    You then have to use fixed packet length, and set the packet length to 0x09.

    The data you receive will be inverted so you need to convert them in SW.

    BR

    Siri