Yahoo Groups archive

Lpc2000

Index last updated: 2026-04-28 23:31 UTC

Message

Re: [lpc2000] UART0 interrupts without FIFOs

2006-04-28 by Robert Adsett

At 04:47 PM 4/28/2006 -0400, Tom Walsh wrote:
>Robert Adsett wrote:
> >Quoting bacalaoencebollao <bacalaoencebollao@...>:
> >>I have a problem with my programme, i want to make my UART work, but
> >>without the FIFOs, is there anyway to get a receive interrupt when
> >>only one character has been recieved, or do I have to wait for the
> >>FIFO to be full?
> >>
> >>
> >
> >The FIFO must be turned on.
> >
> >However, you will recieve an interrupt on a single character.  It will 
> just be
> >delayed (by 1.5 character time IIRC).  That allows the buffer to fill for a
> >stream of characters but interrupt on pauses in the stream if there are
> >characters waiting in the FIFO.
> >
> >
> >
>I run interrupt driven I/O on UART0 without the FIFO turned on...  Seems
>to work fine for me on the LPC2138 and LPC2106.

It's a nasty little bug Tom, I was running w/o the FIFOs on and ran into a 
problem that I eventually 'fixed' by only reading the IIR once per 
interrupt.  Before that under an echo load the serial interrupts would 
occasionally stop.  (My test was a simple echo test and it would take 
several hours to fail at full load)  Note that these tests were on a 2106.

Jacob Oursland recently reported the bug reappearing in his code.  This 
time turning on the FIFO fixed the problem   Given that the user manual has 
a one line note stating that the FIFO must be turned on (I missed it when I 
went through it too) I suspect it's been nailed this time but I leave open 
the possibility it may re-occur.  It really stinks of an underlying HW race 
condition.

Robert

" 'Freedom' has no meaning of itself.  There are always restrictions,   be 
they legal, genetic, or physical.  If you don't believe me, try to chew a 
radio signal. "  -- Kelvin Throop, III
http://www.aeolusdevelopment.com/

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.