Of course this depends on the quality of your signal. This thread has got me to thinking, and coding, and I am pretty sure I've come up with a way to get 4 in and 4 out at 31250buad on a PIC18CXX2 at 10 MIPS. The trick involves accumulating input samples on each channel and processing them 5 at a time instead of one-by-one. This idea was inspired by byte-at-a-time CRC algorithms. Basically you end up with a monster state machine, about 70 states, with 32 (ie: 2^5) possible inputs for each state. The state machine is then stored as one whopping big (about 8K) table. But hey, what's 8K when you've got 32K on chip? :-) Bob Ammerman RAm Systems (high function, high performance, low level software). ----- Original Message ----- From: Alan B Pearce To: Sent: Sunday, May 28, 2000 7:04 AM Subject: Re: [PIC]: [EE]: Microcontroller with 4 USARTs > >Unfortunately, to receive you need to run your interrupt handler somewhat > >faster than the bit time. I have successfully built a software UART using a > >interrupt 6x of the bit rate. I expect 5x would work pretty well. > > You get away with 4 samples per bit time if you are not doing it synchronous to > the bit edges. Many years ago before high speed async modems were commonly > available we used to send async data through synchronous modems, and could do it > with no errors if the async baud rate was a quarter of the sync modem rate.