Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
Discussion GroupsElectronicsBasicsRepairDesignCADComponentsEquipmentElectrical Engineering
ElectronicsKB.com
Contact UsLink To UsSearch & Site Map

Electronics Forum / Design / July 2009



Tip: Looking for answers? Try searching our database.

ADC Converters (General Clocking Question)

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
mpm - 01 Jul 2009 13:29 GMT
I'm looking at this part:
http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=PCM1801U-ND

Texas Instrument / Burr-Brown PCM1801
A 16-bit stereo Analog-to-Digital Converter (single ended).

It requires a 256x sample clock, in addition to some other clocks for
clocking out the serial data, and of course, the actual sampling rate
clock.  They have special names for all these clocks, but my question
relates to the fastest of these clocks.

Can you use an 8051 derivative (any derivative) to run this part?
I did the math and it does not look promising, based on my prior
experience with Atmel 8051 flavors...
But maybe I'm missing something  here...?

If I wanted CD-quality audio at 44.1 kHz (samples per second), then if
I read this datasheet correctly, I'd need a minimum of 256 x 44100 Hz
clock = 11,289,600 MHz just to run it.   How can you get that from
your garden variety microcontroller?    Note: Part requires
synchronization, so I can't just run a separate oscillator.

This part looks like it will simply a lot of the other parts of the
circuit, particularly all the filtering and anti-aliasing, etc...   Is
there a better ADC solution out there?  Maybe one that can be clocked
slower?

Or am I missing something here?
BTW:  My preference is 8051 as most of my development tools are 8051.
But would consider other architectures if the learning curve is not
too steep.

Thanks!!
JW - 01 Jul 2009 13:41 GMT
<e24d2bf3-ef3b-4543-815e-7d3418b982a5@c36g2000yqn.googlegroups.com>:

>I'm looking at this part:
>http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=PCM1801U-ND
[quoted text clipped - 27 lines]
>But would consider other architectures if the learning curve is not
>too steep.

NXP makes 8051 derivatives to 33MHz.
Mike - 01 Jul 2009 14:19 GMT
> <e24d2bf3-ef3b-4543-815e-7d3418b98...@c36g2000yqn.googlegroups.com>:
>
[quoted text clipped - 33 lines]
>
> - Show quoted text -

1 / 33 MHz = 0.03 uS

If it takes 12 osc. clocks to make a single instruction cycle, then
each machine cycle would be:
(12) (0.03uS) = 0.36 uS   (12-clock cycles were/are used in the
earlier 8051 devices)

On clock-doubled parts, if it takes 6 osc. clocks to make a single
instruction cycle, then each machine cycle would be:
(6) (0.03uS) = 0.18 uS

And keep in mind that some opcodes require more than one machine cycle
to execute.
But, taking the best case (6-cycle), 1 / 0.18 uS is still only 5.5
MHz, and that's not nearly fast enough to clock 256 x 44.1 kHz (i.e.,
11.289 MHz)

A single-, or two- clock 8051 derivative might do it.  I've not played
with these before (if they exist)?
Still wouldn't give much time to do much of anything else.  Maybe a
couple dozen op-codes in between required ADC strobes. (??)
Couldn't screw around in coding, that's for sure.   Would probably
have to be assembler -- which is fine for this project.

-mpm
JosephKK - 03 Jul 2009 19:16 GMT
>> <e24d2bf3-ef3b-4543-815e-7d3418b98...@c36g2000yqn.googlegroups.com>:
>>
[quoted text clipped - 59 lines]
>
>-mpm

I believe your analysis to be a bit befuddled.  You cannot use the
8051 to directly generate the clocks, you must use other circuitry for
that.
The total circuitry is a handful or so of gates and a common clock. An
8051 at 12 MHz is quite reasonable these days.
You can use an 8051 to deal with the data rate which is serial at
about 1.5 Mbit/s or use a couple of shift registers and parallelize
it.
linnix - 01 Jul 2009 14:07 GMT
> I'm looking at this part:http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=PCM1...
>
[quoted text clipped - 15 lines]
> clock = 11,289,600 MHz just to run it.   How can you get that from
> your garden variety microcontroller?  

