<?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 can i port this i2s code to the new nrfx i2s api?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/53015/how-can-i-port-this-i2s-code-to-the-new-nrfx-i2s-api</link><description>https://github.com/takafuminaka/nRF52832/blob/master/i2s_ws2812b_demostration_planB/i2s_ws2812b_drive/i2s_ws2812b_drive.c 
 
 I read the documentation, but didn&amp;#39;t really grasp how to use nrf_drv_i2s_next_buffers_set() or the approrpriate usage of NRF</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 10 Oct 2019 22:05:06 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/53015/how-can-i-port-this-i2s-code-to-the-new-nrfx-i2s-api" /><item><title>RE: How can i port this i2s code to the new nrfx i2s api?</title><link>https://devzone.nordicsemi.com/thread/214475?ContentTypeID=1</link><pubDate>Thu, 10 Oct 2019 22:05:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:65d7ec4b-9b34-41d3-b6a4-23d590975c71</guid><dc:creator>Johnny</dc:creator><description>&lt;p&gt;I ended up adopting a different approach, since I only needed the first transfer.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How can i port this i2s code to the new nrfx i2s api?</title><link>https://devzone.nordicsemi.com/thread/214347?ContentTypeID=1</link><pubDate>Thu, 10 Oct 2019 11:44:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:79454c44-af9a-494b-b228-df2babb32b24</guid><dc:creator>Simon</dc:creator><description>&lt;p&gt;I am not too familiar with the i2s bus interface,&amp;nbsp;and I tried to read up on it. However it was quite complex and I did not grasp it fully enough to give you a satisfying answer. However I would recommend you to use some time and really understand stuff from the bottom up. I would approach it in the following manner:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Start by reading about the &lt;a href="https://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.nrf52832.ps.v1.1%2Fi2s.html&amp;amp;cp=3_1_0_43&amp;amp;anchor=concept_z2v_24y_vr"&gt;i2s peripheral&lt;/a&gt; and understand how it works in and out&lt;/li&gt;
&lt;li&gt;Take a look at the irq handler (&lt;em&gt;nrfx_i2s_irq_handler(..)&lt;/em&gt;) in &lt;em&gt;nrfx_i2s.c&lt;/em&gt;
&lt;ul&gt;
&lt;li&gt;This handler will call the&amp;nbsp;&lt;em&gt;data_handler(..)&lt;/em&gt; function in main.c (through &lt;em&gt;m_cb.handler&lt;/em&gt;) and the &lt;em&gt;data_handler(..) &lt;/em&gt;function calls&amp;nbsp;&lt;em&gt;nrf_drv_i2s_next_buffers_set(..)&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;In this function there is a lot of comments, that explains how it works&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Look at the explanatory text above&amp;nbsp;&lt;em&gt;nrfx_i2s_next_buffers_set()&lt;/em&gt; inside &lt;em&gt;nrfx_i2s.h&lt;/em&gt; and the explanatory text below the macro NRFX_I2S_STATUS_NEXT_BUFFERS_NEEDED inside&amp;nbsp;&lt;em&gt;nrfx_i2s.h&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Use a logic analyzer and look at the different signals and compare them to the ones in the &lt;a href="https://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.nrf52832.ps.v1.1%2Fi2s.html&amp;amp;cp=3_1_0_43&amp;amp;anchor=concept_z2v_24y_vr"&gt;i2s peripheral documentation&lt;/a&gt;, also you could create a spike using a&amp;nbsp;GPIO whenever&amp;nbsp;&lt;em&gt;nrf_drv_i2s_next_buffers_set()&lt;/em&gt; is called and check when this happens&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you&amp;#39;ve done all this and are still confused, please inform me about what you understand so far and what you&amp;#39;re confused about, and I will put off some time to read up, and see if I can help you progress.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Simon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How can i port this i2s code to the new nrfx i2s api?</title><link>https://devzone.nordicsemi.com/thread/214013?ContentTypeID=1</link><pubDate>Tue, 08 Oct 2019 21:32:38 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c54a522b-f1f4-48da-a4af-b4802104a16d</guid><dc:creator>Johnny</dc:creator><description>&lt;p&gt;I should have mentioned that I already looked at the example code. It&amp;#39;s a bit too cluttered in there for me to tell what&amp;#39;s going on. I even did a diff between the example from the last sdk version before the change that added nrf_drv_i2s_next_buffers_set.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How can i port this i2s code to the new nrfx i2s api?</title><link>https://devzone.nordicsemi.com/thread/213984?ContentTypeID=1</link><pubDate>Tue, 08 Oct 2019 16:00:59 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:947a0a3f-816c-4b1f-ad31-9f4146cf419d</guid><dc:creator>Simon</dc:creator><description>&lt;p&gt;Take a look at the function&amp;nbsp;data_handler() inside main.c in the &lt;a href="https://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.sdk5.v15.3.0%2Fi2s_example_loopback.html&amp;amp;cp=5_1_4_6_14"&gt;i2s example&lt;/a&gt; (&lt;em&gt;located in nRF5_SDK_15.3.0_59ac345\examples\peripheral\i2s&lt;/em&gt;) where the function&amp;nbsp;nrf_drv_i2s_next_buffers_set(..) is used.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Simon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>