<?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>Using NRF24L01+  with pure assembler programing</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/99192/using-nrf24l01-with-pure-assembler-programing</link><description>Dear people I have connected NRF24!01+ with PIC16F1826 for use as PRX and have also another similar for PRX For an initial test I tryed to trasmit a closed / open switch state to a LED and as ussually hapens it does not work Also I have a Tx packets each</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 09 Jun 2023 11:40:32 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/99192/using-nrf24l01-with-pure-assembler-programing" /><item><title>RE: Using NRF24L01+  with pure assembler programing</title><link>https://devzone.nordicsemi.com/thread/430209?ContentTypeID=1</link><pubDate>Fri, 09 Jun 2023 11:40:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2ef7e540-bdf2-424b-b00f-0fc06c220ed0</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi&amp;nbsp;&lt;/p&gt;
&lt;p&gt;P means Primary. Since both devices will transmit and receive you can&amp;#39;t just call them TX and RX. PTX is the device that transmits first, and receives the ACK second (primary transmit).&amp;nbsp;&lt;/p&gt;
&lt;p&gt;PRX is the device that receives first, and then transmits an ACK (primary receive).&amp;nbsp;&lt;/p&gt;
[quote user="o.hojvat"]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; And the last question is if the Tx FIFOs used in PTX mode are the same Tx FIFOs used for ACK_PAYLOAD in a PRX mode device,&amp;nbsp; so the the informations about Tx FIFO full or empty are in register 0x17 for both cases[/quote]
&lt;p&gt;Yes. In PRX mode the TX FIFO is used to hold the ACK payloads, so the bits are the same.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards&lt;br /&gt;Torbjørn&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Using NRF24L01+  with pure assembler programing</title><link>https://devzone.nordicsemi.com/thread/430095?ContentTypeID=1</link><pubDate>Fri, 09 Jun 2023 04:55:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1daa70f4-a831-4d6f-9412-135df0b82ab6</guid><dc:creator>o.hojvat</dc:creator><description>&lt;p&gt;I had confused in my mind about names (my memory errors)&lt;/p&gt;
&lt;p&gt;PRT- -&amp;gt; I wanted to say PTX&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Now I noted that are RX and TX modes with a P letter at the begining.&amp;nbsp; I guess I will remember well it.&lt;/p&gt;
&lt;p&gt;What is the P letter&amp;nbsp; meaning?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; And the last question is if the Tx FIFOs used in PTX mode are the same Tx FIFOs used for ACK_PAYLOAD in a PRX mode device,&amp;nbsp; so the the informations about Tx FIFO full or empty are in register 0x17 for both cases.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; In data sheet page 62 there are mention of&amp;nbsp; ACK_PLD&amp;nbsp; TX_PLD&amp;nbsp; RX_PLD&amp;nbsp; as not numbered registers or FIFOs.&lt;/p&gt;
&lt;p&gt;After several days I may have RFcomunication&amp;nbsp; working&amp;nbsp; in the proyect and more information and questions.&lt;/p&gt;
&lt;p&gt;I will send it in a new ticket, as you sugested.&lt;/p&gt;
&lt;p&gt;Best Regards, Osvaldo&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Using NRF24L01+  with pure assembler programing</title><link>https://devzone.nordicsemi.com/thread/429906?ContentTypeID=1</link><pubDate>Thu, 08 Jun 2023 08:22:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:212c1d75-cf40-4942-961a-28e468d144a5</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi Osvaldo&lt;/p&gt;
&lt;p&gt;I also made a mistake earlier. I forgot you were using the nRF24L01+, and in this case you can&amp;#39;t upload a packet for all FIFO&amp;#39;s at once. This device only has 3 slots in the FIFO, so you would have to upload only 3 packets at first, and then upload the remaining packets as the ACK payloads are being picked up.&amp;nbsp;&lt;/p&gt;
[quote user="o.hojvat"]Where is the information of TX FIFO full and empty available in the PRX?[/quote]
&lt;p&gt;You can find information about this in the FIFO_STATUS register (register 0x17). Please refer to the product specification for more information.&amp;nbsp;&lt;/p&gt;
[quote user="o.hojvat"]Is the same as the TX FIFO in PRT?&amp;nbsp; I did not found it clearly stated in the data sheet.[/quote]
&lt;p&gt;What do you mean by PRT? I see you mention this several times in your post. There are only two modes in the device, PTX and PRX.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Also, I would appreciate it if you create a new ticket if you have more questions where you summarize the latest status of your project and what questions are remaining. This ticket is getting big and messy, with a mix of old and new questions, and the devzone is not really designed to handle long running tickets very well.&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: Using NRF24L01+  with pure assembler programing</title><link>https://devzone.nordicsemi.com/thread/429866?ContentTypeID=1</link><pubDate>Wed, 07 Jun 2023 23:04:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1e89c039-f80a-428b-a96e-16f457e73c95</guid><dc:creator>o.hojvat</dc:creator><description>&lt;p&gt;amistake, sorry:&amp;nbsp; I wanted to said:&lt;/p&gt;
&lt;p&gt;I will load the information for PIPES 0- 1 - 2 at first&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Using NRF24L01+  with pure assembler programing</title><link>https://devzone.nordicsemi.com/thread/429842?ContentTypeID=1</link><pubDate>Wed, 07 Jun 2023 18:03:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1442c278-c281-4941-9703-adb49990c03c</guid><dc:creator>o.hojvat</dc:creator><description>&lt;p&gt;Thank you for your reply&lt;/p&gt;
&lt;p&gt;I had similar ideas and If my timed sync works I will use only 1 frec. channel&lt;/p&gt;
&lt;p&gt;There are a max. of 3 ack payload that may be for same of diferen PIPES&lt;/p&gt;
&lt;p&gt;I will load the information for PIPES 1 - 1 - 2 at first&lt;/p&gt;
&lt;p&gt;Where is the information of TX FIFO full and empty available in the PRX?&lt;/p&gt;
&lt;p&gt;Is the same as the TX FIFO in PRT?&amp;nbsp; I did not found it clearly stated in the data sheet.&lt;/p&gt;
&lt;p&gt;By the moment I will try useing 3 PTX, later I will do the PTX sinr. and add more channels&lt;/p&gt;
&lt;p&gt;I guess the PRX program is complete (partially tested) butI I will need to have also one PRT working for testing all.&lt;/p&gt;
&lt;p&gt;Best Regards, Osvaldo&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Using NRF24L01+  with pure assembler programing</title><link>https://devzone.nordicsemi.com/thread/429707?ContentTypeID=1</link><pubDate>Wed, 07 Jun 2023 09:02:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1345fea2-1f52-4c3f-b940-a9cef8309536</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi Osvaldo&lt;/p&gt;
[quote user="o.hojvat"]&lt;p&gt;My actual question is that some types of packets will be send to every PTX.&lt;/p&gt;
&lt;p&gt;I need to copy the same packet information to the 6 buffers&lt;/p&gt;
&lt;p&gt;--&amp;gt; Are some property of PIPE 6 the can be used for simplify this matter ?&lt;/p&gt;[/quote]
&lt;p&gt;There is no simpler way to do this, no. You need to upload a unique payload for each PTX, since you don&amp;#39;t know when each PTX will transmit, and there is no mechanism in the ESB protocol for sharing one payload with multiple pipes.&amp;nbsp;&lt;/p&gt;
[quote user="o.hojvat"]I have an idea for sincronizing the PTX trasmitions in order to avoid colitions.[/quote]
&lt;p&gt;There are many ways to synchronize devices, which way to do choose depends on the application requirements.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;One trick is to use a dedicated frequency for each PTX, and have the PRX cycle through each frequency in turn. The advantage of this method is that the PRX&amp;#39;s won&amp;#39;t be able to interfere with each other since they are not on the same frequency, but it does make things a bit more complicated on the PRX side.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If you manage to synchronize all the PTX&amp;#39;s in time this is also possible, then there is no need to change frequency, but it makes things a bit more complex on the PTX side.&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: Using NRF24L01+  with pure assembler programing</title><link>https://devzone.nordicsemi.com/thread/429393?ContentTypeID=1</link><pubDate>Mon, 05 Jun 2023 16:43:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9cecf61c-8f86-474c-af4d-cde0efd3120f</guid><dc:creator>o.hojvat</dc:creator><description>&lt;p&gt;Hi&amp;nbsp; Torbj&amp;oslash;rn&lt;/p&gt;
&lt;p&gt;I am still working in the proyect&lt;/p&gt;
&lt;p&gt;As I had explained before , I will have 1 PRX several PTX&lt;/p&gt;
&lt;p&gt;At the PRX with 485 comunication with a central unit, I do some decoding for the Usart incoming packet.&lt;/p&gt;
&lt;p&gt;The 9 bites signals from central to the PTX will be reduced to 8 bites to be handled by the NRF&lt;/p&gt;
&lt;p&gt;I have indentified for which PTX&amp;nbsp; will be the packet sent a there in a separated buffer for each one&lt;/p&gt;
&lt;p&gt;My actual question is that some types of packets will be send to every PTX.&lt;/p&gt;
&lt;p&gt;I need to copy the same packet information to the 6 buffers&lt;/p&gt;
&lt;p&gt;--&amp;gt; Are some property of PIPE 6 the can be used for simplify this matter ?&lt;/p&gt;
&lt;p&gt;I can limit the number of PTX to 5 if it helps.&lt;/p&gt;
&lt;p&gt;--------------------------------------------------------------&lt;/p&gt;
&lt;p&gt;I have an idea for sincronizing the PTX trasmitions in order to avoid colitions.&lt;/p&gt;
&lt;p&gt;I will do it later, but this may be usefull:&lt;/p&gt;
&lt;p&gt;PRX will have a internal &amp;quot;clock&amp;quot;&amp;nbsp; by example a register counting free 0 to 255.&lt;/p&gt;
&lt;p&gt;Each PTX&amp;nbsp; keeps a similar counter that will be sincronized al any comunication with PRX&lt;/p&gt;
&lt;p&gt;Each PTX will have al time gate for allowed a&amp;nbsp; TX/RX&amp;nbsp; to RX&amp;nbsp; Probabely 10 to 20ms&lt;/p&gt;
&lt;p&gt;May be some some time gates intercalated for URGENT information&lt;/p&gt;
&lt;p&gt;Except for an initial short time, will be not two TX at the same time&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best Regards, Osvaldo&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Using NRF24L01+  with pure assembler programing</title><link>https://devzone.nordicsemi.com/thread/423177?ContentTypeID=1</link><pubDate>Tue, 02 May 2023 06:56:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:563a128b-0443-43c4-979b-680f7d98ce60</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi Osvaldo&lt;/p&gt;
&lt;p&gt;I am glad I could help. The best of luck with your project &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: Using NRF24L01+  with pure assembler programing</title><link>https://devzone.nordicsemi.com/thread/423099?ContentTypeID=1</link><pubDate>Sun, 30 Apr 2023 16:04:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0568c7af-f784-45da-b87b-9591e24c7f29</guid><dc:creator>o.hojvat</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;I guess that the usual star of 1 PRX and 6 PTX can be synconized as following:&lt;/p&gt;
&lt;p&gt;At PRX,&amp;nbsp; the procesor&amp;nbsp; has a counter from 0 to 5 to 0 ...&amp;nbsp; , repeating permanently with fixed 10ms (by expamle)&amp;nbsp; in each step&lt;/p&gt;
&lt;p&gt;PRX will&amp;nbsp; upload actualized value in ack payload&lt;/p&gt;
&lt;p&gt;Each PTX has asigned a pipe number 0 to 5 and has a similar counter 0 tofive&lt;/p&gt;
&lt;p&gt;At power-on&amp;nbsp; each PTX (with some diferent delay or at any moment) , may send a short packet and with the ack payload information can adjust his counter to sincronize it wuh the PRX&lt;/p&gt;
&lt;p&gt;Fore more precision&amp;nbsp; a precounter for the 10ms time&amp;nbsp; can by used in all devices, andthis value upload also with the 0 to 5 information.&lt;/p&gt;
&lt;p&gt;--- After a initial test packet ,&amp;nbsp; each PTX will tx only when PRX expect this pipe will do it.&lt;/p&gt;
&lt;p&gt;PRX can pre-load the regarding information for each pipe&lt;/p&gt;
&lt;p&gt;Any collision is avoided&lt;/p&gt;
&lt;p&gt;------------------------ another aproach ------------&lt;/p&gt;
&lt;p&gt;I guess If there will be only 3 pipes in use ,&amp;nbsp; each of the 3 available W_ACK_PAYLOAD can store the needed information and only the regarding one will be send with the ack&lt;/p&gt;
&lt;p&gt;---------------------------------------------------------------------&lt;/p&gt;
&lt;p&gt;I fully working in other matter , but my mind not&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best Regrds, Osvaldo&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Using NRF24L01+  with pure assembler programing</title><link>https://devzone.nordicsemi.com/thread/423082?ContentTypeID=1</link><pubDate>Sat, 29 Apr 2023 16:58:51 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:913dbf7e-f4f5-4c75-ba5a-a34e645a04ca</guid><dc:creator>o.hojvat</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;I will keep all&amp;nbsp; yours comments. Thank you&lt;/p&gt;
&lt;p&gt;By the moment&amp;nbsp; I am working on the complete system programms and it may arises reasons to prefer the use of one of the methods&lt;/p&gt;
&lt;p&gt;Best Regards&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Using NRF24L01+  with pure assembler programing</title><link>https://devzone.nordicsemi.com/thread/422908?ContentTypeID=1</link><pubDate>Fri, 28 Apr 2023 08:47:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b8bd4549-ad17-40b8-86b5-3c59951082d3</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi Osvaldo&lt;/p&gt;
&lt;p&gt;If each device only sends a couple of packets every second then the chance of collision should be very small. Sending one packet at 1M PHY takes at most ~320us when sending 32 bytes, even less if you send shorter packets. Sending 10 of these packets pr second means you only spend ~0.3% of the available RF time, and even if some other PTX is also transmitting it is very unlikely to send at the same time.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Once in a rare while it will collide, but then you can use the retransmission mechanism with different ARD to ensure that they will retransmit the packets at different times.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;So that would be my recommendation, but obviously you are free to choose which option you prefer.&amp;nbsp;&lt;/p&gt;
[quote user="o.hojvat"]---&amp;nbsp; I guess in each transmition, the PTX will change the tx adress (PIPE 0 ?) and also it will place the same address for PIPE 0 rx.[/quote]
&lt;p&gt;The PTX doesn&amp;#39;t change the address. You need to ensure that both the TX address and the RX PIPE0 address is configured to the same value, otherwise the PTX will not be able to receive the ACK.&amp;nbsp;&lt;/p&gt;
[quote user="o.hojvat"]--- It may be used PIPE 0 in all 6 PRX ?[/quote]
&lt;p&gt;Yes, you can use whatever pipe you want on the PRX side. The critical point is that you configure the addresses differently for all PRX&amp;#39;s, so you don&amp;#39;t get two or more receivers responding to the same packet.&amp;nbsp;&lt;/p&gt;
[quote user="o.hojvat"]--- Perhaps it may be better to use a diferent PIPE for each PRX.[/quote]
&lt;p&gt;It is up to you. Either you configure the same address set in all PRX&amp;#39;s, but enable different pipes in each of them (use pipe 0-5 for PRX 0-5), or you just use pipe 0 for all of them but make sure to configure unique pipe 0 addresses for each PRX.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The pipe system is optimized for the use case where you have 6 PTX&amp;#39;s and 1 PRX, and is not as streamlined when you have multiple PRX&amp;#39;s and one PTX. It still works, but in this mode you will need to configure the TX and pipe 0 address on the PTX every time you want to switch to another PRX, you can&amp;#39;t just tell the PTX to transmit to a different pipe (more modern Nordic devices like the nRF52 series have removed this limitation).&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: Using NRF24L01+  with pure assembler programing</title><link>https://devzone.nordicsemi.com/thread/422832?ContentTypeID=1</link><pubDate>Thu, 27 Apr 2023 16:30:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:39989b73-4744-48c7-b515-ed4442abb52f</guid><dc:creator>o.hojvat</dc:creator><description>&lt;p&gt;Hi&lt;br /&gt;&lt;br /&gt;I made public the ticket - there are not private information here.&lt;/p&gt;
&lt;p&gt;----------------------------- Data rate ----------------------&lt;br /&gt;&lt;br /&gt;From one handheld they may be two orders sent in 1 second, by example playing a short horn sound, &lt;br /&gt;or turning ON / OFF some ligth for a controled locomotive&lt;br /&gt;At maximun 5 Data in one second while modifying speed control position. But the most important is the last value, when the control stop moving.&lt;br /&gt;.&lt;br /&gt;&lt;strong&gt;I will prefer the 3) procedure&lt;/strong&gt; because it is more clear for me, and it will have no interference or colitions problems.&lt;br /&gt;&lt;br /&gt;It is a good idea your suggestion of sincronizing&amp;nbsp; RF activationat PRX&amp;nbsp; when it is expected a packet.&lt;br /&gt;It is rather easy to do for only 6 devices.&amp;nbsp;&amp;nbsp; Probabely total 100 ms for the 6 PRX , so this will be the maximum delay to trasmit an handheld order.&lt;br /&gt;&lt;br /&gt;I case of no receiving the packet at the expected time, PRX can extend the RF ON time.&amp;nbsp; I will be not very often&lt;br /&gt;&lt;br /&gt;---&amp;nbsp; I guess in each transmition, the PTX will change the tx adress (PIPE 0 ?) and also it will place the same address for PIPE 0 rx.&lt;br /&gt;&lt;br /&gt;--- It may be used PIPE 0 in all 6 PRX ?&lt;br /&gt;&lt;br /&gt;--- Perhaps it may be better to use a diferent PIPE for each PRX.&lt;br /&gt;&lt;br /&gt;Please comment about this matters.&lt;br /&gt;&lt;br /&gt;Anyway I must work (1 to 2 month) with TX / RX devices complete hardware and programms and some other problems may arises.&lt;br /&gt;&lt;br /&gt;Thank you very much for your help.&amp;nbsp;&amp;nbsp;&amp;nbsp; Now I can use the RF link with my own assembler.&lt;br /&gt;&lt;br /&gt;Best Regards&lt;/p&gt;
&lt;p&gt;Osvaldo&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Using NRF24L01+  with pure assembler programing</title><link>https://devzone.nordicsemi.com/thread/422814?ContentTypeID=1</link><pubDate>Thu, 27 Apr 2023 07:19:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:cd4adfba-2bdc-4f2f-9a02-175db91b7b5b</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi Osvaldo&lt;/p&gt;
&lt;p&gt;Approximately how often do you expect an order to come in from each PTX?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I think the best approach is the one you detail in 1). Send a small ping packet from the PTX first, so that the PRX can prepare the ACK payload. Then you send a second packet from the PTX some milliseconds later to pick up the ACK payload.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Like you say it is much easier to achieve low average current on the PTX side, since each transmit only takes some hundreds of microseconds.&amp;nbsp;&lt;br /&gt;In order to also achieve low average current on the PRX side you need to keep the PTX&amp;#39;s and PRX closely synchronized in time, so that the PRX knows when the PTX&amp;#39;s will transmit and can enable the receiver&amp;nbsp;just before the PTX starts the transmission.&amp;nbsp;&lt;/p&gt;
[quote user="o.hojvat"]Please answer if there are posible interference for 2&amp;nbsp; PTX trasmiting at the same time but diferent frequency.[/quote]
&lt;p&gt;If one signal is much stronger than the other it can still cause interference despite being on another channel, but if the distance between the 2 PTX&amp;#39;s and the PRX is comparable it shouldn&amp;#39;t be an issue.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;As an example if the PTX on the wrong channel is laying next to the PRX, and the PTX on the right channel is far away, then you might get interference from the one on the wrong channel.&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: Using NRF24L01+  with pure assembler programing</title><link>https://devzone.nordicsemi.com/thread/422813?ContentTypeID=1</link><pubDate>Wed, 26 Apr 2023 16:21:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bb188e7e-1bdb-4ec5-a4ae-281204c71f91</guid><dc:creator>o.hojvat</dc:creator><description>&lt;p&gt;I undestand well tis matter.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;I will ask about some to specific questions that may be not usefull for other people , I guess it will better to no use the forum.&lt;/p&gt;
&lt;p&gt;Anyway yo can go back this&amp;nbsp; to public tickets if consider there may be usefull for other peoples.&lt;/p&gt;
&lt;p&gt;I will begin with one order from one PTX to the PRX inside the handheld unit program but I am thinking in advance for posible problems with other orders received at central unit&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Basically a handheld must have updated information before sending an order.&lt;/p&gt;
&lt;p&gt;So at the moment I find 3 aproach:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1) Using the proposed star 1PRX to up to 6 PTX, as in data sheet&lt;/p&gt;
&lt;p&gt;In this case the PRX does not knows which PTX will send the next packet and can not upload the regarding information in ack payload. The PTX may repeat the Tx in a very short time to&amp;nbsp; get it.&lt;/p&gt;
&lt;p&gt;2)&amp;nbsp; each PTX can use a diferent&amp;nbsp; frequency channel and the PRX may be receiving about 20 ms at one freq. and if there is no received packet, PRX&amp;nbsp; moves to other diferent freq.&amp;nbsp;&amp;nbsp; not adyacent channel).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Please answer if there are posible interference for 2&amp;nbsp; PTX trasmiting at the same time but diferent frequency.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;3) One PTX and up to 6 PRX devices (one in each handheld).&amp;nbsp; Disadvantage may be Increased battery consumption.&amp;nbsp; Most probabely RFmay be OFF most of&amp;nbsp; the time&lt;/p&gt;
&lt;p&gt;As I am using with RS485 cable , PTX sends a short packet for each PRX&amp;nbsp; and wait a short time for a reply.&amp;nbsp; &amp;nbsp;If not, It moves to other PRX address&lt;/p&gt;
&lt;p&gt;Best Regards&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Using NRF24L01+  with pure assembler programing</title><link>https://devzone.nordicsemi.com/thread/422812?ContentTypeID=1</link><pubDate>Wed, 26 Apr 2023 07:51:42 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e338a1a3-320a-409c-a637-38d953d07a22</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi Osvaldo&lt;/p&gt;
&lt;p&gt;I made this case private, so that you can share documents with Nordic support directly without everything being available publicly.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Please note that I am not able to validate your entire project. If you have issues with the Nordic chip, or have questions about the Nordic hardware/software, I will do my best to help, but the rest is up to you &lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/1f609.svg" title="Wink"&gt;&amp;#x1f609;&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: Using NRF24L01+  with pure assembler programing</title><link>https://devzone.nordicsemi.com/thread/422811?ContentTypeID=1</link><pubDate>Tue, 25 Apr 2023 16:05:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e3f599eb-519c-4c18-8ebf-0dbfe4021aa7</guid><dc:creator>o.hojvat</dc:creator><description>&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/0601.NRF24L01-_2B00_-RFX2401---Blog-de-PatagoniaTec-Electronica.pdf"&gt;devzone.nordicsemi.com/.../0601.NRF24L01-_2B00_-RFX2401---Blog-de-PatagoniaTec-Electronica.pdf&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Using NRF24L01+  with pure assembler programing</title><link>https://devzone.nordicsemi.com/thread/422810?ContentTypeID=1</link><pubDate>Tue, 25 Apr 2023 15:58:42 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2253146f-fe3d-41dd-83ad-0a92cc3ec2af</guid><dc:creator>o.hojvat</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;I have a sample and the RFmodule with antena has a LNA and a RFX2401C power amplifier, so the simple modules used as PTX will receive a better signal.&lt;/p&gt;
&lt;p&gt;I will try to attach some regarding&amp;nbsp; information&lt;/p&gt;
&lt;p&gt;Anyway I need to have the complete sistem working for a realistic test.&lt;/p&gt;
&lt;p&gt;Normal user may have one or two handheld controllers with RF link and the PRx may be placed in the middle of the room.&lt;/p&gt;
&lt;p&gt;By the moment I will beguin&amp;nbsp; working&amp;nbsp; to include the RF part in the actual handheld&amp;nbsp; program and also the new program for the PRX interfase board.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I can send to you the updated information of my work by private mensage or email if it is posible&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Best Regards&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/2275.Modulo-Rf-Arduino-Nrf24l01-_2B00_-Transceptor-Armodlnrf24l01_2B00_-_2D00_-_2400_-45_2C00_00-en-Mercado-Libre.pdf"&gt;devzone.nordicsemi.com/.../2275.Modulo-Rf-Arduino-Nrf24l01-_2B00_-Transceptor-Armodlnrf24l01_2B00_-_2D00_-_2400_-45_2C00_00-en-Mercado-Libre.pdf&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Using NRF24L01+  with pure assembler programing</title><link>https://devzone.nordicsemi.com/thread/422809?ContentTypeID=1</link><pubDate>Tue, 25 Apr 2023 11:16:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6130324b-2eab-4b70-86b5-bd935038a480</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi&amp;nbsp;&lt;/p&gt;
[quote user="o.hojvat"]&lt;p&gt;- I guess dynamic payload&amp;nbsp; &lt;strong&gt;also applies to the ack payload length&lt;/strong&gt;,&lt;/p&gt;
&lt;p&gt;and the Tx FIFO&lt;strong&gt; need to be loaded before receiving &lt;/strong&gt;the packet&amp;nbsp;&amp;nbsp;&amp;nbsp; Please confirm&lt;/p&gt;[/quote]
&lt;p&gt;Yes and yes. The ACK payload can be any length between 1 and 32 bytes, and you need to upload the ACK payload before you receive the packet from the PTX, otherwise it will not be included until the next packet arrives.&amp;nbsp;&lt;/p&gt;
[quote user="o.hojvat"]&lt;p&gt;- If there are Tx from two PTX devices&lt;strong&gt; at the same time&lt;/strong&gt;, I guess no one will be received OK&lt;/p&gt;
&lt;p&gt;I think it may be needed to use diferent ARD in each PTX for avoiding the same problem in the retry&lt;/p&gt;[/quote]
&lt;p&gt;In case of packet collisions you will most likely lose both packets, yes, but if one of the packets have a higher signal strength than the other there is a chance you will receive it correctly.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;It is correct that configuring a different ARD in different PTX&amp;#39;s can help reduce interference between them, since they will not retransmit lost packets at the same time.&amp;nbsp;&lt;/p&gt;
[quote user="o.hojvat"]-&amp;nbsp; I need in a big room a 15m secure link ,&amp;nbsp; Is it convenient to use 250 Kb rate or 1 Mb rate is OK ?[/quote]
&lt;p&gt;You should be able to reach 15m in 1M mode, as long as you don&amp;#39;t have a lot of things blocking the signal (such as people, walls or heavy furniture).&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The actual transfer rate is considerably lower than the PHY rate, so using 1M mode would be beneficial in ensuring you can reach 57k of actual throughput even if you have some packet loss and need to retransmit some of the packets.&amp;nbsp;&lt;/p&gt;
[quote user="o.hojvat"]- At the RX unit, as it will have a power supply cable I can use a board with amplifier and external antena if it is necessary or the simplest available board may be OK ?[/quote]
&lt;p&gt;You should be fine without this, but it depends on the environment. If there is a lot of interference in the area from WiFi, Bluetooth etc then you might benefit from having a FEM (front end module) on the receiver, but using a FEM device&amp;nbsp; only on one side of the link is obviously not as efficient as having a FEM device both in the PTX and PRX.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Whatever you end up doing it is important that you run testing in an environment as realistic as possible, to see how well your implementation works in practice.&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: Using NRF24L01+  with pure assembler programing</title><link>https://devzone.nordicsemi.com/thread/422808?ContentTypeID=1</link><pubDate>Mon, 24 Apr 2023 19:54:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b4cb9444-ef73-4aab-bce7-9efd2bae6819</guid><dc:creator>o.hojvat</dc:creator><description>&lt;p&gt;Thank you for your reply&lt;/p&gt;
&lt;p&gt;A wished to have at first some rf link working&lt;/p&gt;
&lt;p&gt;I make a litle more advance and added ACKand ACK + payload and it is also working&lt;/p&gt;
&lt;p&gt;At the end there is list of wht I had modifyed and added.&lt;/p&gt;
&lt;p&gt;Now I will begin with the complete system programms.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Please comment about the following matters&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;- I guess dynamic payload&amp;nbsp; &lt;strong&gt;also applies to the ack payload length&lt;/strong&gt;,&lt;/p&gt;
&lt;p&gt;and the Tx FIFO&lt;strong&gt; need to be loaded before receiving &lt;/strong&gt;the packet&amp;nbsp;&amp;nbsp;&amp;nbsp; Please confirm&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;- If there are Tx from two PTX devices&lt;strong&gt; at the same time&lt;/strong&gt;, I guess no one will be received OK&lt;/p&gt;
&lt;p&gt;I think it may be needed to use diferent ARD in each PTX for avoiding the same problem in the retry&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;-&amp;nbsp; I need in a big room a 15m secure link ,&amp;nbsp; Is it convenient to use 250 Kb rate or 1 Mb rate is OK ?&lt;/p&gt;
&lt;p&gt;The RS485 cable rate is 57600K and not too busy,&amp;nbsp; so with 250K and a processor (with buffers)&amp;nbsp; in the Rf to 485 conversion I estimated they will be no a rate problem.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;- At the RX unit, as it will have a power supply cable I can use a board with amplifier and external antena if it is necessary or the simplest available board may be OK ?&lt;/p&gt;
&lt;p&gt;Best Regards, Osvaldo&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;-------------------- added/ modified&amp;nbsp; for&amp;nbsp; test&amp;nbsp; with ack_payload ----------------------------------&lt;/p&gt;
&lt;p&gt;PTX&lt;br /&gt;&lt;br /&gt;CONFIG&amp;nbsp;&amp;nbsp; 01011010&amp;nbsp;&amp;nbsp;&amp;nbsp; (CRC enabled, 1 byte)&lt;br /&gt;&lt;br /&gt;FEATURE&amp;nbsp;&amp;nbsp;&amp;nbsp; 00000111&lt;br /&gt;&lt;br /&gt;Data upload with command 0xA0&lt;br /&gt;&lt;br /&gt;wait 1ms and read Rx FIFO for payload received with ack&lt;br /&gt;&lt;br /&gt;----------------------------------------&lt;br /&gt;&lt;br /&gt;PRX&lt;br /&gt;&lt;br /&gt;CONFIG&amp;nbsp;&amp;nbsp; 01011011&lt;br /&gt;&lt;br /&gt;FEATURE&amp;nbsp;&amp;nbsp;&amp;nbsp; 00000111&lt;br /&gt;&lt;br /&gt;At the end but inside of&amp;nbsp; rx_wait&amp;nbsp; loop&lt;br /&gt;Data upload with&amp;nbsp; command&amp;nbsp;&amp;nbsp; 10101000 (pipe number 0) for ack payload&lt;br /&gt;data value selected by a switch&lt;br /&gt;data = 0&amp;nbsp; if&amp;nbsp;&amp;nbsp; PORTA,1 tied to Vcc&lt;br /&gt;data =&amp;nbsp; 1111111&amp;nbsp; if&amp;nbsp;&amp;nbsp; PORTA,1 tied to GND&lt;/p&gt;
&lt;p&gt;---------------------------------------------------------------------&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Using NRF24L01+  with pure assembler programing</title><link>https://devzone.nordicsemi.com/thread/422807?ContentTypeID=1</link><pubDate>Mon, 24 Apr 2023 10:28:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4babedfc-a8f8-4ebf-97e9-762be992ca8e</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi&amp;nbsp;&lt;/p&gt;
&lt;p&gt;So everything is working fine?&lt;/p&gt;
&lt;p&gt;Please note that with the CRC check disabled there is a risk that you will receive packets with&amp;nbsp;incorrect data, caused by bit errors in the payload.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;With CRC enabled any packet with a bit error will be discarded, and if you have ACK and retransmits enabled the packet will be sent again.&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: Using NRF24L01+  with pure assembler programing</title><link>https://devzone.nordicsemi.com/thread/422806?ContentTypeID=1</link><pubDate>Sat, 22 Apr 2023 04:01:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b3808a05-249b-45b3-89e9-ecaaa18079b7</guid><dc:creator>o.hojvat</dc:creator><description>&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;;Short test program for Tx / Rx following Torbj&amp;#248;rn instructions (from Nordic Forum)
;I have selected the procesor pins in order to keep posible USART pins free for next proyect step
;Procesor PIC16F1826    ( = PIC)
;Transceiver NRF24L01+ ( = NRF)         PTX = RF tx mode     PRX = RF rx mode
;Using default values at most NRF registers for low instructions count 
; RA4 pin open -&amp;gt; PTR mode   no interruptions
; RA4 to GND  -&amp;gt;  PRX mode   - IRQ used     ( the same program forboth modes )