Why not, many microcontrollers run at 16Mhz or above.  For example.
AVRs.

>  Note: Part requires
> synchronization, so I can't just run a separate oscillator.

Why can't you drive both with the same crystal/oscillator?
Mike - 01 Jul 2009 15:00 GMT
> > I'm looking at this part:http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=PCM1...
>
[quoted text clipped - 25 lines]
>
> - Show quoted text -

Lightbulb on!!  Maybe.
I never thought about using an external oscillator to drive both the
microcontroller and the ADC.
That seems like it should work.   Just need to look at how to
synchronize the two, which I can probably do by timing the ADC
reset...?

For some reason, I was thinking (lazy?) that I had to use the internal
8051 osc.
You get so used to trying to save parts costs, I'd forgotten you could
use external clocks with many 8051's...   Duh!!

Thanks for the insight!!
-mpm
Joerg - 01 Jul 2009 18:57 GMT
>>> I'm looking at this part:http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=PCM1...
>>> Texas Instrument / Burr-Brown PCM1801
[quoted text clipped - 31 lines]
> You get so used to trying to save parts costs, I'd forgotten you could
> use external clocks with many 8051's...   Duh!!

Nowadays any old 8051 should be able to run at around 11.3MHz. Just make
sure that your desired clock frequency does not mess up other functions
such as serial port timing.

Even if you use the crystal on the internal oscillator you can often
(gently) tap off the OSCOUT side of it and, if need be, buffer with a
74HC chip. Or look if a port pin can pipe out the master clock directly.

[...]

Signature

Regards, Joerg

http://www.analogconsultants.com/

"gmail" domain blocked because of excessive spam.
Use another domain or send PM.

Vladimir Vassilevsky - 01 Jul 2009 15:47 GMT
> I'm looking at this part:
> http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=PCM1801U-ND
[quoted text clipped - 8 lines]
>
> Can you use an 8051 derivative (any derivative) to run this part?

Your main problem is not the clock generation per se, but how to connect
the I2S slave bus of the ADC to the microcontroller SPI port. The clocks
can be generated either by timer output compares or by an external
hardware counter. Master clock could be the CPU crystal.

But what are you going to do with the ~200KB/s traffic of the ADC using
the miserable 8051? You need better CPU, something like BlackFin would
be appropriate.

Vladimir Vassilevsky
DSP and Mixed Signal Design Consultant
http://www.abvolt.com
castlebravo242@att.net - 01 Jul 2009 20:20 GMT
> I'm looking at this part:
> http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=PCM1801U-ND
[quoted text clipped - 17 lines]
> your garden variety microcontroller?    Note: Part requires
> synchronization, so I can't just run a separate oscillator.

Why not? You can use a separate oscillator to generate all of the clocks.
and dump the data to an external shift register and data latch. your data
then appears at a 44.1 khz rate, 4 bytes. you have 22.6 us to read it.
don - 01 Jul 2009 20:42 GMT
> your data
> then appears at a 44.1 khz rate, 4 bytes. you have 22.6 us to read it.

Thats 22.6 uSec for all 4 bytes.

Whats the fastest transfer loop that a 8051 ( even a 100Mhz Silabs )
chip can transfer to memory ??

Where will the 8051 ( even with 64K of External Memory ) going to put
all those bytes ??

After "recording" the source, where will the 8051 put it for safe storage ?

Play back in one thing, recording is another.

don
castlebravo242@att.net - 03 Jul 2009 05:55 GMT
>> your data
>> then appears at a 44.1 khz rate, 4 bytes. you have 22.6 us to read it.
[quoted text clipped - 13 lines]
>
> don

Flash memory?

Bob
Bob.Jones5400@gmail.com - 01 Jul 2009 20:31 GMT
> I'm looking at this part:http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=PCM1...
>
[quoted text clipped - 28 lines]
>
> Thanks!!

