Other Parts Discussed in Thread: CC1310
Hi,
I am using a CC430 to perform long range radio communication. I have used RF Studio to figure our the best RF Register settings to be used for long range application.
Obviously lower baud rates perform best in terms of range and as I do not need high data rates, this is the way to go for my application.
The following code loads the register settings from RF Studio:
WriteSingleReg(IOCFG0, 0x06); WriteSingleReg(FIFOTHR, 0x47); WriteSingleReg(PKTCTRL0, 0x05); WriteSingleReg(FSCTRL1, 0x06); WriteSingleReg(FREQ2, 0x21); WriteSingleReg(FREQ1, 0x62); WriteSingleReg(FREQ0, 0x76); WriteSingleReg(MDMCFG4, 0xF5); WriteSingleReg(MDMCFG3, 0x83); WriteSingleReg(MDMCFG2, 0x13); WriteSingleReg(DEVIATN, 0x15); WriteSingleReg(MCSM0, 0x10); WriteSingleReg(FOCCFG, 0x16); WriteSingleReg(WOREVT1, 0x87); WriteSingleReg(WOREVT0, 0x6B); WriteSingleReg(WORCTRL, 0xFB); WriteSingleReg(FSCAL3, 0xE9); WriteSingleReg(FSCAL2, 0x2A); WriteSingleReg(FSCAL1, 0x00); WriteSingleReg(FSCAL0, 0x1F); WriteSingleReg(TEST2, 0x81); WriteSingleReg(TEST1, 0x35); WriteSingleReg(TEST0, 0x09); WriteSingleReg(LQI, 0x6A); WriteSingleReg(RSSI, 0x80); WriteSingleReg(VCO_VC_DAC, 0x94); WriteSingleReg(RF1AIFCTL1, 0x74); WriteSingleReg(RF1AIFERR, 0x01); WriteSingleReg(RF1AIFERRV, 0x02); WriteSingleReg(RF1AINSTRW, 0xC000); WriteSingleReg(RF1AINSTR1W, 0xC000); WriteSingleReg(RF1AINSTR2W, 0xC000); WriteSingleReg(RF1ADINW, 0xC000); WriteSingleReg(RF1ASTAT0W, 0x8000); WriteSingleReg(RF1ASTAT1W, 0x8000); WriteSingleReg(RF1ASTAT2W, 0x8000); WriteSingleReg(RF1AIN, 0x04);
While baud rates of 4.8kBaud and higher work perfectly well, the lower rates 1.2kBaud / 0.6kBaud do not work (when implemented in FW). By "do not work" I mean that the firmware seems to send the packet ok but no data packets can be received by the receiver. I run the receiver on RF Studio directly and of course made sure that the settings were matching.
Now my question: Beside the RF register settings, is there anything else in the FW that I need to especially take care when using low baud rates? My feeling is that on the MSP side of things there is something to do (maybe system clock frequency, which is currently 12MHz).
This is how CPU is currently configured:
_BIS_SR(SCG0); // Disable the FLL control loop UCSCTL0 = 0x0000; // Set lowest possible DCOx, MODx UCSCTL1 = DCORSEL_5; // Select suitable range UCSCTL2 = FLLD_1 + 0x16E; // Set DCO Multiplier _BIC_SR(SCG0); // Enable the FLL control loop
Thanks,
Henry