Anyone with A/D designs?

GroupDIY Audio Forum

Help Support GroupDIY Audio Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.

modulay

Well-known member
Joined
Aug 6, 2008
Messages
63
Location
Spain
Hi.
A few months ago, I designed and built an usb-midi interface using a pic microcontroller.
It's a plug & play AUDIO device,so drivers are no needed.

http://img380.imageshack.us/img380/3702/labestiaii5.jpg

The board has some resources whose are not used, so I've got the chance of add some analog stuff to it (2 analog IN and 2 analog OUT ports i.e).

I've got some 16 bit A/D and D/A IC's...one of them is a delta/sigma converter similar to the ones used on EMU 1820 audio interface:

http://focus.ti.com/lit/ds/symlink/pcm1801.pdf

By the moment,I haven't read too much on the datasheet, but I think I will need a clock generator to establish sampling rate.
My idea is to have a fixed 44.1 sampling rate.

Anyone who knows about clock circuits?
Some experience with this stuff maybe?
 
The data sheet for the A/D should give some input depending on the master frequency needed you may be able to just hang a crystal off the PIC and use the buffered version of that or add a simple divider if too high..

JR
 
awesome work so far!

I've done some work with converters so I'll throw some ideas out there.

The clocking requirements are stated in the datasheet, check out page 4.

the system clock will be 256, 384, or 512 times the sampling rate that you want, determined usually by writing a register.

You want a clock source that is the lowest jitter/phase noise as you can possibly get. The clock source is more important to the design than the actual A/D or D/A is!
 
Yep.
Datasheet gives values for system clock depending on desired samplin rate:



16.9344 MHz crystals i.e. are easy to find,but it's not possible buffer pic oscillator due to usb bus is very restrictive with pic system clock (it's working with 20 MHz by now), so I can't change it.

Anyway, pic instruction cycle duration is 4 times clock period, so I think is not viable to use a pic for clock signal buffering.

The PCM1801 clock input is single ended, so a simple crystal oscillator is not valid, I think.
 
Another key point that some fail to point out is that the buffer opamps on the A/D inputs need to be able to drive high currents. Too many designers use opamps that lack good drive and that leads to poor performance.

I use a SSL alphalink and they use AKM CODEC ICs with JRC opamps (i forget which model) that is rated for high current drive.

Most people believe that CODECs don't sound good(since they are cheap) and that JRC opamps don't sound good either (because they are also cheap) but it's not true. This box is extremely clean and sounds good using fairly cheap parts CORRECTLY. The clocking comes from low jitter XOs that are divided internally in the system FPGA.

My point is that "the devil is in the details" when dealing with converters.
 
Check out the Silicon Labs si530 series. I use them in RF designs and they work very well! They are pretty cheap too, around 15$USD.

The CMOS part is single ended but you could use the differential parts and convert to single ended using a matching RF transformer/balun if you needed to run the traces a long distance.
 
Well.
This will be just an internal clock for the interface.
Thanks for the references,I will check them :grin:
 
yeah, I meant if you needed to run the traces across the board, around power supplies and other things that could induce noise into the clock lines. You also have to be careful that you don't run the clock lines near signal traces and/or data traces as the clock could couple over and induce noise too. Your trace lengths are probably going to be short enough to not have to worry about transmission line calculations.
 
Ok.I will remember.
Do you think Silicon labs would send me a couple of samples? :green:
 
Great.
I'm looking datasheets and they are differential output at all.
I can't find single ended ones
 
hmm, what frequency did you order? it needed to be a multiple of your sampling frequency, either 256, 384 or 512 times the sampling frequency!

44100hz x 512 = 22.5792mhz
 
What Svart said.

[quote author="Svart"]Check out the Silicon Labs si530 series. I use them in RF designs and they work very well! They are pretty cheap too, around 15$USD.[/quote]
It's a nice part, pretty quiet for a programmable oscillator. A good single-frequency XO will still have 10-20dB better phase noise performance, which corresponds to 3-10x less jitter. Note that that 0.3ps jitter spec is measured over 12kHz-50MHz, which is relevant for comms links but not so much for audio. As close-in noise is worse than noise farther from the carrier for any oscillator, phase noise/jitter over the audio band will be worse (I'd guesstimate it to be somewhere between 10 and 20ps judging by the tables and graphs in their data sheet and app notes). I'm also a bit wary about SiLabs mentioning very little about spur levels.

