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:FRx 频闪灯从 RX FIFO 错误长时间转换为空闲。

Guru**** 2524550 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/1083220/cc1200-long-transition-from-rx-fifo-error-to-idle-on-frx-strobe

部件号:CC1200

有时,当发出 FRx 频闪灯时,CC1200将从 RX FIFO 错误状态过渡到空闲状态的时间超过10秒。

我只是在从 RX FIFO 错误转至空闲时才看到这种情况。  Rx 至空闲状态正常。

我是否应该查找可能导致此错误的特定条件集?

我刚刚开始进行故障排除,可以使用一些指导。

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

    这应该是不可能的。 CC1200状态由状态机控制,所有转换都是确定性的。

    您能否提供代码片段,显示如何检查错误并发送闪灯?  

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

    在 FPGA 中执行序列,以便通过一组 SPI 命令对 VHDL 状态机器进行排序。

    顺序为:

    1.读取 reg 0x02并保存状态

    2.如果状态= 0x06, 则读取0x3A,否则读取0x36

    3.读取 reg 0x02,直到状态= 0x00

    同时在执行序列时运行计时器,

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

    您在这里是否引用 了 https://www.ti.com/lit/pdf/swru346中“表4:SPI 地址空间”所涵盖的寄存器地址 ? 如果是这种情况,为什么要读 sidle/SFRX?

    此外,不建议使用投票寄存器,因为这可能会影响敏感度(如果在接收时完成投票)。 是否可以保留与示例中相同的整体代码?

    为什么选择 FPGA? 我假设您已通过读回寄存器并检查/验证值来检查 SPI 接口是否工作。

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

    是指表4中的寄存器地址。

    阅读谈话/SFRX 以发布频闪灯。   

    接收时未执行此操作,这是到空闲的过渡,以重新配置 CC1200。  轮询将确定 CC1200状态何时已过渡。

    这是一种工作设计,正在成功实施甚高频/超高频无线电接收器。  所有与 CC1200的 SPI 通信均已通过验证。

    当 CC1200接收4FSK 固定长度数据包时,发现此调试偶尔出现故障。

    您所指的是什么示例代码?

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

    那么,您所说的是,如果发生 FIFO 错误,并且您正在使用 SFRX,MARCSTATE 将在报告空闲前报告10秒的 FIFO 错误?

    请显示序列的 SPI 图解,因为如果 SPI 符合 SPEC,则不可能这样做。 另请注意,SFRX 只能是空闲状态下的问题,因为实际上已报告 FIFO 错误。

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

    我不是直接阅读 MARCSTATE,而是在 SPI 交易期间查看状态。  在这种情况下,我正在读取寄存器0x02。

    返回状态为 RX_FIFO 错误时,我发送 SFRX 并读取 reg 0x02,直到报告空闲状态。  有时,根据正在运行的持续时间计时器,此时间大于10秒。

    我确实注意到我的状态机正在为所有频闪灯进行16位传输。  我纠正了这一问题以执行8位传输,它似乎已经解决了这个问题。

    在 SFRX 导致问题后,似乎发送了额外的字节。

    找到根本原因。

    由于逻辑错误,我的 SPI 状态机在闪灯后未执行 REG 读取。  已修复此问题并正在正常工作。

    感谢您的支持