Digitally controlled preamp/headphone amp

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

My good friend Mauro and others have pointed me towards the Cirrus CS3310 as a likely candidate for a very good preamp. This seems ideal as the specs are very impressive, and it is easy to interface.

The only thing I thought needed augmenting was the output current, as the CS3310 is limited to 25ma. So, I thought it a good idea to buffer the output with a good opamp that has low noise and good output current while still being fast and in general very good. I have come to really like the AD8620 for all those reasons, especially low noise.

So here I present my fist attempt at a PCB for my design. It is 2 sided, but pretty small. I would like to get some made, but I wanted to get some feedback from the folks here first.

The circuit is designed to be controlled by a single PIC 12Fxxx microcontroller. I am using a 12F683, but I think just about any of the 12F would work fine. Actually I think the 12F675 is probably ideal.

There is no pot in the signal path, the pot to the PIC is only used to feed an adjustable voltage to the PIC ADC to get a value for the volume control. I am trying to keep it very simple. No display, no complex interface, just a single linear pot.

This little amp would drive enough current for almost all headphones, and the output impedance is quite low making it exceptional for driving GCs, both inverting and non-inverting.

This is my first microcontroller project, so I will be asking for a lot of help. :)

Thanks for looking.

Cheers!
Russ
 

Attachments

  • pic.png
    pic.png
    50.9 KB · Views: 17,159
tobias_svensk said:

If I remember correctly the PGA2310/11 is pincompatible with the CS3310? as it has better specs, but if it's better I don't know.

Hi Tobias. :D

Hah! See you learn something every day! I had actually looked at that device once (I actually think I have some samples), but I did not know it was pin compatible! Great tip! Thanks!:cool:

Cheers!:drink:
Russ
 
1) all micro-controllers like to generate clock noise
2) the microcontroller control lines should be decoupled with a resistor.
3) the microcontroller should be turned 90 degrees counter-clockwise -- makes the layout a bit more rational.
4) if you are using decoupling caps, and mixing SMT with through-hole -- use SMT decoupling caps.
5) use a separate digital ground and analog ground

You will get there -- your enthusiasm demonstrates it.
 
Blazing a trail

Russ,
Have you seen the preamp thread in the chip amp forum or my posts on Headwize? May give you ideas as those designs from a microcontroller and digital volume control perspective, are the same.
Cheers -ALBQ

My PGA2310 design - thread on Headwize
http://mywebpages.comcast.net/gillespie147/Junk/PGA2310-REV2.jpg
 
Ok, now where I need help. The controller is the PIC12F83 (which is what I have on hand) which has the necessary ADC. I just can't figure out how to write the code to send the serial data to the PGA2311.

Can someone please help me with the code?

This is my first PIC project and I am a total MCU n00ber.

I have the PICC Lite compiler and MPLAB, which is what I would prefer to use, but ASM code for MPASM is fine too. :)

Please help me figure this out. :)

Cheers!
Russ
 
I bet it's a PIC12F683 that you have on hand.

Microchip has resources (assembler etc.) which you can download from their site for programming this device -- but first you have to flowchart what you want the device to do. They also have code which you can cut and paste.

Frankly, I find that it is easier to use MELABs PicBasic Pro -- on their website www.melabs.com you can view the manual.

there is plenty of discussion to help you get started at http://www.picbasic.co.uk/forum/
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.