<?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>Vybrid ProcessorsのトピックRe: Vybrid QSPI-flash status request issue</title>
    <link>https://community.nxp.com/t5/Vybrid-Processors/Vybrid-QSPI-flash-status-request-issue/m-p/408003#M4418</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;According to your original question I know you already checked the MQX I/O User Guide, but there you can find&amp;nbsp; that the extra byte is needed becuase you are reading only one byte:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;fwrite Usage&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;fwrite provides two functionalities: sending command to the external flash and programing the external flash. The format of fwrite is:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fwrite: Commands + Write Buffer Address + Write/Read Bytes (optional)&lt;/P&gt;&lt;P&gt;Sending a command to the flash:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ioctl(qspifd, QuadSPI_IOCTL_SET_FLASH_ADDR, &amp;amp;addr); (optional)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fwrite: Commands + Write Buffer Address (NULL)&lt;/P&gt;&lt;P&gt;Programing data to the flash:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ioctl(qspifd, QuadSPI_IOCTL_SET_FLASH_ADDR, &amp;amp;addr);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fwrite: Commands + Write Buffer Address + Write Bytes&lt;/P&gt;&lt;P&gt;Sending a read command to the flash&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ioctl(qspifd, QuadSPI_IOCTL_SET_FLASH_ADDR, &amp;amp;addr);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fwrite: Commands + Write Buffer Address(NULL) + Read Bytes&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/Alejandro&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 27 Jul 2015 23:26:45 GMT</pubDate>
    <dc:creator>alejandrolozan1</dc:creator>
    <dc:date>2015-07-27T23:26:45Z</dc:date>
    <item>
      <title>Vybrid QSPI-flash status request issue</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Vybrid-QSPI-flash-status-request-issue/m-p/408000#M4415</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am having some issues with requesting the status of the S25FL128S QSPI-flash chip on the TWR-VF65GS10 dev-kit. I initialize the chip in MQX in the following manner:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Open device&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set single IO mode&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Get virtual memory base offset&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Get total memory length&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Get sector size&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;At first status request, reading status1 on S25FL128S gives:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [INFO ]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; QSPI0 status code: 0xAA&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [INFO ]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ... Write in progress ............... : False&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [INFO ]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ... Write enable latch .............. : True&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [INFO ]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ... Block protection 1 .............. : False&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [INFO ]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ... Block protection 2 .............. : True&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [INFO ]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ... Block protection 3 .............. : False&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [INFO ]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ... Erase error occurred ............ : True&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [INFO ]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ... Programming error occurred ...... : False&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [INFO ]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ... Status register Write Disable ... : True&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This happens even after I have done a hard-reset prior to loading my program. After doing any operation (typically erase or write), the next status code is "0xFF"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I based my QSPI driver on the bundled MQX example and the &lt;A href="http://cache.freescale.com/files/32bit/doc/user_guide/MQX_IO_User_Guide.pdf?fsrch=1"&gt;MQX IO User Guide&lt;/A&gt;. My status read function is in the following manner:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Build flash command: QuadSPI_READ_STATUS1, QuadSPI_READ_DATA(QuadSPI_SINGLE_PAD, 1), QuadSPI_LOOKUP_STOP&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write command&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Read 1 byte&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Does anyone have any input on this?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 14 Jul 2015 07:01:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Vybrid-QSPI-flash-status-request-issue/m-p/408000#M4415</guid>
      <dc:creator>tfe</dc:creator>
      <dc:date>2015-07-14T07:01:40Z</dc:date>
    </item>
    <item>
      <title>Re: Vybrid QSPI-flash status request issue</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Vybrid-QSPI-flash-status-request-issue/m-p/408001#M4416</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I just tested the qspi example found in the MQX installation folder and I am not facing that behavior.&lt;/P&gt;&lt;P&gt;Have you tried that example? Also I wonder if have tried to erase the entire memory first.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/Alejandro&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 22 Jul 2015 21:20:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Vybrid-QSPI-flash-status-request-issue/m-p/408001#M4416</guid>
      <dc:creator>alejandrolozan1</dc:creator>
      <dc:date>2015-07-22T21:20:03Z</dc:date>
    </item>
    <item>
      <title>Re: Vybrid QSPI-flash status request issue</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Vybrid-QSPI-flash-status-request-issue/m-p/408002#M4417</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Seems I removed what I considered a "mistake" in the example. The transmit buffer in the function "int32_t memory_read_status1(MQX_FILE_PTR qspifd, uint8_t *status)" is initialized &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; uint8_t buffer[6 + QuadSPI_ADDR_BYTES] = {0};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But during write, fwrite seems to get one byte too many:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; result = fwrite(buffer, 1, &lt;STRONG&gt;6 + QuadSPI_ADDR_BYTES + 1&lt;/STRONG&gt;, qspifd);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When I did the same thing, the status request succeeded. How come this is necessary?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 27 Jul 2015 08:56:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Vybrid-QSPI-flash-status-request-issue/m-p/408002#M4417</guid>
      <dc:creator>tfe</dc:creator>
      <dc:date>2015-07-27T08:56:34Z</dc:date>
    </item>
    <item>
      <title>Re: Vybrid QSPI-flash status request issue</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Vybrid-QSPI-flash-status-request-issue/m-p/408003#M4418</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;According to your original question I know you already checked the MQX I/O User Guide, but there you can find&amp;nbsp; that the extra byte is needed becuase you are reading only one byte:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;fwrite Usage&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;fwrite provides two functionalities: sending command to the external flash and programing the external flash. The format of fwrite is:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fwrite: Commands + Write Buffer Address + Write/Read Bytes (optional)&lt;/P&gt;&lt;P&gt;Sending a command to the flash:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ioctl(qspifd, QuadSPI_IOCTL_SET_FLASH_ADDR, &amp;amp;addr); (optional)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fwrite: Commands + Write Buffer Address (NULL)&lt;/P&gt;&lt;P&gt;Programing data to the flash:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ioctl(qspifd, QuadSPI_IOCTL_SET_FLASH_ADDR, &amp;amp;addr);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fwrite: Commands + Write Buffer Address + Write Bytes&lt;/P&gt;&lt;P&gt;Sending a read command to the flash&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ioctl(qspifd, QuadSPI_IOCTL_SET_FLASH_ADDR, &amp;amp;addr);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fwrite: Commands + Write Buffer Address(NULL) + Read Bytes&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/Alejandro&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 27 Jul 2015 23:26:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Vybrid-QSPI-flash-status-request-issue/m-p/408003#M4418</guid>
      <dc:creator>alejandrolozan1</dc:creator>
      <dc:date>2015-07-27T23:26:45Z</dc:date>
    </item>
    <item>
      <title>Re: Vybrid QSPI-flash status request issue</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Vybrid-QSPI-flash-status-request-issue/m-p/408004#M4419</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 28 Jul 2015 08:08:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Vybrid-QSPI-flash-status-request-issue/m-p/408004#M4419</guid>
      <dc:creator>tfe</dc:creator>
      <dc:date>2015-07-28T08:08:01Z</dc:date>
    </item>
  </channel>
</rss>

