<?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>nrf24lu1p PRX can&amp;#39;t receive data in pipe4 and pipe5</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/82317/nrf24lu1p-prx-can-t-receive-data-in-pipe4-and-pipe5</link><description>Hi, I implement a dongle that connects multiple devices with MultiCeiver. pipe 0 used for pair, pipe1 ~pipe5 used for device connect. dongle work in PRX, mode, device work in PTX mode. But when the device assigned pipe4 or pipe5 send payload, dongle can</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 03 Dec 2021 11:23:14 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/82317/nrf24lu1p-prx-can-t-receive-data-in-pipe4-and-pipe5" /><item><title>RE: nrf24lu1p PRX can't receive data in pipe4 and pipe5</title><link>https://devzone.nordicsemi.com/thread/341845?ContentTypeID=1</link><pubDate>Fri, 03 Dec 2021 11:23:14 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:95f3a36d-1dff-4d5a-b538-b3891ef90e19</guid><dc:creator>H&amp;#229;kon Alseth</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;You should read the payload width first, and flush the packet if it is equal to 0 bytes or greater than 32 bytes:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;len = hal_nrf_read_rx_payload_width();
if (len == 0 || len &amp;gt; 32) {
    /* flush RX FIFO */
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
[quote user="SimonYao"]pipe 0 is a fixed public&amp;nbsp; address, pipes 1-5 share the four most significant address bytes generated by dongle,[/quote]
&lt;p&gt;It is very important that none of the&amp;nbsp;pipes LSByte&amp;nbsp;are equal, this includes the unique pipe 0. Here from the&amp;nbsp;PS chapter 7.6:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;The LSByte must be unique for all six pipes.&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Is the content of the data when you&amp;#39;re reading the payload valid?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Kind regards,&lt;/p&gt;
&lt;p&gt;Håkon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nrf24lu1p PRX can't receive data in pipe4 and pipe5</title><link>https://devzone.nordicsemi.com/thread/341766?ContentTypeID=1</link><pubDate>Fri, 03 Dec 2021 02:04:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4a97fbe3-342f-4815-af67-87a7e695d0a1</guid><dc:creator>SimonYao</dc:creator><description>&lt;p&gt;Addresses being set as PS(chapter7 Figure 13), pipe 0 is a fixed public&amp;nbsp; address, pipes 1-5 share the four most significant address bytes generated by dongle,&amp;nbsp;The LSByte is&amp;nbsp;0x33 + pipe_number。&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;The nrf_isr code as follow, data is read out by usb port.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;NRF_ISR()
{
    uint8_t irq_flags;
    uint16_t rx_info;
	uint8_t xdata rf_in_buf[32];
	uint8_t pipe_src;
	uint8_t len;
    irq_flags = hal_nrf_get_clear_irq_flags();
		
	if(irq_flags &amp;amp; (1 &amp;lt;&amp;lt; (uint8_t)HAL_NRF_RX_DR))
	{
		
		while (!hal_nrf_rx_fifo_empty()) 
		{ 
			LED = ~LED;
			rx_info = hal_nrf_read_rx_payload(rf_in_buf);
			pipe_src = (uint8_t)(rx_info&amp;gt;&amp;gt;9 &amp;amp;  0x07);
			len = (uint8_t)(rx_info &amp;amp; 0xff);
#if 1
			raw_hid_buff[0] = rx_info &amp;gt;&amp;gt; 0xff;
			raw_hid_buff[1] = len;
			raw_hid_buff[2] = irq_flags;
			if(len &amp;gt; 0)
			{
				memcpy(raw_hid_buff+3, rf_in_buf, len);
			}
			usb_raw_data_send(raw_hid_buff,32);		//
#endif
			if(pipe_src &amp;lt;= 5 &amp;amp;&amp;amp; len&amp;gt;0)
			{
				fap_rx_isr(pipe_src, len, rf_in_buf);
			}
			else
			{
				hal_nrf_flush_rx();
				break;
			}
    }
	}
}&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nrf24lu1p PRX can't receive data in pipe4 and pipe5</title><link>https://devzone.nordicsemi.com/thread/341718?ContentTypeID=1</link><pubDate>Thu, 02 Dec 2021 14:06:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0bee391f-b2e3-481a-974d-b4cf7d79a415</guid><dc:creator>H&amp;#229;kon Alseth</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
[quote user=""]But when the device assigned pipe4&amp;nbsp;or pipe5 send payload,&amp;nbsp; dongle can&amp;#39;t receive any data. while dongle can enter rf interrupt,&amp;nbsp;and&amp;nbsp;Data Ready RX FIFO interrupt(RX_DR) being set 1, but&amp;nbsp;Data pipe number(RX_P_NO) is 0.[/quote]
&lt;p&gt;What addresses are being set on all pipes?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;How are you reading out the pipe information?&lt;/p&gt;
&lt;p&gt;Please also take this note in the PS (chapter 8.5) into consideration:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;Note: The 3 bit pipe information in the STATUS register is updated during the IRQ pin high to low
transition. The pipe information is unreliable if the STATUS register is read during an IRQ pin
high to low transition.&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Kind regards,&lt;/p&gt;
&lt;p&gt;Håkon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>