>Actually, the processor will be interrupted at the bit rate >using the above method, i.e. 19.2KHz. Whoops, sorry, yes it will be at least 10x the number of interrupts (for an 8 bit word) But the interrupts only need to occur while the word is actually being received, not continuously during the idle time. >Typically for a robust software UART, the bit would be sampled >multiple times (as the OP stated) which puts the interrupt >rate back up to silly levels. Well if the line is really that noisy that this is needed, then I doubt that a hardware uart will receive valid data either. There will be that much noise on the line that there will be so much uncertainty in the position of the start bit the uart will never get started. During the start bit time is the only time I can see that rigorous verification is needed. I am aware that many moons ago there were hardware uart chips that did sample on absolutely every baud rate clock pulse, but what do you really do with all this data? Any sort of majority logic is just as likely to make a wrong decision as a right decision if there is that much noise. If it is a noisy environment then maybe the transmission medium needs changing for something less affected (differential, optical etc). The logic of detecting the leading edge of the start bit, then sampling in the middle of the start bit to ensure that some vaguely possible noise pulse has not got into the system seems as viable as any other method. Then sampling in the nominal centre of each bit to collect the data received, and verify that the stop bit is correct, and produce a framing error flag if not, comes back to a simple and probably as robust a system as multiple samples each data bit. What do you do if you have some samples within the bit time different to other samples? Which are the correct samples? If the data is being used as an instruction to a device then the receiving end instruction parser should be verifying the characters are correct and report an error to the instructing device. Is this going to be any different if the software uart reports a framing error on a multiple sampled word that has different samples within a bit causing the error flag? It strikes me that whatever you do, you need a robust protocol between devices, and it is this which is going to detect the errors however they are flagged. -- http://www.piclist.com#nomail Going offline? Don't AutoReply us! email listserv@mitvma.mit.edu with SET PICList DIGEST in the body