; PIC definitions 
; INTERNAL OSCILLATOR 16MHZ
; SERIAL DATA OUT (MOSI): RA6      ; 
; SERIAL DATA IN (MISO):  RB1     ;
; SERIAL SPI CLOCK:  RB4 - 4MHz
; SPI  MASTERMODE for procesor  
; RB0 USED AS INPUT TO ENABLE INTERRUPT ON CHANGE (HIGH TO LOW) AND CONNECTED TO TRASCEIVER IRQ for use as TRP
; CSN - NRF SPI enable: RA7 
; CE  NRF24L01+ RF enable (data sheeet states: less than 4ms ON in Tx mode)

; Subrutines used for SPI
; sendSPI  - send WREG value to NRF - iniciate and wait 8 SPI CLK - return with banco0
; receiveSPI  - iniciate and wait 8 SPI CLK - return with banco0 and SPI received value in WREG (fron NRF)
; delay10u  - 10us
; delay1m   - 1ms
; delay200m - 200ms


#define 	banco0	movlb	0     ; 
#define 	banco1	movlb	1     ; OSCON - OPTION
#define 	banco2	movlb	2     ; APFCON   (some inputs/outputs can be moved between default pin to other one )
#define 	banco3	movlb	3     ; usart
#define 	banco4	movlb	4     ; SPI

