<?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>Migrating from PPI to DPPI</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/118743/migrating-from-ppi-to-dppi</link><description>I&amp;#39;m trying to port a PPI application to an nrf5340. I&amp;#39;m quite puzzled, as it would appear there is no obvious way to achieve what I&amp;#39;m trying to do. 
 In short, I have a setup where the events E should trigger tasks T accordingly to the relation below</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 03 Mar 2025 14:10:15 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/118743/migrating-from-ppi-to-dppi" /><item><title>RE: Migrating from PPI to DPPI</title><link>https://devzone.nordicsemi.com/thread/525534?ContentTypeID=1</link><pubDate>Mon, 03 Mar 2025 14:10:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:97930387-f0d9-4cf4-8f35-d64f0a4ffea2</guid><dc:creator>Yaxit</dc:creator><description>&lt;p&gt;Sorry for the long wait. I finally had the change to try this approach with the EGU and it works well. I will close the ticket, thanks for the help!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Migrating from PPI to DPPI</title><link>https://devzone.nordicsemi.com/thread/523065?ContentTypeID=1</link><pubDate>Fri, 14 Feb 2025 13:31:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6c8cb4a7-c6c7-445e-bfed-ab7aa3aef49f</guid><dc:creator>Yaxit</dc:creator><description>&lt;p&gt;I did not know of this peripheral, but it seems the layer of indirection that I need, I&amp;#39;ll have a try and come back to you to confirm!&lt;/p&gt;
