Which 16bit DSP MCU to use for Digital Audio App

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Which 16bit DSP MCU to use for Digital Audio App

Jump to solution
14,230 Views
mylim
Contributor IV
Hi.. I would like to seek your advise that which 16bit DSP MCU should i use if I want to digitise my audio input & send out together in RS485 format? Any advise on that? Thanks.
Labels (1)
0 Kudos
Reply
1 Solution
2,530 Views
mylim
Contributor IV
Thanks guys for all these information.. I guess i will need a little while to absord all of them... thanks.

View solution in original post

0 Kudos
Reply
15 Replies
2,530 Views
Shanemaneman
Contributor I

Hi,

I spotted some valuable information regarding ZigBee development kits at www.short-range-wireless.com. Take a look, you just might find a wealth of helpful information from both the technical and business sections. All the best.

0 Kudos
Reply
2,530 Views
rocco
Senior Contributor II
Hi, Mingyee:

The DSP563xx family is ideal for audio. It's actually 24 bits, not 16 bits, which makes it better for high-end audio. It also interfaces directly to 24-bit audio codecs. There are also decoder options (Dolby, THX, six-channel) that I know very little about.

Message Edited by rocco on 2006-07-13 09:57 PM

0 Kudos
Reply
2,530 Views
mylim
Contributor IV
Thanks for the tips. At least I have a picture of which MCU to look at. Btw, may i know where can I get more information about decoding the Audio Input & transmit in RS485 format? or are there any better idea of transmiting Audio digitally?
0 Kudos
Reply
2,530 Views
peg
Senior Contributor IV

Hi mingyee,

RS-485 is an electrical only spec.

You don't programme it, you use hardware to convert the TTL/CMOS signals that come out of your MPU into RS-485 compliant signals.

You will probably be using some kind of serial _protocol_ over the serial link, this is what you will be _programming_

Regards David

 

0 Kudos
Reply
2,530 Views
mylim
Contributor IV
Hi Peg, thanks for the info. Are there any recommended read up regarding digitising analog audio? Thanks.
0 Kudos
Reply
2,530 Views
imajeff
Contributor III
Of course there are entire engineering courses on Digital Audio. Unfortunately for you they are out of the scope of this forum.

May I suggest searching the web
0 Kudos
Reply
2,530 Views
alex_spotw
Contributor III
Hi imajeff:

Even though it is not related to the forum, if your have information that can be shared about this topic, please publish it.

The value of these online forums is to help other users and increase knowledge in general. The more the users feel that the forum is useful, the more they will come back.

Regards,

Alex
P.S. If required, it would be possible to create an Off-topic forum, to share that information that might not fit anywhere else.
0 Kudos
Reply
2,530 Views
imajeff
Contributor III
Yes I have information about Digital Audio:

Digital audio is a form of audio waveform using digitally stored numbers to mathematically represent the audio waveform. The simplest form is digital samples. That is a string of numbers where each represents one voltage (or amplitude) level in the timeline. Shall I go on? No.

Alex,

The question that mingyee asked is whether there is a read-up regarding digitising audio. I did answer the question: The Internet is the best read-up I can recommend without further context.

I will not be so bold as to give your post the lowest rating possible, just as my post does not earn it. I beleive lowest rating(s) should be reserved for damaging content like misinformation or disrespect.

I agree that people may post random information about off-topic subjects such as specific facts about digital audio, but can you comprehend the damage caused by consistent disorganization in any internet forum? It can render the good information unsearchable.
0 Kudos
Reply
2,530 Views
mylim
Contributor IV
Thanks guys for the information. I appreciate it. I was just wondering any recommended books that i can look into. I've been searching around in the library for books for beginners.

Sorry to stir up a mess around here. Cheers!
0 Kudos
Reply
2,529 Views
rhinoceroshead
Contributor I
I learned what I know from textbooks and college courses - and my exposure has really only scratched the surface.  But just as in any other field, there are simple things and complicated things.  You are sending your data over RS485, so the sound quality already can't be very high due to the limited bandwidth.  This already rules out a lof of the more complicated digital audio applications.  Perhaps you could give us more information on your project and we could better determine whether it lies within the scope of this forum or not.  So far, you've only told us that you are interested in sampling an audio signal and transmitting it via RS485 which is absolutely within the scope of this forum.  I know I've seen an application note on this website for sampling low (AM radio) quality audio.  The problem with a microcontroller is limited storage since audio takes up a lot of space.  If you're transmitting it right away serially, then what you're asking is perfectly suited for a microcontroller - and you probably don't even need an audio processing DSP chip.
0 Kudos
Reply
2,529 Views
mylim
Contributor IV
Hi rhinoceroshead,
Thanks for the reply. Actually my application would be a intercom system where it's running on a bus system. In order to save the cabling cost, I was thinking of incorporate audio & data together. Therefore I would only be needing 1 single pair cable running & for power wise, it can be done locally. Please advise. Thanks.
0 Kudos
Reply
2,529 Views
rhinoceroshead
Contributor I
Sure, this can be done and would require very little knowledge or experience with digital audio.  For sampling the audio, you will need to amplify the signal from the microphone such that it has a maximum peak-to-peak voltage of 5 volts - assuming you are using a 5 volt microcontroller.  You will need to add 2.5 volts of bias with a summing amplifier so that the audio signal will always be positive and lie within the 0-5 volts of the A/D converter range.  You will need to include an anti-alias filter before sampling.  Since the audio will be voice, you can filter out everything above ~3Khz and still have readily intelligible speech.  You could try to go higher in frequency for higher quality sound, but then you have more data to transmit and your baud rate will have to increase.  In an intercom system, you will have long runs of wire and the potential for transmission errors increases with the length of the wire and with the baud rate.  This is something you can experiment with, but you might want to resist the temptation to go really high.  (On the other hand, human speech can tolerate lots of errors and still be intelligible.)
 
