<?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>Slow set up with nRF8001 on custom board</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/289/slow-set-up-with-nrf8001-on-custom-board</link><description>We have recently moved to a new PCB which puts the nRF8001 on the layout instead of plugging into a nRF2741 development module. The nRF8001 connects to a TI Cortex-M4 Tiva MCU (previously a TI Cortex-M3). 
 Two issues have now arose. In the setup stage</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 16 Apr 2015 09:14:24 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/289/slow-set-up-with-nrf8001-on-custom-board" /><item><title>RE: Slow set up with nRF8001 on custom board</title><link>https://devzone.nordicsemi.com/thread/1547?ContentTypeID=1</link><pubDate>Thu, 16 Apr 2015 09:14:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3ceedf28-558b-4e36-83b1-94be32f6cca6</guid><dc:creator>CCommander</dc:creator><description>&lt;p&gt;How can I get started with this driver? I have no clue, what I have to do to create a BLE service and start advertising.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Slow set up with nRF8001 on custom board</title><link>https://devzone.nordicsemi.com/thread/1546?ContentTypeID=1</link><pubDate>Tue, 20 Aug 2013 12:29:42 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:948b1309-2f87-4dd7-8c84-34305c2f357d</guid><dc:creator>TIE Fighter</dc:creator><description>&lt;p&gt;There is a queue for the ACI commands so you can place the ACI Setup commands in the queue until the queue is full, as the queue gets processed keep filling it up.
