主题中讨论的其他器件:CC1310
您好!
我使用 CC430执行远距离无线电通信。 我已使用射频 Studio 来计算远距离应用中要使用的最佳射频寄存器设置。
很明显、较低的波特率在范围方面表现最佳、并且由于我不需要高数据速率、这是我的应用的理想选择。
以下代码从 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 (RF1ASTTAT0W、0x8000); WriteSingleReg (RF1AST1W、0x8000); WriteSingleReg (RF1AST2W、0x8000); WriteSingleReg (RF1AIN、0x04);
虽然4.8kBaud 和更高波特率的工作效果非常好、但较低的1.2kBaud / 0.6kBaud 速率不起作用(在 FW 中实现时)。 "不起作用"是指固件似乎发送数据包正常、但接收器无法接收到数据包。 我直接在 RF Studio 上运行接收器、当然、要确保设置匹配。
现在我的问题是:除了射频寄存器设置之外、在使用低波特率时、我还需要特别注意 FW 中的其他内容吗? 我觉得在 MSP 方面有一些事情要做(可能是系统时钟频率、目前为12MHz)。
目前 CPU 的配置方式如下:
_BIS_SR (SCG0); //禁用 FLL 控制环路 UCSCTL0 = 0x0000; //设置可能的最低 DCOx、MODx UCSCTL1 = DCORSEL_5; //选择合适的范围 UCSCTL2 = FLLD_1 + 0x16E;//设置 DCO 乘法 器_BIC_SR (SCG0); //启用 FLL 控制环路
谢谢、
Henry