#define		CSN		PORTA,7	
#define     CE		PORTA,0
#define     PTXsel	PORTA,4     ; 0 = PRX  mode ;  1 = PTX  mode
#define	    LED 	PORTA,2   ; PTR shows tx fifo not empty  -  PRX shows rx fifo with data
;#define 
;#define 
;#define 
;#define 
;#define 
 CBLOCK 	0x20    
  Reg1      ; for delay subrutines 
  Reg2      ; 
  Reg3      ;

  RxDATA1 
  RxDATA2 
  RxDATA3 
  RxDATA4 

  TxDATA1 
  TxDATA2 
  TxDATA3 
  TxDATA4   
 ENDC

 CBLOCK 	0x70    ; access from any bank
  Arg0   
  Arg1   
  Arg2   
  Arg3   
  Arg4   
  Arg5
  Arg6
  Arg7
  Flg 
 ENDC
 

        list    p=16F1826,  r=hex   
        INCLUDE P16F1827.INC    ;  F1826,INC  is not present in MPLAB

	__CONFIG _CONFIG1, _FOSC_INTOSC &amp;amp; _WDTE_OFF &amp;amp; _PWRTE_OFF &amp;amp; _MCLRE_ON &amp;amp; _CP_OFF &amp;amp; _CPD_OFF &amp;amp; _BOREN_ON &amp;amp; _CLKOUTEN_OFF &amp;amp; _IESO_OFF &amp;amp; _FCMEN_OFF
	__CONFIG _CONFIG2, _WRT_OFF &amp;amp; _PLLEN_OFF &amp;amp; _STVREN_OFF &amp;amp; _BORV_HI &amp;amp; _LVP_OFF     ; en el .INC ,     _BORV_19 = _BORV_LO es el trip point bajo   _HI alto


                   ORG 00

              GOTO START

