<?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>services  setup  nrf8001</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/16955/services-setup-nrf8001</link><description>Services Setup 
 I am trying to feed the &amp;quot;Services Data&amp;quot; manually to the nRF8001. 
 As per the data sheet page 82 (see image below): Upon transmission of 1 packet of data an ACI_Transition_Continue should get generated: (i.e. some where a )&amp;quot;0x01&amp;quot; should</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 17 Oct 2016 19:30:43 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/16955/services-setup-nrf8001" /><item><title>RE: services  setup  nrf8001</title><link>https://devzone.nordicsemi.com/thread/65025?ContentTypeID=1</link><pubDate>Mon, 17 Oct 2016 19:30:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c1c17e52-bfdc-481f-911a-7a942454e9cc</guid><dc:creator>user123x</dc:creator><description>&lt;p&gt;Kind Reminder !&lt;/p&gt;
&lt;p&gt;I have been able to get a standby message after feeding the nRF all the Setup data. However after that I can not detect the BT signal. I have tried all kinds of telephones. Have I missed out something. Please find the setup attached.
&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/3.xml"&gt;3.xml&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: services  setup  nrf8001</title><link>https://devzone.nordicsemi.com/thread/65024?ContentTypeID=1</link><pubDate>Sat, 15 Oct 2016 06:57:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a3d5c0d8-ecda-4f9b-9d9b-090dd3e40190</guid><dc:creator>user123x</dc:creator><description>&lt;p&gt;I was able to get a standby response from the chip after the setup packets were all successfully accepted by the nrF80001. However I am still not able to detect the nrf8001 on my andriod mobile using the nrf connect app ?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: services  setup  nrf8001</title><link>https://devzone.nordicsemi.com/thread/65023?ContentTypeID=1</link><pubDate>Fri, 14 Oct 2016 19:28:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:48fe58f4-579e-48b6-90ca-1bc855efe61a</guid><dc:creator>user123x</dc:creator><description>&lt;p&gt;You are right. The two files have different data. It worked. Eureka !
Regards&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: services  setup  nrf8001</title><link>https://devzone.nordicsemi.com/thread/65015?ContentTypeID=1</link><pubDate>Fri, 14 Oct 2016 17:22:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:cd2a5b53-db46-4aa5-8511-3d9c76adb944</guid><dc:creator>user123x</dc:creator><description>&lt;p&gt;.........................&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: services  setup  nrf8001</title><link>https://devzone.nordicsemi.com/thread/65022?ContentTypeID=1</link><pubDate>Fri, 14 Oct 2016 16:08:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d96ebfa5-de27-424c-ab69-52425d8ea7cc</guid><dc:creator>David Edwin</dc:creator><description>&lt;p&gt;Did you get the Setup messages from services.h or services_lock.h ? If you used services_lock.h they are written to OTP on the nRF8001. Since this is OTP (one time programmable) you have used up the OTP portion to store Setup. However you can still store Setup in the RAM even when you have Setup in OTP.
Just make sure that you use the messages from services.h&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: services  setup  nrf8001</title><link>https://devzone.nordicsemi.com/thread/65021?ContentTypeID=1</link><pubDate>Fri, 14 Oct 2016 14:18:14 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0c0c76e2-b5ff-4f5a-85d7-9ebad651bc9e</guid><dc:creator>user123x</dc:creator><description>&lt;p&gt;I was able to get all the setup packets to feed with 0x01 status one after the other. However in response to the last (11th) packet I get the following:&lt;/p&gt;
&lt;p&gt;01,
03,
84,
06,
&lt;strong&gt;8B,&lt;/strong&gt;
83,
39,
2E,&lt;/p&gt;
&lt;p&gt;0X8B means :  Setup data is locked and cannot be modified.&lt;/p&gt;
&lt;p&gt;Does any one know why this comes up. Have I locked up some thing by error ?&lt;/p&gt;
&lt;p&gt;As I understand from:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/question/18044/nrf8001-setup-data-locked/"&gt;devzone.nordicsemi.com/.../&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Some how a second stand-by signal should get generated at some point (starting or end of the setup), when the flash gets written to. However I am not able to see the second standby signal ?&lt;/p&gt;
&lt;p&gt;Thanks and Regards&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: services  setup  nrf8001</title><link>https://devzone.nordicsemi.com/thread/65019?ContentTypeID=1</link><pubDate>Wed, 12 Oct 2016 08:14:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:12c598cc-a7e8-446b-a4fe-0a3bba05f3b4</guid><dc:creator>David Edwin</dc:creator><description>&lt;p&gt;I have edited my answer to add a faster method of transacting with the nRF8001. The setup commands are packet based so they need to sent packet by packet i.e the REQN line has to be raised and lowered as packet delimiters.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: services  setup  nrf8001</title><link>https://devzone.nordicsemi.com/thread/65020?ContentTypeID=1</link><pubDate>Tue, 11 Oct 2016 20:21:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:eb8c5e4a-5aaf-4b93-a1ac-c289faedefc8</guid><dc:creator>user123x</dc:creator><description>&lt;p&gt;Dear David,&lt;/p&gt;
&lt;p&gt;Your responses are precise and learned. My complements for you. The method that you describe above works. The LA traces also confirm it. Understandably, my next question is, how it is possible to read the data from a fully duplex communication:&lt;/p&gt;
&lt;p&gt;In full duplex mode (Fast Method) the entire setup data (services settings) would get pumped into the nRF via the MOSI in one go, while almost parallely the &amp;quot;event data&amp;quot; (response) bits would get pumped back into the µC via the MISO line.&lt;/p&gt;
&lt;p&gt;Therefore, my question is, how would it be possible to seperat the individual event bits from each other to descipher them. Ofcorse, I assume this is done in software, however I can not seem to be able to conceptualise a method to seperate one packet  from the other, esp when we dont know exactly how long each individual event (response) packet could be ?&lt;/p&gt;
&lt;p&gt;Your comment on this is most appriciated. Additionly if you could guide me to some literature which explains more on how to manage such fulll duplex communication, then I will be much obliged.&lt;/p&gt;
&lt;p&gt;Regards&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: services  setup  nrf8001</title><link>https://devzone.nordicsemi.com/thread/65018?ContentTypeID=1</link><pubDate>Tue, 11 Oct 2016 11:27:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:08f4a1b0-d2f3-4a73-9f3d-85a69baad278</guid><dc:creator>David Edwin</dc:creator><description>&lt;p&gt;I edited it and expanded it to be more clear as I did not do the explain the states of the REQN and RDYN in every transaction.
In the Setup State, when the REQN is pulled low the RDYN will almost immediately follow if it has the buffer available to receive the incoming SPI message. Yes , it is full duplex when the SPI is running , I am asking to to slow it down , that I is why I mentioned it as a the slow method, once we have got that working you can then speed it up.&lt;/p&gt;
&lt;p&gt;I have clarified, so take a look at it again, you always need to have RDYN low before you can start the SPI clocking.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: services  setup  nrf8001</title><link>https://devzone.nordicsemi.com/thread/65017?ContentTypeID=1</link><pubDate>Tue, 11 Oct 2016 10:36:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e822df08-60ee-4715-882f-eb96808979a5</guid><dc:creator>user123x</dc:creator><description>&lt;p&gt;Dear David,
Thanks for your kind response. I got some of what you said and some of it has confused me a bit:&lt;/p&gt;
&lt;p&gt;SPI Communication with the nRF8001:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The exchange of the BITs in SPI will occure synchronusly. Therefore as soon as the SS is low and
the RDY is low (i.e. a hand shake is signalled), the Master can start sending in bytes.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;As I observe:  The RF8001 generates response and sending out the responses without waiting for the packet to come to an end. i.e. a sort of full duplex communication happens.&lt;/p&gt;
&lt;p&gt;Now what you are suggesting is :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Pull SS Low and send a packet&lt;/li&gt;
&lt;li&gt;Then wait for RDY to go low and send in 32 times 0x00 and read the response.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;However as I observe, as soon as I pull the SS low the RDY also goes low. Is there some thing I am missing.&lt;/p&gt;
&lt;p&gt;I am much obliged for your excellent support to me on this matter.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: services  setup  nrf8001</title><link>https://devzone.nordicsemi.com/thread/65016?ContentTypeID=1</link><pubDate>Mon, 10 Oct 2016 09:48:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:df902ff7-f8ba-47d9-ba9f-762a47c7d541</guid><dc:creator>David Edwin</dc:creator><description>&lt;p&gt;[Edited]&lt;/p&gt;
&lt;p&gt;What do you mean by feeding the setup data manually,
You are taking the generated setup data from the nrfgo studio generated file &amp;quot;services.h&amp;quot; and then sending the setup messages one by one.&lt;/p&gt;
&lt;p&gt;Remember the ACI Event for your command will not be immediately sent (see section 7.1.6),  so the SPI transactions during setup, typically look like this.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Slow method for nRF8001 Setup&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Transaction 1:
Lower REQN :: Wait for RDYN to be low :: ACI Setup command 1 clocked out from SPI master :::
0 length packet clocked in from nRF8001 :: Raise REQN, RDYN will go high&lt;/p&gt;
&lt;p&gt;Transaction 2:
RDYN is low signalling an ACI event ::::
Lower REQN :: 0 length packet clocked out from the SPI master ::::
ACI Event clocked in from the nRF8001 (Transaction continue) :: Raise REQN, RDYN will go high&lt;/p&gt;
&lt;p&gt;Transaction 3:
Lower REQN :: Wait for RDYN to be low :: ACI Setup command 2 clocked out from SPI master ::::
0 length packet clocked in from nRF8001 :: Raise REQN, RDYN will go high&lt;/p&gt;
&lt;p&gt;Transaction 4:
RDYN is low signalling an ACI event ::::
Lower REQN :: 0 length packet clocked out from the SPI master ::::
ACI Event clocked in from the nRF8001 (Transaction continue) :: Raise REQN, RDYN will go high&lt;/p&gt;
&lt;p&gt;........&lt;/p&gt;
&lt;p&gt;Transaction 2N-1:  (Where N is the number of Setup commands)
Lower REQN :: Wait for RDYN to be low :: ACI Setup command N clocked out from SPI master :::
0 length packet clocked in from nRF8001 :: Raise REQN, RDYN will go high&lt;/p&gt;
&lt;p&gt;Transaction 2N:  (Where N is the number of Setup commands)
RDYN is low signalling an ACI event ::::
Lower REQN :: 0 length packet clocked out from the SPI master ::::
ACI Event clocked in from the nRF8001 (Transaction Complete) :: Raise REQN, RDYN will go high&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Faster Method for nRF8001 Setup&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The nRF8001 has buffers available for a few commands so it is possible to burst the Setup commands until the buffers are filled up. The buffer availability is signalled by the RDYN line and will act as the flow control for the Setup.
You can use fixed SPI clocks of 32 bytes but the ACI packet itself should be unmodified.&lt;/p&gt;
&lt;p&gt;Transaction 1:
Lower REQN :: Wait for RDYN to be low :: ACI Setup command 1 clocked out from SPI master :::
0 length packet clocked in from nRF8001 :: Raise REQN, RDYN will go high&lt;/p&gt;
&lt;p&gt;Transaction 2:
Lower REQN :: Wait for RDYN to be low :: ACI Setup command 2 clocked out from SPI master :::
0 length or ACI Event packet clocked in from nRF8001 :: Raise REQN, RDYN will go high&lt;/p&gt;
&lt;p&gt;Transaction 3:
Lower REQN :: Wait for RDYN to be low :: ACI Setup command 3 clocked out from SPI master :::
0 length or ACI Event packet clocked in from nRF8001 :: Raise REQN, RDYN will go high&lt;/p&gt;
&lt;p&gt;........&lt;/p&gt;
&lt;p&gt;Transaction N-1:
Lower REQN :: Wait for RDYN to be low :: ACI Setup command N-1 clocked out from SPI master :::
0 length or ACI Event packet clocked in from nRF8001 :: Raise REQN, RDYN will go high&lt;/p&gt;
&lt;p&gt;Transaction N:
Lower REQN :: Wait for RDYN to be low :: ACI Setup command N clocked out from SPI master :::
0 length or ACI Event packet clocked in from nRF8001 :: Raise REQN, RDYN will go high&lt;/p&gt;
&lt;p&gt;Track the ACI Events so that you get the Transaction continue and Transaction complete.
The faster method will reduce the number of transactions.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Action requested:&lt;/strong&gt;
Attach a logic analyzer trace to verify that you are following the handshake rules on the SPI.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>