<?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: uart RBR register in LPCXpresso IDE</title>
    <link>https://community.nxp.com/t5/LPCXpresso-IDE/uart-RBR-register/m-p/544490#M8733</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by CroesJeroen on Mon Aug 13 04:43:50 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi guys,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;got it, it should be :&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define DLAB(1&amp;lt;&amp;lt;7) // divisor latch enable&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;and not :&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#define DLAB1&amp;lt;&amp;lt;7 // divisor latch enable&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_UART0-&amp;gt;LCR&amp;amp;= ~DLAB; // Disable divisors to enable interrupts&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;would reset all bits. 5 bit was enabled&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;thanks for the support&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 16 Jun 2016 01:50:05 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-16T01:50:05Z</dc:date>
    <item>
      <title>uart RBR register</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/uart-RBR-register/m-p/544483#M8726</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by CroesJeroen on Thu Aug 09 11:42:59 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello guys,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;this is my first post on the forum!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm facing an issue with the uart peripheral. I want to send data from my C# program to the LPC1227. I can measure the chars on the RXD pin of the ÂµC and it is correct (also the baudrate, also for sending from ÂµC). &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;When I debug and have a look at the char that has been received, I never get the correct value. When I send a 1, RBR is 0x11, a 2-&amp;gt; RBR=0x12, a 8 -&amp;gt; RBR=0x18. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;When I look at the value on RXD pin, when I would send a 1, it's 0x31. This is valid for ascii ( 0x32 for a 2, and so on). &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Someone has an idea why I don't get the correct value in the RBR register. Once again the baudrate is set correctly in putty/teraterm and in the LPC (measured it by sending a char from the LPC to the PC). &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This is the code I'm using : &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
void SetUART(void){
//PCLK=12MHz, BR = 115200bps
LPC_SYSCON-&amp;gt;SYSAHBCLKCTRL|=UART0_Clock;
LPC_SYSCON-&amp;gt;SYSAHBCLKCTRL|=GPIO2_Clock;
LPC_SYSCON-&amp;gt;UART0CLKDIV|=1; // Divide by 1 when not initialised = 0, disabled

LPC_UART0-&amp;gt;LCR = 0x83; /* 8 bits, no Parity, 1 Stop bit */
LPC_UART0-&amp;gt;LCR|=DLAB; // enable divisor latch to access the divisors
LPC_UART0-&amp;gt;FDR=0x85; //Fractional Divider Register
LPC_UART0-&amp;gt;DLM=0; // Divisor Latch MSB
LPC_UART0-&amp;gt;DLL=4; //Divisor Latch LSB

LPC_IOCON-&amp;gt;PIO2_1|=0x4;// RXD0
LPC_IOCON-&amp;gt;PIO2_2|=0x4;// TXD0

LPC_UART0-&amp;gt;LCR&amp;amp;= ~DLAB; // Disable divisors to enable interrupts
LPC_UART0-&amp;gt;IER = IER_RBR ;/*Receive Data Available interrupt */

NVIC_EnableIRQ(UART0_IRQn);


}

