I can't find it now but there is a good explanation of how error in frequency causes trouble. I don't want to bring this up from memory. Can someone find a paper on error for baud rate frequency.
EDIT-------------
From a data sheet
"What is a small enough error? In general, a frequency error of 0.8% or less should be no cause for concern. However, a frequency error of 2.0% or higher should be looked at carefully. Errors between 0.8% and 2.0% involve some judgment."
Edit------------
From MicroChip Forum
"In this attached application note (UART CRYSTAL OSCILLATOR DESIGN GUIDE) please see section 9 -- Required Clock Accuracy (on page 10).
Luckily with PIC's, there are only two character lengths (which includes the start bit, data bits, parity bit if applicable, and the stop bit) to be concerned with: 10 bits or 11 bits.
If your UART setup is 8N1, the formula yields: +/- 5.26 % (character length is 10 bits)
If your UART setup is 8O1, 8E1, or 9N1 the formula yields: +/- 4.76 % (character length is 11 bits)
If UART "A" does not physically share the same baud rate clock as your UART "B" (which is often the case) you might want to consider dividing this maximum allowable deviation percentage by two to be ultra-conservative and safe (in case the UART "A" is at one extreme of the error range and UART "B" is at the other extreme of the error range). In other words, if your UARTs "A" and "B" are set up as 8N1 (total character length = 10 bits), and given the formula in the application note, select the clock such that the maximum baud rate deviation from ideal is: +/- ( 5.26 / 2 ) which is +/- 2.63 %.
Please also note that this (dividing the total error budget equally among UART "A" and UART "B") is being extremely safe and conservative -- especially if the other UART that the PIC is connected to is on a PC (personal computer). It has been my experience that most UARTs in PC's and on serial port add-in cards use a crystal or clock oscillator frequency such that the "standard" baud rates are "spot on" for all practical purposes (0 % error in theory). But in reality, these crystal or clock oscillator frequencies will obviously not have 0% error over temperature and operating voltage, but rather might be typically in the 50 PPM to 300 PPM range -- which is obviously far, far, less than +/- 2.63 %.
So what does this really mean? Well, if your UARTs are using 8N1 and one of the UARTs is in a PC, you most likely would not have to divide the maximum baud rate deviance in percentage (in this specific example +/- 5.26 %) by two. So instead of limiting the baud rate deviances of the PIC's UART to half of +/- 5.26 % and the PC's UART to half of +/- 5.26 %, you could limit the baud rate deviance of the PIC's UART to say, +/- 4.26 %, and the PC's UART to +/- 1.26 %. This shifting of the error budget more on the PIC side assumes that you have chosen a PIC Fosc that does not produce a "spot on" baud rate.
This is just a hypothetical example of spreading the error between the PIC and the PC, but ultimately it is up to you to make the calculations and the final decisions. I hope this all makes sense.
Best regards,
Ken Pergola