<?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>QSPI not clearing &amp;quot;BUSY&amp;quot;</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/45555/qspi-not-clearing-busy</link><description>I&amp;#39;m trying to use the QSPI periph to interface to a Flash, the project is based on the blinky and has UART and SAADC added in so far. I can use nrfx_qspi_cinstr_xfer to read registers just fine, but when I try to write or read to the Flash, I can&amp;#39;t seem</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 03 Apr 2019 20:35:09 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/45555/qspi-not-clearing-busy" /><item><title>RE: QSPI not clearing "BUSY"</title><link>https://devzone.nordicsemi.com/thread/180119?ContentTypeID=1</link><pubDate>Wed, 03 Apr 2019 20:35:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c5a61331-9117-45b9-811d-e7d84131ff5c</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;Thanks for updating the case with verified answer, I would not have thought of that. Good to hear you solved it.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: QSPI not clearing "BUSY"</title><link>https://devzone.nordicsemi.com/thread/179830?ContentTypeID=1</link><pubDate>Tue, 02 Apr 2019 15:57:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:456cc668-266d-4953-a85c-4cb781bdb6fb</guid><dc:creator>Adam Gerken</dc:creator><description>&lt;p&gt;Alright, so apparently, writes need to be in multiples of 4 bytes?!&amp;nbsp;I totally missed that, but looking at the flash&amp;#39;s data sheet it makes sense.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: QSPI not clearing "BUSY"</title><link>https://devzone.nordicsemi.com/thread/179813?ContentTypeID=1</link><pubDate>Tue, 02 Apr 2019 14:40:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6eb3d8f8-20b5-463c-8a1e-0975616427fa</guid><dc:creator>Adam Gerken</dc:creator><description>&lt;p&gt;Ok, thinking out lout here:&lt;/p&gt;
&lt;p&gt;In nrfx_qspi_init m_cb.interrupt_driven is set to false, and interrupts are disabled.&lt;/p&gt;
&lt;p&gt;In nrfx_qspi_task_perform if interrupt_driven is true, it fails out, if it&amp;#39;s false, it sets interrupt_driven to true, and enables the interrupts.&lt;/p&gt;
&lt;p&gt;Nothing I can find ever disables the interrupts or sets interrupt_driven back to false, thus causing this to return NRFX_ERROR_BUSY every time. This would kind of explain my issue, I guess. I&amp;#39;m curious how the qspi example does a write than a read without setting interrupt_driven back to false though.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: QSPI not clearing "BUSY"</title><link>https://devzone.nordicsemi.com/thread/179609?ContentTypeID=1</link><pubDate>Mon, 01 Apr 2019 20:11:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:77225995-9b6d-48e0-8d67-3b3ae91af744</guid><dc:creator>Adam Gerken</dc:creator><description>&lt;p&gt;Yeah, makes sense. Moving the interrupt priority level up each step, up to 0, didn&amp;#39;t change anything, neither did removing everything else from my project.&lt;/p&gt;
&lt;p&gt;Thanks for trying though.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: QSPI not clearing "BUSY"</title><link>https://devzone.nordicsemi.com/thread/179608?ContentTypeID=1</link><pubDate>Mon, 01 Apr 2019 19:59:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:25b47689-1f94-457e-8dfc-f7230fee6453</guid><dc:creator>Kenneth</dc:creator><description>[quote user="Adam Gerken"]Will this interrupt not trigger if there is a higher one pending or something?[/quote]
&lt;p&gt;Higher level interrupts must finish executing before the lower level interrupt handlers will run yes. Not sure if I have any good suggestion other than either increase the priority of the qspi to see if that changes things and/or disable other modules in your application until you can see a change?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: QSPI not clearing "BUSY"</title><link>https://devzone.nordicsemi.com/thread/179605?ContentTypeID=1</link><pubDate>Mon, 01 Apr 2019 19:22:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a3eb6c88-f86a-421f-af3f-43f7bebb8047</guid><dc:creator>Adam Gerken</dc:creator><description>&lt;p&gt;I initially thought the same thing, but the transfer is being called from my main function right now. The interrupt level is 6, the only others I changed are higher than that. Will this interrupt not trigger if there is a higher one pending or something? I have handlers for all the other ones so I&amp;#39;m not sure what it could be.&lt;/p&gt;
&lt;p&gt;I thought this was curious in nrfx_qspi.c around line 148 in&amp;nbsp;nrfx_qspi_init()&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;/* QSPI interrupt is disabled because the device should be enabled in polling mode (wait for activate
       task event ready)*/
    nrf_qspi_int_disable(NRF_QSPI, NRF_QSPI_INT_READY_MASK);&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;This line is also in the qspi example, but the qspi_handler works just fine in that example.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: QSPI not clearing "BUSY"</title><link>https://devzone.nordicsemi.com/thread/179511?ContentTypeID=1</link><pubDate>Mon, 01 Apr 2019 12:57:38 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:55f2de95-5ad5-4dc4-8143-6c9a2647e9b8</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;Can it be a interrupt priority issue, for instance that&amp;nbsp;you are trying to call qspi transfer from an interrupt with same priority as the&amp;nbsp;qspi_handler() is pending?&lt;/p&gt;
&lt;p&gt;Also make sure to set&amp;nbsp;m_qspi_finished as volatile.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: QSPI not clearing "BUSY"</title><link>https://devzone.nordicsemi.com/thread/179303?ContentTypeID=1</link><pubDate>Fri, 29 Mar 2019 17:56:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e9bec91d-328b-40ec-9c25-c8dfd17a251a</guid><dc:creator>Adam Gerken</dc:creator><description>&lt;p&gt;Actually, it looks like it just checks the status register and sets the write bit, but never sends any data. Still returns error 0 though:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/communityserver-discussions-components-files/4/pastedimage1553882235737v1.png" alt=" " /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>