According to Equation 2, XTALppm has to be set low if the wanted signal
bandwidth is close to the wanted RX BW to be able to receive. In some cases it is not
possible or wanted to decrease XTALppm to the extent that the equation
dictates. An alternative is to use “Feedback to NCO(1)” (FB2NCO), which increases the effective RX BW without increasing the noise BW
which determines the sensitivity limit. In other words, it is possible to increase the
frequency error tolerance without degrading sensitivity.
For the CC13x0 family, FB2NCO is
controlled with:
HW_REG_OVERRIDE (0x52AC,
<value>)
For the CC13x2 family, FB2NCO is
controlled with:
HW_REG_OVERRIDE(0x5320,<value>)
Where
<value> is a 32 bit register but only the 16 LSB bits are used.
- Enable FB2NCO frequency offset
compensation (FOC) mode by setting bit[13]=1
- Disable strict sync word check by
setting bit[12]=1. Since the strict sync search is turned off it could be
required to increase the sync threshold. How to do this is documented in <SDK
install
path>/docs/proprietary-rf/proprietary-rf-users-guide/proprietary-rf/packet-format.html#sync-word-qualifier.
- Configure FOC_GAIN[11:8]. Higher
value will give larger frequency "correction" steps and might cause a longer
settling time.
- Configure FOC_LIMIT[7:0] for
offset regulation
- The improved BW is given
as FOC_LIMIT*NCO resolution. Resolution is RF
frequency*LO_DIV/2/12/24/1024/2^bde1
- Run PER vs level vs
offset and check if there is an error floor (aka residual PER) and if
the frequency tolerance is acceptable.
- If an error floor is
present the adjustment loop could be made slower by adjusting the
IIRGAIN. The IIRGAIN is available through bit[3:1] of < value>:
HW_REG_OVERRIDE(0x50EC, <value>) for CC13x0 and
HW_REG_OVERRIDE(0x0x50FC, <value>) for CC13x2. The most
optimal value has to be found through trial and error.
For FB2NCO to work properly the NCO resolution should be less than half the
deviation.
RXBW = chfival / (2^(bde1 +
bde2) * 288) * LODIV * RF frequency * 1000/2 where chfi can have one of the following
four values: 0.5, 0.33, 0.416, 0.29. chfi[1:0] selects which chfival to use
according to the table below:
chfi[1:0] |
chfival |
0 |
0.5 |
1 |
0.33 |
2 |
0.416 |
3 |
0.29 |
The following can be done to improve NCO
resolution:
Change the values for bde1 and bde2:
- Set bde1 as high as possible.The max
value for bde1 is 4.
- Add symbolRate.decimMode = 7 as part
of the CMD_PROP_RADIO_DIV_SETUP settings.
- FOC_LIMIT has to be adjusted if bde1
is increased since the "additional" BW is given as FOC_LIMIT * NCO resolution.
- Check AGC gain after changing bde2
and bde1.
- When intFreq = 0x8000 the IF is
106/bde1. The performance with the new IF should be
verified.
The rxbw setting given as part of the
CMD_PROP_RADIO_DIV_SETUP is build up as follows:
Rxbw = 0xbde2[7:5], bde1[4:2],
chfi[1:0]