UART at 3 Mbps throws framing errors under load, but the scope shows clean edges. Clock accuracy, sampling, or interrupt latency - which culprit did you find in your case?