Reply by Raivo Leini February 4, 20052005-02-04
"Mark Borgerson" <mborgerson@comcast.net> wrote in message
> Yes, this chore is something that many MCUs with a hardware PWM > capability could handle. Changing the output voltage then becomes a > matter of storing the new value in a register. > > > The output sample rate is then limited by the timer clock rate and > the number of bits resolution. For a timer with an 8MHz clock and > 8 bits output resolution, the PWM period is 256 cycles, or > about 31,250 steps per second. That, and the acceptable > distortion, will limit your maximum output frequency.
Somewhere ( Fujitsu ? ) was application note about using 2 PWM channels to get 16 bit resolution, "extra" hardware has 2 resistors, R for high byte pwm channel and 256*R for low byte. r.
Reply by ethan February 3, 20052005-02-03
> Then start with the F330, and get it operating. If you have some
time
> headroom, but need more flash, the ADI family has obvious appeal to
you...
> If when you are finished, you find more speed would help, > look at the upcomming C8051F410. 66MHz core, Dual 12 bit DACs, > up to 32K Flash, wide Vcc > > http://www.eltis.kiev.ua/pdf/C8051F410_short.pdf > > Perhaps include a SO8 SPI memory option, as the newest ones can
read
> continually up to 50MHz, and give some MBytes of storage. > > -jg
wow the 410 looks great! too bad it doesn't seem to exist quite yet. any idea when this will be in production? the advance datasheet is dated almost a year ago (assuming they use DD/MM/YYYY nomenclature) - not that that really means anything in the world of microprocessor design!
Reply by MSC February 2, 20052005-02-02
On 2 Feb 2005 10:59:11 -0800, "ethan" <ethan.bordeaux@gmail.com>
wrote:

>thanks for the reply!
Just in case you aren't aware, Circuit Cellar issue 174 has an article on using the 1MIP ADuC812 as a digital filter. Unfortunately their single channel FIR/IIR filter has a Nyquist limit of 250Hz. The slow multiply instruction seems to cripple it somewhat. Mike
Reply by Jim Granville February 2, 20052005-02-02
ethan wrote:
> sure no problem. basically i'm looking to create an extremely simple > autonomous synthesizer. waveforms would be generated through wavetable > synthesis (with linear interpolation if i can afford it) and others > through simple bitshifting algorithms and reading noise buffers. there > will also be some simple FX (FIR filters and other more novel but cheap > functions), envelopes, and a basic sequencer. as for sampling rate, > it's TBD. i just need to be able to generate enough channels of audio > to make something interesting, then i'll set the sample rate as high as > my MIPS with allow. no MIDI, at most some rudimentary interaction via > knobs or pushbuttons. i've implemented all of this on a DSP (see > www.dspmusic.org or www.dsperado.com/chiclet for some info), but the > total manufacturing cost is going to be too high, so i need to move to > a uC. i know i can make reasonably good music with a 33MHz ADSP-2181; > i'm hoping that if i cut some corners i can make something passable > with a 20MHz 8052. ideally the processor would have a DAC and flash > onchip for lower system cost. the DAC is proving to be the tough > request; only a couple manufacturers include them in low cost > processors. once i start looking at things like a standard product > ARM7 the price difference between them and a DSP is pretty small, so > there's little advantage to port. however getting a whole system on > chip (like the C8051F330) for ~$4 is quite enticing.
Then start with the F330, and get it operating. If you have some time headroom, but need more flash, the ADI family has obvious appeal to you... If when you are finished, you find more speed would help, look at the upcomming C8051F410. 66MHz core, Dual 12 bit DACs, up to 32K Flash, wide Vcc http://www.eltis.kiev.ua/pdf/C8051F410_short.pdf Perhaps include a SO8 SPI memory option, as the newest ones can read continually up to 50MHz, and give some MBytes of storage. -jg
Reply by Anthony Marchini February 2, 20052005-02-02
Anthony Marchini wrote:
> ethan wrote: > >> hi, i'm looking for a uC for a simple portable audio project. the >> basic specifications i'm looking for are: >> >> - 8/16 bit datapath >> - hardware multiply (8x8 ok, more bits the merrier) >> - 20+ MHZ instruction execution >> - onboard flash/SRAM (8kbytes+ FLASH, 1kbyte+ SRAM) >> - UART >> - onboard DAC (mono ok, stereo better) >> - free build tools >> - cheap! >> >> right now i'm looking at the SI Labs C8051F330. it's right at the low >> end of most of my criteria, but it's the only inexpensive uC ($4.27 >> quantity 100) i've seen with an onboard DAC. does anyone out there >> have experience with this part? also, is there something else i should >> be looking at? SI Labs have some larger FLASH variants (for example >> the C8051F017) but they sell for $12 in similar quantities, so that's >> out. the atmel AVRs are appealing for a number of reasons, but they >> don't have a DAC. anyone aware of a cheaper option than the C8051F330 >> for a full uC/flash/DAC system? is there a good very cheap DAC one >> could easily interface with an AVR? >> >> i'd love to use a DSP, but i believe they're just too pricy and don't >> come with the level of integration i need. feel free to prove me wrong >> on this assumption. >> >> thanks a lot for the help! >> >> ethan >> > Well, I don't know what your idea of cheap is, but you could look at the > Cirrus Logic EP9302, you need a lot of extra components, but these > things were designed for media output I believe. > Experimental boards from www.embeddedarm.com and other people are > available. > This one in particular has a math coprocessor. > It really depends on where you want to expand to. > Tony >
I think I reversed the spec, this thing has AtoD not Dto A. Its a big chip, my guess is you don't want to bother with an operating system either. Tony
Reply by Anthony Marchini February 2, 20052005-02-02
ethan wrote:
> hi, i'm looking for a uC for a simple portable audio project. the > basic specifications i'm looking for are: > > - 8/16 bit datapath > - hardware multiply (8x8 ok, more bits the merrier) > - 20+ MHZ instruction execution > - onboard flash/SRAM (8kbytes+ FLASH, 1kbyte+ SRAM) > - UART > - onboard DAC (mono ok, stereo better) > - free build tools > - cheap! > > right now i'm looking at the SI Labs C8051F330. it's right at the low > end of most of my criteria, but it's the only inexpensive uC ($4.27 > quantity 100) i've seen with an onboard DAC. does anyone out there > have experience with this part? also, is there something else i should > be looking at? SI Labs have some larger FLASH variants (for example > the C8051F017) but they sell for $12 in similar quantities, so that's > out. the atmel AVRs are appealing for a number of reasons, but they > don't have a DAC. anyone aware of a cheaper option than the C8051F330 > for a full uC/flash/DAC system? is there a good very cheap DAC one > could easily interface with an AVR? > > i'd love to use a DSP, but i believe they're just too pricy and don't > come with the level of integration i need. feel free to prove me wrong > on this assumption. > > thanks a lot for the help! > > ethan >
Well, I don't know what your idea of cheap is, but you could look at the Cirrus Logic EP9302, you need a lot of extra components, but these things were designed for media output I believe. Experimental boards from www.embeddedarm.com and other people are available. This one in particular has a math coprocessor. It really depends on where you want to expand to. Tony
Reply by Mark Borgerson February 2, 20052005-02-02
In article <1107376351.002612.227710@c13g2000cwb.googlegroups.com>, 
ethan.bordeaux@gmail.com says...
> i've thought about this, but am concerned about MIPS and power > consumption. any idea on the processor overhead to implement this? is > this something that could be implemented with PWM or a typical uC timer > allowing for very low overhead? i want as many cycles as possible to > calculate new outputs, so i'd rather not be stuck shifting bits. an > onboard parallel DAC seems like the easy choice, but since i'm trying > to be very cheap, i might not have the luxury of going the easy route! > >
Yes, this chore is something that many MCUs with a hardware PWM capability could handle. Changing the output voltage then becomes a matter of storing the new value in a register. The output sample rate is then limited by the timer clock rate and the number of bits resolution. For a timer with an 8MHz clock and 8 bits output resolution, the PWM period is 256 cycles, or about 31,250 steps per second. That, and the acceptable distortion, will limit your maximum output frequency. If you only need 5KHz output response, you could use a slower clock speed or more bits of resolution. The PWM generation will probably not be the limiting factor in determining your maximum frequency. It will take only a microsecond or two to adjust the output. You still have to calculate the next output before the next output sampling point. Mark Borgerson
Reply by ethan February 2, 20052005-02-02
i'm looking more for audio generation as opposed to audio
decompression, so the AT89C51SND2 is probably out.  do you know of an
app note that explains how to use PWM to generate audio output?

