• Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

Can you buy an FFT processor?

Status
Not open for further replies.

Holes Flow

New Member
Experts,

I really want to offload the audio FFT/FHT processing from my μC. I'm at the limits of an ESP32, and the specs I read out there are crazy, like Processing of 2048 complex samples in 224 µs!
I've read lots of design articles and scholarly papers out there, but they all talk about it being possible and some even offer a design. But who is actually selling them in a package that doesn't require building an architecture around it?

Isn't there a DIP/IC out there for [well] under $10 that can work with an STM32, ESP32, ESP8266, etc. μC?

Thanks!
 

dknguyen

Well-Known Member
Most Helpful Member
Use a second mcu, dsp, or an fpga. Forget about DIP format, unless it's an mcu or an fpga OR CPLD on a dip module.

I've read lots of design articles and scholarly papers out there, but they all talk about it being possible and some even offer a design. But who is actually selling them in a package that doesn't require building an architecture around it?
I imagine no one unless it's targetted towards a very specific application produced in the tens of thousands that can support the cost of ASIC development and manufacture.

I suspect that IC you linked is a pre-programmed CPLD. It certainly looks like one with all the unused pins.
 
Last edited:

ronsimpson

Well-Known Member
Most Helpful Member
There are many different types of FPGAs. I used some with large amounts of memory and math blocks. Several times I have done math on video in real time.
A computer does all jobs slowly. A FPGA can do one job very fast.
Search on FPGA, FFT, pipe line math
I have done math this many 16x16 multiplies and adds in 10nS.
---edited----
FPGA is very much "everything running in parallel". If you build a FFT engine then you can "cut and past" and make ten running in parallel.
--------
pipe line math
clock of 100mhz = 10nS
in 10nS you can do a multiply or several adds or sever simple things.
Your formula takes 8 steps each 10nS in time.
From input to output it takes 80nS to get the results.
BUT
every 10nS you can have an answer.
you can do 8 functions on a 2048 table in 163840nS or 164uS
 
Last edited:

Holes Flow

New Member
Use a second mcu, dsp, or an fpga. Forget about DIP format, unless it's an mcu or an fpga OR CPLD on a dip module.
Thats a great idea, ng! I've never actually considered FPGAs in any of my projects... I was told long ago they required customized language, or some such, and never ventured close.
 

Holes Flow

New Member
There are many different types of FPGAs. I used some with large amounts of memory and math blocks. Several times I have done math on video in real time.
Excellent points, ron. I was looking for pre-programmed/burned purpose-built chips, and everything I found in searching was no longer available, or way too expensive. I like the idea of making the code myself. I will dig into FPGAs, thanks to your advice!
 

dknguyen

Well-Known Member
Most Helpful Member
Thats a great idea, ng! I've never actually considered FPGAs in any of my projects... I was told long ago they required customized language, or some such, and never ventured close.
They do, I guess. The hardest part is the different mindset required (it's possible to write lines of code that run in parallel simultaneously versus those that run sequentially like in software). You lose the flexibility of the fancy data structures and complex program flow of software, but what you get is that instant cycle-by-cycle reaction times and no need to worry about how simultaneous code interact with each other, since everything exists simultaneously and runs independently of everything else.

Micronova Mercury module is the easiest breadboardable, minimalist option to start on and has an onboard programmer and sample code. It uses Xilinx's deprecated WebISE software. You have to buy straight from their website.

But if you're willing to take a bigger bite, then the Trenz TE0725-100 will far and away get you the biggest possible FPGA out there for the cheapest price in a minimalist package. The FPGA uses Xilinx's new Vivado software so some things are a bit different than the WebISE (the way you make the file that assigns signals in code to pin is the biggest difference). You will need a programmer though. The first party programmers from Xilinx are too expensive. I use the Digilent HS3 which I hear is actually more reliable than Xilinx's. This module also has pins on it that allow a special programmer called the XMOD to be connected or soldered straight to the module. Note that this module uses .100" pins but is a dual row header so won't fit onto a regular breadboard. You would need a pad-per-hole through hole protoboard. You can buy from all the stuff in this paragraph from Trenz in Europe or Digikey in North America.

I use and prefer VHDL which is closer to Ada, but Verilog also exists which is closer to C.

There is also a VHDL Handbook 2007 that you can find and download online, but I can't attach it here because the website says it is too big. But you need some prior knowledge about the general structure and nature of VHDL for the handbooks to help. They're more for if you know the type of thing you're looking for but can't remember the exact syntax
 

Attachments

Last edited:

rjenkinsgb

Well-Known Member
Most Helpful Member
For a good, cheap DSP device with FFT libraries available, have a look at the DSPIC33EP512GP502-I/SP
Well under $10, 70MHz, available in 28 pin DIP, 512K flash and 48K RAM with I2S interface among many other functions.
http://www.microchip.com/wwwproducts/en/dsPIC33EP512GP502

Standard libraries are available with the various free Microchip development tools
For the older libraries to work on the '33 rather than '30 series you may have to change the build model to "Large memory".

The limiting factor is that it's an integer DSP device; it depends if that is sufficient for what you need.


There are some references to using the FFT libs on the DSPIC33 here:
http://www.microchip.com/forums/tm.aspx?m=126331

The 829 DSD files are no longer on the microchip site but I have a copy, attached.

That overall project is just a demo but it uses the FFT library, called from the "frequency.c" file.
(I had to leave out the audio samples, they make it too big to upload - I can put them somewhere accessible if needed).
 

Attachments

Last edited:
Status
Not open for further replies.

Latest threads

EE World Online Articles

Loading
Top