<?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>nRF52840 SPI3 data corruption at 16 Mhz - anomaly workaround included</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/123836/nrf52840-spi3-data-corruption-at-16-mhz---anomaly-workaround-included</link><description>citing the following issues 
 
 
 I&amp;#39;ve been able to implement the 16 Mhz on the SPIM3. However, the incoming data on the MISO is still corrupted. With my oscilloscope I can see the incoming data is correct. 
 I&amp;#39;ve implemented the CONFIG_NRF52_ANOMALY_198_WORKAROUND</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 03 Sep 2025 08:57:17 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/123836/nrf52840-spi3-data-corruption-at-16-mhz---anomaly-workaround-included" /><item><title>RE: nRF52840 SPI3 data corruption at 16 Mhz - anomaly workaround included</title><link>https://devzone.nordicsemi.com/thread/547582?ContentTypeID=1</link><pubDate>Wed, 03 Sep 2025 08:57:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7a9c2faa-13d4-45c0-a72b-d52a97d06dc9</guid><dc:creator>Sam-IIT</dc:creator><description>&lt;p&gt;we are designing the integrated board for our solutions, so I&amp;#39;ll be able to test this at some point at the end of the year. I thank you all for your time and help. I&amp;#39;ll try to remember to come back with some results!&lt;/p&gt;
&lt;p&gt;all the best&lt;/p&gt;
&lt;p&gt;Sam&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52840 SPI3 data corruption at 16 Mhz - anomaly workaround included</title><link>https://devzone.nordicsemi.com/thread/547546?ContentTypeID=1</link><pubDate>Tue, 02 Sep 2025 22:17:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6c45410c-b6df-439f-a13a-341ca44bbe8b</guid><dc:creator>hmolesworth</dc:creator><description>&lt;p&gt;Bit-shift is likely due to hardware timing issues, very different to byte-corruption due to SPIM3 anomaly issues.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;quot;Standard four-wire 32-bit SPI interface with CMOS or low-voltage differential signaling (LVDS) I/O pins&lt;/em&gt;&amp;quot;. If using &lt;em&gt;LVDS_en&lt;/em&gt; tied high a 100R termination resistor is required on the digital inputs to the RHS2116 and the differential receive circuit on MISO may be adding a delay. If&amp;nbsp;&lt;span&gt;&lt;em&gt;LVDS_en&lt;/em&gt;&amp;nbsp;is tied low is there a single-ended buffer in the MISO path contributing to phase delay?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt; In both cases connection wires or traces above 1 or 2 inch should be suspect.&amp;nbsp;&lt;/span&gt;&lt;span&gt;Test effect of connection wires or traces by doubling or tripling the connection length of SCLK, MOSI and MISO and see if a further bit shift to the right occurs. If possible test with a connection length of 1 inch or less and see if the bit shift disappears. Yes, not so easy ..&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52840 SPI3 data corruption at 16 Mhz - anomaly workaround included</title><link>https://devzone.nordicsemi.com/thread/547434?ContentTypeID=1</link><pubDate>Tue, 02 Sep 2025 09:25:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ede8b6f7-ed7a-442a-8c4f-9cbbfc41de43</guid><dc:creator>Sam-IIT</dc:creator><description>&lt;p&gt;Hi Edvin,&lt;/p&gt;
&lt;p&gt;thank you for your response. I have no issue with other SPIs and everything works fine at 8 Mhz. Right now I just implemented a workaround that shift the data and drop the comparison for the LSB bit. Could this be related to cable length and similar issues?&lt;br /&gt;&lt;br /&gt;The SPI3 is connected to a RHS2116 intan device and uses the nrfx interface.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52840 SPI3 data corruption at 16 Mhz - anomaly workaround included</title><link>https://devzone.nordicsemi.com/thread/547342?ContentTypeID=1</link><pubDate>Mon, 01 Sep 2025 12:32:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:35dc502e-3341-4458-8f74-7f094f02e8e1</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Simon is out of office for a while.&lt;/p&gt;
&lt;p&gt;It is difficult to test without the sensor that you are using.&lt;/p&gt;
&lt;p&gt;1: Does the device work if you turn down the SPI3 speed?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2: Does it work if you turn down the speed, and change to another SPI instance (0, 1 or 2)?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;br /&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52840 SPI3 data corruption at 16 Mhz - anomaly workaround included</title><link>https://devzone.nordicsemi.com/thread/546784?ContentTypeID=1</link><pubDate>Tue, 26 Aug 2025 13:43:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6b9262c5-d455-4ed5-a4a9-35bdc748ff9a</guid><dc:creator>Sam-IIT</dc:creator><description>&lt;p&gt;Hi Simon, I tried as you suggested swapping NRF_DRIVE_H0H1 for NRF_DRIVE_E0_E1 but then the MISO data showed only 0&amp;#39;s on reception.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52840 SPI3 data corruption at 16 Mhz - anomaly workaround included</title><link>https://devzone.nordicsemi.com/thread/546757?ContentTypeID=1</link><pubDate>Tue, 26 Aug 2025 12:40:42 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4af61571-5a5e-4fd4-9749-e02c9f8e679e</guid><dc:creator>Simonr</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;I wonder if you need to set the drive mode to extra high here.&amp;nbsp;&lt;strong&gt;NRF_DRIVE_E0E1&lt;/strong&gt; to enable the highest throughput possible. Let me know if that doesn&amp;#39;t pan out and I&amp;#39;ll have a closer look at what&amp;#39;s going on here. I agree that erratum 174 should not apply here.&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: nRF52840 SPI3 data corruption at 16 Mhz - anomaly workaround included</title><link>https://devzone.nordicsemi.com/thread/546429?ContentTypeID=1</link><pubDate>Fri, 22 Aug 2025 09:31:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ba664fb9-b8e3-48f8-a7c2-b239ae70c072</guid><dc:creator>Sam-IIT</dc:creator><description>&lt;p&gt;Hi Simon,&lt;/p&gt;
&lt;p&gt;thanks for your message. I&amp;#39;m using the SDK 3.0.2&amp;nbsp;and this is my overlay file with the pin I used.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;&amp;amp;pinctrl {
	spi3_default {
		group1 {
			psels = &amp;lt;NRF_PSEL(SPIM_SCK, 0, 21)&amp;gt;,
			        &amp;lt;NRF_PSEL(SPIM_MOSI, 0, 15)&amp;gt;,
			        &amp;lt;NRF_PSEL(SPIM_MISO, 0, 17)&amp;gt;;
					nordic,drive-mode = &amp;lt;NRF_DRIVE_H0H1&amp;gt;;
		};
	};

	spi3_sleep {
		group1 {
			psels = &amp;lt;NRF_PSEL(SPIM_SCK, 0, 21)&amp;gt;,
			        &amp;lt;NRF_PSEL(SPIM_MOSI, 0, 15)&amp;gt;,
			        &amp;lt;NRF_PSEL(SPIM_MISO, 0, 17)&amp;gt;;
			low-power-enable;
			nordic,drive-mode = &amp;lt;NRF_DRIVE_H0H1&amp;gt;;
		};
	};
};