the atmel AVRs are appealing for a number of reasons, i guess i need to
figure out if the DAC is a requirement or not...

Reply by ethan February 2, 20052005-02-02
i've thought about this, but am concerned about MIPS and power
consumption.  any idea on the processor overhead to implement this?  is
this something that could be implemented with PWM or a typical uC timer
allowing for very low overhead?  i want as many cycles as possible to
calculate new outputs, so i'd rather not be stuck shifting bits.  an
onboard parallel DAC seems like the easy choice, but since i'm trying
to be very cheap, i might not have the luxury of going the easy route!

Reply by ethan February 2, 20052005-02-02
sure no problem.  basically i'm looking to create an extremely simple
autonomous synthesizer.  waveforms would be generated through wavetable
synthesis (with linear interpolation if i can afford it) and others
through simple bitshifting algorithms and reading noise buffers.  there
will also be some simple FX (FIR filters and other more novel but cheap
functions), envelopes, and a basic sequencer.  as for sampling rate,
it's TBD.  i just need to be able to generate enough channels of audio
to make something interesting, then i'll set the sample rate as high as
my MIPS with allow.  no MIDI, at most some rudimentary interaction via
knobs or pushbuttons.  i've implemented all of this on a DSP (see
www.dspmusic.org or www.dsperado.com/chiclet for some info), but the
total manufacturing cost is going to be too high, so i need to move to
a uC.  i know i can make reasonably good music with a 33MHz ADSP-2181;
i'm hoping that if i cut some corners i can make something passable
with a 20MHz 8052.  ideally the processor would have a DAC and flash
onchip for lower system cost.  the DAC is proving to be the tough
request; only a couple manufacturers include them in low cost
processors.  once i start looking at things like a standard product
ARM7 the price difference between them and a DSP is pretty small, so
there's little advantage to port.  however getting a whole system on
chip (like the C8051F330) for ~$4 is quite enticing.