<?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>How to implement i2s data loopback?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/69570/how-to-implement-i2s-data-loopback</link><description>Hi engineers, 
 I want to implement function that input i2s data and then output it directly. 
 I find that i2s demo includes two buffers which are used for current buffer and the next buffer. This part I don&amp;#39;t understand. 
 
 And in the main function</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 18 Dec 2020 06:04:57 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/69570/how-to-implement-i2s-data-loopback" /><item><title>RE: How to implement i2s data loopback?</title><link>https://devzone.nordicsemi.com/thread/285745?ContentTypeID=1</link><pubDate>Fri, 18 Dec 2020 06:04:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:910fa12c-8611-47bd-b9a6-255e8c793f44</guid><dc:creator>SeanOY</dc:creator><description>&lt;p&gt;Hi&amp;nbsp;&lt;span&gt;J&amp;oslash;rgen,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Thanks!&amp;nbsp;What&amp;nbsp;a detailed answer! What i&amp;nbsp;want to know is the latter you said. &lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/1f642.svg" title="Slight smile"&gt;&amp;#x1f642;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Best regards,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Sean&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to implement i2s data loopback?</title><link>https://devzone.nordicsemi.com/thread/285546?ContentTypeID=1</link><pubDate>Thu, 17 Dec 2020 09:19:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b3d0ab0f-bcc1-4c6f-bacc-5729195123ed</guid><dc:creator>J&amp;#248;rgen Holmefjord</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;The I2S peripheral supports double buffering, allowing you to prepare a new buffer while one is processed. This allows for continuous transfer without any interruptions, which may not be the case if the CPU had to update the buffer pointer at the exact time when one buffer was done transferring. You can read more about this in the&amp;nbsp;&lt;a title="EasyDMA" href="https://infocenter.nordicsemi.com/topic/ps_nrf52833/i2s.html?cp=4_1_0_5_9_6#concept_gq4_jly_vr"&gt;EasyDMA&lt;/a&gt;&amp;nbsp;chapter in the peripheral documentation.&lt;/p&gt;
&lt;p&gt;The I2S example in the SDK is already a loopback example. The SDIN and SDOUT pins are connected together and the data received is checked to be equal to the data transmitted.&lt;/p&gt;
&lt;p&gt;Or did you mean that you want to transmit back the data received? In that case, you need to store the received data (in&amp;nbsp;check_rx_data() function) into the next tx_buffer, and configure this buffer for transmit as it is done in&amp;nbsp;prepare_tx_data().&lt;/p&gt;
&lt;p&gt;Best regards,&lt;br /&gt;Jørgen&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>