<?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>Nrf52811 AoA TX timing, does this require manual timing</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/49231/nrf52811-aoa-tx-timing-does-this-require-manual-timing</link><description>Hello, 
 we are experimenting with the Nrf52811 CTE feature and have a few doubts concerning the documentation. We program our experiments with bare-metal (no soft device) register level configuration and base this development on the product specification</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 12 May 2020 05:00:53 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/49231/nrf52811-aoa-tx-timing-does-this-require-manual-timing" /><item><title>RE: Nrf52811 AoA TX timing, does this require manual timing</title><link>https://devzone.nordicsemi.com/thread/249330?ContentTypeID=1</link><pubDate>Tue, 12 May 2020 05:00:53 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:99c0a818-7bb1-405b-bce4-c2d404996425</guid><dc:creator>Pete W</dc:creator><description>&lt;p&gt;Well spotted!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Nrf52811 AoA TX timing, does this require manual timing</title><link>https://devzone.nordicsemi.com/thread/196330?ContentTypeID=1</link><pubDate>Wed, 03 Jul 2019 16:19:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c9bf082d-54df-4f9a-9c65-278eb6e96254</guid><dc:creator>niebert</dc:creator><description>&lt;p&gt;OK, now I have understood what had happened.&lt;/p&gt;
&lt;p&gt;Actually, when the DTX field of MODECNF0 is set to &amp;quot;B1&amp;quot; or &amp;quot;B0&amp;quot;, the PHYEND event does not occur!&lt;/p&gt;
&lt;p&gt;It must be configured &amp;quot;Center&amp;quot;. DTX=B1 could seem a logical choice for CTE, and maybe (?) it was meant for such applications before 52811, but then the radio must be stopped manually.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;In my case, by negligence the DTX field was configured B1 by an assignment&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;NRF_RADIO-&amp;gt;MODECNF0 = RADIO_MODECNF0_RU_Fast &amp;lt;&amp;lt; RADIO_MODECNF0_RU_Pos;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;which put a 0 or B1 into the DTX field. After changing it to&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;	NRF_RADIO-&amp;gt;MODECNF0 = RADIO_MODECNF0_RU_Fast &amp;lt;&amp;lt; RADIO_MODECNF0_RU_Pos | RADIO_MODECNF0_DTX_Center &amp;lt;&amp;lt; RADIO_MODECNF0_DTX_Pos;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;the PHYEND event occurs and the radio works as expected.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;You might want to extend the note of the MODECNF0 register to explicitly mention PHYEND, not just the compatible radio modes.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Nrf52811 AoA TX timing, does this require manual timing</title><link>https://devzone.nordicsemi.com/thread/196237?ContentTypeID=1</link><pubDate>Wed, 03 Jul 2019 11:09:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6fdaf095-41a0-4754-bb98-1f0fe41abee2</guid><dc:creator>Andreas</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Yes, the text about PHYEND can be misinterpreted, EVENTS_PHYEND is generated for all PHYs in RX and TX.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;The fact that the DFE only ocurrs in LR modes could indicate that you have a END_DISABLE short enabled, have you checked this?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Andreas&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Nrf52811 AoA TX timing, does this require manual timing</title><link>https://devzone.nordicsemi.com/thread/196125?ContentTypeID=1</link><pubDate>Wed, 03 Jul 2019 06:25:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a16f6256-3aab-4348-a7db-49ff689a85ea</guid><dc:creator>niebert</dc:creator><description>&lt;p&gt;Andreas, thanks!&lt;/p&gt;
&lt;p&gt;Concerning (2) and (3), I am happy now.&lt;/p&gt;
&lt;p&gt;Concerning (1), I still have doubts. Figure 75 on page 192 of the&amp;nbsp;product specification v1.0 suggests that with respect to CTE, there is first the END event and after CTE the PHYEND event. This contradicts other parts of the documentation that suggest that END is for non-LR modes and PHYEND is for LR-modes. I did try LR500Kbits to this end and when disabling the radio at PHYEND, there still was no continuous tone on the end of the packages (I use an SDR to see what is going on on the air).&lt;/p&gt;
&lt;p&gt;However, when I cheat and choose mode TX AoD without any switching sequence programmed, I can observe in DFESTATUS that switching continues as expected. This led to a code like this for the radio event handler, attached to the END event (I was using&amp;nbsp;Ble_2Mbits mode) and this works, although it is not satisfactory (busy waiting).&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;void RADIO_IRQHandler(){ // end of transmission handler
		if(NRF_RADIO-&amp;gt;EVENTS_END){
			NRF_RADIO-&amp;gt;EVENTS_END=0; // clear

			// busy wait for DFE sequence to be sent

			int timeout = 3;// DFE starts after shortly after end end
			while (timeout-- &amp;amp;&amp;amp; (((NRF_RADIO-&amp;gt;DFESTATUS &amp;amp; RADIO_DFESTATUS_SWITCHINGSTATE_Msk) &amp;gt;&amp;gt; RADIO_DFESTATUS_SWITCHINGSTATE_Pos) == 0))
				;
			while ((((NRF_RADIO-&amp;gt;DFESTATUS &amp;amp; RADIO_DFESTATUS_SWITCHINGSTATE_Msk) &amp;gt;&amp;gt; RADIO_DFESTATUS_SWITCHINGSTATE_Pos) != 0))
				;
			NRF_RADIO-&amp;gt;TASKS_DISABLE=1;
	
		}

}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;When on the other hand I use TX AoA mode, I have no way to observe on the registers (switching state is always idle,&lt;/p&gt;
&lt;p&gt;and, why shouldn&amp;#39;t it be) or events whether the&amp;nbsp;radio is supposed to still emit the continuous tone.&lt;/p&gt;
&lt;p&gt;Since CTE and sampling does work with other than LR modes, I am confused about the mention of PHYEND. First, I tried to wait for PHYEND, but with DFE enabled it still only occurs in LR modes and it does not leave time for the tone.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Nrf52811 AoA TX timing, does this require manual timing</title><link>https://devzone.nordicsemi.com/thread/195986?ContentTypeID=1</link><pubDate>Tue, 02 Jul 2019 12:32:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:161b0b11-fd61-4b25-86fb-d6bd45bb5937</guid><dc:creator>Andreas</dc:creator><description>&lt;p&gt;Hi Peter,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;You might be thinking a bit too complicated about this, the CTE is configured and controlled by the radio entirely, no need for timer or PPI. Setup to make the radio append the CTE after the CRC:
&lt;ol&gt;
&lt;li&gt;Set DFEMODE to AoA&lt;/li&gt;
&lt;li&gt;Length of CTE in n*8 µs in DFECTRL.NUMBEROF8US&lt;/li&gt;
&lt;li&gt;CTE after CRC in DFECTRL.DFEINEXTENSION&lt;br /&gt;As an example:&amp;nbsp;&lt;pre class="ui-code" data-mode="c_cpp"&gt;        NRF_RADIO-&amp;gt;DFEMODE = RADIO_DFEMODE_DFEOPMODE_AoA;
        NRF_RADIO-&amp;gt;DFECTRL1 = 3 &amp;lt;&amp;lt; RADIO_DFECTRL1_NUMBEROF8US_Pos | 
                              1 &amp;lt;&amp;lt; RADIO_DFECTRL1_DFEINEXTENSION_Pos;
 &lt;/pre&gt;&lt;br /&gt;Note: if you use the END_DISABLED short or similar the radio will shutdown on the END event, clear this, or use PHYEND_DISABLED instead.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Moving the CTE to the payload should just move it to start at the address event instead, disabling whitening or tailoring your payload is not needed. Not 100% sure about the TSAMPLEOFFSET of that impacts the CTE when switching is not used, but TSWITCHOFFSET should only be related to the switching role.&lt;/li&gt;
&lt;li&gt;The intention with ADCBACKOFFGAIN seems to be lowering the gain of the receiver blocks to create some headroom for when antenna switching starts in case some antennas provide much stronger signals than the one used when receiving the payload.&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Andreas&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>