This is a low-cost development platform for the ADSP-BF537 Blackfin device. The STAMP board is part of the Blackfin/uClinux open source project. The schematics for the board as well as other related documents are available here. The ADSP-BF537 STAMP and the ADSP-BF537 EZkit are derived from the same design (they actually use the same base PCB -- the only difference is the silkscreen, and the bill of materials - there are less components on the STAMP to keep the price down, and make it more suitable for Linux Development). The STAMP board is commercially available and can be purchased from Digikey.
The STAMP is designed to be used in conjunction with the GNU Toolchain to test the capabilities of the ADSP-BF537 Blackfin processors. The GNU Toolchain gives you the ability to perform advanced application code development and debug, such as:
Access to the ADSP-BF537 processor from a personal computer (PC) is achieved through either:
An overview of some of the STAMP board's features are given below:
Host tool requires either Windows XP(SP2), or Linux Host.
To connect the STAMP board:
Initialization of the hardware is taken care of by both the Boot loader, and by the uClinux kernel. This initializes both the SDRAM, FLASH, and onboard peripherals like Ethernet and UART. If you are not using the provided Boot loader, or the uClinux kernel, you should review the appropriate data sheet, which can be downloaded from the STAMP project.
Networking capabilities are provided on the STAMP board via an the on chip IEEE 802.3 10/100 Ethernet MAC and CAN 2.0B controller.
The ADSP-BF537 STAMP includes an on-chip 10/100 Mbits/sec Ethernet MAC. The MAC supports both 10-BaseT (10 Mbits/sec) and 100-BaseT (100 Mbits/sec) operations. The interface is exposed on the board, providing an easy connection between the STAMP and an existing TCP/IP network. uClinux includes a complete and robust open source TCP/IP software stack, running on the Blackfin architecture. This stack relies on the presence of the underlying uClinux operating system. Therefore, the STAMP and uClinux provide out of the box software and hardware connection for TCP/IP networking. U-Boot also includes a thin UDP protocol stack for such functions as DHCP, TFTP, BOOTP and RARP.
The Controller Area Network interface uses an internal CAN 2.0B controller, and a Philips TJA1041 high-speed CAN transceiver. The PF14 programmable flag connects to the enable control input (EN). The PF15 programmable flag connects to the standby control input (~STB). The PF13 programmable flag connects to the error and power-on indication output (ERR). The PJ4 of the processor connects to the receive data output (RXD), and PJ5 connects to the transmit data input (TXD).
The CAN interface can be disconnected from the processor by turning positions 1 though 4 of the SW2 switch to OFF. When in the OFF position, these signals can be used elsewhere on the board. The CAN interface contains two 4-position modular connectors.
Certain features of the UART0 may be controlled via the SW4 dip switch.
| UART Feature | SW4 Switch Number |
|---|---|
| CTS | 1 |
| RX | 2 |
| RTS | 3 |
| Short RTS/CTS | 4 |
Dip switch 2 controls the Blackfin's ability to receive input from the UART.
Note that the dip switches 1 and 3 are mutually exclusive with 4, so you can have either 1 and 3 on with 4 off, or 1 and 3 off with 4 on. So, to enable hardware flow control, you need to turn off 4 and turn on 1 and 3.
The RESET push button resets all of the ICs on the board.
Four push buttons, SW10–13, are provided for general-purpose user input. The buttons connect to the PF5–PF2 programmable flag pins of the processor. The push buttons are active HIGH and, when pressed, send a High (1) to the processor. The push button enable switch (SW5) is capable of disconnecting the push buttons from the PF. The programmable flag signals and their corresponding switches are shown below.
| Processor Programmable Flag Pin | Push Button Reference Designator | Push Button Name | SW5 Switch Number |
|---|---|---|---|
| PF2 | SW13 | PB1 | 1 |
| PF3 | SW12 | PB2 | 2 |
| PF4 | SW11 | PB3 | 3 |
| PF5 | SW10 | PB4 | 4 |
| Position | Boot Mode | Misc Notes |
|---|---|---|
| 0 | Execute from 16-bit external memory | Bypass Boot ROM and boot from parallel flash at 0×20000000, XIP the code (no LDR!) |
| 1 | Boot from 16-bit memory | Execute an LDR stored in parallel flash at 0x20000000 |
| 2 | Reserved | Don't use it! |
| 3 | Boot from SPI memory | Boot from SPI flash |
| 4 | Boot from SPI Host | slave mode, not tested |
| 5 | Boot from Serial TWI Memory | Boot from EEPROM/flash, not tested |
| 6 | Boot from TWI Host | slave mode, not tested |
| 7 | Boot from UART Host | recover via serial |
When LED7 is lit (green), it indicates that power is being properly supplied to the board.
When LED8 is lit, it indicates that the master reset of all the major ICs is active.
Six LEDs connect to six general-purpose IO pins of the processor. The LEDs are active HIGH and are lit by writing a 1 to the correct PF signal.
| LED Reference Designator | Processor Programmable Flag Pin |
|---|---|
| LED1 | PF6 |
| LED2 | PF7 |
| LED3 | PF8 |
| LED4 | PF9 |
| LED5 | PF10 |
| LED6 | PF11 |
This section describes the connector functionality and provides information about mating connectors. The locations of the connectors are shown.
| Part Description | Manufacturer | Part Number | Mating Cable |
|---|---|---|---|
| Modular Jack | AMP | 558872-1 | 4 conductor modular jack cable L-COM TSP3044 |
| Part Description | Manufacturer | Part Number | Cable |
|---|---|---|---|
| Ethernet Jack | Pulse | JK0-0025 | Patch or cross over cable |
| Part Description | Manufacturer | Part Number | Cable |
|---|---|---|---|
| DB9, Female, Vertical Mount | Digi-Key | 191-009-213-571-ND | Straight through Serial Cable |
The power connector provides all of the power necessary to operate the STAMP board. Voltage input is 7.0 - 16V.
| Part Description | Manufacturer | Part Number | Cable |
|---|---|---|---|
| 2.5 mm Power Jack | SWITCHCRAFT | RAPC712 | CUI Inc. DMS070214-P6P-SZ |
The JTAG header is the connecting point for a JTAG in-circuit emulator pod. Pin 3 is missing to provide keying. Pin 3 in the mating connector should have a plug.
| Peripheral | Connector | pins | Part Number | Mating connector |
|---|---|---|---|---|
| SPORT0 | P6 | 34 | Digikey S2012-17-ND | Digikey S4217-ND |
| SPORT1 | P7 | 34 | Digikey S2012-17-ND | Digikey S4217-ND |
| PPI | P8 | 40 | Digikey S2012-20-ND | Digikey S4220-ND |
| SPI | P9 | 20 | Digikey S2012-10-ND | Digikey S4210-ND |
| TWI | P10 | 20 | Digikey S2012-10-ND | Digikey S4210-ND |
| TIMERS | P11 | 20 | Digikey S2012-05-ND | Digikey S4205-ND |
| UART1 | P12 | 10 | Digikey S2012-05-ND | Digikey S4205-ND |
The external bus interface unit (EBIU) connects external memory to the ADSP-BF537 processor. The unit includes a 16-bit wide data bus, an address bus, and a control bus. On the STAMP, the EBIU connects to the SDRAM, flash, and expansion interfaces.
64 Mbytes (32M x 16 bits) of SDRAM connect to the synchronous memory select 0 pin (~SMS0). Note that SDRAM clock is the processor’s clock out (CLK OUT), which must not exceed 133 MHz.
The flash memory device connects to the asynchronous memory select signals, ~AMS3 through ~AMS0. The device provides a total of 4 Mbytes of flash memory. The processor can use this memory for both booting and storing information during normal operation.
To understand how to set the MAC address, you need to understand where U-Boot looks for a MAC address, and then how it passes that MAC address to the kernel. When the system boots up on the STAMP Board, U-Boot looks:
ethaddr0x20300000 (the first bytes of the last sector).
If U-Boot can find a valid MAC address (which is anything except FF:FF:FF:FF:FF:FF), it programs this into the Ethernet MAC of the BF537.
When the Blackfin Ethernet kernel driver is loaded it also looks for a valid MAC. Once it finds one, it also programs the MAC and stops looking.
0x20300000 (the first bytes of the last sector).Therefore, in a properly configured platform (one in which U-Boot loads the MAC address, into the MAC), there is no need to worry about the MAC address in the kernel.
The MAC address of the BF537-STAMP (and BF537-EZKIT) are stored in the main flash.
protect off all; erase all below, is not meant as instructions, it is an example of what NOT to do
This means if you do something like:
bf537> protect off all bf537> erase all
You will end up with a MAC address of FF:FF:FF:FF:FF:FF.
To set the MAC address, the best way is to, set the MAC address is RAM (by using the memory modify command), and then copy this into flash. This can be done in the following way. In the below example, the MAC address will be set to 00:E0:22:FE:07:91
bf537> mm.b Usage: mm - memory modify (auto-incrementing) bf537> mm.b 0x0 00000000: 00 ? 00 00000001: 00 ? e0 00000002: 00 ? 22 00000003: 00 ? fe 00000004: 00 ? 07 00000005: 00 ? 91 00000006: 00 ? bf537><INTERRUPT> bf537> md.b 0x0 0x06 00000000: 00 e0 22 fe 07 91 bf537> protect off 0x203F0000 0x203FFFFF bf537> erase 0x203F0000 0x203FFFFF bf537> cp.b 0x0 0x203F0000 0x06
Keep in mind that the MAC address is cached in the environment in the ethaddr variable. If you want to change your MAC address, you'll have to update both the flash and the environment.