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.

[参考译文] TRF7964A:即使 RX 成功完成,FIFO 也为空

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

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/1066657/trf7964a-fifo-is-empty-even-if-rx-completes-successfully

部件号:TRF7964A
“线程”中讨论的其它部件: TRF7970A

您好,

我们似乎与相关讨论的原始作者有类似的问题,尽管 IC 略有不同。

使用 IRQ_srx 中断时,ISO15693命令序列成功完成,但 FIFO 状态寄存器的以下查询将产生零字节供读取。 后续命令的问题仍然存在。

正如相关螺纹中所述,并非我们所有的 PCB 都表现出这种行为,但我们发现故障率约为30%。 通过粉末化 IC,可以重现并解决此问题。

我们已经尝试了书中的所有技巧,通过配置更改,重新初始化和在所有可以想象的地方应用慷慨的等待状态来避免这个问题,但迄今为止似乎没有任何作用。

遗憾的是,最初的讨论没有对此问题做出解释或解决方案,我们仍然对这个问题能否得到解决感到好奇。

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

    您好,

    你提到的线程非常旧,我不知道如何解决。 与此同时,我也不知道有类似的问题。

    请提供有关系统的更多信息。 使用哪种接口,SPI 与 SS? 哪种 MCU 和固件? 固件是否基于我们的一个示例?

    如果可用,跟踪 SPI 与定时信息的通信可能会有所帮助。

    此致,

    海炸

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

    您好,Helfried,

    感谢你的答复。 我附上了一个 PDF 文件,其中包含一些 SPI 跟踪,详细说明了我们的问题。

    我们使用的 SPI 和 SS 时钟速度为2 MHz。 我已尝试提高和降低 SPI 时钟速度(所连接的迹线为1 MHz),但没有结果,问题仍然存在。 MCU 固件是完全自定义的,但遗憾的是不是基于任何示例。 与默认(POR) TRF7964A 配置的偏差非常小,但:

    • SYS_CLK 控制寄存器-> 0x11 (13.56-MHz 晶体)
    • 中断掩码寄存器-> 0x1E (禁用 FIFO 水印中断,与我们的用例无关)

    这些寄存器是在 TRF7964A 初始化序列结束时按照数据表中的说明编写的(第 45)。

    如果您有任何建议或需要更多信息,请告诉我。

    e2e.ti.com/.../TRF7964a.pdf

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

    您好,

    从你提供的时间来看,对我来说还可以,这个部分似乎还可以。

    TX 启动 IRQ 和 RX 结束 IRQ 之间会发生什么情况? 是否按照常见问题第4.6章中的说明使用直接命令0x0F 清除了 FIFO?

    https://www.ti.com/lit/sloa246

    如果此处尚不可用,请单击文档“固件设计提示”的链接:

    https://www.ti.com/lit/sloa159

    即使是 TRF7970A,本文档也对 TRF7964A 有效。

    此致,

    海炸

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

    您好,

    感谢您的所有建议。 读取 IRQ 状态寄存器后,FIFO reset Direct 命令大约15 us 发出(请参阅随附的图像)。 我找不到有关计时限制的任何信息,但通常在读取 IRQ 状态寄存器(对于库存命令) 4毫秒后才声明 RX IRQ,因此我认为这是安全的。

    斯托拉158的第7.2和7.7节有一些关于与 SS 的 SPI 的评论,引起了我的注意:

    “如果直接命令是 SPI 通信中的最后一个操作,则 SS 引脚会变高。 另一个
    发生这种情况后,必须发送时钟脉冲。”和“所有直接命令函数都需要有额外的 DATA_CLK 周期,才能使从机选择 l 行高企。”

    例如,重置 FIFO 命令就是明显的例子。 我想知道这是否也适用于 TRF7964a。 如果是,在 CS 达到较高的频率之前或之后是否需要额外的时钟周期。 我在直接命令字节后尝试了“虚拟写入”,因为使用 SPI 接口,要实现一个额外的时钟周期有点困难。 但这似乎没有任何改变,无论好坏。

    同一文档中的第7.5节提到 FIFO 读取操作需要 SPI 时钟极性更改。 如果我错了,请纠正我的错误,但 TRF7964a 的情况似乎不是这样。 我们会看到迹线中的“一些”数据,只是无法正确采样。

    我认为,我们的代码中已观察到所有其他设计提示和勘误表(如果适用)。

    谢谢

    Björn

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

    你好,布恩,

    正确的是,TRF7964A 不需要更改 SPI 时钟极性。

    我发现以下旧 E2E 线程,表示 TRF7970A 初始化期间的计时可能会导致与您报告的类似问题:

    https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/753240/trf7970a-trf7970a-reading-0-bytes-from-fifo

    也许这是你可以检查的...

    此致,

    安德烈亚斯

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

    安德烈亚斯您好

    非常感谢您挖掘这条线程。 我重新检查了我们的初始化例程,但软件初始化和空闲命令相隔只有几微秒,然后在完成配置之前有5毫秒的长时间延迟。 随后是发出任何命令前的15毫秒长时间延迟。 但是,我尝试将两个直接初始化命令的单独 SPI 事务转换为一个。 不幸的是,这并没有改变任何东西,我仍然可以让 RFID 读写器“冻结”,因为没有更好的词。 而且,任何数量的(重新)初始化都无法使其再次正常工作,因此需要一个粉末循环来执行此操作。 休息时间也相当长(以秒为单位)。

    谢谢

    Björn

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

    在这里做一点螺纹起伏。

    与此同时,我们对硬件进行了一些修改,这些修改主要与芯片电源相关,并启用信号处理。 我们认为的事情可能会因某种原因导致任何问题。 不幸的是,这一切都不会让我们走向任何地方,我们仍在为消除这一问题而挣扎。

    现在,我们想知道 TI 是否在电路图和/或软件审查方面提供支持。 如果这不是提出此类请求的正确地点,我们将非常感谢被推荐给相应的联系人。

    谢谢

    Björn

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

    您好 Björn…

    如果需要,我可以查看您的原理图和软件,但我无法保证我可以解决问题。

    此致,

    安德烈亚斯

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

    您好 Björn…

    如私人聊天中所述,有必要初始化值为0x00的 NFC 目标检测级别寄存器(0x18),以避免在 RX 完全中断后 FIFO 状态寄存器(0x1C)中此设备出现0字节的错误行为。 TRF7970A Silicon Errata (www.ti.com/.../SLOZ011)的“Device#B08”项目 和 TRF7970A 数据表(www.ti.com/.../trf7970a)的第6.11章步骤7中记录了此错误及其解决方案。 由于 TRF7964A 文档中缺少此信息,我将请求相应的更新。

    此致,
    安德烈亚斯