void UART0_IRQHandler(void)
{
GPIOSetValue( PORT0, 4, 1 ); // set high
uint32_t dummy = LPC_UART0-&amp;gt;RBR; // clear interrupt flag
}
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So I read Dummy when debugging and it doesn't display the right value. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I would be thrilled if someone could help me out on this one!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Kind regards&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:50:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/uart-RBR-register/m-p/544483#M8726</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:50:00Z</dc:date>
    </item>
    <item>
      <title>Re: uart RBR register</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/uart-RBR-register/m-p/544484#M8727</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by graynomad on Fri Aug 10 15:59:25 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Are you saying that you have 3 different values?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Send 0x01&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;measure 0x31 at the pin (what with?)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;read 0x11 from RDR&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The 0x31 sounds like your C# program is not sending binary, I'd look at that code. But the 0x11 doesn't make sense. Even if your baud rate was off I doubt you'd get a consistent ORing of 0x10 like that.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:50:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/uart-RBR-register/m-p/544484#M8727</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:50:01Z</dc:date>
    </item>
    <item>
      <title>Re: uart RBR register</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/uart-RBR-register/m-p/544485#M8728</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by CroesJeroen on Fri Aug 10 17:04:33 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello graynomad,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;to make it even more clear, I used teraterm. I typed in a 5, saw 0x35 on the oscilloscope and get 0x15 in RBR. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Type a 2, osci=0x32,RBR=0x12.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Type a 9, osci=0x39,RBR=0x19.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thats indeed what you are asking, and I confirm. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Indeed it's like ORing with 0x10. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If I type in some chars like a,b,c, or d, the RBR register doesnt make sense, getting values like 0x01, 0x05 and stuff like that. Just values that do not correspondent with the normal ascii values I should get.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'll try to attach it once again to the scope monday and have a look once again.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Kind regards&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:50:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/uart-RBR-register/m-p/544485#M8728</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:50:02Z</dc:date>
    </item>
    <item>
      <title>Re: uart RBR register</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/uart-RBR-register/m-p/544486#M8729</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by ToBeFrank on Fri Aug 10 21:21:45 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;This is what the user manual says (the emphasis is actually in the manual):&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: &lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;Remark&lt;/STRONG&gt;: The UART0 pins must be configured in the corresponding IOCON registers &lt;STRONG&gt;before&lt;/STRONG&gt; the UART0 clocks are enabled.&lt;/SPAN&gt;&lt;HR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:50:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/uart-RBR-register/m-p/544486#M8729</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:50:03Z</dc:date>
    </item>
    <item>
      <title>Re: uart RBR register</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/uart-RBR-register/m-p/544487#M8730</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by CroesJeroen on Sat Aug 11 05:31:47 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi ToBeFrank,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;thanks for the respons. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I oversaw that remark! But you really thinks thats why the data in RBR is faulty?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Kind regards&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:50:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/uart-RBR-register/m-p/544487#M8730</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:50:03Z</dc:date>
    </item>
    <item>
      <title>Re: uart RBR register</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/uart-RBR-register/m-p/544488#M8731</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by gbm on Sat Aug 11 11:17:36 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I would rather suspect wrong divisor value. The effect you observe looks like receiver clock being slower than transmitter.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:50:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/uart-RBR-register/m-p/544488#M8731</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:50:04Z</dc:date>
    </item>
    <item>
      <title>Re: uart RBR register</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/uart-RBR-register/m-p/544489#M8732</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by CroesJeroen on Sat Aug 11 12:02:49 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: gbm&lt;/STRONG&gt;&lt;BR /&gt;I would rather suspect wrong divisor value. The effect you observe looks like receiver clock being slower than transmitter.&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;thats strange because I set teraterm to 115200 bps and there is a example in the datasheet for 12MHz en 115200 bps ( my specs), I used the same values. Also is the time of a bit correctly.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;kind regards&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:50:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/uart-RBR-register/m-p/544489#M8732</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:50:04Z</dc:date>
    </item>
    <item>
      <title>Re: uart RBR register</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/uart-RBR-register/m-p/544490#M8733</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by CroesJeroen on Mon Aug 13 04:43:50 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi guys,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;got it, it should be :&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define DLAB(1&amp;lt;&amp;lt;7) // divisor latch enable&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;and not :&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#define DLAB1&amp;lt;&amp;lt;7 // divisor latch enable&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_UART0-&amp;gt;LCR&amp;amp;= ~DLAB; // Disable divisors to enable interrupts&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;would reset all bits. 5 bit was enabled&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;thanks for the support&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:50:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/uart-RBR-register/m-p/544490#M8733</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:50:05Z</dc:date>
    </item>
    <item>
      <title>Re: uart RBR register</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/uart-RBR-register/m-p/544491#M8734</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by graynomad on Mon Aug 13 05:01:48 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Ah yes, operator precedence in a macro, that's an old gotcha. In this case ~ has precedence over &amp;lt;&amp;lt; so your code was effectively &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_UART0-&amp;gt;LCR&amp;amp;= (~1) &amp;lt;&amp;lt; 7&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The moral of the story is to always force precedence by placing ()s appropriately even if you think they aren't needed. And always around compound statements in a macro.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:50:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/uart-RBR-register/m-p/544491#M8734</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:50:06Z</dc:date>
    </item>
  </channel>
</rss>

