Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Using FPGA to control ADC and DAC

Status
Not open for further replies.

andrew257

Member level 2
Joined
Feb 22, 2007
Messages
42
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,286
Activity points
1,648
fpga dac memory

Hi All,

About to undergo a little project and i was wandering if anyone could provide a few answers to my questions please.

I am going to use an fpga to control an ADC to convert an audio signal and store the data into memory. Then i am going to use the fpga to control a DAC to convert the data stored in memory and output to a speaker. I am hoping to configure the program to store say 5 second samples of various audio singnlas. The audio going in could be anything from raw audio (speech) or mp3 songs etc. I am looking to use something like a 24bit ADC.

My questions are:

1. what type of memory is normally used in these types of applications? I was thinking of SRAM but unsure whther this would be fast enough to handle the data.

2. Is there any equation for calculating what the maximum amount of audio i could store in memory. My thoughts are its the sample rate multiplied by the number of bits the ADC is????

3. Are there any ADC chips or DAC chips normally used in this type of application?

Thank you all. If anyone has any input it would be greatly appreciated.

Thanks

Andy
 

fpga cds adc

1. any ram will be useful, but remember you need interface, if you use ddr, you'll need a ddr controller etc. the modules are available but that needs more space. Maybe you can use internal memory (some fpgas have it) but not to store 25 seconds of 24 bits sampled audio.

2. NºAudioSeconds*SampleRate*NumberBitsUsed (number used in memory to store every word, if you use 32 bits to store the 24 words then 32)

3. hundreds of codecs available. Check analog or ti web for example. They are adc, dac or both adc+dac. Several interfaces also, SPI, I2C, parallel etc. I think SPI is the best for your application if you won't use I2C for other devices.
 

use fpga listen to signal

At the speeds required for sampling audio, the speed of pretty much any memory is not going to be a problem.

Bye the 'amount of data stored' I asume you are looking for an answer in seconds of audio? In which case you have your answer.

Any ADC which matches your sampling rate and bit-width requirements will do fine, obviously some will be better than others but the design of your system will have the biggest impact on sound quality.

Are you sure you want a 24-bit ADC? I would guess that around 12 bits of your data would be recording the noise floor, CD audio is only 16 bits and very high quality recording equiptment has to be used to take advantage of this resolution!

I built a 80MHz 12-bit system using a Sartan3 and a ADS5500, I used dual port ram to store the data and sent it to a pc through a usb board we built using a cypress chip. We further developed the system to use 4 ADC's which led to us using external QDR ram.
 

store sound in fpga

Thank you for the fast responses.

My only reason for chosing 24bits was to ensure i had complete coverage of any audio i insert into the input. This may be a microphone or even an ipod to insert an mp3 type audio signal.

another objective was to incorporate some kind of delay effect within the fpga system. Maybe once i have that implemented turn it into a user defined delay. e.g user sets to delay the input by 2 seconds. The reason for 24bits was intended with this in mind also. My knowledge of this area is very basic and i am at the stage now of research.

Thanks

Andy
 

fpga mit adc und dac

andrew257 said:
Thank you for the fast responses.

My only reason for chosing 24bits was to ensure i had complete coverage of any audio i insert into the input. This may be a microphone or even an ipod to insert an mp3 type audio signal.

another objective was to incorporate some kind of delay effect within the fpga system. Maybe once i have that implemented turn it into a user defined delay. e.g user sets to delay the input by 2 seconds. The reason for 24bits was intended with this in mind also. My knowledge of this area is very basic and i am at the stage now of research.

Thanks

Andy

You'll get complete coverage with 12-16bits, honest! At a rough guestimate 1/2 of your data storage will be noise, (if you use 24-bits). Using a 24-bit ADC/DAC combination won't be a problem, it will just increase your costs to acheive the same quality of component as it would with a lesser bit-depth.

What you want to concentrate your effors on, is the analogue front-end. By that I mean the circuitry between your iPod (or whatever source), and the ADC. This will make a huge difference to your data quality. Also, the stuff after the DAC (including and especially the speaker), Listen to a CD in a £200 stereo and then on a £1000 stereo - the 16-bit CD will sound a whole lot different on the more expensive stereo.
 

adc 24-bit fpga

thanks again for your reply Nick.

I am starting to have clearer image of what i need to do to achieve my goal. The hard part now is actually deciding on the actual hardware to implement it. i have a spartan 3 starter board to mess around on but i dont think it has any of the ADC DAC stuff i will require. Another question on the memory side of things. If i chose to use SRAM do they come in the form of singles chips or like the kind you put in your computer? (stick)? Is there any books you could recomend me on this subject or this project?

Thanks

Andy
 

fast fpga dac adc

I prototyped our system on the Spartan3 starter board., but we used the dual port ram from coregen, I'm not sure if there'll be enough space on the chip for you're memory requirements. If my memory serves me correctly the starter board has some external memory included, but off the top of my head I can't remember how much. You may be able to make a board with some memory on it an connect to one of the expansion ports.

When I built our system I created a board with the ADC and signal conditioning stuff on it and connected it via the a1 expansion port (I think it was the a1 anyway). If you're just prototyping this definately use a lower bit-depth. I doubt there is enough pins on the starter board to connect 48 bits (DAC/ADC) + DAC/ADC control + memory addressing/control. I would use an 8-bit depth for this and then scale up for the final system.

Added after 9 minutes:

https://en.wikipedia.org/wiki/Audio_bit_depth

Have a read about audio bit depth, it should give you a better feel for that side of your requirements
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top