If you do not need the oversampling then why not sample at a much
lower rate? i.e., you could get down with 1/256 and still have cd
quality. It looks to be a pure serial output so you could simply add
256 samples and average or ignore all but one. In any case you would
still have to supply a clock to the ADC but your computation could use
a much lower sampling than what the adc does. The oversampling is
there to provide better filtering and processing but if you don't need
it then no reason to make it more complex. I would think you could
find a better adc that could have a programmable oversampling other
than 256, 384 or 512.
Nico Coesel - 01 Jul 2009 23:04 GMT
>I'm looking at this part:
>http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=PCM1801U-ND
[quoted text clipped - 17 lines]
>But would consider other architectures if the learning curve is not
>too steep.

Move over to an ARM device from NXP. Most have audio interfaces (SSP
compatible with TI IIRC).

Signature

Failure does not prove something is impossible, failure simply
indicates you are not using the right tools...
                    "If it doesn't fit, use a bigger hammer!"
--------------------------------------------------------------

Nico Coesel - 04 Jul 2009 09:58 GMT
>>I'm looking at this part:
>>http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=PCM1801U-ND
[quoted text clipped - 20 lines]
>Move over to an ARM device from NXP. Most have audio interfaces (SSP
>compatible with TI IIRC).

I think you can use a simple LPC2000 series microcontroller for this
job. Its (timer) outputs are very fast (not all ARM controllers have
this feature!). If you run the controller at 45.156MHz you can use a
PWM output to divide the CPU clock by 4 and use the other timers to
provide the rest of the synchronisation signals. The SPI interface can
be used to capture the data. This way you'll have a single chip
solution.

Signature

Failure does not prove something is impossible, failure simply
indicates you are not using the right tools...
                    "If it doesn't fit, use a bigger hammer!"
--------------------------------------------------------------

Rich Grise - 02 Jul 2009 23:53 GMT
> I'm looking at this part:
> http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=PCM1801U-ND
[quoted text clipped - 5 lines]
> I read this datasheet correctly, I'd need a minimum of 256 x 44100 Hz
> clock = 11,289,600 MHz just to run it.

That would be 11,289,600 _Hz_, or 11.289600 MHz. 8051s were running
comfortably at 11 MHz decades ago. :-) (the processor doesn't have
to _generate_ the clock, just be fast enough to issue proper commands,
read the data, etc., as far as I know.)

Have Fun!
Rich
David L. Jones - 03 Jul 2009 04:01 GMT
> I'm looking at this part:
> http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=PCM1801U-ND
[quoted text clipped - 29 lines]
>
> Thanks!!

That's a standard I2S audio interface.
Use some external logic chips and clock to dedcode this into parallel data
and load into your micro at a much lower data rate using the LRCK signal as
the data latch signal for example.
Something like this perhaps:
www.atmel.com/dyn/resources/prod_documents/doc2646.pdf

Dave.

Signature

================================================
Check out my Electronics Engineering Video Blog & Podcast:
http://www.alternatezone.com/eevblog/

krw - 04 Jul 2009 00:41 GMT
>I'm looking at this part:
>http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=PCM1801U-ND
[quoted text clipped - 17 lines]
>your garden variety microcontroller?    Note: Part requires
>synchronization, so I can't just run a separate oscillator.

Use the same oscillator as you use for the uC.  That's only 11.2MHz
(not 11.2THz ;).  The original 8051 was 12MHz.

>This part looks like it will simply a lot of the other parts of the
>circuit, particularly all the filtering and anti-aliasing, etc...   Is
>there a better ADC solution out there?  Maybe one that can be clocked
>slower?
>
>Or am I missing something here?

Yes, and so is everyone else.  ;-)  The 256x "oversampling" clock is
the delta-sigma modulator clock.  It has nothing to do with the I2S
interface or anything else.  Do a search on "delta sigma converter" or
"delta sigma modulator" for more information.
 
>BTW:  My preference is 8051 as most of my development tools are 8051.
>But would consider other architectures if the learning curve is not
>too steep.

Anything but a PIC.  ;-)  BTW, Actel has an 8051 soft core (more than
one, IIRC) for their FPGAs.  Without looking at your application too
closely, or knowing your budget, I'd think they would be a real
possibility for you.
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2010 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.