<?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>MAX_RT interrupt still happens even if retransmit is off</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/48546/max_rt-interrupt-still-happens-even-if-retransmit-is-off</link><description>Dear Nordic, 
 I met a problem while using nRF24L01+ about MAX_RT interrupt. 
 In my codes, I disabled RF HW retransmit (hal_nrf_set_auto_retr(0, RF_RETRANS_DELAY);) because I use our software codes to handle retransmit. Therefore, RF should not report</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 30 Jul 2019 12:33:11 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/48546/max_rt-interrupt-still-happens-even-if-retransmit-is-off" /><item><title>RE: MAX_RT interrupt still happens even if retransmit is off</title><link>https://devzone.nordicsemi.com/thread/201248?ContentTypeID=1</link><pubDate>Tue, 30 Jul 2019 12:33:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:517258b1-f850-4925-9600-b8bb4a0c5593</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;No problem, the best of luck &lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/1f642.svg" title="Slight smile"&gt;&amp;#x1f642;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MAX_RT interrupt still happens even if retransmit is off</title><link>https://devzone.nordicsemi.com/thread/201134?ContentTypeID=1</link><pubDate>Tue, 30 Jul 2019 07:30:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:192e7630-8b12-4bdc-aaa6-1c8ab969953c</guid><dc:creator>harryAI</dc:creator><description>&lt;p&gt;OK. Thank your information. I will look at that.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MAX_RT interrupt still happens even if retransmit is off</title><link>https://devzone.nordicsemi.com/thread/200951?ContentTypeID=1</link><pubDate>Mon, 29 Jul 2019 11:55:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:82fdec94-3cfb-497f-88d4-364f5e55967d</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;Sorry for the late reply, I was on vacation for the last two weeks.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;You should be able to extend the hal_nrf_write_multibyte_reg function to support the&amp;nbsp;&lt;span&gt;WR_NAC_TX_PLOAD, by adding another case in the switch&amp;nbsp;for&amp;nbsp;WR_NAC_TX_PLOAD.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;If you want to have a look at my code I made it available here:&lt;br /&gt;&lt;a href="https://github.com/ovrebekk/nrf52-l01-hal-example"&gt;https://github.com/ovrebekk/nrf52-l01-hal-example&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;It is based on nAN24-12, but I have made some small changes to it, including a more generic way of handling the write_multibyte function.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Best regards&lt;br /&gt;Torbjørn&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MAX_RT interrupt still happens even if retransmit is off</title><link>https://devzone.nordicsemi.com/thread/199954?ContentTypeID=1</link><pubDate>Tue, 23 Jul 2019 08:43:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:55d6c06d-1977-4cee-802c-2f22a9ff94a3</guid><dc:creator>harryAI</dc:creator><description>&lt;p&gt;I tried to follow all of your codes. However, the same problem, the system still cannot receive any TX_DS after sending packets. After tracing the root cause, I found&amp;nbsp;&lt;span&gt;hal_nrf_write_multibyte_reg() does not have any codes to handle 0xB0 command (WR_NAC_TX_PLOAD). I copy&amp;nbsp;hal_nrf_write_multibyte_reg() below.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I think the key problem now is my RF library&amp;nbsp;(nAN24-12 version 2.1 subversion 2624) is much different from yours, so I cannot use your code directly. M&lt;/span&gt;&lt;span&gt;ay I know what RF library do you use? If possible, could you also provide the link as well? we will evaluate if we will upgrade our library to your version or not if the effort is not big. If the change is big, I think we will give up this problem, because this issue MAX_RT event is just a trivial issue. In addition, you have provided a solution mentioned above to treat MAX_RT as the TX_DS case, and we have changed it in our codes.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;---&lt;/p&gt;
