<?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 auto-flow control and doc error in LPCXpresso IDE</title>
    <link>https://community.nxp.com/t5/LPCXpresso-IDE/UART-auto-flow-control-and-doc-error/m-p/584494#M26293</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by vineetrvce on Fri Jan 20 01:51:17 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Even I am trying so get the handshake working with UART but no luck. I have the same problem as yours under the thread "UART Handshaking with RTS/CTS" in this forum.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Do post if you find a solution.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Vineet.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 16 Jun 2016 00:10:02 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-16T00:10:02Z</dc:date>
    <item>
      <title>UART auto-flow control and doc error</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/UART-auto-flow-control-and-doc-error/m-p/584493#M26292</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 Mon Jan 16 20:35:03 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I am trying to get the auto-flow control working with the UART on a LPC1114/301.&amp;nbsp;&amp;nbsp; I am working with auto-RTS first.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;When I disable flow control the UART works OK with both Tx and Rx.&amp;nbsp;&amp;nbsp; So that is not a problem.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;When I initialize the modem lines with this code;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f]// Setup handshake lines.[/COLOR][/SIZE][/COLOR][/SIZE]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[SIZE=2]&amp;nbsp; LPC_IOCON-&amp;gt;[/SIZE]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]PIO0_7[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] &amp;amp;= ~0x07;&amp;nbsp;&amp;nbsp;&amp;nbsp; [/SIZE][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f]/* UART I/O [U]config[/U] */[/COLOR][/SIZE][/COLOR][/SIZE]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[SIZE=2]&amp;nbsp; LPC_IOCON-&amp;gt;[/SIZE]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]PIO0_7[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] |= 0x01;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [/SIZE][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f]/* UART CTS */[/COLOR][/SIZE][/COLOR][/SIZE]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[SIZE=2]&amp;nbsp; LPC_IOCON-&amp;gt;[/SIZE]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]PIO1_5[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] &amp;amp;= ~0x07;&amp;nbsp;&amp;nbsp;&amp;nbsp; [/SIZE][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f]/* UART I/O [U]config[/U] */[/COLOR][/SIZE][/COLOR][/SIZE]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[SIZE=2]&amp;nbsp; LPC_IOCON-&amp;gt;[/SIZE]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]PIO1_5[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] |= 0x01;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [/SIZE][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f]/* UART RTS */[/COLOR][/SIZE][/COLOR][/SIZE]&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;[SIZE=2][SIZE=2]&amp;nbsp; LPC_UART-&amp;gt;[/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]MCR[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] = BIT_6;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [/SIZE][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f]/* Set auto RTS active. */[/COLOR][/SIZE][/COLOR][/SIZE][/SIZE]&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;the RTS line will be active (observed with a scope).&amp;nbsp;&amp;nbsp; Everything looks good.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Then I run.&amp;nbsp;&amp;nbsp; I will take a bunch of interrupts with the IIR returning RLS (Receive Line Status).&amp;nbsp;&amp;nbsp; The LSR register will be 0xF9 indicating framing error.&amp;nbsp;&amp;nbsp; This will repeat many times until the RTS pin will go low, it was perviously high.&amp;nbsp;&amp;nbsp; Reseting the FIFO does not prevent this.&amp;nbsp;&amp;nbsp; There is no data being sent into the Rx input, this is all during initialization.&amp;nbsp;&amp;nbsp; This seems OK so far?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;After the RTS pin goes low, strangely the Rx pin will also go low.&amp;nbsp;&amp;nbsp; The Rx pin is being driven by the LPC1114 chip not my ASYNC device.&amp;nbsp;&amp;nbsp; This is very weird because the Rx pin is an input not an output.&amp;nbsp;&amp;nbsp; I have looked at the UART configuration registers and they look OK.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Why would the Rx line be driven low by the LPC1114?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Has anyone had success with auto-flow control?&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I have not yet tried auto-CTS so I don't know if that works.&amp;nbsp;&amp;nbsp; The example code provides a modem setup which is what I am using.&amp;nbsp;&amp;nbsp; I am using the interrupt handler from the example.&amp;nbsp;&amp;nbsp; The example works OK until you try auto-flow control.&amp;nbsp;&amp;nbsp; The example includes the modem setup code but does not use it.&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; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;There is a bug in LPCXpresso.&amp;nbsp;&amp;nbsp; The register definition for the MCR register in the UART has a bit defined wrong.&amp;nbsp;&amp;nbsp; The RTS_Control bit is listed as bit 2 where the manual says it is bit 1.&amp;nbsp;&amp;nbsp; The manual is correct.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks,&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 00:10:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/UART-auto-flow-control-and-doc-error/m-p/584493#M26292</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T00:10:01Z</dc:date>
    </item>
    <item>
      <title>Re: UART auto-flow control and doc error</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/UART-auto-flow-control-and-doc-error/m-p/584494#M26293</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by vineetrvce on Fri Jan 20 01:51:17 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Even I am trying so get the handshake working with UART but no luck. I have the same problem as yours under the thread "UART Handshaking with RTS/CTS" in this forum.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Do post if you find a solution.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Vineet.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 00:10:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/UART-auto-flow-control-and-doc-error/m-p/584494#M26293</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T00:10:02Z</dc:date>
    </item>
    <item>
      <title>Re: UART auto-flow control and doc error</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/UART-auto-flow-control-and-doc-error/m-p/584495#M26294</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 Sat Jan 21 07:23:45 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I did finally get it to work OK.&amp;nbsp;&amp;nbsp; One problem I had was a solder short on two pins.&amp;nbsp;&amp;nbsp; After fixing that and some further fiddling it now works.&amp;nbsp;&amp;nbsp; I am only using auto-RTS, I am ignoring CTS.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I have tested this with a scope watching the RxD and RTS lines and it works as expected.&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I tried using auto-CTS and it seems to work but I don't have a suitable ASYNC target to test it.&amp;nbsp;&amp;nbsp; Windows as a target does not give the control that I wanted.&amp;nbsp;&amp;nbsp; I did not want to use CTS for my application anyway.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Hope this helps,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Pete.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is my entire init routine;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &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;
