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:打开频率偏移校正时,BER增加

Guru**** 2539500 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/633062/cc1200-ber-increase-with-frequency-offset-correction-on

部件号:CC1200

我们正在对使用CC1200的产品进行BER测试。 我们的符号率为4800,偏差约为2.4 kHz。 调制为4-GFSK。 信道滤波器宽约为19 kHz。

我们注意到,打开频率偏移校正会导致BER高于关闭校正时的BER。 发射器和接收器之间的频率误差小于100 Hz,因此在这种测试情况下不需要进行校正。 在最终产品中,我们需要使用校正,因为频率误差可能高达2-3 kHz,而CC1200可在校正关闭时容忍200-300 Hz的误差。

在测试中,我们传输带有随机内容的100字节数据包。 我们每个信号级别接收1000个数据包,信号级别在-60和-120 dBm之间扫描。

当频率误差校正关闭时,我们无法在高于-90 dBm的信号水平上看到比特错误,并且观察到BER性能水平至少为10^-6 (10^-6是BER图形中的电流限制,并考虑到发送的数据量)。 当我们在位错误上启用校正功能时,将开始出现,我们的BER将被限制为约10^-5。 我知道对于大多数应用来说,这仍然是一个良好的水平,但我们的参考设备是我们早期的一些产品,具有不同的硬件,它们能够在这些信号水平下实现无错误的性能。

我不知道为什么在打开校正时BER性能会下降?

