I am trying to increase range and reduce interference susceptibility in a CC430 tx and CC1101 rx link.
My parameters are:
Rx CC1101
#define CC1101_DEFVAL_PKTLEN 0x1E
#define CC1101_DEFVAL_PKTCTRL1 0x04 // Packet Automation Control 06
#define CC1101_DEFVAL_PKTCTRL0 0x04 // Packet Automation Control 05
#define CC1101_DEFVAL_FSCTRL1 0x08 // Frequency Synthesizer Control ok era 08
#define CC1101_DEFVAL_FSCTRL0 0x00 // Frequency Synthesizer Control ok
// Carrier frequency = 868 MHz
#define CC1101_DEFVAL_FREQ2_868 0x21 // Frequency Control Word, High Byte ok
#define CC1101_DEFVAL_FREQ1_868 0x62 // Frequency Control Word, Middle Byte ok
#define CC1101_DEFVAL_FREQ0_868 0x76 // Frequency Control Word, Low Byte ok
#define CC1101_DEFVAL_MDMCFG4 0x9A // Modem Configuration ok
#define CC1101_DEFVAL_MDMCFG3 0x83 // Modem Configuration ok
#define CC1101_DEFVAL_MDMCFG2 0x13 // Modem Configuration ok
#define CC1101_DEFVAL_MDMCFG1 0x22 // Modem Configuration ok
#define CC1101_DEFVAL_MDMCFG0 0xF8 // Modem Configuration ok
#define CC1101_DEFVAL_DEVIATN 0x34 // Modem Deviation Setting
#define CC1101_DEFVAL_MCSM2 0x07 // Main Radio Control State Machine Configuration
#define CC1101_DEFVAL_MCSM1 0x20 // Main Radio Control State Machine Configuration
#define CC1101_DEFVAL_MCSM0 0x18 // Main Radio Control State Machine Configuration
#define CC1101_DEFVAL_FOCCFG 0x16 // Frequency Offset Compensation Configuration ok
#define CC1101_DEFVAL_BSCFG 0x6C // Bit Synchronization Configuration ok
#define CC1101_DEFVAL_AGCCTRL2 0x43 // AGC Control ok
#define CC1101_DEFVAL_AGCCTRL1 0x40 // AGC Control ok
#define CC1101_DEFVAL_AGCCTRL0 0x91 // AGC Control ok
#define CC1101_DEFVAL_WOREVT1 0x87 // High Byte Event0 Timeout
#define CC1101_DEFVAL_WOREVT0 0x6B // Low Byte Event0 Timeout
#define CC1101_DEFVAL_WORCTRL 0xFB // Wake On Radio Control
#define CC1101_DEFVAL_FREND1 0x56 // Front End RX Configuration ok
#define CC1101_DEFVAL_FREND0 0x10 // Front End TX Configuration ok
#define CC1101_DEFVAL_FSCAL3 0xE9 // Frequency Synthesizer Calibration ok
#define CC1101_DEFVAL_FSCAL2 0x2A // Frequency Synthesizer Calibration ok
#define CC1101_DEFVAL_FSCAL1 0x00 // Frequency Synthesizer Calibration ok
#define CC1101_DEFVAL_FSCAL0 0x1F // Frequency Synthesizer Calibration ok
#define CC1101_DEFVAL_RCCTRL1 0x41 // RC Oscillator Configuration
#define CC1101_DEFVAL_RCCTRL0 0x00 // RC Oscillator Configuration
#define CC1101_DEFVAL_FSTEST 0x59 // Frequency Synthesizer Calibration Control ok
#define CC1101_DEFVAL_PTEST 0x7F // Production Test
#define CC1101_DEFVAL_AGCTEST 0x3F // AGC Test
#define CC1101_DEFVAL_TEST2 0x81 // Various Test Settings ok
#define CC1101_DEFVAL_TEST1 0x35 // Various Test Settings ok
#define CC1101_DEFVAL_TEST0 0x09 // Various Test Settings ok
CC430 - TX
0x08, // FSCTRL1 Frequency synthesizer control.
0x00, // FSCTRL0 Frequency synthesizer control.
0x21, // FREQ2 Frequency control word, high byte.
0x62, // FREQ1 Frequency control word, middle byte.
0x76, // FREQ0 Frequency control word, low byte.
0xCA, // MDMCFG4 Modem configuration.
0x83, // MDMCFG3 Modem configuration.
0x13, // MDMCFG2 Modem configuration.
0x22, // MDMCFG1 Modem configuration.
0xF8, // MDMCFG0 Modem configuration.
0x14, // CHANNR Channel number.
0x34, // DEVIATN Modem deviation setting (when FSK modulation is enabled).
0x56, // FREND1 Front end RX configuration.
0x10, // FREND0 Front end TX configuration.
0x20, // MCSM0 Main Radio Control State Machine configuration.
0x16, // FOCCFG Frequency Offset Compensation Configuration.
0x6C, // BSCFG Bit synchronization Configuration.
0x43, // AGCCTRL2 AGC control.
0x40, // AGCCTRL1 AGC control.
0x91, // AGCCTRL0 AGC control.
0xE9, // FSCAL3 Frequency synthesizer calibration.
0x2A, // FSCAL2 Frequency synthesizer calibration.
0x00, // FSCAL1 Frequency synthesizer calibration.
0x1F, // FSCAL0 Frequency synthesizer calibration.
0x59, // FSTEST Frequency synthesizer calibration.
0x81, // TEST2 Various test settings.
0x35, // TEST1 Various test settings.
0x09, // TEST0 Various test settings.
0x47, // FIFOTHR RXFIFO and TXFIFO thresholds.
0x29, // IOCFG2 GDO2 output pin configuration.
0x06, // IOCFG0 GDO0 output pin configuration. Refer to SmartRF® Studio User Manual for detailed pseudo register explanation.
0x04, // PKTCTRL1 Packet automation control.
0x04, // PKTCTRL0 Packet automation control.
0x00, // ADDR Device address.
0x1E // PKTLEN Packet length.
The Rx filter bandwith is set to 162.5kHz, because 101kHz does not work at all. Probably there is a problem on frequency shift between Rx and Tx. Unfortunately 26mhz quartz (10 ppm) are not the same in rx and tx.
Using these parameters LQI is mediocre (40-60) even in very low interference environment.
I tried to increase Deviation and lab results are strange to me. Best results are:
DEVIATN 0x42 on Rx
DEVIATN 0x36 on Tx
In this case, LQI is very low (20-30) and RSSI is slightly better. If I use 0x35 or 0x36 both in Rx and TX the results are worse. Can you explain why? Can I expect that better RSSI and LQI in lab also means better performance in real environment? Any suggestions?
Thanks for your support.