您好:
我使用两个CC1101,一个是发送器,另一个是接收器。使用 GFSK, 波特率 250K。
1、在我的 μS中,我需要发送器向接收器发送信号的时间,以40为范围。 但是,在我测试了它们之后,时间是100μS…请给我一些建议来缩短时间,下面是我的代码:
const rf_settings rfSettings =
{
0x0C, // FSCTRL1 频率合成器控制。
0x00, // FSCTRL0 频率合成器控制。
0x10, // FREQ2 频率控制字,高字节,用于434
0xB1, // FREQ1 频率控制字,中间字节,用于434
0x3B, // FREQ0 频率控制字,低字节,用于434
0x2D, // MDMCFG4 调制解调器配置。 用于250K
0x3B, // MDMCFG3 调制解调器配置 。用于250K
0x13, // MDMCFG2 调制解调器配置。 用于250K
0x22, // MDMCFG1 调制解调器配置。
0xf8, // MDMCFG0 调制解调器配置。
0x00, // CHANNR 信道编号。
0x62, // DEVIATN 调制解调器偏差设置(启用FSK调制时)。 用于250K
0xB6, // FREND1 前端RX配置 。用于250K
0x10 ,// FREND0 前端RX配置。
0x07, // MCSM2 主无线电控制状态机器配置。0x03|BIT4
0x30 ,// MCSM1 主无线电控制状态机器配置。
0x18 ,// MCSM0 主无线电控制状态机器配置。
0x1D, // FOCCFG 频率偏移补偿配置 。用于250K
0x1C, // BSCFG 位同步配置 。用于250K
0xC7, // AGCCTRL2 AGC控制 。用于250K
0x00, // AGCCTRL1 AGC控制 。用于250K
0xB0, // AGCCTRL0 AGC控制 。用于250K
//FFFA = 1884毫秒
0x87, // 0x28, // WOREVT1 High Event 0 timeout
0x6B, // 0xa0, // WOREVT0低事件0超时
0xFB, // 0xf8, //无线控件上的WORCTRL Wake 78
0xEA, // FSCAL3 频率合成器校准。 用于250K
0x2A, // FSCAL2 频率合成器校准。 用于250K
0x00, // FSCAL1 频率合成器校准。 用于250K
0x1f, // FSCAL0 频率合成器校准。 用于250K
0x59 ,// FSTEST 频率合成器校准。
0x88, // TEST2 各种测试设置。
0x31 ,// TEST1 各种测试设置。
0x09 ,// TEST0 各种测试设置。
0x06, // IOCFG2 GDO2输出引脚配置。
0x06, // IOCFG0 GDO0输出引脚配置。 有关伪寄存器的详细说明,请参阅SmartRF?Studio用户手册。
0x07, // RX FIFO和TX FIFO阈值
0xD3, //同步字,高
0x91, //同步字,低
0x04, // PKTCTRL1 数据包自动化控制。
0x05, // PKTCTRL0 数据包自动化控制。
0x00, // ADDR 设备地址。
0x22 // PKTLEN 数据包长度。
};
2、在数据表中,“固定数据包长度模式通过设置PKTCTRL0.length_config=0来选择。 所需的包长度由PKTLEN寄存器设置。 此值必须与0不同。”
但我 ,这些寄存器无法正常工作。
void CC1101_SendPacket(uint8_t *tx_buffer,uint8_t size)
{
//CC1101_WriteReg (CCxxx0_TXFIFO,大小);
CC1101_WriteRegBurst (CCxxx0_TXFIFO,TX_buffer,size);
CC1101_SendCommand (CCxxx0_STX);
Delay (3000);//1.5ms
// 同时(!GDO0);
// 同时( GDO0 );
CC1101_SendCommand (CCxxx0_SFTX);
}