<?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 status and TEMT interrupt in LPCXpresso IDE</title>
    <link>https://community.nxp.com/t5/LPCXpresso-IDE/UART-status-and-TEMT-interrupt/m-p/554507#M13261</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 Jul 30 04:34:54 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Ooo that's a bad non-feature, surely there's a better work around than "poll until the last char has gone".&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 16 Jun 2016 02:04:10 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-16T02:04:10Z</dc:date>
    <item>
      <title>UART status and TEMT interrupt</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/UART-status-and-TEMT-interrupt/m-p/554497#M13251</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by rkiryanov on Tue Apr 20 06:07:18 MST 2010&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;To reduce power consumption I want to turn off UART after last bit transmission. It seems, that UART cannot generate such interrupt. How can I detect that last bit was transmitted? I can't read UxLSR because it clears interrupts.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Any idea? Thanks.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 02:04:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/UART-status-and-TEMT-interrupt/m-p/554497#M13251</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T02:04:04Z</dc:date>
    </item>
    <item>
      <title>Re: UART status and TEMT interrupt</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/UART-status-and-TEMT-interrupt/m-p/554498#M13252</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by NXP_USA on Thu Apr 22 10:04:17 MST 2010&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: rkiryanov&lt;/STRONG&gt;&lt;BR /&gt;Hello!&lt;BR /&gt;&lt;BR /&gt;To reduce power consumption I want to turn off UART after last bit transmission. It seems, that UART cannot generate such interrupt. How can I detect that last bit was transmitted? I can't read UxLSR because it clears interrupts.&lt;BR /&gt;&lt;BR /&gt;Any idea? Thanks.&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;To save power, generally the main code should always go into WFI sleep mode whever it is not actively processing data. It will wake up with any new interrupts. If polling is needed, timer match interrupts can be set to wake the part.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Probably the safest way to go into deep sleep or deep powerdown mode is for the UART interrupt routine to set a global volatile variable when a TEMT interrupt is detected. The main code could poll the flag to determine when the last character has been sent.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Another method is: When it is time to save power, the UART interrupt routine could be responsible for putting the part into deep sleep mode when TEMT was detected. This could create re-entrancy headaches because it moves a little bit more code into an interrupt routine. For example there is probably a shutdown routine that would get called before the trip into sleep mode. That routine is likely to need to access several variables that are both read and written in the main loop. This is sometimes frowned upon as a software design style.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;A time delay dependent on the baud rate and the size of the FIFO could be used.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If your application involves machine communication (instead of human interaction) then you could go to sleep after receiving an acknowledgement of your transmission through the UART from the other end.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Hope this helps!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-NXP USA Support&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 02:04:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/UART-status-and-TEMT-interrupt/m-p/554498#M13252</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T02:04:05Z</dc:date>
    </item>
    <item>
      <title>Re: UART status and TEMT interrupt</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/UART-status-and-TEMT-interrupt/m-p/554499#M13253</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by rkiryanov on Thu Apr 22 12:00:39 MST 2010&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: NXP_USA&lt;/STRONG&gt;&lt;BR /&gt;The main code could poll the flag to determine when the last character has been sent.&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Polling and WFI are not compatible.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: NXP_USA&lt;/STRONG&gt;&lt;BR /&gt;when TEMT was detected&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;There is [B]no TEMT interrupt[/B].&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: NXP_USA&lt;/STRONG&gt;&lt;BR /&gt;A time delay dependent on the baud rate and the size of the FIFO could be used.&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Too difficult and requires delays, timers... TEMT interrupt is ideal solution. Can you redesign UART?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 02:04:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/UART-status-and-TEMT-interrupt/m-p/554499#M13253</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T02:04:05Z</dc:date>
    </item>
    <item>
      <title>Re: UART status and TEMT interrupt</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/UART-status-and-TEMT-interrupt/m-p/554500#M13254</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by rkiryanov on Fri Apr 23 00:28:53 MST 2010&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Additionally, with TEMT interrupt I can use any GPIO pin or even PCA9557 to control RS-485 direction. This is very useful on low pin count MCUs.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 02:04:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/UART-status-and-TEMT-interrupt/m-p/554500#M13254</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T02:04:06Z</dc:date>
    </item>
    <item>
      <title>Re: UART status and TEMT interrupt</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/UART-status-and-TEMT-interrupt/m-p/554501#M13255</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by simonbr on Fri Apr 23 00:40:39 MST 2010&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;When the THRE interrupt occurs it takes about one character period until the last character is transmitted completely. So the THRE interrupt handler can busy-wait until the TEMT bit becomes 1, or if busy-waiting is not acceptable for even this short period, it can setup a timer to generate an interrupt after that period has elapsed.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 02:04:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/UART-status-and-TEMT-interrupt/m-p/554501#M13255</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T02:04:06Z</dc:date>
    </item>
    <item>
      <title>Re: UART status and TEMT interrupt</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/UART-status-and-TEMT-interrupt/m-p/554502#M13256</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by rkiryanov on Fri Apr 23 01:28:45 MST 2010&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: simonbr&lt;/STRONG&gt;&lt;BR /&gt;it can setup a timer to generate an interrupt after that period has elapsed.&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If program will put data to THR it should cancel timer. Also, for timer period program needs free timer, remember baudrate, symbol width-format, frequency.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 02:04:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/UART-status-and-TEMT-interrupt/m-p/554502#M13256</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T02:04:07Z</dc:date>
    </item>
    <item>
      <title>Re: UART status and TEMT interrupt</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/UART-status-and-TEMT-interrupt/m-p/554503#M13257</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by simonbr on Fri Apr 23 15:20:51 MST 2010&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: rkiryanov&lt;/STRONG&gt;&lt;BR /&gt;If program will put data to THR it should cancel timer.&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Yes.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: rkiryanov&lt;/STRONG&gt;&lt;BR /&gt;Also, for timer period program needs free timer, remember baudrate, symbol width-format, frequency.&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If you have already used up all the timers that would be a problem. Calculating the timer period from the baudrate etc. should not be difficult.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 02:04:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/UART-status-and-TEMT-interrupt/m-p/554503#M13257</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T02:04:08Z</dc:date>
    </item>
    <item>
      <title>Re: UART status and TEMT interrupt</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/UART-status-and-TEMT-interrupt/m-p/554504#M13258</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by rkiryanov on Fri Apr 23 22:29:21 MST 2010&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: simonbr&lt;/STRONG&gt;&lt;BR /&gt;Calculating the timer period from the baudrate etc. should not be difficult.&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Solution with timer looks like "first we create the problem, then heroically solve it"&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 02:04:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/UART-status-and-TEMT-interrupt/m-p/554504#M13258</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T02:04:08Z</dc:date>
    </item>
    <item>
      <title>Re: UART status and TEMT interrupt</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/UART-status-and-TEMT-interrupt/m-p/554505#M13259</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by rkiryanov on Tue Apr 27 01:04:47 MST 2010&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I have looked to UART example code:&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 UARTSend(uint8_t *BufferPtr, uint32_t Length)
{
&amp;nbsp; while ( Length != 0 )
&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Below flag is set inside the interrupt handler when THRE occurs. */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ( !(UARTTxEmpty &amp;amp; 0x01) );
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_UART-&amp;gt;THR = *BufferPtr;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UARTTxEmpty = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* not empty in the THR until it shifts out */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BufferPtr++;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Length--;
&amp;nbsp; }

