<?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>I2C Read Register during GPIOTE callback</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/124670/i2c-read-register-during-gpiote-callback</link><description>The application here is reading a Manchester stream on a GPIO. which comes from a MAX41473 radio IC. 
 Decoding is working fine using GPIOTE, timers &amp;amp; PPI to time &amp;amp; decode the data stream. But when I have detected the signature of a valid packet I need</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 01 Oct 2025 13:53:36 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/124670/i2c-read-register-during-gpiote-callback" /><item><title>RE: I2C Read Register during GPIOTE callback</title><link>https://devzone.nordicsemi.com/thread/550375?ContentTypeID=1</link><pubDate>Wed, 01 Oct 2025 13:53:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:14870ab3-1c4c-4f0b-b9ee-192a50f25054</guid><dc:creator>Nick_RA</dc:creator><description>&lt;p&gt;OK, will give the work queue a go, it should be OK as I have&amp;nbsp;until the end of the packet&amp;nbsp;to play with time-wise after all - I guess the word &amp;quot;queue&amp;quot; put me off as it implies deferred operation.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I2C Read Register during GPIOTE callback</title><link>https://devzone.nordicsemi.com/thread/550337?ContentTypeID=1</link><pubDate>Wed, 01 Oct 2025 11:41:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5d7e1f72-6cd3-45bd-b95a-a8bdc79b977b</guid><dc:creator>Kazi Afroza Sultana</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;As Fischer said, you can not perform a I2C reads from an ISR on nRF54L15 with zephyr. The method works offloading workthread needs to consider some latency.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;You can read this previous case&amp;nbsp;&lt;/span&gt;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/105170/i2c-read-write-functions-in-gpio-interrupt" rel="noopener noreferrer" target="_blank"&gt;Source: I2C Read/Write functions in GPIO Interrupt&lt;/a&gt;&lt;span&gt;. It&amp;#39;s for nRF52840 but still same principal.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Thanks.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;BR&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Kazi&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I2C Read Register during GPIOTE callback</title><link>https://devzone.nordicsemi.com/thread/550066?ContentTypeID=1</link><pubDate>Mon, 29 Sep 2025 17:46:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4b1521c2-0aea-40a2-9611-8d17a7c51e2b</guid><dc:creator>Turbo J</dc:creator><description>&lt;p&gt;Hand over to an empty work queue is in the order of a few&amp;nbsp;&lt;em&gt;micro&lt;/em&gt; seconds (you only wait for the IRQ handler to finish). Your I&amp;sup2;C bus will likely cause a lot more delay.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I2C Read Register during GPIOTE callback</title><link>https://devzone.nordicsemi.com/thread/550057?ContentTypeID=1</link><pubDate>Mon, 29 Sep 2025 16:26:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fe87a78d-b06b-4da3-94b7-4ed0bba818a9</guid><dc:creator>Nick_RA</dc:creator><description>&lt;p&gt;Surely passing to a kernel work queue is exactly what I &lt;em&gt;don&amp;#39;t&lt;/em&gt; want in terms of latency? I need to obtain the value in the radio&amp;#39;s RSSI register in real-time while it is receiving the packet... i.e. in a few milliseconds of decoding the magic number bytes.&lt;/p&gt;
&lt;p&gt;Note there will be other stuff going on including BLE advertising, GATT connection and possibly printk() via UART although not all at once.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I2C Read Register during GPIOTE callback</title><link>https://devzone.nordicsemi.com/thread/550005?ContentTypeID=1</link><pubDate>Mon, 29 Sep 2025 11:18:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7df149df-505d-48be-b8f0-30d45c52cb3d</guid><dc:creator>Turbo J</dc:creator><description>&lt;p&gt;You are not allowed to call &amp;quot;blocking&amp;quot; functions in an interrupt handler and most device/bus driver calls are blocking.&lt;/p&gt;
&lt;p&gt;Try a dedicated work queue.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>