<?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>topic CLCR663 code for DESELECT function in Processor Expert Software</title>
    <link>https://community.nxp.com/t5/Processor-Expert-Software/CLCR663-code-for-DESELECT-function/m-p/1641676#M5540</link>
    <description>&lt;DIV&gt;Can you evaluate why the following code for DESELECT function does not work ?&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;/* Deselect and switch off NFC RF field according&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp;ISO/IEC 14443-4 B.2.3 Scenario 3 DESELECT&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp;Comment Block No. (0) PCD PICC Block No. (1) Comment&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp;1. rule 1 I(0)0 ===&amp;gt; 0 rule D&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp;2. rule B 1 &amp;lt;=== I(0)0 rule 10&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp;3. S(DESELECT) request ===&amp;gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp;4. &amp;lt;=== S(DESELECT) response rule 3&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp;i-block is decoded in&amp;nbsp; respnse trailer (sw1 sw2)&lt;/DIV&gt;&lt;DIV&gt;*/&lt;/DIV&gt;&lt;DIV&gt;export void NXP_NFC_Deselect()&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; /* I-Block */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; NFC_WriteRegister3(NXP_REG_FIFODATA, 0x43, 0x00); // I(chaining 0) block=0, SW1+SW2: 01000011&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; NFC_ReadRegister3(NXP_REG_FIFODATA, 0x01, 0x00);&amp;nbsp; // (00xxxxxx)b (not (00xxx101)b&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; /* S-Block(DESELECT) request, PCB 11000010b (CID 0), CID &amp;amp; NAD (optional fields), EDC (2 bytes, switched off) no INF field */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; NFC_WriteRegister2(NXP_REG_FIFODATA, 0xc2);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; /* ~4,8 ms max deactivation frame waiting time */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; delay_ms(2);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; /* S-Block(DESELECT) response */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; if (!NFC_ReadRegister1(NXP_REG_FIFODATA, 0xc2)) // TODO supervisory 0001b&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; /* ~4,8 ms max deactivation frame waiting time */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; delay_ms(2);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; /* FIXMP Rule 8. If the S(DESELECT) request is not answered by an error-free S(DESELECT) response the S(DESELECT) request may be re-transmitted or the PICC may be ignored. */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; NFC_ReadRegister1(NXP_REG_FIFODATA, 0xc2)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; }&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; /* Disable NFC RF field */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; NXP_NFC_RF_FIELD_OFF();&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;export void NXP_NFC_RF_FIELD_OFF()&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; /* switch RF field OFF */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; NFC_Array_Write[0] = 0x86U;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; NXP_NFC_WriteRegister(NXP_REG_DRVMODE, NFC_Array_Write, 0x01);&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;u8 NXP_NFC_ATQA()&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; /* Receive 16 bit ATQA */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; if(2 != NFC_Array_Read[0U])&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; return NFC_APDU_ATQA_SIZE_ERROR;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; }&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; /* bit 6, 13-16 is 0 */&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; if ((0x00 != (NFC_Array_Read[1U] &amp;amp;&amp;amp; 0x20)) ||&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; (0x00 != (NFC_Array_Read[1U] &amp;amp;&amp;amp; 0xF0)))&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; return NFC_APDU_ATQA_RFU_ERROR;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; }&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; // FIXMP check further parameters&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; return TRUE;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;</description>
    <pubDate>Thu, 27 Apr 2023 15:06:18 GMT</pubDate>
    <dc:creator>K_Salewicz</dc:creator>
    <dc:date>2023-04-27T15:06:18Z</dc:date>
    <item>
      <title>CLCR663 code for DESELECT function</title>
      <link>https://community.nxp.com/t5/Processor-Expert-Software/CLCR663-code-for-DESELECT-function/m-p/1641676#M5540</link>
      <description>&lt;DIV&gt;Can you evaluate why the following code for DESELECT function does not work ?&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;/* Deselect and switch off NFC RF field according&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp;ISO/IEC 14443-4 B.2.3 Scenario 3 DESELECT&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp;Comment Block No. (0) PCD PICC Block No. (1) Comment&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp;1. rule 1 I(0)0 ===&amp;gt; 0 rule D&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp;2. rule B 1 &amp;lt;=== I(0)0 rule 10&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp;3. S(DESELECT) request ===&amp;gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp;4. &amp;lt;=== S(DESELECT) response rule 3&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp;i-block is decoded in&amp;nbsp; respnse trailer (sw1 sw2)&lt;/DIV&gt;&lt;DIV&gt;*/&lt;/DIV&gt;&lt;DIV&gt;export void NXP_NFC_Deselect()&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; /* I-Block */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; NFC_WriteRegister3(NXP_REG_FIFODATA, 0x43, 0x00); // I(chaining 0) block=0, SW1+SW2: 01000011&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; NFC_ReadRegister3(NXP_REG_FIFODATA, 0x01, 0x00);&amp;nbsp; // (00xxxxxx)b (not (00xxx101)b&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; /* S-Block(DESELECT) request, PCB 11000010b (CID 0), CID &amp;amp; NAD (optional fields), EDC (2 bytes, switched off) no INF field */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; NFC_WriteRegister2(NXP_REG_FIFODATA, 0xc2);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; /* ~4,8 ms max deactivation frame waiting time */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; delay_ms(2);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; /* S-Block(DESELECT) response */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; if (!NFC_ReadRegister1(NXP_REG_FIFODATA, 0xc2)) // TODO supervisory 0001b&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; /* ~4,8 ms max deactivation frame waiting time */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; delay_ms(2);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; /* FIXMP Rule 8. If the S(DESELECT) request is not answered by an error-free S(DESELECT) response the S(DESELECT) request may be re-transmitted or the PICC may be ignored. */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; NFC_ReadRegister1(NXP_REG_FIFODATA, 0xc2)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; }&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; /* Disable NFC RF field */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; NXP_NFC_RF_FIELD_OFF();&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;export void NXP_NFC_RF_FIELD_OFF()&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; /* switch RF field OFF */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; NFC_Array_Write[0] = 0x86U;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; NXP_NFC_WriteRegister(NXP_REG_DRVMODE, NFC_Array_Write, 0x01);&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;u8 NXP_NFC_ATQA()&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; /* Receive 16 bit ATQA */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; if(2 != NFC_Array_Read[0U])&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; return NFC_APDU_ATQA_SIZE_ERROR;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; }&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; /* bit 6, 13-16 is 0 */&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; if ((0x00 != (NFC_Array_Read[1U] &amp;amp;&amp;amp; 0x20)) ||&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; (0x00 != (NFC_Array_Read[1U] &amp;amp;&amp;amp; 0xF0)))&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; return NFC_APDU_ATQA_RFU_ERROR;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; }&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; // FIXMP check further parameters&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; return TRUE;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;</description>
      <pubDate>Thu, 27 Apr 2023 15:06:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Processor-Expert-Software/CLCR663-code-for-DESELECT-function/m-p/1641676#M5540</guid>
      <dc:creator>K_Salewicz</dc:creator>
      <dc:date>2023-04-27T15:06:18Z</dc:date>
    </item>
    <item>
      <title>Re: CLCR663 code for DESELECT function</title>
      <link>https://community.nxp.com/t5/Processor-Expert-Software/CLCR663-code-for-DESELECT-function/m-p/1645176#M5549</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/213238"&gt;@K_Salewicz&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Please refer to sw6693 to implement your application. sw6693 is an open source routine, please go to the NXP website to download.&lt;/P&gt;
&lt;P&gt;Best Regards,&lt;/P&gt;
&lt;P&gt;kelly&lt;/P&gt;</description>
      <pubDate>Fri, 05 May 2023 03:06:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Processor-Expert-Software/CLCR663-code-for-DESELECT-function/m-p/1645176#M5549</guid>
      <dc:creator>KaiLi</dc:creator>
      <dc:date>2023-05-05T03:06:11Z</dc:date>
    </item>
    <item>
      <title>Re: CLCR663 code for DESELECT function</title>
      <link>https://community.nxp.com/t5/Processor-Expert-Software/CLCR663-code-for-DESELECT-function/m-p/1645336#M5551</link>
      <description>&lt;P&gt;Thank you very much, Kelly !&lt;/P&gt;</description>
      <pubDate>Fri, 05 May 2023 08:29:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Processor-Expert-Software/CLCR663-code-for-DESELECT-function/m-p/1645336#M5551</guid>
      <dc:creator>K_Salewicz</dc:creator>
      <dc:date>2023-05-05T08:29:25Z</dc:date>
    </item>
  </channel>
</rss>

