<?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 Re: QN908x - SPIFI SDK example in Wireless MCU</title>
    <link>https://community.nxp.com/t5/Wireless-MCU/QN908x-SPIFI-SDK-example/m-p/726740#M3914</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello&amp;nbsp;Eugene,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There is no example in the QN908x SDK that uses the SPIFI interface. However, the SPIFI drivers (&lt;EM&gt;fsl_spifi.c/.h&lt;/EM&gt;&lt;EM&gt;)&lt;/EM&gt;&amp;nbsp;are still available in "&lt;EM&gt;&amp;lt;SDK&amp;gt;\devices\QN908XC\drivers\&lt;/EM&gt;". You could take as reference&amp;nbsp;one of the SPIFI examples that are included in the&amp;nbsp;&lt;A href="https://mcuxpresso.nxp.com/en/select"&gt;LPC54018 SDK&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please keep in mind that the on board SPI Flash (U15) is mapped to the Flexcomm2(SPI) pins and not to the SPIFI pins, so you would need an external memory to test the SPIFI module.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Gerardo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 21 Mar 2018 22:36:29 GMT</pubDate>
    <dc:creator>gerardo_rodriguez</dc:creator>
    <dc:date>2018-03-21T22:36:29Z</dc:date>
    <item>
      <title>QN908x - SPIFI SDK example</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/QN908x-SPIFI-SDK-example/m-p/726739#M3913</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello everyone,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'd like to know if there's an any example of how to use a SPIFI interface with QN908x SDK. I was unable to find an example in the QN908x SDK.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If there's a library, please provide a download link.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Eugene&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Mar 2018 08:48:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/QN908x-SPIFI-SDK-example/m-p/726739#M3913</guid>
      <dc:creator>eupn</dc:creator>
      <dc:date>2018-03-05T08:48:09Z</dc:date>
    </item>
    <item>
      <title>Re: QN908x - SPIFI SDK example</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/QN908x-SPIFI-SDK-example/m-p/726740#M3914</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello&amp;nbsp;Eugene,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There is no example in the QN908x SDK that uses the SPIFI interface. However, the SPIFI drivers (&lt;EM&gt;fsl_spifi.c/.h&lt;/EM&gt;&lt;EM&gt;)&lt;/EM&gt;&amp;nbsp;are still available in "&lt;EM&gt;&amp;lt;SDK&amp;gt;\devices\QN908XC\drivers\&lt;/EM&gt;". You could take as reference&amp;nbsp;one of the SPIFI examples that are included in the&amp;nbsp;&lt;A href="https://mcuxpresso.nxp.com/en/select"&gt;LPC54018 SDK&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please keep in mind that the on board SPI Flash (U15) is mapped to the Flexcomm2(SPI) pins and not to the SPIFI pins, so you would need an external memory to test the SPIFI module.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Gerardo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 21 Mar 2018 22:36:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/QN908x-SPIFI-SDK-example/m-p/726740#M3914</guid>
      <dc:creator>gerardo_rodriguez</dc:creator>
      <dc:date>2018-03-21T22:36:29Z</dc:date>
    </item>
    <item>
      <title>Re: QN908x - SPIFI SDK example</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/QN908x-SPIFI-SDK-example/m-p/726741#M3915</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Good day Gerado Rodriguez.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;STRONG&gt;Please clarify the situation with SPIFI hardware interface in &lt;/STRONG&gt;QN9080&lt;STRONG&gt; chip&lt;/STRONG&gt;.&lt;BR /&gt;I have create the simple low leve driver that support serial Flash memory from Microchip SST26VF064B.&lt;BR /&gt;Lets's speak about the simple command 0x05 (Read JEDEC ID). This command use only opcode (0x05) and &lt;BR /&gt;after that, reads 3-bytes info (Manufacturer ID, Memory type, Chip ID) back.&lt;BR /&gt;SPIFI interface configured for use only four pins (kSPIFI_DualMode): SCK, CS, MISO, MOSI at:&lt;BR /&gt;MOSI:&amp;nbsp;&amp;nbsp; &amp;nbsp;{pin_num: '21', peripheral: SPIFI0, signal: 'IO, 0', pin_signal: GPIOA24/ACMP0N/CS6/ETM_TRACEDAT0/CTIMER3_CAP0/RFE_RX_EN/FC3_SSEL1/SPIFI_IO0, pull_control: Pull_up, drive_strength: high}&lt;BR /&gt;MISO:&amp;nbsp;&amp;nbsp; &amp;nbsp;{pin_num: '20', peripheral: SPIFI0, signal: 'IO, 1', pin_signal: GPIOA25/ACMP0P/CS7/ETM_TRACEDAT1/CTIMER3_CAP1/RFE_TX_EN/FC3_SSEL0/SPIFI_IO1, pull_control: Pull_up, drive_strength: high}&lt;BR /&gt;SCK:&amp;nbsp;&amp;nbsp; &amp;nbsp;{pin_num: '25', peripheral: SPIFI0, signal: SCK, pin_signal: GPIOA20/QDEC1_A/SCT0_OUT1/CTIMER2_MAT0/SWO/FC1_RTS_SCL/SPIFI_CLK, pull_control: Pull_up, drive_strength: high}&lt;BR /&gt;CS:&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{pin_num: '17', peripheral: SPIFI0, signal: CSN, pin_signal: GPIOA28/CLK_AHB/ETM_TRACECLK/RTC_CAP/FC1_SCK/SD_DAC/SPIFI_CSN, pull_control: Pull_up, drive_strength: high}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The function that configures SPIFI as SPI in MODE0&lt;/P&gt;&lt;P&gt;/*-----------------------------------------------------------------------------------*/&lt;BR /&gt;int ext_flash_init()&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// SPIFI configuration structure&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;spifi_config_t config = {0};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Get default SPIFI configuration&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;SPIFI_GetDefaultConfig(&amp;amp;config);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// SPIFI uses only IO1:0 (MISO/MOSI)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;config.dualMode =&amp;nbsp; kSPIFI_DualMode;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Disable prefetch&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//config.disablePrefetch = true;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Disable feedback clock&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//config.isFeedbackClock = false;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Initialize SPIFI&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;SPIFI_Init(SPIFI_PERIPHERAL, &amp;amp;config);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;return 0;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The function that reads JEDEC ID:&lt;BR /&gt;/*-----------------------------------------------------------------------------------*/&lt;BR /&gt;/** Read JEDEC ID from external SPI memory&lt;BR /&gt;&amp;nbsp;* JEDEC ID consists from 3 bytes:&lt;BR /&gt;&amp;nbsp;* 1 - Manufacturer ID&lt;BR /&gt;&amp;nbsp;* 2 - SPI Memory type&lt;BR /&gt;&amp;nbsp;* 3 - CHIP ID&lt;BR /&gt;&amp;nbsp;* \param[in]&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Pointer to the 3-byte array where JEDEC ID stored&lt;BR /&gt;&amp;nbsp;* \return&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;'0' - for success operation, '-1' - error detected&lt;BR /&gt;&amp;nbsp;*/&lt;BR /&gt;int ext_flash_Read_ID(unsigned char id[3])&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;unsigned int value;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// {dataLen, isPollMode, direction, intermediateBytes, format, type, opcode}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; spifi_command_t read_jedec_id={4 , false, kSPIFI_DataInput, 0, kSPIFI_CommandAllSerial, kSPIFI_CommandOpcodeOnly, 0x9F}; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Check supplied pointer to the JEDEC ID 3-bytes answer&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (id == 0) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return (-1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Reset the SPIFI for switch to the command mode&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //SPIFI_ResetCommand(SPIFI_PERIPHERAL);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Send JEDEC_ID command&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPIFI_SetCommand(SPIFI_PERIPHERAL, &amp;amp;read_jedec_id);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Read 3-bytes answer from Flash&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; value =&amp;nbsp; SPIFI_ReadData(SPIFI_PERIPHERAL);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Reload Manufacturer ID&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;id[0] = (unsigned char) value;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;// Reload Flash device Type&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;id[1] = (unsigned char) (value &amp;gt;&amp;gt; 8);&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;// Reload Flash device ID&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;id[2] = (unsigned char) (value &amp;gt;&amp;gt; 16);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;return (0);&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If I specify in the 'spifi_command_t' structure 'dataLen' field &lt;STRONG&gt;equal to 4&lt;/STRONG&gt; the function successfuly read JEDEC ID: 0xBF, 0x26, 0x43.&lt;BR /&gt;If I specify in the 'spifi_command_t' structure 'dataLen' field &lt;STRONG&gt;equal to 3&lt;/STRONG&gt; (as mentioned in SST26VF064B datasheet) after call SPIFI_ReadData function &lt;STRONG&gt;'HardFault_Handler' is executed&lt;/STRONG&gt;. But data is read from Flash memory as you can see at the attached picture (3-bytes answer during JEDEC ID Read).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As specified in the MCUXpresso SDK API Reference Manual_QN908x.pdf at page 392 in the description of the 'SPIFI_ReadData' function:&lt;BR /&gt;"Users should notice before call this function, the data length ﬁeld in command register shall larger than 4, otherwise a hardfault will happen."&lt;BR /&gt;So the manual of the QN9080 chip is not correctly describe the "CMD - SPIFI command register". &amp;nbsp;&lt;BR /&gt;As I understand DATALEN (13:0) must be multiple to 4 in order to avoid hardfault.&lt;BR /&gt;Please clarify this situation (how to avoid hardfault during SPIFI read not multiple to 4).&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;In the attachment, you can find diagrams of the SPIFI communication for reading JEDEC ID.&lt;/P&gt;&lt;P&gt;Read 4-bytes answer during JEDEC ID Read:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="jedec_4_bytes_read.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/14590i679811188F6BA19E/image-size/large?v=v2&amp;amp;px=999" role="button" title="jedec_4_bytes_read.png" alt="jedec_4_bytes_read.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Read 3-bytes answer during JEDEC ID Read:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="jedec_3_bytes_read.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/14633i329B80B8C79B574A/image-size/large?v=v2&amp;amp;px=999" role="button" title="jedec_3_bytes_read.png" alt="jedec_3_bytes_read.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 11 May 2018 10:21:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/QN908x-SPIFI-SDK-example/m-p/726741#M3915</guid>
      <dc:creator>konstantinvovk</dc:creator>
      <dc:date>2018-05-11T10:21:48Z</dc:date>
    </item>
    <item>
      <title>Re: QN908x - SPIFI SDK example</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/QN908x-SPIFI-SDK-example/m-p/726742#M3916</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;STRONG&gt;Recently I found the solution&lt;/STRONG&gt;:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;SPIFI_Type&lt;/STRONG&gt; structure define &lt;STRONG&gt;DATA&lt;/STRONG&gt; field as uint32_t. So, for fix this problem structure must be changed to new one, where DATA field must be defined as union:&lt;STRONG&gt;&lt;BR /&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;union {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __IO uint8_t DATA8;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/**&amp;lt; SPIFI 8 bit data */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __IO uint16_t DATA16;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/**&amp;lt; SPIFI 16 bit data */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __IO uint32_t DATA;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /**&amp;lt; SPIFI 32 bit data */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;or use own function for read/write data from/to the SPIFI DATA register:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/** CPU SPIFI Peripheral base pointer */&lt;BR /&gt;#define SPIFI_PERIPHERAL&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;SPIFI0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*-----------------------------------------------------------------------------------*/&lt;/P&gt;&lt;P&gt;uint8_t SPIFI_ReadData8(SPIFI_Type *SPIFI_Base)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint8_t *data8 = (uint8_t *) &amp;amp;(SPIFI_Base-&amp;gt;DATA);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;return *data8;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*-----------------------------------------------------------------------------------*/&lt;BR /&gt;uint16_t SPIFI_ReadData16(SPIFI_Type *SPIFI_Base)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint16_t *data16 = (uint16_t *) &amp;amp;(SPIFI_Base-&amp;gt;DATA);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;return *data16;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*-----------------------------------------------------------------------------------*/&lt;BR /&gt;uint32_t SPIFI_ReadData32(SPIFI_Type *SPIFI_Base)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;return SPIFI_Base-&amp;gt;DATA;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*-----------------------------------------------------------------------------------*/&lt;/P&gt;&lt;P&gt;int ext_flash_Read_ID(unsigned char id[3])&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//unsigned int value;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// {dataLen, isPollMode, direction, intermediateBytes, format, type, opcode}&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;spifi_command_t read_jedec_id = {3 , false, kSPIFI_DataInput, 0, kSPIFI_CommandAllSerial, kSPIFI_CommandOpcodeOnly, 0x9F}; /*!&amp;lt; Read FLASH JEDEC ID (3 bytes: Manufacturer ID, Device Type, Device ID ) */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Check supplied pointer to the JEDEC ID 3-bytes answer&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (id == 0) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return (-1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Reset the SPIFI for switch to the command mode&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //SPIFI_ResetCommand(SPIFI_PERIPHERAL);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Send JEDEC_ID command&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPIFI_SetCommand(SPIFI_PERIPHERAL, &amp;amp;read_jedec_id);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Read 3-bytes answer from Flash&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Reload Manufacturer ID&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; id[0] = SPIFI_ReadData8(SPIFI_PERIPHERAL);&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;// Reload Flash device Type&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; id[1] = SPIFI_ReadData8(SPIFI_PERIPHERAL);&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;// Reload Flash device ID&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; id[2] = SPIFI_ReadData8(SPIFI_PERIPHERAL);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;return (0);&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In this case hardfault&amp;nbsp; &lt;SPAN class="" lang="en"&gt;&lt;SPAN class=""&gt;does not arise and precaution mentioned in the document "SDK API Reference Manual_QN908x.pdf " are only words.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 11 May 2018 17:25:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/QN908x-SPIFI-SDK-example/m-p/726742#M3916</guid>
      <dc:creator>konstantinvovk</dc:creator>
      <dc:date>2018-05-11T17:25:04Z</dc:date>
    </item>
    <item>
      <title>Re: QN908x - SPIFI SDK example</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/QN908x-SPIFI-SDK-example/m-p/726743#M3917</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN class="" data-group="0-0" data-v-4c8ee738="" style="color: #333333; background-color: #f7f8fa; font-weight: normal; font-size: 14px;"&gt;Hello, have you solved the problem at present?&lt;/SPAN&gt;&lt;SPAN class="" data-group="0-1" data-v-4c8ee738="" style="color: #333333; background-color: #f7f8fa; font-weight: normal; font-size: 14px;"&gt;I &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="" data-group="0-1" data-v-4c8ee738="" style="color: #333333; background-color: #f7f8fa; font-weight: normal; font-size: 14px;"&gt;was experiencing a similar problem. When I read ID, the SPIFI&amp;nbsp; clock cycle was incomplete, there was nothing in the DATA register, and the software jumped into the hardware exception code.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Nov 2018 02:17:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/QN908x-SPIFI-SDK-example/m-p/726743#M3917</guid>
      <dc:creator>puhongwang</dc:creator>
      <dc:date>2018-11-08T02:17:40Z</dc:date>
    </item>
    <item>
      <title>Re: QN908x - SPIFI SDK example</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/QN908x-SPIFI-SDK-example/m-p/726744#M3918</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Yes. At this moment when we redefine &lt;STRONG&gt;DATA&lt;/STRONG&gt; field in the &lt;STRONG&gt;SPIFI_Type&lt;/STRONG&gt; structure all things are worked (or you can define your own functions with predefined read data type). Please see my source code posted early.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Nov 2018 09:31:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/QN908x-SPIFI-SDK-example/m-p/726744#M3918</guid>
      <dc:creator>konstantinvovk</dc:creator>
      <dc:date>2018-11-08T09:31:43Z</dc:date>
    </item>
  </channel>
</rss>

