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:一个写入命令后 IRQ 状态寄存器上的 CRC 错误

Guru**** 2540720 points


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

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/819924/trf7970a-crc-error-on-irq-status-register-after-a-write-command

器件型号:TRF7970A
大家好、

我们使用 TRF7970A 来写和读 NTAG213。 
该器件经过编程、可通过 CRC 进行传输。
在执行读命令后、我们不会检测到 CRC 错误、但在执行写命令后、我们始终会找到值0xF0、
因此、CRC 错误、即使写入成功(实际上、在写入操作后重新读取标签、信息已被正确写入)。
有人可以给我任何建议吗? 以下是用于编写标签的代码的一部分:

/*直接命令0x0F ->复位 FIFO (5位无有效数字-连续(位5)-读取/写入(位6)-地址或命令(位7))*
ubBuff[0]= 0x8F;/* Command Direct - Reset FIFO */
ubBuff[1]= 0x91;//命令直接-带 CRC 的 Tx *
ubBuff[2]= 0x3D;/*连续写入命令从0x1D 开始*/
ubBuff[3]= 0x00;/* 0x1D -> Len Upper and Middy*/
ubBuff[4]= 0x60;/* 0x1E -> Len Lower */
/*每个标签上 FIFO 0x1F 上的 Cmd */
ubBuff[5]= 0xA2;/* 0xA2 ->写入*/
ubBuff[6]= ubStartWrite;
ubBuff[7]= ubBuffTAGwriting[0];
ubBuff[8]= ubBuffTAGwrity[1];
ubBuff[9]= ubBuffTAGwrity[2];
ubBuff[10]= ubBuffTAGwrity[3];

BRT = SPI_PUT_Tx (ubBuff、11);

10毫秒后:

/*读取 IRQ 状态*/
ubBuff[0]= 0x4C;
ubBuff[1]= 0x00;

BRT = SPI_PUT_Tx (ubBuff、2);

然后我们读取:0xF0。

谢谢、

Daniele

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

    Daniele、您好!

    看起来您没有基于中断来处理 IRQ、这不是很好。 如果您获得的是0xC0或0xE0、甚至是0xF0、这意味着您在接收数据之前没有处理 IRQ 并清除了 FIFO。

    有关更多详细信息、请参阅常见问题解答中的第4.6节: http://www.ti.com/lit/pdf/sloa246

    请按照以下软件示例进行更好的实施、请注意、由于器件的复杂性、我们对定制软件的支持有限、这就是我们将正确处理器件所有方面的软件示例组合在一起的原因: http://www.ti.com/lit/zip/sloc297