void UARTInit(uint32_t baudrate)
{
&amp;nbsp; uint32_t Fdiv;
&amp;nbsp; uint32_t regVal, RbrVal;

 
&amp;nbsp; NVIC_DisableIRQ(UART_IRQn);

&amp;nbsp; // Setup the serial data lines.
&amp;nbsp; LPC_IOCON-&amp;gt;PIO1_6 &amp;amp;= ~0x07;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART I/O config */
&amp;nbsp; LPC_IOCON-&amp;gt;PIO1_6 |= 0x01;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART RXD */
&amp;nbsp; LPC_IOCON-&amp;gt;PIO1_7 &amp;amp;= ~0x07;
&amp;nbsp; LPC_IOCON-&amp;gt;PIO1_7 |= 0x01;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART TXD */

&amp;nbsp; // Setup handshake lines.
&amp;nbsp; LPC_IOCON-&amp;gt;PIO0_7 &amp;amp;= ~0x07;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART I/O config */
&amp;nbsp; LPC_IOCON-&amp;gt;PIO0_7 |= 0x01;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART CTS */
&amp;nbsp; LPC_IOCON-&amp;gt;PIO1_5 &amp;amp;= ~0x07;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART I/O config */
&amp;nbsp; LPC_IOCON-&amp;gt;PIO1_5 |= 0x01;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART RTS */

&amp;nbsp; /*
&amp;nbsp;&amp;nbsp; * Enable UART clock
&amp;nbsp;&amp;nbsp; *&amp;nbsp; From the manual;
&amp;nbsp;&amp;nbsp; *&amp;nbsp; Note that for parts LPC111x/101/201/301, the UART pins must be
&amp;nbsp;&amp;nbsp; *&amp;nbsp; configured before the UART clock can be enabled. No enabling
&amp;nbsp;&amp;nbsp; *&amp;nbsp; sequence requirement exists for parts LPC11Cxx and parts
&amp;nbsp;&amp;nbsp; *&amp;nbsp; LPC111x/102/202/302 and LPC11D14.
&amp;nbsp; */
&amp;nbsp; LPC_SYSCON-&amp;gt;SYSAHBCLKCTRL |= (1&amp;lt;&amp;lt;12);
&amp;nbsp; LPC_SYSCON-&amp;gt;UARTCLKDIV = 0x1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* divided by 1 */

&amp;nbsp; LPC_UART-&amp;gt;LCR = 0x83;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 8 bits, no Parity, 1 Stop bit */

&amp;nbsp; // Calculate the BAUD rate.
&amp;nbsp; regVal = LPC_SYSCON-&amp;gt;UARTCLKDIV;
&amp;nbsp; Fdiv = (((SystemCoreClock/LPC_SYSCON-&amp;gt;SYSAHBCLKDIV)/regVal)/16)/baudrate ;/* baud rate */

&amp;nbsp; LPC_UART-&amp;gt;DLM = Fdiv / 256;
&amp;nbsp; LPC_UART-&amp;gt;DLL = Fdiv % 256;
&amp;nbsp; LPC_UART-&amp;gt;LCR = 0x03;/* DLAB = 0 */
&amp;nbsp; LPC_UART-&amp;gt;FCR = 0x07;/* Enable and reset TX and RX FIFO. */
//&amp;nbsp; LPC_UART-&amp;gt;MCR = 0xC0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enable Auto RTS and Auto CTS. */
&amp;nbsp; LPC_UART-&amp;gt;MCR = 0x40;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enable Auto RTS. */

&amp;nbsp;&amp;nbsp; /* Read to clear the line status. */
&amp;nbsp; regVal = LPC_UART-&amp;gt;LSR;

&amp;nbsp; /* Ensure a clean start, no data in either TX or RX FIFO. */
&amp;nbsp; while ( ((regVal = LPC_UART-&amp;gt;LSR) &amp;amp; (LSR_THRE|LSR_TEMT)) != (LSR_THRE|LSR_TEMT) );
&amp;nbsp; while ( (regVal = LPC_UART-&amp;gt;LSR) &amp;amp; LSR_RDR )
&amp;nbsp; {
RbrVal = LPC_UART-&amp;gt;RBR;/* Dump data from RX FIFO */
&amp;nbsp; }

&amp;nbsp; /* Enable the UART Interrupt in the interrupt controller. */
&amp;nbsp; NVIC_EnableIRQ(UART_IRQn);

&amp;nbsp; // Enable the actual interrupts from the UART.
&amp;nbsp; LPC_UART-&amp;gt;IER = IER_RBR | IER_RLS;/* Enable UART interrupt */

&amp;nbsp; return;
}

&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 00:10:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/UART-auto-flow-control-and-doc-error/m-p/584495#M26294</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T00:10:02Z</dc:date>
    </item>
  </channel>
</rss>

