<?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>SPI returns 0x0F on any request after random period of time</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/322/spi-returns-0x0f-on-any-request-after-random-period-of-time</link><description>Hi,
im using nRF24L01+ to constantly transmit data and all working fine, but at some point SPI fails and the only returned values I get are 0x0F - doesnt matter which register I try to read or write.
Any idea why is that happening? 
 Thanks,
Serg</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 20 Sep 2013 13:25:38 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/322/spi-returns-0x0f-on-any-request-after-random-period-of-time" /><item><title>RE: SPI returns 0x0F on any request after random period of time</title><link>https://devzone.nordicsemi.com/thread/1689?ContentTypeID=1</link><pubDate>Fri, 20 Sep 2013 13:25:38 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:cfc1af11-591f-4ca3-bbbc-8df2d166035b</guid><dc:creator>Sergy</dc:creator><description>&lt;p&gt;The thing is that we dont use re transmits at all to maximize the bandwidth.
But what I meant is to use diode on the incoming signal so if signal is over 0dBm diode would cut it down to 0 dBm, here is the diode im talking about: &lt;a href="http://www.infineon.com/dgdl/bat24-02ls.pdf?folderId=db3a304314dca3890114ff6812070b44&amp;amp;fileId=db3a304314dca389011517e1bb1d0d5d"&gt;www.infineon.com/.../bat24-02ls.pdf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Thanks!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SPI returns 0x0F on any request after random period of time</title><link>https://devzone.nordicsemi.com/thread/1688?ContentTypeID=1</link><pubDate>Fri, 20 Sep 2013 11:13:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c46cf6f7-02b1-4365-9dda-9fe0e4381f18</guid><dc:creator>H&amp;#229;kon Alseth</dc:creator><description>&lt;p&gt;The problem is that you will then degrade the receiver sensitivity as well, which affects your overall range. I would recommend that you use a lower output power instead of doing this.&lt;/p&gt;
&lt;p&gt;You could try a power-output scaling based on the number of re-transmissions that occurs. If you have a low re-transmit count, then you scale the output power down. When it rises, you set higher output power.&lt;/p&gt;
&lt;p&gt;Best regards
Håkon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SPI returns 0x0F on any request after random period of time</title><link>https://devzone.nordicsemi.com/thread/1687?ContentTypeID=1</link><pubDate>Fri, 20 Sep 2013 07:29:51 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:327963f9-390d-40d8-a76f-b6ba11af52b0</guid><dc:creator>Sergy</dc:creator><description>&lt;p&gt;Well checking for -64 dBm wont really help, because it wont say anything about how much over -64 the signal power is. May be there is some hardware solution? Like installing a blocking diode for the RX?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SPI returns 0x0F on any request after random period of time</title><link>https://devzone.nordicsemi.com/thread/1686?ContentTypeID=1</link><pubDate>Thu, 19 Sep 2013 06:44:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4896cd9c-8514-49e6-b04e-447da0ce04c5</guid><dc:creator>H&amp;#229;kon Alseth</dc:creator><description>&lt;p&gt;Since the nRF24L01+ does not have an RSSI, it is not trivial to implement a detection of this.
You could use the RPD bit (detects if signal is &amp;gt; -64 dBm) to adjust the output power, by checking this bit when you receive an ACK.&lt;/p&gt;
&lt;p&gt;Best regards
Håkon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SPI returns 0x0F on any request after random period of time</title><link>https://devzone.nordicsemi.com/thread/1685?ContentTypeID=1</link><pubDate>Wed, 18 Sep 2013 10:53:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:cc5a32a4-ab2d-44f9-af6f-20f2cd9b96b7</guid><dc:creator>Sergy</dc:creator><description>&lt;p&gt;Håkon,&lt;/p&gt;
&lt;p&gt;i did some additional testing. SPI works correctly on the MCU side, so it sends correct data.
I have a feeling that indeed when devices are too close by to each other it stops working. Any idea on how to protect it from a high-power signal? 30cm apart is not enough especially if we use the highest power.&lt;/p&gt;
&lt;p&gt;Regards,
Sergey&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SPI returns 0x0F on any request after random period of time</title><link>https://devzone.nordicsemi.com/thread/1684?ContentTypeID=1</link><pubDate>Wed, 28 Aug 2013 11:55:59 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:da218018-ab6c-4b24-b131-c0808f5e911e</guid><dc:creator>H&amp;#229;kon Alseth</dc:creator><description>&lt;p&gt;Forgot to answer the last question:
If they are exposed to high RF input over time (&amp;gt; 0dBm) you will most likely damage the devices.&lt;/p&gt;
&lt;p&gt;However, to ensure that you do not get 0 dBm or higher into the radio, just keep them 30 cm or so apart.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SPI returns 0x0F on any request after random period of time</title><link>https://devzone.nordicsemi.com/thread/1683?ContentTypeID=1</link><pubDate>Wed, 28 Aug 2013 11:49:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d63dacb2-4092-4a0f-85b1-d93bac0220a7</guid><dc:creator>H&amp;#229;kon Alseth</dc:creator><description>&lt;p&gt;There is protection against overvoltage and ESD.
Excessive current will be an indication that the internal protection diodes inside the pads have gone off.&lt;/p&gt;
&lt;p&gt;If the MOSI pin has been clamped high due to overvoltage, it might explain why you get 0x0F back on the MISO pin.
The device will always shift back the &amp;quot;STATUS&amp;quot; register if you send &amp;quot;NOP&amp;quot; command (0xFF, ie: pin latched high).&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Have you checked the current consumption when the devices are failing?&lt;/li&gt;
&lt;li&gt;Have you scoped the SPI lines to see what goes into the nRF?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Best regards
Håkon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SPI returns 0x0F on any request after random period of time</title><link>https://devzone.nordicsemi.com/thread/1682?ContentTypeID=1</link><pubDate>Wed, 28 Aug 2013 11:35:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9a10392c-ef6b-4eaf-a828-32c31a6162ac</guid><dc:creator>Sergy</dc:creator><description>&lt;p&gt;Yeah have some more of these. Actually when i set the rate to 1MBPS it happens very rare (hours). But If i set the rate to 250KBPS the problem happens very fast after 1 minute of runtime.&lt;/p&gt;
&lt;p&gt;Is there no protection at all? So what happens when i have two devices that (hopefully) would transmit with the distance of 500m between each other and then we bring them close to each other - will they just fry each other?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SPI returns 0x0F on any request after random period of time</title><link>https://devzone.nordicsemi.com/thread/1681?ContentTypeID=1</link><pubDate>Wed, 28 Aug 2013 11:28:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ec4c649c-6d50-4b90-a3fe-393a3cabe7ea</guid><dc:creator>H&amp;#229;kon Alseth</dc:creator><description>&lt;p&gt;If they were placed close together (= 0 dBm going into the receiver, the nRF-parts may have been permanently damaged.&lt;/p&gt;
&lt;p&gt;Do you have any more modules to test with to see if they have the same SPI-issue?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SPI returns 0x0F on any request after random period of time</title><link>https://devzone.nordicsemi.com/thread/1680?ContentTypeID=1</link><pubDate>Wed, 28 Aug 2013 11:23:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fcb31fdb-44f2-4d65-a0cb-3ffc2a9f23bc</guid><dc:creator>Sergy</dc:creator><description>&lt;p&gt;Hi Håkon,&lt;/p&gt;
&lt;p&gt;The second module is our custom board, with chip antenna instead of rubber duckie, but it also has PA. The max range I get is 10m with the output of -6dBm.&lt;/p&gt;
&lt;p&gt;Regards,
Sergey&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SPI returns 0x0F on any request after random period of time</title><link>https://devzone.nordicsemi.com/thread/1679?ContentTypeID=1</link><pubDate>Wed, 28 Aug 2013 11:12:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4028e706-dc07-4157-8a54-8565a85b57a9</guid><dc:creator>H&amp;#229;kon Alseth</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Are you using two of those modules for communication?
if yes; how far are they from each other?&lt;/p&gt;
&lt;p&gt;Those modules have a PA on them, which will then send with 20-30 dBm output.
The receiver LNA (low-noise-amp) will be saturated at &amp;gt;0 dBm (0 dBm = max input), which can explain why you are getting strange behavior.&lt;/p&gt;
&lt;p&gt;Best regards
Håkon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SPI returns 0x0F on any request after random period of time</title><link>https://devzone.nordicsemi.com/thread/1678?ContentTypeID=1</link><pubDate>Wed, 28 Aug 2013 10:26:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:10b2000b-5b19-4c85-9853-3462d392c4c3</guid><dc:creator>Sergy</dc:creator><description>&lt;p&gt;Hi Håkon,&lt;/p&gt;
&lt;p&gt;here is the picture of the module - standard module from ebay.
Markings on the chip read as follows:
NRF   A
24L01+
083DAE&lt;/p&gt;
&lt;p&gt;Regards,
Sergey&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/20130828_5F00_141838.jpg" alt="20130828_141838.jpg" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SPI returns 0x0F on any request after random period of time</title><link>https://devzone.nordicsemi.com/thread/1677?ContentTypeID=1</link><pubDate>Wed, 28 Aug 2013 07:41:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:32e89292-9dd7-4f9d-aae5-3cc5534b7f67</guid><dc:creator>H&amp;#229;kon Alseth</dc:creator><description>&lt;p&gt;Hi Sergey,&lt;/p&gt;
&lt;p&gt;That sounds very strange. Can you take a picture of the module that you are using, and in addition: a close-up picture of the nRF-device?&lt;/p&gt;
&lt;p&gt;BR
Håkon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SPI returns 0x0F on any request after random period of time</title><link>https://devzone.nordicsemi.com/thread/1676?ContentTypeID=1</link><pubDate>Tue, 27 Aug 2013 17:02:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6c5371d4-b65c-42f2-b147-b6c99aaac8dd</guid><dc:creator>Sergy</dc:creator><description>&lt;p&gt;Håkon,
another problem I just discovered that if I set power to 0dBM after first transmit radio get into the same panic mode. So the only possible value is -6dBm.&lt;/p&gt;
&lt;p&gt;Regards,
Sergey&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SPI returns 0x0F on any request after random period of time</title><link>https://devzone.nordicsemi.com/thread/1675?ContentTypeID=1</link><pubDate>Tue, 27 Aug 2013 13:57:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8614c953-eee2-4a5b-a2f6-e81cc846220f</guid><dc:creator>Sergy</dc:creator><description>&lt;p&gt;Hi Håkon,&lt;/p&gt;
&lt;p&gt;Yes indeed Im flushing in case I have received wrong length package, unfortunately it doesnt solve the problem.
Any other ideas?&lt;/p&gt;
&lt;p&gt;Thanks,
Sergey&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SPI returns 0x0F on any request after random period of time</title><link>https://devzone.nordicsemi.com/thread/1674?ContentTypeID=1</link><pubDate>Mon, 26 Aug 2013 08:39:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7f50be33-f197-48b7-a50c-1b0d4e174cd2</guid><dc:creator>H&amp;#229;kon Alseth</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;If you have &amp;quot;Dynamic Payload Length&amp;quot; enabled (en_dpl in FEATURE register, and &amp;quot;DYNPD&amp;quot; register), the state machine inside the nRF24L01+ can go into a unknown state if you receive a packet which is of length = 0 || length &amp;gt; 32 bytes.
I have not seen SPI transaction byte errors in this state, but I have seen the RX deadlock situation.&lt;/p&gt;
&lt;p&gt;What you can do to prevent this is to add a check for your payload length:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
void radio_isr()
{
....
len = read_reg(R_RX_PL_WID);
if (len == 0 || len &amp;gt; 32) 
  flush_rx_fifo();
else 
  read_out_payload(&amp;amp;my_payload);
....
}

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Best regards
Håkon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SPI returns 0x0F on any request after random period of time</title><link>https://devzone.nordicsemi.com/thread/1673?ContentTypeID=1</link><pubDate>Fri, 23 Aug 2013 13:05:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:312993cb-e2fe-4e83-b25a-e70861ab42db</guid><dc:creator>Sergy</dc:creator><description>&lt;p&gt;And on another try it set CRC0 to 0 but left EN_CRC as 1. So im afraid registers are randomly being reset? Any idea how is that possible?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SPI returns 0x0F on any request after random period of time</title><link>https://devzone.nordicsemi.com/thread/1672?ContentTypeID=1</link><pubDate>Fri, 23 Aug 2013 12:52:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:84c1ad98-c494-4d20-8ac2-a6b8b356b9d7</guid><dc:creator>Sergy</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;actually now getting even weirder situation.
1 receiver, 1 transmitter. At some point receiver stops receiving and I checked CONFIG 0x00 register and it has CRCO set to 0. Initially it was set to 1. Of course in that case it wouldnt receive any packets. Question what does reset it to 0?&lt;/p&gt;
&lt;p&gt;Thanks,
Sergey&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SPI returns 0x0F on any request after random period of time</title><link>https://devzone.nordicsemi.com/thread/1670?ContentTypeID=1</link><pubDate>Fri, 23 Aug 2013 08:41:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8463c453-be03-4fc9-886f-6e0a5e953ded</guid><dc:creator>Sergy</dc:creator><description>&lt;p&gt;Hi Håkon,&lt;/p&gt;
&lt;p&gt;I now know how the problem occurs, but not sure how to solve it.&lt;/p&gt;
&lt;p&gt;So the setup was:
1 receiver, 2 transmitters. They are time synced, so there is a form of TDMA going on to separate times when transmitters are sending. However because of not precise clock sometimes transmitting times overlap and there are multiple packets on air going to receiver. At that moment receiver freezes and gets into situation when all registers return 0x0F or in some cases it reports normal operation but it doesnt transmit or receive anything.&lt;/p&gt;
&lt;p&gt;Is there a way to detect collision on the receiver side and reset device or do something else?&lt;/p&gt;
&lt;p&gt;Answering your questions:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Yes same situation happens on all receivers.&lt;/li&gt;
&lt;li&gt;voltage is 3.3v and the frequency is 4Mhz for SPI.&lt;/li&gt;
&lt;li&gt;Yes SPI communications are clear.&lt;/li&gt;
&lt;li&gt;All commands return 0x0F or as I just wrote it returns correct values, but chip doesnt do what it says its doing - no TX or RX happening&lt;/li&gt;
&lt;li&gt;Flushing doesnt help thats why i was thinking about reset of some kind?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Kind regards,
Sergey&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SPI returns 0x0F on any request after random period of time</title><link>https://devzone.nordicsemi.com/thread/1671?ContentTypeID=1</link><pubDate>Fri, 23 Aug 2013 07:06:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bb7e5955-1c9f-4e97-9296-01499f96ce7c</guid><dc:creator>H&amp;#229;kon Alseth</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Can you provide us with a bit more information?&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Does this happen on other nRF24L01+ that you&amp;#39;re testing with?&lt;/li&gt;
&lt;li&gt;What SPI freq and voltage is used?&lt;/li&gt;
&lt;li&gt;Have you scoped the SPI-lines to see that the signal is nice and clean, and verify that 0x0F is going over the bus?&lt;/li&gt;
&lt;li&gt;Does every read-command return this, even read pipe address?&lt;/li&gt;
&lt;li&gt;When this happens, is it possible to recover by flushing RX and TX pipes?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Best regards
Håkon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>