<?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>gpio speed problem</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/94388/gpio-speed-problem</link><description>hi support team, 
 our customer is trying to use gpio to simulate interface for external device communication. 
 and i tested our 5340dk pin 28 and pin 29, find out that gpio speed is not stable as below: 
 
 i have added source code as below: 
 
 # ifdef</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 02 Dec 2022 16:43:31 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/94388/gpio-speed-problem" /><item><title>RE: gpio speed problem</title><link>https://devzone.nordicsemi.com/thread/398819?ContentTypeID=1</link><pubDate>Fri, 02 Dec 2022 16:43:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3e7f4dc6-2e72-486c-be40-6f9c29f6b40e</guid><dc:creator>hmolesworth</dc:creator><description>&lt;p&gt;To clarify for William, the cpu clock is different from the i/o pin peripheral clock. Yes the cpu clock can be 64MHz or 128MHz, but the pin peripheral clock is limited to 16MHz regardless of cpu clock so i/o port pin transitions are limited to a shortest interval of 62.5nSec as I noted earlier. Using the DPPI will not increase the peripheral pin clock above 16MHz and so although it will give better stability and predictability the pin can never transition at other than integer multiples of 62.5nSec intervals. The 16MHz i/o pin peripheral clock is synchronous to the 64MHz or 128MHz cpu clock, and so cannot &amp;quot;slide&amp;quot; to other starting positions for the 62.5nSec tick.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: gpio speed problem</title><link>https://devzone.nordicsemi.com/thread/398780?ContentTypeID=1</link><pubDate>Fri, 02 Dec 2022 13:42:53 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:69a37d5e-5a93-47f1-8f89-597a661d3208</guid><dc:creator>Kazi Afroza Sultana</dc:creator><description>&lt;p&gt;Hello William,&lt;/p&gt;
&lt;p&gt;I have reproduced the issue and I also have jitter (not stable toggling) for each duty cycle. Since the pins are set with no delay, so we cannot expect stable toggling. To toggle a GPIO without using the CPU, we need to use GPIOTE. CPU and peripheral are on different buses, at different speeds. the peripheral bus is here at 16Mhz, while the CPU is either 128 MHz or 64 MHz.&lt;/p&gt;
&lt;p&gt;You need to use either DPPI+TIMER+GPIOTE peripheral or use the PWM peripheral.&lt;/p&gt;
&lt;p&gt;You can look at this nrfx sample in zephyr to do that&amp;nbsp;&lt;a href="https://github.com/nrfconnect/sdk-zephyr/blob/main/samples/boards/nrf/nrfx/src/main.c"&gt;https://github.com/nrfconnect/sdk-zephyr/blob/main/samples/boards/nrf/nrfx/src/main.c&lt;/a&gt;&amp;nbsp;.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;In prj.conf file, you need to add this&amp;nbsp;CONFIG_NRFX_TIMER2=y also.&lt;/p&gt;
&lt;p&gt;Thanks.&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;Kazi&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: gpio speed problem</title><link>https://devzone.nordicsemi.com/thread/398670?ContentTypeID=1</link><pubDate>Fri, 02 Dec 2022 04:47:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9d26ce47-f5bd-44ca-97f0-6f5b0dacc070</guid><dc:creator>William.wei</dc:creator><description>&lt;p&gt;Thank you Kazi,&lt;/p&gt;
&lt;p&gt;Waiting for your reply.&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;William.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: gpio speed problem</title><link>https://devzone.nordicsemi.com/thread/398669?ContentTypeID=1</link><pubDate>Fri, 02 Dec 2022 04:46:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6e404eee-7d34-4b81-b2db-0ae52e4ecd98</guid><dc:creator>William.wei</dc:creator><description>&lt;p&gt;hi,&lt;/p&gt;
&lt;p&gt;actually the clock is not 16M when i disable cpu at 128M(which means 64M cpu speed), and this gpio speed is as below:&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1669956359157v2.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;William.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: gpio speed problem</title><link>https://devzone.nordicsemi.com/thread/398440?ContentTypeID=1</link><pubDate>Thu, 01 Dec 2022 06:28:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:86c0c73c-18f2-4c5c-afcb-f473a469eb46</guid><dc:creator>Kazi Afroza Sultana</dc:creator><description>&lt;p&gt;Hello William,&lt;/p&gt;
&lt;p&gt;I have reproduced your issue. I will get back to you soon.&lt;/p&gt;
&lt;p&gt;Thanks.&lt;/p&gt;
&lt;p&gt;Best Regards,&lt;/p&gt;
&lt;p&gt;Kazi Afroza Sultana&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: gpio speed problem</title><link>https://devzone.nordicsemi.com/thread/398395?ContentTypeID=1</link><pubDate>Wed, 30 Nov 2022 16:42:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1a41f097-55a6-45e9-819d-b1a1bcfe7954</guid><dc:creator>hmolesworth</dc:creator><description>&lt;p&gt;It is likely that the I/O pin is using the PCLK16M 16MHz clock, so will only transition edges at 62.5nSec intervals. However, I don&amp;#39;t see where this is defined in the product spec, or indeed if the PCLK32 or PCLK64 are available for i/o port pin peripheral operation. I/O port pins and PWM may both be limited to 16MHz, whereas&amp;nbsp;TIMER/COUNTER and SPI (for example) can use faster clocks&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>