<?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>SPI Slave event handler not triggered when CS arrested</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/80531/spi-slave-event-handler-not-triggered-when-cs-arrested</link><description>Hi 
 My question is most similar to https://devzone.nordicsemi.com/f/nordic-q-a/16488/spi-slave-peripheral-receive-interrupt-processing 
 I want the spis_event_handler to be called as soon as CS in pulled down by master. 
 
 I&amp;#39;m interfacing nRF52840(Slave</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 15 Oct 2021 10:18:56 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/80531/spi-slave-event-handler-not-triggered-when-cs-arrested" /><item><title>RE: SPI Slave event handler not triggered when CS arrested</title><link>https://devzone.nordicsemi.com/thread/334304?ContentTypeID=1</link><pubDate>Fri, 15 Oct 2021 10:18:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7a72f4e6-cd50-4a14-9200-b9b9337758f1</guid><dc:creator>Sivashankar</dc:creator><description>&lt;p&gt;Ref:&amp;nbsp;&lt;a href="https://infocenter.nordicsemi.com/pdf/nRF52_PAN_109_add_v1.1.pdf"&gt;infocenter.nordicsemi.com/.../nRF52_PAN_109_add_v1.1.pdf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;3.9 SPIS workaround: Trigger GPIOTE on the CSN signal Use a GPIOTE event to wake the CPU when there is a falling edge on the SPIS CSN signal. 1. Set up a GPIOTE channel to generate events on falling edges of the CSN signal. 2. Enable interrupt generation for this event in the INTENSET register, and enable this interrupt in NVIC. 3. Handle the NVIC interrupt by clearing the generated event in the GPIOTE EVENT register and NVIC before putting CPU to sleep again. Pros: Specific workaround for SPIS without very large increase of current consumption. Cons: Workaround requires a GPIOTE, some increase of current consumption&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Will this work?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SPI Slave event handler not triggered when CS arrested</title><link>https://devzone.nordicsemi.com/thread/333480?ContentTypeID=1</link><pubDate>Mon, 11 Oct 2021 11:46:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2f075c85-5d2f-48d9-a533-7c78ee85034a</guid><dc:creator>Sivashankar</dc:creator><description>&lt;p&gt;Hi Turbo,&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve SPIS init sequence as so, I&amp;#39;ve followed SPIS SDK example, though it&amp;#39;s not very clear about Easy DMA etc.,&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;nrf_drv_spis_config_t spis_config = NRF_DRV_SPIS_DEFAULT_CONFIG;
spis_config.csn_pin               = APP_SPIS_CS_PIN;
spis_config.miso_pin              = APP_SPIS_MISO_PIN;
spis_config.mosi_pin              = APP_SPIS_MOSI_PIN;
spis_config.sck_pin               = APP_SPIS_SCK_PIN;

APP_ERROR_CHECK(nrf_drv_spis_init(&amp;amp;spis, &amp;amp;spis_config, spis_event_handler));&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Could you please share me any reference for the same.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Thanks,&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SPI Slave event handler not triggered when CS arrested</title><link>https://devzone.nordicsemi.com/thread/333474?ContentTypeID=1</link><pubDate>Mon, 11 Oct 2021 11:38:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0b91603f-7ab4-4204-821b-30d859439ae0</guid><dc:creator>Turbo J</dc:creator><description>&lt;p&gt;Read the SPIS chapter in the PS.&lt;/p&gt;
&lt;p&gt;For the SPIS to work, you set up RX and TX (Easy-)DMA buffers &lt;em&gt;before&lt;/em&gt; the transaction starts. Once the transactions starts with the CS being pulled low, the CPU looses access to those buffers.&lt;/p&gt;
&lt;p&gt;Once the transaction finishes with CS=High, the interrupt handler will fire via END event.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>