<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>NFCのトピックRe: PN7462 CCID card read failure</title>
    <link>https://community.nxp.com/t5/NFC/PN7462-CCID-card-read-failure/m-p/2103024#M13219</link>
    <description>&lt;P&gt;&lt;SPAN&gt;we chosed the second one: PCSC&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Fri, 23 May 2025 01:33:09 GMT</pubDate>
    <dc:creator>Monica_Li</dc:creator>
    <dc:date>2025-05-23T01:33:09Z</dc:date>
    <item>
      <title>PN7462 CCID card read failure</title>
      <link>https://community.nxp.com/t5/NFC/PN7462-CCID-card-read-failure/m-p/2101119#M13204</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;We are building USB card reader using PN7462AU.&lt;/P&gt;&lt;P&gt;SDK:&amp;nbsp;PN7462AU_ex_phExNFCCcid&lt;/P&gt;&lt;P&gt;We've run into issue,&amp;nbsp;Intermittent card read failures occur, and the system can only be recovered by rebooting .&lt;/P&gt;&lt;P&gt;After the card reading fails, the following phenomenon occurs:&lt;/P&gt;&lt;P&gt;&amp;nbsp;1. The TX port is transmitting the carrier wave；&lt;/P&gt;&lt;P&gt;2. And the code is located at a certain position in the image.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="code location.jpg" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/338831iB62374C7796D83A3/image-size/medium?v=v2&amp;amp;px=400" role="button" title="code location.jpg" alt="code location.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;3. At this time, the error message seen on the Windows end is as shown in the following figure.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="1.jpg" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/338834i9C6BE5A807536FFA/image-size/medium?v=v2&amp;amp;px=400" role="button" title="1.jpg" alt="1.jpg" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="2.jpg" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/338833iB70FC05DE7DF8E71/image-size/medium?v=v2&amp;amp;px=400" role="button" title="2.jpg" alt="2.jpg" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="3.jpg" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/338835i0743721E101C39D5/image-size/medium?v=v2&amp;amp;px=400" role="button" title="3.jpg" alt="3.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Can you help analyze what caused this and how can we should handle it?&lt;/P&gt;&lt;P&gt;Thanks very much!&lt;/P&gt;</description>
      <pubDate>Wed, 21 May 2025 03:20:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/NFC/PN7462-CCID-card-read-failure/m-p/2101119#M13204</guid>
      <dc:creator>Monica_Li</dc:creator>
      <dc:date>2025-05-21T03:20:26Z</dc:date>
    </item>
    <item>
      <title>Re: PN7462 CCID card read failure</title>
      <link>https://community.nxp.com/t5/NFC/PN7462-CCID-card-read-failure/m-p/2101314#M13206</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/249510"&gt;@Monica_Li&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It's recommanded that you can use SCRTester tool to debug. This tool can be downloaded from&amp;nbsp;&lt;A href="https://www.nxp.com/products/PN7462" target="_blank"&gt;PN7462 Family | NFC Cortex-M0 low-power microcontroller for access control | NXP Semiconductors&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="KaiLi_0-1747812671047.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/338891i7BE5DDF9742735F4/image-size/medium?v=v2&amp;amp;px=400" role="button" title="KaiLi_0-1747812671047.png" alt="KaiLi_0-1747812671047.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;After that, you can refer the chapter 8.2 of&amp;nbsp;&amp;nbsp;&lt;A href="https://www.nxp.com/docs/en/user-guide/UM10915.pdf" target="_blank"&gt;UM10915&lt;/A&gt;&amp;nbsp;to build and debug.&lt;/P&gt;</description>
      <pubDate>Wed, 21 May 2025 07:33:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/NFC/PN7462-CCID-card-read-failure/m-p/2101314#M13206</guid>
      <dc:creator>KaiLi</dc:creator>
      <dc:date>2025-05-21T07:33:25Z</dc:date>
    </item>
    <item>
      <title>Re: PN7462 CCID card read failure</title>
      <link>https://community.nxp.com/t5/NFC/PN7462-CCID-card-read-failure/m-p/2101494#M13207</link>
      <description>Hi Kaili，&lt;BR /&gt;Perhaps my expression was not detailed enough.&lt;BR /&gt;We have used the SCR Tester tool，the same problem reoccurs. Then to identify the cause, we used the IDE tool to check and found that every time the problem occurred, the code stopped at the same position，Like the first image described previously.</description>
      <pubDate>Wed, 21 May 2025 09:42:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/NFC/PN7462-CCID-card-read-failure/m-p/2101494#M13207</guid>
      <dc:creator>Monica_Li</dc:creator>
      <dc:date>2025-05-21T09:42:31Z</dc:date>
    </item>
    <item>
      <title>Re: PN7462 CCID card read failure</title>
      <link>https://community.nxp.com/t5/NFC/PN7462-CCID-card-read-failure/m-p/2102327#M13213</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/249510"&gt;@Monica_Li&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I would like to do the same test as you on my side, so could you tell me which driver do you select?&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="KaiLi_0-1747890747488.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/339139i7348A2FFFF7BA5C9/image-size/medium?v=v2&amp;amp;px=400" role="button" title="KaiLi_0-1747890747488.png" alt="KaiLi_0-1747890747488.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 22 May 2025 05:12:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/NFC/PN7462-CCID-card-read-failure/m-p/2102327#M13213</guid>
      <dc:creator>KaiLi</dc:creator>
      <dc:date>2025-05-22T05:12:35Z</dc:date>
    </item>
    <item>
      <title>Re: PN7462 CCID card read failure</title>
      <link>https://community.nxp.com/t5/NFC/PN7462-CCID-card-read-failure/m-p/2103024#M13219</link>
      <description>&lt;P&gt;&lt;SPAN&gt;we chosed the second one: PCSC&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 23 May 2025 01:33:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/NFC/PN7462-CCID-card-read-failure/m-p/2103024#M13219</guid>
      <dc:creator>Monica_Li</dc:creator>
      <dc:date>2025-05-23T01:33:09Z</dc:date>
    </item>
    <item>
      <title>Re: PN7462 CCID card read failure</title>
      <link>https://community.nxp.com/t5/NFC/PN7462-CCID-card-read-failure/m-p/2104764#M13225</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/249510"&gt;@Monica_Li&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Unfortunately, I was unable to reproduce your problem. From the log you provided, it seems that the USB hardware interrupt was triggered by Improper operation. I don't know how you operated to trigger such an event, so is it possible to provide us with a video and let me try on my side?&lt;/P&gt;</description>
      <pubDate>Tue, 27 May 2025 03:31:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/NFC/PN7462-CCID-card-read-failure/m-p/2104764#M13225</guid>
      <dc:creator>KaiLi</dc:creator>
      <dc:date>2025-05-27T03:31:15Z</dc:date>
    </item>
    <item>
      <title>Re: PN7462 CCID card read failure</title>
      <link>https://community.nxp.com/t5/NFC/PN7462-CCID-card-read-failure/m-p/2104875#M13229</link>
      <description>&lt;P&gt;I don't know if this will work for you. I have faced similar issue and managed to fix it somehow.&lt;BR /&gt;&lt;BR /&gt;In function to handle CCID command events based on the Card detected, I have added timer to get tick count of 250.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;/**
 * @brief Function to handle CCID command events based on the Card detected
 * &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/197964"&gt;@Param&lt;/a&gt; psDiscLoopParams - Discovery Loop Parameters used for processing
 */
