I've made multiple microcontroller circuits in the past, but now when I look at everything, drift has become a problem. I know this when I try to connect two micros together serially via wireless modules. I also know drift is an issue because communication is only perfect when the programs in both microcontrollers run at the correct time.
So now what I am trying to come up with is a way to adjust time on one board so that it can synchronize with any board of my choice.
Based on this circuit, what I'd like to happen is for the 8051 microcontroller to load a value into P1 to define the drift offset, then set that value by bringing P3.5 low. This will then give a resistance value which is fed into the 555 timer to alter its timing (hopefully) which in turn alters the timing of the microcontroller itself.
The problem with this setup is that when I use the serial port, I need to run at a rate in which standard baud rates above 19K can be used. In my previous designs, I used a 22.1184Mhz crystal with 33pF 5% NPO capacitors but that didn't help with timing for syncing multiple boards. I don't think the 555 has the ability to be stable at a frequency higher than about 2Mhz.
Is there an alternate circuit I can use besides this that achieves the functionality I'm looking for but also allows the microcontroller to be driven at 22.1184Mhz speed?