<?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のトピックHow to calculate UART baudrate parameters</title>
    <link>https://community.nxp.com/t5/LPCXpresso-IDE/How-to-calculate-UART-baudrate-parameters/m-p/576675#M22865</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Terje on Thu Apr 12 00:14:35 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;[FONT=Arial][COLOR=Black][SIZE=3]Hello.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; I'm trying to understand how the example code is calculating the parameters to set the baudrate, but neither the code from CodeRed nor Keil looks correct to me (They are not the same, by the way). I hope some of you can explain it to me.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; The example code from CodeRed is as follows&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[I]#define SystemFrequency SystemCoreClock&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; regVal = LPC_SYSCON-&amp;gt;UARTCLKDIV;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Fdiv = (((SystemFrequency/LPC_SYSCON-&amp;gt;SYSAHBCLKDIV)/regVal)/16)/baudrate[/I]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; While the code from Keil is:[/SIZE][/COLOR][/FONT][FONT=Arial][COLOR=Black][SIZE=3]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/SIZE][/COLOR][/FONT]&amp;nbsp;&amp;nbsp; [COLOR=Black][I][FONT=Arial][SIZE=3]regVal[/SIZE][/FONT][FONT=Arial][SIZE=3]=[/SIZE][/FONT][FONT=Arial][SIZE=3]LPC_SYSCON[/SIZE][/FONT][FONT=Arial][SIZE=3]-&amp;gt;[/SIZE][/FONT][FONT=Arial][SIZE=3]UARTCLKDIV[/SIZE][/FONT][FONT=Arial][SIZE=3];[/SIZE][/FONT][FONT=Arial][SIZE=3]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/SIZE][/FONT][FONT=Arial][SIZE=3]Fdiv[/SIZE][/FONT][/I]&amp;nbsp;&amp;nbsp; [I][FONT=Arial][SIZE=3]=[/SIZE][/FONT][FONT=Arial][SIZE=3](([/SIZE][/FONT][FONT=Arial][SIZE=3]SystemCoreClock[/SIZE][/FONT][FONT=Arial][SIZE=3]/regVal)/[/SIZE][/FONT][FONT=Arial][SIZE=3]16[/SIZE][/FONT][FONT=Arial][SIZE=3])/baudrate[/SIZE][/FONT][/I][/COLOR][FONT=Arial][COLOR=Black][SIZE=3]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[/SIZE][/COLOR][/FONT]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [FONT=Arial][COLOR=Black][SIZE=3]I assume the calculation should be[/SIZE][/COLOR][/FONT][FONT=Arial][COLOR=Black][SIZE=3]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/SIZE][/COLOR][/FONT]&amp;nbsp;&amp;nbsp; [COLOR=Black][I][FONT=Arial][SIZE=3]Fdiv = ((UART_PCLK)/16)/baudrate[/SIZE][/FONT][/I][/COLOR][FONT=Arial][COLOR=Black][SIZE=3]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/SIZE][/COLOR][/FONT]&amp;nbsp;&amp;nbsp; [FONT=Arial][COLOR=Black][SIZE=3]So the question is how to calculate UART_PCLK.[/SIZE][/COLOR][/FONT][FONT=Arial][COLOR=Black][SIZE=3]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/SIZE][/COLOR][/FONT]&amp;nbsp;&amp;nbsp; [FONT=Arial][COLOR=Black][SIZE=3]CodeRed:[I] UART_PCLK = (SystemCoreClock/SYSAHBCLKDIV)/UARTCLKDIV[/I][/SIZE][/COLOR][/FONT][FONT=Arial][COLOR=Black][SIZE=3]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/SIZE][/COLOR][/FONT]&amp;nbsp;&amp;nbsp; [FONT=Arial][COLOR=Black][SIZE=3]Keil: [I]UART_PCLK = (SystemCoreClock/UARTCLKDIV)[/I][/SIZE][/COLOR][/FONT][FONT=Arial][COLOR=Black][SIZE=3]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[/SIZE][/COLOR][/FONT]&amp;nbsp;&amp;nbsp; [FONT=Arial][COLOR=Black][SIZE=3]As SYSAHBCLKDIV = 1 in the example, the results are the same, but this is not necessarily the case in my program.[/SIZE][/COLOR][/FONT][FONT=Arial][COLOR=Black][SIZE=3]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/SIZE][/COLOR][/FONT]&amp;nbsp;&amp;nbsp; [FONT=Arial][COLOR=Black][SIZE=3]According to the CGU block diagram (Fig 3) in the manual I thought it should be:[/SIZE][/COLOR][/FONT][FONT=Arial][COLOR=Black][SIZE=3]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/SIZE][/COLOR][/FONT]&amp;nbsp;&amp;nbsp; [COLOR=Black][I][FONT=Arial][SIZE=3]UART_PCLK = (SystemCoreClock*SYSAHBCLKDIV)/UARTCLKDIV[/SIZE][/FONT][/I][/COLOR][FONT=Arial][COLOR=Black][SIZE=3]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/SIZE][/COLOR][/FONT]&amp;nbsp;&amp;nbsp; [FONT=Arial][COLOR=Black][SIZE=3]I am using LPC1343.[/SIZE][/COLOR][/FONT]&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 16 Jun 2016 01:14:01 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-16T01:14:01Z</dc:date>
    <item>
      <title>How to calculate UART baudrate parameters</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/How-to-calculate-UART-baudrate-parameters/m-p/576675#M22865</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Terje on Thu Apr 12 00:14:35 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;[FONT=Arial][COLOR=Black][SIZE=3]Hello.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; I'm trying to understand how the example code is calculating the parameters to set the baudrate, but neither the code from CodeRed nor Keil looks correct to me (They are not the same, by the way). I hope some of you can explain it to me.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; The example code from CodeRed is as follows&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[I]#define SystemFrequency SystemCoreClock&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; regVal = LPC_SYSCON-&amp;gt;UARTCLKDIV;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Fdiv = (((SystemFrequency/LPC_SYSCON-&amp;gt;SYSAHBCLKDIV)/regVal)/16)/baudrate[/I]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; While the code from Keil is:[/SIZE][/COLOR][/FONT][FONT=Arial][COLOR=Black][SIZE=3]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/SIZE][/COLOR][/FONT]&amp;nbsp;&amp;nbsp; [COLOR=Black][I][FONT=Arial][SIZE=3]regVal[/SIZE][/FONT][FONT=Arial][SIZE=3]=[/SIZE][/FONT][FONT=Arial][SIZE=3]LPC_SYSCON[/SIZE][/FONT][FONT=Arial][SIZE=3]-&amp;gt;[/SIZE][/FONT][FONT=Arial][SIZE=3]UARTCLKDIV[/SIZE][/FONT][FONT=Arial][SIZE=3];[/SIZE][/FONT][FONT=Arial][SIZE=3]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/SIZE][/FONT][FONT=Arial][SIZE=3]Fdiv[/SIZE][/FONT][/I]&amp;nbsp;&amp;nbsp; [I][FONT=Arial][SIZE=3]=[/SIZE][/FONT][FONT=Arial][SIZE=3](([/SIZE][/FONT][FONT=Arial][SIZE=3]SystemCoreClock[/SIZE][/FONT][FONT=Arial][SIZE=3]/regVal)/[/SIZE][/FONT][FONT=Arial][SIZE=3]16[/SIZE][/FONT][FONT=Arial][SIZE=3])/baudrate[/SIZE][/FONT][/I][/COLOR][FONT=Arial][COLOR=Black][SIZE=3]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[/SIZE][/COLOR][/FONT]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [FONT=Arial][COLOR=Black][SIZE=3]I assume the calculation should be[/SIZE][/COLOR][/FONT][FONT=Arial][COLOR=Black][SIZE=3]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/SIZE][/COLOR][/FONT]&amp;nbsp;&amp;nbsp; [COLOR=Black][I][FONT=Arial][SIZE=3]Fdiv = ((UART_PCLK)/16)/baudrate[/SIZE][/FONT][/I][/COLOR][FONT=Arial][COLOR=Black][SIZE=3]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/SIZE][/COLOR][/FONT]&amp;nbsp;&amp;nbsp; [FONT=Arial][COLOR=Black][SIZE=3]So the question is how to calculate UART_PCLK.[/SIZE][/COLOR][/FONT][FONT=Arial][COLOR=Black][SIZE=3]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/SIZE][/COLOR][/FONT]&amp;nbsp;&amp;nbsp; [FONT=Arial][COLOR=Black][SIZE=3]CodeRed:[I] UART_PCLK = (SystemCoreClock/SYSAHBCLKDIV)/UARTCLKDIV[/I][/SIZE][/COLOR][/FONT][FONT=Arial][COLOR=Black][SIZE=3]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/SIZE][/COLOR][/FONT]&amp;nbsp;&amp;nbsp; [FONT=Arial][COLOR=Black][SIZE=3]Keil: [I]UART_PCLK = (SystemCoreClock/UARTCLKDIV)[/I][/SIZE][/COLOR][/FONT][FONT=Arial][COLOR=Black][SIZE=3]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[/SIZE][/COLOR][/FONT]&amp;nbsp;&amp;nbsp; [FONT=Arial][COLOR=Black][SIZE=3]As SYSAHBCLKDIV = 1 in the example, the results are the same, but this is not necessarily the case in my program.[/SIZE][/COLOR][/FONT][FONT=Arial][COLOR=Black][SIZE=3]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/SIZE][/COLOR][/FONT]&amp;nbsp;&amp;nbsp; [FONT=Arial][COLOR=Black][SIZE=3]According to the CGU block diagram (Fig 3) in the manual I thought it should be:[/SIZE][/COLOR][/FONT][FONT=Arial][COLOR=Black][SIZE=3]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/SIZE][/COLOR][/FONT]&amp;nbsp;&amp;nbsp; [COLOR=Black][I][FONT=Arial][SIZE=3]UART_PCLK = (SystemCoreClock*SYSAHBCLKDIV)/UARTCLKDIV[/SIZE][/FONT][/I][/COLOR][FONT=Arial][COLOR=Black][SIZE=3]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/SIZE][/COLOR][/FONT]&amp;nbsp;&amp;nbsp; [FONT=Arial][COLOR=Black][SIZE=3]I am using LPC1343.[/SIZE][/COLOR][/FONT]&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:14:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/How-to-calculate-UART-baudrate-parameters/m-p/576675#M22865</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:14:01Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate UART baudrate parameters</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/How-to-calculate-UART-baudrate-parameters/m-p/576676#M22866</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by atomicdog on Thu Apr 12 16:43:32 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I believe the Kiel version is correct and the Figure in the manual isn't accurate. You can use the debugger to experiment with values of SYSABLCKDIV and see if it effects the baud rate. IIRC, I tried this a while ago and it had no effect.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:14:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/How-to-calculate-UART-baudrate-parameters/m-p/576676#M22866</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:14:02Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate UART baudrate parameters</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/How-to-calculate-UART-baudrate-parameters/m-p/576677#M22867</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Terje on Mon Apr 16 02:47:53 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for your reply John.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; I will do some tests and see what happens&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:14:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/How-to-calculate-UART-baudrate-parameters/m-p/576677#M22867</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:14:03Z</dc:date>
    </item>
  </channel>
</rss>