;;;INT      ; not using INT for this test 
;;;	clrf	BSR

;;;retfie

                   
START         ;     
       ;   no poner dalay antes de ajustar oscilador  
      
; PIC initialize
  BANKSEL		TRISB
                   movlw    B&amp;#39;00000111&amp;#39; ; SETTING PORTB ACCORDING TO SPI, RB0 IS INPUT TO ENABLE TRANSCEIVER IRQ
                   movwf    TRISB  ;RB1 MISO   RB2  para Rx de 485 
		   		movlw    b&amp;#39;00010010&amp;#39;    ; tecla a GND en RA1 - pongo 10k a +5  - puente a GND para modo TRX
		   		movwf    TRISA           ;bit5 de MCLR no se baja- teclaa RA1 - LED en salida RA2
			movlw	b&amp;#39;01111010&amp;#39;    ; para 16M
			movwf	OSCCON					
			movlw	b&amp;#39;10000100&amp;#39;    ;con pull-up (ver def. individuales) ; RB0 = 0 INTERRUPT HIGH TO LOW EDGE = bit6
			movwf	OPTION_REG   ; presc 1/32 para TMR0 ( ver si lo uso) 
  BANKSEL PORTB           
                  MOVLW B&amp;#39;00000000&amp;#39;   
		  MOVWF	PORTB    
                  MOVLW B&amp;#39;10000000&amp;#39;   
		  MOVWF	PORTA    ; para CSN en alto 
		BANKSEL ANSELA 
		clrf	ANSELA
		clrf	ANSELB
  BANKSEL  SSP1STAT                     ; tested at, 4MZ also works with SMP = 0
                   MOVLW B&amp;#39;01000000&amp;#39;      ;;; SMP= 1   CKE = 1     ( smp = bit 7 11000000)
                   MOVWF SSP1STAT
                   MOVLW B&amp;#39;00100000&amp;#39;     ; frecSPIclk = fosc/4 = frec instruccion -&amp;gt; 4M  for 16M-osc            
                   MOVWF SSP1CON1            ; bit4 CPK = 0    mode 0,0   smp = 1 
                   MOVLW B&amp;#39;10010000&amp;#39;
  BANKSEL  APFCON0    ; banco2
 			movlw   b&amp;#39;11000000&amp;#39;     ;  RA6 MOSI  
 			movwf	APFCON0         ; (bit7) Tx  USART  RB2 -&amp;gt; RB5
 			movlw   1               ; Rx del USART  RB1 -&amp;gt; RB2
 			movwf	APFCON1
  banco0
