I built a spectrum analyzer using a pair of 18F4620's, one each for left and right channels. The problem is, the math involved in doing the FFT for the display takes about 64ms, another 6ms to display it on a graphic LCD, and about another 1ms to do housekeeping (all the while I'm doing the sampling). So, by the time the analyzed audio gets to the display, it's 71+ ms old. Looks a bit goofy being just that far out of sync. Actually, it looks fine if my display and speakers are roughly 25 meters away, I see the display immediately and the sound takes roughly 71ms to get to me.
Right now, I'm using the setup described in post#1:
2 - 16bit ADCs
2 - 16 bit DACs
2 - PIC18F4620 doing 256 point FFT spectrum analyzing math
8 - PIC18F4620s doing circular FIFO type audio data buffering/shifting (2 channels x 4 PICs) interconnected to each other thru a serial link, 1st one in line connected to the ADC, last one in line connected to the DAC.
1 - PIC18F2620 doing master timing duties, keeping all the audio data shifting in sync.
The 4 PICs give me a total of about 14K of ram to do buffering with. 44.1khz, stereo, 16 bit sampled audio data is about 176KB/sec, ~70ms is about 14KB, give or take, that's why I use all this to get what I need. The board is ugly (it's on a solderless breadboard), but it works.
12F? You know of a 12F with 14K in it?
Basically I guess I need a 'bucket brigade' type chip...again, with 14K of SRAM...



.


Bookmarks