You will get a command response event for every Setup command that has been processed, so add a Setup message for every command response that is arriving.
Keep doing this until the nRF8001 sends a Command response event with Transaction complete.&lt;/p&gt;
&lt;h1&gt;In the code in hal_aci_tl.c&lt;/h1&gt;
&lt;h1&gt;//If there are more ACI commands in the queue,
//lower the REQN line immediately
if (false == m_aci_q_is_empty(&amp;amp;aci_tx_q))
{
// Set request pin low to indicate to
//nRF8001 we want to send data
//will prevent the delayed Setup commands that you are seeing
SET_REQN_LOW();
//Wait for the interrupt handler to execute when the RDYN
//goes low again
}&lt;/h1&gt;
&lt;p&gt;This should make the Setup run without any delays.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Slow set up with nRF8001 on custom board</title><link>https://devzone.nordicsemi.com/thread/1549?ContentTypeID=1</link><pubDate>Tue, 20 Aug 2013 06:51:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:205d858b-7123-4cee-8ce6-977a8cadfb59</guid><dc:creator>Kieran</dc:creator><description>&lt;p&gt;Added a small delay to the REQN line being pulled low and that&amp;#39;s reduced the setup time from 20s to 300ms! Excellent, I&amp;#39;ll just work on neatening up the fix. Thanks for the help.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Slow set up with nRF8001 on custom board</title><link>https://devzone.nordicsemi.com/thread/1548?ContentTypeID=1</link><pubDate>Tue, 20 Aug 2013 06:32:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b7355abb-5ebd-42de-9ad2-f7aa0764c2bf</guid><dc:creator>run_ar</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;There is a design limitation in the firmware of the nRF8001. The limitation will cause the nRF8001 to delay servicing the REQN line when it goes low. This will cause the RDYN line to be delayed by up to 1 second. It is also possible for the delay to be lowered by the connection or advertising interval when the radio is running. Example: If the service of the REQN line is delayed when in a connection with a connection interval of 25 ms. The RDYN can be delayed by 25ms.&lt;/p&gt;
&lt;p&gt;Issue:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;After clocking out, the data REQN is set high to indicate end of data.&lt;/li&gt;
&lt;li&gt;The RDYN line will follow and will be high&lt;/li&gt;
&lt;li&gt;Setting the REQN line low 110-125 us after the REQN line goes high will cause the nRF8001 to delay servicing the REQN line.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Workaround:
The workaround is to set the REQN line low outside this 110-125 us window.&lt;/p&gt;
&lt;p&gt;As Tie Fighter suggests, you can change the driver to avoid this problem as an interrupt based system can be more deterministic on the width of the REQN line.&lt;/p&gt;
&lt;p&gt;Best regards,
Runar&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Slow set up with nRF8001 on custom board</title><link>https://devzone.nordicsemi.com/thread/1545?ContentTypeID=1</link><pubDate>Tue, 20 Aug 2013 06:25:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a4f47da7-2ec4-46c5-aac0-8892fde3e876</guid><dc:creator>Kieran</dc:creator><description>&lt;p&gt;Thanks! I&amp;#39;ve just made a change to my code to get responses to work off an interrupt instead of looping round hal_aci_tl_poll_rdy_line, this hasn&amp;#39;t helped noticeably so I&amp;#39;ll try a full integration of the driver you&amp;#39;ve provided.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Slow set up with nRF8001 on custom board</title><link>https://devzone.nordicsemi.com/thread/1543?ContentTypeID=1</link><pubDate>Tue, 20 Aug 2013 06:21:53 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5e483fbc-0ab0-4228-adcd-0f93fc178614</guid><dc:creator>Kieran</dc:creator><description>&lt;p&gt;It&amp;#39;s about 120uS&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Slow set up with nRF8001 on custom board</title><link>https://devzone.nordicsemi.com/thread/1542?ContentTypeID=1</link><pubDate>Tue, 20 Aug 2013 05:40:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:16478d02-bf53-4deb-8dd5-88ce116b7e4c</guid><dc:creator>run_ar</dc:creator><description>&lt;p&gt;I’m having a hard time seeing this from your figure; what is the duration of the last REQN high pulse in your figure?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Slow set up with nRF8001 on custom board</title><link>https://devzone.nordicsemi.com/thread/1544?ContentTypeID=1</link><pubDate>Mon, 19 Aug 2013 10:13:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:11355bd6-71d6-46e4-9bc9-d55e3a84f6b4</guid><dc:creator>TIE Fighter</dc:creator><description>&lt;p&gt;I have attached a nRF8001 driver for the TIVA, this uses an interrupt on the RDYN line to process all commands to the nRF8001 and is quite fast. You should not see any delays in processing the setup command with this deiver.
You can also modify the driver, so that the interrupt just sets a flag and the flag can be read out from the main context.
The driver currently only implements Test, Echo commands and uses the 2 commands to verify that the SPI is running correctly.
This diver also uses a queue for the ACI commands and ACI events. so the calling function can return immediately.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/nRF8001_2D00_TIVA.zip"&gt;nRF8001-TIVA.zip&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Slow set up with nRF8001 on custom board</title><link>https://devzone.nordicsemi.com/thread/1541?ContentTypeID=1</link><pubDate>Fri, 16 Aug 2013 07:27:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:87632bb4-f7cb-4eff-8c4b-595cffbc997a</guid><dc:creator>Kieran</dc:creator><description>&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;It&amp;#39;s only after the CommandResponceEvent (0x03,0x84,0x06,0x01). Other than that, there are never any long delays. I managed to connect the nRF2741 module to the new board, the delay still happens - so it&amp;#39;s likely an issue with the MCU. RDYN is configured as an input GPIO, first tried with no pull then with a weak pull-up&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I guess it is! No need to worry about that then, thanks for the info.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Slow set up with nRF8001 on custom board</title><link>https://devzone.nordicsemi.com/thread/1540?ContentTypeID=1</link><pubDate>Thu, 15 Aug 2013 11:44:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4488880d-2280-417e-a2fa-ea16de1bb12f</guid><dc:creator>vich</dc:creator><description>&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Please confirm if every ACI Setup Command and Response tuple is placed 1 second apart, or just few of them during the entire setup.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;16 MHz clock source from XTAL (for nRF8001) is essential during the Radio Tx/Rx event. 16 Mhz clock source from XTAL will turn on and off dependent on the connection event/advertisement interval. This is done to reduce current consumption. Is this what you notice?&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>