<?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>SAADC low power scan mode</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/20895/saadc-low-power-scan-mode</link><description>Greetings, 
 I have a setup where I have a periodic single channel low power SAADC implementation. In this the configuration is 
 
 A single SAADC channel is initialized (10 us acquisition time, differential, gain 4, 12 bit, internal reference) 
</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 19 Apr 2017 12:28:53 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/20895/saadc-low-power-scan-mode" /><item><title>RE: SAADC low power scan mode</title><link>https://devzone.nordicsemi.com/thread/81597?ContentTypeID=1</link><pubDate>Wed, 19 Apr 2017 12:28:53 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:12b2201f-5b68-4f79-bc88-c08232c17bdf</guid><dc:creator>J&amp;#248;rgen Holmefjord</dc:creator><description>&lt;p&gt;You are not allowed to set &lt;code&gt;RESULT.MAXCNT=1&lt;/code&gt; when multiple channels are enabled. From the &lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.nrf52840.ps/saadc.html?cp=2_1_0_35_5#saadc_easydma"&gt;documentation&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In Scan mode, the size of the Result
buffer must be large enough to have
room for a minimum one result from
each of the enabled channels. To
secure this, RESULT.MAXCNT must be
specified to RESULT.MAXCNT &amp;gt;= &amp;quot;number
of channels enabled&amp;quot;.&lt;/p&gt;
&lt;/blockquote&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SAADC low power scan mode</title><link>https://devzone.nordicsemi.com/thread/81596?ContentTypeID=1</link><pubDate>Mon, 03 Apr 2017 12:02:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:42f69119-5545-464c-8808-3e4a8eeb8325</guid><dc:creator>FormerMember</dc:creator><description>&lt;p&gt;Yes, this is what I&amp;#39;m looking for. For a single channel the uninit can be done by the PPI &lt;code&gt;SAADC_EVENT_END -&amp;gt; SAADC_TASK_STOP&lt;/code&gt;. For multiple channels, even with &lt;code&gt;RESULT.MAXCNT=1&lt;/code&gt; it looks like the EasyDMA is getting activated. Is this a hardware bug? Would this be fixed in the next revision?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SAADC low power scan mode</title><link>https://devzone.nordicsemi.com/thread/81598?ContentTypeID=1</link><pubDate>Mon, 03 Apr 2017 11:44:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:02485032-2683-4fb6-b6e9-1bafd67f4f2f</guid><dc:creator>J&amp;#248;rgen Holmefjord</dc:creator><description>&lt;p&gt;If you mean that you want to avoid the &lt;code&gt;NRF_DRV_SAADC_EVT_DONE&lt;/code&gt; event, and still keep low power and only wakeup on channels crossing the limits, I don&amp;#39;t think this is possible. You would not be able to uninit the SAADC between sampling times, meaning the additional EasyDMA current will be present.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SAADC low power scan mode</title><link>https://devzone.nordicsemi.com/thread/81595?ContentTypeID=1</link><pubDate>Mon, 03 Apr 2017 09:35:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b2610521-7b9f-4a94-9421-1ecf8a53f437</guid><dc:creator>FormerMember</dc:creator><description>&lt;p&gt;Yes, I&amp;#39;m using it to set the limits.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SAADC low power scan mode</title><link>https://devzone.nordicsemi.com/thread/81594?ContentTypeID=1</link><pubDate>Mon, 03 Apr 2017 08:59:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9b5a3d5f-7941-4427-b214-ff6d181af3d2</guid><dc:creator>J&amp;#248;rgen Holmefjord</dc:creator><description>&lt;p&gt;Have you looked at the function &lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk5.v13.0.0/group__nrf__drv__saadc.html#ga086c0f446ea2808ea84d89b3948eedad"&gt;&lt;code&gt;nrf_drv_saadc_limits_set()&lt;/code&gt;&lt;/a&gt;?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SAADC low power scan mode</title><link>https://devzone.nordicsemi.com/thread/81593?ContentTypeID=1</link><pubDate>Fri, 31 Mar 2017 14:09:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:306ecd0c-99ad-4399-bcbe-c16bcfd60f58</guid><dc:creator>FormerMember</dc:creator><description>&lt;p&gt;I went through your code and see what you&amp;#39;re doing. Thanks. My question still stands: Is there any low power way to have two channels sampling periodically with the processor waking up only if any of the two channels cross its limits? The question has been updated to provide some context.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SAADC low power scan mode</title><link>https://devzone.nordicsemi.com/thread/81592?ContentTypeID=1</link><pubDate>Fri, 31 Mar 2017 13:44:59 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3dd414e3-f723-4bcf-bdd9-f15e7e88bd41</guid><dc:creator>FormerMember</dc:creator><description>&lt;p&gt;Thanks Jørgen. I&amp;#39;ll take a look and get back.&lt;/p&gt;
&lt;p&gt;Regarding the burst mode and oversampling, I want what&amp;#39;s described in the link that you sent. For both the channels being sampled, I would like 2^OVERSAMPLE samples to be averaged in each channel since the signal level in my application is now. This should be possible when the burst mode is enabled in both the channels, right?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SAADC low power scan mode</title><link>https://devzone.nordicsemi.com/thread/81591?ContentTypeID=1</link><pubDate>Fri, 31 Mar 2017 09:24:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7ff378f4-f8cd-4268-9f57-f988e40a5a4f</guid><dc:creator>J&amp;#248;rgen Holmefjord</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;First, you should not use oversampling with scan mode (multiple channels enabled), due to the &lt;a href="https://devzone.nordicsemi.com/question/121542/how-does-the-saadc-scan-mode-use-the-burst1/"&gt;reason described here&lt;/a&gt;. Also, burst mode would not give you any benefit in this setup, and should be disabled.&lt;/p&gt;
&lt;p&gt;I modified &lt;a href="https://github.com/NordicSemiconductor/nRF52-ADC-examples/tree/master/saadc_low_power"&gt;this example&lt;/a&gt; (based on SDK 11) to work with two channelse and a sampling rate of ~20 ms (make sure RTC frequency is set to 32768). With these settings, the PPK reports an average current consumption of ~30 µA. The example does use EasyDMA, but it will disable the SAADC periheral between sampling, which also turns off EasyDMA. I guess you can try to tweak it further, but at least it is better than the 6-700 you got. You can use this as reference for your own development if you want.&lt;/p&gt;
&lt;p&gt;Note that the example is not thoroughly tested and is not an official release from Nordic.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/saadc_5F00_low_5F00_power_5F00_multiple_5F00_channels.zip"&gt;saadc_low_power_multiple_channels.zip&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Jørgen&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>