I am about to extend the output range of an audio generator I had designed some time ago. (CD4015 shift register with 6 weighted outputs driven by a clock frequency 12 times the desired output).
The PIC micro in charge, uses the CCP1 module, toggling one pin to materialize that clock. Found that with a 10 MHz xtal with (*4 PLL on) I can cover the 10Hz - 20 KHz range.
After running the basic calculations I started to feel deceived because at the upper range, resolution becomes quite poor (as per my expectations at least).
I've calculated what resolution I get for some output frequencies:
10 Hz >0.1 Hz
100 Hz >0.1 Hz
2000 Hz <3 Hz
5000 Hz <20 Hz
10000 Hz <40 Hz
15000 Hz <150 Hz
20000 Hz <300 Hz
Usually I tend to think of initial fancy specs (in this case it was 1Hz resolution over the whole range!!) but life brought me to reality quite quickly.
My question: thinking of using this generator in general applications, am I asking for too much? Should I settle for the above?
Just in case you feel the temptation to suggest changes in the design, please note that the only changes I am going to do is a Xtal, the associated caps and the code.
Comments appreciated.
The PIC micro in charge, uses the CCP1 module, toggling one pin to materialize that clock. Found that with a 10 MHz xtal with (*4 PLL on) I can cover the 10Hz - 20 KHz range.
After running the basic calculations I started to feel deceived because at the upper range, resolution becomes quite poor (as per my expectations at least).
I've calculated what resolution I get for some output frequencies:
10 Hz >0.1 Hz
100 Hz >0.1 Hz
2000 Hz <3 Hz
5000 Hz <20 Hz
10000 Hz <40 Hz
15000 Hz <150 Hz
20000 Hz <300 Hz
Usually I tend to think of initial fancy specs (in this case it was 1Hz resolution over the whole range!!) but life brought me to reality quite quickly.
My question: thinking of using this generator in general applications, am I asking for too much? Should I settle for the above?
Just in case you feel the temptation to suggest changes in the design, please note that the only changes I am going to do is a Xtal, the associated caps and the code.
Comments appreciated.