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:sloc297c 固件

Guru**** 2452020 points


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

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/1113425/trf7970a-sloc297c-firmware

器件型号:TRF7970A

是否有 sloc297c 固件示例的教程或方框图来帮助将此代码移植到其他微控制器?  DLP7970 Booster Pack 的 launchpad 配套电路板已停产或缺货、因此我没有可用作提示的参考设计。  是否有人在他们的办公桌上准备好了一个 launchpad?

我不确定我的模块在 SPI.c 和 trf79xxa.c 的哪个位置分解。  与 直接写入 MPS430中的寄存器的 sloc297c 固件示例相比、我正在研究计时器中断的实现方案。  我不是 MPS430专家、我认为我不必研究此数据表。

我正在寻找这个过程的30、000英尺视图、以便与 RTOS 更好地配合工作。

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

    尊敬的 Mike:

    MSP-EXP430F5529LP 应可订购。 您可以 使用固件 sloa227评估 DLP-7970ABP。 "NFCLink独立入门指南"和应用手册《使用 TRF7970A 的 NFC/HF RFID 读/写器》可能在这里有所帮助。

    对于 MSP-EXP430G2ET 解决方案、您可能仍会在其他(非 TI)在线商店中找到一些剩余的可订购电路板。

    我不知道任何固件移植指南。 您可以利用 MSP430WARE 中的示例代码片段 、这些代码片段在每个外设和每个器件上都可用。

    如果您有其他问题、请告诉我。

    此致、

    Andreas。

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

    您好!

    一段时间以来没有反馈、因此我假设这种胎纹已解决、可以关闭。 关闭该线程后、您仍可以回复该线程、也可以创建新线程。

     此致、
    Andreas。

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

    我检查了 TI 库存以及 Mouser 和 DigiKey、它们都缺货。   最早供货时间为2022年11月。   就好像我被告知不要在我的应用中使用您的器件一样。

    TI 的某个人的抽屉中有一个不在使用、可以发送给我。  这是非常令人沮丧的、但我始终存在一个错误。

    我休假了2周、在这段时间内工作过。  我购买了逻辑分析仪、以便验证接口。  但是、我非常亲近、不知道要问的问题。  示例中的软件从读取 ISO14443卡的 UID 返回4个字节、但它是字节 UID1、UID2UID3和 BCC、并且缺少 UID0。  应答应为5字节 UID 和 BCC。  我意识到可以通过对我接收到的4个字节进行异或运算来计算 UID0、但这似乎是坏的。

    我尝试将驱动程序中的请求更改为5个字节、但这只是破坏了所有内容。

    Main()-> NFC_findTag ()-> NFC_appIso14443a ()->  ISO14443A_selectTag (REQA)->  ISO14443A_sendPollCmd ()->

      G_pui8TrfBuffer[ui8Offset++]= 0x8F        //复位 FIFO
      G_pui8TrfBuffer[ui8Offset++]= 0x90        //发送而不带 CRC
      G_pui8TrfBuffer[ui8Offset++]= 0x3D        //连续写入
      G_pui8TrfBuffer[ui8Offset++]= 0x00        //数据包长度(以字节为单位)-发送字节长度的上半字节和中半字节
      G_pui8TrfBuffer[ui8Offset++]= 0x0F        //数据包长度(以字节为单位)-发送字节长度的较低半字节和不完整半字节
      G_pui8TrfBuffer[ui8Offset++]= ui8Command   //从函数输入发送轮询命令- REQA (0x26)或 WUPA (0x52)

      TRF79xxA_writeRaw (&g_pui8TrfBuffer[0]ui8Offset); //发出 ISO14443A 轮询命令
     
    验证8F、90、3D、00、0D、 26通过 SPI 接口发送。  
    IRQ 变为高电平并读取 IRQ 状态4C = 80 (Tx 中断)。
    已发送8 F 重置 FIFO
    IRQ 变为高电平并读取 IRQ 状态4C = 40 (Rx 中断)。
    读取 FIFO 状态5C = 01 FIFO 中的一个字节。
    从1F 进行的虚拟读取 7F 读取为00、00、表示  ISO14443A_UID_SINGLE
    已发送8 F 重置 FIFO
    验证8F、90、3D、00、20、 93、20通过 SPI 接口发送。  
    IRQ 变为高电平并读取 IRQ 状态4C = 80 (Tx 中断)。
    已发送8 F 重置 FIFO
    IRQ 变为高电平并读取 IRQ 状态4C = 40 (Rx 中断)。
    读取 FIFO 状态5C = 04 FIFO 中的四个字节。
    读取 FIFO 7F = 18 03 06 A0
    实际 UID = 06 03 18 BD、BCC = A0
    问题可能出在哪里?  我唯一的想法是、8F 直接命令清除 FIFO 太晚、并且在数据已传输时发生。

    是否有方法可以查看使用我的逻辑分析仪传输的数据?   
    谢谢、
    Mike。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    时间就是一切。  我唯一的想法是正确的。  Tx 完成中断后的清除 FIFO 直接命令太慢。  我在那里有一些打印调试语句导致了这种情况。  我删除了这些打印声明、并将计时更改为低于7us。

    在这之后、在 FIFO 中接收到预期的5个字节。

    我还尝试了一张多张卡、它也能正常工作。  今天取得了多么重大的突破。  周末正在寻找。