<?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>Minimize CPU time used by BLE</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/20103/minimize-cpu-time-used-by-ble</link><description>My application is doing kind of old communication with an old machine.
Communication line is bit banged by an GPIO. Baud rate is 0.5ms.
&amp;quot;Start bit&amp;quot; is still used to synchronized the start of a packet. I use GPIOIE to get the start bit, then Timer2 is</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 24 Mar 2017 12:00:51 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/20103/minimize-cpu-time-used-by-ble" /><item><title>RE: Minimize CPU time used by BLE</title><link>https://devzone.nordicsemi.com/thread/78283?ContentTypeID=1</link><pubDate>Fri, 24 Mar 2017 12:00:51 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d8e0773e-3c85-407a-933f-3117207ebb1a</guid><dc:creator>run_ar</dc:creator><description>&lt;p&gt;ok, maybe better to stick with the device manager then. I don&amp;#39;t think it&amp;#39;s worth using the experimental peer manager, or backporting the later version.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Minimize CPU time used by BLE</title><link>https://devzone.nordicsemi.com/thread/78281?ContentTypeID=1</link><pubDate>Wed, 15 Mar 2017 16:28:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b4f569f7-de67-4f44-bc34-f921b949e10e</guid><dc:creator>Paul</dc:creator><description>&lt;p&gt;Thanks run_ar, but SDK10 is the last one supporting S310 softdevice.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Minimize CPU time used by BLE</title><link>https://devzone.nordicsemi.com/thread/78282?ContentTypeID=1</link><pubDate>Wed, 15 Mar 2017 15:44:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1d647f9f-635f-44a4-a004-6c73bfeb7512</guid><dc:creator>run_ar</dc:creator><description>&lt;p&gt;The peer manager in SDK 10 is experimental. I would recommend using at least the first &amp;quot;stable&amp;quot; version, but preferably use the latest and greatest.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Minimize CPU time used by BLE</title><link>https://devzone.nordicsemi.com/thread/78278?ContentTypeID=1</link><pubDate>Fri, 03 Mar 2017 17:40:38 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:cbf8735a-a62a-427a-b550-7482f232e8fd</guid><dc:creator>Paul</dc:creator><description>&lt;p&gt;Good idea. I can schedule the time slot just a little earlier before the 240ms event to make sure I get the start bit and then schedule another 16 time slots to check the incoming bits and bang out response bits.
I am using SDK12.0.0 on other projects which has peer manager module. I noticed that SDK10.0.0 has fstorage and fds as experimental and a BLE relay example using peer manager. Is there any known reason that I cannot use peer manager came with SDK10.0.0?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Minimize CPU time used by BLE</title><link>https://devzone.nordicsemi.com/thread/78277?ContentTypeID=1</link><pubDate>Fri, 03 Mar 2017 10:11:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0005f488-35c6-4b91-8c19-1a723e5a302d</guid><dc:creator>run_ar</dc:creator><description>&lt;p&gt;You should be able to make this work by using the timeslot API. A Timeslot with high priority has the same priority as a normal connection interval. So if you use a connection interval that is faster than the timeslot interval, the timeslot interval will be scheduled before the connection interval, so if you have a collision the timeslot will take priority as it is already scheduled. But there are a couple of exceptions. e.g. if you have a connection parameter update or the ble connection is about to timeout the ble connection will take priority. What requirements do you have for ANT traffic (Since you are using S310)?&lt;/p&gt;
&lt;p&gt;Yes, SDK 10 is the latest SDK that supports S310. You can see this in our &lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.nrf51/dita/nrf51/compatibility_matrix/nRF51422_nRF51822_ic_rev_sdk_sd_comp_matrix.html?cp=3_0_4"&gt;compatibility matrix&lt;/a&gt; in infocenter.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Minimize CPU time used by BLE</title><link>https://devzone.nordicsemi.com/thread/78273?ContentTypeID=1</link><pubDate>Thu, 02 Mar 2017 18:21:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e2fe0799-0e1a-45dc-b5fb-5994b785f43c</guid><dc:creator>Paul</dc:creator><description>&lt;p&gt;I am using SDK9.0.0. Is SDK10.0.0 the last SDK supporting S310? Maybe I should update my SDK to V10.0.0.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Minimize CPU time used by BLE</title><link>https://devzone.nordicsemi.com/thread/78276?ContentTypeID=1</link><pubDate>Thu, 02 Mar 2017 14:40:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:320f553a-b5e4-4b26-bf46-e05418027a8e</guid><dc:creator>Paul</dc:creator><description>&lt;p&gt;Thanks. I will check the manual again. I am using S310 V3.0.0.
The old machine is sending out a command every 240ms, and nRF51422 has to respond in right timing, receiving 8 bits and respond 8 bits, every bit is 0.5ms.
When BLE lower stack pushes the old comm timing away, the old machine is not happy. It happens once every a few minute, not very often, but still not acceptable.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Minimize CPU time used by BLE</title><link>https://devzone.nordicsemi.com/thread/78274?ContentTypeID=1</link><pubDate>Thu, 02 Mar 2017 13:46:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1fc89c38-6fc2-4bf4-a84d-b23b7c8e2689</guid><dc:creator>run_ar</dc:creator><description>&lt;p&gt;Does that mean you are using S310 then? which version is it? You should look at the max time for lower stack interrupts, as these are the highest priority. Upperstack interrupts are lower priority so you can use application high to get higher priorities for your application. I would assume the lower stack interrupt is about 1.5 ms maximum (for newer softdevice we are looking at 0.2-0.3 ms). Not sure where you see 100ms.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Minimize CPU time used by BLE</title><link>https://devzone.nordicsemi.com/thread/78275?ContentTypeID=1</link><pubDate>Thu, 02 Mar 2017 12:53:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:83372a6f-fba9-4077-aad0-c50c830e4b96</guid><dc:creator>Paul</dc:creator><description>&lt;p&gt;I am using 51422. According to the user&amp;#39;s manual, BLE stack may take over up to 100ms.
Is this correct or I am reading it wrong?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Minimize CPU time used by BLE</title><link>https://devzone.nordicsemi.com/thread/78280?ContentTypeID=1</link><pubDate>Thu, 02 Mar 2017 09:22:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8707ca3e-ae0b-41fb-9ae5-6aef8efefea5</guid><dc:creator>run_ar</dc:creator><description>&lt;p&gt;@Paul: How much time does the bit banged communication take (the time critical part that is)? It might be possible to change the interrupt priorities if you only use a few µs of time in your interrupts. But please note that this is not something we have tested internally so it will be unsupported and done at your own risk. It might also be possible to use the timeslot api for this. But the high priority timeslot will have the same priority as normal ble activity so it depends on what is scheduled first. Which softdevice are you using?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Minimize CPU time used by BLE</title><link>https://devzone.nordicsemi.com/thread/78279?ContentTypeID=1</link><pubDate>Wed, 01 Mar 2017 21:25:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bb33dec9-a2c6-4700-acb7-da81842333d0</guid><dc:creator>Roger Clark</dc:creator><description>&lt;p&gt;I&amp;#39;m not sure if its possible to make the BLE stack lower priority as this would mean that the BLE would fail to work correctly.&lt;/p&gt;
&lt;p&gt;I think you need to think of an alternative strategy&lt;/p&gt;
&lt;p&gt;What nRF5x processor are you using, e.f. can you use PPI or some similar feature to handle the bit banging&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>