My ATmega328P runs from a 16 MHz crystal and talks to a module at 115200 baud. It mostly works, but I get occasional corrupted bytes that disappear at 57600. The baud rate calculator shows an error of a few percent at 115200.
How much difference between the two ends is acceptable, and why does it matter if the crystal itself is accurate?




