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.

OOK with CC430

Other Parts Discussed in Thread: CC430F5137, TEST2, CC1101

Hi, 

I have my own board with CC430F5137 working flawlessly at 433 MHz with 2-FSK and MSK at 250 kbps. However when I change to OOK at 250 kbps I am not able to receive anything on the other boards. I've used the SmartRF studio to obtain the proper register values, but it does not seem to work. I think I am overlooking something obvious but right now I cannot find what, so I'm stuck. Could you please check my register configuration settings and provide some feedback? Thanks in advance!

0x1E, // IOCFG0   GDO2 Output Configuration

0x29, // IOCFG2       GDO1 Output Configuration

0x07, // FIFOTHR      RX FIFO and TX FIFO Thresholds

0x84, // PKTCTRL1     Packet Automation Control

0x05, // PKTCTRL0     Packet Automation Control

0x0F, // FSCTRL1      Frequency Synthesizer Control

0x00, // FSCTRL0      Frequency Synthesizer Control

0x10, // FREQ2        Frequency Control Word, High Byte

0xA8, // FREQ1        Frequency Control Word, Middle Byte

0xA0, // FREQ0        Frequency Control Word, Low Byte

0x2D, // MDMCFG4      Modem Configuration

0x3B, // MDMCFG3      Modem Configuration

0x33, // MDMCFG2      Modem Configuration

0x22, // MDMCFG1      Modem Configuration

0x10, // MDMCFG0      Modem Configuration

0x62, // DEVIATN      Modem Deviation Setting

0x30, // MCSM0        Main Radio Control State Machine Configuration

0x1D, // FOCCFG       Frequency Offset Compensation Configuration

0x1C, // BSCFG        Bit Synchronization Configuration

0xC7, // AGCCTRL2     AGC Control

0x00, // AGCCTRL1     AGC Control

0xB0, // AGCCTRL0     AGC Control

0xB6, // FREND1       Front End RX Configuration

0x11, // FREND0       Front End TX Configuration

0xEA, // FSCAL3       Frequency Synthesizer Calibration

0x2A, // FSCAL2       Frequency Synthesizer Calibration

0x00, // FSCAL1       Frequency Synthesizer Calibration

0x1F, // FSCAL0       Frequency Synthesizer Calibration

0x88, // TEST2        Various Test Settings

0x31, // TEST1        Various Test Settings

0x09  // TEST0        Various Test Settings

Kind regards,

