主题中讨论的其他部件: CC1190, CC1120
您好,
我正在将C1200与MSP432 CPU配合使用,我想使用嗅探模式。
我将解释如何使用它,我想听听是否可能有概念。
首先,我的数据包必须处于无限模式,因为我发送的数据包大于RX FIFO缓冲区。 我不使用CRC。
这是CC1200 RX和TX的配置:
载波频率:869.52.5024万 MHz
RXFilter BW:10.96.4912万kHz
调制格式:4GFSK
符号率:0.25 ksps.
偏差:3.98.6359万kHz
PA斜坡和美白功能已启用
使用CC1190范围扩展器,因此TX功率为27dBm,禁用高增益模式(RX)
已启用病变检测并启用LBT
CRC和附加状态已禁用。 由于数据包的长度是可变的,并且可能大于FIFO缓冲区,而且我们使用的是Reed-Solomon,因此CRC被禁用。
下面是使用RFStudio进行的注册配置,但做了一些小改动:
const cc1200Register_s cc1200_speed0Config[]=
{
{CC1200_address_IOCFG3, 0x33},
{CC1200_address_IOCFG2, 0x33},
{CC1200_address_IOCFG1, 0x33},
{CC1200_address_IOCFG0, 0x33},
{CC1200_address_SYNC3, 0x93},
{CC1200_address_SYNC2, 0x0B},
{CC1200_address_SYNC1, 0x51},
{CC1200_address_SYNC0, 0xDE},
{CC1200_address_sync_CFG1, 0xA8},
{CC1200_address_sync_CFG0, 0x03},
{CC1200_address_deviation _M, 0xD1},
{CC1200_address_MODCFG_DEP_E, 0x28},
{CC1200_address_DCFILT_CFG, 0x5D},
{CC1200_address_Preamber_CFG1, 0x34},
{CC1200_address_Preamber_CFG0, 0x8A},
{CC1200_address_IQIC, 0xCB},
{CC1200_address_chan_bw, 0xA6},
{CC1200_address_MDMMCFG1, 0x48},
{CC1200_address_MDMCFG0, 0x05},
{CC1200_address_symbol_Rate2, 0x1A},
{CC1200_address_symbol_rate1, 0x36},
{CC1200_address_symbol_RATE0, 0xE2},
{CC1200_address_AGC_REF, 0x20},
{CC1200_address_AGC_CS_thr, 0x0E},
{CC1200_address_AGC_Gain _adjust,0x00},
{CC1200_address_AGC_CFG3, 0xB1},
{CC1200_address_AGC_CFG2, 0x20},
{CC1200_address_AGC_CFG1, 0x40},
{CC1200_address_AGC_CFG0, 0x83},
{CC1200_address_FIFO,CFG 0x00},
{CC1200_address_dev_ADDR, 0x00},
{CC1200_address_sending_CFG, 0x03},
{CC1200_address_FS_CFG, 0x12},
{CC1200_address_WOR_CFG1, 0x08},
{CC1200_address_WOR_CFG0, 0x20},
{CC1200_address_WOR_EVENT0_MSB, 0x93},
{CC1200_address_WOR_EVENT0_LSB, 0x5A},
{CC1200_address_RXDCM_time, 0x00},
{CC1200_address_PKT_CFG2, 0x10},
{CC1200_address_PKT_CFG1, 0x40},
{CC1200_address_PKT_CFG0, 0x40},
{CC1200_address_RFEND_CFG1, 0x0F},
{CC1200_address_RFEND_CFG0, 0x01},
{CC1200_address_PA_CFG1, 0x77},
{CC1200_address_PA_CFG0, 0x56},
{CC1200_address_ASK_CFG, 0x0F},
{CC1200_address_PKT_LEN, 0x1E},
{CC1200_address_if_mix _CFG, 0x1C},
{CC1200_address_FREQOFF _CFG, 0x22},
{CC1200_address_TOC_CFG, 0x0B},
{CC1200_address_marc_spare, 0x00},
{CC1200_address_ECG_CFG, 0x00},
{CC1200_address_MDMCFG2, 0x0C},
{CC1200_address_EXT_CTRL, 0x01},
{CC1200_address_RCCAL_Fine, 0x00},
{CC1200_address_RCCAL_gr粗糙, 0x00},
{CC1200_address_RCCAL_offset, 0x00},
{CC1200_address_FREQOFF1, 0x00},
{CC1200_address_FREQOFF0, 0x00},
{CC1200_address_FREQ2, 0x56},
{CC1200_address_FREQ1, 0xF3},
{CC1200_address_FREQ0, 0xD7},
{CC1200_address_if_ADC2, 0x02},
{CC1200_address_if_ADC1, 0xEE},
{CC1200_address_if_ADC0, 0x10},
{CC1200_address_FS_DIG1, 0x07},
{CC1200_address_FS_DIG0, 0xAF},
{CC1200_address_FS_CAL3, 0x00},
{CC1200_address_FS_CAL2, 0x20},
{CC1200_address_FS_CAL1, 0x40},
{CC1200_address_fs_cal0, 0x0E},
{CC1200_address_FS_CHP, 0x28},
{CC1200_address_FS_DIVTWO, 0x03},
{CC1200_address_FS_DSM1, 0x02},
{CC1200_address_FS_DSM0, 0x33},
{CC1200_address_FS_DVC1, 0xF3},
{CC1200_address_FS_DVC0, 0x13},
{CC1200_address_FS_LBI, 0x00},
{CC1200_address_FS_PFD, 0x00},
{CC1200_address_fs_pre, 0x6E},
{CC1200_address_FS_REG_DIV_CML, 0x1C},
{CC1200_address_fs_spare, 0xAC},
{CC1200_address_FS_VCO4, 0x14},
{CC1200_address_FS_VCO3, 0x00},
{CC1200_address_FS_VCO2, 0x00},
{CC1200_address_FS_VCO1, 0x00},
{CC1200_address_FS_VCO0, 0xB8},
{CC1200_address_GBIAS6, 0x00},
{CC1200_address_GBIAS5, 0x02},
{CC1200_address_GBIAS4, 0x00},
{CC1200_address_GBIAS3, 0x00},
{CC1200_address_GBIAS2, 0x10},
{CC1200_address_GBIAS1, 0x00},
{CC1200_address_GBIAS0, 0x00},
{CC1200_address_IFAMP, 0x01},
{CC1200_address_LNA, 0x01},
{CC1200_address_RXMIX, 0x01},
{CC1200_address_XOSC5, 0x0E},
{CC1200_address_XOSC4, 0xA0},
{CC1200_address_XOSC3, 0x03},
{CC1200_address_XOSC2, 0x04},
{CC1200_address_XOSC1, 0x01},
{CC1200_address_XOSC0, 0x00},
{CC1200_address_analog_spare, 0x00},
{CC1200_address_PA_CFG3, 0x00},
;
首先,GPIO为HW到0,但当接收消息 时,当FIFO溢出 时,IO0为1,当FIFO填充到给定阈值时,IO2为1,当传输类似但对该问题不重要的消息时,IO2为1。
因此,建议采用基于CS RX终端的嗅探模式(具有无穷大数据包长度),当C1200接收到一定数量的字节时 ,IO2唤醒CPU和带DMA的CPU读取FIFO检查是否已接收到数据包(检查消息长度) 如果不是,它将进入休眠状态并等待IO2触发的另一个中断。 在收到消息之后,C1200被再次发送到嗅探之前,一直如此
是否因为我没有使用CRC或其他内容而出现任何问题? 我假设sniff接下来执行以下操作:唤醒CC1200检查载波传感器,如果有载波,它检查同步字(顺便说一下是32位),然后开始接收数据包。
我正在询问此概念是否可行,因为我不会收到任何消息,并且我不明白为什么它不起作用,因为我使用RFStudio,并且我导出寄存器状态时进行了一些小更改(CRC禁用,追加状态禁用,无穷大数据包长度,LBT启用,冲突启用)。 当我通过将RFEND_CFG0更改为0x00禁用sniff时,它接收到消息但不一致(我猜是因为WOR控制寄存器)。 这是我的第二个问题。
当使用嗅探模式和RFStudio显示TRx时,Twakeup和Tsleep分别为时间间隔RXTimeout,Tevent1和(Tevent0-Tevent1-RXTimeout),或为通过嗅探算法提供的某些特殊功能所提供的时间间隔。 我提出这一问题是因为:
TRx = 1.969毫秒
通过唤醒= 0.4335ms
Tsleep = 940.648ms
我从具有上述配置的RFStdion中获得的配置已填充,我看不到能够实现此时间的寄存器配置。 当激活嗅探模式时,C1200甚至使用此相应的寄存器(REFEND_CFG0,WOR_CFG1/0和WOR_EVENT0_MSB/LSB),因为例如对于Twakeup, WOR_EVENT1应该是17.34 (由于其分次编号已不可能),并且没有17的配置。 您可以在 WOR_CFG1中看到(以上),EVENT1设置为4 (000b)。 如果我计算的是Wright (frosc = 40kHz) Twakeup = 1毫秒。
附注:在NDA下不能发布任何代码
此致,
Ugljesa。