Theo Verelst DSP Page

last update: juli 30 2004

Because of my recent projects with Blackfin DSP's, I though it about time to make a page about some of my makings, and make some open source projects available for download.

Ananlog Devices has a familiy of Digital Signal Processor chips called blackfin , which are small, relatively low power, 16/32 bit
mostly over a GigaOperation per second risc-type DSPs, and also makes evaluation kits available for reasonable prices, which include a development environment with C compiler graphical interactive design environment, and examples.

My first publically available project is for the BF561 dual-core 500 MHz blackfin on a EZLITE  board, with the standards version 3.5 (june 2004) development environment. Without question, parts can be used for the BF533 single core DSP and EZLITE as well, and in fact most of the code (in this case maybe all) is in C so it could prove usefull in various ways.

The first project is a CHORUS UNIT mainly with the musicians association of making a musical instrument like an electrical piano, a guitar or a synthesizer sound fatter, more pleasing by adding slowly varying delayed signals ot the original stereo signal. The board is used like with the audio pass through example, which makes use of the excellent AD/DA channels, in this case only input and output 0.

I"ve made the project a flash project, so it boots in the BF561 at startup, in principle in dual core more, though core B only idles at the moment, including setting up the DRAM and the LEDS. The main processing I programmed happens in

   init.c
   process_data.c

In init.c a sine table is made in DRAM, which is used by the sound chips interupt routine in process_data.c, where variable delays have been programmed.

As a bonus, my one-day project has been given a late night stereo LED VU METER which is a near perfect Peak meter with immedeate response to the signal, without missing a sample, and gradual meter response in downward sense, so peaks fade away slowly. Of course I make use of the two rows of 8 LEDS, with DB meanings of something like: -3bB -6dB -9dB -12dB -18dB -24dB -36dB -48dB . Works neat.

I didn't do a processor use analysis, the BF561 I can luckily use is officially a 500 MHz 0.2 version, which runs this fine, and has been given a 500MHz clock.

I've zip-ed the whole project in some working version for non-commercial download here:

   Chorus / LED VU Unit  (ZIP file, 150kB)

Let me know if it works for you! And please inform me if you spread any modified versions, which is permitted, but my original notice and address must stay in place.

It's a prototype, and not perfect in all ways: the higher frequencies in the signal with the current crude delay line modulation make a lot of  audible additional noise... But it's a rich, 3-way chorus effect, you may want to try changing the modulation depth and frequencies in process_data and initsinewave .

I've now ported the same to the BF533 EZLITE, for which the project files are available here:

   Stereo Chorus, flash version  (ZIP file, 178 kB)


I found this example for the BF533 on making a PAL output test signal at the Blackfin Forum

   030439-11.zip

I've recently made a 'wiki' page on the integrated Tcl within VisualDSP VisualDSP builtin Tcl use , because I find Tcl  (and it's graphical extension Tk) an inportant and handy language. Unfortunately, visualdsp doesn't allow as much Tcl interaction as I'd prefer, like for opening mulitple subprojects projects.


A view of the boards in prototype use (for audio applications, see also My audio page )





Interface between Blackfin 533 EZlite and a Xilinx CoolrunnerII demo board

See my Xilinx page for the xilinx programming files, this project:

   Visual DSP project files, WINZIP format

contains a prototype audio filter application (its a chorus at the moment) which real-time interfaces with the Xilinx and some knobs and displays connected to it.


I've made connections between some bus lines and 8 bits of the data bus and some address lines of the blackfin EZLITE backside bus (the DSP bus) with 0.5KOhm resistors plugged in the connector, and then fed to a wire into a connector into the Xilinx board, See the Xilinx pin definition file and the EZLITE schemetics for the names (I've prepended a 'N' for 'not')..

Making the connections is doable, but you have to have experience with contempotary CMOS electronics, and be aware of the riscs of connecting something to the live DSP bus wires! I've made a 1/10 inch connector (with general purpose PCB with connector pins) with a little piece of flexible flat cable for the Xilinx demo board side, which I remove first, after grounding myself, then I start the Dsp board and the Xilinx board, connect the ground, stop the DSP and then I slide in the connector to start things up for the prototype connection, where both boards have seperate supplies.

I've made a movie about the operation of the combination and the working turnable and press knobs and the counting display and a letter on the 5x7 display:

   window media format movie about the project, english comments by the author, 250MByte total.



 home page [2]       email: theover@tiscali.nl [2]        message directly to site maintainer