我们的频率偏移校正设置是“通道滤波器后的FOC”,因此我们不使用/需要FB2PLL功能。 我们的前导码为21字节,前导码检测器打开,部分前导码也用于同步字。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您写的是发送数据包,但您测量BER。 这是否意味着您根据每个数字计算BER?

    您能否发布您使用的完整注册设置以避免任何疑问?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这意味着,由于在-90 dBm以上,我们不会因为无法同步而丢失任何数据包,并且所有错误都是数据包中的单个字符,因此即使我们无法访问解调器中的原始位,我们也能够计算位错误率。

    下面是我们配置的寄存器。 所有其它寄存器均为默认设置:

    注册   ADDR   值
    ===================================
    IOCFG3      0x00   0x06
    IOCFG2      0x01   0x19
    IOCFG0      0x03   0x00
    SYNC3      0x04   0xCC
    SYNC2      0x05   0xCC
    SYNC1      0x06   0xCC
    SYNC0      0x07   0x55
    SYNC_CFG1   0x08   0xAB
    SYNC_CFG0   0x09   0x00
    偏差_M   0x0A   0x7D
    MODCFG_DEP_E   0x0B   0x28
    DCFILT_CFG   0x0C   0x5D
    前导码_CFG1   0x0D   0x1F
    前导码_CFG0   0x0E   0x8A
    IQIC      0x0F   0xCB
    CHAN_BW      0x10   0x97
    MDMCFG1      0x11   0x40
    MDMCFG0      0x12   0x05
    Symbol_Rate2   0x13   0x5F
    symbol_rate1   0x14   0x75
    SYMBOL_RATE0   0x15   0x10
    AGC_REF      0x16   0x34
    AGC_CS_thr   0x17   0xEC
    AGC_GAIN_ADJUST   0x18   0x8E
    AGC_CFG2   0x1A   0x01
    AGC_CFG1   0x1B   0x51
    AGC_CFG0   0x1C   0x87
    FIFO和CFG   0x1D   0x00
    结算_CFG   0x1F   0x0B
    FS_CFG      0x20   0x14
    PKT_CFG2   0x26   0x00
    PKT_CFG1   0x27   0x03
    PKT_CFG0   0x28   0x20
    PA_CFG1      0x2B   0x37
    PKT_LEN      0x2E   0xFF
    IF_MIX_CFG   0x2F00   0x1C
    FREQOFF:CFG   0x2F01   0x00
    MDMCFG   2   0x2F05   0x0C
    FREQ2      0x2F0C   0x59
    FREQ1      0x2F0D   0x95
    FREQ0      0x2F0E   0xC2
    IF_ADC1      0x2F10   0xEE
    IF_ADC0      0x2F11   0x10
    FS_DIG1      0x2F12   0x07
    FS_DIG0      0x2F13   0xAF
    FS_CAL1      0x2F16   0x40
    FS_CAL0      0x2F17   0x0E   
    FS_CHP      0x2F18   0x28
    FS_DIVTWO   0x2F19   0x03
    FS_DSM0      0x2F1B   0x33
    FS_DVC0      0x2F1D   0x17
    FS_PFD      0x2F1F   0x00
    FS_PRE      0x2F20   0x6E
    FS_REG_DIV_CML   0x2F21   0x1C
    FS_spare   0x2F22   0xAC
    FS_VCO4      0x2F23   0x14
    FS_VCO2      0x2F25   0x00
    FS_VCO1      0x2F26   0x00
    FS_VCO0      0x2F27   0xB5
    IFAMP      0x2F2F   0x01
    XOSC5      0x2F32   0x0E
    XOSC1      0x2F36   0x03
    FSCAL_CTRL   0x2F8D   0x01

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    "这意味着,由于超过-90 dBm,我们不会因为无法同步而丢失任何数据包,并且所有错误都是数据包中的单个字符,因此即使我们无法访问解调器中的原始位,我们也能够计算位错误率。"

    不确定我是否理解正确。 您的意思是,对于低于-90 dBm的信号级别,您会收到数据包,但有位错误吗?

    为什么要将前导码的一部分作为同步字词运行? 如果将SYNC单词设置为前导码,则会增加因无法正确进行位同步而导致位错误的可能性。 如果您使用默认同步字词,您会看到相同的消息吗?

    FREQOFF_CFG = 0x30或FREQOFF _CFG = 0x33是否给出不同的结果?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    >不确定我是否理解正确。 您的意思是,对于低于-90 dBm的信号级别,您会收到数据包,但有位错误吗?

    当信号水平接近灵敏度水平(-120... -100 dBm)大量错误是由于完全丢失的数据包造成的。 因此,当BER是根据数据包错误率计算时,此类数据包中的所有位都被解释为丢失的位,但这会产生过于悲观的BER结果。 但高于-90 dBm (-90... -60 dBm)同步不会错过,CC1200始终接收数据包,错误是数据包中的字符错误,我们可以计算此类数据包的位错误率。 因此,在这些信号级别中,此方法可提供准确的BER。

    >您为什么要将前导码的一部分作为同步字运行? 如果将SYNC单词设置为前导码,则会增加因无法正确进行位同步而导致位错误的可能性。 如果您使用默认的>同步字词,您会看到相同的消息吗?

    我这样做是因为我在2017年10月4日之前的问题的回复中被要求这样做。 我无法使用CC1200的同步检测器从这种传统波形中搜索真正的同步字词,因为它是4级FSK调制的。 您的回复:

    "我建议将前导码的一部分设置为同步字,以确保位同步。 我的经验是,关闭同步字会导致性能下降。

    然后MCU必须在收到的数据包中找到SYNC ETC。"

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我现在还记得这个问题。 我在这里的假设是,只要你得到了同步,你就可以使用MCU在FIFO的位流/内容中搜索真正的同步字。 您将SYNC单词设置为0xCCCCCC55。 我假设0xCC是前导码,0x55来自哪里?

    我对灵敏度差有点好奇,但另一方面,内部符号上的调制指数较低,偏差应该较高以获得更好的性能。

    返回原始问题:
    您的系统中频率参考的精确度如何? 如果您有非常准确的参考,则无需激活免费补偿。 我仍想知道设置FREQOFF CFG= 0x30或FREQOFF _CFG = 0x33是否给出不同的结果?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们将运行一系列额外的测试,我将回到这个问题,但我已经可以告诉大家,偏差加倍对结果没有影响。

    关于频率参考;我们的40 MHz VCTCXO温度范围内为+-0.5ppm,老化时间为+-1ppm。 此外,我们还需要能够在现场对某些传统设备进行操作,并且它们的频率可以高达1-2 kHz (2.5 ... 5 ppm)。 甚至更多。 因此,根据我的理解,并根据我们使用CC1200进行的测试(频率误差校正关闭),我们确实需要校正。

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

    在一台CC1200上根据Vs输入功率电平与频率偏移测量。 结果将随附的Excel电子表格与所使用的注册设置一起显示。

    为所有频率偏移的每个输入功率级别传输100个数据包。 数据负载为10字节。 测量过程用了1小时20分钟。 正如您从电子表格中看到的那样,频率偏移可能至少为+/- 6 ppm。 这不包括FB2PLL。

    我已经开始使用1000个数据包和100字节有效负载进行0频率偏移测量。 准备就绪时(可能明天)提供此结果。

    e2e.ti.com/.../4.8ksps-4GFSK.xlsx

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    以下是每个测量值,使用1000个数据包和每个输入功率级别的100字节有效负载进行0频率偏移。

    0偏移时的输入电平(%)
    -120.0 100.0
    -119.0 100.0
    -118.0 100.0
    -117.0 100.0
    -116.0 100.0
    -115.0 99.0
    -114.0 97.4
    -113.0 70.1
    -112.0 29.0
    -111.0 11.5
    -110.0 3.5
    -109.0 0.5
    -108.0 0.6
    -107.0 0.6
    -106.0 0.1
    -105.0 0.0
    -104.0 0.0
    -103.0 0.0
    -102.0 0.0
    -101.0 0.0
    -100.0 0.0
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    当使用CC1200的产品在链路的两端使用时,我们能够在-105 dBm以上的信号电平上实现无错误接收,并启用频率错误校正(2F01=0x20)。 我们必须在同步字中将最后55个字节更改为CC,并使用严格的同步字检查级别2而不是1。 令我感到奇怪的是,据说只影响对SYNC词语的接受的参数对接收信息的有效载荷部分和发生的错误有着巨大的影响。 我要强调的是,我们从未遇到过任何同步问题,而且总是能找到同步字词。 但当我们更改与同步字接受相关的参数时,某些错误类型开始出现在有效负载中。 例如,很容易重现的非常常见的错误大约是错误接收的有效载荷的10个字符。 因此,此时CC1200内部似乎已关闭或打开某些功能。

    另一种情况是,我们需要对传统的4FSK调制解调器进行操作,其中基带滤波是根升高余弦(BT=GUSA) 0.2 ,而不是高斯。 所有其他参数保持不变(偏差,符号速率,随机内容的数据包结构)。 我知道,在这种情况下,CC1200的性能可能没有特征或测试,但您能否就推荐的寄存器设置提供一些建议? 我们目前看到,相对于使用CC1200的RRC滤波4FSK发射器,BER性能比使用CC1200的TX更差,这对我来说并不奇怪,因为滤波器不匹配。

    总结一下:CC1200 TX/RX对之间的性能非常好,尽管我不完全理解同步字参数为什么会影响负载错误。 BER比RRC滤波的4FSK发射器更差。