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.

[参考译文] TRF7960A:接收数据时 FIFO 满

Guru**** 2391215 points
Other Parts Discussed in Thread: TRF7970A

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

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/849462/trf7960a-fifo-full-while-recieving-data

器件型号:TRF7960A
主题中讨论的其他器件:TRF7970A

您好!

您好!

使用 TFR7970的读取多个块命令从标签读取数据时、FIFO 溢出。 如何克服这个问题并读取所有块(比如60), 到目前为止,我能够读取的块高达20-25。  

附件是从标签读取时的 SPI 数据。

谢谢、此致、

Vamsi

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

    您好、Vamsi、

    我们的软件专家将在接下来的几天内为您提供帮助。 但根据我的理解、您必须设置 FIFO 水印 IRQ 并在 FIFO 满之前在中断服务例程中清空 FIFO。

    此致、

    Helfried

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

    您好、Helfried、

    感谢您的回答!

    FIFO 中已存在的数据会发生什么情况,如何知道它将会满?

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

    您好、Vamsi、

    您能否提供您正在使用的固件的信息。 您是否使用了我们的一些示例固件?

    如果不是、您可以在 TRF7970A 常见问题解答中找到一些信息、该常见问题解答还包含固件示例的链接:

    http://www.ti.com/lit/an/sloa246b/sloa246b.pdf

    此致、

    Helfried

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

    您好、Helfried、

    我们正在使用 TRF7970实施我们自己的固件来读取15693兼容标签。

    我在接收到中断后尝试复位 FIFO、它能够读取127*2字节的数据。

    但我在读取 FIFO 时面临的挑战是、我从同一标签接收的用于多块读取的数据不是恒定的。

    在使用长度0x7F 读取 FIFO 时、某些块丢失、 有时我会使用相同的长度获取所有数据。

    如果长度增加到0x9F 及以上、我 将获得用于第一个中断的所有块(0-31)、并且在复位 FIFO 之后 、我将读取(32-62)用于中断2。

    请查看 SPI 数据图片、了解各种情况:

    情况1:读取长度为0x7F 的 FIFO 缺失数据块(52-62):

    情况2:读取长度为0x9F 的 FIFO -能够在127字节后使所有块重复。

    从0-31个块:  

    从块32-61:

    我的主要问题是我如何知道起始数据字节(从 FIFO 中块1的数据开始的位置),因为 FIFO 中起始字节的位置总是在变化。 请查看以下图片、了解 FIFO 中的字节位置变化。

    事务1:

    事务2:

    红色1表示 FIFO 中第一个块的位置。

    黄色表示 gap.please 查看两个事务中第一个块的差异。

     

    如果所有块/块的数据都是0x00000000、我将如何从 FIFO 中提取数据。

    是否有任何命令或其他命令来知道 FIFO 中第一个字节的位置。

     

    谢谢、此致、  

    Vamsi

     

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

    您好、Vamsi、

    该器件具有可在寄存器0x14中配置的水印。 在 您的情况下、我建议将它们设置为96字节用于 TX、然后、一旦您收到状态为0x6C 的 IRQ 中断、您就必须优先处理 IRQ 中断。 读取 FIFO 状态以获取 FIFO 中当前的字节数、然后连续读取 FIFO 中的字节数。

    之后、如果剩余的数据不超过水印、您将得到一个0x40、指示您可以读取其余数据。 如果仍有大量数据、您可能会得到另一个0x60中断。 只有当你得到0x40中断时、它才意味着你获得了所有数据。

    这已编程到我们的示例代码中、您应该参考它们。 您可以在我们的常见问题解答指南 http://www.ti.com/lit/pdf/sloa246中找到有关示例代码的详细信息

    请注意、我们无法深入调试定制软件解决方案、因此本指南介绍了我们可以提供的功能。 您将需要参考我们经过全面开发和测试的软件、以了解有关如何实施该实施的更多详细信息、或者真正为您的利益、 将合适的软件移植到您的应用中、并利用我们已经花费的无数小时的开发工作、通过提供有效的解决方案、让您的生活更轻松。 )

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

    您好、Ralph、

    感谢您的支持!

    您能不能告诉我有什么办法可以找到

    如果所有块/块的数据都是0x00000000、我将如何从 FIFO 中提取数据。

    是否有任何命令或其他命令来知道 FIFO 中第一个字节的位置。

    谢谢、此致、

    Vamsi

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

    您好、Vamsi、

    FIFO 是先入先出缓冲器。 读取的第一个字节是字节1。 没有位置概念。 您只能按顺序从第一个接收到的字节读取到最后一个接收到的字节。