Hello all,
First off, new user here. Many thanks to this website for hosting the wonderful Lessons in Electric Circuits text over the years.
Now, I am wondering if anyone has come up with a solution to the following problem. I have been trying to create an arbitrary waveform generator by utilizing a PIC12F683 to generate pulses which are varied in frequency (a time domain signal like a sine wave or just a linear ramp is modulated in the train). Next, I have a counter IC stage that effectively converts my high speed pulse train into a parallel up-counting or down-counting output. Lastly, I have a parallel input DAC that is hooked bit-for-bit to the counter output.
This system works beautifully in principle, but I ran into a problem that took me some time to track down. On my DAC output signal, I get spiking at times when multiple bits from the counter must transition at once. This is because they are slightly out of phase (usually by < 10 ns). So the DAC might read maximum value for a few ns before all of the bits catch up.
A few solutions I thought of: find a counter and DAC combo that use gray codes instead of binary, find an intergrated "counter DAC", find a DAC with a slower response time so that the out of phase delays don't matter, or get a better counting source.
For reference, the pulse train is updating at ~2.4 MHz. I've had no luck with finding an integrated solution or ANYTHING that uses gray codes other than rotary encoders (which I think is a shame). I really do like my current setup of a single pulse train from a tiny PIC with hardware to create the parallel output. However, I could always do something different, and may have to. I'd rather not have to use a serial protocol DAC, as those would require a far faster microcontroller to provide the data at the rate I want.
Anyhow, just curious if anyone has any thoughts (or IC part #'s ) on this subject. Thanks!
-MasterSnow
First off, new user here. Many thanks to this website for hosting the wonderful Lessons in Electric Circuits text over the years.
Now, I am wondering if anyone has come up with a solution to the following problem. I have been trying to create an arbitrary waveform generator by utilizing a PIC12F683 to generate pulses which are varied in frequency (a time domain signal like a sine wave or just a linear ramp is modulated in the train). Next, I have a counter IC stage that effectively converts my high speed pulse train into a parallel up-counting or down-counting output. Lastly, I have a parallel input DAC that is hooked bit-for-bit to the counter output.
This system works beautifully in principle, but I ran into a problem that took me some time to track down. On my DAC output signal, I get spiking at times when multiple bits from the counter must transition at once. This is because they are slightly out of phase (usually by < 10 ns). So the DAC might read maximum value for a few ns before all of the bits catch up.
A few solutions I thought of: find a counter and DAC combo that use gray codes instead of binary, find an intergrated "counter DAC", find a DAC with a slower response time so that the out of phase delays don't matter, or get a better counting source.
For reference, the pulse train is updating at ~2.4 MHz. I've had no luck with finding an integrated solution or ANYTHING that uses gray codes other than rotary encoders (which I think is a shame). I really do like my current setup of a single pulse train from a tiny PIC with hardware to create the parallel output. However, I could always do something different, and may have to. I'd rather not have to use a serial protocol DAC, as those would require a far faster microcontroller to provide the data at the rate I want.
Anyhow, just curious if anyone has any thoughts (or IC part #'s ) on this subject. Thanks!
-MasterSnow