Yahoo Groups archive

Lpc2000

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

Message

Re: [lpc2000] Uart receive timeout Interrupt?

2005-11-09 by Sten

Peter Homann wrote:
> Hi,
> 
> I am migrating a serial communications interface (Modbus) to a LPC2138 
> processor. The Modbus spec defines that an end of message has occurred 
> when a period equal to 3.5 characters has passed since the last 
> character has been received.
> 
> The LPC uart can generate an interrupt if the receive buffer has 
> characters in it and no character has been received for a period of 3.5 
> - 4.5 characters.
> 
> I would like to use this feature for detecting the end of a received 
> message. The problem I have is that if I service an interrupt due the 
> the buffer being filled, and it also happens that that last character in 
> the buffer was the last character for the received message, the receive 
> time-out interrupt will not occur, resulting in the end of message not 
> being detected.
> 
> Is there a solution, other than using a buffer length of 1 and using a 
> timer to measure the inter message gap?
> 
> Cheers,
> 
> Peter.
> 

Hello Peter,

this interrupt was not designed for your needs. It should prevent a
communication from being stalled if some characters are trapped in queue
which is not full.
Just an idea: every time you receive a character reset a timer. If a
timer interrupt occure prior a line idle interrupt, you have not
received any characters for a certain time. It's ugly but should solve
your problem.

  Sten

-- 
/************************************************
 Do you need a tiny and efficient real time
 operating system (RTOS) with a preemtive
 multitasking for LPC2000 or AT91SAM7?

   http://nanortos.net-attack.de/

 Or some open-source tools and code for LPC2000?

   http://www.net-attack.de/

************************************************/

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.