[sdiy] CV/Gate delay project..

Brian Willoughby brianw at audiobanshee.com
Fri Jan 29 20:24:47 CET 2021

I agree with Roman, and hope to add a few points.

The linearity of the PIC ADC should be fine. The real problem is that the ADC is exposed to a lot of noise inside the PIC. Some microcontrollers have a mode where you can stop the CPU for the during of a conversion, in order to reduce the noise, but that can slow the processor down too much.

The best bet is to use an external ADC chip. Then you can focus the PCB design to reduce noise in that area of the board, with only SPI (as Mike Bryant suggested) or I2C (usually slower, less capable).

Some projects use the PIC ADC and multiple reads to filter some of the noise out. The problem there is that a slow ADC becomes even slower, you get a lag in response, and the noise isn't really gone.

I've found that using proper shielding, grounding, and layout will keep the noise out of the analog signals, and then a dedicated ADC chip can convert to digital very accurately with a single reading. One of my products does 2 million ADC conversions per second, and it wouldn't be possible to read any of those values more than once without getting a ridiculously fast ADC. On that project I have two 12-bit ADC chips that each can run up to 1 Msps. Texas Instruments makes some good chips, as do Analog Devices.

Brian Willoughby

On Jan 29, 2021, at 10:47, Roman wrote:
> Don't look for shortcuts when it comes to CV. Get decent 16 bit ADC/DAC. They are dirt cheap now. And I mean decent, because many new 16bit converters have 13-bit linearity  and sometimes even only 10-bit.
> Might be a challenge if you require THT though.
> Roman
> ---- Użytkownik Jean-Pierre Desrochers napisał ----
> Hi list,
> I'm working on a new module for my DOTCOM modular.
> It would memorize incoming CV's and Gate's state for 2msec up to 10sec 
> then spit the stream in steps of 1msec.
> The code for Gate memorizing is done.
> I'm now wondering if using a Microchip PIC 10bits ADC is
> linear enough to read incoming CV values (0 to 8vdc)...
> There will be an input buffer amplifier that will take care
> of taking down the 0to8vdc to 0to5vdc for the PIC.
> Incoming CV's 0-8vdc, 12 semitones/octaves.. that makes 1024 / (8 x 12)..
> around 10 steps between each semi-tones.
> My worry is the PIC ADC linearity precision..
> The 10bits memorized values will be output using a 12bits SPI DAC.
> I have a bunch of old PIC16F88 that I want to utilize here.
> Old but still usable for SPI.
> What do you think about PIC's ADC linearity wise ?
> JP

More information about the Synth-diy mailing list