<?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>High Sample Rate with ADC and SoftDevice</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/564/high-sample-rate-with-adc-and-softdevice</link><description>I am trying to sample the ADC every 2ms. I notice lots of slowness with BLE advertising and typically can&amp;#39;t connect to device over BLE when sampling. I am using PPI, configuring, and starting before the softdevice is enabled. 
 
 
 Should nRF51822</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 08 Aug 2014 14:29:37 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/564/high-sample-rate-with-adc-and-softdevice" /><item><title>RE: High Sample Rate with ADC and SoftDevice</title><link>https://devzone.nordicsemi.com/thread/2950?ContentTypeID=1</link><pubDate>Fri, 08 Aug 2014 14:29:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d13309db-1c4b-4b3b-be1f-02123d8b2682</guid><dc:creator>Stefan Birnir Sverrisson</dc:creator><description>&lt;p&gt;Thanks for your suggestion Peter. Your suggestion with the UART RX connected to the SPIS MISO pin could be difficult. The UART requires a low signal start bit and high signal stop bit. I do not realize how the start bit could be generated before the actual data.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High Sample Rate with ADC and SoftDevice</title><link>https://devzone.nordicsemi.com/thread/2949?ContentTypeID=1</link><pubDate>Fri, 08 Aug 2014 09:27:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e45d8559-2d21-465a-ab0c-c7bf79e51b39</guid><dc:creator>Peter Myerscough-Jackopson</dc:creator><description>&lt;p&gt;The above idea shouldn&amp;#39;t alter the ADC hardware significantly just the address decode for the RESULT register. Given that rev3 should enable 5-10kHz sampling, 5-10 contiguous addesses would enable the ADC to be run at its maximum of 50kHz.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High Sample Rate with ADC and SoftDevice</title><link>https://devzone.nordicsemi.com/thread/2948?ContentTypeID=1</link><pubDate>Fri, 08 Aug 2014 09:24:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b5bd5628-3a9a-4154-9ca0-3f39b4589288</guid><dc:creator>Peter Myerscough-Jackopson</dc:creator><description>&lt;p&gt;A final comment would be to Stefan. I know Nordic are creating a rev3, but if there is ever a rev4, then a possible idea to enable full utilisation of the ADC using the SPIS loopback method could be achieved if the RESULT register was &amp;#39;mirrored&amp;#39; / &amp;#39;repeated&amp;#39; on a contiguous set of addresses. For example if the same RESULT register was accessible at 0x508 and additionally in the range 0x600-0x700, then setting the SPIS to read from 0x600 - 0x700 and controlling the clock as we have been expertimenting with would enable the ADC to be read 40 times without the CPU. It would allow the 50kHz ADC to be controlled by the CPU with a control rate of 1.25kHz. Looking at the NRF_ADC_Type there are actually 700 free register locations in the block after the RESULT register and they could all be set to mirror the RESULT register if desired.&lt;/p&gt;
