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.

[参考译文] CC1125:同步串行模式中的位/字节同步

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1323785/cc1125-bit-byte-sync-in-synchronous-serial-mode

器件型号:CC1125
主题中讨论的其他器件: CC1020CC1200、CC1310

您好!

我在´ve 论坛上了解到、CC1125上的同步字检测对于字节同步和位同步至关重要。

帖子:

e2e.ti.com/.../2655283

您能确认这一点吗?

由于 我们的协议中的同步字与 CC1125不兼容、因此我们将其设置为0x55 (2字节)。

CC1125在其检测到前导码中的这2个字节时立即开始为数据计时。

有时仍然会显示位错误:

(黄色和绿色:CC1125的输出、紫色:CC1020数据输出)

绿色数据输出的右侧显示错误、而 CC1020在无线输出前导码时没有错误。

将同步字检测阈值从0x1F 设置为0x0B 大有裨益、但错误仍然存在。

是否有办法优化同步?

谢谢!

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

    如果我理解正确,您得到的是由0x55 0x55 0x55、data1、data2、.............组成的数据包。 ,对吗?

    CC112x 需要前导码(通常是0x55或0xAA)序列、后跟同步字。

    前导码用于无线电允许 AGC 趋稳等、而 SYNC 字用于字节同步、以便无线电知道数据包何时到来。

    建议的数据包格式为:0x55、0x55、0x55、SYNC1、SYNC2、 SYNC3、SYNC4、data1、data2、data2 ...............

    在本例中、RX 将查找一个4字节的同步字、而只有一个位置可以。

    使用您的格式、您可以选择将同步字设置为11或16位:

    使用16位 SYNC、在 SYNC 之前没有任何前导码、并且 AGC 在同步结束之前没有时间趋稳。 您可能找不到 SYNC。

    将 SYNC 设置为11位意味着理论上您在同步之前具有5位前导码。 但是、由于前导码将是01010和 SYNC 101010101、因此它很可能会发现 SYNC 位于错误的位置。

    您的最佳选择是使用盲模式、 让您的应用程序查找数据。 但是、确定同步字中的最后一位停止位置和数据开始位置会很困难。

    Siri

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

    感谢 Siri 的详细回答。

    我们的传统数据包由82字节前导码(0x55)和5字节同步字(0xFF、0xFF、0xFF、0xFF、0x01)组成。

    由于 syncword 具有如此糟糕的自相关性,由5个字节组成,我们自己进行 syncword 搜索。

    因此、我们将 CC1125的同步字设置为2字节0x55。

    当发生这些位错误时、CC1125已输出信号、因此已检测到同步字0x55 0x55。

    同步似乎失败。

    正如我提到过的、将阈值设置为0x0B 确实有很大帮助。 因此、我假设这些位错误与同步搜索过程有关。

    我们的方法有什么问题吗?

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

    我没有 CC1020、但目前也没有 CC1125、但我使用 CC1200进行一些测试、因为当检测到这种"不良"数据包格式时、该设备的行为应该与 CC1125相同。 本周晚些时候、我可以再次使用 CC1125进行测试。

    在 TX 侧、我使用了一个 CC1310、并让它发送以下数据包:

    (0x55 x 82)+ 0xFFFF01 + 0x0102030405

    接收器设置为正常 FIFO 模式、SYNC 字设置为0x555555 (4字节)

    由于0x55重复了82次、我们不知道无线电在前导码中的确切位置会找到同步。

    这会导致 RXFIFO 中接收多个不同的数据包、具体取决于其查找 SYNC 的位置。

    下图显示了要放入 RX FIFO 的不同字节、这取决于字节同步完成的位置:

    I 发送100个数据包、收到100个数据包。 所有接收到的数据包都是上述内容之一、在接收0x55序列中我没有看到任何位错误:

    这意味着应该可以使用正常 FIFO 模式并将同步字设置为4 x 0x55、然后在 FIFO 中搜索以查找0x7F、0x5F、0x57或0xFF。 根据你发现的所有0x55之后的第一个字节、你知道负载在哪里、以及如何对它进行位移以得到准确值。

    Br

    Siri

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

    感谢您的测试 Siri!

    如果您也可以使用 CC1125进行测试并共享寄存器设置、那会很友好。

    由于我们使用的是同步串行模式而不是 FIFO 模式、是否可能发生位错误?

    4字节的同步字检测在同步方面是否优于仅2字节? (除了降低检测错误同步字的风险)。

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

    通常、您可以通过使用数据包模式而不是同步来实现更好的射频性能。 串行模式、因此我强烈建议您这样做。

    由于您具有82字节的前导码、因此我没有理由只查找2、并可能出现错误的同步检测。

    我通过了 CC1125测试、没有任何问题。

    但是、我不知道您的系统需要哪些射频参数。

    我使用 Studio 中的1.2 kbps 设置进行了测试、并在下方突出显示了我的更改:

    我还测试了相同的设置、但使用了串行模式、那里的数据看起来也是正确的:

    PS!  

    交换数据和时钟的命名

    Siri