Anyhow, if you use an anti-alias filter at 3 kHz, then you should sample at a rate of around 8 kHz - 10 kHz.  The rule is to go at least twice the highest frequency in the signal, and since no low-pass filter has an abrupt pass/no-pass transition, you need to go a bit higher.  If you use a 6-pole butterworth filter then you can afford to reduce the sampling rate closer to the theoretical limit.
 
Another thing about human speech is that most of the time we speak softly and only occasionally there is a large transient in amplitude.  If we sample with 8 bits of resolution and most of the time our speech is less than 1/4 of that full amplitude, then effectively we are really only using 6 of the bits.  Here's where audio compression comes in.  This is a huge topic and can get very complex, but you can implement a simple form on a microcontroller.  I've done a project similar to what you're describing now and I sampled at 10 bits resolution and then used a logarithmic conversion (look up mu-law or A-law) to put most of the bit resolution into the quiet range and truncated it to 8 bits at the same time.  I used a 1024 element array as a lookup table so that it would be very fast on a microcontroller - although it did use 1K of flash.  Anyway, if you scale it right, you don't even need to decompress on the other end and it will actually sound BETTER than with no compression at all.  All radio stations and recording studios, by the way, use lots of compression on voice because it sounds so much better that way.  (I am using the word compression here for audio amplitude compression and data compression - two very different things, but I don't know how else to say it.)
 
After you sample the data, you can use the conversion complete flag (or interrupt) as a signal to put the data into the serial transmitter.  Make sure the baud rate is slightly higher than the data rate coming from the A/D converter.  I've never used RS485 before, so I won't comment on that.  Since it's a bus, it must have some protocol for identifying the proper recipient for the data.  On the receiving end, you can bring the digital signal back to the analog domain using an 8 bit PWM - or you can buy a D/A converter.  For low quality audio, the PWM should be fine.  Set the PWM frequency as high as possible and update the duty cycle register every time you receive an audio byte.  Then you can make a low-pass filter with the cutoff somewhere between the highest audio frequency (~3 kHz) and the PWM frequency (~30 kHz) and you will have your analog audio signal back.  You will have to AC couple that signal to your audio amplifier to get rid of the DC bias.
 
Let me know if I'm not making sense.  I can assure you that this works though.
0 Kudos
Reply
2,529 Views
bigmac
Specialist III

Hello Mingyee,

In addition to what rhinoceroshead has said, here are some additional considerations -

  • To achieve acceptable audio quality at lower audio levels, you might need 12-bit conversion resolution, rather than 10-bits.  The digital compression process (mu-law or A-law) would convert this to 8 bits per sample for the serial transmission.
  • You would need to decide whether the audio should be "full duplex" (simultaneously in both directions) or "half duplex" (one direction at a time).  This may determine whether you need one pair or two pairs for the RS485 transmission path.
  • Since you require to interleave other digital data with the audio data, you will need to devise a "data packet" arrangement containing multiple bytes, so you can identify the different data types - usually by means of header byte(s).  If there are multiple destination stations in the system, you will also need an "address" for each destination.  So there will be overheads associated with each packet - a larger packet will provide better efficiency, but this may be determined more by the "other data" requirement.
  • At the receiving end, the content of the audio packets will need to be re-synchronised so that each byte updates the D/A converter at the same rate as the original sampling rate.  This will likely mean a receive buffer for the audio samples of a size equivalent to a number of packets.
  • With a 10kHz sample rate for the audio, and assuming that the quantity of other data is somewhat less than this, and with half duplex audio and data, I would suspect that the SCI baud rate would need to be at least 120,000 bits per second, to allow for overheads and inefficiencies.  The processing of each audio sample would need to be completed within less than 100 microseconds - the processing time for any interrupt should not cause a sample to be delayed.

Regards,
Mac

 

0 Kudos
Reply
2,529 Views
bigmac
Specialist III

Hello again Mingyee,

Some further comments about the digital sampling requirements for the audio signal.  To achieve the full dynamic range that mu-law compression is capable of, your linear sampling resolution would need to be 14-bits minimum (13-bits plus sign bit).  For A-law compression the minimum sampling resolution is 13-bits (12-bits plus sign bit).  A-law has a lesser dynamic range than mu-law, but this difference is not particularly noticeable in practice.

A further reduction in the sampling resolution to 12-bits, or 10-bits, will noticeably degrade the dynamic range that you can achieve.  For the case of 10-bit resolution in conjunction with mu-law, the dynamic range reduction would be 12dB.  The practical effect of this is that low level audio signals will "disappear".

I am not familiar with the DSP devices, but if they have integral A/D converters with higher resolution (e.g. 16 bits) this might further dictate your choice.

Regards,
Mac

 

2,531 Views
mylim
Contributor IV
Thanks guys for all these information.. I guess i will need a little while to absord all of them... thanks.
0 Kudos
Reply