Multiplying DACs for Volume Control

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
I am curious why everyone seems to be so in love with the PGA devices, with no mention of multiplying DACs. I searched all the forums here and a few other DIY sites about MDACs. Nothing. Unless I am using the wrong search terms. Is there some kind of problem using them? Too difficult to program a microcontroller to interface with it? I figure there must be some reason to explain the apparent complete lack of interest in these devices.

The Mark Levinson web site has a great image gallery. Some very high resolution photos of the circuit boards. Their preamps have always used MDACs, except for the reference No32. Their latest creation, the No390s CD player uses a Linear Technology LTC1590 MDAC. In better financial days past, I owned some ML gear, including their No380s preamp. I thought it sounded awesome.

I figure the best place to put one is after the regular DAC, I/V, and filtering stages. Right before the output. The MDAC itself needs almost no filtering, as the volume is not changing the vast majority of the time. One things I am unclear about is the specifications. Like THD. Does that refer to a digital signal converted to analog, or the voltage reference with a constant digital value?

I am also curious if anyone has programmed a uC to drive one of these? Since the MDAC is linear, but I need a logarithmic volume, there has to be some mapping between position, a display value, and the digital code for the MDAC. The only two methods which have occurred to me so far are, 1: compute it, or 2: have a lookup table. Does anyone know how the professionals do it? I wrote a little perl program to make the computations. But not sure what varity of mathematical functions might be available in something like a PIC.
 
Cameron said:
I am curious why everyone seems to be so in love with the PGA devices, with no mention of multiplying DACs.

I dont' know either! I posted a suggestion in this thread earlier, but I only got a collective :rolleyes: for answer so...

2: have a lookup table. Does anyone know how the professionals do it?

That's how I would do it. (Does that make me a professional? ;) ) It would be much faster and use less code-space then an antilog routine.
 
The easy way to do this is without a processor. You would use a have a up and down counter to driver a EEPROM, the EEPROM would have like D Flip Flops that would run the DAC up or down in value. Of course the EEPROM would have to be programed with the correct values codes to match the DAC, not a big deal. Of course you would need a EEPROM programing tool.
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.