<?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>Multiple SPIM sections using EasyDMA</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/126010/multiple-spim-sections-using-easydma</link><description>My design is in alpha test and we just discovered that apparently SPIM allows only one module to be enabled at a time. When a second module (SPIM3, SPIM2) is enabled, the first turns off or the 2nd never turns on, depending on the relative priority of</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Sat, 06 Dec 2025 09:13:11 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/126010/multiple-spim-sections-using-easydma" /><item><title>RE: Multiple SPIM sections using EasyDMA</title><link>https://devzone.nordicsemi.com/thread/556391?ContentTypeID=1</link><pubDate>Sat, 06 Dec 2025 09:13:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d1861d68-2c4b-457b-a37e-9fda4f591e6d</guid><dc:creator>Turbo J</dc:creator><description>&lt;p&gt;Won&amp;#39;t help here, OP is abusing MOSI as some kind of PWM signal generator and thus needs constant clocking of the peripherial(s).&lt;/p&gt;
&lt;p&gt;I recommend the PWM peripherials for most signal generating use cases.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Multiple SPIM sections using EasyDMA</title><link>https://devzone.nordicsemi.com/thread/556386?ContentTypeID=1</link><pubDate>Fri, 05 Dec 2025 21:48:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b6a16e4a-32c8-4833-ae87-5daed342663e</guid><dc:creator>hmolesworth</dc:creator><description>&lt;p&gt;Glad to be of help; also a one-man-shop :-)&lt;/p&gt;
&lt;p&gt;This may possibly be of help if wanting many SPIMs:&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/108076/timing-of-spi-when-sharing-common-lines-on-independent-timers/467992"&gt;spi-sharing-common-lines&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Multiple SPIM sections using EasyDMA</title><link>https://devzone.nordicsemi.com/thread/556382?ContentTypeID=1</link><pubDate>Fri, 05 Dec 2025 20:29:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c4e51cd5-cdf6-4b09-bb8f-ea1172cefd7a</guid><dc:creator>SteveHx</dc:creator><description>&lt;p&gt;Well, son-of-a-self-sealing-cylinder!! That appears to work! Quite strange that the channels will work without it if only one is enabled and not with two enabled, but I&amp;#39;ve got the proof. Now, to get back to some of the other issues with my code.&lt;/p&gt;
&lt;p&gt;Thank you very much for being so responsive. Sometimes it just takes somebody else to point out the &amp;quot;obvious&amp;quot;. One of the drawbacks of being a one-man-shop!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Multiple SPIM sections using EasyDMA</title><link>https://devzone.nordicsemi.com/thread/556381?ContentTypeID=1</link><pubDate>Fri, 05 Dec 2025 20:18:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f329b636-f167-417e-8d76-9ba413cbf65c</guid><dc:creator>SteveHx</dc:creator><description>&lt;p&gt;I thought of that also. But why does it work fine with only one channel operating?&lt;/p&gt;
&lt;p&gt;Still, it&amp;#39;s worth a try. I&amp;#39;ll have a go at that. I have plenty of unused pins where I can dump SCLK.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Multiple SPIM sections using EasyDMA</title><link>https://devzone.nordicsemi.com/thread/556379?ContentTypeID=1</link><pubDate>Fri, 05 Dec 2025 19:46:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6e18ab5d-efa1-4a40-9f1d-ffd55cc2c81b</guid><dc:creator>hmolesworth</dc:creator><description>&lt;p&gt;SCK is a required hardware pin and although it can be set to disconnected the SPIM then does not work correctly,&amp;nbsp;particularly with multiple SPIMs. The reason is likely to be the hardware clock path to the internal SPI peripheral as the SPI peripheral must cope with both internal (Master) and external (Slave) clock routes. I suspect the physical path was simply designed to be identical and therefore requires the SCK to be an output pin driving the internal clock line. Even if you got a single SPIM to work multiple SPIMs would share the same clock line and therefore misbehave.&lt;/p&gt;
&lt;p&gt;In case I am correct regarding your issue, simply set SCK to any spare or unused pin for each SPIM and test again.&lt;/p&gt;
&lt;p&gt;Edit: Tidied up and found an old link:&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/67405/spi-not-transferring-when-sck-pin-not-used/276040"&gt;spi-not-transferring-when-sck-pin-not-used&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;quot;&lt;span&gt;&lt;em&gt;It&amp;#39;s not&amp;nbsp; bug, it&amp;#39;s a feature ..&lt;/em&gt;&amp;quot;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Multiple SPIM sections using EasyDMA</title><link>https://devzone.nordicsemi.com/thread/556377?ContentTypeID=1</link><pubDate>Fri, 05 Dec 2025 18:59:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:26f19846-b96a-44fe-a32e-e50dc460cdca</guid><dc:creator>SteveHx</dc:creator><description>&lt;p&gt;I tired of hearing about moving to the next &amp;quot;latest and greatest&amp;quot; development tools, with yet another steep learning curve, and its own set of bugs and quirks. I just want the hardware to do what the manufacturer advertises, without having to wade thru yet another layer of bloat. I don&amp;#39;t need Threads, I just need the SPIM modules to do their own thing under EasyDMA (a great feature of this processor line).&lt;/p&gt;
&lt;p&gt;What are you anticipating in &amp;quot;the very next line(s)&amp;quot;? Once the SPIM is set up, it should run independently of my code, with due regard for bus contention by EasyDMA.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Multiple SPIM sections using EasyDMA</title><link>https://devzone.nordicsemi.com/thread/556376?ContentTypeID=1</link><pubDate>Fri, 05 Dec 2025 18:54:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7389368a-2df2-4f78-8476-20ea25f4eed7</guid><dc:creator>Turbo J</dc:creator><description>&lt;p&gt;I recommend migrating to VS code and the NCS SDK, which has support for Threads.&lt;/p&gt;
&lt;p&gt;BTW: I strongly suspect the problem in the very next line(s) to occur.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Multiple SPIM sections using EasyDMA</title><link>https://devzone.nordicsemi.com/thread/556375?ContentTypeID=1</link><pubDate>Fri, 05 Dec 2025 18:46:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b39b5c75-e1ad-4f78-8d37-be852bdc6976</guid><dc:creator>SteveHx</dc:creator><description>&lt;p&gt;I can&amp;#39;t find any reference to &amp;quot;DTS checker&amp;quot; etc., so I must presume that&amp;#39;s something in whatever IDE you&amp;#39;re using. I&amp;#39;m using Segger. Below are snippets of my code that show what I&amp;#39;m doing with the SPIM. I have tried using different combinations of SPIM0 thru 3, and various clock frequencies. SPIM3, being highest priority, works best, but enabling any other SPIMx channel kills SPIM3.My code does not use any of the TWI, SPI, or SPIS channels that conflict with the SPIM channels.&lt;/p&gt;
&lt;p&gt;NRF_SPIM_Type *SPITable [Channels] = {NRF_SPIM3, NRF_SPIM2};&lt;br /&gt;NRF_SPIM_Type *SPI;&lt;/p&gt;
&lt;p&gt;SetPinCfg (PinNum [Ch], 0x00000303);&lt;br /&gt;SPI = SPITable [Ch];&lt;br /&gt;&amp;nbsp; &amp;nbsp;SPI -&amp;gt; TASKS_STOP = 1;&lt;br /&gt;&amp;nbsp; &amp;nbsp;SPI -&amp;gt; ENABLE = 0;&lt;br /&gt;&amp;nbsp; &amp;nbsp;SPI -&amp;gt; SHORTS = 1 &amp;lt;&amp;lt; 17;&lt;br /&gt;&amp;nbsp; &amp;nbsp;SPI -&amp;gt; PSEL.SCK = (uint32_t) 0xFFFFFFFF; // disconnect Clk&lt;br /&gt;&amp;nbsp; &amp;nbsp;SPI -&amp;gt; PSEL.MOSI = PinNum [Ch];&lt;br /&gt;&amp;nbsp; &amp;nbsp;SPI -&amp;gt; PSEL.MISO = 0xFFFFFFFF; // Disconnect MISO&lt;br /&gt;&amp;nbsp; &amp;nbsp;SPI -&amp;gt; PSEL.CSN&amp;nbsp; &amp;nbsp;= 0xFFFFFFFF;&lt;br /&gt;&amp;nbsp; &amp;nbsp;SPI -&amp;gt; FREQUENCY = SpiClkFreq [SpiClk [Ch]].Reg;&lt;br /&gt;&amp;nbsp; &amp;nbsp;SPI -&amp;gt; RXD.PTR = (uint32_t) &amp;amp;Dummy;&lt;br /&gt;&amp;nbsp; &amp;nbsp;SPI -&amp;gt; RXD.MAXCNT = sizeof Dummy;&lt;br /&gt;&amp;nbsp; &amp;nbsp;SPI -&amp;gt; RXD.LIST = 0;&lt;br /&gt;&amp;nbsp; &amp;nbsp;SPI -&amp;gt; TXD.PTR = (uint32_t) Buffer [Ch];&lt;br /&gt;&amp;nbsp; &amp;nbsp;SPI -&amp;gt; TXD.MAXCNT = NumBytes [Ch];&lt;br /&gt;&amp;nbsp; &amp;nbsp;SPI -&amp;gt; TXD.LIST = 0;&lt;br /&gt;&amp;nbsp; &amp;nbsp;SPI -&amp;gt; CONFIG = 0;&lt;br /&gt;&amp;nbsp; &amp;nbsp;SPI -&amp;gt; ENABLE = 7;&lt;br /&gt;&amp;nbsp; &amp;nbsp;SPI -&amp;gt; TASKS_START = 1;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Multiple SPIM sections using EasyDMA</title><link>https://devzone.nordicsemi.com/thread/556371?ContentTypeID=1</link><pubDate>Fri, 05 Dec 2025 17:36:44 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3e32b998-befe-4279-87fe-cd6c72d12c1b</guid><dc:creator>Turbo J</dc:creator><description>&lt;p&gt;Post your dts overlay with the peripherial and pin configs. I can run multiple SPIM peripherials here - but its easy to make a mistake with the shared peripherials and the DTS checker won&amp;#39;t catch all of them AFAIK.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>