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.

[参考译文] CCS/DLP-7970ABP:DLP7970仅将某些智能卡读取为 MIFARE。

Guru**** 2583825 points
Other Parts Discussed in Thread: TRF7970A, DLP-7970ABP

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

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/905553/ccs-dlp-7970abp-dlp7970-reading-some-smart-cards-only-as-mifare

器件型号:DLP-7970ABP
主题中讨论的其他器件:TM4C123TRF7970A

工具/软件:Code Composer Studio

我使用 tm4c123通过 SPI 驱动 DLP7970。 我正在尝试读取卡号和到期日期。 T0型智能卡通常不是问题、但在 T1卡上、它们通常只读作 MIFARE。 此错误的原因是什么? 为什么我只能读取某些卡上的 MIFARE 信息?

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

    您好!

    您能给我提供有关您使用的卡片的更多详细信息吗? 我 不知道您所指的 T0 T1类型。

    此致、

    Helfried  

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

    您好、Helfried、

    感谢您的回答。

    我正在使用 T4T 型智能卡。 我可以读取 MasterCard 卡。 在签证卡中、下面发送的 T4T 属于错误状态。

    使用此结构、我可以从母卡中读取卡号和到期日期信息。 但在签证卡中、这属于我在下面用粗体标记的错误

    void T4T_stateMachine (void)

    tISO7816ConnectionStatus sISO7816Status;
    uint16_t ui16RxLength;
    uint8_t * pui8RxData;
    uint8_t pui8LenBuffer[3];
    uint8_t pdolLen = 0;

    uint8_t i;

    //等待某种状态的响应
    if (g_bT4WaitForRsp)

    开关(g_eT4State)

    案例 T4T_APP_SEL:

    sISO7816Status = ISO_7816_4_getSelectStatus ();
    ISO_7816_4_getPacketStatus (&pui8RxData、&ui16RxLength);

    #ifdef NFC_debug
    if (((offset + ui16RxLength)>= 1024)
    偏移= 0;
    memcpy (whole+offset、pui8RxData、ui16RxLength);
    偏移+= ui16RxLength;
    #endif

    if (sISO7816Status = ISO_7816_4_connection_select_Success)

    G_bT4WaitForRsp =错误;

    pdolLen = parseForPDOL (pui8RxData);
    G_eT4TState = T4T_EMV_GET_PROC;
    //g_eT4TState =T4T_EMV_READ_REC_TEST;


    否则、如果(sISO7816Status = ISO_7816_4_connection_select_fail)

    G_bT4WaitForRsp =错误;
    //g_eT4TState = T4T_ERROR;

    //TODO:在这里应该做什么
    //if ((((pui8RxData[0]<< 8)| pui8RxData[1])= 0x6A82)

    aidIdx++;

    if (aidIdx >= AID_COUNT)

    //g_eT4TState = T4T_ERROR;
    G_eT4TState = T4T_SELECTED_IDLE;
    //Serial_printfLine ("辅助不支持");

    中断;

    案例 T4T_EMV_READ_REC_ALL:

    sISO7816Status = ISO_7816_4_getWriteRawStatus();
    ISO_7816_4_getPacketStatus (&pui8RxData、&ui16RxLength);
    #ifdef NFC_debug
    if (((offset + ui16RxLength)>= 1024)
    偏移= 0;
    memcpy (whole+offset、pui8RxData、ui16RxLength);
    偏移+= ui16RxLength;
    #endif
    if (sISO7816Status = ISO_7816_4_connection_write_raW_Success)

    G_bT4WaitForRsp =错误;

    parseForData_CL (pui8RxData);

    if (foundObj_CL >= 3)

    G_eT4TState = T4T_SELECTED_IDLE;

    if (recno > 6)

    RecNo = 1;
    sfiNo++;

    if (sfiNo > 6)

    G_eT4TState = T4T_SELECTED_IDLE;


    其他
    RecNo++;

    //转至选择功能容器


    否则、如果(sISO7816Status = ISO_7816_4_connection_write_raW_FAIL)

    G_bT4WaitForRsp =错误;

    //if ((((pui8RxData[0]<< 8)| pui8RxData[1])= 0x6A82 ||
    //(((pui8RxData[0]<< 8)| pui8RxData[1])= 0x6A83 ||
    //(((pui8RxData[0]<< 8)| pui8RxData[1])= 0x6A86)

    if (((pui8RxData[0]<< 8)| pui8RxData[1])= 0x6985)

    _nop();
    _nop();


    if (recno > 6)

    RecNo = 1;
    sfiNo++;
    if (sfiNo > 6)

    G_eT4TState = T4T_SELECTED_IDLE;


    其他
    RecNo++;

    if (((pui8RxData[0]<< 8)| pui8RxData[1])= 0x6985)
    _nop();


    /*else

    //g_eT4TState = T4T_ERROR;
    //recNo++;
    }*/


    中断;

    案例 T4T_EMV_GET_PROC:

    sISO7816Status = ISO_7816_4_getWriteRawStatus();
    ISO_7816_4_getPacketStatus (&pui8RxData、&ui16RxLength);
    #ifdef NFC_debug
    if (((offset + ui16RxLength)>= 1024)
    偏移= 0;
    memcpy (whole+offset、pui8RxData、ui16RxLength);
    偏移+= ui16RxLength;
    #endif
    if (sISO7816Status = ISO_7816_4_connection_write_raW_Success)

    G_bT4WaitForRsp =错误;

    parseForFiles (pui8RxData);

    recNo = FileRecords[fileIdx].startRec;
    sfiNo =文件记录[fileIdx].SFI;
    //转至选择功能容器
    //g_eT4TState = T4T_SEL_CC;
    G_eT4TState = T4T_EMV_READ_REC;

    否则、如果(sISO7816Status = ISO_7816_4_connection_write_raW_FAIL)

    G_bT4WaitForRsp =错误;
    G_eT4TState = T4T_EMV_READ_REC_ALL;

    中断;


    案例 T4T_EMV_READ_REC:
    sISO7816Status = ISO_7816_4_getWriteRawStatus();
    ISO_7816_4_getPacketStatus (&pui8RxData、&ui16RxLength);
    #ifdef NFC_debug
    if (((offset + ui16RxLength)>= 1024)
    偏移= 0;
    memcpy (whole+offset、pui8RxData、ui16RxLength);
    偏移+= ui16RxLength;
    #endif
    if (sISO7816Status = ISO_7816_4_connection_write_raW_Success)

    G_bT4WaitForRsp =错误;

    parseForData_CL (pui8RxData);

    RecNo++;
    if (recNo > FileRecords[fileIdx].endRec)

    fileIdx++;
    recNo = FileRecords[fileIdx].startRec;

    if (fileIdx < numOfFiles)

    sfiNo =文件记录[fileIdx].SFI;
    G_eT4TState = T4T_EMV_READ_REC;

    其他

    G_eT4TState = T4T_SELECTED_IDLE;

    //if (foundObj_CL)
    //printdata();

    AidIdx = 0;
    fileIdx = 0;
    //foundObj_CL = 0;


    //转至选择功能容器


    否则、如果(sISO7816Status = ISO_7816_4_connection_write_raW_FAIL)

    G_bT4WaitForRsp =错误;
    G_eT4TState = T4T_ERROR;

    中断;
    案例 T4T_ERROR:
    serial_printfLine ("T4T 错误");
    中断;
    案例 T4T_SEL_CC:
    sISO7816Status = ISO_7816_4_getSelectStatus ();

    if (sISO7816Status = ISO_7816_4_connection_select_Success)

    G_bT4WaitForRsp =错误;

    //转至读取功能容器
    G_eT4TState = T4T_Read_CC;

    否则、如果(sISO7816Status = ISO_7816_4_connection_select_fail)

    G_bT4WaitForRsp =错误;
    G_eT4TState = T4T_SELECTED_IDLE;

    中断;
    案例 T4T_Read_CC:
    sISO7816Status = ISO_7816_4_getReadStatus ();

    if (sISO7816Status = ISO_7816_4_connection_read_Success)

    ISO_7816_4_getPacketStatus (&pui8RxData、&ui16RxLength);

    // MLE
    G_ui8NdefMaxReadBytes = pui8RxData[4];
    // MLC
    G_ui8NdefMaxWriteBytes = pui8RxData[6];

    // NDEF 文件 ID
    G_pui8NDEFFileId[0]= pui8RxData[9];
    G_pui8NDEFFileId[1]= pui8RxData[10];

    //检查 NDEF 只读标志
    if (pui8RxData[14]> 0x00)

    G_bNdefReadOnly = true;

    其他

    G_bNdefReadOnly = false;

    G_bT4WaitForRsp =错误;

    //检查版本号是否为3.0
    if (pui8RxData[2]= 0x30)

    G_eT4TState = T4T_SELECTED_IDLE;

    //检查版本号是否为2.2
    否则、如果(pui8RxData[2]= 0x20 || pui8RxData[2]= 0x22)

    //转至选择 NDEF 文件
    G_eT4TState = T4T_SEL_NDEF_FILE;

    其他

    G_eT4TState = T4T_SELECTED_IDLE;


    否则、如果(sISO7816Status = ISO_7816_4_connection_read_FAIL)

    G_bT4WaitForRsp =错误;
    G_eT4TState = T4T_SELECTED_IDLE;

    中断;
    案例 T4T_SEL_NDEF_FILE:
    sISO7816Status = ISO_7816_4_getSelectStatus ();

    if (sISO7816Status = ISO_7816_4_connection_select_Success)

    G_bT4WaitForRsp =错误;

    //转至读取 NDEF 文件长度
    G_eT4TState = T4T_READ_NDEF_LEN;

    否则、如果(sISO7816Status = ISO_7816_4_connection_select_fail)

    G_bT4WaitForRsp =错误;
    G_eT4TState = T4T_SELECTED_IDLE;

    中断;
    案例 T4T_READ_NDEF_LEN:
    sISO7816Status = ISO_7816_4_getReadStatus ();

    if (sISO7816Status = ISO_7816_4_connection_read_Success)

    ISO_7816_4_getPacketStatus (&pui8RxData、&ui16RxLength);

    G_ui16NdefLength =(uint16_t)(pui8RxData[0]<< 8)+(uint16_t) pui8RxData[1];

    G_ui16NdefRemainingBytes = g_ui16NdefLength;

    //重置索引
    G_ui16T4TNdefIndex = 0x00;

    G_bT4WaitForRsp =错误;

    //具体取决于测试

    //写入测试

    //读取测试

    if (g_ui16NdefRemainingBytes >0)

    // Go 读取 NDEF 消息
    G_eT4TState = T4T_READ_NDEF;

    其他

    //未完成剩余的字节时
    G_eT4TState = T4T_SELECTED_IDLE;


    否则、如果(sISO7816Status = ISO_7816_4_connection_read_FAIL)

    G_bT4WaitForRsp =错误;
    G_eT4TState = T4T_SELECTED_IDLE;

    中断;
    案例 T4T_Read_NDEF:
    sISO7816Status = ISO_7816_4_getReadStatus ();

    if (sISO7816Status = ISO_7816_4_connection_read_Success)

    ISO_7816_4_getPacketStatus (&pui8RxData、&ui16RxLength);

    ui16RxLength = ui16RxLength - 2;

    //将 NDEF 存储在虚拟缓冲区中
    memcpy (g_pui8T4TBuffer、pui8RxData、ui16RxLength);

    serial_printBuffer (((char *) g_pui8T4TBuffer、ui16RxLength、rW_PAYLOAD_DATA);

    //更新剩余的字节
    G_ui16NdefRemainingBytes = g_ui16NdefRemainingBytes - ui16RxLength;

    //增加存储索引
    G_ui16T4TNdefIndex = g_ui16T4TNdefIndex + ui16RxLength;

    G_bT4WaitForRsp =错误;

    //完成后进入空闲状态

    //完成 NDEF 消息后,我们完成了
    if (g_ui16NdefRemainingBytes =0)

    G_eT4TState = T4T_SELECTED_IDLE;


    否则、如果(sISO7816Status = ISO_7816_4_connection_read_FAIL)

    G_bT4WaitForRsp =错误;
    G_eT4TState = T4T_SELECTED_IDLE;

    中断;
    案例 T4T_SELECTED_IDLE:
    中断;
    案例 T4T_WRITE_NDEF:
    sISO7816Status = ISO_7816_4_getWriteStatus ();

    if (sISO7816Status = ISO_7816_4_connection_write_success)

    if (g_ui16NdefRemainingBytes = 0x00)

    G_eT4TState = T4T_SELECTED_IDLE;

    serial_printf ("写入成功!"、rw_status_data);

    pui8LenBuffer[0]= 0x0D;
    pui8LenBuffer[1]= 0x0A;
    pui8LenBuffer[2]= 0x00;

    serial_printf ((char *) pui8LenBuffer、RW_STATUS_DATA);

    //完成测试
    G_bT4WaitForRsp =错误;

    否则、如果(sISO7816Status = ISO_7816_4_connection_write_fail)

    G_bT4WaitForRsp =错误;
    G_eT4TState = T4T_SELECTED_IDLE;

    中断;
    默认值:
    中断;

    //发送命令
    if (g_bT4WaitForRsp = false)

    开关(g_eT4State)

    案例 T4T_APP_SEL:

    if (ISO_7816_4_sendSelectApplication (AID_LIST_NFC[aidIdx]、7)= STATUS_SUCCESS)

    G_bT4WaitForRsp = true;

    中断;

    案例 T4T_EMV_READ_REC_ALL:

    G_pui8ReadRec[0]= 0x00;
    G_pui8ReadRec[1]= 0xB2;
    G_pui8ReadRec[2]=重新编号;
    G_pui8ReadRec[3]=(sfiNo << 3)| 0x04;
    G_pui8ReadRec[4]= 0x00;

    if (ISO_7816_4_sendAPDU (g_pui8ReadRec、5)= STATUS_SUCCESS)

    G_bT4WaitForRsp = true;

    中断;
    案例 T4T_EMV_GET_PROC:

    if (ISO_7816_4_sendAPDU (g_pui8PROC、7 + pdolLen)= STATUS_SUCCESS)

    G_bT4WaitForRsp = true;

    中断;
    案例 T4T_EMV_READ_REC:

    G_pui8ReadRec[0]= 0x00;
    G_pui8ReadRec[1]= 0xB2;
    G_pui8ReadRec[2]=重新编号;
    G_pui8ReadRec[3]=(sfiNo << 3)| 0x04;
    G_pui8ReadRec[4]= 0x00;

    if (ISO_7816_4_sendAPDU (g_pui8ReadRec、5)= STATUS_SUCCESS)

    G_bT4WaitForRsp = true;

    中断;
    案例 T4T_ERROR:
    NFC_RW_TRIGGERRWProtocolError();
    中断;
    案例 T4T_SEL_CC:
    if (ISO_7816_4_sendSelectFile (g_pui8CCFileId、2)= STATUS_SUCCESS)

    G_bT4WaitForRsp = true;

    中断;
    案例 T4T_Read_CC:
    if (ISO_7816_4_sendReadFile (0、0x0F)= STATUS_SUCCESS)

    G_bT4WaitForRsp = true;

    中断;
    案例 T4T_SEL_NDEF_FILE:
    if (ISO_7816_4_sendSelectFile (g_pui8NDEFFileId、2)= STATUS_SUCCESS)

    G_bT4WaitForRsp = true;

    中断;
    案例 T4T_READ_NDEF_LEN:
    if (ISO_7816_4_sendReadFile (0、0x02)= STATUS_SUCCESS)

    G_bT4WaitForRsp = true;

    中断;
    案例 T4T_Read_NDEF:
    if (g_ui16NdefRemainingBytes > g_ui8NdefMaxReadBytes)

    if (ISO_7816_4_sendReadFile (g_ui16T4TNdefIndex+2、g_ui8NdefMaxReadBytes)= STATUS_SUCCESS)

    G_bT4WaitForRsp = true;


    其他

    if (ISO_7816_4_sendReadFile (g_ui16T4TNdefIndex+2、(uint8_t) g_ui16NdefRemainingBytes)= STATUS_SUCCESS)

    G_bT4WaitForRsp = true;


    中断;
    案例 T4T_SELECTED_IDLE:
    //foundObj_CL = 0;
    nameFound = 0;
    PANFound = 0;
    ExpDateFound = 0;
    AidIdx = 0;
    RecNo = 1;
    sfiNo=1;
    中断;
    案例 T4T_WRITE_NDEF:
    //如果要写入的剩余字节数小于最大字节数
    if (g_ui16NdefRemainingBytes >0)

    if (g_ui16NdefRemainingBytes >(uint16_t) g_ui8NdefMaxWriteBytes)

    //出于功能目的清除 NDEF Len
    if (ISO_7816_4_sendWriteFile (g_ui16T4TNdefIndex、g_ui8NdefMaxWriteBytes、&g_pui8T4TBuffer[g_ui16T4TNdefIndex])=status_Success)

    G_bT4WaitForRsp = true;
    G_ui16NdefRemainingBytes = g_ui16NdefRemainingBytes -(uint16_t) g_ui8NdefMaxWriteBytes;


    其他

    //出于功能目的清除 NDEF Len
    if (ISO_7816_4_sendWriteFile (g_ui16T4TNdefIndex、(uint8_t) g_ui16NdefRemainingBytes、&g_pui8T4TBuffer[g_ui16T4TNdefIndex])=status_Success)

    G_bT4WaitForRsp = true;
    G_ui16NdefRemainingBytes = 0;


    其他

    G_eT4TState = T4T_SELECTED_IDLE;


    中断;
    默认值:
    中断;

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

    您好、Onur、

    在你提到 MasterCard/VISA 之后再继续这里...

    您是否计划为此应用程序进行 EMVCO 认证?

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

    在此阶段、我们仅测试读卡号和到期日期。 如果我们在此阶段取得成功、我们将在下一阶段进行思考。 您对我分享的代码中的缺陷有什么看法吗?

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

    您好、Onur、

    好的、需要注意的一点是:TRF7970A 由于勘误项 器件#B01: https://www.ti.com/lit/er/sloz011b/sloz011b.pdf、无法通过 EMVco 测试

    由于我们不适合支付系统、因此我们尚未为此进行任何开发。

    至于错误、我怀疑卡拒绝了发送的命令-这是导致该错误的最常见原因。 当卡收到无效命令时、它们将回复、然后 NFC 堆栈将向较低级别报告失败。 因此、您需要查看使用的命令序列。

    如果我记得对、万事达卡和维萨有不同的序列、但这只是我四年前所了解到的情况、很遗憾在很长一段时间内没有提及任何内容、因此无法真正提供更多反馈。 希望这足以让您向前迈进。

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

    您好、Ralph、

    感谢您的回答。

    此问题是否由器件#B01错误引起?

    专用文件是在上图中发送辅助号码之前发送的。 在我共享的代码中、将发送一个直接帮助号码。 这是否会带来问题?

    您是否曾使用过 trf7970应用过信用卡?我查看了所有应用手册、但我没有看到这样的示例。

    是否确定由于错误器件#B01、我们与信用卡的通信会出现问题? 还是可以解决这个问题?

    您对此问题有什么看法吗? 或者、您能否分享一个示例?

    谢谢你。

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

    您好、Onur、

    [报价用户="Onur Ilyas YAVUZ"]此问题是否是由设备#B01错误引起的?

    [报价 USER="Onur Ilyas YAVUZ">我们是否确定由于错误  Device#B01而在信用卡通信方面会出现问题? 还是可以解决这个问题?

    勘误表仅会导致认证问题。 如果它影响了一张卡、那么您将完全无法与其通信。

    [引用 user="Onur Ilyas YAVUZ">专用文件是在上述图像中发送帮助编号之前发送的。 在我共享的代码中、将发送一个直接帮助号码。 这是否会造成问题?

    我不知道、我们没有经验、也不支持付款申请。

    [报价用户="Onur Ilyas YAVUZ"]您是否曾使用过 trf7970应用过信用卡?我检查了所有应用手册,但我没有看到这样的示例。

    不支持、这种应用不受支持、因为我们无论如何都无法通过 EVMco。

    遗憾的是、只要这仍然是有关如何读取支付卡的应用特定问题、您就可以自行解决、这超出了我们能够支持的范围。

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

    您好、Ralph、

    感谢您的回答。

    数据表中还包括付款应用领域的付款系统。 如果存在此错误、则无法在付款系统中使用。 为什么您没有将其从应用领域中移除?

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

    您好、Onur、

    我将向我们的产品经理提出这个问题。 我假设答案是、该部分未在勘误表发布后更新、或者可用于不需要 EMVco 的专有支付应用。 不过、如果是后者、则应将其说明为"非 EMVco"系统。

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

    您好、Ralph、

    感谢您的回答。

    我使用 NFC 工具测量了 RSSI。 但他从很近的距离检测到卡。 是否有方法可以增加检测距离?

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

    您好、Onur、

    RSSI 基于信号强度、信号强度基于标签和读取器的天线耦合以及读取器的输出功率。

    要增加输出功率、您需要在 GUI 中提供 TRF7970A 5V 并使用5V 模式-您必须编辑 Launchpad 才能这样做。

    关于天线耦合、以下因素适用:

    1. 天线尺寸
    2. 天线耦合(即读取器和标签之间天线尺寸的比率)
    3. 天线调优

    DLP-7970ABP 具有合适尺寸的天线、可与信用卡大小的标签配合使用。 它经过精心设计、支持所有 NFC 技术、包括 ISO14443边带所需的更宽带宽、且以13.56MHz 为中心。

    但是、我已经看到、用于安全应用的某些 Mifare 标签有时会特意调谐到15-17MHz、以最大程度地减小读取范围、从而通过要求将标签放置在非常靠近读取器的位置来增强安全性。 使用支付卡可能也是如此、因此您会看到较低的 RSSI 结果。

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

    [引用用户="Ralph Jacobi"]

    要增加输出功率、您需要在 GUI 中提供 TRF7970A 5V 并使用5V 模式-您必须编辑 Launchpad 才能这样做

    [/报价]

    我在 TRF7970驱动程序中进行如下设置。

    uint8_t TRF79x0_init (void)
    {
    g_ui8IrqFlag = 0x00;
    g_ui8TimeOutFlag = 0x00;
    
    g_bTRFPowerSupply5V = true;
    
    g_bTRFExtAmpEnable = false;
    
    MOD_DIR_OUT;
    MOD_OFF;
    
    //将从器件选择设置为输出方向
    SLAVE_SELECT_PORT_SET;
    
    //取消从器件选择
    SLAVE_SELECT_HIGH 的置位;
    
    //***** TODO:创建全局标志、还是要求用户在应用程序空间中执行此操作?
    //必须在使能以具有 SS 模式的 SPI 启动之前将 I/O_2置为高电平。
    SDM_TXENABLE_ON;
    SDM_PORT_SET;
    //********
    
    
    //
    // TRF79x0需要在使能线路上进行从低到高的转换。
    //
    //在 TRF79x0
    TRF_DISABLE 上设置 EN = 0;
    //将 EN 设置为输出方向
    ENABLE_PORT_SET;
    //等待系统时钟启动
    MCU_delayisecMillond (10);
    //在 TRF 79xx
    TRF_ENABLE 上设置 EN = 1;
    
    //
    TRF79x0需要在使能线路上进行从低电平到高电平转换。
    //
    //////在 TRF79x0上设置 EN = 0
    //TRF_DISABLE2;
    
    ////将 EN 设置为输出方向
    //ENABLE_PORT_SET;
    //ENABLE2_PORT_SET;
    //等待系统时钟启动
    //MCU_delayisecond (3)
    
    
    ;// TSALE2;//(1);// TDIESIESU2;//
    ////在 TRF 79xx 上设置 EN = 1
    //TRF_ENABLE;
    
    SPI_setup();
    //
    为 TRF7970A 上的 IRQ 引脚启用一个低电平到高电平的中断//
    
    IRQ_PIN_SET;
    IRQ_EDGE_SET;
    IRQ_INT_ON;
    IRQ_CLR;
    
    //SDM_BITCLK_PIN_SET;
    //SDM_BITCLK_EDGE_SET;
    //SDM_BITCLK_CLR;
    //SDM_BITCLK_INT_ON;
    
    
    MCU_delayMillisecond (10);
    
    g_eTrf7970Version = TRF7970_A;
    
    返回 STATUS_SUCCESS;
    } 

    我将 DLP7970的电源输入连接到了5伏。

    我还在 NFC 上进行了如下配置。

    我可以进行其他调整吗?

    谢谢你。

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

    您好、Onur、

    您还必须为 DLP-7970ABP 的 VIN 引脚提供5V 电压。

    您将需要弯曲 LaunchPad 的3.3V 引脚、以免炸薯条、然后将一根导线从5V 引脚路由到 DLP-7970ABP VIN (BoosterPack 接头上的引脚)。

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

    您好、Ralph、

    我进行了如下5V 连接。

    除了这一点、我还需要做什么吗?

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

    只需验证电源是否稳定、希望是稳定的。 我通常使用蓝色导线。 但是、如果它是稳定的、那么它应该是稳定的。

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

    这样、卡的电源 LED 就会亮起。 除了上述配置外、增加天线检测距离没有其他事情要做、对吧?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Onur、

    假设它是信用卡大小的标签、正确。 您看到的范围是多少?

    如果您可以使用频谱分析仪和第三台打印机、如果您想了解标签共振、我可以向您发送一种测量方法。 可能不值得您花时间、但希望提供的只是无实例。

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

    您好、Ralph、

    [引用用户="Ralph Jacobi"]

    您好、Onur、

    假设它是信用卡大小的标签、正确。 您看到的范围是多少?

    [/报价]

    读卡距离约为2-3厘米。

    [引用用户="Ralph Jacobi"]

    如果您可以使用频谱分析仪和第三台打印机、如果您想了解标签共振、我可以向您发送一种测量方法。 可能不值得您花时间、但希望提供的只是无实例。

    [/报价]
    我很开心。 如何测量?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Onur、

    请参阅随附的演示 文稿:e2e.ti.com/.../5165.How-to-use-Network-Analyzer-to-measure-resonant.ppt

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

    您好、Ralph、

    感谢您的回答。

    此致。