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.

1200开发板通讯咨询

Other Parts Discussed in Thread: CC1200, CC1201

HELLO, 我们购买了TI 官方CC1200开发板,我们设计的的卡是1201,调试有俩个问题:

配置参数都是868M4GFSK500ksps, 发送间隔50ms,固定长度发送和接收数据;

一、我们自己设计的板卡1201发送数据:

0x000x010x020x030x040x050x060x07

0x010x010x020x030x040x050x060x07

0x020x010x020x030x040x050x060x07

0x030x010x020x030x040x050x060x07

0x040x010x020x030x040x050x060x07

。。。。。

实际数据就是八个字节,但是配置参数PKT_LEN必须设置为9,不知道为啥??如果设置为8,接收端也设置为8,则接收端收到的数据就有问题。

 

使用开发板1200接收数据,接收的配置参数PKT_LEN也必须设置为9。接收收到的数据头部会多出来一个byte 0x00,发送10000个包,接收端也可以正常收取1000个包,不知道为什么接收头部多出一个00

11:45:25.337 | 00 00 01 02 03 04 05 06 07  |    0

11:45:25.391 | 00 01 01 02 03 04 05 06 07  |    0

11:45:25.447 | 00 02 01 02 03 04 05 06 07  |    0

11:45:25.503 | 00 03 01 02 03 04 05 06 07  |    0

11:45:25.558 | 00 04 01 02 03 04 05 06 07  |    0

11:45:25.614 | 00 05 01 02 03 04 05 06 07  |    0

11:45:25.670 | 00 06 01 02 03 04 05 06 07  |    0

11:45:25.726 | 00 07 01 02 03 04 05 06 07  |    0

11:45:25.782 | 00 08 01 02 03 04 05 06 07  |    0

 

二、我们使用开发板1200发送数据

0x000x010x020x030x040x050x060x07

0x010x010x020x030x040x050x060x07

0x020x010x020x030x040x050x060x07

0x030x010x020x030x040x050x060x07

0x040x010x020x030x040x050x060x07

。。。。。

 

