CC1101如何设计为异步通信模式
时间:12-23
整理:3721RD
点击:
static const uint8_t FSK_CC1101InitData[][2]= { {CC1101_IOCFG2, 0x0D}, /*与RX FIFO关联:当RX FIFO在RXFIFO_THR上被填充或到达数据包末端时声明。当RX FIFO空时被反声明*/ {CC1101_IOCFG0, 0x2D}, /*设置GDO0接收提示:当同步词汇被送出/收到时声明,在数据包末端时反声明*/ {CC1101_PKTLEN, 0x0C}, /*可变长度时为数据包最大长度,固定长度时为数据包的固定长度*/ {CC1101_FIFOTHR, 0x47}, /*IF 4D TX FIFO下溢值:33 RX FIFO上溢值:32*/ {CC1101_PKTCTRL1, 0x00}, /* 10 无前导质量评估器门限;无2个状态字节;无 地址校验*/ {CC1101_PKTCTRL0, 0x30}, /*01 白化关闭;数据包格式为正常模式,使用TX FIFO;CRC disabled;固定长度数据包*/ {CC1101_ADDR, 0x00}, /*设备地址*/ {CC1101_CHANNR, 0x00}, /*设置信道数*/ {CC1101_FSCTRL1, 0x0A}, /*RX中使用的理想IF频率270KHz*/ {CC1101_FREQ2, 0x10}, /*设置高频频率:= fxosc*FREQ/2^16 ;fxosc=26MHZ */ {CC1101_FREQ1, 0xB0}, /*433.926971 :10 B0 83 433.919830:10 B0 71 433.929749:10 B0 8A*/ {CC1101_FREQ0, 0xD0}, /**/ {CC1101_MDMCFG4, 0xD9}, /*信道滤波 数据速率( 波特率) 19.2Kbaud */ {CC1101_MDMCFG3, 0x83}, /*数据速率*/ {CC1101_MDMCFG2, 0x17}, /*灵敏度优先;GFSK;开启曼彻斯特,有前导码有同步码,2byte*/ {CC1101_MDMCFG0, 0xF8}, /*设置Channel spacing值*/ {CC1101_DEVIATN, 0x50}, /*背离指数(频率偏移) 35khz:43 */ {CC1101_MCSM0, 0x18}, /*主无线控制状态机配置*/ {CC1101_FOCCFG, 0x16}, /*频率偏移补偿配置*/ {CC1101_FREND0, 0x13}, /*选择PA功率设定*/ {CC1101_FSCAL3, 0xE9}, /*频率合成器校准*/ {CC1101_FSCAL2, 0x2A}, /*频率合成器校准*/ {CC1101_FSCAL1, 0x00}, /*频率合成器校准*/ {CC1101_FSCAL0, 0x1F}, /*频率合成器校准*/ {CC1101_TEST1, 0x35}, /*可变测试设置*/ {CC1101_MCSM1, 0x30}, /*选择CCA_MODE:在CCA信号中反映:若RSSI在门限之下除非当前接收一个数据包; 数据包被接收后为IDLE状态;完成数据包发送后为IDLE状态*/ {CC1101_MDMCFG1, 0x00}, /*前导码 2 byte*/ };
我的配置如下 static const uint8_t FSK_CC1101InitData[][2]= { {CC1101_IOCFG2, 0x0D}, /*与RX FIFO关联:当RX FIFO在RXFIFO_THR上被填充或到达数据包末端时声明。当RX FIFO空时被反声明*/ {CC1101_IOCFG0, 0x2D}, /*设置GDO0接收提示:当同步词汇被送出/收到时声明,在数据包末端时反声明*/ {CC1101_PKTLEN, 0x0C}, /*可变长度时为数据包最大长度,固定长度时为数据包的固定长度*/ {CC1101_FIFOTHR, 0x47}, /*IF 4D TX FIFO下溢值:33 RX FIFO上溢值:32*/ {CC1101_PKTCTRL1, 0x00}, /* 10 无前导质量评估器门限;无2个状态字节;无 地址校验*/ {CC1101_PKTCTRL0, 0x30}, /*01 白化关闭;数据包格式为正常模式,使用TX FIFO;CRC disabled;固定长度数据包*/ {CC1101_ADDR, 0x00}, /*设备地址*/ {CC1101_CHANNR, 0x00}, /*设置信道数*/ {CC1101_FSCTRL1, 0x0A}, /*RX中使用的理想IF频率270KHz*/ {CC1101_FREQ2, 0x10}, /*设置高频频率:= fxosc*FREQ/2^16 ;fxosc=26MHZ */ {CC1101_FREQ1, 0xB0}, /*433.926971 :10 B0 83 433.919830:10 B0 71 433.929749:10 B0 8A*/ {CC1101_FREQ0, 0xD0}, /**/ {CC1101_MDMCFG4, 0xD9}, /*信道滤波 数据速率( 波特率) 19.2Kbaud */ {CC1101_MDMCFG3, 0x83}, /*数据速率*/ {CC1101_MDMCFG2, 0x17}, /*灵敏度优先;GFSK;开启曼彻斯特,有前导码有同步码,2byte*/ {CC1101_MDMCFG0, 0xF8}, /*设置Channel spacing值*/ {CC1101_DEVIATN, 0x50}, /*背离指数(频率偏移) 35khz:43 */ {CC1101_MCSM0, 0x18}, /*主无线控制状态机配置*/ {CC1101_FOCCFG, 0x16}, /*频率偏移补偿配置*/ {CC1101_FREND0, 0x13}, /*选择PA功率设定*/ {CC1101_FSCAL3, 0xE9}, /*频率合成器校准*/ {CC1101_FSCAL2, 0x2A}, /*频率合成器校准*/ {CC1101_FSCAL1, 0x00}, /*频率合成器校准*/ {CC1101_FSCAL0, 0x1F}, /*频率合成器校准*/ {CC1101_TEST1, 0x35}, /*可变测试设置*/ {CC1101_MCSM1, 0x30}, /*选择CCA_MODE:在CCA信号中反映:若RSSI在门限之下除非当前接收一个数据包; 数据包被接收后为IDLE状态;完成数据包发送后为IDLE状态*/ {CC1101_MDMCFG1, 0x00}, /*前导码 2 byte*/ };
数据手册11.2中有如下描述。
In the synchronous and asynchronous serial modes, the GDO0 pin is used as a serial TX data input pin while in transmit mode.
数据手册27.1中有如下描述。
In TX, the GDO0 pin is used for data input (TX data). Data output can be on GDO0, GDO1, or GDO2. This is set by the IOCFG0.GDO0_CFG, CFG1.GDO1_CFG
and IOCFG2.GDO2_CFG fields.
建议在TX时将IOCFG0设置为0x2D,在RX时将IOCFG0设置为0x0D。
在RX时将IOCFG0设置为0x0D 时GPIO0端口有波形 但是不是没有看到数据