<?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>I2S TXPTRUPD and STOP timing</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/24902/i2s-txptrupd-and-stop-timing</link><description>Question for I2S. 
 
 
 Execute follow. 
[TXD.PTR set A] 1st 
[START] 
[TXPTRUPD event] (not set TXD.PTR) 2nd. 
2nd transfer address use A? 
 
 
 How long time between [TXPTRUPD event] and [2nd transfer]? 
 
 
 TASKS_STOP do. when do transfer</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 07 Sep 2017 16:17:09 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/24902/i2s-txptrupd-and-stop-timing" /><item><title>RE: I2S TXPTRUPD and STOP timing</title><link>https://devzone.nordicsemi.com/thread/98066?ContentTypeID=1</link><pubDate>Thu, 07 Sep 2017 16:17:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d8b8a086-cdba-44e1-8a2c-b556c2496c48</guid><dc:creator>loquat</dc:creator><description>&lt;p&gt;Thanks very much!!&lt;/p&gt;
&lt;p&gt;I try it.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I2S TXPTRUPD and STOP timing</title><link>https://devzone.nordicsemi.com/thread/98065?ContentTypeID=1</link><pubDate>Thu, 07 Sep 2017 11:16:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4171be5f-41b7-4608-83e8-5926cbdd0b72</guid><dc:creator>Sigurd</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Yes, if you don’t update the TXD pointer after a &lt;code&gt;TXPTRUPD&lt;/code&gt; event, the next transfer will continue to use address A.&lt;/li&gt;
&lt;li&gt;See this figure &lt;a href="https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.nrf52832.ps.v1.1/i2s.html?cp=2_1_0_43_1#concept_wvj_ssy_vr"&gt;here&lt;/a&gt;. You can set the &lt;code&gt;TXD.PTR&lt;/code&gt; for the 2nd transfer, before the first transfer have started. ( &lt;code&gt;TXD.PTR = C&lt;/code&gt; in the figure)&lt;/li&gt;
&lt;li&gt;The transfer stops close to immediately after you call &lt;code&gt;TASKS_STOP&lt;/code&gt;. It will not wait for the block to finish.&lt;/li&gt;
&lt;li&gt;Yes, that should be possible. I recommend using the I2S drivers, and use the data_handler to keep track of the numbers of block you are sending. The data_handler is called for every TXPTRUPD/RXPTRUPD event, and you will get a TXPTRUPD event for every &lt;code&gt;RXTXD.MAXCNT&lt;/code&gt; words that are sent on the SDOUT pin. You can then use &lt;code&gt;nrf_drv_i2s_stop()&lt;/code&gt; to stop after you have sent the number of blocks you want.&lt;/li&gt;
&lt;/ol&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>