<?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 battery measurement current consumption</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/27070/saadc-battery-measurement-current-consumption</link><description>Hello, 
 I&amp;#39;m trying to measure battery voltage on nRF52832 chip using SAADC based on examples/peripheral/saadc and examples/ble_peripheral/ble_app_proximity and noticed that just enabling saadc makes my device consume ~7mA constantly. 
 This is the</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 24 Nov 2017 10:17:55 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/27070/saadc-battery-measurement-current-consumption" /><item><title>RE: SAADC battery measurement current consumption</title><link>https://devzone.nordicsemi.com/thread/106418?ContentTypeID=1</link><pubDate>Fri, 24 Nov 2017 10:17:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bd15e730-b4b9-4fba-b098-b4f0f104fd9a</guid><dc:creator>J&amp;#248;rgen Holmefjord</dc:creator><description>&lt;p&gt;I don&amp;#39;t know what your application requirements are, but some of our &lt;a href="http://www.nordicsemi.com/eng/Products/3rd-Party-Bluetooth-low-energy-Modules"&gt;module partners&lt;/a&gt; have implemented custom firmwares with AT comand set, using our nRF52832 IC, for instance &lt;a href="https://www.lairdtech.com/products/bl652-ble-module"&gt;Laird&lt;/a&gt;: &lt;a href="https://assets.lairdtech.com/home/brandworld/files/User%20Guide%20-%20BL652%20AT%20Interface%20Application.pdf"&gt;User Guide - BL652 AT Interface Application.pdf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you only need a low battery warning, you can also use the &lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.nrf52832.ps.v1.1/lpcomp.html?cp=2_1_0_38#concept_tdv_zkx_lr"&gt;Low Power comparator (LPCOMP) peripheral&lt;/a&gt;, but this will require you to have a stable/regulated VDD or stable external reference voltage for comparison.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SAADC battery measurement current consumption</title><link>https://devzone.nordicsemi.com/thread/106420?ContentTypeID=1</link><pubDate>Wed, 22 Nov 2017 15:43:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:eee31cd2-295e-4dab-8a09-4212939b72c6</guid><dc:creator>Jeff</dc:creator><description>&lt;p&gt;Jorgen, to be honest I haven&amp;#39;t got the bandwidth to learn all the BLE stuff.  I took a project where the initial conditions were supposed to be a BLE pair that worked out of the box with AT commands to the central.  Life did not work out that way and i was trying to see if i could take on the extra scope for my client.  I am quickly deciding i don&amp;#39;t have the bandwidth right now, but maybe it is easier than I think.&lt;/p&gt;
