<?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 always busy, error 17, cannot calibrate</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/21115/saadc-always-busy-error-17-cannot-calibrate</link><description>I&amp;#39;ve looked through and tried many examples on getting my SAADC to produce a temperature offset. About a month ago I had the SAADC working really well with a wheatstone bridge pressure sensor. It used a single channel differential input instance with</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 05 Apr 2017 18:37:50 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/21115/saadc-always-busy-error-17-cannot-calibrate" /><item><title>RE: SAADC always busy, error 17, cannot calibrate</title><link>https://devzone.nordicsemi.com/thread/82614?ContentTypeID=1</link><pubDate>Wed, 05 Apr 2017 18:37:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:408b8e6a-6e37-4099-a9a2-5ed4ecc1a33e</guid><dc:creator>Ryjan</dc:creator><description>&lt;p&gt;Thanks Jørgen. I removed one buffer and moved the &amp;#39;nrf_drv_buffer_convert()&amp;#39; function to the end of the event handler. This has fixed the busy error when attempting to calibrate. My other issue now is with the data in the buffer, but I&amp;#39;m digging through that first.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SAADC always busy, error 17, cannot calibrate</title><link>https://devzone.nordicsemi.com/thread/82613?ContentTypeID=1</link><pubDate>Wed, 05 Apr 2017 13:42:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:52611cdb-fa24-426c-a6c9-e02a22477c30</guid><dc:creator>J&amp;#248;rgen Holmefjord</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;The interrupt handler of the SAADC driver will not set the state to IDLE if there is a second buffer setup for conversion. Since you are using double buffering and setup the buffer again before calling the calibration task in the SAADC event handler, the SAADC will never be in IDLE state. This is the reason that you always get the busy return code.&lt;/p&gt;
&lt;p&gt;You can try using a single buffered setup.&lt;/p&gt;
&lt;p&gt;I will check internally if this is intentional, or if this is a bug in the driver.&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>