<?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>Why is the HFCLK necessary for the DTM module?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/37487/why-is-the-hfclk-necessary-for-the-dtm-module</link><description>I&amp;#39;m implementing my own DTM mode for the nRF52832 based on SDK14.2&amp;#39;s DTM module (ble_dtm.c). My modified version of ble_dtm.c seems to work fine, but I don&amp;#39;t completely understand how it works. Specifically, I don&amp;#39;t understand why the HFCLK needs to be</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 16 Aug 2018 00:55:21 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/37487/why-is-the-hfclk-necessary-for-the-dtm-module" /><item><title>RE: Why is the HFCLK necessary for the DTM module?</title><link>https://devzone.nordicsemi.com/thread/144395?ContentTypeID=1</link><pubDate>Thu, 16 Aug 2018 00:55:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:52436149-7feb-43b0-8862-e9039efad96a</guid><dc:creator>Elias</dc:creator><description>&lt;p&gt;Question edited after I&amp;#39;ve done more experimenting.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Why is timer_init() necessary for the DTM module?</title><link>https://devzone.nordicsemi.com/thread/144386?ContentTypeID=1</link><pubDate>Wed, 15 Aug 2018 20:06:38 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:55677a90-8ee5-410a-b9e8-743fb4f8b3f7</guid><dc:creator>Elias</dc:creator><description>&lt;p&gt;The timer_init() is apparently necessary even when I comment-out line 881-889. I&amp;#39;m also using dtm_constant_carrier(), so there shouldn&amp;#39;t be any real &amp;quot;packets&amp;quot;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Why is timer_init() necessary for the DTM module?</title><link>https://devzone.nordicsemi.com/thread/144248?ContentTypeID=1</link><pubDate>Wed, 15 Aug 2018 05:27:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e2a7d987-c62a-4355-94b3-51086502af6e</guid><dc:creator>Einar Thorsrud</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;You can see from the implementation in ble_dtm.c that the timer is used&amp;nbsp;to transmit packets with the correct delay between each packet (line 881-889 in ble_dtm.c in SDK 15.0.0).&lt;/p&gt;
&lt;p&gt;Update: I forgot the most obvious reason for requiring the HFCLK in my original answer, which is that requesting the HFCLK causes the crystal oscillator (HFXC) to run, which is required in order to get an accurate clock for using the radio. The HFINT oscillator is way too inaccurate for using the radio (&lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.nrf52832.ps.v1.1/clock.html?cp=2_1_0_18_3#unique_1540248488"&gt;worst case &amp;plusmn;6 %&lt;/a&gt;). The SoftDevice normally starts the HFXC before it uses the radio, but as the DTM example handles the radio directly, it must also make sure to enable the clock.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>