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:使用 DLP7970ABP 和 MSP430G2553读取扇区时出现问题

Guru**** 2529560 points
Other Parts Discussed in Thread: MSP430G2553, TRF7970A, MSP430F2370

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

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/897521/trf7970a-issue-in-sector-reading-using-dlp7970abp-and-msp430g2553

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

我有 TRF7970A RFID BoosterPack (DLP 70ABP v4.5)和 MSP430G2553评估套件

我已经从 TI 网站下载了与 MSP430G2553 (20引脚)相同的演示示示例(TRF7970A_RFID_Reader_Demo)

我的核心目标是从 Mifare 1K/4K 经典卡读取/写入扇区。

我执行了以下步骤。

  1. 堆叠 MSP430G2553和 TRF7970A。
  2. 编译了项目并运行。
  3. 项目已成功执行。

但是、这样我只能读取扇区0块0、无需任何密钥即可读取。 因此、我只能读取 CSn。

然后、我看到了 TI 的 SLOA214文档、其中介绍了用于扇区读取的智能卡通信的直接模式、其中还包括加密库

因此、我安装了与 SLOA214关联的项目、该项目主要用于 MSP430F2370控制器和 TRF7970A。

但是、由于我没有 TRF7970A 评估模块、我执行了以下步骤。

  1. 我将现有模块(DLP)与 G2553套件结合使用。
  2. 为了使其正常工作,我更改了中的.cmd 文件,根据 MSP430G2553 (SPI 线路和 TX 使能、TX 数据和 SDM 位时钟)更改了引脚配置
  3. 编译了项目并运行。
  4. 在这里我发现我的程序只能在标签选择之前起作用、也就是说、它通过了防冲突序列循环、但没有进入 RFID_AuthenticateA()函数。
  5. 我使用的卡是空白 Mifare Classic 4K 卡、因此我使用的是默认的 keyA (FF FF FF FF FF FF FF FF FF FF FF FF FF)

    void NFC_runMFCAuth (void)

    Trf797xTurnRfOn();//为 TRF7970启用射频场

  6. Trf797xWriteInitialatorSetup();//发送初始命令以配置4A 类读/写器
    
    IRQ_ON;//为 IRQ 在 I/O 引脚上启用中断
    
    //当 PICC 暴露于未调制的操作字段时
    //它应能够在5ms 内接受请求。
    // PCD 应该定期显示
    一个持续时间至少为// 5.1ms 的未调制字段。 (ISO14443-3)
    McuDelayMillisecond (6);
    
    if (Iso14443aAnticolliion (REQA)= STATUS_SUCCESS)//按照描述执行完整的防冲突序列
    {//在 ISO14443-3中针对
    
    if (RFID_AuthenticateA)(g_pui8MFCkey= uComplete=
    uature= u= uature= u= u= uature= u= uuuuature= u= uuuuature= u= uuuuuuuature= u= uuuuuuan= uag= u= uuid= uid= uuuuuuuua= uid= uid= uuuuuuuuuua16uag= uid= uid= uuuuua= ua= uid= ua16u
    
    ");
    UartPutNewLine();
    UartSendCString (" MIFARE 经典身份验证成功");
    UartPutNewLine();
    UartSendCString ("================================================================================================ ");
    UartPutNewLine ();
    UartPutNewLine ();
    #endif
    
    //============================================================================================================================================================================================================================================================================================================================================================================================================================================================
    //本节是一个特定于用户的应用程序的示例,允许
    在验证后读出 MFC 标签的//内容
    。//====================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
    RFID_ReadBlock (pui8MFCblock、pui8BlockData);
    }
    }
    
    IRQ_OFF;
    Trf797xTurnRfOff ();//关闭射频场
    Trf797xResetIrqStatus ();//读取 IRQ 以确保已清除
    } 


    问题可能出在哪里?

    我注意到的一个问题是、DLP7970A 的引脚排列上没有 MOD 引脚、这在直接模式下可能是必需的。
    这会造成问题吗?
    是否有任何解决方案?

    提前感谢。