<?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>nRF52810 Timer+PPI+GPIOTE pulsewidth jitter of couple microseconds</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/113517/nrf52810-timer-ppi-gpiote-pulsewidth-jitter-of-couple-microseconds</link><description>Hi. I am trying to control a RC servo with a nRF52810 MCU (in short, a servo needs pulses in range of 1000-2000us once every 20ms to move to specific position. Minimal change in pulse width for servo to move is around 5-10us). At first I configured a</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 07 Jul 2025 19:40:46 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/113517/nrf52810-timer-ppi-gpiote-pulsewidth-jitter-of-couple-microseconds" /><item><title>RE: nRF52810 Timer+PPI+GPIOTE pulsewidth jitter of couple microseconds</title><link>https://devzone.nordicsemi.com/thread/541695?ContentTypeID=1</link><pubDate>Mon, 07 Jul 2025 19:40:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3306a2be-6687-4238-bfe4-a29aad50ce0b</guid><dc:creator>Positron</dc:creator><description>&lt;p&gt;Hi! I used `sd_clock_hfclk_request` function to switch to HF clock at the beginning of the program (that&amp;#39;s for SoftDevice).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52810 Timer+PPI+GPIOTE pulsewidth jitter of couple microseconds</title><link>https://devzone.nordicsemi.com/thread/541690?ContentTypeID=1</link><pubDate>Mon, 07 Jul 2025 18:33:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a5cfde76-ba2d-4395-800b-b454033b9305</guid><dc:creator>Udi Vahaba</dc:creator><description>&lt;p data-start="68" data-end="80"&gt;Hi Positron!&lt;/p&gt;
&lt;p data-start="82" data-end="187"&gt;I&amp;#39;m running into the same issue &amp;mdash; would you be able to share some of your code showing how you solved it?&lt;/p&gt;
&lt;p data-start="189" data-end="207"&gt;Thanks in advance!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52810 Timer+PPI+GPIOTE pulsewidth jitter of couple microseconds</title><link>https://devzone.nordicsemi.com/thread/496878?ContentTypeID=1</link><pubDate>Sat, 03 Aug 2024 12:53:41 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:60c70a79-e615-4c33-aeec-96d55e4c72bf</guid><dc:creator>Positron</dc:creator><description>&lt;p&gt;Hi.&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve run tests with the program that requests HFXO properly (with and without BLE), and it seems this is indeed the fix. With HFXO running there is no jitter whatsoever. As you mentioned, it increases the consumption a bit, but should be acceptable compared to outer components consumption (servo).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52810 Timer+PPI+GPIOTE pulsewidth jitter of couple microseconds</title><link>https://devzone.nordicsemi.com/thread/496360?ContentTypeID=1</link><pubDate>Wed, 31 Jul 2024 08:38:38 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9bef59d5-92d1-4ad8-9118-d8f6e222b7ac</guid><dc:creator>J&amp;#248;rgen Holmefjord</dc:creator><description>[quote user="Positron"]Is timer EVENTS_COMPARE considered a HW event? In this case, there should be no difference in timings for low-power and constant-latency submodes, right? (judging from the table in your link)[/quote]
&lt;p&gt;Yes, it is a HW event, and there should not be any difference in timing between the power modes for PPI.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52810 Timer+PPI+GPIOTE pulsewidth jitter of couple microseconds</title><link>https://devzone.nordicsemi.com/thread/496265?ContentTypeID=1</link><pubDate>Tue, 30 Jul 2024 14:54:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e7b36814-674b-4e69-858e-44d12da738da</guid><dc:creator>Positron</dc:creator><description>&lt;p&gt;Hi, thanks for answering! I&amp;#39;ll try to collect some more info.&amp;nbsp;&lt;/p&gt;
[quote userid="14926" url="~/f/nordic-q-a/113517/nrf52810-timer-ppi-gpiote-pulsewidth-jitter-of-couple-microseconds/496262"]The time from HW event to PPI event should be only one 16MHz clock cycle[/quote]
&lt;p&gt;Is timer EVENTS_COMPARE considered a HW event? In this case, there should be no difference in timings for low-power and constant-latency submodes, right? (judging from the table in your link)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52810 Timer+PPI+GPIOTE pulsewidth jitter of couple microseconds</title><link>https://devzone.nordicsemi.com/thread/496262?ContentTypeID=1</link><pubDate>Tue, 30 Jul 2024 14:44:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b4452548-b9db-45b5-b15b-92ea8970dbb0</guid><dc:creator>J&amp;#248;rgen Holmefjord</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
[quote user=""]I am using BLE, so I think the BLE functionality takes over the core from time to time, servicing its own interrupts or disabling interrupts, and this is what causes timing issues. Disabling BLE improved situation, but not much.[/quote]
&lt;p&gt;Can you post the code you are using to configure and control TIMER+PPI+GPIOTE? If setup correctly, this should work fully without CPU intervention, apart from the time when you need to update the duty-cycle. BLE will affect interrupts, but TIMER+PPI+GPIOTE are pure HW peripherals that can work without interrupts.&lt;/p&gt;
[quote user=""]Since I am using BLE and that works fine, I assume&amp;nbsp;&lt;span&gt;HF crystal&amp;nbsp;&lt;/span&gt;is used (switching to it helped in a similar case: &lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/37621/jitter-on-timer1-ppi-gpiote/145156"&gt;RE: Jitter on Timer1+PPI+GPIOTE?&lt;/a&gt;&amp;nbsp;).[/quote]
&lt;p&gt;HFXO is only enabled during radio operations when you are using BLE, it will not be enabled for all time you run the TIMER unless you explicitly enable this in the application (&lt;a title="sd_clock_hfclk_request" href="https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.s112.api.v7.3.0/group___n_r_f___s_o_c___f_u_n_c_t_i_o_n_s.html?cp=5_7_0_1_2_6_2_3#ga3e5afb495a1b0307c749cc268df94a74"&gt;sd_clock_hfclk_request&lt;/a&gt;()). If HFXO is not started explicitly, the HFINT will be used as source for the TIMER, with an &lt;a href="https://infocenter.nordicsemi.com/topic/ps_nrf52810/clock.html#unique_677891200"&gt;accuracy up to +/-8%&lt;/a&gt;. Note that keeping the HFXO on will have an impact on your &lt;a href="https://infocenter.nordicsemi.com/topic/ps_nrf52810/_tmp/gluon/autodita/CURRENT/parameters.i_timer.html"&gt;current consumption&lt;/a&gt;.&lt;/p&gt;
[quote user=""]Could you advise on what could be the cause of this? Currently I suspect that the whole MCU goes to sleep and wakes up and this affects timer events timing, but I don&amp;#39;t have enough knowledge to be sure.[/quote]
&lt;p&gt;The time from HW event to PPI event should be only one 16MHz clock cycle (&lt;a title="Device startup times" href="https://infocenter.nordicsemi.com/topic/ps_nrf52810/power.html?cp=5_5_0_4_2_9_0#unique_1547032551"&gt;Device startup times&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Can you please share a logic trace of the output from the GPIO when this jitter occurs?&lt;/p&gt;
&lt;p&gt;Best regards,&lt;br /&gt;Jørgen&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>