Content originally posted in LPCWare by jdurand on Sun Oct 27 13:54:11 MST 2013
Years ago I did a lot of testing of serial ports while designing a long range wireless modem and discovered that Windows (don't remember the version at the time, NT, XP?) and a SPARC workstation both had issues where they handled the handshaking in software and would send up to a full FIFO + 1 (17 characters) AFTER receiving a request to halt.
Since moving to ARM processors I've used the auto RTS/CTS on a few products and haven't had a problem with over runs, but now I'm seeing it repeatably on an LPC1113 project. I've tested against a Windows computer and a Ubuntu Linux machine while monitoring the hardware lines with a 'scope. On both systems they stop sending between one and many (I didn't count) characters.
Anyone else seen this?
For this product I'm releasing a firmware update that disables the auto on RXD and I'll add a 32 byte software ring buffer and manual handshaking like I've done on processors that don't have FIFOs, this way I have room to capture the additional 17 characters.
I guess on other products I should go back to the ring buffer just to prevent customer problems.