我们自己卡1201接收数据,发现会出现丢包情况,大约发送100个包,接收会丢失10个左右,请问这种问题可能在哪里,我从哪里入手解决?

  • 1、手册有解释:
    Fixed packet length mode is selected by setting PKT_CFG0.LENGTH_CONFIG = 00. The desired packet length is set by the PKT_LEN register.

    To support non-byte oriented protocols, fixed packet length mode supports packet lengths of n bytes + m bits, where n is programmed through the PKT_LEN register and m is programmed through PKT_CFG0.PKT_BIT_LEN. If m ≠ 0, only m bits of the last byte written to the TX FIFO is transmitted
    and RX mode is terminated when the last m bits of the packet is received. This is very useful in low power systems where it is important not to stay in TX/RX longer than necessary. CRC is not supported when PKT_CFG0.PKT_BIT_LEN ≠ 0. In RX, you will read zero’s from the (8 − m) LSBs in the last byte in the RX FIFO.

    2、开发板可正常接收,自制板出现丢包,硬件方面是否一致?比较推荐copy官方板的设计
  • 感谢回复,第一问题, 我就是按照手册以及这俩个寄存器PKT_CFG0=0,PKT_LEN=9;
    现在就是测试固定长度模式,
    我的疑惑就是开发板接收的头部第一个字节00是什么产生的?我发送端没有发送这个字节。
    还有就是我写入TXFIFO - Burst accecss to Transmit FIFO的数据长度是不是应该和PKT_LEN保持一致,我现在就是TXFIFO - Burst accecss to Transmit FIFO的长度比PKT_LEN少1,如果相等,则接收端出现错序,丢数。

    二 、开发板是1200,没有买到1201的,我们的板卡是1201,硬件设计就是参考demo 官方版的。

    请帮忙解答下,谢谢。
  • 1、To support non-byte oriented protocols, fixed packet length mode supports packet lengths of n bytes + m bits, where n is programmed through the PKT_LEN register and m is programmed through PKT_CFG0.PKT_BIT_LEN. If m ≠ 0, only m bits of the last byte written to the TX FIFO is transmitted
    and RX mode is terminated when the last m bits of the packet is received. This is very useful in low power systems where it is important not to stay in TX/RX longer than necessary. CRC is not supported when PKT_CFG0.PKT_BIT_LEN ≠ 0. In RX, you will read zero’s from the (8 − m) LSBs in the last byte in the RX FIFO.

    2、CC1200/CC1201参考设计是通用的,可以对比一下,建议完全复制,包括元器件: http://www.ti.com/tool/CC120XEM-868-930-RD

  • thansk,
    我配置了PKT_LEN=9,PKT_CFG0=0,PKT_CFG1=0,PKT_CFG2=0;
    也就是固定模式,PKT_BIT_LEN=0.
    这种情况下,接收端就会每包数据接收一个8bit0么? 位于头部第一个字节。

    但是我用俩个开发板直接发送9byte,接收端就是9byte没有接收到头部第一个字节一直为0的情况出现,配置了相同的PKT_LEN=9,PKT_CFG0=0,PKT_CFG1=0,PKT_CFG2=0;这个怎么解释?

  • 我配置了PKT_LEN=9, PKT_CFG0=0,PKT_CFG0=1,PKT_CFG2=0,这种情况下表示PKT_CFG0.PKT_BIT_LEN=0,然后接收端就会在头部收到一个8bit0么?

    我用俩个开发板直接通讯,使用了相同的配置参数PKT_LEN=9, PKT_CFG0=0,PKT_CFG0=1,PKT_CFG2=0, 接收端就不会收到这8bit 0. 还是没有明白你上文提到的 CRC is not supported when PKT_CFG0.PKT_BIT_LEN ≠ 0. In RX, you will read zero’s from the (8 − m) LSBs in the last byte in the RX FIFO.
  • 你可以发下你的配置吗?相同配置下不同板子实验结果的差异能详细描述吗?上面描述不够清晰 【如果设置为8,接收端也设置为8,则接收端收到的数据就有问题。具体是什么问题?乱码?】
  • thanks.

    开发板1200配置如下:

    static const registerSetting_t preferredSettings[]=
    {
    {CC1200_IOCFG2, 0x06},
    {CC1200_SYNC_CFG1, 0xA8},
    {CC1200_DEVIATION_M, 0x47},
    {CC1200_MODCFG_DEV_E, 0x2F},
    {CC1200_DCFILT_CFG, 0x1E},
    {CC1200_PREAMBLE_CFG0, 0x8A},
    {CC1200_IQIC, 0x00},
    {CC1200_CHAN_BW, 0x01},
    {CC1200_MDMCFG1, 0x42},
    {CC1200_MDMCFG0, 0x05},
    {CC1200_SYMBOL_RATE2, 0xC9},
    {CC1200_SYMBOL_RATE1, 0x99},
    {CC1200_SYMBOL_RATE0, 0x99},
    {CC1200_AGC_REF, 0x2F},
    {CC1200_AGC_CS_THR, 0xF8},
    {CC1200_AGC_CFG2, 0x60},
    {CC1200_AGC_CFG1, 0x12},
    {CC1200_AGC_CFG0, 0x84},
    {CC1200_FIFO_CFG, 0x00},
    {CC1200_FS_CFG, 0x12},
    {CC1200_PKT_CFG2, 0x00},
    {CC1200_PKT_CFG1, 0x00},
    {CC1200_PKT_LEN, 0x09},
    {CC1200_FREQOFF_CFG, 0x23},
    {CC1200_MDMCFG2, 0x00},
    {CC1200_FREQ2, 0x54},
    {CC1200_IF_ADC1, 0xEE},
    {CC1200_IF_ADC0, 0x10},
    {CC1200_FS_DIG1, 0x04},
    {CC1200_FS_DIG0, 0xA3},
    {CC1200_FS_CAL1, 0x40},
    {CC1200_FS_CAL0, 0x0E},
    {CC1200_FS_DIVTWO, 0x03},
    {CC1200_FS_DSM0, 0x33},
    {CC1200_FS_DVC1, 0xF7},
    {CC1200_FS_DVC0, 0x0F},
    {CC1200_FS_PFD, 0x00},
    {CC1200_FS_PRE, 0x6E},
    {CC1200_FS_REG_DIV_CML, 0x1C},
    {CC1200_FS_SPARE, 0xAC},
    {CC1200_FS_VCO0, 0xB5},
    {CC1200_IFAMP, 0x0D},
    {CC1200_XOSC5, 0x0E},
    {CC1200_XOSC1, 0x03},
    {CC1200_PARTNUMBER, 0x20},
    {CC1200_PARTVERSION, 0x11},
    {CC1200_MODEM_STATUS1, 0x10},
    };


    我们卡1201配置如下:
    static const registerSetting_t preferredSettings[]=
    {
    {CC120X_IOCFG2, 0x06},
    {CC120X_SYNC_CFG1, 0xA8},
    {CC120X_DEVIATION_M, 0x47},
    {CC120X_MODCFG_DEV_E, 0x2F},
    {CC120X_DCFILT_CFG, 0x1E},
    {CC120X_PREAMBLE_CFG0, 0x8A},
    {CC120X_IQIC, 0x00},
    {CC120X_CHAN_BW, 0x01},
    {CC120X_MDMCFG1, 0x42},
    {CC120X_MDMCFG0, 0x05},
    {CC120X_SYMBOL_RATE2, 0xC9},
    {CC120X_SYMBOL_RATE1, 0x99},
    {CC120X_SYMBOL_RATE0, 0x99},
    {CC120X_AGC_REF, 0x2F},
    {CC120X_AGC_CS_THR, 0xF8},
    {CC120X_AGC_CFG2, 0x60},
    {CC120X_AGC_CFG1, 0x12},
    {CC120X_AGC_CFG0, 0x84},
    {CC120X_FIFO_CFG, 0x40},
    {CC120X_FS_CFG, 0x12},
    {CC120X_PKT_CFG2, 0x00},
    {CC120X_PKT_CFG1, 0x00},
    {CC120X_PKT_CFG0, 0x00},//FIX LENGHTH
    {CC120X_PKT_LEN, 0x09}, //packet len
    {CC120X_FREQOFF_CFG, 0x23},
    {CC120X_MDMCFG2, 0x00},
    {CC120X_FREQ2, 0x54}, //840M
    {CC120X_IF_ADC1, 0xEE},
    {CC120X_IF_ADC0, 0x10},
    {CC120X_FS_DIG1, 0x04},
    {CC120X_FS_DIG0, 0xA3},
    {CC120X_FS_CAL1, 0x40},
    {CC120X_FS_CAL0, 0x0E},
    {CC120X_FS_DIVTWO, 0x03},
    {CC120X_FS_DSM0, 0x33},
    {CC120X_FS_DVC1, 0xF7},
    {CC120X_FS_DVC0, 0x0F},
    {CC120X_FS_PFD, 0x00},
    {CC120X_FS_PRE, 0x6E},
    {CC120X_FS_REG_DIV_CML, 0x1C},
    {CC120X_FS_SPARE, 0xAC},
    {CC120X_FS_VCO0, 0xB5},
    {CC120X_IFAMP, 0x0D},
    {CC120X_XOSC5, 0x0E},
    {CC120X_XOSC1, 0x03},
    }

    请帮忙看看。
  • 实验结果的差异也麻烦一并提供,越详细越好,我看看能不能找实验室的同事测一下
  • 我们自己设计的板卡1201发送数据:

    0x00、0x01、0x02、0x03、0x04、0x05、0x06、0x07;

    0x01、0x01、0x02、0x03、0x04、0x05、0x06、0x07;

    0x02、0x01、0x02、0x03、0x04、0x05、0x06、0x07;

    0x03、0x01、0x02、0x03、0x04、0x05、0x06、0x07;

    0x04、0x01、0x02、0x03、0x04、0x05、0x06、0x07;

    。。。。。

    实际数据就是八个字节,但是配置参数PKT_LEN=9,不知道为啥??如果设置为8,接收端也设置为8,则接收端收到的数据就出现乱续丢数据问题。



    使用开发板1200接收数据,接收的配置参数PKT_LEN也必须设置为9。接收收到的数据头部会多出来一个byte 0x00,发送10000个包,接收端也可以正常收取1000个包,不知道为什么接收头部多出一个00?

    11:45:25.337 | 00 00 01 02 03 04 05 06 07 | 0

    11:45:25.391 | 00 01 01 02 03 04 05 06 07 | 0

    11:45:25.447 | 00 02 01 02 03 04 05 06 07 | 0

    11:45:25.503 | 00 03 01 02 03 04 05 06 07 | 0

    11:45:25.558 | 00 04 01 02 03 04 05 06 07 | 0

    11:45:25.614 | 00 05 01 02 03 04 05 06 07 | 0

    11:45:25.670 | 00 06 01 02 03 04 05 06 07 | 0

    11:45:25.726 | 00 07 01 02 03 04 05 06 07 | 0

    11:45:25.782 | 00 08 01 02 03 04 05 06 07 | 0
  • CHAN_BW为什么设置为 0x01 ?为什么使用零中频?你的问题我发布到了这边:e2e.ti.com/.../3027038
    你可以在英文那边直接更新,进度会快一点,或者等我后续搬过来