;;;			movlw	b&amp;#39;10010000&amp;#39;    ; GIE  INTE   - PRX  uses IRQ  falling level
;;;		btfsc	PORTA,4      ; to GND -&amp;gt; PRX
			movlw	0       ; open -&amp;gt; PTX
			MOVWF INTCON ; for this test I will use poling RIRQ  ;;;  ENABLE GLOBAL INTERRUPTS + RB0 EXTERNAL INTERRUPT IN
      
 clrf	 RxDATA1
 clrf	 RxDATA2
 clrf	 RxDATA3
 clrf	 RxDATA4
 clrf	Arg0  
 clrf	Arg1  
 clrf	Arg2  
 clrf	Arg3  
 clrf	Arg4  
 clrf	Arg5
 clrf	Arg6
 clrf	Arg7  
 clrf	Flg
  movlw	1
movwf	TxDATA1	    ; for tests
 movlw	2	
movwf	TxDATA2
 movlw	3
movwf	TxDATA3
 movlw	4
movwf	TxDATA4

call	delay40ms   ; algo mas de 100ms  para el power-on del modulo NRF
call	delay40ms 
call	delay40ms 

btfss	PORTA,4      ; to GND -&amp;gt; PRX
goto	PRX

; NRF24L01 *************************** reference:  data sheet- commands table 20 page 51 and registers  9.1 page 57 ******************

; PTX:    -   IRQ is enabled but not used in PTR
; 1) Set the PWR_UP bit in the CONFIG register     -  
				bcf CSN       				 ; Open NRF SPI
                   MOVLW B&amp;#39;00100000&amp;#39;         ; write reg 0 - CONFIG    (command 001aaaaa = write to aaaaa register 
                   CALL SEND    
                   MOVLW B&amp;#39;01010010&amp;#39;         ;bit5 low: IRQ for Tx send,  POWER_ON   ; no CRC , PTX mode
                   CALL SEND            
				bsf CSN                      ; close SPI
