<?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>Deep power mode of QSPI</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/54256/deep-power-mode-of-qspi</link><description>I am trying to minimize the power consumption of serial flash. Is there any example for DPM of QSPI?</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 18 Nov 2022 08:50:45 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/54256/deep-power-mode-of-qspi" /><item><title>RE: Deep power mode of QSPI</title><link>https://devzone.nordicsemi.com/thread/396349?ContentTypeID=1</link><pubDate>Fri, 18 Nov 2022 08:50:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a2356ff9-68e3-4652-9593-f4d628cc5f2b</guid><dc:creator>Gordon</dc:creator><description>&lt;p&gt;Does anyone have a link to a working example for getting DPM working? I&amp;#39;m struggling a bit.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;By setting/unsetting&amp;nbsp;QSPI_IFCONFIG1_DPMEN when sleeping I seem to be able to get total system consumption down from 3mA to 0.8mA, but with old old bit-bashing method I was getting 0.1mA, so something is still drawing excess power.&lt;/p&gt;
&lt;p&gt;And then there&amp;#39;s the issue of XIP - if an interrupt wakes the device up and we try and access the XIP address before&amp;nbsp;&lt;span&gt;DPMEN has been disabled, it locks up.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Deep power mode of QSPI</title><link>https://devzone.nordicsemi.com/thread/227903?ContentTypeID=1</link><pubDate>Tue, 07 Jan 2020 13:28:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1f0dc3a8-a51d-4ecf-898c-8b4e4d2ef2fd</guid><dc:creator>haakonsh</dc:creator><description>[quote user="royalbee"]Without calling uninit to the qspi driver, it keeps consuming (a lot of) power.[/quote]
&lt;p&gt;That&amp;#39;s not good, the peripheral should enter a low power mode when there&amp;#39;s no ongoing task, at least other peripherals behave in this manner. Hopefully, your workaround does not have a huge impact on your application.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
[quote user="royalbee"]BTW, I think that it is a design-problem&amp;nbsp;in the SDK that this function is actually called &amp;quot;uninit&amp;quot; and not &amp;quot;close&amp;quot;&amp;nbsp; (since we&amp;nbsp;should call open and close on each read/write operation and not init and uninit).[/quote]
&lt;p&gt;It will be hard to convince the developers to use another term for the QSPI driver as init/uninit is the term used for all other drivers.&lt;/p&gt;
[quote user="royalbee"]As for DPM, I already managed to make it work on our flash device, after figuring out the main issues (including how to set the dpm-duration register).[/quote]
&lt;p&gt;&amp;nbsp;That register is a bit hard to find, good job on getting it to work &lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/1f642.svg" title="Slight smile"&gt;&amp;#x1f642;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Deep power mode of QSPI</title><link>https://devzone.nordicsemi.com/thread/224899?ContentTypeID=1</link><pubDate>Wed, 11 Dec 2019 11:26:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fe139f36-f0b4-4121-8e82-078d96ad6ce3</guid><dc:creator>royalbee</dc:creator><description>&lt;p&gt;Without calling uninit to the qspi driver, it keeps consuming (a lot of) power.&lt;br /&gt;BTW, I think that it is a design-problem&amp;nbsp;in the SDK that this function is actually called &amp;quot;uninit&amp;quot; and not &amp;quot;close&amp;quot;&amp;nbsp; (since we&amp;nbsp;should call open and close on each read/write operation and not init and uninit).&lt;br /&gt;&lt;br /&gt;As for DPM, I already managed to make it work on our flash device, after figuring out the main issues (including how to set the dpm-duration register).&lt;br /&gt;It seems like my suggestion to use the DK flash for your example won&amp;#39;t be the best, since DK flash starts in DPM mode by default, so getting it into DPM won&amp;#39;t change anything..&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Deep power mode of QSPI</title><link>https://devzone.nordicsemi.com/thread/224169?ContentTypeID=1</link><pubDate>Fri, 06 Dec 2019 12:41:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7e380d52-e4a4-4f42-bf0e-ec4fa76c9434</guid><dc:creator>haakonsh</dc:creator><description>&lt;p&gt;I can notify the developers that there&amp;#39;s a need for a DPM example, but it will take quite some time until it will reach the SDK.&lt;br /&gt;&lt;br /&gt;You can set the&amp;nbsp;&lt;a title="DPMDUR" href="https://infocenter.nordicsemi.com/topic/ps_nrf52840/qspi.html?cp=4_0_0_5_18_9_28#register.DPMDUR"&gt;DPMDUR&lt;/a&gt;&amp;nbsp;and&amp;nbsp;&lt;a title="IFCONFIG0" href="https://infocenter.nordicsemi.com/topic/ps_nrf52840/qspi.html?cp=4_0_0_5_18_9_25#register.IFCONFIG0"&gt;IFCONFIG0&lt;/a&gt;.DPMENABLE register at any time after you&amp;#39;ve called&amp;nbsp;&lt;a title="nrfx_qspi_init" href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v16.0.0/group__nrfx__qspi.html?cp=6_1_6_9_0_26_1_10#gae619b2eaf2d9691f03b20c6b204e9f28"&gt;nrfx_qspi_init&lt;/a&gt;, then&amp;nbsp;I believe you write to&amp;nbsp; &amp;nbsp;&lt;a title="IFCONFIG1" href="https://infocenter.nordicsemi.com/topic/ps_nrf52840/qspi.html?cp=4_0_0_5_18_9_26#register.IFCONFIG1"&gt;IFCONFIG1&lt;/a&gt;.DPMEN to enter or exit DPM.&lt;br /&gt;&lt;br /&gt;Why do you need to uninit the qspi driver, do you intend to go into SystemOFF?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Deep power mode of QSPI</title><link>https://devzone.nordicsemi.com/thread/222054?ContentTypeID=1</link><pubDate>Tue, 26 Nov 2019 10:53:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d6a23ccf-6563-4926-b216-3be21bcde096</guid><dc:creator>royalbee</dc:creator><description>&lt;p&gt;Maybe you can provide DPM example for one specific flash device, in order to understand the flow needed to enter and exit DPM?&lt;br /&gt;&lt;br /&gt;It is not clear when to set each of the DPM related registers&amp;nbsp;and also how to do that in conjunction with the call to&amp;nbsp;nrfx_qspi_uninit():&amp;nbsp; do we need to modify the registers inside the uninit() code ?&lt;br /&gt;&lt;br /&gt;Maybe use macronix flash (that is used on the DK) for such example?&lt;/p&gt;
&lt;p&gt;This will be very helpful, thanks.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Deep power mode of QSPI</title><link>https://devzone.nordicsemi.com/thread/219663?ContentTypeID=1</link><pubDate>Tue, 12 Nov 2019 13:02:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:10cd573b-52b9-4c56-bf5b-1c010509753a</guid><dc:creator>haakonsh</dc:creator><description>&lt;p&gt;We do not have an example as each flash chip seems to have a unique way of entering DPM. You&amp;#39;ll need to read the datasheet of the flash you&amp;#39;re using and set the proper registers as according to the nRF52840 PS:&lt;/p&gt;
&lt;h2&gt;Deep power-down mode&lt;/h2&gt;
&lt;div&gt;
&lt;p&gt;The external flash memory can be put in deep power-down mode (DPM) to minimize its current consumption when there is no need to access the memory.&lt;/p&gt;
&lt;p&gt;DPM is enabled in the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://infocenter.nordicsemi.com/topic/ps_nrf52840/qspi.html?cp=3_0_0_5_18_6#register.IFCONFIG0"&gt;IFCONFIG0&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;register and configured in the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://infocenter.nordicsemi.com/topic/ps_nrf52840/qspi.html?cp=3_0_0_5_18_6#register.DPMDUR"&gt;DPMDUR&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;register. The DPM status of the external memory can be read in the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://infocenter.nordicsemi.com/topic/ps_nrf52840/qspi.html?cp=3_0_0_5_18_6#register.STATUS"&gt;STATUS&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;register. The DPMDUR register has to be configured according to the external flash specification to get the information in the STATUS register and the timing of the READY event correct.&lt;/p&gt;
&lt;p&gt;Entering/exiting DPM is controlled using the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://infocenter.nordicsemi.com/topic/ps_nrf52840/qspi.html?cp=3_0_0_5_18_6#register.IFCONFIG1"&gt;IFCONFIG1&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;register.&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>