Wednesday, 23 December 2015

radio - Drift auto-corrector for any microcontroller




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?


circuit




No comments:

Post a Comment

arduino - Can I use TI's cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...