Pere

  • See design note DN022. www.ti.com/lit/swra215. This app note describes how to generate the optimum register settings for OOK.

  • Hi Sverre, thanks for your reply. I've already checked some of the proposed values from the DN022 with no luck at all. For example, I've tried to change:

    AGCCTRL2 = 0x04

    AGCCTRL1 = 0x00

    AGCTRL0 = 0x91

    As well as:

    FIFOTHR=0x07

    FREND1 = 0xB6

    TEST2=0x88

    TEST1=0x31

    The devices are rearby but I've added a 30 dB attenuator to one of them to ensure that the AGC does not saturate. Do I need to try with the other values of AGCTLx as well? Even with bad register configuration, shouldn't I receive something? I will check tomorrow with a spectrum analyzer if the transmitter is sending something over the air, but since the driver works just fine with FSK/MSK I was assuming the same for ASK/OOK. Anything else I may be overlooking?

    Kind regards,

    Pere

  • Agree that with "bad register" configuration you should still receive something. I know for some of the RF signal generators we use in our lab we have to invert the data being transmitted in order for CC1101/CC430 to receive the data correctly. Maybe you have a similar "problem"?

    Will run a test in our lab tomorrow @250 kbps.  

  • Sverre, I have checked with a spectrum analyzer and I see that power is coming out of the antenna, so that should not be the problem. In addition, I am transmitting between two CC430-based boards which are identical, so that should not make a difference either. Any other suggestion?

    Pere

  • Sverre, could you or any of your colleages please provide a working register configuration for OOK regardless of data rate and frequency? For instance 868 MHz and 2.4 kbps would suit me fine. Of course if you have something at 433 MHz and close to 250 kbps I would be more happy. With that I can try to find out why it is not working as it is right not. Thanks in advance!

    Regards,

    Pere

  • Settings below are for 125 kbps. RF frequency is 868 MHz. RX BW = 406 kHz. Sensitivity measured as -95 dBm.

    Settings are also ok for operation at 433 MHz - simply change FREQ2,1,0

    FIFOTHR=0x7
    SYNC1=0xD3
    SYNC0=0x91
    PKTLEN=0x14
    PKTCTRL1=0x4
    PKTCTRL0=0x0
    ADDR=0x0
    CHANNR=0x0
    FSCTRL1=0xB
    FSCTRL0=0x0
    FREQ2=0x21
    FREQ1=0x62
    FREQ0=0x76
    MDMCFG4=0x4C
    MDMCFG3=0x3B
    MDMCFG2=0x31
    MDMCFG1=0x2
    MDMCFG0=0xF8
    DEVIATN=0x15
    MCSM2=0x7
    MCSM1=0x30
    MCSM0=0x18
    FOCCFG=0x1C
    BSCFG=0x20
    AGCCTRL2=0x87
    AGCCTRL1=0x0
    AGCCTRL0=0xB2
    WOREVT1=0x87
    WOREVT0=0x6B
    WORCTRL=0xFB
    FREND1=0xB6
    FREND0=0x11
    FSCAL3=0xEA
    FSCAL2=0x2A
    FSCAL1=0x0
    FSCAL0=0x1F
    RCCTRL1=0x41
    RCCTRL0=0x0
    FSTEST=0x59
    PTEST=0x7F
    AGCTEST=0x3F
    TEST2=0x88
    TEST1=0x31
    TEST0=0x9

  • Perfect, thanks! I will give it a try and give you some feedback.

    Regards,

    Pere

  • Sverre,

    I tried your proposed configuration settings without positive results. Your proposed configuration (the important registers) was the following:

    PKTCTRL0 = 0x00 // CRC_DISABLED + FIXED_LENGTH
    MDMCFG2 = 0x31 // 15/16 SYNC WORD
    MDMCFG1 = 0x02 // 2 PREAMBLE BYTE
    MDMCFG0 = 0xF8 // DIFFERENT CHANNEL SPACING
    MCSM0 = 0x18 // CALIBRATE IDLE->RX

    I changed to 433 MHz maintaining the data rate. I also changed the configuration because I need CRC and variable packet length. In addition I adjusted the sync word and preamble length. The remaining settings were left unchanged or as default upon chip reset.

    PKTCTRL0 = 0x05 // CRC_ENABLED + VARIABLE_LENGTH
    MDMCFG2 = 0x33 // 30/32 SYNC WORD
    MDMCFG1 = 0x22 // 4 PREAMBLE BYTE
    MDMCFG0 = 0x10 // DIFFERENT CHANNEL SPACING
    MCSM0 = 0x38 // CALIBRATE 4th TIME TX/RX->IDLE

    With such changes I am unable to receive anything at all. The devices are close to each other but there is a 30dB attenuator in one of them to ensure that the AGC does not saturate. I've also checked with a spectrum analyzer and there is power coming out of the antenna, so that is not the problem. I also tried to reduce the sync word and preamble length to your proposed settings without observing any difference.

    As you can imagine, I am at complete loss. The CC430/CC1101 should be able to go up to 250 kbps with OOK/ASK but I cannot be able to get it working. Can you suggest other aspects to check or put me in contact with a FAE?

    Thanks in advance!

    Regards,

    Pere

  • Tested 250 kbps, OOK on my desk. Used 2 of our evaluation modules and SmartRF Studio. Link is established using attached XML file, which can be imported into SmartRF Studio.

    Note: I did not do any optimization work w.r.t to AGC settings. 

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE configuration SYSTEM "C:/Program Files (x86)/Texas Instruments/SmartRF Tools/SmartRF Studio 7/config/xml/configdata.dtd"[]>
    <dcpanelconfiguration>
        <Devicename>CC1101</Devicename>
        <Description>Saved configuration data</Description>
        <registersettings>
            <Register>
                <Name>AGCCTRL0</Name>
                <Value>0xb2</Value>
            </Register>
            <Register>
                <Name>AGCCTRL1</Name>
                <Value>0x00</Value>
            </Register>
            <Register>
                <Name>AGCCTRL2</Name>
                <Value>0xc7</Value>
            </Register>
            <Register>
                <Name>BSCFG</Name>
                <Value>0x1c</Value>
            </Register>
            <Register>
                <Name>DEVIATN</Name>
                <Value>0x62</Value>
            </Register>
            <Register>
                <Name>FOCCFG</Name>
                <Value>0x1d</Value>
            </Register>
            <Register>
                <Name>FREND0</Name>
                <Value>0x11</Value>
            </Register>
            <Register>
                <Name>FREND1</Name>
                <Value>0xb6</Value>
            </Register>
            <Register>
                <Name>FREQ0</Name>
                <Value>0x76</Value>
            </Register>
            <Register>
                <Name>FREQ1</Name>
                <Value>0x62</Value>
            </Register>
            <Register>
                <Name>FREQ2</Name>
                <Value>0x21</Value>
            </Register>
            <Register>
                <Name>FSCAL0</Name>
                <Value>0x1f</Value>
            </Register>
            <Register>
                <Name>FSCAL1</Name>
                <Value>0x00</Value>
            </Register>
            <Register>
                <Name>FSCAL2</Name>
                <Value>0x2a</Value>
            </Register>
            <Register>
                <Name>FSCAL3</Name>
                <Value>0xea</Value>
            </Register>
            <Register>
                <Name>FSCTRL1</Name>
                <Value>0x0c</Value>
            </Register>
            <Register>
                <Name>IOCFG0</Name>
                <Value>0x06</Value>
            </Register>
            <Register>
                <Name>LQI</Name>
                <Value>0x7f</Value>
            </Register>
            <Register>
                <Name>MARCSTATE</Name>
                <Value>0x01</Value>
            </Register>
            <Register>
                <Name>MCSM0</Name>
                <Value>0x18</Value>
            </Register>
            <Register>
                <Name>MDMCFG2</Name>
                <Value>0x33</Value>
            </Register>
            <Register>
                <Name>MDMCFG3</Name>
                <Value>0x3b</Value>
            </Register>
            <Register>
                <Name>MDMCFG4</Name>
                <Value>0x2d</Value>
            </Register>
            <Register>
                <Name>PA_TABLE1</Name>
                <Value>0x50</Value>
            </Register>
            <Register>
                <Name>PKTCTRL0</Name>
                <Value>0x05</Value>
            </Register>
            <Register>
                <Name>RSSI</Name>
                <Value>0x80</Value>
            </Register>
            <Register>
                <Name>TEST0</Name>
                <Value>0x09</Value>
            </Register>
            <Register>
                <Name>VCO_VC_DAC</Name>
                <Value>0x94</Value>
            </Register>
            <Register>
                <Name>WORCTRL</Name>
                <Value>0xfb</Value>
            </Register>
        </registersettings>
        <dcpanel>
            <Property role="44" name="m_chkRegView">2</Property>
            <Property role="44" name="m_chkRfParameters">2</Property>
            <Property role="37" name="m_tabUserMode">1</Property>
            <Property role="33" name="m_easyModeSettings">-1</Property>
            <Property role="33" name="m_typicalSettings">-1</Property>
            <Property role="37" name="m_testFuncPanel">3</Property>
        </dcpanel>
        <rfparameters>
            <Property role="46" name="m_cmbFrontends">0</Property>
            <Property role="44" name="m_chkHGMorBYP">2</Property>
            <Property role="46" name="m_cmbEmRevs">-1</Property>
            <Property role="46" name="Xtal frequency">26.000000</Property>
        </rfparameters>
        <conttx>
            <Property role="45" name="m_rbtModulated">1</Property>
            <Property role="45" name="m_rbtUnmodulated">0</Property>
            <Property role="46" name="m_cmbDataFormat">-1</Property>
            <Property role="44" name="m_chkFreqSweep">0</Property>
            <Property role="44" name="m_chkChanSweep">0</Property>
        </conttx>
        <contrx>
            <Property role="46" name="m_cmbDataFormat">-1</Property>
            <Property role="44" name="m_chkAutoScroll">2</Property>
        </contrx>
        <packettx>
            <Property role="42" name="m_edtPayloadSize">30</Property>
            <Property role="42" name="m_edtPacketCount">100</Property>
            <Property role="42" name="m_edtPacketCountEsy">100</Property>
            <Property role="42" name="m_edtRandomPacketData">13 0d 89 0a 1c db ae 32 20 9a 50 ee 40 78 36 fd 12 49 32 f6 9e 7d 49 dc ad 4f 14 f2 </Property>
            <Property role="42" name="m_edtPacketData"></Property>
            <Property role="42" name="m_edtAccessAddress"></Property>
            <Property role="44" name="m_chkAddSeqNbr">2</Property>
            <Property role="44" name="m_chkInfinite">0</Property>
            <Property role="44" name="m_chkInfiniteEsy">0</Property>
            <Property role="45" name="m_rbtRandom">1</Property>
            <Property role="45" name="m_rbtText">0</Property>
            <Property role="45" name="m_rbtHex">0</Property>
            <Property role="44" name="m_chkAdvanced">0</Property>
        </packettx>
        <packetrx>
            <Property role="42" name="m_edtPacketCount">100</Property>
            <Property role="42" name="m_edtPacketCountEsy">100</Property>
            <Property role="42" name="m_edtAccessAddress"></Property>
            <Property role="44" name="m_chkInfinite">0</Property>
            <Property role="44" name="m_chkInfiniteEsy">0</Property>
            <Property role="46" name="m_cmbViewFormat">0</Property>
            <Property role="44" name="m_chkSeqNbrIncluded">2</Property>
            <Property role="42" name="m_edtDumpFile"></Property>
            <Property role="44" name="m_chkAdvanced">2</Property>
            <Property role="46" name="m_cmbSyncWord">3</Property>
            <Property role="46" name="m_cmbAddressConfig">0</Property>
            <Property role="44" name="m_chkAddress">0</Property>
            <Property role="44" name="m_chkFifoAutoFlush">0</Property>
            <Property role="42" name="m_edtAddress"></Property>
            <Property role="46" name="m_cmbLengthConfig">1</Property>
            <Property role="42" name="m_edtLengthConfig">255</Property>
        </packetrx>
        <commandpanel>
            <Property role="44" name="m_chkInsertLength">0</Property>
            <Property role="42" name="m_edtTxFifo"></Property>
            <Property role="42" name="m_edtRxFifo"></Property>
            <Property role="46" name="m_cmbInstrInput">-1</Property>
        </commandpanel>
    </dcpanelconfiguration>
    

  • Sverre, the issue has now been solved and I am able to use OOK at 250 kbps. Many thanks for your patience and kind support. For everyone reading this thread with a similar problem, READ THE F****** MANUAL (PAGE 33) AND REMEMBER THAT THE PATABLE IS LOST EVERYTIME YOU PUT THE RADIO CORE TO SLEEP!

    Kind regards,

    Pere