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.

[参考译文] RTOS/TRF7970A:等待 RX ATQA ISO14443a

Guru**** 2540720 points
Other Parts Discussed in Thread: CC3100

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

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/677717/rtos-trf7970a-wait-for-rx-atqa-iso14443a

器件型号:TRF7970A
主题中讨论的其他器件:CC3100

工具/软件:TI-RTOS

我将 在 ti-RTOS (TM4C)系统"查找标签" ISO15693、ISO14443a 和 Felica 中实施一个简单的程序。

到目前为止、我的程序适用于 ISO15693和 Felica。 检测标签和读取 UID。  

我需要 ISO14443a 的提示来发送 REQA 命令 并检测 endRx。

到目前为止、已经针对 endRX、endTX、冲突 RX 和其它情况执行 IRQ trf7970。

ISO14443a 的"查找"标签具有以下工作流程:

  1. 芯片状态控制[0x00、0x21];
  2. ISO 控制[0x01、0x88];106KB、无 CRC;
  3. 清除 IRQ [0x0C]读取2个字节;
  4. 复位 FIFO [0x0F]命令;
  5. 无 CRC [0x10]命令;
  6. 启用 IRQ;
  7. wirte 连续[0x1d、0x00、0x0F、0x26];
  8. 等待 endTX IRQ 或超时5ms;
  9. 读取和清除 IRQ [0x0C]读取2个字节
  10. 读取 IRQ 功能0x80 (Tx 完成)。
  11. 复位 FIFO [0x0F]命令;
  12. 等待 endRX IRQ 或超时15ms;  
  13. 如果 IRQ = 0x60、则检测到0x40或0x02卡。  

我的问题是 endTx 正确、因为我在 IRQ 寄存器读取0x80、对吧?

但在 endTXn´t 后、我无法检测到新中断。  

  

 

 

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

    您好!

    我们提供了采用 TI 参考设计的 TI-RTOS 示例固件(尽管它包含用于 WiFi 的 CC3100、您需要删除它)、您可能会发现它很有用、因为当您可以使用我们经过充分测试的固件 http://www.ti.com/tool/TIDM-TM4C129XNFC 时、我不建议从头开始开发固件

    如果您确实希望继续开发、则可能很难根据您遇到的问题来支持该代码、但要获得更易于遵循的参考代码、请访问 :http://www.ti.com/lit/zip/sloc297

    RX 只有在标签回复正确时才会被接收、因此我假设它没有正确接收 REQA 命令。 您似乎没有按照建议在写入连续之前从重置 FIFO 命令开始发送数据包、并且您没有应用寄存器0x18的勘误表。 首先进行这些改进、然后查看 SLOC297中的示例固件、查看是否缺少任何其他步骤。

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

     您好、Ralph、

    是的、我在命令 Soft init[0x03]和 Idle [0x00]之后应用勘误设置。 不适用于新周期。  

    我的主板为 DKTM4C123G 和 trf7970aEVM (SPI 模式)。 trf7970aEVM 具有n´t μ A MSP 器件。

    作为参考、我使用了 sloa184和 sloc297。