&lt;p&gt;void hal_nrf_write_multibyte_reg(uint8_t reg, uint8_t *pbuf, uint8_t length)&lt;br /&gt;{&lt;br /&gt; switch(reg)&lt;br /&gt; {&lt;br /&gt; case HAL_NRF_PIPE0:&lt;br /&gt; case HAL_NRF_PIPE1:&lt;br /&gt; case HAL_NRF_TX:&lt;br /&gt; length = hal_nrf_get_address_width();&lt;br /&gt; CSN_LOW();&lt;br /&gt; hal_nrf_rw(WRITE_REG + RX_ADDR_P0 + reg);&lt;br /&gt; break;&lt;br /&gt; &lt;br /&gt; case HAL_NRF_TX_PLOAD:&lt;br /&gt; CSN_LOW();&lt;br /&gt; hal_nrf_rw(WR_TX_PLOAD);&lt;br /&gt; break; &lt;br /&gt; default:&lt;br /&gt; break;&lt;br /&gt; }&lt;/p&gt;
&lt;p&gt;while(length--)&lt;br /&gt; {&lt;br /&gt; hal_nrf_rw(*pbuf++);&lt;br /&gt; }&lt;/p&gt;
&lt;p&gt;CSN_HIGH();&lt;br /&gt;}&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MAX_RT interrupt still happens even if retransmit is off</title><link>https://devzone.nordicsemi.com/thread/197616?ContentTypeID=1</link><pubDate>Wed, 10 Jul 2019 12:11:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:eb3ab8ef-5e79-4386-81c4-cf83a773ea88</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;As long as the value is 0xB0 the name is irrelevant, so you can use that define, yes &lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/1f642.svg" title="Slight smile"&gt;&amp;#x1f642;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Best regards&lt;br /&gt;Torbjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MAX_RT interrupt still happens even if retransmit is off</title><link>https://devzone.nordicsemi.com/thread/197508?ContentTypeID=1</link><pubDate>Wed, 10 Jul 2019 07:30:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4293857b-93b3-4399-9461-381b4c039277</guid><dc:creator>harryAI</dc:creator><description>&lt;p&gt;In my library, I did not find `&lt;span&gt;W_TX_PAYLOAD_NOACK`, but I find `WR_NAC_TX_PLOAD` below. I think the definition of `W_TX_PAYLOAD_NOACK` is the same as`WR_NAC_TX_PLOAD`, right? Please double confirm in case any unexpected issue happens.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;#define WR_NAC_TX_PLOAD 0xB0&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MAX_RT interrupt still happens even if retransmit is off</title><link>https://devzone.nordicsemi.com/thread/197499?ContentTypeID=1</link><pubDate>Wed, 10 Jul 2019 06:50:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f634b4c4-19bf-41eb-af56-ef527835e13e</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The function looks like this:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;void hal_nrf_write_tx_payload_noack(const uint8_t *tx_pload, uint8_t length)&lt;/em&gt;&lt;br /&gt;&lt;em&gt;{&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&amp;nbsp; hal_nrf_write_multibyte_reg(W_TX_PAYLOAD_NOACK, tx_pload, length);&lt;/em&gt;&lt;br /&gt;&lt;em&gt;}&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;It is identical to the normal TX function, except the command byte is 0xB0 (W_TX_PAYLOAD_NOACK) instead of 0xA0 (W_TX_PAYLOAD).&lt;/p&gt;
[quote user="harryAI"]Another question: I saw you call `hal_nrf_set_rx_payload_width(HAL_NRF_PIPE0, 8);`. My question is since we already enable dynamic payload `hal_nrf_enable_dynamic_payload(true);`, why do we still need to call set payload width?[/quote]
&lt;p&gt;&amp;nbsp;You are correct. There is no need to set the payload length when using dynamic payload length, and this line&amp;nbsp;can safely be removed from the code.&amp;nbsp;&lt;/p&gt;
[quote user="harryAI"]By the way, the data rate in my test is 250K&amp;nbsp;bps (yours is&amp;nbsp;HAL_NRF_2MBPS). I think this will not affect anything, but still mention this difference.[/quote]
&lt;p&gt;&amp;nbsp;Thanks for the information. I agree this should not make a difference in this case.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards&lt;br /&gt;Torbjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MAX_RT interrupt still happens even if retransmit is off</title><link>https://devzone.nordicsemi.com/thread/197274?ContentTypeID=1</link><pubDate>Tue, 09 Jul 2019 07:08:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e2c14c8e-7ab3-4bf9-ae2a-ff0b8cd3eb6a</guid><dc:creator>harryAI</dc:creator><description>&lt;p&gt;Hi Torbjorn,&lt;/p&gt;
&lt;p&gt;I check my code. I use `hal_nrf_write_tx_pload()` to send payload.&lt;/p&gt;
&lt;p&gt;I want to try your codes, but I found my nRF libraries does not have `hal_nrf_write_tx_payload_noack(..)` this function. Could you paste this function to me?&lt;/p&gt;
&lt;p&gt;Another question: I saw you call `hal_nrf_set_rx_payload_width(HAL_NRF_PIPE0, 8);`. My question is since we already enable dynamic payload `hal_nrf_enable_dynamic_payload(true);`, why do we still need to call set payload width?&lt;/p&gt;
&lt;p&gt;By the way, the data rate in my test is 250K&amp;nbsp;bps (yours is&amp;nbsp;HAL_NRF_2MBPS). I think this will not affect anything, but still mention this difference.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MAX_RT interrupt still happens even if retransmit is off</title><link>https://devzone.nordicsemi.com/thread/196786?ContentTypeID=1</link><pubDate>Fri, 05 Jul 2019 10:14:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2c78a916-6ef9-4d69-b8a1-b496f0df3a82</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;That looks fine, I guess it&amp;#39;s a slightly different implementation of the hal_nrf libraries.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Did you add the dynamic ACK configuration?&lt;/p&gt;
&lt;p&gt;If yes, did it change the behavior?&lt;/p&gt;
&lt;p&gt;If it still doesn&amp;#39;t work, can you send me the code you use to upload packets, and a printout of your config register after you have configured the device?&lt;/p&gt;
&lt;p&gt;Best regards&lt;br /&gt;Torbjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MAX_RT interrupt still happens even if retransmit is off</title><link>https://devzone.nordicsemi.com/thread/196703?ContentTypeID=1</link><pubDate>Fri, 05 Jul 2019 06:27:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2d2ce597-b197-49c9-8415-4615cf586dff</guid><dc:creator>harryAI</dc:creator><description>&lt;p&gt;&amp;gt;&amp;nbsp;&lt;span&gt;Are you able to send me the implementation of the&amp;nbsp;&lt;/span&gt;&lt;span&gt;hal_nrf_enable_dynamic_pl() function?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Here you are.&lt;/p&gt;
&lt;p&gt;void hal_nrf_enable_dynamic_pl(void)&lt;br /&gt;{&lt;br /&gt; hal_nrf_write_reg(FEATURE, (hal_nrf_read_reg(FEATURE) | 0x04)); &lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;void hal_nrf_disable_dynamic_pl(void)&lt;br /&gt;{&lt;br /&gt; hal_nrf_write_reg(FEATURE, (hal_nrf_read_reg(FEATURE) &amp;amp; ~0x04)); &lt;br /&gt;}&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MAX_RT interrupt still happens even if retransmit is off</title><link>https://devzone.nordicsemi.com/thread/196526?ContentTypeID=1</link><pubDate>Thu, 04 Jul 2019 12:01:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:887ece20-8829-4d88-ab47-45303f4f0234</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Are you able to send me the implementation of the&amp;nbsp;&lt;span&gt;hal_nrf_enable_dynamic_pl() function?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;In my version of the HAL library this function needs to be provided a bool argument, allowing you to enable or disable the feature.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I realize now that I forgot to mention that you have to call&amp;nbsp;&amp;nbsp;hal_nrf_enable_dynamic_ack(true) also if you want to use the noack feature.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Below is my own test code to verify that this is working:&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;hal_nrf_set_operation_mode((config-&amp;gt;mode == APP_RADIO_MODE_PTX) ? HAL_NRF_PTX : HAL_NRF_PRX);&lt;/em&gt;&lt;br /&gt; &lt;br /&gt;&lt;em&gt; hal_nrf_set_power_mode(HAL_NRF_PWR_UP);&lt;/em&gt;&lt;br /&gt; &lt;br /&gt;&lt;em&gt; nrf_delay_us(1500);&lt;/em&gt;&lt;br /&gt; &lt;br /&gt;&lt;em&gt; hal_nrf_set_crc_mode(HAL_NRF_CRC_16BIT);&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;hal_nrf_set_auto_retr(0, 500);&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;hal_nrf_close_pipe(HAL_NRF_ALL);&lt;/em&gt;&lt;br /&gt;&lt;em&gt; hal_nrf_open_pipe(HAL_NRF_PIPE0, true);&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;hal_nrf_set_address_width(5);&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;hal_nrf_setup_dynamic_payload(0x3F);&lt;/em&gt;&lt;br /&gt;&lt;em&gt; hal_nrf_enable_dynamic_payload(true);&lt;/em&gt;&lt;br /&gt;&lt;em&gt; hal_nrf_enable_dynamic_ack(true);&lt;/em&gt;&lt;br /&gt; &lt;br /&gt;&lt;em&gt; hal_nrf_set_datarate(HAL_NRF_2MBPS);&lt;/em&gt;&lt;br /&gt; &lt;br /&gt;&lt;em&gt; hal_nrf_set_rf_channel(2);&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;em&gt; if(config-&amp;gt;mode == APP_RADIO_MODE_PTX)&lt;/em&gt;&lt;br /&gt;&lt;em&gt; {&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&amp;nbsp; hal_nrf_flush_tx();&lt;/em&gt;&lt;br /&gt;&lt;em&gt; }&lt;/em&gt;&lt;br /&gt;&lt;em&gt; else&lt;/em&gt;&lt;br /&gt;&lt;em&gt; {&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&amp;nbsp; hal_nrf_flush_rx();&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&amp;nbsp; hal_nrf_set_rx_payload_width(HAL_NRF_PIPE0, 8);&lt;/em&gt;&lt;br /&gt;&lt;em&gt; }&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;And then I send my packets using the&amp;nbsp;&lt;em&gt;hal_nrf_write_tx_payload_noack(..)&lt;/em&gt; function, which removes the ACK requirement from the packet.&lt;/p&gt;
&lt;p&gt;Best regards&lt;br /&gt;Torbjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MAX_RT interrupt still happens even if retransmit is off</title><link>https://devzone.nordicsemi.com/thread/195283?ContentTypeID=1</link><pubDate>Fri, 28 Jun 2019 08:53:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:83471dd9-09f6-47d5-9e90-31d94f965c64</guid><dc:creator>harryAI</dc:creator><description>&lt;p&gt;Hi Torbjorn,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I follow your comments, but RF does not produce any TX_DS interrupt event anymore. The whole system cannot work.&lt;/p&gt;
&lt;p&gt;I just copy my codes below (remove all comments to save space).&amp;nbsp;Could you please help to check what&amp;#39;s matter.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;void radio_pl_init (uint8_t *address, hal_nrf_operation_mode_t operational_mode, &lt;br /&gt; uint8_t rfChannel, hal_nrf_datarate_t airRate)&lt;br /&gt;{&lt;br /&gt; hal_nrf_close_pipe(HAL_NRF_ALL);&lt;br /&gt; hal_nrf_open_pipe(HAL_NRF_PIPE0, true);&lt;br /&gt; hal_nrf_set_crc_mode(HAL_NRF_CRC_16BIT);&lt;br /&gt; hal_nrf_set_auto_retr(0, RF_RETRANS_DELAY);&lt;br /&gt; hal_nrf_set_address_width(HAL_NRF_AW_5BYTES);&lt;br /&gt; hal_nrf_set_address(HAL_NRF_TX, address);&lt;br /&gt; hal_nrf_set_address(HAL_NRF_PIPE0, address);&lt;/p&gt;
&lt;p&gt;//hal_nrf_enable_ack_pl(); // Try to enable ack payload&lt;/p&gt;
&lt;p&gt;if(hal_nrf_read_reg(FEATURE) == 0x00 &amp;amp;&amp;amp; (hal_nrf_read_reg(DYNPD) == 0x00))&lt;br /&gt; {&lt;br /&gt; hal_nrf_lock_unlock (); // Activate features&lt;br /&gt; //hal_nrf_enable_ack_pl(); // Enables payload in ack&lt;br /&gt; }&lt;/p&gt;
&lt;p&gt;hal_nrf_enable_dynamic_pl();&lt;br /&gt; hal_nrf_setup_dyn_pl(ALL_PIPES);&lt;br /&gt; &lt;br /&gt; if(operational_mode == HAL_NRF_PTX)&lt;br /&gt; {&lt;br /&gt; hal_nrf_set_operation_mode(HAL_NRF_PTX);&lt;br /&gt; }&lt;br /&gt; else&lt;br /&gt; {&lt;br /&gt; hal_nrf_set_operation_mode(HAL_NRF_PRX);&lt;/p&gt;
&lt;p&gt;// Disable this. Use dynamic payload, so no need to set the fixed payload length.&lt;br /&gt; //hal_nrf_set_rx_pload_width((uint8_t)HAL_NRF_PIPE0, RF_PAYLOAD_LENGTH);&lt;br /&gt; }&lt;/p&gt;
&lt;p&gt;hal_nrf_set_rf_channel(rfChannel);&lt;br /&gt; hal_nrf_set_power_mode(HAL_NRF_PWR_UP);&lt;br /&gt; hal_nrf_set_datarate(airRate);&lt;br /&gt; start_timer(RF_POWER_UP_DELAY);&lt;br /&gt; wait_for_timer();&lt;/p&gt;
&lt;p&gt;//radio_set_status (RF_IDLE);&lt;br /&gt;}&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MAX_RT interrupt still happens even if retransmit is off</title><link>https://devzone.nordicsemi.com/thread/195016?ContentTypeID=1</link><pubDate>Thu, 27 Jun 2019 07:35:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a9c24f94-5332-4c5a-8da7-8a4112ba1eaf</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi&amp;nbsp;&lt;/p&gt;
&lt;p&gt;That sounds good.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If you have any more problems just let me know &lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/1f642.svg" title="Slight smile"&gt;&amp;#x1f642;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Best regards&lt;br /&gt;Torbjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MAX_RT interrupt still happens even if retransmit is off</title><link>https://devzone.nordicsemi.com/thread/194812?ContentTypeID=1</link><pubDate>Wed, 26 Jun 2019 09:13:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:49bfeef3-8348-40a8-af22-9046bfddf942</guid><dc:creator>harryAI</dc:creator><description>&lt;p&gt;Yes, I need dynamic payload length.&lt;/p&gt;
&lt;p&gt;Therefore, my codes will call&lt;/p&gt;
&lt;p&gt;&lt;span&gt;* run&amp;nbsp;hal_nrf_open_pipe(HAL_NRF_PIPE0, true),&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;* hal_nrf_setup_dyn_pl(ALL_PIPES) &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;* hal_nrf_enable_dynamic_pl().&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;and will NOT call (comment out)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;*&amp;nbsp;hal_nrf_enable_ack_pl();&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Got it. thank you very much.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MAX_RT interrupt still happens even if retransmit is off</title><link>https://devzone.nordicsemi.com/thread/194783?ContentTypeID=1</link><pubDate>Wed, 26 Jun 2019 08:15:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6ad93973-f2e0-47f1-a4ef-d56b802304de</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Do you need dynamic payload length or not?&lt;/p&gt;
&lt;p&gt;If you don&amp;#39;t need dynamic payload length you can just run&amp;nbsp;&lt;span&gt;hal_nrf_open_pipe(HAL_NRF_PIPE0, false), and make sure not to run&amp;nbsp;hal_nrf_enable_ack_pl(),&amp;nbsp;hal_nrf_enable_ack_pl(),&amp;nbsp;hal_nrf_enable_dynamic_pl() or&amp;nbsp;hal_nrf_setup_dyn_pl(ALL_PIPES).&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;If you need dynamic payload length the only way to achieve this is to run&amp;nbsp;hal_nrf_open_pipe(HAL_NRF_PIPE0, true),&amp;nbsp;hal_nrf_setup_dyn_pl(ALL_PIPES) and&amp;nbsp;hal_nrf_enable_dynamic_pl().&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;The reason for this is that enabling the pipe with EN_AA = 0 removes the 9 bit PCF field in the payload which is used to support the dynamic payload length, ACK payload and dynamic ACK features.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;In the documentation this might be referred to as either Shockburst mode (EN_AA = 0), or Enhanced Shockburst mode (EN_AA = 1).&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Best regards&lt;br /&gt;Torbjørn&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MAX_RT interrupt still happens even if retransmit is off</title><link>https://devzone.nordicsemi.com/thread/194547?ContentTypeID=1</link><pubDate>Tue, 25 Jun 2019 08:30:54 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5398c187-d4fc-4ff2-8b48-6c748a8d6927</guid><dc:creator>harryAI</dc:creator><description>&lt;p&gt;&amp;gt;&amp;nbsp;&lt;span&gt;If you want to&amp;nbsp;disable ACK&amp;#39;s while using the dynamic payload length feature you should enable ACK in the EN_AA register and enable the dynamic ACK feature, so that you can send packet without ACK even if EN_AA is enabled&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Based on your comments, so my codes need to change as follows, right? (Please help to confirm).&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; hal_nrf_open_pipe(HAL_NRF_PIPE0, true);&amp;nbsp; // Then open pipe0, w/autoack&amp;nbsp; -&amp;gt; Harry: enable EN_AA Ack&lt;/p&gt;
&lt;p&gt;&amp;nbsp; // hal_nrf_enable_ack_pl(); // Try to enable ack payload -&amp;gt; Harry: comment out two lines of these codes&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;However, I have one question. Since I don&amp;#39;t want ACK, why can I disable EN_AA as well, i.e.,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; hal_nrf_open_pipe(HAL_NRF_PIPE0, false);&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MAX_RT interrupt still happens even if retransmit is off</title><link>https://devzone.nordicsemi.com/thread/194280?ContentTypeID=1</link><pubDate>Mon, 24 Jun 2019 09:53:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:41f648b0-81a7-408b-8168-bb036c01a8a0</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;This might explain the problem. Using features like ACK payload, dynamic payload length or dynamic ACK are not compatible with clearing the EN_AA register (ie disabling ACK&amp;#39;s).&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Either you have to enable ACK&amp;#39;s through the EN_AA register and use these features, or you have to disable these features completely.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If you want to&amp;nbsp;disable ACK&amp;#39;s while using the dynamic payload length feature you should enable ACK in the EN_AA register and enable the dynamic ACK feature, so that you can send packet without ACK even if EN_AA is enabled.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I did some testing on my own, and after a million packets I don&amp;#39;t see a single MAX_RT interrupt occur, but in my testing I didn&amp;#39;t enable ack payload and dynamic payload length.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards&lt;br /&gt;Torbjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MAX_RT interrupt still happens even if retransmit is off</title><link>https://devzone.nordicsemi.com/thread/194204?ContentTypeID=1</link><pubDate>Mon, 24 Jun 2019 02:51:38 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4148a9e1-4f88-4f37-bc83-937f9c23acd8</guid><dc:creator>harryAI</dc:creator><description>&lt;p&gt;&amp;gt;&amp;nbsp;How many packets did you send in that time, when you got 2 or 3 packets with MAX_RT?&lt;/p&gt;
&lt;p&gt;When MAX_RT happens, RF is sending packet every 250ms, i.e., 4 packets every 1 second&amp;nbsp; for reporting a periodically information. The period is lasting for about 1 ~ 2 hours.&lt;/p&gt;
&lt;p&gt;&amp;gt;&amp;nbsp;I do have one question, why the 0x1C and 0x1D registers are set?&lt;/p&gt;
&lt;p&gt;I just adopt the sample codes of dynamic payload, and Nordic sample codes change 0x1C and 0x1D registers in `radio_pl.c`. Copy the codes as follows:&lt;/p&gt;
&lt;p&gt;/*****************************************************************************&lt;br /&gt; * Changed from esb/radio_esb.c *&lt;br /&gt; * Enables: *&lt;br /&gt; * - ACK payload *&lt;br /&gt; * - Dynamic payload width *&lt;br /&gt; * - Dynamic ACK *&lt;br /&gt; *****************************************************************************/&lt;br /&gt; hal_nrf_enable_ack_pl(); // Try to enable ack payload&lt;/p&gt;
&lt;p&gt;// When the features are locked, the FEATURE and DYNPD are read out 0x00&lt;br /&gt; // even after we have tried to enable ack payload. This mean that we need to&lt;br /&gt; // activate the features.&lt;br /&gt; if(hal_nrf_read_reg(FEATURE) == 0x00 &amp;amp;&amp;amp; (hal_nrf_read_reg(DYNPD) == 0x00))&lt;br /&gt; {&lt;br /&gt; hal_nrf_lock_unlock (); // Activate features&lt;br /&gt; hal_nrf_enable_ack_pl(); // Enables payload in ack&lt;br /&gt; }&lt;/p&gt;
&lt;p&gt;hal_nrf_enable_dynamic_pl(); // Enables dynamic payload&lt;br /&gt; hal_nrf_setup_dyn_pl(ALL_PIPES); // Sets up dynamic payload on&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MAX_RT interrupt still happens even if retransmit is off</title><link>https://devzone.nordicsemi.com/thread/194114?ContentTypeID=1</link><pubDate>Fri, 21 Jun 2019 12:46:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a6db50b5-9013-421e-a849-1703253f7a98</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi&amp;nbsp;&lt;/p&gt;
&lt;p&gt;How many packets did you send in that time, when you got 2 or 3 packets with MAX_RT?&lt;/p&gt;
&lt;p&gt;I have put up a small test and will leave it over the weekend, to see if I can record any MAX_RT interrupts. So far I have sent over 15000 packets and I have only seen TX_DS interrupts.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I do have one question, why the 0x1C and 0x1D registers are set?&lt;br /&gt;These features don&amp;#39;t work when ACK&amp;#39;s are disabled, and are usually set to 0 in this case.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards&lt;br /&gt;Torbjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MAX_RT interrupt still happens even if retransmit is off</title><link>https://devzone.nordicsemi.com/thread/193785?ContentTypeID=1</link><pubDate>Thu, 20 Jun 2019 06:59:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ab5a2395-8196-4981-9f30-0dcff0b2734a</guid><dc:creator>harryAI</dc:creator><description>&lt;p&gt;Here you are. The statuses are printed after RF initialization when power-on. The RF has not transmitted any data.&lt;/p&gt;
&lt;p&gt;By the way, the reproduce rate of this issue is very low. I just saw twice or three times for a very long time. If you cannot reproduce this issue, I don&amp;#39;t know how to distinguish (A) RF module has bug, but just has not happen or (B) the genuine RF module does not have this bug. Anyway, still prove the RF register values to you.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Nordic nRF24L01+ Register values&lt;br /&gt;Reg 0x00: 0E&lt;br /&gt;Reg 0x01: 00&lt;br /&gt;Reg 0x02: 01&lt;br /&gt;Reg 0x03: 03&lt;br /&gt;Reg 0x04: 10&lt;br /&gt;Reg 0x05: 4F&lt;br /&gt;Reg 0x06: 27&lt;br /&gt;Reg 0x07: 0E&lt;br /&gt;Reg 0x08: 00&lt;br /&gt;Reg 0x09: 00&lt;br /&gt;Reg 0x0A: 52&lt;br /&gt;Reg 0x0B: C2&lt;br /&gt;Reg 0x0C: C3&lt;br /&gt;Reg 0x0D: C4&lt;br /&gt;Reg 0x0E: C5&lt;br /&gt;Reg 0x0F: C6&lt;br /&gt;Reg 0x10: 52&lt;br /&gt;Reg 0x11: 00&lt;br /&gt;Reg 0x12: 00&lt;br /&gt;Reg 0x13: 00&lt;br /&gt;Reg 0x14: 00&lt;br /&gt;Reg 0x15: 00&lt;br /&gt;Reg 0x16: 00&lt;br /&gt;Reg 0x17: 11&lt;br /&gt;Reg 0x1C: 3F&lt;br /&gt;Reg 0x1D: 06&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MAX_RT interrupt still happens even if retransmit is off</title><link>https://devzone.nordicsemi.com/thread/193680?ContentTypeID=1</link><pubDate>Wed, 19 Jun 2019 13:01:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c892c36d-e4dd-49db-bcb1-f389360a7e6f</guid><dc:creator>harryAI</dc:creator><description>&lt;p&gt;&amp;gt;&amp;nbsp;&lt;span&gt;Can you do a readout of all the configuration registers in the nRF24L01+ and send it to me?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Could you give me your email? I can send to you via email.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MAX_RT interrupt still happens even if retransmit is off</title><link>https://devzone.nordicsemi.com/thread/193561?ContentTypeID=1</link><pubDate>Wed, 19 Jun 2019 07:48:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ee865d8b-e487-4e9f-b878-370195bcade9</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Can you do a readout of all the configuration registers in the nRF24L01+ and send it to me?&lt;/p&gt;
&lt;p&gt;Then I can try to replicate your setup, and see if I spot the same issue on my end.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;You might also want to purchase some modules from a known genuine source, and see if the problem is the same.&amp;nbsp;&lt;br /&gt;In China we work with a distributor called Xuntong, and they are making some modules&amp;nbsp;based on the nRF24L01+ that we know to be genuine:&lt;br /&gt;&lt;a href="http://freqchina.com/plus/view.php?aid=1091"&gt;http://freqchina.com/plus/view.php?aid=1091&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Best regards&lt;br /&gt;Torbjørn&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MAX_RT interrupt still happens even if retransmit is off</title><link>https://devzone.nordicsemi.com/thread/193315?ContentTypeID=1</link><pubDate>Tue, 18 Jun 2019 07:55:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:acb25e57-626f-4b4a-a171-27e9a8dc9641</guid><dc:creator>harryAI</dc:creator><description>&lt;p&gt;The picture is as follow.&amp;nbsp;The text on the chip line by line is&lt;/p&gt;
&lt;p&gt;&amp;quot;NRF&amp;nbsp; O&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;quot;24L01+&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;quot;1621LR&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;PS: The picture is already took by iPhone, but I know the picture is a little blur. If you do really need to see a clear text from the picture, I can use a better camera (if I have) to take another picture.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/communityserver-discussions-components-files/4/nRF24L01_2B00_.JPG" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MAX_RT interrupt still happens even if retransmit is off</title><link>https://devzone.nordicsemi.com/thread/193210?ContentTypeID=1</link><pubDate>Mon, 17 Jun 2019 13:36:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ff4bbee0-a709-430d-803b-57dffc5a941a</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi&amp;nbsp;&lt;/p&gt;
&lt;p&gt;For some reason I can&amp;#39;t open the product page, just the www.ai-thinker.com main page.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Are you able to send a link to the image directly, or attach the image to this case?&lt;/p&gt;
&lt;p&gt;Also, are you able to read the full text printed on the chip?&lt;/p&gt;
&lt;p&gt;Best regards&lt;br /&gt;Torbjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MAX_RT interrupt still happens even if retransmit is off</title><link>https://devzone.nordicsemi.com/thread/193093?ContentTypeID=1</link><pubDate>Mon, 17 Jun 2019 08:43:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e2b95038-bbb8-422d-98d2-57583e782978</guid><dc:creator>harryAI</dc:creator><description>&lt;p&gt;&amp;gt;&amp;nbsp;&lt;span&gt;Are you using a nRF24L01+ module?&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Sorry, I miss the answer of this question. Yes, the mark on the chip shows nRF24L01+.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>