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.

[参考译文] TRF7970A:Linux 驱动程序问题 TRF7970A_RSSI_OSC_STATUS 寄存器(0x0F)读取为0xFF

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

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

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/1039347/trf7970a-linux-driver-problem-trf7970a_rssi_osc_status-register-0x0f-read-as-0xff

器件型号:TRF7970A

您好!

我们在使用 TRF7970A 的一些定制板上遇到了问题、并在此链接中打开了一个线程、之后:  

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/1034297/trf7970a-irq-does-not-occur/3842614

通过在 Linux 端调试驱动程序代码、我们已经确定了代码中出现错误的位置:

 *它读取 TR7970A_RSSI_OSC_STATUS 并屏蔽其中的2:0位以确定 IS 射频字段为 true 或 false。  

在我们的情况下、 TR7970A_RSSI_OSC_STATUS 被读取为0xFF、其中的前三位会导致*为_RF_field = true、这会导致在返回-EBUSY 的驱动程序代码的1309行出现问题。

最后、我们通过删除以下内容来解决了此问题:

RET = tf7970A_read (TRF、TRF7970A_RSSI_OSC_STATUS、&RSSI);

 在  任何情况下强制*为_RF_field = false。

现在、我们可以成功读取标签、而不会出现任何问题。 您是否知道我们为什么从读取 TRF7970A_RSSI_OSC_STATUS 寄存器中获取0xFF 以及如何修复它? 我们不确定是否要从驱动器中移除这条线路、这是否会在未来导致我们的系统中出现任何故障?

顺便说一下、此勘误表是否与此问题相关、我们是否需要根据此勘误表修改驱动程序代码以及如何操作?

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

    您好、Utku、

     读取 RSSI 水平和振荡器状态寄存器(0x0F)时、必须有问题。 永远不会发生0xFF 的值。 至少位7将始终读为"0"。 我也不会期望所有 RSSI 值为'1'。 我已经使用我的读取器(无 Linux 驱动程序)进行了检查、我从该寄存器读取了0x40、这是可以的、因为它显示了振荡器是稳定的。

    您在勘误表中提到的内容不适用于此问题。  

    您应该尝试修复该寄存器的读取问题。 我不建议删除寄存器读取、因为根据我的理解、这是为了在开始发送之前检查另一个读取器的字段是否存在。

    此致、

    Helfried

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

    您好、Helfried、

    我们不知道为什么寄存器被误读。 你有吗? 我们使用的是 TI 的 Linux 驱动程序、但没有对其进行更改。 除了删除寄存器读取之外、我们找不到其他解决方案。 如果您有任何其他建议、我们可以尝试。

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

    您好、Utku、

    听起来很奇怪。 由于您可以访问所有其他寄存器、因此我无法理解该地址的寄存器的运行方式为何不同。 这是一个 Linux 驱动程序、不应该有任何事情要做。 如果 SPI 寄存器读写适用于其他寄存器、为什么不适用于这个寄存器。

    此致、

    Helfried

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

    您好、Utku、

    我已经听过你的回声了一段时间,所以这条胎面已经关闭了。 如果您希望继续讨论、请在下面发布包含更新的回复(或创建新主题帖)。

    此致、
    Helfried