Then again, using a Si5xx just to get a fixed clock is way overkill, and I would recommend against it. You need extra hardware to disable the clock to your ADC until you've programmed the 5xx to the right frequency, and you may not be able to clock your PIC from it for similar reasons. If you must use it (and the sample request falls through) there is a group buy for the Si570 here.

You don't need a variable-frequency clock, right? What is wrong with simply using a prepackaged crystal oscillator? If you do need to support both 44k1 and 48k sampling rates, a TI PLL170x should work fine. Its jitter will be higher, probably even higher than the Si530, but from what I can tell it's within acceptable limits for 16-bit audio.

How are you planning to support isochronous USB audio transfers with that PIC?

JDB.
 
[quote author="jdbakker"]Then again, using a Si5xx just to get a fixed clock is way overkill, and I would recommend against it. You need extra hardware to disable the clock to your ADC until you've programmed the 5xx to the right frequency, and you may not be able to clock your PIC from it for similar reasons[/quote]

Hi jdb.
I've ordered Si530 part,which are factory programmed frequency. So, the chip don't need to be programmed. It just has an OE pin to enable the clock output.
The pic runs with its own oscillator.

[quote author="jdbakker"]
You don't need a variable-frequency clock, right? What is wrong with simply using a prepackaged crystal oscillator? If you do need to support both 44k1 and 48k sampling rates, a TI PLL170x should work fine. Its jitter will be higher, probably even higher than the Si530, but from what I can tell it's within acceptable limits for 16-bit audio.
[/quote]

I don't need a great performance. This is just a personal project and obtaining "correct" results will be ok. So I save also oscillator references you gave to me :)

[quote author="jdbakker"]
How are you planning to support isochronous USB audio transfers with that PIC?
[/quote]

The PIC is 18F66J50

http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en027179

By now, I'm using 4 bulk endpoints to satisfy usb-midi function and operate 2 physical midi ports.That means that I have 28 more endpoints (isochronous if needed) for audio streaming.
 
[quote author="modulay"][quote author="jdbakker"]How are you planning to support isochronous USB audio transfers with that PIC?[/quote]
By now, I'm using 4 bulk endpoints to satisfy usb-midi function and operate 2 physical midi ports.That means that I have 28 more endpoints (isochronous if needed) for audio streaming.[/quote]
Interesting.

Are you aware of this project? Do you plan to publish your usb-midi source (or have you already done so)?

JDB.
 
the si530 is fixed frequency, you order the frequency you want. The si570 is ICP(in circuit programmable) via I2C.

I just threw a part out there since they are something I am somewhat familiar with and remembered seeing a low jitter number, of course I suggest looking for whatever is best for the application.

I tried a number of XO parts and found that the si530 does a pretty nice job for the cost. Of course the difference here is that I am using LVPECL for my clocking needs and there aren't too many cost-effective solutions for LVPECL at 500mhz..
:roll:

(btw JDB, that comparator I PM'd you about a while back worked great.)


As close-in noise is worse than noise farther from the carrier for any oscillator, phase noise/jitter over the audio band will be worse (I'd guesstimate it to be somewhere between 10 and 20ps judging by the tables and graphs in their data sheet and app notes).

True. I missed that. Shows you how much audio work I do.. :roll:

I can't measure the phase noise directly, my MXA spec-an can't measure that low so I don't know what the real close-in numbers are. I can tell you that it doesn't significantly increase phase noise propagating through a DDS being clocked by the si530. It's pretty much still the noise floor from the DDS IC from 100hz to 10khz when plotted out.

modulay, take a look around to see what you find. I think you should have an idea of what you need to look for. The beauty of a personal project like this is that you can try as many different parts as you want without schedule constraints!

oh and XO is a short way of saying crystal oscillator.
 

Latest posts

Back
Top