; optional confirm CPNFIG value
	movlw	0			
	call	read_Regx
	movwf	Arg0
	
; necessary ??? disable auto-ack - uso tx sin ack ( o con ack, a mi gusto)
;;				bcf CSN       				 ; Open NRF SPI
 ;;                  MOVLW B&amp;#39;00100001&amp;#39;         ; write reg 1 -  EN_AA
 ;;                  CALL SEND    
;;                   MOVLW 0         ;
;;                   CALL SEND            
;;				bsf CSN                      ; close SPI	
	
; -----   2)  3) are the same for
; -----   2)  3) are the same for  PTX and PRX    
; 2) Set DYNPD to 0x3F   
				bcf CSN       				 ; 
                   MOVLW B&amp;#39;00111100&amp;#39;         ; write reg 1C - DYNPD    - b&amp;#39;00111100&amp;#39; = (0x20 + 0x1C)
                   CALL SEND    
                   MOVLW B&amp;#39;00111111&amp;#39;         ; dynamic PD all channels
                   CALL SEND                 ; 
				bsf CSN

; 3) Set the EN_DPL bit in the FEATURE register
				bcf CSN       				 ; 
                   MOVLW B&amp;#39;00111101&amp;#39;         ; write reg 1D - FEATURE   - b&amp;#39;00111101&amp;#39; = (0x20 + 0x1D)
                   CALL SEND    
                   MOVLW B&amp;#39;00000101&amp;#39;         ; dynamic PD  and EN_DYN_ACK enabled ; para tx sin ack 
                   CALL SEND                 ; 
				bsf CSN
;optional ? .............. flush tx fifo ..................
	bcf CSN	
	    movlw	0xE1   ; b&amp;#39;11100001&amp;#39;
	    call	SEND
	bsf CSN		
								
; 4) Upload a payload
new_payload:
 ; optional ..............   
    		call 	read_fifo_status	  ;  readed value in WREG
		movwf	Arg1   ;   before load  bit4 EMPTY must be = 1  empty
	btfss	Arg1,4
	bsf LED	; PORTA,2   ; a negated copy of Tx fifo EMPTY
	btfsc	Arg1,4
	bcf LED	; PORTA,2   ; led O = tx fifo with data
;...............
		bcf CSN   ; habilito SPI para cargar datos en TX FiFO
					movlw	0xB0       ;B0 es tx sin ack comando tx payload0 xA0
					call	SEND
					movf	TxDATA1,w    
					call	SEND
					movf	TxDATA2,w
					call	SEND
					movf	TxDATA3,w
					call	SEND
					movf	TxDATA4,w
					call	SEND   
			    bsf CSN	

;Optional:  read and check fifo status 
		call 	read_fifo_status	  ;  readed value in WREG
		movwf	Arg2   ;             bit4 EMPTY must be = 0  not empty
	btfss	Arg2,4
	bsf LED	; PORTA,2   ; a negated copy of Tx fifo EMPTY
	btfsc	Arg2,4
	bcf LED	; PORTA,2   ; led O = tx fifo with data
; 5) Pulse CE for 10 us   ******* DO NOT PLACE BREAKPOINTS HERE    ********
retry:  
				bsf	CE
				call	delay10us
				call	delay10us  ; minimum 10us
				bcf	CE
                  ; ***************  TX Rf 4MS MAXIMUN ***********************
;Optional:  read and check fifo status  130us for rf iniciate?
   call delay10us	; tx 4 bytes needs 40us at 1MHz rate -&amp;gt; for tx FIFO empty
   call delay10us      ;NEEDS MORE TIME - time for next read is added to a more sure value
		call 	read_fifo_status	  ;  readed value in WREG
		movwf	Arg3  ;  after tx the data bit4 txbuf EMPTY must be = 1 empty
	call	delay1ms    ; at  40us fifo not emty - after 1ms yes
		call 	read_fifo_status	  ;  readed value in WREG
		movwf	Arg4  ;  after tx the data bit4 txbuf EMPTY must be = 1 empty
	btfss	Arg4,4
	bsf LED	; PORTA,2   ; a negated copy of Tx fifo EMPTY
	btfsc	Arg4,4
	bcf LED	; PORTA,2

	; optional ????............ clr tx  IRQ ..............
 	
		call	read_status
		movwf	Arg5		
		
	bcf CSN	
	    movlw   0x27	; b&amp;#39;00100111&amp;#39; write to STATUS reg.
		call	SEND   ;  
	movlw	b&amp;#39;01110000&amp;#39;	; clr all interrupts flags
		call	SEND	
	bsf CSN                ; 56us from CE rise 
		call	read_status    ; CSN inside
		movwf	Arg6		; 72us from CE rise
	
		btfss	PORTB,0
		nop		
		btfsc	PORTB,0
		nop
	
; ......................................
	
		call	delay40ms

btfss	Arg4,4   ; if tx FiFO not  empty, do not load again
goto retry		

	incf	TxDATA1,f    ;  modified data for next packet trasmition	
; 6) Add a delay (1ms+) and repeat from 4)
	call delay200ms

goto	new_payload

;;; goto	moreProgram
;****************************************************
	; ; below - PRX 
;****************************************************

PRX:
; 1) Set the PWR_UP bit and PRIM_RX bits in the CONFIG register     -  
		bcf CSN       				 ; Open NRF SPI
            MOVLW B&amp;#39;00100000&amp;#39;         ; write reg 0 - CONFIG    (command 001aaaaa = write to aaaaa register 
            CALL SEND    
            MOVLW B&amp;#39;00110011&amp;#39;         ;Bit6 low: IRQ for Rx received,  POWER_ON   ; no CRC , PRX mode
            CALL SEND            
		bsf CSN                      ; close SPI

; optional confirm CPNFIG value
	movlw	0			
	call	read_Regx
	movwf	Arg0
	
; necessary ??? disable auto-ack  mejor lo dejo y uso tx sin ack ( o con ack, a mi gusto)
;				bcf CSN       				 ; Open NRF SPI
 ;                  MOVLW B&amp;#39;00100001&amp;#39;         ; write reg 1 -  EN_AA
 ;                  CALL SEND    
;                  MOVLW 0         ;
 ;                  CALL SEND            
;				bsf CSN                      ; close SPI	
	
; -----   2)  3) are the same for  PTX and PRX
; 2) Set DYNPD to 0x3F
				bcf CSN       				 ; 
                   MOVLW B&amp;#39;00111100&amp;#39;         ; write reg 1C - DYNPD    - b&amp;#39;00111100&amp;#39; = (0x20 + 0x1C)
                   CALL SEND    
                   MOVLW B&amp;#39;00111111&amp;#39;         ; dynamic PD all channels
                   CALL SEND                 ; 
				bsf CSN
 
; 3) Set the EN_DPL bit in the FEATURE register
				bcf CSN       				 ; 
                   MOVLW B&amp;#39;00111101&amp;#39;         ; write reg 1D - FEATURE   - b&amp;#39;00111101&amp;#39; = (0x20 + 0x1D)
                   CALL SEND    
                   MOVLW B&amp;#39;00000101&amp;#39;         ; dynamic PD  enabled y para tx sin ack
                   CALL SEND                 ; 
				bsf CSN
 ;optional
		call 	read_fifo_status	  ;  readed value in WREG
		movwf	Arg2   ;             bit0 EMPTY must be = 1 empty
 ;optional
		call	read_status
		movwf	Arg5		
		nop

; 4) Set CE high
		bsf		CE    ;  set RF  ON  for Rx

; 5) Wait for the IRQ line to go low   ; no used INT for this test 
rx_wait:
		btfss	PORTB,0
;;;loop extended to some lines below;	goto	rx_wait

; 6) Read out the RX payload  ( IRQ low )
		call	readPayload ;;goto
; 7) Repeat from 5) 
	call	delay1ms     ; read more frecuently than Tx send 
	;;	bcf	LED ; PORTA,2   ; 
