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.

CC1120 - analog FM demodulation

Other Parts Discussed in Thread: CC1120, CC1125, CC1121

Hi,

I have a trouble with analog FM demodulation, could somebody help me with these:

1) what are the exact requirements to read data from SOFT_RX_DATA_OUT and enable related trigger clock on GPIO (=CLKEN_SOFT).

Under which condition the CLKEN_SOFT and SOFT_RX_DATA_OUT are available? There will be great any map/diagram/etc. that can clear this.

I run some tests and it seems that clock and data are only available in transparent mode, and I can get minimum clock at about 31kHz (at minimal RX filter BW).

2) What are exact meaning of SOFT_RX_DATA_OUT as user's guide talks about instantaneous frequency offset (in par. 4.1.4) and register description states:

soft-decision symbol data in normal/transparent receiver (p. 100).

Thank you

Martin

  • It is a software example in http://e2e.ti.com/support/low_power_rf/f/155/t/159307.aspx#579195 that hopefully helps some.

  • Thank you for your response TER,

    Besides the TX in analog FM mode is rather clear to me. The RX analog FM is misty. I already tried the settings from the post above,

    but i RX mode I'm able read a baseband? signal on GPIO, but only in transparent mode at rather high rate (~31k).

    I wonder about analog FM in RX mode in the similar manner like in TX using SOFT_TX_DATA_CLK, to read instantaneous frequency offset

    using SOFT_RX_DATA_OUT as stated in 4.1.4.

    Is there any documentation about configuration and meaning of SOFT_RX_DATA_OUT and CLKEN_SOFT?

    Many thanks,

    Martin

  • The documentation on this is stated in 4.1.4, page 26 in the userguide.

    The CLKEN_SOFT is a signal generated in the modem which is a clock operating on 16x the programmed datarate. For each clock tick the frequency offset given by equation 3 could be read from the register SOFT_RX_DATA_OUT for further processing in the MCU.

  • Hi TER,

    I know in the chapter 4.1.4. but there is unsufficient information about this. In addition there is only "CLKEN_SOFT should be output...", nothing about 16x datarate and even more no information how to enable it.

    I tried some experimental settings and I noticed that output CLKEN_SOFT clock is available only with enabled in transparent mode (in MDMCFG0), but as I wrote earlier, the clock frequency si much higher than 16x datarate and depends on BW setting, of course. The minimum clock frequency of CLKEN_SOFT is 31.200kHz with CC1120.

    What is the register setting to enable CLKEN_SOFT to generate 16x datarate?

    Thank you

    Martin

  • Hi Martin

    First of all I know this is a pretty late reply. You may already have sorted this out. But here is a few comments anyway.

    The CLKEN_SOFT does not go at 16x data rate. It asserts at the same rate as the programmed data rate. E.g each time it asserts, a new sample is available in the SOFT_RX_DATA_OUT register.

    IIf you ave not disabled SYNC search (SYNC_CFG0.SYNC_MODE = 0) the CLKEN_SOFT signal will not be output before a valid sync word is detected. 

  • All,

    We have created a small demo running on the Experimenters board that samples the microphone and sends the "analog sound" using analog FM modulation to a receiver board (a second 5438 experimenters board)

     T

    This example uses a setting of 10kbits/s, but using FM audio we end up updating the 160k samples per second (16 x TX bitrate), then on the RX we use 40kHz RX bandwidth which also becomes 160k samples per second (4xRXBW).

    Included is a code example of how to make this work.

    1145.TRX_demo_FMAudio_v02.zip

  • Hello,

    thank you both Martin for explanation and Thomas for sample code, I'm just going through it.

    Martin

  • Hi,

         After I  viewed the demo code, here are some questions:

    Question:  1. Does CC1120 handles the FM modulation and demodulation ?

                        2. SOFT_RX_DATA_OUT register is the discrimination data of the demodulated audio signal?

    Thanks,

    Robert  

    Software engineer of  Unication Co., Ltd  (BC, Canada)

  • Robert, 

    The CC1120 is a very flexible device. It can be configured in 4 modes of operation

    • Full RF modem with use of FIFO (with CRC, framing, etc)
    • Synch Serial mode (data is decoded and provided bit by bit
    • Asynch Serial mode (data is not decode, it is provided at 16 times the setup bit rate and you have to discriminate externally)
    • "Analog FM" (an instantaneous frequency offset is provided at 4 times the RX bandwidth)

    Regards
    /TA 

  • Hi TA,

           Thanks for quick reply. Here is another question.

          Q1:  Is there any document details how to use  CC1120 in Analog FM mode ?

            (Except section 4.1.4 in SWRU295C user's guide), there is no details about  how to use Analog FM mode)

    Robert

  • As our test, we obtained the demodulated audio data from SOFT_RX_DATA_OUT register by reading with SPI port.

    Hare are questions:

    Q1: Is it the discriminator output? please confirm it.

    Q2: What is maximum data frame rate that could be used to retrieve data from SOFT_RX_DATA_OUT ?

  • Hi TA,

    Analog FM is one of requirement to our new product. The SOFT_RX_DATA_OUT register could provide the discriminator output (we done the test on CC1120DK development kit). Sine SOFT_RX_DATA_OUT only has 8-bits resolution; it is too low for our application.  

    Question: Does CC1120 could provide the discriminator output with 16 bit or more resolution?

    Thanks ,

    Robert Lin

      

  • The analog FM feature was included to enable FSK with more than 4 levels and hence 8 bits are used.

  • Hi

    Does this sample code suitable for CC1125??

    Thank you

  • Lee Chang-Yun, 

    Yes, the CC1120/1/5 are register compatible.

    Regards,
    /TA 

  • Hi TER,

              Question of CC1120 registers setting.

               When using Analog FM mode with reading I/Q data from GPIO , does the  "Frequency Deviation Configuration" in  the register DEVIATION_M and MODCFG_DEV_E affecting RFdemodulation ?

    Thanks,

    Robert

     

            

  • Martin, 

    To enable FM RX data output I used the default configuration, in my case 10kbps and 40khz RX BW. Then applied these changes to enable the FM data to come out and also enable the synchronization pulse to come out too. The pulses come come out at 40khz * 4 time over sampled = 160khz in my example.

    // Enable Soft RX data on GPIO2

    CC_SPIWriteExtReg(SOFT_TX_DATA_CFG,0x01,RF_IDx);  // Soft TX Data Configuration
    CC_SPIWriteExtReg(EXT_CTRL,0x00,RF_IDx);                      // External Control Configuration
    CC_SPIWriteReg(MDMCFG0,0x4A,RF_IDx);                            //General Modem Parameter Configuration
    CC_SPIWriteReg(PKT_CFG2,0x07,RF_IDx);                           //Packet Configuration, Reg 2
    CC_SPIWriteReg(IOCFG0,0x1D,RF_IDx);                                // GPIO0 IO Pin Configuration

    To enable FM TX data output I used the default configuration, in my case 10kbps and 40khz RX BW. Then applied these changes to enable the FM data to come out and also enable the synchronization pulse to come out too. The pulses come come out at 10kbps * 16 times over sampled = 160khz in my example.

    // Enable Soft TX data on GPIO2

    CC_SPIWriteExtReg(SOFT_TX_DATA_CFG,0x01,RF_IDx);//Soft TX Data Configuration
    CC_SPIWriteExtReg(EXT_CTRL,0x00,RF_IDx); //External Control Configuration
    CC_SPIWriteReg(IOCFG0,0x1E,RF_IDx); //GPIO2 IO Pin Configuration

    Regards,
    /TA 

  • Thanks for answer.

    Yes, using default value to most of register and modify  some certain registers is working fine in  my test. 

    My question is focus on real application(our product design). Let say if there are two mode of operation:

    1. RX Chan BW = 8KHz , I/Q data = 8 * 4= 32KHz

    2. RX Chan BW = 12KHz , I/Q data = 12 * 4= 48KHz

    Does "Frequency Deviation Configuration" in  the register DEVIATION_M and MODCFG_DEV_E affecting demodulation performance ?

    Should we adjust the register DEVIATION_M and MODCFG_DEV_E values for different RX Chan BW setting?

    By the way, I use I/Q data is reading from the register CHFIL_I2,CHFIL_I1,CHFIL_I0 and CHFIL_Q2,CHFIL_Q1,CHFIL_Q0 via GPIO.

    Thanks,

    Robert  

     

     

  • Robert,

    You are outside of what I have done myself, however from my understanding of the system "DEVIATION_M" and the lowest 3 bits of "MODCFG_DEV_E" should not have any effect in IQ mode, however in the mode that I was using "Analog FM" it does matter.

    What processor are you using to "crunch" the IQ data on? Because I was using an MSP430 for the analog FM and it was close to its limits on SPI port speed.

    Regards,
    /TA 


  • Thanks, Just double check. Your answer is also apply to CC1125  chip as well. righ?

    Robert,

  • Robert, 

    Yes. the CC1120, CC1121 and CC1125 are register compatible, they all behave the same.

    Thomas