<?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>Where is the I2S interrupt handler registered in nRFX drivers?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/77441/where-is-the-i2s-interrupt-handler-registered-in-nrfx-drivers</link><description>I&amp;#39;m trying to use the I2S peripheral on the nRF5340DK. It looks like the zephyr drivers don&amp;#39;t currently support this board, so I need to use the nRFx drivers. I&amp;#39;ve ported over an I2S example from the nRF5 SDK, but when I run it, I get stuck in a reboot</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 24 Aug 2021 07:43:24 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/77441/where-is-the-i2s-interrupt-handler-registered-in-nrfx-drivers" /><item><title>RE: Where is the I2S interrupt handler registered in nRFX drivers?</title><link>https://devzone.nordicsemi.com/thread/326291?ContentTypeID=1</link><pubDate>Tue, 24 Aug 2021 07:43:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:25ea539c-b9ea-42d9-86c8-c82b4f770427</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;No worries. There is nothing wrong with using nrfx drivers, at least not as long as the project&amp;nbsp;only needs to support Nordic devices.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Using the Zephyr drivers means you can easily port code between parts from different vendors, but in some cases you lose a bit of functionality since the Zephyr drivers are designed&amp;nbsp;to be general and not specific to Nordic hardware only.&lt;/p&gt;
&lt;p&gt;Certain peripherals, like the PPI controller, are so Nordic specific that no Zephyr driver exists. In this case using nrfx (or hardware registers directly) is the only option.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards&lt;br /&gt;Torbjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Where is the I2S interrupt handler registered in nRFX drivers?</title><link>https://devzone.nordicsemi.com/thread/326102?ContentTypeID=1</link><pubDate>Mon, 23 Aug 2021 07:23:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:840ce4d2-7104-4700-aed0-d010b2f42ee5</guid><dc:creator>JB_Teufel</dc:creator><description>&lt;p&gt;Unfortunately, I no longer remember exactly.&amp;nbsp; I think I had been having trouble configuring the devicetree overlay, and possibly with triggering using I2S_DIR_BOTH.&amp;nbsp; I went looking for the board&amp;#39;s dts file and found the document I mentioned earlier that didn&amp;#39;t include I2S on the list of supported peripherals.&amp;nbsp; I thought that meant that Zephyr didn&amp;#39;t support I2S on the nRF5340, so I stopped using the Zephyr API and switched to using the nrfx drivers.&lt;/p&gt;
&lt;p&gt;I was, and still am, new to Zephyr and NCS.&amp;nbsp; With the gift of one month&amp;#39;s hindsight, I can see a couple places where I had probably implemented or configured something incorrectly.&amp;nbsp; At the time, though, that document had me convinced that I2S wasn&amp;#39;t supported and the only way was to use the nrfx drivers.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Where is the I2S interrupt handler registered in nRFX drivers?</title><link>https://devzone.nordicsemi.com/thread/325997?ContentTypeID=1</link><pubDate>Fri, 20 Aug 2021 14:08:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:32cf2a0d-ed51-48c7-8b7b-a765476851d4</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I was able to build the Zephyr I2S example for both the nRF52840DK and the nRF5340DK after reducing the size of the I2S buffers, so it seems that these boards are supported, but I didn&amp;#39;t have time to test the examples properly.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Which problems did you encounter when you tried this?&lt;/p&gt;
&lt;p&gt;Best regards&lt;br /&gt;Torbjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Where is the I2S interrupt handler registered in nRFX drivers?</title><link>https://devzone.nordicsemi.com/thread/325646?ContentTypeID=1</link><pubDate>Thu, 19 Aug 2021 08:11:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d2a355d8-d3c5-44f9-8e4e-a10b3c092f1b</guid><dc:creator>JB_Teufel</dc:creator><description>&lt;p&gt;Thanks for the response, Torbj&amp;oslash;rn.&lt;/p&gt;
&lt;p&gt;I had tried using the Zephyr I2S API, but wasn&amp;#39;t having much success.&amp;nbsp; When I dug deep into zephyr\boards\arm\nrf5340dk_nrf5340\doc, I saw that I2S wasn&amp;#39;t listed as a supported feature.&amp;nbsp; I had assumed that meant that Zephyr didn&amp;#39;t support this peripheral on the nRF5340, prompting me to use the nrfx drivers directly.&amp;nbsp; It sounds like I may have come away from this with the wrong impression.&amp;nbsp; It should be possible, then, to use the native Zephyr API to access the I2S peripheral on the nRF5340?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Where is the I2S interrupt handler registered in nRFX drivers?</title><link>https://devzone.nordicsemi.com/thread/325615?ContentTypeID=1</link><pubDate>Thu, 19 Aug 2021 05:40:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:24b7ac53-2b76-4f23-9f8a-05b92a7675da</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Sorry for the slow response.&lt;/p&gt;
&lt;p&gt;The nrfx drivers are not designed for Zephyr exclusively, but are in essence RTOS agnostic (they are also used for the nRF5 SDK). As such,&amp;nbsp;they can&amp;#39;t really be designed to handle interrupts in the Zephyr way.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;For a more streamlined experience in Zephyr it is better to use the native Zephyr API&amp;#39;s, when possible, and nrfx will be used under the hood. In this case no manual IRQ CONNECT is needed.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards&lt;br /&gt;Torbjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Where is the I2S interrupt handler registered in nRFX drivers?</title><link>https://devzone.nordicsemi.com/thread/320110?ContentTypeID=1</link><pubDate>Wed, 14 Jul 2021 20:51:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0e6f326a-e5f0-4c5b-a0c1-ddbfe3ee0b99</guid><dc:creator>JB_Teufel</dc:creator><description>&lt;p&gt;Yep.&amp;nbsp; I realized I was missing the macro this morning.&amp;nbsp; Things are working properly now.&amp;nbsp; Given that nrfx_i2s_start enables the interrupt, I would have expected there would be something in nrfx_i2s_init to register the interrupt, especially considering I supply a function handle to be called from nrfx_i2s_irq_handler.&amp;nbsp; What use-case is supported by keeping this separate?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Where is the I2S interrupt handler registered in nRFX drivers?</title><link>https://devzone.nordicsemi.com/thread/320067?ContentTypeID=1</link><pubDate>Wed, 14 Jul 2021 14:07:42 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9f9ef6f4-24f6-4e38-a1a3-427af74beeb0</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Have you used the &lt;a href="https://docs.zephyrproject.org/latest/reference/kernel/other/interrupts.html#c.IRQ_DIRECT_CONNECT"&gt;IRQ_DIRECT_CONNECT&lt;/a&gt; macro, to ensure Zephyr is aware of the interrupt in question?&lt;/p&gt;
&lt;p&gt;If you don&amp;#39;t then you will get issues very similar to the ones you describe.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards&lt;br /&gt;Torbjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>