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.

[参考译文] CC1200:与其他射频 IC 兼容

Guru**** 1807890 points
Other Parts Discussed in Thread: CC1200
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1332996/cc1200-compatibility-with-other-rf-ic

器件型号:CC1200

您好!

我在尝试实现 CC1200与 SI4463的兼容性时遇到问题。

一些背景:我的公司有数以千计的单位在现场,所有通信通过 SI4463与
或者说自定义协议。 在我们的研发工作中、我们得出结论:我们将在我们的
多种原因实现全新产品系列、现在可以与我们以前的器件兼容了。

以下是我尝试实现的配置(SI4463的电流配置):
64k 位
2个 GFSK
869.52MHz
偏差- 90kHz
RBW - 150kHz

前导码长度:4字节
前导码模式:1010...

同步字长度:3字节
同步字顺序:SW3 SW2 SW1
(每个字节 LSB 在前)
SW3:0xB4
SW2:0x2B
SW1:0xC3

有效载荷:
每个字节 MSB 优先
所有位反转

CRC:IBM
x16 + x15 + x2 + 1
最高字节到最低字节(MSBYTE 在前)
非反转位
仅限有效载荷的 CRC (数据)

首先、我通过 SmartRF Studio 生成了配置:
{CC120X_IOCFG2、0x06}、
{CC120X_SYNC_CFG1、0xA8}、
{CC120X_SYNC_CFG0、0x23}、
{CC120X_DERATION_M、0x27}、
{CC120X_MODCFG_DEV_E、0x0D}、
{CC120X_DCFILT_CFG、0x4B}、
{CC120X_PREAMP_CFG0、0x8A}、
{CC120X_IQIC、0xD8}、
{CC120X_CHAN_BW、0x0B}、
{CC120X_MDMCFG1、0x42}、
{CC120X_MDMCFG0、0x05}、
{CC120X_symbol_Rate2、0x9A}、
{CC120X_symbol_rate1、0x36}、
{CC120X_SYMBOL_RATE0、0xE3}、
{CC120X_AGC_REF、0x2D}、
{CC120X_AGC_CS_THR、0xF6}、
{CC120X_AGC_CFG1、0x12}、
{CC120X_AGC_CFG0、0x80}、
{CC120X_FIFO_CFG、0x00}、
{CC120X_FS_CFG、0x12}、
{CC120X_PKT_CFG2、0x00}、
{CC120X_PKT_CFG0、0x20}、
{CC120X_PA_CFG1、0x77}、
{CC120X_PA_CFG0、0x53}、
{CC120X_PKT_LEN、0xFF}、
{CC120X_IF_MIX_CFG、0x1C}、
{CC120X_TOC_CFG、0x03}、
{CC120X_MDMCFG2、0x02}、
{CC120X_FREQ2、0x56}、
{CC120X_FREQ1、0xF3}、
{CC120X_FREQ0、0xB6}、
{CC120X_IF_ADC1、0xEE}、
{CC120X_IF_ADC0、0x10}、
{CC120X_FS_DIG1、0x07}、
{CC120X_FS_DIG0、0x50}、
{CC120X_FS_CAL1、0x40}、
{CC120X_FS_CAL0、0x0E}、
{CC120X_FS_DIVTWO、0x03}、
{CC120X_FS_DSM0、0x33}、
{CC120X_FS_DVC0、0x17}、
{CC120X_FS_PFD、0x00}、
{CC120X_FS_PRE、0x6E}、
{CC120X_FS_REG_DIV_CML、0x1C}、
{CC120X_FS_SPARE、0xAC}、
{CC120X_FS_VCO0、0xB5}、
{CC120X_IFAMP、0x09}、
{CC120X_XOSC5、0x0E}、
{CC120X_XOSC1、0x03}、

然后添加了一些修改:

/*启用碰撞检测器*/
uint8_t mdmcfg1_collision = 0x4A;
/*对于 SI446x:反转数据*/

mdmcfg1_collision |=(1 << 4);
ok &= write_reg (RF_IC、CC120X_MDMCFG1、&mdmcfg1_collision、1);

/*对于 SI446x:4字节前导码*/
uint8_t preamber_cfg1 = 0x18;
ok &= write_reg (RF_IC、CC120X_PREAME_CFG1、&PREAME_cfg1、1);

uint8_t SYNC_cfg1 = 0x88;
ok &= write_reg (RF_IC、CC120X_SYNC_CFG1、&SYNC_cfg1、1);

uint8_t sync0 = swap_lsb_msb (0xC3);
ok &= write_reg (RF_IC、CC120X_SYNC0、&sync0、1);

uint8_t sync1 = swap_lsb_msb (0x2B);
ok &= write_reg (RF_IC、CC120X_SYNC1、&sync1、1);

uint8_t sync2 = swap_lsb_msb (0xB4);
ok &= write_reg (RF_IC、CC120X_SYNC2、&sync2、1);

现在发生的是:SI4463成功检测前导码、而不是其他任何情况。

我仍然不清楚这些内容、我似乎在文档中找不到它们。

发送的有效载荷是以 LSB 优先还是以 MSB 优先? CRC 也有同样的问题。
如果不符合我当前的协议、我能否更改它的传输方式?

您能帮我查询一下吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我将评论一下您有关数据包格式的设置。

    从我看到的内容中、您可以使用以下内容:

    前导码_CFG1.NUM_PREAMBLE = 6 (4字节前导码)

    SYNC_CFG1.SYNC_MODE = 4 (24咬接同步)

    同步2 = 0x2D

    同步1 = 0xD4

    SYNC0 = 0xC3

    MDMCFG1.逆 变器_DATA_EN = 1

    PKT_CFG0.LENGTH_CONFIG = 1 (可变数据包长度模式)

    Pkt_CFG1.crc_CFG = 1 (启用 CRC)

    如果要发送以下有效载荷(0x01、0x02、0x03)、则需要将以下数据写入 TX FIFO:

    0x03、0x01、0x02、0x03

    然后、通过无线电发送的内容如下:

    0x55 0x55 0x55 0x55 0x2D 0xD4 0xC3 0xFC 0xFE 0xFC 0xCF 0xC5 (MSB 在前)

    其中:

    前导码: 0x55 0x55 0x55 0x55 0x55

    同步: 0x2D 0xD4 0xC3

    长度:0xFC (0x03反相)

    有效载荷:  0xFE 0xFD 0xFC (0x01 0x02 0x03反相)

    CRC: 0xCF 0xC5 (0x30 0x3A 反相)

    如果设置 MDMCFG1.inverter_data_EN = 0并传输相同的数据包、其内容将如下所示:

    前导码: 0x55 0x55 0x55 0x55 0x55

    同步: 0x2D 0xD4 0xC3

    长度: 0x03

    有效载荷:  0x01 0x02 0x03

    CRC:0x30 0x3A

    希望这澄清了 CC1200的工作原理。

    Siri