Author |
Message |
tysseng
Joined: Apr 14, 2013 Posts: 13 Location: Norway
|
Posted: Sat Mar 06, 2021 5:22 am Post subject:
High speed CV multiplexer - inaccurate sampling Subject description: I'm trying to make a high speed CV multiplexer to generate 16 CVs from a single dac, but have issues |
|
|
Hi!
I am trying to make a high speed CV multiplexer that should update 16CVs 24000 times per second using a single DAC, but I can't get it to sample the correct voltage.
I use two Vishay DG408 multiplexers updating op amp buffers, each with a sample and hold capacitor just like any other synth from the good old days.
Because of the high refresh rate, I'm using a quite small capacitor (220-470pF) instead of the more standard 10nF that for example the Juno 106 uses.
During the time the mux is on for a channel, the channel outputs whatever the DAC outputs. But when I turn OFF the Mux, long before I change the DAC, the output rises by almost 200mV. This stays fairly constant until the next refresh.
I feel like I've tried everything and the only remedy so far has been to increase the capacitor size. I'm going mad, is there something basic I'm overlooking here? This is currently on a breadboard, so there are of course a ton of stray capacitances etc here, but I really want to get as good a result as possible before ordering a circuit board.
Any tips/things I could try out would be greatly appreciated!
Description: |
CV out drops to the same level as the DAC output during the sample period, but pops back up afterwards |
|
Filesize: |
219.22 KB |
Viewed: |
104 Time(s) |
This image has been reduced to fit the page. Click on it to enlarge. |
|
Description: |
|
Filesize: |
302.62 KB |
Viewed: |
197 Time(s) |
This image has been reduced to fit the page. Click on it to enlarge. |
|
|
|
Back to top
|
|
|
blue hell
Site Admin
Joined: Apr 03, 2004 Posts: 24079 Location: The Netherlands, Enschede
Audio files: 278
G2 patch files: 320
|
Posted: Sat Mar 06, 2021 8:34 am Post subject:
|
|
|
Not sure what causes it ... looking at the data sheets for a bit there are two things I can think of:
* For the S&H buffer you could try a CMOS opamp like CA3140 (or 3130 .. but that one has a limited supply voltage range and tends to be a bit nervous re. stability).
* The other thing could be charge injection, maybe read the section about charge injection in https://www.analog.com/en/analog-dialogue/articles/ask-the-applications-engineer-26.html# .. charge injection is specified as 20pC for the DG408 multiplexer you used .. which seems relatively high for the storage cap used (220pF).
The link above has some suggestions for minimizing the effect, you may want to look for another multiplexer to solve this issue.
(data sheets used: for TL02 the TI one, for CA3140 the Renesas one and for DG408 the Vishay one, the first ones showing up for me in a google for xxx datasheet) _________________ Jan
also .. could someone please turn down the thermostat a bit.
|
|
Back to top
|
|
|
tysseng
Joined: Apr 14, 2013 Posts: 13 Location: Norway
|
Posted: Sat Mar 06, 2021 11:39 am Post subject:
|
|
|
Great answer, thank you! Charge injection sounds very plausible, and the solution of selecting a slower mux with a higher on resistance is interesting. I tried with a CD4051 too, but got a much worse result. However, with that i would see a DROP if the neighbouring channels were lower, and a RISE if it was higher, making it entirely possible that it was another effect.
After posting my question I had a closer look at this video posted by Abstrakt Instruments:
https://youtu.be/4WwXlRYw_S0?t=1937
It explains in fairly large details how the OB-6 does it - by using two 8 channel DACs and the same multiplexing as I am trying to (but with only 8 CVs per DAC). He even mentions that they use 4051s
I zoomed in on a screenshot from the video and you can see that they are in fact 74HCT4051s. He says that the buffer op amps are on the voice cards themselves, so I found some fairly high res photos of those. They seem to use TL06x op amps as far as I can see.
I'll try ordering some HCT versions and see how that goes. |
|
Back to top
|
|
|
xjscott
Joined: Apr 25, 2007 Posts: 232 Location: Appalachia
|
Posted: Sat Mar 06, 2021 11:55 am Post subject:
|
|
|
Possibly: The converter IC can use more current during conversion than during idle. If the power supply voltages dip because there's not enough juice then you could see this behavior.
Try adding (relatively larger) caps near the power supply inputs to the converter IC and see if there's any change. |
|
Back to top
|
|
|
tysseng
Joined: Apr 14, 2013 Posts: 13 Location: Norway
|
Posted: Sat Mar 06, 2021 12:07 pm Post subject:
|
|
|
Cool, I'll definitely try that |
|
Back to top
|
|
|
elektrouwe
Joined: May 27, 2012 Posts: 143 Location: Germany
|
|
Back to top
|
|
|
tysseng
Joined: Apr 14, 2013 Posts: 13 Location: Norway
|
Posted: Sun Mar 07, 2021 9:25 am Post subject:
|
|
|
Wow, thanks Elektrouwe!
My refresh rate is 24kHz per channel, so an 8 channel mux will be updated at 192kHz (or even 384 if I need to update 16 channels using a single dac and two mux'es).
I will definitely use C0G for the "production" version but right now it's some nasty cheap ones I had in a kit bought on ebay - but would that explain the effect I see in my prototype? I understand that they may leak and be unstable, but for PoCing I thought they would be ok.
Good tip about the MUX driver op amp. Any particular parameters I should look for (high speed, definitely) if I can't fint the exact ones you recommended? High drive, would that equal high output current?
As for the mux'es, I'll shop around and see what I can find - I'm a bit limited to what JLCPCB can supply as I want to get the S&H boards produced for me - the controller with the driving op amp is probably ok to do manually so I've got a bit more flexibility there. I will probably use a 2.5V reference for the dac and a 2x gain on the driving op amp, 0-5V outputs in general.
Again, thank you! |
|
Back to top
|
|
|
elektrouwe
Joined: May 27, 2012 Posts: 143 Location: Germany
|
Posted: Sun Mar 07, 2021 10:18 am Post subject:
|
|
|
384kHz is not much more than 2us.
Not easy to design with cheap standard components for 12bit accuracy.
If you are so limited in component supply you should consider using an 8 channel 12 bit DAC instead. TI,Maxim,AD and others make them , e.g. DAC7578. This could save you from analog design trouble |
|
Back to top
|
|
|
tysseng
Joined: Apr 14, 2013 Posts: 13 Location: Norway
|
Posted: Sun Mar 07, 2021 12:18 pm Post subject:
|
|
|
True. I will try with what I have but there is always an option to switch supplier/PCBA house if that doesn't work. I realise I'm on shaky ground
A multi channel DAC may be something to consider, I see the price is not that bad either.
Let me quickly explain exactly what I'm trying to do: I need 48+ CVs to control a synth voice card, including CVs to replace trimmers if possible. At the moment I consider using two dual DACs but it seems I may have to up this (or reduce the refresh rate for some channels).
Only ONE of the CVs will control pitch directly, the rest are for VCAs and filters etc and could possibly have a lower accuracy than the pitch CV. I will have lookup tables for tuning a lot of the features, so absolute accuracy is not that important, it is more important with repeatability and stability. The high refresh rate is due to a desire to do most modulation including envelopes digitally.
I can also divide the various CVs into groups that need a high refresh rate and those that can be slower.
If successful, I will make several voice cards controlled by separate controllers (a polyphonic, multitimbral synth), so I'll end up with a large number of DACs in the end |
|
Back to top
|
|
|
|