;	call	delay40ms
;goto	rx_wait
 ;optional
		call 	read_fifo_status	  ;  readed value in WREG
		movwf	Arg3   ;             bit0 EMPTY must be = 1 empty
 goto	rx_wait
; required ? flush rx fifo   :+++++  empeora ++++++
;;	bcf CSN	
;;	    movlw	0xE2   ; b&amp;#39;11100010&amp;#39;
;;	    call	SEND
;;	bsf CSN
;goto	rx_wait
 ;optional
		call 	read_fifo_status	  ;  readed value in WREG
		movwf	Arg4   ;             bit0 EMPTY must be = 1 empty
;;;goto	rx_wait

;optional
	call	read_status
	movwf	Arg6		
	
; reset IRQ to 1  in the subrutine		
				
goto	rx_wait

; ***************** main program end ***** subrutines below **********
;............................................................
; -----------------------------------------------------------------

;************************* Subrutines ******************************

readPayload      ;; no INT for this test ;banco0     ;only for PRX
;optional	
;;	bsf	LED	; PORTA,2   ; 		
call	delay1ms   ; may be not needed
	call read_status
	movwf	Arg5
            bcf CSN	
                   MOVLW B&amp;#39;01100001&amp;#39; ;0x61 Comando SEND REQUEST READ PAYLOAD - en pag 51 el tercer comando
                   CALL SEND
                CALL RECEIVE		; get SPI data
                  MOVWF RxDATA1   ; lee 4 datos manteniendo CSN en bajo
                CALL RECEIVE
                  MOVWF RxDATA2
                CALL RECEIVE
                  MOVWF RxDATA3
                CALL RECEIVE
                  MOVWF RxDATA4                  
            bsf CSN			; cierra el /CS luego de leer 6 datos	  
    ;;;;;;;    BCF INTCON,INTF ; CLEAR RB0 INTERRUPT FLAG    bit1
	nop
	nop
	bcf CSN
	    movlw	b&amp;#39;00100111&amp;#39;	;  0x27 escribo en STATUS
		call	SEND
	    movlw	b&amp;#39;01110000&amp;#39;  ;clear flags  ;     pongo 1 en bit6 =&amp;gt; borra flag RDb&amp;#39;01000000&amp;#39;
		call	SEND
	bsf CSN 
; show RxDATA1  counting
	btfss	RxDATA1,0	
	bcf LED
	btfsc	RxDATA1,0	
	bsf LED
	
	btfss	RxDATA1,1	
	bcf PORTA,3
	btfsc	RxDATA1,1	
	bsf PORTA,3
	return	        ; RETFIE
                   
   ; -----------------------------------------------------------------

SEND: 	  ; procesor SPI send WREG value to NRF
  BANKSEL SSP1STAT
                   MOVWF SSP1BUF ; MOVE BYTE TO W REGISTER BEFORE CALLING
;;;..........  wait 8 clk ........
                   BTFSS SSP1STAT,BF ; POLL RECEIVING COMPLETE
                   GOTO $-1
;;;;.......................................
  BANKSEL PORTB
                   RETURN

;*************************************

RECEIVE:    ; procesor receive SPI data from NRF
    BANKSEL SSPSTAT     ;  data was send by SPI before this sub.
				clrf	SSP1BUF   ; con cargar o borrar este registro inicia 8 clk
;;;..........  wait 8 clk ........
                   BTFSS SSP1STAT,BF ; POLL RECEIVING COMPLETE
                   GOTO $-1
;;;;.......................................
			MOVF SSP1BUF,W   ; received SPI data in WREG
  BANKSEL PORTB
                   RETURN

; *********************************************************





;------------------------ delay  subs ------------------------------------------

delay200ms: movlw .0   ;   
            movwf Reg1
            movlw .16     
            movwf Reg2
            movlw .5
            movwf Reg3
            decfsz Reg1,F
           goto $-1
            decfsz Reg2,F
           goto $-3
            decfsz Reg3,F
           goto $-5
            nop
        RETURN
; ---------------------------------------------------

delay40ms:  movlw	.202  ; 
            movwf	Reg1
	    movlw	    .208     ;  40ms    
            movwf	Reg2            
            decfsz Reg1,F
		  goto $-1
            decfsz Reg2,F
          goto $-3           
      return      

; ---------------------------------------------------

delay1ms:  movlw	.60  ;
            movwf	Reg1
	    movlw	    .6   ;   1ms        
            movwf	Reg2            
            decfsz Reg1,F
		  goto $-1
            decfsz Reg2,F
          goto $-3           
      return      

; ----------------------------------------

delay10us: movlw	.13   ; 10us  + 1us for call/return
			movwf	Reg1
            decfsz Reg1,F
        	goto $-1           
      return      

;;**************  subs for debug  ****************

read_fifo_status:     ; lo puse para debug - se puede usar en Tx y en Rx
	bcf	CSN ; PORTA,7
		movlw	0x17 ; 	(para lectura de un registro no sumar 0x20)
		call	SEND	
		    CALL RECEIVE
	bsf	CSN
		    return   ; valor leido en w y est&amp;#225; en banco0
;--------------------------------
		    
read_status:     ; lo puse para debug - se puede usar en Tx y en Rx
	bcf	CSN ; PORTA,7
		movlw	0x7 ; 	(para lectura de un registro no sumar 0x20)
		call	SEND	
		    CALL RECEIVE
	bsf	CSN
		    return   ; valor leido en w y est&amp;#225; en banco0
;---------------------------
read_Regx:     ; lo puse para debug - se puede usar en Tx y en Rx
	bcf	CSN ; PORTA,7
	; usa el valor en  w  ; (para lectura de un registro no sumar 0x20)
		call	SEND	
		    CALL RECEIVE
	bsf	CSN
		    return   ; valor leido en w y est&amp;#225; en banco0
		    
;----------------------------



