digitally control volume

This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.

i do not know where to start but i want to make a controller than can control the volume and bass of my pc speaker. my current controller is faulty and i thought of making a diy control. so i need to ask for help so that i can know which IC is suitable.

thank you
I've just finished a project based on PGA2320. Some details at . Firmware still needs a bit of work, but it's fully functional and sounds great, listening as I type, in fact. Once the firmware is completed I will be posting it with full source, if anyone needs it.

That won't get you any kind of EQ (bass control) though, it does volume control (and balance, I suppose), and that's all. You can build a simple tone control with an opamp and a couple of passives. See for details.

If you're looking for a relatively lo-fi solution you could use something like the TDA1524, but sound quality of these leaves a lot to be desired. You'd get much better quality with the PGA23xx and Baxandall circuit (if you really must have could always EQ in software instead).
what i was thinking was to replace the analogue pot with a digital pot so that i do not need to turn the knob but jus to press the button.

i wanted to do this cuz the pot that i'm using now will suddenly turn the volume to max and sometimes down to its min. so i cant listen to songs properly. i tried changing it but after a few mths. back to the fluctuating volume.
For a good attenuator, look at the 'Lightspeed Attenuator...' thread, here at You can use two 'analog optoisolators' per channel, one in series and one to ground after it (shunt), forming a variable voltage divider, with no moving parts.

The analog optoisolators are just an LED and a photocell encapsulated together in a light-tight case. The current through their LEDs controls the resistance across their photocell terminals. You could use the Silonex NSL-32SR2S from, like the Lightspeed Attenuator uses.

These would be really easy for voltage control. If your control input is 0v to 5v, you use that for one of the optos' LED's current-control (i.e. via a series resistor to the LED, then to ground) and also make the 0 to 5v into 5 to 0v for the other one, probably using an opamp as an inverting differential amp with 5V on the positive input. That way, one goes from minimum resistance to max resistance at the same time as the other one goes from max resistance to min resistance, giving a wide dynamic range as well as a fairly-constant input impedance. (It can easily be used with a potentiometer for the control, too, as the Lightspeed Mk II uses. The main beauty of it, then, is that the pot is not in the signal path.)
gootee said:
For a good attenuator, look at the 'Lightspeed Attenuator...' thread, here at . . .

Originally, that technology, from its introduction in 1934, and to current date, has trouble with acting somewhat like a tone control, in that lower volume settings could be muffled.

Has the problem been fixed by using an LED instead of a light bulb?
Ref TDA7439

hey Mike,
i am working on TDA7439 and TDA7265 as a stereo amp with a PCM2704 for usb inp... but the good news is i have some program ready for it but i am using a 89S52 with a LCD 2/16 hmm the lcd section is kindo not that great if want i can email it.. remeber you'd ahve to work around it a bit
let me know if you wish to work on the one i have and make it perfect .. the communications is working fine.. checked it with proteus and on chip it self
for checking on proteus simulator disable the reply check from 7439 routine and put a i2c debu tool on the i2c line nad you would be able to see hte code's coming out... and then match it with the datasheet of the table...( all this is in proteus (isis))
Well, I finished my build using the TDA7439, I have to say I'm quite pleased with the sound quality of this chip. It's quite nice having a digitally controlled 'preamp' as I can do neat things like set different input gain levels and tone settings for different sources, and save those settings in memory, so all you have to do is switch sources, and all the proper settings for that source are loaded automatically.:)

It was a bit of a pain to program mainly due to the fact I am using a 68HC11 mcu programmed in straight assembly code, and that the 68HC11 does not support I2C natively. I essentially had to 'bit-bang' the I2C interface using general purpose I/O.

I even put a feature on my amp which allows the user to set a power-on password. Should come in handy, there's a person in the house I just know is going to want to crank the thing the minute I'm not there - something my current speakers can't take.
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.