<?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>nrf51422 ANT interrupts and WS2812b</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/11394/nrf51422-ant-interrupts-and-ws2812b</link><description>I am having an issue implementing a WS2812b driver for the nrf51422 using the 210 softdevice. We currently have ANT enabled with a tx master only channel setup. The WS2812b driver uses bit-banging to transmit the bit pattern to a strand of LEDs. Due to</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Sat, 23 Jan 2016 07:02:39 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/11394/nrf51422-ant-interrupts-and-ws2812b" /><item><title>RE: nrf51422 ANT interrupts and WS2812b</title><link>https://devzone.nordicsemi.com/thread/42948?ContentTypeID=1</link><pubDate>Sat, 23 Jan 2016 07:02:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:60d15d04-44be-4af8-a147-fcb8ec250149</guid><dc:creator>bradm6</dc:creator><description>&lt;p&gt;Awesome. I tried your suggestion and with a few modifications it worked. That being said I had to call my  led bit banging function inside the radio notification event handler else the bit stream would get corrupted. I hypothesize that decoupling the bit banging from the radio notification event handler results in scenarios where the bit banging starts when the radio is inactive but changes to active a short while later. We are using ANT with a very small period which likely causes issues on the bit banging (which occurs at a different frequency).&lt;/p&gt;
&lt;p&gt;All in all it appears to be stable now. Thank you for all your help Kenneth!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nrf51422 ANT interrupts and WS2812b</title><link>https://devzone.nordicsemi.com/thread/42947?ContentTypeID=1</link><pubDate>Fri, 22 Jan 2016 10:01:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fa61dbda-ff3b-4a97-a11f-4021925b8ecb</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;It was originally made for BLE, but I can&amp;#39;t see any problem to use it for ANT also. The underlying softdevice call is at least identical, only the SDK library use the ble_ prefix.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nrf51422 ANT interrupts and WS2812b</title><link>https://devzone.nordicsemi.com/thread/42946?ContentTypeID=1</link><pubDate>Thu, 21 Jan 2016 18:30:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3169d82e-f640-4ce3-b44a-d941aede3086</guid><dc:creator>bradm6</dc:creator><description>&lt;p&gt;Oh nice thats what I was looking for. When I saw this before I was lead to believe this only works for bluetooth. This does work with ANT as well correct?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nrf51422 ANT interrupts and WS2812b</title><link>https://devzone.nordicsemi.com/thread/42945?ContentTypeID=1</link><pubDate>Thu, 21 Jan 2016 17:43:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9ed36604-ce5d-4045-a4a5-cb21a88c7f45</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;Updated the answer with an example. Hope it helps.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nrf51422 ANT interrupts and WS2812b</title><link>https://devzone.nordicsemi.com/thread/42944?ContentTypeID=1</link><pubDate>Wed, 20 Jan 2016 00:37:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:67403138-21dc-49f8-9e55-5fc2416e4f75</guid><dc:creator>bradm6</dc:creator><description>&lt;p&gt;Thank you for the response. I did see chapter 7 describing the radio notification but I am not sure how it is used. The soft device specification does not seem to provide information on how it would be used (functions etc) and a look at the SDK documentation only provides function prototypes.. Do you think you could provide an example?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nrf51422 ANT interrupts and WS2812b</title><link>https://devzone.nordicsemi.com/thread/42943?ContentTypeID=1</link><pubDate>Tue, 19 Jan 2016 10:27:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:24e78610-b35b-4848-95cd-1d9d2cd3a3e2</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;You can find in the S210 softdevice specification the interrupt latency the softdevice will introduce during an ANT protocol event, see chapter 11: &lt;a href="https://www.nordicsemi.com/eng/nordic/download_resource/20359/10/51629523"&gt;www.nordicsemi.com/.../51629523&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Note: To find which S210 softdevice specification document that apply to your S210 release, you should check the nRF51 Series Compatibility Matrix first.&lt;/p&gt;
&lt;p&gt;If you are using a master channel, you can find in the ANT power profiles in chapter 12 that a transmit is always followed by a receive period. This receive period is used for possible bi-directional data from the slave, the event might extend further if for instance the slave is sending a burst-transmission or ask for an acknowledge of data. The receive period is also used for adaptive transmission, to allow many ANT devices to communicate concurrently without interference from one another.&lt;/p&gt;
&lt;p&gt;The only way to be sure that the ANT event is complete is to use radio notification as described in chapter 7. You can then start bit-banging after nACTIVE signal with no interrupts until next ANT event.&lt;/p&gt;
&lt;p&gt;You might include the ble_radio_notification module in the SDK to enable radio notifications.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#include &amp;quot;ble_radio_notification.h&amp;quot;

ble_radio_notification_init(APP_IRQ_PRIORITY_LOW,
NRF_RADIO_NOTIFICATION_DISTANCE_800US,
ble_radio_notification_evt_handler);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Callback:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;static bool m_radio_active;
void ble_radio_notification_evt_handler(bool radio_active)
{
    m_radio_active = radio_active;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then you simply need to wait for !m_radio_active.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>