END               
    
    
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;List of SPI commands needed for NRF24L01+&lt;/strong&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;RF link working OK&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The regarding assembler is also attached&lt;br /&gt;&lt;br /&gt;With dynamic payload , no ack&lt;br /&gt;&lt;br /&gt;After procesor settings, with SPI at 4MHz:&lt;br /&gt;&lt;br /&gt;------------------ For PTX --------------------------------&lt;br /&gt;&lt;br /&gt;Write Reg. Config(0) - value 01010010&amp;nbsp; ; Tx IRQ mask / no CRC /power on / PTX mode&lt;br /&gt;&lt;br /&gt;Write Reg. DYNPD(0x1C) - value 00111111 dyn. payload all channels&lt;br /&gt;&lt;br /&gt;Write Reg. FEATURE (1D) -&amp;nbsp; value 00000101&amp;nbsp;&amp;nbsp; EN_DPL&lt;br /&gt;&lt;br /&gt;command:&amp;nbsp; flush tx fifo (0xE1) ; opcional&lt;br /&gt;&lt;br /&gt;; loop&lt;br /&gt;new_payload:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Upload a payload&lt;br /&gt;&amp;nbsp; &lt;br /&gt;command&amp;nbsp;&amp;nbsp; tx payload , no ACK (0xB0) &lt;br /&gt;load 4 TxDATA bytes before CNS goes high&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;br /&gt;retry:&lt;br /&gt;&lt;br /&gt;Set CE High&amp;nbsp; - RF = ON&lt;br /&gt;wait 20us&lt;br /&gt;Set CE Low&amp;nbsp; - RF go OFF when all the packet is sent&lt;br /&gt;&lt;br /&gt;wait 1ms&lt;br /&gt;; reset IRQ line&amp;nbsp; - clear any posible flag&amp;nbsp; (but IRQ not used in PTX)&lt;br /&gt;command: 0x27 write STATUS(reg07) value 01110000 &lt;br /&gt;&lt;br /&gt;read FIFO_STATUS&lt;br /&gt;Test bit4 Tx fifo EMPTY&lt;br /&gt;If no empty, goto retry&lt;br /&gt;&lt;br /&gt;; Packet wass ent&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;incf&amp;nbsp;&amp;nbsp; &amp;nbsp;TxDATA1,f&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&amp;nbsp; modified data for next packet trasmition&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;; Add a delay and repeat new_payload&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;wait&amp;nbsp;&amp;nbsp;&amp;nbsp; 200ms&amp;nbsp; ; (minimum 1ms)&lt;br /&gt;&lt;br /&gt;goto&amp;nbsp;&amp;nbsp; &amp;nbsp;new_payload&amp;nbsp; ; loop rate 4 times/ second&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;--------------------- for PRX ----------------&lt;br /&gt;&lt;br /&gt;Write Reg. Config(0) - value 00110010&amp;nbsp; ; Set bits for: Rx IRQ mask, PWR_UP&amp;nbsp; and PRIM_RX in the CONFIG register , no CRC&amp;nbsp; , PRX mode&lt;br /&gt;&lt;br /&gt;Write Reg. DYNPD(0x1C) - value 00111111 dyn. payload all channels&lt;br /&gt;&lt;br /&gt;Write Reg. FEATURE (1D) -&amp;nbsp; value 00000101&amp;nbsp;&amp;nbsp; EN_DPL&lt;br /&gt;&lt;br /&gt;&amp;nbsp;Set CE High&amp;nbsp; ; set RF&amp;nbsp; ON&amp;nbsp; for Rx &lt;br /&gt;&lt;br /&gt;rx_wait:&lt;br /&gt;test&amp;nbsp;&amp;nbsp; &amp;nbsp;IRQ line = low ? &lt;br /&gt;&lt;br /&gt;if low: call readPayload&amp;nbsp; ; in the subrutine: command 0x27 (write STATUS) value 01110000 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; so RX_RD bit is cleared and IRQ line goes HIGH&lt;br /&gt;&lt;br /&gt;;&amp;nbsp; if IRQ is high , do not read &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; wait 1ms&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; goto rx_wait&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Using NRF24L01+  with pure assembler programing</title><link>https://devzone.nordicsemi.com/thread/422805?ContentTypeID=1</link><pubDate>Fri, 21 Apr 2023 04:59:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:55c222e6-b77b-4bf3-b0c6-b14a198996eb</guid><dc:creator>o.hojvat</dc:creator><description>&lt;p&gt;Last news - working OK the corrected test program.&lt;/p&gt;
&lt;p&gt;With your instructions added, I get an uniform Tx / Rx Data trasmition.&lt;/p&gt;
&lt;p&gt;I am trasmiting a four data packet but &lt;strong&gt;the first one is incremented after each tx packet&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;in PTX&amp;nbsp; I have one led as a negated copy of TxFIFO_Status bit4 (Tx fifo EMPTY)&lt;/p&gt;
&lt;p&gt;With some delays added there is a rate of about 4 Tx packets/ second , LED flashing&amp;nbsp; at this rate.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;In PRx board, there are one led connected at IRQ line ( tied to Vd) that flashes each received packed&lt;/p&gt;
&lt;p&gt;Two processor pins have copy of Received Data 1,&amp;nbsp; bits0 and one&lt;/p&gt;
&lt;p&gt;They show a uniform count following tx / rx packets rate&lt;/p&gt;
&lt;p&gt;Later I will post a list of NRF settings , commands used and also the assembler for the test&lt;/p&gt;
&lt;p&gt;-------------------------------------------------------------------&lt;/p&gt;
&lt;p&gt;Next I will&amp;nbsp; try adding ack and ack with pay load&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best&amp;nbsp; Regards, Osvaldo&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Using NRF24L01+  with pure assembler programing</title><link>https://devzone.nordicsemi.com/thread/422804?ContentTypeID=1</link><pubDate>Fri, 21 Apr 2023 01:28:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:178ee802-c7e8-475e-9427-35d2a774a9c6</guid><dc:creator>o.hojvat</dc:creator><description>&lt;p&gt;Hi&amp;nbsp; Torbjørn&lt;/p&gt;
&lt;p&gt;I will apply your last sent information.&amp;nbsp; I need to adquire some experience before next steps&lt;/p&gt;
&lt;p&gt;We are a two people team makeing electronics parts for Ferromodelism - Model railroad&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;My final target is to replace actual cable connection with Rx links, for a Central unit that may be&amp;nbsp; connected to several handheld controls, using RS485 serial cables.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Most of the time, the central unit send a call byte with the address of one control, wait 130us and if it is not a reply, it send a call with the following address of a control is sent.&lt;/p&gt;
&lt;p&gt;I will replace it by NRF24L01+&amp;nbsp; using all the automaric features available.&lt;/p&gt;
&lt;p&gt;I am making some simple tests before incorporate the RF part&amp;nbsp; to&amp;nbsp; the program of the Control units, PTX&lt;/p&gt;
&lt;p&gt;I will place the PRX part in a special interfase that keeps updated information of controls and Central unit, and to convert RF Tx/ Rx data with the required timing.&lt;/p&gt;
&lt;p&gt;One interfase for up to 6 controls.&amp;nbsp; Usually no more that one or two controls will be connected&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;As data to be send from controls will be a result of a keyboard switch pressing, I expect it will be not a problem for the posibility than more than one control may Tx Data at the same time&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;After the present initial test, I will use the enhanced shock burst in a new test&amp;nbsp; as a second step.&lt;/p&gt;
&lt;p&gt;I will post resulting assembler when it works well.&lt;/p&gt;
&lt;p&gt;Best Regards, Osvaldo&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Using NRF24L01+  with pure assembler programing</title><link>https://devzone.nordicsemi.com/thread/422803?ContentTypeID=1</link><pubDate>Thu, 20 Apr 2023 08:24:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ddb54c47-0557-48e1-85b7-92794f959443</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi Osvaldo&lt;/p&gt;
&lt;p&gt;If you want to use the dynamic payload length feature you should not clear the bits in the EN_AA register (reg 1).&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Instead you can use a feature called &amp;quot;dynamic ACK&amp;quot;, that allows you to send packets that will not be acked while still being able to use dynamic payload length.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;In order to use this feature you need to set bit 0 (EN_DYN_ACK) in the FEATURE register (reg 0x1D).&amp;nbsp;&lt;/p&gt;
&lt;p&gt;It also important that you enable the DPL bit in the DYNPD register for the pipe that you want to use (bit 0 for pipe 0 and so forth).&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Then finally you have to use the W_TX_PAYLOAD_NO_ACK command (0xB0) to send the payload rather than the normal W_TX_PAYLOAD command (0xA0).&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Another advantage of this method is that you can send some packets with ACK and other packets without, in case some packets are more critical than others.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Please note that when sending packets without ACK you will not know if the packets are successfully received or not, and you have to expect a certain amount of data loss.&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: Using NRF24L01+  with pure assembler programing</title><link>https://devzone.nordicsemi.com/thread/422802?ContentTypeID=1</link><pubDate>Wed, 19 Apr 2023 22:23:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0dd15a93-3cbb-4573-b10f-7d7b06b97003</guid><dc:creator>o.hojvat</dc:creator><description>&lt;p&gt;Thank you for the reply.&amp;nbsp;&amp;nbsp;&amp;nbsp; I just saw it&lt;/p&gt;
&lt;p&gt;I have corrected an error in FEATURE, in the bit&amp;nbsp; position for dynamic payload enable.&lt;/p&gt;
&lt;p&gt;Now I get the same Rx Data in PRX as the Tx Data in PTX&lt;/p&gt;
&lt;p&gt;By the moment I like to not using ack&lt;/p&gt;
&lt;p&gt;I found necessary two actions for my tests works:&lt;/p&gt;
&lt;p&gt;*** Clear reg1 (auto ack) at the initial settings&lt;/p&gt;
&lt;p&gt;*** Clear STATUS RX_RD after a received payload for have reseted the IRQ out ( I use poling)&lt;/p&gt;
&lt;p&gt;I finally understand that this byte is cleared writing a 1, but the level becomes1 when activated and low when cleared&lt;/p&gt;
&lt;p&gt;*** I guess than flux Rx/Tx&amp;nbsp; FIFOs is not necessary at the beguining&lt;/p&gt;
&lt;p&gt;I will inform when I may get trasmiting about 40 diferents packets&amp;nbsp; and receive the same with no error&lt;/p&gt;
&lt;p&gt;Distance is about 60cm&lt;/p&gt;
&lt;p&gt;Best Regards&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>