News:

SMF for DIYStompboxes.com!

Main Menu

Choosing DSP chip for project

Started by TheWinterSnow, February 02, 2013, 09:20:29 PM

Previous topic - Next topic

TheWinterSnow

I am looking for a DSP chip that can handle operating as a user programmable FIR filter.  I have been having a couple problems though.  I need something 32 bit, that can run on external ROM, external RAM and user programmable flash (or even be able to use the flash storage as RAM) as well as being able to have a few buttons hooked up to it as well as two 7-segment displays.  I would prefer something with as few pins as possible, only as many as needed, mostly because it really can't be in a BGA package, impossible to DIY, very few board manufactures can make traces and vias that small and would be expensive as hell.  I really only calculated the need for four 8-bit ports and preferably three serial I/O but two will do the job.

The way I am looking at it, is that the ROM on the chip will hand over the DSP to the external ROM that holds the FIR filter and other additional programming.  The flash drive which will be user programmable by plugging in the device to a computer through USB to allow you to download the convolution files straight to flash when the device is off.  Then upon turning on, the external ROM will pull the first file from the flash and begin to use it as the convolution file to filter the incoming audio.  The external RAM will most likely have to be used because the convolution process might eat up the memory in a smaller chip, I really don't know how much memory a reasonable chip would be so it sort of up in the air on that one.

What are some good model DPS chips for this that is powerful enough, has just enough pins and isn't BGA?

SISKO

--Is there any body out there??--

TheWinterSnow

I saw that, but I was concerned about the fact that I need it to interface with a decent size flash drive where the impulses will be stored.  To make matters worse is that the size of the program will get much larger, handling not only the convolution process, but the file directory storing information about the current file and even decoding the file number to be driven by 7 segment displays.  I kind have worried about that amount of code would be too much for that chip and would need additional external ROM.  Since the code is in process for at least in a VST format, I can't give estimates so I can't say exactly how big it will be, but considering there will be three algorithms for each impulse, possibly two impulses total, with two of those algorithms having parameters controlled by digital pots, I can't imagine it would be small code, then again I could be wrong.

I am also looking at big convolution files, 1024 and 2048 samples at 16 and 24 bit (44.1KHz) and the possibility of running two in parallel.

SISKO

Ive search for something like what you are asking for but came up with nothing. An evaluation board (like the one from TI) is the only thing I could imagine, altough it doesnt come close to what you are describing.

Take a look at this http://www.diystompboxes.com/smfforum/index.php?topic=96073.0 since it uses the XMOS XS1-L1 for the peripheral processor and program loader
--Is there any body out there??--

TheWinterSnow

So in that thread it mentions having flash...so it is possible to interface flash memory to it and theoretically at least to my knowledge, if that can be done then the use of external ROM can be done too maybe perhaps by the use of another flash memory.  The big question is how?  The datasheet for the XMOS chips don't really have anything on interfacing peripherals.  Back in my school days, we had a 700 page text book that was basically a detailed datasheet of an 8051 and had all the protocol for every single feature imaginable, the datasheets I have been looking at have been pretty incomplete, and I don't want to make the assumption that having said external memory is done the same way as it would be done with an 8051.

I can do MPUs all day, DSP on the other hand, has been a different story.

SISKO

Quote from: TheWinterSnow on February 03, 2013, 01:19:54 PM
  The big question is how? 

This may be of help https://www.xmos.com/download/public/XM-000324-RF-1.pdf
Migrating to a new processor is in general not an easy task. I guess the obvious way is the hard way: learning all the basic  protocols for flash memories (is it usb? SD card?) and implement them.
Maybe someone come up with a solution.

Have you tought of having the dsp  and a microchip microcontoller controlling it? There must be all kind of code for them as they are pretty famous.
--Is there any body out there??--

TheWinterSnow

The Flash being used will be a monolithic package that is on the PCB that will be mountable by a USB connection to a PC.  The MPU controller would be overkill because there would be a bottleneck in speed and wouldn't benefit anything considering you would still need to host a serial connection for the incoming memory to on board ram.  64KB of on board RAM should be enough for the impulse files and the code, but a secondary ROM device might have to be used for storing the code, because the 8KB OTP seems possible a bit small, plus for prototyping I would rather interface erasable ROM so we aren't eating through XMOS chips when running code.  It looks like interfacing memory is all done in software because the only connectivity for I/O are the ports, there are no pins for changing operation of memory addressing, ROM addressing, Port Mux/Demux etc like you would see in a typical MPU.

markseel

If I understand correctly you want the following ...

1)  A 32-bit DSP system capable of performing convolution over long FIR's at audio sample rates
2) On-board ROM/FLASH for program storage and perhaps FIR coefficient storage
3)  On-board RAM for the FIR/convolution procedure (sample history storage)
4) A USB connector used by the DSP firmware to obtain filter coefficients from a standard USB/Flash dongle.

The usage scenario is ...

1) Plug the USB FLASH drive into a computer/laptop and 'drop' coefficient files onto the USB drive
2) Unplug the USB FLASH from the computer then plug it into the DSP system
3) DSP system mounts the FLASH drive and obtains the filter coefficients from a file on the FLASH drive

Does that sound right?

TheWinterSnow

#8
Close

1)  A 32-bit DSP system capable of performing convolution over long FIR's at audio sample rates
2)  External (on the PCB but not in the DSP chip itself) FLASH for program storage.  Additional but separate FLASH for FIR coefficient storage
3)  On-board RAM for the FIR/convolution procedure (sample history storage)
4)  A USB connector used by the DSP firmware to directly mount the FLASH storage to the PC

1) Plug the DSP unit into a computer/laptop and 'drop' coefficient files onto the FLASH drive
2) Unplug the USB cable from DSP unit
3) Fire up DSP

If I can get a DSP chip that has enough on board FLASH, ROM and RAM then I can do without the need for external devices and just use a USB link to mount to the DSP chip and directly FLASH it, but I am looking to store up to 100 IRs (maybe I can do less like 10-20 or something) which on average being about 3KB for a 1024 sample 16-bit 44.1K impulse.  That is not a lot of space but still to much to put in on board flash of just about all DSP chips I have seen.  I want the ROM to be rewritable so I don't have to scrap a chip every time the program is changed and I want the FLASH for the FIR coefficient so that the user cannot access the program code as I don't want them to be able to accidentally delete it.