From eLinux.org
Jump to: navigation, search

For more interesting projects done by Flameman, be sure to check out his project index



The P1 is a dual processor, high performance, compact DSP embedded processor board based on a powerful Analog Devices 400MHz Blackfin processor and ATmega644 AVR processor. The P1 is an excellent platform for robotic, industrial process control and real time video processing applications. The P1 comes complete with all the necessary software tools for application development and programming. A number of daughercards are available to expand the functionality of the basic P1.

The Blackfin is a complex Digital Signal Processor. This product is for experienced embedded developers. If you are new to embedded programming than consider starting with a simpler device such as the SmartLCD or Wasp.

The P1 is capable of running uCLinux with the 4/8M Serial Flash option.



  • Blackfin ADSP-BF531 400MHz DSP Processor
  • AVR ATmega644 8MHz RISC Processor
  • 32Mbytes SDRAM
  • 1Mbyte External Flash (2,4,8M optional)
  • 2 RS-232 Ports, RS-485 Port
  • 8Ch 10 bit A/D
  • General Purpose Video Input Port
  • 7 Bi-directional I/O ports
  • Blackfin Memory/SPORT Expansion Port
  • AVR Analog/Digital Expansion Port
  • Blackfin JTAG/AVR ISP Programming Ports
  • Extensive Source code examples
  • GNU C compilers for both processors
  • 5-7VDC input, 3.3V on board @10-350ma
  • Small form factor (2.9x1.9in)




The main reference is http://blackfin.uclinux.org/gf/ About development tool, Go to www.blackfin.org - GNU tools are there for download.

Note that Analog Devices allows you to download and use VisualDSP for a time limited period.

I strongly recommend using VisualDSP first as the Blackfin ia a sophisticated processor and learning the processor and all the GNU tools at the same time is a little much. I believe VisualDSP is good for 90days.

P1 firmware

The Blackfin boot monitor is burned into external serial flash and should output a signon message.

If it is not and you can see serial on the AVR side then there maybe something wrong with the Blackfin serial out.

The AVR command set allows you to reset (reboot) the blackfin. Also there is no xon/xoff flow control on either port.

One thing to try is to reload the Blackfin bootmonitor hex file. You do this using sfprog.exe by sending the bootmonitor using the AVR. The AVR programs the Blackfin's external serial boot flash.

The other possibility, if you have the necessary hardware, is to attach to the Blackfin's JTAG port.




The P1 is a dual processor board (about the size of a business card) with a 400MHz Blackfin processor and a 8MHz ATmega644 processor. The Blackfin is a high performance 16 bit RISC DSP with dual MACs, multiple accumulators with 84Kbytes of internal program and data cache. The Blackfin is capable of 600MMACs and is designed for ultra fast image processing and general purpose processing. Programs are loaded from a 1Mx8 Flash and execute from the 16Mx16 SDRAM. The SDRAM provides both program and data storage. The video expansion port accepts several color and BW camera modules or can be used as a general-purpose data port. A memory expansion bus supports additional peripheral daughter boards. The Blackfin ultra high-speed serial ports (SPORTS) are available on another expansion port. A Blackfin JTAG emulation port and RS-232 serial port allows local communication. A real time clock provides self timed sleep capability with several power down modes. The Blackfin communicates with the AVR over the SPI port.


The AVR processor is an 8MHz ATmega644 self clocked general purpose controller with 8 10bit A/D channels, 7 general purpose bi-directional digital IO channels, an RS-232 port, RS-485 port and 2-Wire port. The AVR processor has 64Kbytes of Flash, 4K SRAM and 2Kbytes EEPROM. The 2-Wire port is a general purpose communications bus that connects multiple AVR satellite processors each supporting remote wake-up, node ID identification and high-speed data transfer (>400Kbits/sec). The AVR communicates with the Blackfin and 512K Flash over a high speed SPI link. The AVR controls the Blackfin reset line and can provide initial boot code to the Blackfin after reset is released. Alternatively the Blackfin can boot from Flash.


The JTAG10 is compatible with the McGregor Wiggle JTAG parallel port adapter. Analog Devices VisualDSP does not support the JTAG10 - only their own USB JTAG emulators which are very expensive.

Programming & running Apps

A bootable image must setup the SDRAM, xtal PLL and a few other peripherals in order to boot. The result file should be loaded into the Blackfin's external Flash using sfprog.exe.

using ATmega644 to flash the spi flash, by sfprog.exe

The app sfprog.exe talks to the ATmega644 on the P1 which in turn resets the Blackfin and loads the hex file into the external spi flash.

flash and run hex images from SDRAM

There is no procedure to flash and run hex images from SDRAM - there is a utility called Das UBoot but it has not been ported to the Blackfin yet.

binary format and ldr-utils

About ldr-utils: an LDR image is an image format that the Blackfin Boot ROM supports. On the host, is it normally represented by in an Intel hex-32 format files, or a binary file. The files support 8-bit-wide PROMs and are used with an industry-standard PROM programmer to program memory devices. One file contains data for the whole series of memory chips to be programmed. More information can be found on the VDSP++ 5.0 Loader and Utilities Manual or in the ADI App Note Blackfin Booting Process.

Normally U-Boot is the only thing that needs to create an LDR file, and it uses the ldr-utils which are included as part of the GNU Blackfin toolchain. Source


usb-jtag to do hard job


other bf board

blackfinone bf1