&lt;p&gt;To date I have managed to compile and run BLE peripheral blinky and hardware SAADC.  I have not yet considered how to add SAADC battery monitor to Blinky, how to report the low battery condition, or how to sleep the peripheral with a wake on communications.  The client has a little remaining budget for assistance on this and the central (control several blinky-plus-battery peripherals via AT commands or similar).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SAADC battery measurement current consumption</title><link>https://devzone.nordicsemi.com/thread/106419?ContentTypeID=1</link><pubDate>Wed, 22 Nov 2017 15:26:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6ddde21c-a9af-4732-8393-b966ed37693d</guid><dc:creator>J&amp;#248;rgen Holmefjord</dc:creator><description>&lt;p&gt;It should not be a problem to do a blocking sample and update the battery service manually. Are you using the ble_app_proximity example?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SAADC battery measurement current consumption</title><link>https://devzone.nordicsemi.com/thread/106417?ContentTypeID=1</link><pubDate>Wed, 22 Nov 2017 03:30:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b6a76191-e924-43e6-8942-f98ce66275b4</guid><dc:creator>Jeff</dc:creator><description>&lt;p&gt;Does the battery reporter service need to have non-blocking, recurring ADC or can this be done on a timer with a single call to  nrf_drv_saadc_sample_convert?  I am really just looking for a low battery voltage warning.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SAADC battery measurement current consumption</title><link>https://devzone.nordicsemi.com/thread/106409?ContentTypeID=1</link><pubDate>Tue, 04 Jul 2017 09:12:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9602bbff-8c12-41bc-a3e4-47a5c40bf393</guid><dc:creator>Luk3</dc:creator><description>&lt;p&gt;Great. Thank you.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SAADC battery measurement current consumption</title><link>https://devzone.nordicsemi.com/thread/106408?ContentTypeID=1</link><pubDate>Tue, 04 Jul 2017 09:10:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a856d42d-482b-4abb-a6dc-454e73295f8c</guid><dc:creator>J&amp;#248;rgen Holmefjord</dc:creator><description>&lt;p&gt;I checked this with the developers, the calibration values are retained until chip reset.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SAADC battery measurement current consumption</title><link>https://devzone.nordicsemi.com/thread/106413?ContentTypeID=1</link><pubDate>Tue, 04 Jul 2017 08:34:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a677c588-1d00-4441-a6f9-501917d29be1</guid><dc:creator>Luk3</dc:creator><description>&lt;p&gt;Can I please someone from Nordic to answer?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SAADC battery measurement current consumption</title><link>https://devzone.nordicsemi.com/thread/106414?ContentTypeID=1</link><pubDate>Thu, 29 Jun 2017 19:08:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:22440aa0-fdca-4b5a-aafc-abc737a504f0</guid><dc:creator>AmbystomaLabs</dc:creator><description>&lt;p&gt;Great question, but I don&amp;#39;t know the answer.  The specs didn&amp;#39;t provide any answers either.
It would certainly save on power if it did save the cal data.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SAADC battery measurement current consumption</title><link>https://devzone.nordicsemi.com/thread/106412?ContentTypeID=1</link><pubDate>Wed, 28 Jun 2017 12:12:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6b741d5d-f8c1-4a9f-8eb2-2c0dbe9a5f5e</guid><dc:creator>Luk3</dc:creator><description>&lt;p&gt;My device works at room temperature. I need to perform calibration once at startup but to achieve low power consumption I am disabling ADC like AmbystomaLabs said. Does the SAADC rember calibration after disabling?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SAADC battery measurement current consumption</title><link>https://devzone.nordicsemi.com/thread/106411?ContentTypeID=1</link><pubDate>Wed, 28 Jun 2017 11:30:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:16e21602-b455-4ae2-8a2e-433ec454b1d6</guid><dc:creator>J&amp;#248;rgen Holmefjord</dc:creator><description>&lt;p&gt;From the product specification:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&amp;quot;The ADC has a temperature dependent offset. If the ADC is to operate over
a large temperature range, we
recommend running CALIBRATEOFFSET at
regular intervals&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;You should run calibration on regular interval, or with change in temperature.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SAADC battery measurement current consumption</title><link>https://devzone.nordicsemi.com/thread/106410?ContentTypeID=1</link><pubDate>Tue, 27 Jun 2017 23:15:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f5e4507b-34b1-4970-b219-778235e0b14f</guid><dc:creator>Luk3</dc:creator><description>&lt;p&gt;What about calibrating offset? Does saadc need recalibration after each init?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SAADC battery measurement current consumption</title><link>https://devzone.nordicsemi.com/thread/106416?ContentTypeID=1</link><pubDate>Thu, 09 Mar 2017 09:08:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f4c16c42-dbda-445a-bebc-e11d618f7514</guid><dc:creator>PB</dc:creator><description>&lt;p&gt;Thank you. The your pointers and low-power SAADC example helped.
My unusual current consumption was also related to using floating point calculations for battery level after ADC sampling&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SAADC battery measurement current consumption</title><link>https://devzone.nordicsemi.com/thread/106407?ContentTypeID=1</link><pubDate>Wed, 08 Mar 2017 14:13:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1c4df9bf-22d5-4010-97ec-c4ef2a3a95eb</guid><dc:creator>AmbystomaLabs</dc:creator><description>&lt;p&gt;As Jorgen mentioned 8mA is unusually high for the SAADC.
Normal consumption even without the low power steps is around 1mA.&lt;/p&gt;
&lt;p&gt;What might not be obvious in the sample code is that you need to turn off the SAADC when you are done with it. So in your handler once you are done reading the buffer, turn off the saadc and clear pending irq.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;	nrf_drv_saadc_uninit();
    NRF_SAADC-&amp;gt;INTENCLR = (SAADC_INTENCLR_END_Clear &amp;lt;&amp;lt; SAADC_INTENCLR_END_Pos);
    NVIC_ClearPendingIRQ(SAADC_IRQn);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In this manner it is only on for at most a millisecond total for init, sample, read buffer and turn off.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SAADC battery measurement current consumption</title><link>https://devzone.nordicsemi.com/thread/106415?ContentTypeID=1</link><pubDate>Wed, 08 Mar 2017 13:18:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b15e79f4-f62c-4b8e-a984-077b952f7a40</guid><dc:creator>J&amp;#248;rgen Holmefjord</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;The SAADC enables EasyDMA, which will increase the current. 8mA does sound very high though. What is the current before SAADC initialization.&lt;/p&gt;
&lt;p&gt;You can try enabling the Low-Power mode of the SAADC driver, as &lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk5.v12.2.0/hardware_driver_saadc.html?cp=4_0_1_2_13_1#saadc_using"&gt;described in the documentation&lt;/a&gt;. This will reduce the current consumption, at the cost of and increased number of interrupts. There is a &lt;a href="https://github.com/NordicSemiconductor/nRF52-ADC-examples/tree/master/saadc_low_power"&gt;low-power SAADC example&lt;/a&gt; available at our GitHub page. Note that this is written for SDK 11, but it should not be a big job to migrate it to SDK 12.2 if this is what you are using.&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>