&lt;p&gt;The RESULT register could always be mirrored from 0x508 upwards to a suitable limit, I was just offering a &amp;#39;the idea as simply as I could.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High Sample Rate with ADC and SoftDevice</title><link>https://devzone.nordicsemi.com/thread/2947?ContentTypeID=1</link><pubDate>Thu, 07 Aug 2014 16:06:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:430b7b0c-8a73-4664-967b-bbc9a890fd72</guid><dc:creator>Peter Myerscough-Jackopson</dc:creator><description>&lt;p&gt;In retrospect it looks like the UART requires start and stop bits, but the waveforms are not in the pdf.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High Sample Rate with ADC and SoftDevice</title><link>https://devzone.nordicsemi.com/thread/2946?ContentTypeID=1</link><pubDate>Thu, 07 Aug 2014 15:25:07 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:44a86d30-71f7-44ee-a076-2bab83e766aa</guid><dc:creator>Peter Myerscough-Jackopson</dc:creator><description>&lt;p&gt;One final attempt at getting regular sampling working could be to use the SPIS for getting the data from the ADC, and then reading the data back into the UART. It looks like the UART can be configured for no parity and hardware flow control OR event based flow control, and it has a FIFO with space for 6 values.&lt;/p&gt;
&lt;p&gt;This means that the current limit of one guaranteed sample every 1700 μs (588Hz), is raised to 6 samples in that period(3529Hz), and if the future rev3 doesn&amp;#39;t quite make it to 10kHz this method would allow the rate to be multiplied by 6 allowing for 5-10kHz to be easily achieved.&lt;/p&gt;
&lt;p&gt;One last attempt......?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High Sample Rate with ADC and SoftDevice</title><link>https://devzone.nordicsemi.com/thread/2945?ContentTypeID=1</link><pubDate>Thu, 07 Aug 2014 15:13:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f86e06cd-0431-46b5-8a9e-42875d99ccf8</guid><dc:creator>Lucas</dc:creator><description>&lt;p&gt;Stefan,&lt;/p&gt;
&lt;p&gt;thank you for attempting. It looks like my only options are to wait for REV 3 and hope for the best. Or add a dedicated ADC with built in FIFO into my system, but I really don&amp;#39;t want to do that haha.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High Sample Rate with ADC and SoftDevice</title><link>https://devzone.nordicsemi.com/thread/2944?ContentTypeID=1</link><pubDate>Thu, 07 Aug 2014 14:58:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bf79bd35-355f-4b30-aac9-674f2cdedd11</guid><dc:creator>Stefan Birnir Sverrisson</dc:creator><description>&lt;p&gt;Your theory is correct Lucas. I have actually set up the example and tried this. I managed to clock out just one byte at a time, which is triggered each time by an ADC-&amp;gt;END event. I sample 13 times and then set the CSN high to trigger a SPIS-&amp;gt;END event. In the SPIS-&amp;gt;END interrupt handler I read out the data in RXDPTR. Every time a byte is clocked out on MISO, both RXDPTR and TXDPTR are incremented. If I set MAXTX = 1 the ADC-&amp;gt;RESULT is read once and all subsequent bytes sent out on MISO are the ORC overread character. Anyway, this was a nice try gentlemen, but I think my attempt for making this work stops here unless you have some additional suggestions.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High Sample Rate with ADC and SoftDevice</title><link>https://devzone.nordicsemi.com/thread/2943?ContentTypeID=1</link><pubDate>Thu, 07 Aug 2014 14:43:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8e8e8bc4-8d57-40c0-98c0-d1a24261e72c</guid><dc:creator>Lucas</dc:creator><description>&lt;p&gt;Peter,&lt;/p&gt;
&lt;p&gt;I believe you can enable the clock for a set number of spi byte transmissions. However, the TX_PTR and RX_PTR will both increment every-time a transmission is made. If you set MAXTX to 1 and attempt to let the spi go for multiple transactions a spi overrun error will be thrown. My interrpretation of the data sheet is that in this scenario RX_PTR and TX_PTR will be incremented an controlled in an identical way. There is no way to make RX_PTR go through a 100 byte buffer and TX_PTR read from a single memory location.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High Sample Rate with ADC and SoftDevice</title><link>https://devzone.nordicsemi.com/thread/2942?ContentTypeID=1</link><pubDate>Thu, 07 Aug 2014 07:12:51 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:aeffbf3d-a234-490b-b225-959bbc1669a2</guid><dc:creator>Stefan Birnir Sverrisson</dc:creator><description>&lt;p&gt;Thanks for your comment Peter. I believe this brings our idea of using the SPIS for ADC sampling back to life. Can you point us to this post you are mentioning. I will work on setting this up on my side today.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High Sample Rate with ADC and SoftDevice</title><link>https://devzone.nordicsemi.com/thread/2941?ContentTypeID=1</link><pubDate>Wed, 06 Aug 2014 15:38:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b216a0a6-35b1-4829-8dd7-1a0673fa53fa</guid><dc:creator>Peter Myerscough-Jackopson</dc:creator><description>&lt;p&gt;In another post I saw that instead of pulsing the CS/EN pin, they were enabling the clock signal for a set number of transitions. The number of clock pulses were counted using one of the counters,  that way the behaviour of reseting the TX_PTR and RX_PTR would only happen when the end of their respective buffer was reached.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High Sample Rate with ADC and SoftDevice</title><link>https://devzone.nordicsemi.com/thread/2940?ContentTypeID=1</link><pubDate>Wed, 06 Aug 2014 14:43:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a9cad53f-1298-4f4a-816b-b8070bb66111</guid><dc:creator>Lucas</dc:creator><description>&lt;p&gt;Peter,&lt;/p&gt;
&lt;p&gt;That is how I would try to configure it as well. But every time the CS/EN pin is pulsed I believe it resets the write address of the RX_Buffer back to RX_PTR. The same is true for the TX_BUFFER and TX_PTR. This is my interpretation of the data sheet. Perhaps we could get a member of nordic to provide some input about this transaction.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High Sample Rate with ADC and SoftDevice</title><link>https://devzone.nordicsemi.com/thread/2939?ContentTypeID=1</link><pubDate>Wed, 06 Aug 2014 09:24:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:66b1115e-d045-4522-bcd1-b3124f288727</guid><dc:creator>Peter Myerscough-Jackopson</dc:creator><description>&lt;p&gt;Lucas, although I have not done the work, using the SPIS unit you would configure the RX to be many samples long, and the TX to be just a single sample long from one ADC location. The PPI would then enable the transfer of just one ADC measurement, by pulsing the SPIS CS/EN pin for just a single transfer period. This would mean the RX transfer would receive one measurement, but not complete, whilst the TX would send one measurement. The RX transfer would therefore slowly fill up the buffer it is given for its transfer, whilst the TX would repeatedly read the ADC result register location.&lt;/p&gt;
&lt;p&gt;I hope this helps in clarifying the concept of using the SPIS to achieve regular sampling. The rev3 silicon will not require the SPIS to achieve higher sampling rates 5-10kHz, but as Stefan says we are only guessingwaiting in that regards.&lt;/p&gt;
&lt;p&gt;Peter&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High Sample Rate with ADC and SoftDevice</title><link>https://devzone.nordicsemi.com/thread/2938?ContentTypeID=1</link><pubDate>Wed, 06 Aug 2014 05:01:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:223a8d4d-b968-4e37-a7c8-4996e7a0823b</guid><dc:creator>Lucas</dc:creator><description>&lt;p&gt;Stefan,
I am also confused about your previous statement.&lt;/p&gt;
&lt;p&gt;&amp;quot;For nRF51 rev 3, the CPU should be available after each transmitted packet. I expect this to allow 5kHz-10kHz maximum sampling rate for the ADC, but we will have to see what the actual specification for rev 3 reveals.&amp;quot;&lt;/p&gt;
&lt;p&gt;If the CPU becomes available after each transmitted packet and each packet is ~1ms long wouldn&amp;#39;t that yield a 1kHz sampling rate? My company is in the process of making serious architectural decisions and this information is extremely important.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High Sample Rate with ADC and SoftDevice</title><link>https://devzone.nordicsemi.com/thread/2937?ContentTypeID=1</link><pubDate>Wed, 06 Aug 2014 04:57:30 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:42dd213e-082c-4d48-85dd-0ed1814286d3</guid><dc:creator>Lucas</dc:creator><description>&lt;p&gt;Stefan,&lt;/p&gt;
&lt;p&gt;After reading the data sheet more thoroughly it is not clear to me how this will be possible.&lt;/p&gt;
&lt;p&gt;&amp;quot;As long as the semaphore is available the SPI slave can be granted multiple transactions one after the other.
If the CPU is not able to reconfigure the TXDPTR and RXDPTR between granted transactions, the same TX
data will be clocked out and the RX buffers will be overwritten.&amp;quot;&lt;/p&gt;
&lt;p&gt;My interpretation of this is that everytime chip select is toggled RXPTR and TXPTR will start pulling from their original memory location. This is ideal for the TXPTR, but not the RXPTR. Essentially, this transaction will overwrite the first element in the RX buffer over and over with the adc value put out from the TXPTR.....&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High Sample Rate with ADC and SoftDevice</title><link>https://devzone.nordicsemi.com/thread/2936?ContentTypeID=1</link><pubDate>Wed, 23 Jul 2014 08:37:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:eda9ade5-ba76-41ec-aa3f-f2c3fcf6761b</guid><dc:creator>Stefan Birnir Sverrisson</dc:creator><description>&lt;p&gt;The stack generates software interrupts with priority 2 to signal the application of events. So to make a peripheral interrupt handler (e.g. ADC interrupt handler) have higher priority than any BLE callback events you must set the priority of your peripheral interrupt handler to 1 (i.e APP_IRQ_PRIORITY_HIGH). However, when a peripheral interrupt handler has priority APP_IRQ_PRIORITY_HIGH, you can not call any softdevice function from the peripheral interrupt handler, starting with sd_*. You can realize the priority structure in S110 Softdevice Specification v1.2, section 10.2. For nRF51 rev 2, the CPU is blocked during the whole radio event. For nRF51 rev 3, the CPU should be available after each transmitted packet. I expect this to allow 5kHz-10kHz maximum sampling rate for the ADC, but we will have to see what the actual specification for rev 3 reveals.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High Sample Rate with ADC and SoftDevice</title><link>https://devzone.nordicsemi.com/thread/2935?ContentTypeID=1</link><pubDate>Tue, 22 Jul 2014 15:51:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f750b7a7-9d6b-4dc6-8dea-3549d37a682d</guid><dc:creator>Lucas</dc:creator><description>&lt;p&gt;Stefan,&lt;/p&gt;
&lt;p&gt;I will attempt to implement and keep you posted. To make it work I think I will need to use 2 times, several PPI&amp;#39;s, and the ADC. I think that the clock must be generated using one dedicated timer, and the timing for adc conversion and spi must be done using another timer. Of course, this implementation is clunky and will use increased power. I look forward to the rev3. Could you explain a little more about the current implementation and how it will be changed for my understanding? Right now a ble_evt is a background task (of highest priority) and therefore block out all other interrupts from interrupting it? Is the ble_evt a software interrupt or a hardware interrupt? Also, where can i find code for working with the timer peripherals. Does nordic have any documents outlining restricted priority levels for peripherals?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High Sample Rate with ADC and SoftDevice</title><link>https://devzone.nordicsemi.com/thread/2934?ContentTypeID=1</link><pubDate>Mon, 21 Jul 2014 09:04:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e38142e8-a78a-4b03-b5c1-1465f98ebff7</guid><dc:creator>Stefan Birnir Sverrisson</dc:creator><description>&lt;p&gt;Unfortunately, I have not tried this out yet. Currently, Nordic&amp;#39;s technical support is low on staff because of summer vacations so I will have to try this at a later point. Another option to obtain a higher ADC sampling rate is to wait for the third revision nRF51 hardware which will have the CPU blocking during BLE radio event released. It&amp;#39;s release is scheduled in the fall. It should be 100% drop-in and software compatible with nRF51 rev 2. You should contact your Nordic&amp;#39;s sales representative for more specific release schedule for rev 3.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High Sample Rate with ADC and SoftDevice</title><link>https://devzone.nordicsemi.com/thread/2933?ContentTypeID=1</link><pubDate>Mon, 21 Jul 2014 08:59:51 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:497e3d8c-75b6-44df-a9e2-7260559c779c</guid><dc:creator>Peter Myerscough-Jackopson</dc:creator><description>&lt;p&gt;I began to set it up, but when I started looking around for a suitable accelerometer, my sensor of choice atm, I found that most had limited analog bandwidth OR only had a digital output. I am keeping my eye on this capability in case I wish to capture from an analog microphone, but my current plans mean I haven&amp;#39;t pushed this further.&lt;/p&gt;
&lt;p&gt;I think I had a schedule in the comparator that&lt;/p&gt;
&lt;p&gt;@ 0 cycles triggers the ADC
@ (X - the time it takes to transfer the ADC value), enables the SPI transfer(raises the SPIS EN/CS)
@ X resets the counter, disables the SPI transfer(raises the SPIS EN/CS)&lt;/p&gt;
&lt;p&gt;where X is the sampling period in cycles&lt;/p&gt;
&lt;p&gt;This takes 3 or 4 PPI event connections to perform regular sampling, and could be grouped if you so wish.&lt;/p&gt;
&lt;p&gt;If you get anywhere further it would be great to hear back from you, but as I had done no programming wth the nRF51 prior to this suggestion it was not an easy first task.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High Sample Rate with ADC and SoftDevice</title><link>https://devzone.nordicsemi.com/thread/2932?ContentTypeID=1</link><pubDate>Fri, 18 Jul 2014 18:45:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e7243847-1494-4e79-b783-19de0dc88072</guid><dc:creator>Lucas</dc:creator><description>&lt;p&gt;Peter,&lt;/p&gt;
&lt;p&gt;Did you ever try this out? I am very interested to see if it worked. The toggling of the GPIO pin to create the clock seems rough? Using the proposed clk generator what is the maximum frequency that can be produced stefan? I guess you could have the compare value be 2 clock cycles causing a toggle every two cycles. This would result in a 16/4 = 4MHZ clk?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High Sample Rate with ADC and SoftDevice</title><link>https://devzone.nordicsemi.com/thread/2931?ContentTypeID=1</link><pubDate>Thu, 27 Mar 2014 19:05:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a72e5520-a0af-497a-8802-136391206660</guid><dc:creator>Stefan Birnir Sverrisson</dc:creator><description>&lt;p&gt;Hi Peter&lt;/p&gt;
&lt;p&gt;Thanks for your proposal. I think your proposal is very good. I can not see why this should not work. I see this as a timer that is enabled with three compare registers:&lt;/p&gt;
&lt;p&gt;One compare register triggers the ADC sampling, i.e. CC[0] -&amp;gt; PPI[0] -&amp;gt; ADC-&amp;gt;START&lt;/p&gt;
&lt;p&gt;Second compare register triggers SPI TX, i.e CC[1] -&amp;gt; PPI[1] -&amp;gt; GPIOTE[1]. GPIOTE[1] is gonfigured for a GPIO pin that is looped to the SPIS CSN pin. If you were doing 8-bit sampling, you would perhaps have this compare register trigger 25us after triggering the first compare register as it takes 20us to sample with 8-bit resolution.&lt;/p&gt;
&lt;p&gt;Third compare register creates the SPI clock by toggling a pin that is looped to SPIS SCK pin, i.e. CC[2] -&amp;gt; PPI[2] -&amp;gt; GPIOTE[2]&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High Sample Rate with ADC and SoftDevice</title><link>https://devzone.nordicsemi.com/thread/2930?ContentTypeID=1</link><pubDate>Wed, 26 Mar 2014 12:14:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1aea08d8-6ce5-46ad-bf78-86a2196cf328</guid><dc:creator>Peter Myerscough-Jackopson</dc:creator><description>&lt;p&gt;I note that it is not possible to use the ARM core to &amp;#39;sample&amp;#39; the ADC value regularly enough, BUT Is it possible to use the EasyDMA in the SPIS devices?&lt;/p&gt;
&lt;p&gt;My proposal:&lt;/p&gt;
&lt;p&gt;The ADC would be set to capture a value using the PPI and its START task and a timer, this gives the regular sample, but not the ability to &amp;#39;save&amp;#39; the value before it is overwritten.&lt;/p&gt;
&lt;p&gt;To &amp;#39;save&amp;#39; the data, the SPIS could be set to loop back upon itself, with the TXDPTR set to the ADC result address, and the MAXTX set to 1 for 8-bit samples and 2 for 10 or 9 bit samples. The RXDPTR would then be set to a normal RAM address with a normal buffer size for example 256 to capture 256 8-bit samples.&lt;/p&gt;
&lt;p&gt;Then you connect the MOSI and MISO pins, and the SCK to a suitable clock source (maybe the Master&amp;#39;s clock, and then finally connect the CSN to a GPIO that is triggered using the PPI to make a suitably long chip enable signal.&lt;/p&gt;
&lt;p&gt;I know this is convoluted, but the SPIS is the only memory bus master other than those used by the SoftDevice. Is this a feasible, if awkward, solution to regular sampling whilst the SoftDevice is enabled?&lt;/p&gt;
&lt;p&gt;It would be useful to have some feedback to this proposal to help me make my product selection as the ADC capability is one of the nRFs key features (aside from its Bluetooth capabilty).&lt;/p&gt;
&lt;p&gt;Yours,&lt;/p&gt;
&lt;p&gt;Peter Myerscough-Jackopson&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High Sample Rate with ADC and SoftDevice</title><link>https://devzone.nordicsemi.com/thread/2929?ContentTypeID=1</link><pubDate>Tue, 11 Feb 2014 08:26:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8acb6ab2-18f6-4b13-90f1-696167531421</guid><dc:creator>Stefan Birnir Sverrisson</dc:creator><description>&lt;p&gt;Hi Vlad&lt;/p&gt;
&lt;p&gt;Well, as mentioned previously, this depends on the amount of data you want to send in each connection interval. If you only need to send 1 or two packets per connection interval then you should be able to read the ADC every 2 milliseconds. So if you need to send ~20 kbps or less in one direction, then you should be able to sample every 2 ms (500 Hz).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High Sample Rate with ADC and SoftDevice</title><link>https://devzone.nordicsemi.com/thread/2928?ContentTypeID=1</link><pubDate>Mon, 10 Feb 2014 15:47:44 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:774003dd-2881-4286-935a-9a6d7b280688</guid><dc:creator>Vlad</dc:creator><description>&lt;p&gt;Ok,&lt;/p&gt;
&lt;p&gt;I don&amp;#39;t have any experience developing code for nrf51822, but I want to buy a evaluation kit and start developing. Currently I&amp;#39;m working with atmega328, but I want to try making my app work on a nrf51822.&lt;/p&gt;
&lt;p&gt;I have a pulse sensor that triggers an interrupt every 2ms reading a value on ADC, so as far as I read that can&amp;#39;t be done on the nrf?&lt;/p&gt;
&lt;p&gt;Thanks!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High Sample Rate with ADC and SoftDevice</title><link>https://devzone.nordicsemi.com/thread/2926?ContentTypeID=1</link><pubDate>Wed, 16 Oct 2013 10:40:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:290d4945-0dc2-446a-b2a2-feb44d321480</guid><dc:creator>Bastiaan</dc:creator><description>&lt;p&gt;Hi Stefan&lt;/p&gt;
&lt;p&gt;The accuracy which I am refering to is according to the ADC specfication in table 38 in the nRF51822 PS v1.3. This specification applies to accuracy of perceived ADC output when applying a known voltage source to the ADC input.&lt;/p&gt;
&lt;p&gt;You need to set the priority of the ADC interrupt to LOW in order to be able to call a softdevice function, starting with sd_. Otherwise you will get a hard fault.&lt;/p&gt;
&lt;p&gt;The example has been working fine just by calling sd_clock_hfclk_release and sd_clock_hfclk_request directly. While the softdevice is enabled it has control over the 16MHz crystal. Any sd_ function is a wrapper function implemented in the softdevice which should not allow the application to do any undesirable things to peripherals that the softdevice is in control of. So the method introduced in the example should be just fine.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: High Sample Rate with ADC and SoftDevice</title><link>https://devzone.nordicsemi.com/thread/2927?ContentTypeID=1</link><pubDate>Wed, 16 Oct 2013 10:40:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1f5cdd7e-21dd-4e24-a854-e348562b2fd5</guid><dc:creator>Guest</dc:creator><description>&lt;p&gt;Hi Stefan&lt;/p&gt;
&lt;p&gt;The accuracy which I am refering to is according to the ADC specfication in table 38 in the nRF51822 PS v1.3. This specification applies to accuracy of perceived ADC output when applying a known voltage source to the ADC input.&lt;/p&gt;
&lt;p&gt;You need to set the priority of the ADC interrupt to LOW in order to be able to call a softdevice function, starting with sd_. Otherwise you will get a hard fault.&lt;/p&gt;
&lt;p&gt;The example has been working fine just by calling sd_clock_hfclk_release and sd_clock_hfclk_request directly. While the softdevice is enabled it has control over the 16MHz crystal. Any sd_ function is a wrapper function implemented in the softdevice which should not allow the application to do any undesirable things to peripherals that the softdevice is in control of. So the method introduced in the example should be just fine.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>