主题中讨论的其他器件:TRF7970A
您好!
您好!
使用 TFR7970的读取多个块命令从标签读取数据时、FIFO 溢出。 如何克服这个问题并读取所有块(比如60), 到目前为止,我能够读取的块高达20-25。
附件是从标签读取时的 SPI 数据。
谢谢、此致、
Vamsi
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.
您好、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中找到有关示例代码的详细信息
请注意、我们无法深入调试定制软件解决方案、因此本指南介绍了我们可以提供的功能。 您将需要参考我们经过全面开发和测试的软件、以了解有关如何实施该实施的更多详细信息、或者真正为您的利益、 将合适的软件移植到您的应用中、并利用我们已经花费的无数小时的开发工作、通过提供有效的解决方案、让您的生活更轻松。 )