<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>LPCXpresso IDE中的主题 Max GPIO Frequency LPC11C24</title>
    <link>https://community.nxp.com/t5/LPCXpresso-IDE/Max-GPIO-Frequency-LPC11C24/m-p/529476#M1518</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Caradhras on Sun Jul 15 13:04:34 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I just did some tests with my logic analyzer to measure the maximum Speed at which the LPC11C24 can toggle a pin.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In the main loop i got just this statement (no interrupts active):&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
while(1)
{
LPC_GPIO0-&amp;gt;MASKED_ACCESS[(1&amp;lt;&amp;lt;2)] ^= (1&amp;lt;&amp;lt;2); // PIO0_2
}
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I switched on the clock in SYSAHB, set the direction and so on. In the optimization settings I chose Optimize most -O3. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;With these settings I got a maximum toggling frequency of 2 MHz as long as my 70 EUR and 20 MHz logic analyzer is correct...:rolleyes:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Is that a realistc value? Is it the maximum speed I can expect from the mcu? Maybe I forgot to set a parameter and it can do it much faster? Some forums on the interweb told me puny atmels at 16MHz can do more ^^&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 16 Jun 2016 01:35:56 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-16T01:35:56Z</dc:date>
    <item>
      <title>Max GPIO Frequency LPC11C24</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Max-GPIO-Frequency-LPC11C24/m-p/529476#M1518</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Caradhras on Sun Jul 15 13:04:34 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I just did some tests with my logic analyzer to measure the maximum Speed at which the LPC11C24 can toggle a pin.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In the main loop i got just this statement (no interrupts active):&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
while(1)
{
LPC_GPIO0-&amp;gt;MASKED_ACCESS[(1&amp;lt;&amp;lt;2)] ^= (1&amp;lt;&amp;lt;2); // PIO0_2
}
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I switched on the clock in SYSAHB, set the direction and so on. In the optimization settings I chose Optimize most -O3. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;With these settings I got a maximum toggling frequency of 2 MHz as long as my 70 EUR and 20 MHz logic analyzer is correct...:rolleyes:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Is that a realistc value? Is it the maximum speed I can expect from the mcu? Maybe I forgot to set a parameter and it can do it much faster? Some forums on the interweb told me puny atmels at 16MHz can do more ^^&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:35:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Max-GPIO-Frequency-LPC11C24/m-p/529476#M1518</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:35:56Z</dc:date>
    </item>
    <item>
      <title>Re: Max GPIO Frequency LPC11C24</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Max-GPIO-Frequency-LPC11C24/m-p/529477#M1519</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by micrio on Sun Jul 15 13:55:50 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Have a look at the assembly code.&amp;nbsp;&amp;nbsp; Your code is reading the I/O port then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;writing it.&amp;nbsp;&amp;nbsp; It is also doing a "not" operation.&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Your code may not be aligned.&amp;nbsp;&amp;nbsp; This can cause a cache miss.&amp;nbsp;&amp;nbsp; Running &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;out of flash adds wait states.&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;You could run out of RAM which has no wait states but is a little &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;more tricky to program.&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;To get the absolute fastest code you will probably have to write some&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;of it in assembly.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Pete.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:35:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Max-GPIO-Frequency-LPC11C24/m-p/529477#M1519</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:35:57Z</dc:date>
    </item>
    <item>
      <title>Re: Max GPIO Frequency LPC11C24</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Max-GPIO-Frequency-LPC11C24/m-p/529478#M1520</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by ex-kayoda on Sun Jul 15 18:16:35 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Don't understand the sense of this :confused:, but anyway:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Your code is wasting time with reading and branching :mad: Try a smart versions like:&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
while(1)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO0-&amp;gt;MASKED_ACCESS[(1&amp;lt;&amp;lt;2)] = (1&amp;lt;&amp;lt;2); // PIO0_2
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO0-&amp;gt;MASKED_ACCESS[(1&amp;lt;&amp;lt;2)] =~(1&amp;lt;&amp;lt;2); // PIO0_2
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO0-&amp;gt;MASKED_ACCESS[(1&amp;lt;&amp;lt;2)] = (1&amp;lt;&amp;lt;2); // PIO0_2
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO0-&amp;gt;MASKED_ACCESS[(1&amp;lt;&amp;lt;2)] =~(1&amp;lt;&amp;lt;2); // PIO0_2
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO0-&amp;gt;MASKED_ACCESS[(1&amp;lt;&amp;lt;2)] = (1&amp;lt;&amp;lt;2); // PIO0_2
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO0-&amp;gt;MASKED_ACCESS[(1&amp;lt;&amp;lt;2)] =~(1&amp;lt;&amp;lt;2); // PIO0_2
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO0-&amp;gt;MASKED_ACCESS[(1&amp;lt;&amp;lt;2)] = (1&amp;lt;&amp;lt;2); // PIO0_2
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO0-&amp;gt;MASKED_ACCESS[(1&amp;lt;&amp;lt;2)] =~(1&amp;lt;&amp;lt;2); // PIO0_2
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO0-&amp;gt;MASKED_ACCESS[(1&amp;lt;&amp;lt;2)] = (1&amp;lt;&amp;lt;2); // PIO0_2
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIO0-&amp;gt;MASKED_ACCESS[(1&amp;lt;&amp;lt;2)] =~(1&amp;lt;&amp;lt;2); // PIO0_2
}&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;SPAN&gt;and you can read the real switching frequency: 12MHz :eek:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Note: This is the showed scope frequency (=complete ON/OFF cycle) at 48MHz. A single ON/OFF time is therefore 1/24MHz = 2 cycles (without loop branching).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;See also: &lt;/SPAN&gt;&lt;A href="http://" rel="nofollow noopener noreferrer" target="_blank"&gt;http://knowledgebase.nxp.com/showthread.php?t=1832&lt;/A&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:35:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Max-GPIO-Frequency-LPC11C24/m-p/529478#M1520</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:35:58Z</dc:date>
    </item>
    <item>
      <title>Re: Max GPIO Frequency LPC11C24</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Max-GPIO-Frequency-LPC11C24/m-p/529479#M1521</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Caradhras on Sun Jul 15 23:54:40 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Ah, that thread is exactly what i was looking for. Didnt find it with the searchfunction...:(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;It wantedt to know what speeds can be done with stupid software interfaces...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks! :)&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:35:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Max-GPIO-Frequency-LPC11C24/m-p/529479#M1521</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:35:58Z</dc:date>
    </item>
    <item>
      <title>Re: Max GPIO Frequency LPC11C24</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Max-GPIO-Frequency-LPC11C24/m-p/529480#M1522</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by elef on Mon Jul 16 19:49:57 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;The hardware is capable of toggling using a single 2 cycle instruction.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Given that your LPC11C24 runs at 50MHz Max, the fastest toggling you can get on your GPIO is 25MHz. Because your logic analyser is 20Mhz max and you can't measure 25Mhz, i suggest try run your CPU at say 12Mhz, and you should see your GPIO speed at 6MHz.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;But as kayoda said, don't waste your cycles on branching through a while(1) loop.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:35:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Max-GPIO-Frequency-LPC11C24/m-p/529480#M1522</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:35:59Z</dc:date>
    </item>
  </channel>
</rss>

