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.

C110L: legacy OOK asyncronous protocol

Other Parts Discussed in Thread: CC110L

I'm trying to use CC110L to receive a frame from a legacy transmitter. The signal is composed by:

  • 4ms carrier present
  • 150us carrier absent
  • 350/350us Manchester encoded 64 bits

The signal RF carrier is at 433.42MHz.

I'm using SmartRF Studio software and I started from 868MHz 10kBaud optimized for sensitivity example. Next I set:

  • 433.42MHz at base frequency (channel number 0)
  • 27MHz (I have 27MHz crystal)
  • OOK modulation format
  • 675kHz RX filter BW
  • In continuous RX frame I set Asyncronous serial mode

The receiver works, but the detection range isn't very good. The old analog receiver (that I'm trying to replace with this new CC110L-based receiver) is able to detect a farther signal (about 10meters farther).

I already read DN022 application note ("CC110x/CC111x OOK/ASK Register Settings"), but I'm not sure this application note applies also to asyncronous serial mode. For example, SmartRF suggests AGCCTRL1=0x40, application note AGCCTRL1=0x00. I tried with 0x00, but the performance decreases a lot.

Unfortunately I'm not RF guru, so I can't understand some things.

First of all, I can set IF frequency. SmartRF Studio suggests FSCTRL1.FREQ_IF=0x06 that is 158kHz (27MHz crystal). How should I choose the IF frequency? I think f_IF should be > RX_BW/2 (where RX_BW is the receiver bandwidth). If I set 675kHz, I have to increase FREQ_IF, right?

Another thing I can't understand. Is the base frequency (registers FREQ[2..0]) the frequency of the RF signal (used by the transmitter), or is it the local oscillator frequency? If I understood correctly, they differs of IF frequency, right?

If I set 433.42MHz as the base frequency and FREQ_IF is 0x06 (158kHz), I think the LO is configured to 433.42MHz-158kHz. What happens when I switch to transmission? I think the LO stays to 433.42M-158k... in other words the transmitted signal frequency is different from the signal received! It looks strange to me.

In other words, if I have one TX and one RX, should I set the same base frequency on SmartRF Studio for both?

  • IF is only used in Rx. See e2e.ti.com/.../868868 for more details.

    FREQ[2:0] sets the frequency the radio operate on. In other words, if you set FREQ[2:0] equal to 868 MHz you will both send and receive on this frequency. You don't have to know anything about the LO.
  • TER said:
    IF is only used in Rx. See e2e.ti.com/.../868868 for more details.

    FREQ[2:0] sets the frequency the radio operate on. In other words, if you set FREQ[2:0] equal to 868 MHz you will both send and receive on this frequency. You don't have to know anything about the LO.

    Ok, thank you for the answer.

    Just a curiosity: what happens to the LO frequency when you switch from TX to RX (and viceversa)? From my poor technical RF background, I think the LO frequency should change accordingly: 868MHz during transmissione and 868MHz+/-IF during reception. Right?

    You have not answered if the application note DN022 about OOK is for asyncronous serial mode too, as in my case.

  • Only Rx uses LO, Tx uses in-loop modulation (no mixer)

    The async signal taken on a pin is taken from the middle of the receive chain. Some of the settings in DN022 are valid for early in the Rx chain, some late in the chain. I'm not sure how late in the chain the signal is taken so I'm not sure which of the settings in DN022 that will be valid in your case.

    How do you post process the data you get on the pin? Do you oversample or do you use edge trigger? If the later how do you handle jittter? The async signal will have some jitter due to resampling internally giving the signal final resolution.
  • TER said:
    Only Rx uses LO, Tx uses in-loop modulation (no mixer)

    From the block diagram on the datasheet, it seemed the LO is used during transmission too. What is the "in-loop modulation" technique?

    TER said:
    The async signal taken on a pin is taken from the middle of the receive chain. Some of the settings in DN022 are valid for early in the Rx chain, some late in the chain. I'm not sure how late in the chain the signal is taken so I'm not sure which of the settings in DN022 that will be valid in your case.

    I see, I will make some tests.

    TER said:
    How do you post process the data you get on the pin? Do you oversample or do you use edge trigger?

    Edge trigger. Actually I'm using the Capture peripheral of the MCU to measure the pulses width.

    TER said:
    If the later how do you handle jittter? The async signal will have some jitter due to resampling internally giving the signal final resolution.

    I remember the datasheet suggests to add a simple RC filter on the signal pin.

  • The block diagram shows that the PA is connected directly to the synth. The PLL do the modulation within the loop.

    To get the best performance you should oversample the bit stream.