&amp;nbsp; return;
}&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;compare to my code for LM3S UART:&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;bool UART0::PutImpl(uint_fast8_t const data)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; while (true)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t b;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (UART0FR &amp;amp; hw::UARTx::FR_TXFF)
&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; return false;
&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; else if (this-&amp;gt;tx_.Pop(b))
&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; UART0DR = b;
&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; else
&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; UART0DR = data;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return true;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&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;As you can see, there is no UART-feature workaround (UARTTxEmpty), program can access UART status without any affects.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 02:04:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/UART-status-and-TEMT-interrupt/m-p/554505#M13259</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T02:04:09Z</dc:date>
    </item>
    <item>
      <title>Re: UART status and TEMT interrupt</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/UART-status-and-TEMT-interrupt/m-p/554506#M13260</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by John Sinclair on Mon Jul 30 02:09:01 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have the same problem on LPC1778. Only to illustrate the crap:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I have 5 RS485 buses on my 5 UARTs. On every Uart I have to send every 50ms a telegram. Every telegram I have to stick the parity and wait in a while loop until the transmit register is empty. With baud rate of 9600 so it will take about 1ms in the loop, timers I don't have free. So in 100ms I will wait 2ms in a loop for one bus. For 5 buses I will wait in 100ms 10ms! This is 10% of the computing power I loss only because there don't exist a TEMT interrupt!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So I wish a new UART design too!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 02:04:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/UART-status-and-TEMT-interrupt/m-p/554506#M13260</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T02:04:09Z</dc:date>
    </item>
    <item>
      <title>Re: UART status and TEMT interrupt</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/UART-status-and-TEMT-interrupt/m-p/554507#M13261</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 Jul 30 04:34:54 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Ooo that's a bad non-feature, surely there's a better work around than "poll until the last char has gone".&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 02:04:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/UART-status-and-TEMT-interrupt/m-p/554507#M13261</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T02:04:10Z</dc:date>
    </item>
    <item>
      <title>Re: UART status and TEMT interrupt</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/UART-status-and-TEMT-interrupt/m-p/554508#M13262</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by John Sinclair on Mon Jul 30 06:59:00 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I have found a solution:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The Uart Fifo have a initialization conditions with a character delay in&amp;nbsp; the interrupt. So you have write only one byte in&amp;nbsp; the fifo. Through the initialization&amp;nbsp; condition the THRE interrupt will occur one byte later. In my case it works fine :-)&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 02:04:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/UART-status-and-TEMT-interrupt/m-p/554508#M13262</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T02:04:11Z</dc:date>
    </item>
    <item>
      <title>Re: UART status and TEMT interrupt</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/UART-status-and-TEMT-interrupt/m-p/554509#M13263</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 Jul 30 07:24:14 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Can you elaborate a bit and tell us what you set in what register?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 02:04:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/UART-status-and-TEMT-interrupt/m-p/554509#M13263</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T02:04:11Z</dc:date>
    </item>
    <item>
      <title>Re: UART status and TEMT interrupt</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/UART-status-and-TEMT-interrupt/m-p/554510#M13264</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by John Sinclair on Mon Jul 30 23:03:08 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;No Register. In the manual of my M3 I found following:&lt;/SPAN&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: &lt;/STRONG&gt;&lt;BR /&gt;The UARTn THRE interrupt (UnIIR[3:1] = 001) is a third level interrupt and is activated when the UARTn THR FIFO is empty provided certain initialization conditions have been met. These initialization conditions are intended to give the UARTn THR FIFO a chance to fill up with data to eliminate many THRE interrupts from occurring at system start-up. The initialization conditions implement a one character delay minus the stop bit whenever THRE = 1 and there have not been at least two characters in the UnTHR at one time since the last THRE = 1 event. This delay is provided to give the CPU time to write data to UnTHR without a THRE interrupt to decode and service. A THRE interrupt is set immediately if the UARTn THR FIFO has held two or more characters at one time and currently, the UnTHR is empty. The THRE interrupt is reset when a UnTHR write occurs or a read of the UnIIR occurs and the THRE is the highest interrupt (UnIIR[3:1] = 001).&lt;/SPAN&gt;&lt;HR /&gt;&lt;SPAN&gt;I think there implement always the same UART IP in the M0 also.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;So you have only write one byte in the fifo and the THRE interrupt will occur after this byte was sent.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 02:04:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/UART-status-and-TEMT-interrupt/m-p/554510#M13264</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T02:04:12Z</dc:date>
    </item>
    <item>
      <title>Re: UART status and TEMT interrupt</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/UART-status-and-TEMT-interrupt/m-p/554511#M13265</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 Tue Jul 31 01:34:33 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Yes I read that, the M0 is the same. I've read it about 5 times now and it makes my brain hurt. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;It seems that it will work if you only have a single byte in the FIFO but most transmissions are for more than 1 byte and if you have to wait for the FIFO to empty then put one byte in you're back to square one.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'll go back to the data sheet and try to make sense of that paragraph.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 02:04:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/UART-status-and-TEMT-interrupt/m-p/554511#M13265</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T02:04:12Z</dc:date>
    </item>
    <item>
      <title>Re: UART status and TEMT interrupt</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/UART-status-and-TEMT-interrupt/m-p/554512#M13266</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by John Sinclair on Tue Jul 31 02:31:01 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;You have only write this byte if you want an TEMT interrupt alone when the FIFO was empty. For example you want send 13 bytes and want the TEMT int on 13th byte:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[LIST]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[*]so you write first 12 bytes in fifo&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[*]you get an fifo empty interrupt there you write the 13th byte&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[*]the next interrupt will occur if the 13th byte was sent (fifo and transmit register are empty)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/LIST]&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 02:04:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/UART-status-and-TEMT-interrupt/m-p/554512#M13266</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T02:04:13Z</dc:date>
    </item>
    <item>
      <title>Re: UART status and TEMT interrupt</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/UART-status-and-TEMT-interrupt/m-p/554513#M13267</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 06 01:55:15 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Are you happy this technique is working? It's certainly non-intuitive and a stupid design.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 02:04:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/UART-status-and-TEMT-interrupt/m-p/554513#M13267</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T02:04:13Z</dc:date>
    </item>
    <item>
      <title>Re: UART status and TEMT interrupt</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/UART-status-and-TEMT-interrupt/m-p/554514#M13268</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 Tue Dec 11 17:34:32 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;OK, I just got back onto this and am happy to report that it works. I've documented the problem and process as I see it here&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://"&gt;http://ardweenet.blogspot.com.au/2012/12/nxp-wtf.html&lt;/A&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 02:04:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/UART-status-and-TEMT-interrupt/m-p/554514#M13268</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T02:04:14Z</dc:date>
    </item>
  </channel>
</rss>