my_spi: &amp;amp;spi3 {
	compatible = &amp;quot;nordic,nrf-spim&amp;quot;;
	status = &amp;quot;okay&amp;quot;;
	pinctrl-0 = &amp;lt;&amp;amp;spi3_default&amp;gt;;
	pinctrl-1 = &amp;lt;&amp;amp;spi3_sleep&amp;gt;;
	pinctrl-names = &amp;quot;default&amp;quot;, &amp;quot;sleep&amp;quot;;
	max-frequency = &amp;lt;DT_FREQ_M(16)&amp;gt;;
	cs-gpios = &amp;lt;&amp;amp;gpio0 19 GPIO_ACTIVE_LOW&amp;gt;;
};&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#39;m using those pin specifically to exploit the fast GPIOs. I did cut the SB10-15 bridges and soldered the SB20-25, everything works at 8 Mhz.&lt;/p&gt;
&lt;p&gt;I have enabled&amp;nbsp;CONFIG_NRF52_ANOMALY_198_WORKAROUND for the 198. For 193 and 195 I&amp;#39;m not disabling the SPIM3 in my code. For the 174 I&amp;#39;m actually using the&amp;nbsp;&lt;span&gt;NRFX_SPIM_FLAG_NO_XFER_EVT_HANDLER flag on&amp;nbsp;nrfx_spim_xfer, so I don&amp;#39;t think this should apply, am I correct?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;thank you!&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52840 SPI3 data corruption at 16 Mhz - anomaly workaround included</title><link>https://devzone.nordicsemi.com/thread/546426?ContentTypeID=1</link><pubDate>Fri, 22 Aug 2025 09:17:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:428903d0-bff3-49b5-aeff-a9a61abf09cf</guid><dc:creator>Simonr</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;First off, what pins are you using for SPI communication in your application? And what version of the nRF Connect SDK are you working on?&lt;/p&gt;
&lt;p&gt;There are a total of &lt;a href="https://docs.nordicsemi.com/bundle/errata_nRF52840_Rev3/page/ERR/nRF52840/Rev3/latest/err_840_new.html"&gt;four errata related to SPIM3&lt;/a&gt;, so make sure they&amp;#39;re all addressed in your application. Numbers are 174, 193, 195 and 198.&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>