static void phExNFCCcid_Handle_USB_Process(phacDiscLoop_Sw_DataParams_t *psDiscLoopParams)
{
    uint8_t *pp;
    uint16_t wOutLen;
    uint8_t  bDeactivateFlag = PH_OFF;

    static phStatus_t status = PH_ERR_FAILED;
    volatile uint32_t dwBits = 0;
    uint32_t dwEventTimeOut = 0xF;
    uint16_t wOptions = 0;
    uint8_t bErrorAPDU[2] = { 0x6A, 0x81 };
    static TickType_t timeinsert = 0;

    if (gphExNFCCcid_sUsb_SlotInfo.bCardPresent != PH_EXNFCCCID_USBCCID_CCID_CARD_PRESENT_IN_SLOT)
    {
        /** Send the Card Inserted Information to the host. */
        phExNFCCcid_UsbCcid_CardInserted();
        timeinsert = xTaskGetTickCount();
    }
    else
    {
        /** Copy the ATR Information in the Transmission Buffer. */
        phUser_MemCpy(&amp;amp;gphExNFCCcid_sUsb_BulkInMsg.aTxBuff[PH_EXNFCCCID_USBCCID_CCID_HEADER_LENGTH], &amp;amp;gphExNFCCcid_sUsb_SlotInfo.aAtr[0], gphExNFCCcid_sUsb_SlotInfo.bAtrSize);

        phExNFCCcid_UsbCcid_Set_Output_Payload_Length(gphExNFCCcid_sUsb_SlotInfo.bAtrSize);
        phExNFCCcid_UsbCcid_Send_Frame(PH_EXNFCCCID_USBCCID_RDR_TO_PC_DATABLOCK, 0x00, 0x00, 0x00);
    }

    while (true)
    {

        /** Check for the General Slot Type and CL Slot Type
         *  If nothing set exit the loop
         */
        if ((gphExNFCCcid_sUsb_SlotInfo.bCLSlotType == 0x00) &amp;amp;&amp;amp;
            (gphExNFCCcid_sUsb_SlotInfo.bSlotType == PH_EXNFCCCID_USBCCID_CHANNEL_NONE))
        {
            break;
        }
#ifdef  PH_EXNFCCCID_USB_IF_COMPLIANCY
        if (gphExNFCCcid_sUsb_Bus_Status.bAddressed == 0)
        {
          	break;
        }
#endif
        if ((xTaskGetTickCount() - timeinsert) &amp;gt; 250)
        {

#if (PH_EXNFCCCID_USB_IF_USB_SUSPEND_RESUME_FTR == 1)
        /** If Suspend is initiated by the host
         *  Exit the loop and send the card removal information
         */
        if (gphExNFCCcid_sUsb_Bus_Status.bSuspendEnable == 1)
        {
            gphExNFCCcid_sUsb_SlotInfo.bAtrValid = 0;
            phExNFCCcid_UsbCcid_CardRemoved();
            break;
        }
#endif

        if ((gphExNFCCcid_sUsb_SlotInfo.bCLSlotType == PH_EXNFCCCID_USBCCID_CL_TYPE_B) ||
            (gphExNFCCcid_sUsb_SlotInfo.bCLSlotType == PH_EXNFCCCID_USBCCID_CL_TYPE_A_L4))
        {
            /* Check for the Card Presence and Exit the loop if not presence is detected */
            status = phExNFCCcid_Check_Presence_L4_Card(psDiscLoopParams);
            if (status != PH_ERR_SUCCESS)
            {
                gphExNFCCcid_sUsb_SlotInfo.bAtrValid = 0;
                phpalI14443p4_ResetProtocol(psDiscLoopParams-&amp;gt;pPal14443p4DataParams);
                phExNFCCcid_UsbCcid_CardRemoved();
                break;
            }
        }
        else if ((gphExNFCCcid_sUsb_SlotInfo.bCLSlotType == PH_EXNFCCCID_USBCCID_CL_MIFARECLASSIC))
        {
            /* Check for the Card Presence and Exit the loop if not presence is detected */
            status = phExNFCCcid_Check_Presence_L3A_Card(psDiscLoopParams);
            if ((status!= PH_ERR_SUCCESS) &amp;amp;&amp;amp; (status != PH_ERR_INTEGRITY_ERROR))
            {
                gphExNFCCcid_sUsb_SlotInfo.bAtrValid = 0;
                phExNFCCcid_UsbCcid_CardRemoved();
                break;
            }
        }
        else if ((gphExNFCCcid_sUsb_SlotInfo.bCLSlotType == PH_EXNFCCCID_USBCCID_CL_MIFAREULTRALIGHT) ||
                 (gphExNFCCcid_sUsb_SlotInfo.bCLSlotType == PH_EXNFCCCID_USBCCID_CL_TYPE_A_NS))
        {
            /* Check for the Card Presence and Exit the loop if not presence is detected */
        	status = phExNFCCcid_Check_Presence_L3A_Card(psDiscLoopParams);
            if ((status!= PH_ERR_SUCCESS) &amp;amp;&amp;amp; (status != PH_ERR_INTEGRITY_ERROR))
            {
                gphExNFCCcid_sUsb_SlotInfo.bAtrValid = 0;
                phExNFCCcid_UsbCcid_CardRemoved();
                break;
            }
        }
        else if (gphExNFCCcid_sUsb_SlotInfo.bCLSlotType == PH_EXNFCCCID_USBCCID_CL_TYPE_V)
        {
            if (phExNFCCcid_Check_Presence_TypeV_Card(psDiscLoopParams) != PH_ERR_SUCCESS)
            {
                gphExNFCCcid_sUsb_SlotInfo.bAtrValid = 0;
                phExNFCCcid_UsbCcid_CardRemoved();
                break;
            }
        }
        else if (gphExNFCCcid_sUsb_SlotInfo.bCLSlotType == PH_EXNFCCCID_USBCCID_CL_FELICA)
        {
            if (phExNFCCcid_Check_Presence_TypeF_Card(psDiscLoopParams) != PH_ERR_SUCCESS)
            {
                gphExNFCCcid_sUsb_SlotInfo.bAtrValid = 0;
                phExNFCCcid_UsbCcid_CardRemoved();
                break;
            }
        }
#ifdef NXPBUILD__PHAC_DISCLOOP_I18000P3M3_TAGS
        else if (gphExNFCCcid_sUsb_SlotInfo.bCLSlotType == PH_EXNFCCCID_USBCCID_CL_18000P3M3)
        {
            if (phExNFCCcid_Check_Presence_Type18000P3M3_Tag_Read(psDiscLoopParams) != PH_ERR_SUCCESS)
            {
                gphExNFCCcid_sUsb_SlotInfo.bAtrValid = 0;
                phExNFCCcid_UsbCcid_CardRemoved();
                break;
            }
        }
#endif
        }
        /** Wait for the Events for the CL Cards. */
        dwBits = phRtos_EventGroupWaitBits(gphExNFCCcid_sUsb_SlotInfo.xCL_Events,
                                           PH_EXNFCCCID_USBCCID_CL_TRNSP_EX_CMD |
                                           PH_EXNFCCCID_USBCCID_CL_DEACTIVATE_CARD_CMD |
                                           PH_EXNFCCCID_USBCCID_CL_AUTH_CMD |
                                           PH_EXNFCCCID_USBCCID_CL_READ_CARD_CMD |
                                           PH_EXNFCCCID_USBCCID_CL_WRITE_CARD_CMD |
                                           PH_EXNFCCCID_USBCCID_CL_ACTIVATE_CARD_CMD,
                                           true, /* status bits should be cleared before returning. */
                                           false, /* wait for any status bit being set. */
                                           dwEventTimeOut); /* wait until the time expires. */

      /** Deactivate Card Command Event - ICC POWER OFF. */
      if ((dwBits &amp;amp; (uint32_t) PH_EXNFCCCID_USBCCID_CL_DEACTIVATE_CARD_CMD))
      {
         if (bDeactivateFlag == PH_ON)
         {
            if ((gphExNFCCcid_sUsb_SlotInfo.bCLSlotType == PH_EXNFCCCID_USBCCID_CL_TYPE_A_L4) ||
                (gphExNFCCcid_sUsb_SlotInfo.bCLSlotType == PH_EXNFCCCID_USBCCID_CL_TYPE_B))
            {
               (void)phpalI14443p4_Deselect(psDiscLoopParams-&amp;gt;pPal14443p4DataParams);
               (void)phpalI14443p4_ResetProtocol(psDiscLoopParams-&amp;gt;pPal14443p4DataParams);
            }
            else if ((gphExNFCCcid_sUsb_SlotInfo.bCLSlotType == PH_EXNFCCCID_USBCCID_CL_MIFARECLASSIC) ||
                  (gphExNFCCcid_sUsb_SlotInfo.bCLSlotType == PH_EXNFCCCID_USBCCID_CL_MIFAREULTRALIGHT))
            {
               (void)phpalI14443p3a_HaltA(psDiscLoopParams-&amp;gt;pPal1443p3aDataParams);
            }
         }

         /** Return the Status for the Request when no exchange is performed */
         phExNFCCcid_UsbCcid_Set_Output_Payload_Length(0);
         phExNFCCcid_UsbCcid_Send_Frame(PH_EXNFCCCID_USBCCID_RDR_TO_PC_SLOTSTATUS, 0x00, 0x00, 0x00);

         if (bDeactivateFlag == PH_ON)
         {
            /* Reset the Global variables */
            gphExNFCCcid_sUsb_SlotInfo.bCLSlotType = 0x00;
            gphExNFCCcid_sUsb_SlotInfo.bSlotType = PH_EXNFCCCID_USBCCID_CHANNEL_NONE;
            gphExNFCCcid_sUsb_SlotInfo.bAtrValid = 0;

            bDeactivateFlag = PH_OFF;
         }
         else
         {
            bDeactivateFlag = PH_ON;
         }
      } /* - PH_EXNFCCCID_USBCCID_CL_DEACTIVATE_CARD_CMD */
      else
      {
          bDeactivateFlag = PH_OFF;
      }

      if ((dwBits &amp;amp; (uint32_t) PH_EXNFCCCID_USBCCID_CL_ACTIVATE_CARD_CMD))
      {
          /**/
          phExNFCCcid_ClifPostMsg(PHAC_DISCLOOP_ENTRY_POINT_POLL, E_PHEXNFCCCID_CLIF_CMD_START, gphExNFCCcid_SysTask_Queue);
      }

       /* APDU command from HOST, do transparent exchange and send
        * response to host*/
       if (dwBits &amp;amp; (uint32_t) PH_EXNFCCCID_USBCCID_CL_TRNSP_EX_CMD)
       {
           if ((gphExNFCCcid_sUsb_SlotInfo.bCLSlotType == PH_EXNFCCCID_USBCCID_CL_TYPE_A_L4) ||
               (gphExNFCCcid_sUsb_SlotInfo.bCLSlotType == PH_EXNFCCCID_USBCCID_CL_TYPE_B))
           {
        	   switch (phExNFCCcid_UsbCcid_CCID_InHdr_Get_Byte(PH_EXNFCCCID_USBCCID_PN7462AU_CCID_HEADER_MSG_BYTE_2))
			   {
			   case 0x01:
			   case 0x03:
			        wOptions = PH_EXCHANGE_TXCHAINING;
			        break;
			   case 0x10:
			        wOptions = PH_EXCHANGE_RXCHAINING;
			        break;
			   case 0x00:
			   case 0x02:
			   default:
			        wOptions = 0;
			        break;
			   }
        	   status = phpalI14443p4_Exchange(psDiscLoopParams-&amp;gt;pPal14443p4DataParams,
        			                           wOptions,
                                               phExNFCCcid_UsbCcid_Get_Input_Payload_Buffer(),
                                               (uint16_t)phExNFCCcid_UsbCcid_Get_Input_Payload_Length(),
                                               (uint8_t **)&amp;amp;pp,
                                               &amp;amp;wOutLen);

               if ((status &amp;amp; PH_ERR_MASK) == PH_ERR_SUCCESS)
               {
                   /*APDU exchange success, send response to host*/
                   phUser_MemCpy(phExNFCCcid_UsbCcid_Get_Output_Payload_Buffer(), pp, (uint32_t)wOutLen);
                   phExNFCCcid_UsbCcid_Set_Output_Payload_Length((uint32_t)wOutLen);
                   phExNFCCcid_UsbCcid_Send_Frame(PH_EXNFCCCID_USBCCID_RDR_TO_PC_DATABLOCK, 0x00, 0x00, 0x00);
                   phExNFCCcid_LED_TxnPass(gphExNFCCcid_sUsb_SlotInfo.bSlotType);
               }
               else if ((status &amp;amp; PH_ERR_MASK) == PH_ERR_SUCCESS_CHAINING)
               {
                   /*APDU exchange success, send response to host*/
                   phUser_MemCpy(phExNFCCcid_UsbCcid_Get_Output_Payload_Buffer(), pp, (uint32_t)wOutLen);
                   phExNFCCcid_UsbCcid_Set_Output_Payload_Length((uint32_t)wOutLen);
                   phExNFCCcid_UsbCcid_Send_Frame(PH_EXNFCCCID_USBCCID_RDR_TO_PC_DATABLOCK, 0x00, 0x00, 0x03);
                   phExNFCCcid_LED_TxnPass(gphExNFCCcid_sUsb_SlotInfo.bSlotType);
               }
               else
               {
                   /** Timeout Error Occurred. */
                   /** Send Card Removal Event and Mark the Transaction as Failure. */
                   gphExNFCCcid_sUsb_SlotInfo.bAtrValid = 0;
                   phExNFCCcid_UsbCcid_PCSC_Send_APDU((status &amp;amp; 0x00ff), ((0xff00 &amp;amp; status) &amp;gt;&amp;gt; 8), 0);
                   gphExNFCCcid_sUsb_SlotInfo.bCLSlotType = 0x00;
                   phExNFCCcid_UsbCcid_CardRemoved();
                   phExNFCCcid_LED_TxnFail(gphExNFCCcid_sUsb_SlotInfo.bSlotType);
                   break;
               }
           }
           else
           {
               /** Exchange Not Supported for the Cards. */
               phUser_MemCpy(phExNFCCcid_UsbCcid_Get_Output_Payload_Buffer(), &amp;amp;bErrorAPDU[0], 2);
               phExNFCCcid_UsbCcid_Set_Output_Payload_Length(0x2);
               phExNFCCcid_UsbCcid_Send_Frame(PH_EXNFCCCID_USBCCID_RDR_TO_PC_DATABLOCK, 0x00, 0x00, 0x00);
           }
       } /* - PH_EXNFCCCID_USBCCID_CL_TRNSP_EX_CMD */

       /** Card Read Command Events. */
       if (dwBits &amp;amp; (uint32_t) PH_EXNFCCCID_USBCCID_CL_READ_CARD_CMD)
       {
            /** Check for the CL type as Mifare Classic. */
            if (gphExNFCCcid_sUsb_SlotInfo.bCLSlotType == PH_EXNFCCCID_USBCCID_CL_MIFARECLASSIC)
            {
            	/* Put the Card in the known state */
				if (PH_ERR_SUCCESS != phExNFCCcid_Check_Presence_L3A_Card(psDiscLoopParams))
				{
					/** Authentication Failure. */
					phExNFCCcid_UsbCcid_PCSC_Send_APDU(0x6A, 0x82, 0);
					return;
				}
            	/** Check for the Authentication. */
                if (PH_ERR_SUCCESS != phExNFCCcid_Mifare_Do_Auth(PH_EXNFCCCID_MIFARE_AUTHENTICATE_P2))
                {
                    /** Authentication Failure. */
                    phExNFCCcid_UsbCcid_PCSC_Send_APDU(0x69, 0x82, 0);
                    return;
                }

                /** Perform the Read Operation on the Mifare Classic Card. */
                phExNFCCcid_Mifare_Read_Operations();
            }
            else if (gphExNFCCcid_sUsb_SlotInfo.bCLSlotType == PH_EXNFCCCID_USBCCID_CL_MIFAREULTRALIGHT)
            {
                /** Perform the Read Operation on the Mifare Ultralight Card. */
                phExNFCCcid_Mifare_Read_Operations();
            }
       } /* - PH_EXNFCCCID_USBCCID_CL_READ_CARD_CMD */

       /** Card Write Command Events. */
       if (dwBits &amp;amp; (uint32_t) PH_EXNFCCCID_USBCCID_CL_WRITE_CARD_CMD)
       {
            if (gphExNFCCcid_sUsb_SlotInfo.bCLSlotType == PH_EXNFCCCID_USBCCID_CL_MIFARECLASSIC)
            {
            	/* Put the Card in the known state */
				if (PH_ERR_SUCCESS != phExNFCCcid_Check_Presence_L3A_Card(psDiscLoopParams))
				{
					/** Authentication Failure. */
					phExNFCCcid_UsbCcid_PCSC_Send_APDU(0x6A, 0x82, 0);
					return;
				}
            	/** Check for Authentication for Mifare Classic Cards. */
                if (PH_ERR_SUCCESS != phExNFCCcid_Mifare_Do_Auth(PH_EXNFCCCID_MIFARE_AUTHENTICATE_P2))
                {
                    /** Authentication Failure. */
                    phExNFCCcid_UsbCcid_PCSC_Send_APDU(0x69, 0x82, 0);
                    return;
                }

                /** Perform the Write Operation in the Mifare Classic Card. */
                phExNFCCcid_Mifare_Write_Operations(PH_EXNFCCCID_MIFARE_CLASSIC_APDU_LC);
            }
            else if (gphExNFCCcid_sUsb_SlotInfo.bCLSlotType == PH_EXNFCCCID_USBCCID_CL_MIFAREULTRALIGHT)
            {
                /** Perform the Write Operation in the Mifare Ultralight Card. */
                phExNFCCcid_Mifare_Write_Operations(PH_EXNFCCCID_MIFARE_ULTRALIGHT_APDU_LC);
            }
       } /* - PH_EXNFCCCID_USBCCID_CL_WRITE_CARD_CMD */

       /** Authentication Command Events. */
       if (dwBits &amp;amp; (uint32_t) PH_EXNFCCCID_USBCCID_CL_AUTH_CMD )
       {
            if ((gphExNFCCcid_sUsb_SlotInfo.bCLSlotType == PH_EXNFCCCID_USBCCID_CL_MIFARECLASSIC))
            {
            	/* Put the Card in the known state */
				if (PH_ERR_SUCCESS != phExNFCCcid_Check_Presence_L3A_Card(psDiscLoopParams))
				{
					/** Authentication Failure. */
					phExNFCCcid_UsbCcid_PCSC_Send_APDU(0x6A, 0x82, 0);
					return;
				}
            	/** Perform the Authentication in the Mifare Classic Card. */
                status = phExNFCCcid_Mifare_Do_Auth(PH_EXNFCCCID_MIFARE_AUTHENTICATE_LC);

                if (status == PH_ERR_SUCCESS)
                {
                    /** Send the Success Status on Successful Authentication. */
                    gphExNFCCcid_sUsb_MifareInfo.bAuth = 1;
                    phExNFCCcid_UsbCcid_PCSC_Send_APDU(0x90, 0x00, 0);
                }
                else
                {
                    /** Send the Failure Status on Authentication failure. */
                    gphExNFCCcid_sUsb_MifareInfo.bAuth = 0;
                    phExNFCCcid_UsbCcid_PCSC_Send_APDU(0x69, 0x82, 0);
                }
            }
       } /* - PH_EXNFCCCID_USBCCID_CL_AUTH_CMD */
    } /* - While */
}&lt;/LI-CODE&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 27 May 2025 06:07:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/NFC/PN7462-CCID-card-read-failure/m-p/2104875#M13229</guid>
      <dc:creator>vrm2805</dc:creator>
      <dc:date>2025-05-27T06:07:19Z</dc:date>
    </item>
    <item>
      <title>Re: PN7462 CCID card read failure</title>
      <link>https://community.nxp.com/t5/NFC/PN7462-CCID-card-read-failure/m-p/2104954#M13231</link>
      <description>Thanks a lot for sharing this. I'll try it out!</description>
      <pubDate>Tue, 27 May 2025 07:05:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/NFC/PN7462-CCID-card-read-failure/m-p/2104954#M13231</guid>
      <dc:creator>Monica_Li</dc:creator>
      <dc:date>2025-05-27T07:05:04Z</dc:date>
    </item>
  </channel>
</rss>

