<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Need QPI code example for my memory chip</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/40884/need-qpi-code-example-for-my-memory-chip</link><description>Hi, 
 I cannot locate any QPI sample code in the example. Was it possible for anyone to share me the sample code? 
 
 Thanks a bunch.</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 25 Mar 2019 13:35:31 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/40884/need-qpi-code-example-for-my-memory-chip" /><item><title>RE: Need QPI code example for my memory chip</title><link>https://devzone.nordicsemi.com/thread/178122?ContentTypeID=1</link><pubDate>Mon, 25 Mar 2019 13:35:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:39c34dbd-1d9c-4b43-8dd6-9885366c8155</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Apologies&amp;nbsp;for not responding sooner. I&amp;nbsp;did struggle to get it working because of&amp;nbsp;wrong pin-out or bad connections. But it seems to be partially working now at least.&amp;nbsp; Sometimes I get consistent data, but&amp;nbsp;other times it&amp;#39;s inconsistent&amp;nbsp;(just a few byte errors though).&amp;nbsp;Maybe it&amp;#39;s due to bad jumper wires.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I didn&amp;#39;t make any major changes to the reference sample except for configuring the IOs with high&amp;nbsp;drive. The example is attached below. Please try it on your side to see if it works. If you don&amp;#39;t get &amp;quot;Data consistent&amp;quot;, try to read out the&amp;nbsp;m_buffer_rx to see if it contains any valid data.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Picture of Setup:&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/support-attachments/beef5d1b77644c448dabff31668f3a47-844d44ad9e6f4f3bb42290d25aa34c78/IMG_5F00_0556.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;Cut/shorted solder bridges&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/support-attachments/beef5d1b77644c448dabff31668f3a47-844d44ad9e6f4f3bb42290d25aa34c78/IMG_5F00_0557.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;Log output:&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/support-attachments/beef5d1b77644c448dabff31668f3a47-844d44ad9e6f4f3bb42290d25aa34c78/log_5F00_output.PNG" /&gt;&lt;/p&gt;
