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:在 TX 模式下不会从 TX FIFO 发出数据

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1381062/cc1101-no-data-sent-out-of-tx-fifo-in-tx-mode

器件型号:CC1101

工具与软件:

您好!

我目前正在处理一个使用 CC1101收发器的项目、但我只剩一点时间了。

芯片不发送存储 在 TX FIFO 中的数据。

总体而言、控制器和芯片之间的一切都正常工作。

控制器设置所有 配置寄存器和 PATABLE 值、然后读回这些寄存器、以确保它们都与所需的值对应。

当 CC1101切换到 TX 模式时、频谱分析仪以编程的频率并使用 在 PATABLE 中设置的适当振幅选择传输频率。

当我尝试发送数据时、问题就来了。 TX FIFO 只是在填充且 CC1101不会发送数据包。

得出这一结论的两点是:

1 -我将 GDO0_CFG 寄存器设置为0x06:但在该模式下 CC1101不会触发中断。

我尝试将  GDO0_CFG 设置为其他设置(如0x02和0x3F)、在这些模式下、控制器在 GDO0引脚上接收 CC1101的中断。 因此中断过程在 CC1101和控制器之间可以正常工作。

在第8次发送到 FIFO 期间、控制器编程进入等待状态。

CC1101此时提供的相应 STATUS 字节为0x32。

因此、简单来说、CC1101已就绪、实际上处于 发送模式并且 TX FIFO 已满。

控制器正在等待 FIFO 中的空闲字节发送新数据、但 FIFO 永远不会被卸载。

数据包长度设置为无地址的变量。

第一个字节设置为8、后跟8个其他字节。 因此、每个数据包总共发送9字节到 TX FIFO。

这样我们就完成了9字节 x 7的传输、TX FIFO 中总共有63个字节。 这解释了为什么在第8次发送时 TX FIFO 已满。

现在的问题是:

执行初始化序列之后、芯片处于空闲模式。

然后、我的程序会发送 TX FIFO 中的9个字节、并向 CC1101发送 STX (0x34)命令选通。 (TX 状态在结束序列之前被确认。)

在发送 TX FIFO 中的字节之前、正确操作还是必须将芯片设置为 TX 模式?

有人想知道什么因素不会导致 TX FIFO 在 TX 模式下空载?

谢谢!

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

    我曾尝试在发送数据字节之前设置 TX 模式、但得到的结果相同。

    我尝试 在控制器序列中更改 TX FIFO 满阈值、因此更改了状态字节。 (例如:必须有4个以上可用才能发送新的。 这将返回一个状态字节0x24 (36))

    此外、main POST 的校正...收到的状态不是0x32、而是32。

    因此、它是0x20十六进制(32 DEC)。

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

    我终于找到了麻烦。

    数据包的第一个字节包含的值为0、而不是本来应该包含的8。 (与方案有关的问题)

    这就是 TX FIFO 未被卸载的原因。