What you see is natural behaviour of UART with FIFO. It is not related to MODBUS protocol. Obviously your RX FIFO level is more than 1 character. So, if the UART receives exactly the same no of chars determined by the RX FIFO setting, you would receive RDA interrupt. But what if the frame length is not multiple of RX FIFO level. In this case very last bytes of the incoming message will not fill the RX FIFO and you would never receive a RDA interrupt. Instead, the UART, in order to notify you that there are remaining bytes available in the RX FIFO, after receiving the last byte, waits sometime and generates a CTI interrupt. So what you need to do is to process this interrupt just like the RDA interrupt. Or if you dont want this behaviour, just set the FIFO level to 1. Kerem ----- Original Message ----- From: "swetha_araga" <swetha_araga@...> To: <lpc2000@yahoogroups.com> Sent: Wednesday, February 08, 2006 2:56 AM Subject: [lpc2000] UART CTI ( Character time out indicator) Interrupt > Hi, > I am using MODBUS serial communication through UART on LPC2138. My > transmission works fine, but for some reason during reception, I never > seem to get the RDA interrupt and always get the CTI instead. I have > enabled only the RBR interrupt and disabled the THRE and RX line > status interrupts. > > Anyone has faced any similar problems? Suggestions and tips are welcome > > Thanks, > Swetha > > > > > > > > Yahoo! Groups Links > > > > > >
Message
Re: [lpc2000] UART CTI ( Character time out indicator) Interrupt
2006-02-08 by Kerem Or
Attachments
- No local attachments were found for this message.