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:SLOA138应用手册伪代码中的错误

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

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/618213/trf7964a-bug-in-sloa138-application-notes-pseudocode

器件型号:TRF7964A

您好!

我在"TI TRF796x 中实施 ISO15693协议"伪代码和 TRF7970AEVM 示例代码中发现错误:

buf[3]=(char)(大小>> 8);//寄存器1D 的数据*
buf[4]=(char)(大小<< 4);//寄存器1E 的数据*

在寄存器1E 中将大小的4个 LSB 位保存为4个 MSB 位(没关系)、并将8个 MSB 位保存到寄存器1D、但必须将大小变量的位4到位11保存到寄存器1D。

例如:

uint16_t 大小= 0x0123;

buf[3]=(char)(大小>> 8);  // buf[3]= 0x01

buf[4]=(char)(大小<< 4);  // buf[4] = 0x30

因此、寄存器1D 和1E 中保存的长度为0x0013、但必须为0x0123。

要解决这个问题、您必须将4位右移而不是8位:

buf[3]=(char)(大小>>4); //寄存器1D 的数据*

此致、

Artyom Z

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

    您好、Artyom、

    我们知道这个错误。 该固件在5年内未更新、也不会更新、因为该固件仅可用于复制 TRF7970AEVM 的默认"出厂"固件。

    有关任何新的开发、请参阅我们的更新固件库:
    - NFC 堆栈: www.ti.com/lit/pdf/sloa227
    -基本 RFID 读取器示例: e2e.ti.com/.../493678

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

    没有任何变化、新固件(sloc297)中 ISO15693.c 文件(第213行)中的同一错误:

    G_pui8TrfBuffer[ui8Offset++]=(uint8_t)(ui16TransmitByteLength >> 8);//以字节为单位的数据包长度-传输字节长度的上半字节和中半字节
    G_pui8TrfBuffer[ui8Offset++]=(uint8_t)(ui16TransmitByteLength << 4);//数据包长度(以字节为单位)-发送字节长度的较低半字节和不完整半字节

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

    我研究了这一点、发现之前已经记录了上述错误、并将在下次固件更新期间修复。