<?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>topic Re: LPCXPRESSO LPC1769 UART baudrate in LPCXpresso IDE</title>
    <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPCXPRESSO-LPC1769-UART-baudrate/m-p/593352#M30413</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Superfred on Mon Nov 03 07:45:39 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello Zahoq,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;DLL=78 DLM = 0 looks OK and gives an relative error of 0.16% which should work.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;See 17xx User Manual Chapter 14.4.12.1 for more details.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;There you also can find a more complex algorithm for Baudrate calculation, but I never had problems with the above simpler algorithm (at 100MHZ).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Fred&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 21:31:00 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T21:31:00Z</dc:date>
    <item>
      <title>LPCXPRESSO LPC1769 UART baudrate</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPCXPRESSO-LPC1769-UART-baudrate/m-p/593350#M30411</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Zahoq on Sun Nov 02 04:17:06 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello everyone!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm atempting to create own library with UART functions but i have problems with calculating baudrate. I found very useful example made by Superfred:&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;else if ( PortNum == 3 )
&amp;nbsp; {
&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL0 &amp;amp;= ~0x0000000F;
&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL0 |=&amp;nbsp; 0x0000000A;&amp;nbsp; /* RxD3 is P0.1 and TxD3 is P0.0 */
&amp;nbsp; LPC_SC-&amp;gt;PCONP |= 1&amp;lt;&amp;lt;4 | 1&amp;lt;&amp;lt;25; //Enable PCUART1
&amp;nbsp; /* By default, the PCLKSELx value is zero, thus, the PCLK for
all the peripherals is 1/4 of the SystemFrequency. */
&amp;nbsp; /* Bit 6~7 is for UART3 */
&amp;nbsp; pclkdiv = (LPC_SC-&amp;gt;PCLKSEL1 &amp;gt;&amp;gt; 18) &amp;amp; 0x03;
&amp;nbsp; switch ( pclkdiv )
&amp;nbsp; {
&amp;nbsp; case 0x00:
&amp;nbsp; default:
&amp;nbsp; pclk = SystemCoreClock/4;
&amp;nbsp; break;
&amp;nbsp; case 0x01:
&amp;nbsp; pclk = SystemCoreClock;
&amp;nbsp; break;
&amp;nbsp; case 0x02:
&amp;nbsp; pclk = SystemCoreClock/2;
&amp;nbsp; break;
&amp;nbsp; case 0x03:
&amp;nbsp; pclk = SystemCoreClock/8;
&amp;nbsp; break;
&amp;nbsp; }
&amp;nbsp; LPC_UART3-&amp;gt;LCR = 0x83;/* 8 bits, no Parity, 1 Stop bit */
&amp;nbsp; Fdiv = ( pclk / 16 ) / baudrate ;/*baud rate */
&amp;nbsp; LPC_UART3-&amp;gt;DLM = Fdiv / 256;
&amp;nbsp; LPC_UART3-&amp;gt;DLL = Fdiv % 256;
&amp;nbsp; LPC_UART3-&amp;gt;LCR = 0x03;/* DLAB = 0 */
&amp;nbsp; LPC_UART3-&amp;gt;FCR = 0x07;/* Enable and reset TX and RX FIFO. */

&amp;nbsp; NVIC_EnableIRQ(UART3_IRQn);

&amp;nbsp; LPC_UART3-&amp;gt;IER = IER_RBR | IER_THRE | IER_RLS;/* Enable UART3 interrupt */
&amp;nbsp; }&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Example above is for initiating UART3, i don't understand how DLL and DLM is calculated. For example PCLK is 12MHz and desired baudrate is 9600. so Fdiv=78,125, DLM then should be &amp;lt; 1 and DLL = 0?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If i get Fdiv 78.125 can i round it to 78 and asign to DLL so my final calculation will look like BR = PCLK/(16 * 78) with DLL=78 DLM = 0?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 21:30:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPCXPRESSO-LPC1769-UART-baudrate/m-p/593350#M30411</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T21:30:58Z</dc:date>
    </item>
    <item>
      <title>Re: LPCXPRESSO LPC1769 UART baudrate</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPCXPRESSO-LPC1769-UART-baudrate/m-p/593351#M30412</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by cfb on Mon Nov 03 04:16:31 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;The formulae are:&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;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; clock&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; baudrate =&amp;nbsp;&amp;nbsp; -------&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; divisor&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; freq * mulVal
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; clock =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -------------------------
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 16 * (mulVal + divAddVal)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; divisor = DLM &amp;lt;&amp;lt; 8 + DLL
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;SPAN&gt;Constraints:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 &amp;lt;= divAddVal &amp;lt;= 15
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; divAddVal &amp;lt; mulVal
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 &amp;lt;= mulVal &amp;lt;= 15
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; divisor &amp;gt; 2
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;SPAN&gt;For your example the result with the lowest error code is:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;PCLK: 12MHz&amp;nbsp; Baud:&amp;nbsp;&amp;nbsp; 9600&amp;nbsp; DLM: 0&amp;nbsp; DLL:&amp;nbsp; 71&amp;nbsp; mulVal: 10&amp;nbsp; divAddVal:&amp;nbsp; 1&amp;nbsp; Err: 3&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This result was obtained by running the example Oberon program called CalcBaudRate that we supply with the Astrobe development system. A screenshot showing the output from the program with a range of clock speeds and baud rates can be seen here:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.astrobe.com%2FM3Examples%2FReadMe.htm" rel="nofollow noopener noreferrer" target="_blank"&gt;http://www.astrobe.com/M3Examples/ReadMe.htm&lt;/A&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 21:30:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPCXPRESSO-LPC1769-UART-baudrate/m-p/593351#M30412</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T21:30:59Z</dc:date>
    </item>
    <item>
      <title>Re: LPCXPRESSO LPC1769 UART baudrate</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPCXPRESSO-LPC1769-UART-baudrate/m-p/593352#M30413</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Superfred on Mon Nov 03 07:45:39 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello Zahoq,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;DLL=78 DLM = 0 looks OK and gives an relative error of 0.16% which should work.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;See 17xx User Manual Chapter 14.4.12.1 for more details.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;There you also can find a more complex algorithm for Baudrate calculation, but I never had problems with the above simpler algorithm (at 100MHZ).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Fred&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 21:31:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPCXPRESSO-LPC1769-UART-baudrate/m-p/593352#M30413</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T21:31:00Z</dc:date>
    </item>
    <item>
      <title>Re: LPCXPRESSO LPC1769 UART baudrate</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPCXPRESSO-LPC1769-UART-baudrate/m-p/593353#M30414</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Zahoq on Mon Nov 03 16:29:39 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you for all your answers, now that's clear to me.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 21:31:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPCXPRESSO-LPC1769-UART-baudrate/m-p/593353#M30414</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T21:31:01Z</dc:date>
    </item>
  </channel>
</rss>

