<?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>Can not get SPI control back after PPI?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/14728/can-not-get-spi-control-back-after-ppi</link><description>Hello, 
 I am trying to implement a clean shutdown process, but running into some issues. The flow of the SPI use is as listed here: 
 
 
 Initialize SPI instance and program connected peripheral device via SPI. The calls being used are nrf_drv_spi_init</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 24 Jun 2016 12:59:43 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/14728/can-not-get-spi-control-back-after-ppi" /><item><title>RE: Can not get SPI control back after PPI?</title><link>https://devzone.nordicsemi.com/thread/56210?ContentTypeID=1</link><pubDate>Fri, 24 Jun 2016 12:59:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fc77252c-856c-4468-8cec-2fb6a296712d</guid><dc:creator>FI</dc:creator><description>&lt;p&gt;Yes, I use nrf_drv_spi_uinit, just for test and debug this issue. After a little more checking, the issue appears to have something to do with Interrupts, I used nrf_spim_int_disable to disable interrupts in SPIM-PPI mode, and when getting back the control, I first tried to use nrf_spim_int_enable call to set interrupt enable with corresponding masks, but this seems to cause issue, I then used nrf_spim_int_disable with an all-zero mask, this seems to get the program going, at least the subsequent SPI read and writes would not hang in the while loop waiting for xfer_done flag, or return error with Busy_State if the while is bypassed.  So, is it correct that the actual &amp;quot;Enable&amp;quot; and &amp;quot;Disable&amp;quot; is done by just the nrf_spim_int_disable call, and masked differently?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Can not get SPI control back after PPI?</title><link>https://devzone.nordicsemi.com/thread/56209?ContentTypeID=1</link><pubDate>Fri, 24 Jun 2016 12:22:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0e73e03d-f956-428e-88c2-22aa6cabbd54</guid><dc:creator>&amp;#216;yvind Karlsen</dc:creator><description>&lt;p&gt;In 3c) are you using nrf_drv_spi_uninit?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>