<?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>Best practice for monitoring coin cell battery voltage given ESR</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/27424/best-practice-for-monitoring-coin-cell-battery-voltage-given-esr</link><description>I&amp;#39;m using an NRF51 w/ S130 operated directly from a coin cell battery. I use the ADC with a voltage divider to successfully measure analog voltages. One of the challenges of the coin cell is that its ESR is not insignificant and degrades overtime. This</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 23 Nov 2017 12:00:54 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/27424/best-practice-for-monitoring-coin-cell-battery-voltage-given-esr" /><item><title>RE: Best practice for monitoring coin cell battery voltage given ESR</title><link>https://devzone.nordicsemi.com/thread/108313?ContentTypeID=1</link><pubDate>Thu, 23 Nov 2017 12:00:54 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ba4b7411-aa7e-4328-bb45-a8e41296b7eb</guid><dc:creator>Bj&amp;#248;rn Kvaale</dc:creator><description>&lt;p&gt;If I were you, I would take a look at one of the &lt;a href="https://github.com/NordicPlayground/nrf51-ADC-examples"&gt;adc examples found on the nordic playground github page&lt;/a&gt;. Maybe the &lt;code&gt;ble_app_uart_adc_simple&lt;/code&gt; example. This example basically uses UART with an added ADC functionality.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Best practice for monitoring coin cell battery voltage given ESR</title><link>https://devzone.nordicsemi.com/thread/108315?ContentTypeID=1</link><pubDate>Wed, 22 Nov 2017 23:24:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:807ad7ac-4f72-46e8-b949-53143e0494f5</guid><dc:creator>David</dc:creator><description>&lt;p&gt;Thanks for the note, Bjorn.  A lower sampling rate is fine.  How do I go about synchronizing this?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Best practice for monitoring coin cell battery voltage given ESR</title><link>https://devzone.nordicsemi.com/thread/108314?ContentTypeID=1</link><pubDate>Wed, 22 Nov 2017 14:26:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0042f174-8ba1-4f10-bedd-8a49622608f1</guid><dc:creator>Bj&amp;#248;rn Kvaale</dc:creator><description>&lt;p&gt;Talked to an expert here at Nordic and it should be possible to use the ADC while the radio is transmitting. As you are using the nrf51, you will get a lower ADC sample rate with a lot of radio activity, as the nrf51 does not have &lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.nrf52832.ps.v1.1/easydma.html?cp=2_1_0_9#easydma"&gt;easyDMA&lt;/a&gt; (the nrf52 does). On the nrf51, you will need to communicate with the cpu to get the voltage measurements from the ADC. Since the radio uses the CPU for transmission, the sampling rate of the ADC will decrease with heavy radio usage. If you used the nrf52, you would not need to communicate via the CPU to get voltage measurements (because the nrf52 has easy dma)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Best practice for monitoring coin cell battery voltage given ESR</title><link>https://devzone.nordicsemi.com/thread/108310?ContentTypeID=1</link><pubDate>Tue, 21 Nov 2017 21:35:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:75841bd1-3a67-481d-894c-3bc048fdf5a5</guid><dc:creator>rct42</dc:creator><description>&lt;p&gt;@David: I&amp;#39;m probably misinterpreting your situation, but you don&amp;#39;t need a voltage divider for measuring the battery voltage (when your microcontroller is connected directly to the coin cell) using the aforementioned technique. On the issue of sampling when the transmit is occurring, have a look into the &amp;quot;Radio Notification Events Handler&amp;quot;. If this doesn&amp;#39;t work out, you could always connect an unused GPIO to VDD_PA and configure the GPIO to interrupt on state changes.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Best practice for monitoring coin cell battery voltage given ESR</title><link>https://devzone.nordicsemi.com/thread/108312?ContentTypeID=1</link><pubDate>Tue, 21 Nov 2017 17:36:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4163c843-377c-4f82-8f38-e48c2fadceab</guid><dc:creator>David</dc:creator><description>&lt;p&gt;That&amp;#39;s interesting -- the spikes I see are an order of magnitude lower than that, but I suppose I could try the same technique with more realistic currents.  I assume your suggestion is that once I have the ESR I can know what my max current spike at some nominal voltage is, and infer a V_drop based off this value and the ESR.  I see a few potential problems with this: 1. the battery is user replaceable and different batteries have different ESRs (I&amp;#39;ve found massive differences between different brands) and 2. it seems like to make this work I&amp;#39;ll have to be quite conservative and potentially leave a lot of battery life on the table.&lt;/p&gt;
&lt;p&gt;Is there a way to sample the ADC while the radio is transmitting?  It seems to me like this is the cleanest solution.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Best practice for monitoring coin cell battery voltage given ESR</title><link>https://devzone.nordicsemi.com/thread/108309?ContentTypeID=1</link><pubDate>Tue, 21 Nov 2017 17:28:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a53b3936-7d07-45fc-ab80-da4e21de90a2</guid><dc:creator>David</dc:creator><description>&lt;p&gt;@Bjorn -- yes I&amp;#39;ve used the PPK. My spikes are on the order of 15 mA, but with an ESR of ~20 ohm on a coin cell this can result in substantial voltage drop.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Best practice for monitoring coin cell battery voltage given ESR</title><link>https://devzone.nordicsemi.com/thread/108308?ContentTypeID=1</link><pubDate>Tue, 21 Nov 2017 17:27:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c4e03d95-720c-4819-901d-baa9012b2c95</guid><dc:creator>David</dc:creator><description>&lt;p&gt;@rct42: I currently use the internal bandgap as the reference voltage.&lt;/p&gt;
&lt;p&gt;I have 10 uF bulk capacitance on board and have tried as much as 20 uF with similar results.&lt;/p&gt;
&lt;p&gt;That&amp;#39;s interesting -- when you use the EVENT_TX are you ensured that the sampling actually takes place &lt;em&gt;during&lt;/em&gt; the radio transmitting or is it simply synchronized to the transmission?&lt;/p&gt;
&lt;p&gt;Since I&amp;#39;m not trying to do any sort of fuel gauge I think the easiest thing to do is measure the worst case battery V (e.g. during the droop).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Best practice for monitoring coin cell battery voltage given ESR</title><link>https://devzone.nordicsemi.com/thread/108311?ContentTypeID=1</link><pubDate>Tue, 21 Nov 2017 13:57:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0228d3f2-3ed2-4270-ab33-d21f93f81288</guid><dc:creator>Bj&amp;#248;rn Kvaale</dc:creator><description>&lt;p&gt;An easy solution I could suggest would be to take a simple discharge test using a fully charged coin cell battery. Then, by doing a constant current pulse (e.g. somewhere between 200-300 mA) for a few minutes (say 10 or 20) and then stop the current pulse after the time limit. Then, you should get a graph that is similar to this:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/esr.PNG" alt="image description" /&gt;&lt;/p&gt;
&lt;p&gt;This graph was found on Prof. &lt;a href="http://mocha-java.uccs.edu/ECE5710/index.html"&gt;Gregory Plett&amp;#39;s homepage in the Chapter 2 PDF file&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;From this graph, you can approximate the R_0 value (i.e. ESR) crudely from Ohm&amp;#39;s law: V=R_0*I. Since you can calculate the change in voltage and you know the Delta I (i.e. the difference between the current pulse and 0 A), you can approximate R_0. Like you said, the ESR does increase as the state of health of the battery decreases. So maybe, you could try this on a &amp;quot;used&amp;quot; or multiple used battery, but which still has/have a bit of charge left in it.&lt;/p&gt;
&lt;p&gt;It is always a possibility to do some battery testing &amp;amp; find a better estimate of R_0, but this would take more time &amp;amp; computing resources. I would try this first &amp;amp; if you don&amp;#39;t think it&amp;#39;s a good idea we can discuss more advanced methods.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Best practice for monitoring coin cell battery voltage given ESR</title><link>https://devzone.nordicsemi.com/thread/108307?ContentTypeID=1</link><pubDate>Tue, 21 Nov 2017 13:50:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4968f05b-88e3-465f-906a-b0e487260b13</guid><dc:creator>Bj&amp;#248;rn Kvaale</dc:creator><description>&lt;p&gt;What kind of current pulses are we talking about? Have you tried measuring the current using the Nordic Power Profiling Kit yet?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Best practice for monitoring coin cell battery voltage given ESR</title><link>https://devzone.nordicsemi.com/thread/108306?ContentTypeID=1</link><pubDate>Tue, 21 Nov 2017 04:24:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6b12cac5-dcba-4306-942a-22c0c534d789</guid><dc:creator>rct42</dc:creator><description>&lt;p&gt;Assuming your device is powered straight from a coin cell, have a look at measuring the battery voltage via the &lt;a href="https://jeelabs.org/2012/05/04/measuring-vcc-via-the-bandgap/"&gt;bandgap method&lt;/a&gt; (this link is for a different microncontroller but the general principle holds). This will reduce your system&amp;#39;s quiescent current.&lt;/p&gt;
&lt;p&gt;You should reduce the spikes (and increase the life of your coin cell) via large decoupling capacitors.&lt;/p&gt;
&lt;p&gt;I haven&amp;#39;t used the S130 BLE stack, but I&amp;#39;ve used the EVENT_TX event in the ANT+ stacks to synchronize tasks when the radio is transmitting.&lt;/p&gt;
&lt;p&gt;I&amp;#39;d imagine you could infer the health / capacity of the coin cell by measuring its voltage and comparing against a known voltage vs capacity curve. This curve could be found experimentally or from the coin cell datasheet.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>