&lt;p&gt;Modified project from SDK 15.3.0&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/support-attachments/beef5d1b77644c448dabff31668f3a47-844d44ad9e6f4f3bb42290d25aa34c78/qspi.zip"&gt;devzone.nordicsemi.com/.../qspi.zip&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need QPI code example for my memory chip</title><link>https://devzone.nordicsemi.com/thread/174588?ContentTypeID=1</link><pubDate>Wed, 06 Mar 2019 14:03:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3c832387-7785-4fa7-b6e7-43806c2d048b</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;I just wanted to let you know that I have received the part (was a slight delay) and soldered the wires to a 52840 DK.&amp;nbsp; However, I have not figured out how to properly configure the reference example for this chip yet.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need QPI code example for my memory chip</title><link>https://devzone.nordicsemi.com/thread/172732?ContentTypeID=1</link><pubDate>Mon, 25 Feb 2019 12:02:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6bb911c0-b5ca-47c9-b77a-c5592f21d30d</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hi, I have ordered the IC (&lt;span&gt;S25FL064LABNFI010) so I can test it on my side. Should have it by Wednesday/Thursday this week.&amp;nbsp;I&amp;#39;m going to&amp;nbsp;study the datasheet in the meantime.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need QPI code example for my memory chip</title><link>https://devzone.nordicsemi.com/thread/172210?ContentTypeID=1</link><pubDate>Thu, 21 Feb 2019 02:54:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9b110e2b-2b84-4d8f-a880-b0c5858ebab7</guid><dc:creator>inghowe83</dc:creator><description>&lt;p&gt;Yes. I need help. The question will be as per the last question I asked, which is how to customize the QSPI sample code to enable QSPI in cypress&amp;nbsp;&lt;span&gt;Model:S25FL064LABNFI010&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need QPI code example for my memory chip</title><link>https://devzone.nordicsemi.com/thread/171835?ContentTypeID=1</link><pubDate>Tue, 19 Feb 2019 09:31:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a46a4b5d-4fe5-40f3-b98b-414087e3aff2</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hi,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I&amp;#39;m sorry for the delayed response. Haakon is currently out of office on business travel. Have you been able to solve this, or do you still need help?&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need QPI code example for my memory chip</title><link>https://devzone.nordicsemi.com/thread/160596?ContentTypeID=1</link><pubDate>Thu, 06 Dec 2018 14:07:07 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c827d233-d354-4e1a-bd7e-49ec655843a3</guid><dc:creator>inghowe83</dc:creator><description>&lt;p&gt;Thanks @haakonsh,&lt;/p&gt;
&lt;p&gt;I would like to learn to understand and how to configure prot_if parameters.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1544105188502v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;readoc structure&lt;/p&gt;
&lt;p&gt;1) NRF_QSPI_READOC_READ4IO = 0xEB which is&amp;nbsp;Quad I/O Read which is same as&amp;nbsp;&lt;span&gt;S25F064L&amp;nbsp;Quad I/O Read 0xEB?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;2)&amp;nbsp; NRF_QSPI_WRITEOC_PP4IO = 0x38 for&amp;nbsp;MX25R6435F chip&amp;nbsp;its 4PP? Was it the same as&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;S25F064L 4QPP which is&amp;nbsp;&lt;/span&gt;0x34?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If I want to change those value, where can I change it? I just don&amp;#39;t understand the code in nrf52840_bitfields.h, and how can I change if the PP4IO instruction if its different?&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;/* Bits 5..3 : Configure number of data lines and opcode used for writing. */
#define QSPI_IFCONFIG0_WRITEOC_Pos (3UL) /*!&amp;lt; Position of WRITEOC field. */
#define QSPI_IFCONFIG0_WRITEOC_Msk (0x7UL &amp;lt;&amp;lt; QSPI_IFCONFIG0_WRITEOC_Pos) /*!&amp;lt; Bit mask of WRITEOC field. */
#define QSPI_IFCONFIG0_WRITEOC_PP (0UL) /*!&amp;lt; Single data line SPI. PP (opcode 0x02). */
#define QSPI_IFCONFIG0_WRITEOC_PP2O (1UL) /*!&amp;lt; Dual data line SPI. PP2O (opcode 0xA2). */
#define QSPI_IFCONFIG0_WRITEOC_PP4O (2UL) /*!&amp;lt; Quad data line SPI. PP4O (opcode 0x32). */
#define QSPI_IFCONFIG0_WRITEOC_PP4IO (3UL) /*!&amp;lt; Quad data line SPI. PP4IO (opcode 0x38). */
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;3) The&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;S25F064L&amp;nbsp;&lt;/span&gt;chip come in SPI as default setting, is the on board PCA10056 DK&amp;nbsp;&lt;span&gt;MX25R6435F already preconfigured with QSPI setting? If yes, How can I the command in SPI using QSPI resource?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;4) is the default QSPI sample setting same for operation below?&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1544105217782v2.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;a href="http://www.cypress.com/file/316661/download"&gt;http://www.cypress.com/file/316661/download&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need QPI code example for my memory chip</title><link>https://devzone.nordicsemi.com/thread/160526?ContentTypeID=1</link><pubDate>Thu, 06 Dec 2018 09:42:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:88942b0e-6ba3-4bf5-93f5-037dddf1d774</guid><dc:creator>haakonsh</dc:creator><description>&lt;p&gt;Ahh, sorry I missed that.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;I believe the reason that you get 0x02, 0x00 is that you declared the buffer as&amp;nbsp;uint16_t whereas the QSPI operates on bytes.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;ie:&amp;nbsp;&lt;br /&gt;&lt;em&gt;NRF_QSPI_CINSTR_LEN_5B should yield 0x02, 0x00, 0x02, 0x00.&amp;nbsp;&lt;/em&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need QPI code example for my memory chip</title><link>https://devzone.nordicsemi.com/thread/160298?ContentTypeID=1</link><pubDate>Wed, 05 Dec 2018 06:09:51 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e5f9d8ed-0ceb-4135-98c6-e8d078e00b1b</guid><dc:creator>inghowe83</dc:creator><description>&lt;p&gt;Hi &lt;a href="https://devzone.nordicsemi.com/members/haakonsh"&gt;haakonsh&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Thanks. I have tried &lt;em&gt;NRF_QSPI_CINSTR_LEN_3B&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/em&gt;but I notice the output of the last byte is 0x00 rather than 0x02. Please advice is this a bug?&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1543990175568v1.png" alt=" " /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need QPI code example for my memory chip</title><link>https://devzone.nordicsemi.com/thread/160146?ContentTypeID=1</link><pubDate>Tue, 04 Dec 2018 09:36:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6ccba070-3e0b-4c6b-8a9c-a4aa6020335e</guid><dc:creator>haakonsh</dc:creator><description>&lt;p&gt;Ahh my bad I think the length config should be&amp;nbsp;&lt;em&gt;NRF_QSPI_CINSTR_LEN_3B when you&amp;#39;ve got 2 data bytes in your custom&amp;nbsp; commands&lt;/em&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need QPI code example for my memory chip</title><link>https://devzone.nordicsemi.com/thread/160089?ContentTypeID=1</link><pubDate>Tue, 04 Dec 2018 00:02:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7740b303-a5f4-405c-8b6a-e0004e548524</guid><dc:creator>inghowe83</dc:creator><description>&lt;p&gt;hI&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/members/haakonsh"&gt;haakonsh&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Thanks for the suggestion.&lt;/p&gt;
&lt;p&gt;If I use&amp;nbsp;&lt;strong&gt;NRF_QSPI_CINSTR_LEN_2B, I will only have one data sent out for example, my string is 0x02,0x02. It will sent out 0x02 only. Its already shown in my previous post.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1543881744868v1.png" /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need QPI code example for my memory chip</title><link>https://devzone.nordicsemi.com/thread/160027?ContentTypeID=1</link><pubDate>Mon, 03 Dec 2018 15:10:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:874570be-c1af-4d14-ae27-a94eaa6a2d11</guid><dc:creator>haakonsh</dc:creator><description>&lt;p&gt;Maybe you need to use&amp;nbsp;&lt;strong&gt;NRF_QSPI_CINSTR_LEN_2B&lt;/strong&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need QPI code example for my memory chip</title><link>https://devzone.nordicsemi.com/thread/159643?ContentTypeID=1</link><pubDate>Fri, 30 Nov 2018 01:58:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5e1a3387-eafb-41db-9697-23f26a6b53db</guid><dc:creator>inghowe83</dc:creator><description>&lt;p&gt;And when I take a closer look into the timing diagram I captured.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1) when using NRF_QSPI_CINSTR_LEN_2B, one frame is missing. We should have 0x5,0x00, 0x06(WREN), 0x01(WRSR), 0x02(SR1NV),0x02(CR1NV). But in fact, from the diagram I only get&amp;nbsp;&lt;span&gt;0x5,0x00, 0x06(WREN), 0x01(WRSR), 0x02(SR1NV)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;static void configure_memory()
{
    uint16_t setting_spec[2] = {0x02,0x02};
    uint32_t err_code;
    nrf_qspi_cinstr_conf_t cinstr_cfg = {
        .opcode    = QSPI_STD_CMD_RSTEN,
        .length    = NRF_QSPI_CINSTR_LEN_1B,
        .io2_level = true,
        .io3_level = true,
        .wipwait   = true,
        .wren      = true
    };
    // Send reset enable
    err_code = nrf_drv_qspi_cinstr_xfer(&amp;amp;cinstr_cfg, NULL, NULL);
    APP_ERROR_CHECK(err_code);

    // Send reset command
    cinstr_cfg.opcode = QSPI_STD_CMD_RST;
    err_code = nrf_drv_qspi_cinstr_xfer(&amp;amp;cinstr_cfg, NULL, NULL);
    APP_ERROR_CHECK(err_code);

    // Switch to qspi mode
    cinstr_cfg.opcode = 0x01;
    cinstr_cfg.length = NRF_QSPI_CINSTR_LEN_2B;
    err_code = nrf_drv_qspi_cinstr_xfer(&amp;amp;cinstr_cfg, setting_spec, NULL);
    APP_ERROR_CHECK(err_code);
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1543542983537v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;2)&amp;nbsp;&lt;span&gt;when using NRF_QSPI_CINSTR_LEN_&lt;/span&gt;&lt;span&gt;3&lt;/span&gt;&lt;span&gt;B, one frame is empty. We should have 0x5,0x00, 0x06(WREN), 0x01(WRSR), 0x02(SR1NV),0x02(CR1NV). But in fact, from the diagram I only get&amp;nbsp;&lt;/span&gt;&lt;span&gt;0x5,0x00, 0x06(WREN), 0x01(WRSR), 0x02(SR1NV),&amp;nbsp;0x00(CR1NV) &amp;lt;---- missing data&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;static void configure_memory()
{
    uint16_t setting_spec[2] = {0x02,0x02};
    uint32_t err_code;
    nrf_qspi_cinstr_conf_t cinstr_cfg = {
        .opcode    = QSPI_STD_CMD_RSTEN,
        .length    = NRF_QSPI_CINSTR_LEN_1B,
        .io2_level = true,
        .io3_level = true,
        .wipwait   = true,
        .wren      = true
    };
    // Send reset enable
    err_code = nrf_drv_qspi_cinstr_xfer(&amp;amp;cinstr_cfg, NULL, NULL);
    APP_ERROR_CHECK(err_code);

    // Send reset command
    cinstr_cfg.opcode = QSPI_STD_CMD_RST;
    err_code = nrf_drv_qspi_cinstr_xfer(&amp;amp;cinstr_cfg, NULL, NULL);
    APP_ERROR_CHECK(err_code);

    // Switch to qspi mode
    cinstr_cfg.opcode = 0x01;
    cinstr_cfg.length = NRF_QSPI_CINSTR_LEN_3B;
    err_code = nrf_drv_qspi_cinstr_xfer(&amp;amp;cinstr_cfg, setting_spec, NULL);
    APP_ERROR_CHECK(err_code);
}&lt;/pre&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/2018_2D00_11_2D00_30-09_5F00_37_5F00_13_2D00_Photos.png" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need QPI code example for my memory chip</title><link>https://devzone.nordicsemi.com/thread/159571?ContentTypeID=1</link><pubDate>Thu, 29 Nov 2018 13:14:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c1f8d886-f17f-40f1-996a-39369b18f20a</guid><dc:creator>inghowe83</dc:creator><description>&lt;p&gt;Thanks.&lt;/p&gt;
&lt;p&gt;I tried the change the below code(under nrf_gpio.h), still no improvement. I was able to read the register using SPI master sample code from nordic&amp;nbsp;nRF5_SDK_15.2.0_9412b96\examples\peripheral\spi&lt;/p&gt;
&lt;p&gt;Do you know how can I use the qspi example(using&amp;nbsp;nrf_drv_qspi_cinstr_xfer()) to read the register? I believe it will be great if I could at least test whether the register read is working before go into writing it.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;__STATIC_INLINE void nrf_gpio_cfg_output(uint32_t pin_number)
{
    nrf_gpio_cfg(
        pin_number,
        NRF_GPIO_PIN_DIR_OUTPUT,
        NRF_GPIO_PIN_INPUT_DISCONNECT,
        NRF_GPIO_PIN_NOPULL,
//old        NRF_GPIO_PIN_S0S1,
		NRF_GPIO_PIN_H0H1,
        NRF_GPIO_PIN_NOSENSE);
}&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need QPI code example for my memory chip</title><link>https://devzone.nordicsemi.com/thread/159560?ContentTypeID=1</link><pubDate>Thu, 29 Nov 2018 12:49:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:eb1d2c21-c1fb-4fc0-ab8a-8c78938125f6</guid><dc:creator>haakonsh</dc:creator><description>&lt;p&gt;My first thoughts are that those I/O lines are way too capacitively loaded. I need you to set the drive strength of the IO pins to&amp;nbsp;&lt;a title="NRF_GPIO_PIN_H0H1" href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk5.v15.2.0/group__nrf__gpio__hal.html?cp=4_0_0_6_9_0_5_0_2_3#ggabb86c9557487ac1eda0cec28f258a725aae4d4424759f4afd546132ac8b2b22d1"&gt;NRF_GPIO_PIN_H0H1&lt;/a&gt;.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need QPI code example for my memory chip</title><link>https://devzone.nordicsemi.com/thread/159364?ContentTypeID=1</link><pubDate>Wed, 28 Nov 2018 08:42:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1fb5e377-e712-4b7d-827d-1c8c9f9c82f6</guid><dc:creator>inghowe83</dc:creator><description>&lt;p&gt;Next, I decided to enable the .wren bit and hence it will added an extra 0x06 after the unknown data (0x5, 0x0) for all our configuration frame. Therefore I disable the WREN command, and I still not able to get a reply from the memory chip.&amp;nbsp;&lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/1f61e.svg" title="Disappointed"&gt;&amp;#x1f61e;&lt;/span&gt; I suspect the unknown 0x5,0x00 data is the one affecting my memory, as I tried to read using normal spi mode, it fails. It only works when I replace the memory with flash memory chip.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;static void configure_memory()
{
    uint8_t temporary[2] = {0x02,0x02};
    uint32_t err_code;
    nrf_qspi_cinstr_conf_t cinstr_cfg = {
        .opcode    = QSPI_STD_CMD_RSTEN,
        .length    = NRF_QSPI_CINSTR_LEN_1B,
        .io2_level = true,
        .io3_level = true,
        .wipwait   = true,
        .wren      = true
    };
    // Send reset enable
    err_code = nrf_drv_qspi_cinstr_xfer(&amp;amp;cinstr_cfg, NULL, NULL);
    APP_ERROR_CHECK(err_code);

    // Send reset command
    cinstr_cfg.opcode = QSPI_STD_CMD_RST;
    err_code = nrf_drv_qspi_cinstr_xfer(&amp;amp;cinstr_cfg, NULL, NULL);
    APP_ERROR_CHECK(err_code);

//    // Send WREN
//      cinstr_cfg.opcode = 0x06;
//    err_code = nrf_drv_qspi_cinstr_xfer(&amp;amp;cinstr_cfg, NULL, NULL);
//    APP_ERROR_CHECK(err_code);

    // Switch to qspi mode
    cinstr_cfg.opcode = QSPI_STD_CMD_WRSR;
    cinstr_cfg.length = NRF_QSPI_CINSTR_LEN_3B;
    err_code = nrf_drv_qspi_cinstr_xfer(&amp;amp;cinstr_cfg, &amp;amp;temporary, NULL);
    APP_ERROR_CHECK(err_code);
}&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need QPI code example for my memory chip</title><link>https://devzone.nordicsemi.com/thread/159363?ContentTypeID=1</link><pubDate>Wed, 28 Nov 2018 08:40:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:14c3389a-a009-4e64-8705-c00326f04792</guid><dc:creator>inghowe83</dc:creator><description>&lt;p&gt;So I decided to modify the&amp;nbsp;NRF_QSPI_CINSTR_LEN_2B to&amp;nbsp;NRF_QSPI_CINSTR_LEN_3B&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;static void configure_memory()
{
    uint8_t temporary[2] = {0x02,0x02};
    uint32_t err_code;
    nrf_qspi_cinstr_conf_t cinstr_cfg = {
        .opcode    = QSPI_STD_CMD_RSTEN,
        .length    = NRF_QSPI_CINSTR_LEN_1B,
        .io2_level = true,
        .io3_level = true,
        .wipwait   = true,
        .wren      = false
    };

    // Send reset enable
    err_code = nrf_drv_qspi_cinstr_xfer(&amp;amp;cinstr_cfg, NULL, NULL);
    APP_ERROR_CHECK(err_code);

    // Send reset command
    cinstr_cfg.opcode = QSPI_STD_CMD_RST;
    err_code = nrf_drv_qspi_cinstr_xfer(&amp;amp;cinstr_cfg, NULL, NULL);
    APP_ERROR_CHECK(err_code);

    // Send WREN
    cinstr_cfg.opcode = 0X06;
    err_code = nrf_drv_qspi_cinstr_xfer(&amp;amp;cinstr_cfg, NULL, NULL);
    APP_ERROR_CHECK(err_code);

    // Switch to qspi mode
    cinstr_cfg.opcode = QSPI_STD_CMD_WRSR;
    cinstr_cfg.length = NRF_QSPI_CINSTR_LEN_3B;
    err_code = nrf_drv_qspi_cinstr_xfer(&amp;amp;cinstr_cfg, &amp;amp;temporary, NULL);
    APP_ERROR_CHECK(err_code);
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;The data output achieve what I wanted. But I not able to get any data reply from the memory chip&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1543380543157v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;And sub-sequence I capture the nrf_drv_qspi_erase() data frame&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1543393397731v2.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1543394216091v3.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1543394330688v4.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1543394417408v5.png" alt=" " /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need QPI code example for my memory chip</title><link>https://devzone.nordicsemi.com/thread/159334?ContentTypeID=1</link><pubDate>Wed, 28 Nov 2018 03:20:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5e52bb77-199c-4096-98c6-af829bb91e8e</guid><dc:creator>inghowe83</dc:creator><description>&lt;p&gt;Here is the test configure code.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#define QSPI_STD_CMD_WRSR   0x01
#define QSPI_STD_CMD_RSTEN  0x66
#define QSPI_STD_CMD_RST    0x99

static void configure_memory()
{
    uint8_t temporary[2] = {0x02,0x02};
    uint32_t err_code;
    nrf_qspi_cinstr_conf_t cinstr_cfg = {
        .opcode    = QSPI_STD_CMD_RSTEN,
        .length    = NRF_QSPI_CINSTR_LEN_1B,
        .io2_level = true,
        .io3_level = true,
        .wipwait   = true,
        .wren      = false
    };

    // Send reset enable
    err_code = nrf_drv_qspi_cinstr_xfer(&amp;amp;cinstr_cfg, NULL, NULL);
    APP_ERROR_CHECK(err_code);

    // Send reset command
    cinstr_cfg.opcode = QSPI_STD_CMD_RST;
    err_code = nrf_drv_qspi_cinstr_xfer(&amp;amp;cinstr_cfg, NULL, NULL);
    APP_ERROR_CHECK(err_code);

    // Send WREN
    cinstr_cfg.opcode = 0x71;
    err_code = nrf_drv_qspi_cinstr_xfer(&amp;amp;cinstr_cfg, NULL, NULL);
    APP_ERROR_CHECK(err_code);

    // Switch to qspi mode
    cinstr_cfg.opcode = QSPI_STD_CMD_WRSR;
    cinstr_cfg.length = NRF_QSPI_CINSTR_LEN_2B;
    err_code = nrf_drv_qspi_cinstr_xfer(&amp;amp;cinstr_cfg, &amp;amp;temporary, NULL);
    APP_ERROR_CHECK(err_code);
}
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;And I tried capture the reset enable command send when configure_memory function is called, the I notice there is extra data in front of the 0x66 command is that correct? What are those data for?&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1543375959097v2.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;Here is the capture for RST command 0x99&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1543377080262v3.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Here is the capture for WRAR command 0x06&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Here is the capture for&amp;nbsp;&lt;/span&gt;WRR (0x01) +&amp;nbsp;SR1NV (0x02) +&amp;nbsp;CR1NV (0x02), it seem tgat CR1NV is not written&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1543380197252v4.png" alt=" " /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need QPI code example for my memory chip</title><link>https://devzone.nordicsemi.com/thread/159333?ContentTypeID=1</link><pubDate>Wed, 28 Nov 2018 03:11:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d586a82a-72ad-46b4-b77a-a10aa19eed62</guid><dc:creator>inghowe83</dc:creator><description>&lt;p&gt;Will nrf_drv_qspi_init(&amp;amp;config, qspi_handler, NULL) trigger the SPI to sent out data? I notice my logic analyzer capture some data (0x500) when the&amp;nbsp;&lt;span&gt;nrf_drv_qspi_init is executed. I forget to add on, the yellow 1 is CS, blue 2 is SCK, purple 3 is SI/SI0 and green 4 on the scope is refer to SO/SI1&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1543375571000v1.png" alt=" " /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1543374650287v1.png" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need QPI code example for my memory chip</title><link>https://devzone.nordicsemi.com/thread/159198?ContentTypeID=1</link><pubDate>Tue, 27 Nov 2018 10:31:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d9c7bbb0-9c38-4e9f-9ec6-2699165c26ab</guid><dc:creator>haakonsh</dc:creator><description>&lt;p&gt;Well, we should be able to interface with this memory chip via standard QSPI. Do you have a logic analyzer scope of the communication when using the SDK example?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need QPI code example for my memory chip</title><link>https://devzone.nordicsemi.com/thread/159124?ContentTypeID=1</link><pubDate>Mon, 26 Nov 2018 23:55:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a1796cef-6d9e-4d55-a66f-d78fcaed1192</guid><dc:creator>inghowe83</dc:creator><description>&lt;p&gt;Thanks a bunch&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/members/haakonsh"&gt;haakonsh&lt;/a&gt;, kindly refer to the attached link. Besides that, may I know how to support this chip using the quadspi sample? The reason I turn to QPI is because the quadspi sample just don&amp;#39;t works with this chip.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.cypress.com/file/316661/download"&gt;http://www.cypress.com/file/316661/download&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Model:S25FL064LABNFI010&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need QPI code example for my memory chip</title><link>https://devzone.nordicsemi.com/thread/158979?ContentTypeID=1</link><pubDate>Mon, 26 Nov 2018 09:57:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3012c54e-b7e0-4380-8fc9-c043def55321</guid><dc:creator>haakonsh</dc:creator><description>&lt;p&gt;Ahh, maybe. I&amp;#39;ve got to check with the developers.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;-Update:&lt;br /&gt;&lt;br /&gt;It depends on the memory chip. If it just ignores invalid commands and addresses then maybe. Do you have a datasheet for the memory chip?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need QPI code example for my memory chip</title><link>https://devzone.nordicsemi.com/thread/158967?ContentTypeID=1</link><pubDate>Mon, 26 Nov 2018 09:00:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:25dccaeb-28f9-419d-94bf-904b103839ee</guid><dc:creator>inghowe83</dc:creator><description>&lt;p&gt;Hi &lt;a href="https://devzone.nordicsemi.com/members/haakonsh"&gt;haakonsh&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Thanks for the quick feedback. But when I checked the solutions, I think QPI and Quad SPI is different solutions.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;Quad SPI&lt;br /&gt;While dual SPI re-uses the existing serial I/O lines, quad SPI adds two more I/O lines (SIO2 and SIO3) and sends 4 data bits per clock cycle. Again, it is requested by special commands, which enable quad mode after the command itself is sent in single mode.&lt;/p&gt;
&lt;p&gt;SQI Type 1: Commands sent on single line but addresses and data sent on four lines&lt;/p&gt;
&lt;p&gt;SQI Type 2: Commands and addresses sent on a single line but data sent/received on four lines&lt;/p&gt;
&lt;p&gt;QPI/SQI&lt;br /&gt;Further extending quad SPI, some devices support a &amp;quot;quad everything&amp;quot; mode where all communication takes place over 4 data lines, including commands.[19] This is variously called &amp;quot;QPI&amp;quot;[18] (not to be confused with Intel QuickPath Interconnect) or &amp;quot;serial quad I/O&amp;quot; (SQI)[20]&lt;/p&gt;
&lt;p&gt;This requires programming a configuration bit in the device and requires care after reset to establish communication.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Serial_Peripheral_Interface#QPI/SQI"&gt;https://en.wikipedia.org/wiki/Serial_Peripheral_Interface#QPI/SQI&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need QPI code example for my memory chip</title><link>https://devzone.nordicsemi.com/thread/158966?ContentTypeID=1</link><pubDate>Mon, 26 Nov 2018 08:55:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e530a8db-931f-46c2-a91f-52f8ec210715</guid><dc:creator>haakonsh</dc:creator><description>&lt;p&gt;Do you mean QSPI? If so:&amp;nbsp;&lt;a title="QSPI Example" href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk5.v15.2.0/qspi_example.html?cp=4_0_0_4_5_25"&gt;QSPI Example&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>