工具与软件:
您好!
我目前正在处理一个使用 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 模式下空载?
谢谢!