大家好、
我们有一款基于433MHz CC1101无线电的产品、我们正改变将其用于客户端安装。 我们将使用 OOK 设置。 他们已经注意到、对于接收器、他们的数据包丢失率大约为50%、并且能够跟踪其问题源到以0位结束的数据包。 它们的解调显示了我们在数据包后所称的'burp'。 我附加了一个显示此内容的图像。
我们是否有办法从 CC1101中消除此行为?
谢谢、
Don
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Don、
在此模式下、CC1101不知道何时停止、因此在接收到突发后、信号会快速下降、CC1101的 AGC 将开始反应。 然后、当它完全增加增益时、器件将开始对噪声进行解码。 我已经将这个小的"blip"视为修改增益 LNA 的 AGC 的伪影。 我们无法改变这种行为。
最后一位也是"无能量"、在这里、您必须使 AGC 更慢。 降低 CC1101的 RBW 或降低 AGC 的速度。
此致、
/TA
之三、
我们仅在以0位结尾的数据包中注意到这种行为。 我们在启动时使用的完整设置将从以下源文件中复制:
#define IOCFG0_Setting 0x06 //ATEST 将在 RSSI 低于 CCA_MODE 中设置的阈值时置为有效
#define FIFOTHR_Setting 0x47
#define SYNC1_Setting 0xFF
#define SYNC0_Setting 0xFF
#define PKTLEN_Setting 0xFF
#define PKTCTRL1_Setting 0x00//dap0x04
#define PKTCTRL0_Setting 0x00//dap0x05
#define ADDR_Setting 0x00
#define CHANNR_Setting 0x00
#define FSCTRL1_Setting 0x06
#define FSCTRL0_Setting 0x00
#define FREQ2_Setting 0x10
//433.92
#define FREQ1_Setting 0xB0
#define FREQ0_Setting 0xE2//433.919830
#define MDMCFG4_Setting 0xf8//7.576
#define MDMCFG3_Setting 0x32//0x15
#define MDMCFG2_Setting 0xB8//0x38//dap0x3B
#define MDMCFG1_Setting 0x22
#define MDMCFG0_Setting 0xf8
#define DEVIATN_Setting 0x15
#define MCSM2_Setting 0x07
#define MCSM1_Setting 0x30
#define MCSM0_Setting 0x18
#define FOCCFG_Setting 0x16
#define BSCFG_Setting 0x6C
#define AGCCTRL2_Setting 0x04//dap0x03
#define AGCCTRL1_Setting 0x00//dap0x40
#define AGCCTRL0_Setting 0x92//dap0x91
#define WOREVT1_Setting 0x87
#define WOREVT0_Setting 0x6B
#define WORCTRL_Setting 0xFB
#define FREND1_Setting 0x56
#define FREND0_Setting 0x11
#define FSCAL3_Setting 0xE9
#define FSCAL2_Setting 0x2A
#define FSCAL1_Setting 0x00
#define FSCAL0_Setting 0x1F
#define POWER_9_9 0xC0
void CC1101_Init()
{
cc1101WriteRegister (IOCFG0、IOCFG0_Setting);
cc1101WriteRegister (FIFOTHR、FIFOTHR_Setting);
cc1101WriteRegister (SYNC1、SYNC1_Setting);
cc1101WriteRegister (SYNC0、SYNC0_Setting);
cc1101WriteRegister (PKTLEN、PKTLEN_Setting);
cc1101WriteRegister (PKTCTRL1、PKTCTRL1_Setting);
cc1101WriteRegister (PKTCTRL0、PKTCTRL0_Setting);
cc1101WriteRegister (ADDR、ADDR_Setting);
cc1101WriteRegister (CHANNR、CHANNR_Setting);
cc1101WriteRegister (FSCTRL1、FSCTRL1_Setting);
cc1101WriteRegister (FSCTRL0、FSCTRL0_Setting);
cc1101WriteRegister (FREQ2、FREQ2_setting);
cc1101WriteRegister (FREQ1、FREQ1_Setting);
cc1101WriteRegister (FREQ0、FREQ0_Setting);
cc1101WriteRegister (MDMCFG4、MDMCFG4_Setting);
cc1101WriteRegister (MDMCFG3、MDMCFG3_Setting);
cc1101WriteRegister (MDMCFG2、MDMCFG2_Setting);
cc1101WriteRegister (MDMCFG1、MDMCFG1_Setting);
cc1101WriteRegister (MDMCFG0、MDMCFG0_Setting);
cc1101WriteRegister (DEVIATN、DEVIATN_setting);
cc1101WriteRegister (MCSM2、MCSM2_Setting);
cc1101WriteRegister (MCSM1、MCSM1_Setting);
cc1101WriteRegister (MCSM0、MCSM0_Setting);
cc1101WriteRegister (FOCCFG、FOCCFG_Setting);
cc1101WriteRegister (BSCFG、BSCFG_Setting);
cc1101WriteRegister (AGCCTRL2、AGCCTRL2_setting);
cc1101WriteRegister (AGCCTRL1、AGCCTRL1_Setting);
cc1101WriteRegister (AGCCTRL0、AGCCTRL0_Setting);
cc1101WriteRegister (WOREVT1、WOREVT1_Setting);
cc1101WriteRegister (WOREVT0、WOREVT0_Setting);
cc1101WriteRegister (WORCTRL、WORCTRL_Setting);
cc1101WriteRegister (FREND1、FREND1_Setting);
cc1101WriteRegister (FREND0、FREND0_Setting);
cc1101WriteRegister (FSCAL3、FSCAL3_Setting);
cc1101WriteRegister (FSCAL2、FSCAL2_Setting);
cc1101WriteRegister (FSCAL1、FSCAL1_Setting);
cc1101WriteRegister (FSCAL0、FSCAL0_Setting);
cc1101WriteRegister (PATABLE、POWER_9_9);
}
谢谢、
Don
您好、Don、
我看不到相同的问题。 我附加了寄存器设置和频谱图。 您能否尝试这些设置并查看您得到的结果?
设置从 SmartRF Studio 导出。
此致。
e2e.ti.com/.../433MHZ_5F00_OOK_5F00_CC1101_5F00_reg_5F00_config.c
FI、
感谢您的建议。 我已经实现了您发布的寄存器设置(FREQ2、FREQ1和 FREQ0除外)、并捕获了以下输出:
您可以看到、额外的射频输出仍然存在。 为了便于记录、我们在此数据包中发送的最后两个字节为0x29和0xB8 (按该顺序)。 此数据包的长度总共为8字节。 我们是否可能使用不同的组件硬件版本? PARTNUM 的内容为0xF0、版本的内容为0x0F。
在我的代码中、为了发送到 TX、我使用数据包加载 FIFO、调整 PKTLEN 以匹配我打算发送的字节数、然后选择 STX 命令。 CC1101退出 TX 状态后、我将 PKTLEN 寄存器更改为0xFF。 最后、由于这是一个低功耗应用、在 PKTLEN 被更改后、我将 IOCFG 寄存器设置为0x2F、选通信号命令、然后等待 MARCTATE 指示无线电空闲、然后选通信号 SPWD 命令。 这是否会导致我看到的行为?
Don