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.

[参考译文] CC1101:CC1101前导码问题。

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1318289/cc1101-cc1101-preamble-question

器件型号:CC1101
Thread 中讨论的其他器件: CC113L、CC1200、CC1120
您好!
我正在寻找有关 CC113L 和 CC1101芯片的设计支持。
器件的一些示例。
我已经在项目中成功使用芯片接收多个不同的射频信号、并一直使用数据包处理。
CC113L 的数据包处理要求前导码是交替位、同步是为了匹配寄存器定义-都良好。
但是、要求我添加的最新版本包括一个已编码的信号双相(同时对前导码和同步进行编码)。
在此特定情况下、编码的前导码+SYNC 为0xFFFE、转换为原始数据(NRZ、速率的两倍):
0xCCCCCCCD
0b110011001100110011001100110011001100110011001100110011001100110011001101
如您所见、此处的前导码不是由交替位组成。 因此芯片永远不会触发接收。
读取 CC1101数据表、我看到一个人可以在 PKTCTRL1寄存器中设置前导码质量阈值(PQT)。
如果我更改硬件以使用 CC1101并将 PQT 设置为0、是否能够接收此类数据包?
谢谢!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好

    即使前导码不是101010序列、CC1101和 CC113L 都可以接收数据包。

    因此、对于 CC1101、要求 使用 PQT、因为这要求前导码为1010110

    前导码用于位同步和 AGC 趋稳等、0x55或0xAA 前导码比0xCC 更好、但两者都可行。

    如果前导码为0xCCCC、同步字为0xCCCS、则可能最大的问题应该是您只能使用2字节的同步字而不是4、 而且前导码和 SYNC 是如此相似、所以在错误位置找到 SYNC 的概率非常小。

    Siri

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

    你好、Siri、谢谢你给我回复。

    CC113L 数据表多次指出、前导码需要是交替位序列。

    如果前导码为0xCCCC (0b110011001100...) 芯片如何实现位同步?

    我不知道您是否实际使用了带此前导码的芯片、但我上周进行了详细测试、只是无法接收到任何带0xCCCC 前导码的数据包。 其他项保持不变。

    同步与前导码类似根本不是问题。 我在现场有前导码为0xAAAA、与0xAAAS 同步的产品、可实现出色的数据包接收速率。

    我希望在禁用 PQT 的情况下使用 CC1101时、芯片不会太关心前导码。

    您能否说明一下您是否实际使用了带此前导码的芯片?

    谢谢!

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

    我在 CC113L 数据表的任何地方都没有找到前导码需要交替位的序列才能接收。

    数据表显示以下内容:

    "前导码模式是一个1和0的交替序列、接收器用于位同步。"  

    这意味着 CC113L (和 CC1101)发送的前导码为0101010101、但并不意味着如果前导码不同、CC113L 无法接收。 它只是不能传输不同的前导码。

    此外、所有 RX 特性都 是用它(0x55或0cAA)作为前导码来完成的、因此如果您在发送器上更改它并尝试使用 CC113L 进行接收、灵敏度可能会与数据表中所述的数字不同。

    我刚刚在 RX 模式下测试了 CC113L、并使用 CC1200作为发送器。 CC1200被编程为发送0xCCCCCCCC 作为前导码。

    同步字为0xD391D391。 CC113L 能够接收所有数据包。

    将同步字更改为0xCCCD、只需寻找一个2字节的同步字、就可以大大减少接收到的数据包数量、这是我在上一篇文章中介绍的原因。

    如果您使用 SmartRF Studio 测试 CC113L 并将其设置为使用2字节的同步字0xCCCD、您将看到它收到了很多错误数据包、即使您根本不传输任何数据也是如此。

    如果您使用正确的4字节同步字、 即使前导码为0xCCCCCCCC、接收也没有问题

    就这种行为而言、CC1101和 CC113L 没有区别。

    CC1101具有 CC113L 没有的 PQT 功能、但仅当使用0x55或0xAA 前导码时才可以使用该功能。

    Siri

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

    再次感谢您。

    我同意您的所有陈述、包括带有短前导码的虚假数据包。 一切都好。

    但是、我做的测试与您做的完全相同、不同之处在于发送器的前导码为0xCCCC (而 SYNC 为0xCCCD)。 我得到的数据包恰好为0个。 测试数小时。

    但感谢您花时间解决这个问题。 根据您的回答、似乎是芯片"能"接收到、但效果很差、用处不大。

    谢谢。

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

    下面是我的测试结果。

    如果发送了20个数据包、我收到了19个数据包正常、8个数据包不正常。 第20个数据包很可能没有收到、因为无线电正忙于接收虚假数据包。

    将 SYNC 模式更改为使用 CS 门控(仅接受信号强度高于可编程阈值的同步字)我收到了所有20个数据包都正常(没有错误的数据包)。

    CS 门控的缺点是您不会接收 RSSI 低于阈值的数据包、因此阈值只是 "限制"灵敏度。

    Siri

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

    谢谢、Siri。

    您是否可以将前导码更改为2个字节? 0xCCCC?

    我无法将我的字节增加到4字节。 所以我无法像您一样进行测试、但使用2字节前导码、我似乎无法正常工作。

    如果我将芯片只基于 CS 进行解码、我会收到数据、并且可以手动查找前导码和同步、但我想使用数据包处理。

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

    尊敬的 Siri:

    为了方便您参考、我现在尝试了4字节前导码(0xCCCCCC)、它的工作效果要好得多。

    但是、我的应用程序不支持如此长的前导码-发送器不是由我完成的、我无法修改它。

    德州产品系列中是否有任何其他解决方案可以帮助我解决此问题?

    谢谢!

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

    大家好。

    另外一个信息:我回到了2字节前导码、当我将 AGCTRL2设置更改为0xFB 时它可以正常工作。 为什么? 我不知道。 AGCCTRL1设置为0x08且 CS 检测被禁用。

    我尚未进行完整的射频测试、但现在我可以获得相当数量的数据包。

    背后有什么原因吗?

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

    我将让我们的射频团队的一些人回答有关 AGC 的问题、但我想由于前导码周期用于使 AGC 趋稳、更改 AGC 参数可能会影响性能。

    Studio 中的建议设置基于4字节长前导码。 当您只有2个字节,而不是0到>1到0个事务时,可能会有其他设置可以提供更好的结果。

    Br

    Siri

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

    尊敬的 Felipe:

    对我来说、这意味着 AGC 不能正常工作、而是将增益设置得太高。 这是您正在使用的前导码和同步字预期的结果。  您是否也在上次测试中更改了 AGCCTRL0?

    仅出于测试目的、您是否可以使用默认 AGC 设置、将前导码设置为0x5555、将同步字设置为0xD391、然后向我们更新其进展情况?

    此致、

    Hg

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

    你好。

    在今天进行进一步测试时、我发现的"最佳"配置是:

    AGCCTRL2 = 0xF7、       
    AGCCTRL1 = 0x08、       
    AGCCTRL0 = 0x11

    两点说明:波特率为19.2Kbps 并且我不使用载波侦听。

    SmartRF 中没有此波特率的默认设置、但如果使用38.4kbps 设置、则无法获得任何帧。

    更改 AGCCTRL0时、我的性能没有看到太大变化。

    但 AGCCTRL2_MAX_DVGA_GAIN 中的0b11以外的任何值都会导致该信号中断。

    我可以在 AGCCTRL2_MAX_LNA_GAIN 上添加的最大增益为5。 任何较低的值(较高的增益)都会开始表现出性能迅速下降。 尽管数值7得出的结果仍然更好。

    这里有太多的组合需要尝试、我希望你可以指导我一些您希望最有效的设置、所以我会有一个起点。

    我没有运行你请求的测试,因为我一直使用曼彻斯特前置放大器(0xAAAA 和0x5555)与默认设置,他们工作正常。 由于使用0xCCCC 前导码、问题才会开始出现。

    侧注:我正在阅读这里的两行内容、较短的前导码可能需要不同的 AGC 设置、因为 Siri 提到默认设置是为4字节前导码构建的。 因此、我想知道您是否可以推荐特定的 AGC 设置、因为我不介意降低分组差错率。 我的所有项目都使用2字节前导码和2字节同步。 大多数是曼彻斯特(0xAAAA)、但有些是双相(0xCCCC)。 和波特率19,200,38400和76800。

    感谢您的帮助。

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

    我假设 CC1120/CC1200在这里效果更好、因为它们只需要4位前导码。

    对我来说、这似乎你限制了 AGC 可以使用的增益阶跃数、因此看起来稳定得更快。 但如果您采用该解决方案、我会运行 PER 随电平变动的情况和阻塞测试、因为摆弄 AGC 设置很可能会产生一些副作用。  

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

    好的。

    但我想 TI 至少提出一些初始设置供我尝试。 所有三个寄存器之间的组合太多了、我无法运行它。

    谢谢!

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

    尊敬的 Felipe:

    当我使用标准38.4kbps PHY 以及同步字和前导码运行数据包测试时、它会接收大约90%的数据包。

    您是否测量了发送器和接收器的频率误差?

    您使用的频率偏差和 RX 带宽是多少?

    此致、

    Hg  

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

    大家好。

    感谢您的分享。

    一旦降低了 AGC 设置、我也会得到大量数据。 谢谢!

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

    尊敬的 Felipe:

    这是一个非常有趣的对话、我想知道这对您有多好。

    我们使用 CC1200接收以 FFFE 开头的双相编码数据已经有很多年了、但是将 CC1200用作"射频接收器"、并将原始比特流输入到外部状态机来检测和提取实际数据。 这种方法效果非常好、我们可以在 测试设置中以-100dBm 提取99%以上的消息、但令我非常沮丧的是、我们没有使用 CC1200对实际数据进行解码。  

    遗憾的是、CC1200本机仅支持曼彻斯特编码/解码、不直接支持双相(尤其是考虑到在使用双相的大型细分市场中存在常见用途:-)、 但我喜欢您为前导码/同步 PATTEN 查找原始双相位流的方法(如果我了解正确执行的操作)。 (我假设您稍后会在软件中进行双相解码?

    我将需要一些时间来挖掘我们的 CC1200开发板,并在这种方法和我们的外部状态机之间进行比较:-)

    此致、

    马克·勒曼