&lt;p&gt;Thanks!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Migrating from PPI to DPPI</title><link>https://devzone.nordicsemi.com/thread/523064?ContentTypeID=1</link><pubDate>Fri, 14 Feb 2025 13:30:44 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ec3fc35f-8278-4b30-8626-06023e07d871</guid><dc:creator>Yaxit</dc:creator><description>&lt;p&gt;Hi, I have not tried this yet but I too had the impression that it would not help. The EGU solution seems interesting though, I&amp;#39;ll try that first.&lt;/p&gt;
&lt;p&gt;Since the behaviour of groups is not very clear, it might be still useful to try it out and then update the documentation?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Migrating from PPI to DPPI</title><link>https://devzone.nordicsemi.com/thread/523060?ContentTypeID=1</link><pubDate>Fri, 14 Feb 2025 13:24:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f1cb9a1e-baa5-47f9-a448-eea30bdda72f</guid><dc:creator>Emil Lenngren</dc:creator><description>&lt;p&gt;I think you should be able to use an EGU peripheral to form additional &amp;quot;edges&amp;quot; between channels (up to 16 per EGU instance). From what I see, DPPI groups as Maria suggests are more meant as a way to be able to enable/disable channels also from DPPI events, but not a way to give flexibility to event/task connectivity.&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;p&gt;DPPI channel 0: e1 -&amp;gt; t1 &amp;amp; EGU.TASKS[0]&lt;/p&gt;
&lt;p&gt;DPPI channel 1: e2 &amp;amp; EGU.EVENTS[4] -&amp;gt; t2 &amp;amp; EGU.TASKS[1]&lt;/p&gt;
&lt;p&gt;DPPI channel 2: e3 -&amp;gt; t3 &amp;amp; EGU.TASKS[2]&lt;/p&gt;
&lt;p&gt;DPPI channel 3: e4 &amp;amp; EGU.EVENTS[5] -&amp;gt; t4 &amp;amp; EGU.TASKS[3]&lt;/p&gt;
&lt;p&gt;DPPI channel 4: EGU.EVENTS[0] &amp;amp; EGU.EVENTS[2] -&amp;gt; t5&lt;/p&gt;
&lt;p&gt;DPPI channel 5: EGU.EVENTS[1] &amp;amp; EGU.EVENTS[3] -&amp;gt; t6&lt;/p&gt;
&lt;p&gt;DPPI channel 6: e5 -&amp;gt; TIMER3-&amp;gt;CLEAR &amp;amp; EGU.TASKS[4] &amp;amp; EGU.TASKS[5]&lt;/p&gt;
&lt;p&gt;Then also configure a SHORTS from your TIMER4 CC0 to TIMER4 CLEAR.&lt;/p&gt;
&lt;p&gt;See the following illustrature. Circles are DPPI channels and the horizontal lines are EGU task/events pairs.&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/5430.ppi.png" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Migrating from PPI to DPPI</title><link>https://devzone.nordicsemi.com/thread/523040?ContentTypeID=1</link><pubDate>Fri, 14 Feb 2025 12:14:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:581a4aeb-e0a5-4003-8ad6-e032eae6f00e</guid><dc:creator>Yaxit</dc:creator><description>&lt;p&gt;For now in software. Later I would like to stop and clear tim3 on the e5 (tim4 cc0).&lt;br /&gt;However again, the issue is mainly with the GPIOTE tasks. Clearing the timer would just add a few other tasks to the event e5.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Migrating from PPI to DPPI</title><link>https://devzone.nordicsemi.com/thread/523038?ContentTypeID=1</link><pubDate>Fri, 14 Feb 2025 12:07:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5b8d4615-5ecd-4479-b107-76fd7cb1199d</guid><dc:creator>Emil Lenngren</dc:creator><description>&lt;p&gt;At what point are you clearing (restarting) the timer instances? By ppi or from cpu?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Migrating from PPI to DPPI</title><link>https://devzone.nordicsemi.com/thread/523036?ContentTypeID=1</link><pubDate>Fri, 14 Feb 2025 12:05:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:dc5a6d3a-b7fa-443c-ae4c-da660d38ac4a</guid><dc:creator>Yaxit</dc:creator><description>&lt;p&gt;- e1 to e4 are TIM3 CC0-3&lt;br /&gt;- e5 is TIM4 CC0&lt;/p&gt;
&lt;p&gt;- t1, t3, t5 are GPIOTE set&lt;br /&gt;- t2, t4, t6 are GPIOTE clear&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Migrating from PPI to DPPI</title><link>https://devzone.nordicsemi.com/thread/523030?ContentTypeID=1</link><pubDate>Fri, 14 Feb 2025 11:43:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d19963c0-3cd4-4ce0-94ae-a38e56836a81</guid><dc:creator>Emil Lenngren</dc:creator><description>&lt;p&gt;Exactly which events are you listening to? Which event is which cc and do you have any shorts from a cc to clear (which in that case)?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Migrating from PPI to DPPI</title><link>https://devzone.nordicsemi.com/thread/523028?ContentTypeID=1</link><pubDate>Fri, 14 Feb 2025 11:34:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1d4060b8-0799-47c6-82e8-101460f5d70d</guid><dc:creator>Maria Gilje</dc:creator><description>&lt;p&gt;Hi Andrea,&lt;/p&gt;
[quote user="Yaxit"]The problem I have here is that some tasks should be triggered by multiple DPPI channels (e.g. t6).[/quote]
&lt;p&gt;The only possible option I see is to use the &lt;a href="https://docs.nordicsemi.com/bundle/ps_nrf5340/page/dppi.html#d1054e205"&gt;many-to-many connection&lt;/a&gt; and set up channel groups for each event-tasks group. I am not sure if that will allow you to have one event publish to several channels or have one task subscribe to several channels, though. It is not clear from the documentation and I have not found anyone internally who&amp;#39;s tried this yet. &lt;/p&gt;
&lt;p&gt;You may have already tried out the channel groups? &lt;/p&gt;
&lt;p&gt;Best regards, &lt;/p&gt;
&lt;p&gt;Maria&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Migrating from PPI to DPPI</title><link>https://devzone.nordicsemi.com/thread/522861?ContentTypeID=1</link><pubDate>Thu, 13 Feb 2025 13:01:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7cd33c87-ab5d-4455-97fb-3ea6bc7d416d</guid><dc:creator>Yaxit</dc:creator><description>&lt;p&gt;Thanks. As far as I can see, this use case is different from the example you linked. I&amp;#39;m familiar with how to connect multiple events and multiple tasks to the same DPPI channel. The problem I have here is that some tasks should be triggered by multiple DPPI channels (e.g. t6).&lt;/p&gt;
&lt;p&gt;This was achieved in PPI with forks, but I cannot reproduce it with DPPI. Looking forward to your solution!&lt;/p&gt;
&lt;p&gt;Best,&lt;/p&gt;
&lt;p&gt;Andrea&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Migrating from PPI to DPPI</title><link>https://devzone.nordicsemi.com/thread/522499?ContentTypeID=1</link><pubDate>Tue, 11 Feb 2025 15:33:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6583c8cd-2fd2-4def-8e30-27a1577d10db</guid><dc:creator>Maria Gilje</dc:creator><description>&lt;p&gt;Hello, &lt;/p&gt;
&lt;p&gt;Thank you for your patience so far. &lt;/p&gt;
&lt;p&gt;This reply from a few years ago seems promising: &amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/90268/using-the-dppi-on-the-nrf5340-to-enable-the-adc-and-gpio-toggling-based-on-a-hardware-timer/378266"&gt;RE: Using the DPPI on the nRF5340 to enable the ADC and GPIO toggling based on a hardware timer&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;I will look into it more as well. I&amp;#39;m not experienced with (D)PPI yet, so I appreciate your patience while I figure things out. &lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Maria&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>