How do you handle clock domain crossing and synchronization when interfacing a high-speed microcontroller with a slower external peripheral?