Analog Devices, Inc. reserves the right to change this product without
prior notice. Information furnished by Analog Devices is believed to be
accurate and reliable. However, no responsibility is assumed by Analog
Devices for its use; nor for any infringement of patents or other rights of
third parties which may result from its use. No license is granted by implication or otherwise under the patent rights of Analog Devices, Inc.
Trademark and Service Mark Notice
The Analog Devices logo, Blackfin, EZ-KIT Lite, SHARC, TigerSHARC,
and VisualDSP++ are registered trademarks of Analog Devices, Inc.
All other brand and product names are trademarks or service marks of
their respective owners.
CONTENTS
PREFACE
Purpose of This Manual ................................................................ lix
Thank you for purchasing and developing systems using an enhanced
Blackfin® processor from Analog Devices.
Purpose of This Manual
The ADSP-BF52x Blackfin Processor Hardware Reference provides architec-
tural information about the ADSP-BF522, ADSP-BF523, ADSP-BF524,
ADSP-BF525, ADSP-BF526, and ADSP-BF527 processors. This hardware reference provides architectural information about these processors
and the peripherals contained within the ADSP-BF52x Blackfin packages.
The architectural descriptions cover functional blocks, buses, and ports,
including all features and processes that they support. For programming
information, see the Blackfin Processor Programming Reference. For timing,
electrical, and package specifications, see the
ADSP-BF522/523/524/525/526/527 Embedded Processor Data Sheet.
Intended Audience
The primary audience for this manual is a programmer who is familiar
with Analog Devices processors. This manual assumes that the audience
has a working knowledge of the appropriate processor architecture and
instruction set. Programmers who are unfamiliar with Analog Devices
processors can use this manual, but should supplement it with other texts
(such as the appropriate instruction set reference manuals and data sheets)
that describe your target architecture.
This is Revision 1.0 of the ADSP-BF52x Blackfin Processor Hardware
Reference. Peripheral chapters have been expanded and reorganized, and
modifications and corrections based on errata reports against this manual
have been made.
Technical or Customer Support
You can reach Analog Devices, Inc. Customer Support in the following
ways:
•Visit the Embedded Processing and DSP products Web site at
Product information can be obtained from the Analog Devices Web site,
VisualDSP++ online Help system, and a technical library CD.
Analog Devices Web Site
The Analog Devices Web site, www.analog.com, provides information
about a broad range of products—analog integrated circuits, amplifiers,
converters, and digital signal processors.
To access a complete technical library for each processor family, go to
http://www.analog.com/processors/technical_library. The manuals
selection opens a list of current manuals related to the product as well as a
link to the previous revisions of the manuals. When locating your manual
title, note a possible errata check mark next to the title that leads to the
current correction report against the manual.
Also note, MyAnalog.com is a free feature of the Analog Devices Web site
that allows customization of a Web page to display only the latest information about products you are interested in. You can choose to receive
weekly e-mail notifications containing updates to the Web pages that meet
your interests, including documentation errata against all manuals. MyAn-
alog.com
examples, and more.
provides access to books, application notes, data sheets, code
MyAnalog.com to sign up. If you are a registered user, just log on.
Visit
Your user name is your e-mail address.
VisualDSP++ Online Documentation
Online documentation comprises the VisualDSP++ Help system, software
tools manuals, hardware tools manuals, processor manuals, Dinkum
Abridged C++ library, and FLEXnet License Tools software documenta-
tion. You can search easily across the entire VisualDSP++ documentation
set for any topic of interest.
For easy printing, supplementary Portable Documentation Format (.
files for all manuals are provided on the VisualDSP++ installation CD.
Each documentation file type is described as follows.
File Description
.chmHelp system files and manuals in Microsoft help format
.htm or
.html
.pdfVisualDSP++ and processor manuals in PDF format. Viewing and printing the
Dinkum Abridged C++ library and FLEXnet License Tools software documentation. Viewing and printing the .html files requires a browser, such as Internet
Explorer 6.0 (or higher).
.pdf files requires a PDF reader, such as Adobe Acrobat Reader (4.0 or higher).
Technical Library CD
The technical library CD contains seminar materials, product highlights, a
selection guide, and documentation files of processor manuals, VisualDSP++ software manuals, and hardware tools manuals for the following
processor families: Blackfin, SHARC, TigerSHARC, ADSP-218x, and
ADSP-219x.
pdf)
To order the technical library CD, go to
sors/technical_library
, navigate to the manuals page for your
http://www.analog.com/proces-
processor, click the request CD check mark, and fill out the order form.
Data sheets, which can be downloaded from the Analog Devices Web site,
change rapidly, and therefore are not included on the technical library
CD. Technical manuals change periodically. Check the Web site for the
latest manual revisions and associated documentation errata.
EngineerZone is a technical support forum from Analog Devices. It allows
you direct access to ADI technical support engineers. You can search
FAQs and technical information to get quick answers to your embedded
processing and DSP design questions.
Use EngineerZone to connect with other DSP developers who face similar
design challenges. You can also use this open forum to share knowledge
and collaborate with the ADI support team and your peers. Visit
http://ez.analog.com to sign up.
Social Networking Web Sites
You can now follow Analog Devices processor development on Twitter
and LinkedIn. To access:
•Twitter:http://twitter.com/ADISHARC and
http://twitter.com/blackfin
•LinkedIn: Network with the LinkedIn group, Analog Devices
SHARC or Analog Devices Blackfin: http://www.linkedin.com
Notation Conventions
Text conventions used in this manual are identified and described as follows. Additional conventions, which apply only to specific chapters, may
appear throughout this document.
ExampleDescription
Close command
(File menu)
{this | that}Alternative required items in syntax descriptions appear within curly
Titles in reference sections indicate the location of an item within the
VisualDSP++ environment’s menu system (for example, the Close command appears on the File menu).
brackets and separated by vertical bars; read the example as this or that.
One or the other is required.
ExampleDescription
[this | that]Optional items in syntax descriptions appear within brackets and sepa-
rated by vertical bars; read the example as an optional this or that.
[this,…]Optional item lists in syntax descriptions appear within brackets delim-
ited by commas and terminated with an ellipse; read the example as an
optional comma-separated list of this.
.
SECTIONCommands, directives, keywords, and feature names are in text with let-
ter gothic font.
filenameNon-keyword placeholders appear in text with italic style format.
Note: For correct operation, ...
A Note provides supplementary information on a related topic. In the
online version of this book, the word Note appears instead of this symbol.
Caution: Incorrect device operation may result if ...
Caution: Device damage may result if ...
A Caution identifies conditions or inappropriate usage of the product that
could lead to undesirable results or product damage. In the online version
of this book, the word Caution appears instead of this symbol.
War ni ng : Injury to device users may result if ...
A Warning identifies conditions or inappropriate usage of the product
that could lead to conditions that are potentially hazardous for the devices
users. In the online version of this book, the word War ni ng appears
instead of this symbol.
The ADSP-BF52x processors are members of the Blackfin processor family that offer significant high performance and low power while retaining
their ease-of-use benefits. All parts within the family are pin-compatible,
but only the ADSP-BF526 and ADSP-BF527 include an embedded
Ethernet MAC module.
Manual Contents
This manual consists of one volume.
•Chapter 1, “Introduction”
Provides a high level overview of the processor, including peripherals, power management, and development tools.
•Chapter 2, “Chip Bus Hierarchy”
Describes on-chip buses, including how data moves through the
system.
•Chapter 3, “Memory”
Describes processor-specific memory topics, including L1
memories and processor-specific memory MMRs.
•Chapter 4, “One-Time Programmable Memory”
Describes the on-chip, one-time-programmable memory array
which provides 64k-bits of non-volatile memory for developers to
store both public and private data on-chip.
•Chapter 5, “System Interrupts”
Describes the system peripheral interrupts, including setup and
clearing of interrupt requests.
•Chapter 6, “Direct Memory Access”
Describes the peripheral DMA and Memory DMA controllers.
Includes performance, software management of DMA, and DMA
errors.
•Chapter 7, “External Bus Interface Unit”
Describes the external bus interface unit of the processor. The
chapter also discusses the asynchronous memory interface, the
SDRAM controller (SDC), related registers, and SDC configuration and commands.
•Chapter 8, “Host DMA Port”
Describes the Host DMA port of the processor. The Host DMA
Port (HOSTDP) allows an external host device to be the DMA
master to transfer data to and from the Blackfin device. The host
device masters the transactions and the Blackfin is a DMA slave
device.
•Chapter 9, “General-Purpose Ports”
Describes the general-purpose I/O ports, including the structure of
each port, multiplexing, configuring the pins, and generating
interrupts.
•Chapter 10, “General-Purpose Timers”
Describes the general-purpose timers.
•Chapter 11, “Core Timer”
Describes the core timer.
•Chapter 12, “Watchdog Timer”
Describes the watchdog timer.
•Chapter 13, “General-Purpose Counter”
Describes the general purpose up/down counter which provides
support for manually controlled rotary controllers, such as the volume wheel on a radio device. This unit also supports industrial or
motor-control type of wheels.
•Chapter 14, “Real-Time Clock”
The RTC provides a set of digital watch features to the processor,
including time of day, alarm, and stopwatch countdown. It is typically used to implement either a real-time watch or a life counter,
which counts the elapsed time since the last system reset.
•Chapter 16, “Security”
Describes the Lockbox
TM
Secure Technology for Analog Devices
Blackfin processors. This comprises a mix of hardware and software
mechanisms designed to prevent unauthorized accesses and allow
trusted code to execute on the processor.
•Chapter 17, “System Reset and Booting”
Describes the booting methods, booting process and specific boot
modes for the processor.
•Chapter 18, “Dynamic Power Management”
Describes the clocking, including the PLL, and the dynamic power
management controller.
•Chapter 19, “System Design”
Describes how to use the processor as part of an overall system. It
includes information about bus timing and latency numbers, semaphores, and a discussion of the treatment of unused pins.
•Chapter 21, “Ethernet MAC”
Describes the Ethernet Media Access Controller (MAC) peripheral
which provides a 10/100M bit/s Ethernet interface, compliant to
IEEE Std. 802.3-2002, between an MII (Media Independent Interface) and the Blackfin peripheral subsystem.
•Chapter 20, “NAND Flash Controller”
Describes the NAND Flash Controller (NFC)—which is part of
the External Bus Interface—of the processor. NAND Flash devices
provide high-density, low-cost memory.
•Chapter 15, “Parallel Peripheral Interface”
Describes the Parallel Peripheral Interface (PPI) of the processor.
The PPI is a half-duplex, bidirectional port accommodating up to
16 bits of data and is used for digital video and data converter
applications.
•Chapter 22, “SPI-Compatible Port Controller”
Describes the Serial Peripheral Interface (SPI) port that provides an
I/O interface to a variety of SPI compatible peripheral devices.
•Chapter 23, “Two Wire Interface Controller”
Describes the Two Wire Interface (TWI) controller, which allows a
device to interface to an Inter IC bus as specified by the Philips IBus Specification version 2.1 dated January 2000.
•Chapter 24, “SPORT Controller”
Describes the independent, synchronous Serial Port Controller
which provides an I/O interface to a variety of serial peripheral
devices.
2
C
•Chapter 25, “UART Port Controllers”
Describes the Universal Asynchronous Receiver/Transmitter port
that converts data between serial and parallel formats. The UART
supports the half-duplex IrDA® SIR protocol as a mode-enabled
feature.
•Chapter 26, “USB OTG Controller”
Describes the USB OTG interface of the processor. This interface
provides a low-cost connectivity solution for consumer mobile
devices such as cell phones, digital still cameras and MP3 players,
allowing these devices to transfer data via a point-to-point USB
connection without the need for a PC host.
•Appendix A, “System MMR Assignments”
Lists the memory-mapped registers included in this manual, their
addresses, and cross-references to text.
•Appendix B, “Test Features”
Describes test features for the processor, discusses the JTAG standard, boundary-scan architecture, instruction and boundary
registers, and public instructions.
•Appendix G, “Glossary”
Contains definitions of terms used in this book, including
acronyms.
This hardware reference is a companion document to the Blackfin
Processor Programming Reference.
Peripherals
The processor system peripherals include:
•Two memory-to-memory DMAs with handshake DMA
•Event handler with 54 interrupt inputs
•12 peripheral DMAs (2 mastered by the Ethernet MAC on
ADSP-BF527 processors)
•On-chip PLL capable of 0.5× to 64× frequency multiplication
•Debug/JTAG interface
•IEEE 802.3-compliant 10/100 Ethernet MAC (only on the
ADSP-BF527)
•NAND flash controller
•Parallel Peripheral Interface (PPI), supporting ITU-R 656 video
data formats
•Serial Peripheral Interface (SPI)-compatible port
•Two-Wire Interface (TWI) controller
•Two dual-channel, full-duplex synchronous Serial Ports
(SPORTs), supporting eight stereo I
2
S channels
•Two UARTs with IrDA® support
•USB 2.0 high-speed on-the-go (OTG) interface with integrated
PHY
These peripherals are connected to the core via several high bandwidth
buses, as shown in Figure 1-1.
All of the peripherals, except for general-purpose I/O, TWI, RTC, and
timers, are supported by a flexible DMA structure. There are also two separate memory DMA channels dedicated to data transfers between the
processor’s memory spaces, which include external SDRAM and asynchronous memory. Multiple on-chip buses provide enough bandwidth to keep
the processor core running even when there is also activity on all of the
VOLTAGE REGULATOR
JTAG TEST AND EMULATION
PERIPHERAL
ACCESS BUS
OTP
WATCHDOG TIMER
RTC
TWI
SPORT1-0
NFC
PPI
UART1-0
SPI
TIMERS7-0
EMAC/HOST DMA
BOOT
ROM
DMA
EXTERNAL
BUS
INTERRUPT
CONTROLLER
DMA
CONTROLLER
L1
DATA
MEMORY
L1
INSTRUCTION
MEMORY
USB
16
DMA CORE BUS
EXTERNAL ACCESS BUS
EXTERNAL PORT
FLASH, SDRAM CONTROL
PORTS
B
on-chip and external peripherals.
Figure 1-1. ADSP-BF52x Processor Block Diagram
Memory Architecture
The Blackfin processor architecture structures memory as a single, unified
4G byte address space using 32-bit addresses. All resources, including
internal memory, external memory, and I/O control registers, occupy separate sections of this common address space. The memory portions of this
address space are arranged in a hierarchical structure to provide a good
cost/performance balance of some very fast, low latency on-chip memory
as cache or SRAM, and larger, lower cost and lower performance off-chip
memory systems. Table 1-1 shows the memory for the ADSP-BF52x
processors.
Table 1-1. Memory Configurations
Type of MemoryADSP-BF52x
Instruction SRAM/cache, lockable by way or line 16K byte
Instruction SRAM48K byte
Data SRAM/cache32K byte
Data SRAM32K byte
Data scratchpad SRAM4K byte
L3 Boot ROM32K byte
Total164K byte
The L1 memory system is the primary highest performance memory available to the core. The off-chip memory system, accessed through the
external bus interface unit (EBIU), provides expansion with SDRAM,
flash memory, and SRAM, optionally accessing up to 132M bytes of physical memory.
The memory DMA controller provides high bandwidth data movement
capability. It can perform block transfers of code or data between the
internal memory and the external memory spaces.
The processor has three blocks of on-chip memory that provide high
bandwidth access to the core:
•L1 instruction memory, consisting of SRAM and a 4-way set-associative cache. This memory is accessed at full processor speed.
•L1 data memory, consisting of SRAM and/or a 2-way set-associative cache. This memory block is accessed at full processor speed.
•L1 scratchpad RAM, which runs at the same speed as the L1 memories but is only accessible as data SRAM and cannot be configured
as cache memory.
External Memory
External (off-chip) memory is accessed via the external bus interface unit
(EBIU). This 16-bit interface provides a glueless connection to a bank of
synchronous DRAM (SDRAM) and as many as four banks of asynchronous memory devices including flash memory, EPROM, ROM, SRAM,
and memory-mapped I/O devices.
The SDRAM controller can be programmed to interface to up to
128M bytes of SDRAM.
The asynchronous memory controller can be programmed to control up
to four banks of devices. Each bank occupies a 1M byte segment regardless
of the size of the devices used, so that these banks are only contiguous if
each is fully populated with 1M byte of memory.
I/O Memory Space
Blackfin processors do not define a separate I/O space. All resources are
mapped through the flat 32-bit address space. Control registers for
on-chip I/O devices are mapped into memory-mapped registers (MMRs)
at addresses near the top of the 4G byte address space. These are separated
into two smaller blocks: one contains the control MMRs for all core functions and the other contains the registers needed for setup and control of
the on-chip peripherals outside of the core. The MMRs are accessible only
in supervisor mode. They appear as reserved space to on-chip peripherals.
One-Time-Programmable (OTP) Memory
ADSP-BF52x processors also include an on-chip OTP memory array
which provides 64K bits of non-volatile memory that can be programmed
by the developer one time only. It includes the array and logic to support
read access and programming. A mechanism for error correction is provided. Additionally, its pages can be write protected.
The OTP is not part of the Blackfin linear memory map. OTP memory is
not accessed directly using the Blackfin memory map; rather, it is accessed
via four 32-bit-wide registers (OTP_DATA3–0) that act as the OTP memory
read/write buffer.
This memory is organized into 512 pages, each comprised of 128 bits and
equally separated into two distinct areas with privileged access dependant
upon modes of operation when security features are utilized. Approximately 400 pages are available for developer use. The remaining 100 pages
are utilized for page protection bits, error correction, and Analog Devices
factory-reserved areas. One area is read/write accessible at all time (Public
OTP Memory). The second area maintains privileged access and can only
be accessed (read/write) upon entry to Secure Mode when security features
are utilized (Private OTP Memory).
All together, OTP memory provides a means to store Public Keys in Public OTP Memory or secrets such as Private Keys or Symmetric Keys in
Private OTP Memory. One page of the Public OTP Memory is initialized
in the Analog Devices factory with a Unique Chip ID.
This OTP memory provides a means to store public and private cipher
keys as well as chip, customer, and factory identification data.
The processor has a DMA controller which supports automated data
transfers with minimal overhead for the core. DMA transfers can occur
between the internal memories and any of its DMA-capable peripherals.
Additionally, DMA transfers can be accomplished between any of the
DMA-capable peripherals and external devices connected to the external
memory interfaces, including the SDRAM controller and the asynchronous memory controller. DMA-capable peripherals include the SPORTs,
SPI ports, UARTs, and PPI. For the ADSP-BF527 processor, Ethernet is
also a DMA-capable peripheral. Each individual DMA-capable peripheral
has at least one dedicated DMA channel.
The DMA controller supports both one-dimensional (1D) and
two-dimensional (2-D) DMA transfers. DMA transfer initialization can
be implemented from registers or from sets of parameters called descriptor
blocks.
The 2-D DMA capability supports arbitrary row and column sizes up to
64K elements by 64K elements, and arbitrary row and column step sizes
up to +/- 32K elements. Furthermore, the column step size can be less
than the row step size, allowing implementation of interleaved datastreams. This feature is especially useful in video applications where data
can be de-interleaved on the fly.
Examples of DMA types supported include:
•A single, linear buffer that stops upon completion
•A circular, auto-refreshing buffer that interrupts on each full or
fractionally full buffer
•1-D or 2-D DMA using a linked list of descriptors
•2-D DMA using an array of descriptors specifying only the base
DMA address within a common page
In addition to the dedicated peripheral DMA channels, there are two separate pairs of memory DMA channels provided for transfers between the
various memories of the system. This enables transfers of blocks of data
between any of the memories—including external SDRAM, ROM,
SRAM, and flash memory—with minimal processor intervention. Memory DMA transfers can be controlled by a very flexible descriptor-based
methodology or by a standard register-based autobuffer mechanism.
The ADSP-BF52x processors also include a handshake DMA capability
via dual external DMA request pins when used in conjunction with the
external bus interface unit (EBIU). This functionality can be used when a
high speed interface is required for external FIFOs and high bandwidth
communications peripherals such as USB 2.0. It allows control of the
number of data transfers for MDMA. The number of transfers per edge is
programmable. This feature can be programmed to allow MDMA to have
an increased priority on the external bus relative to the core.
External Bus Interface Unit
The external bus interface unit (EBIU) on the processor interfaces with a
wide variety of industry-standard memory devices. The controller consists
of an SDRAM controller and an asynchronous memory controller.
SDRAM Controller
The SDRAM controller provides an interface to a single bank of industry-standard SDRAM devices or DIMMs. The bank can be configured to
contain between 16M and 128M bytes of memory.
A set of programmable timing parameters is available to configure the
SDRAM bank to support slower memory devices. The memory bank is
16 bits wide for minimum device count and lower system cost.
The asynchronous memory controller provides a configurable interface for
up to four separate banks of memory or I/O devices. Each bank can be
independently programmed with different timing parameters. This allows
connection to a wide variety of memory devices, including SRAM, ROM,
and flash EPROM, as well as I/O devices that interface with standard
memory control lines. Each bank occupies a 1M byte window in the processor address space, but if not fully populated, these are not made
contiguous by the memory controller. The banks are 16 bits wide, for
interfacing to a range of memories and I/O devices.
Ports
Because of the rich set of peripherals, the ADSP-BF52x processor groups
the many peripheral signals to four ports—port F, port G, port H, and
port J. Most of the associated pins are shared by multiple signals. The
ports function as multiplexer controls. The ports have programmable
hysteresis.
General-Purpose I/O (GPIO)
The ADSP-BF52x processors have 48 bi-directional, general-purpose I/O
(GPIO) pins allocated across three separate GPIO modules—PORTFIO,
PORTGIO, and PORTHIO, associated with port F, port G, and port H,
respectively. Port J does not provide GPIO functionality. Each
GPIO-capable pin shares functionality with other ADSP-BF52x processor
peripherals via a multiplexing scheme; however, the GPIO functionality is
the default state of the device upon powerup. Neither GPIO output or
input drivers are active by default. Each general-purpose port pin can be
individually controlled by manipulation of the port control, status, and
interrupt registers:
•GPIO direction control register – Specifies the direction of each
individual GPIO pin as input or output.
•GPIO control and status registers – The ADSP-BF52x processors
employ a “write one to modify” mechanism that allows any combination of individual GPIO pins to be modified in a single
instruction, without affecting the level of any other GPIO pins.
Four control registers are provided. One register is written in order
to set pin values, one register is written in order to clear pin values,
one register is written in order to toggle pin values, and one register
is written in order to specify a pin value. Reading the GPIO status
register allows software to interrogate the sense of the pins.
•GPIO interrupt mask registers – The two GPIO interrupt mask
registers allow each individual GPIO pin to function as an interrupt to the processor. Similar to the two GPIO control registers
that are used to set and clear individual pin values, one GPIO
interrupt mask register sets bits to enable interrupt function, and
the other GPIO interrupt mask register clears bits to disable interrupt function. GPIO pins defined as inputs can be configured to
generate hardware interrupts, while output pins can be triggered by
software interrupts.
•GPIO interrupt sensitivity registers – The two GPIO interrupt sensitivity registers specify whether individual pins are level- or
edge-sensitive and specify—if edge-sensitive—whether just the rising edge or both the rising and falling edges of the signal are
significant. One register selects the type of sensitivity, and one register selects which edges are significant for edge-sensitivity.
The Two-Wire Interface (TWI) is fully compatible with the widely used
I2C bus standard. It was designed with a high level of functionality and is
compatible with multi-master, multi-slave bus configurations. To preserve
processor bandwidth, the TWI controller can be set up and a transfer initiated with interrupts only to service FIFO buffer data reads and writes.
Protocol related interrupts are optional.
The TWI externally moves 8-bit data while maintaining compliance with
the I2C bus protocol. The Philips I2C Bus Specification version 2.1 covers
many variants of I2C. The TWI controller includes these features:
•Simultaneous master and slave operation on multiple device
systems
•Support for multi-master data arbitration
•7-bit addressing
•100K bits/second and 400K bit/second data rates
•General call address support
•Master clock synchronization and support for clock low extension
•Separate multiple-byte receive and transmit FIFOs
•Low interrupt rate
•Individual override control of data and clock lines in the event of
bus lock-up
•Input filter for spike suppression
•Serial camera control bus support as specified in the OmniVision
Serial Camera Control Bus (SCCB) Functional Specification version
The Ethernet Media Access Controller (MAC) peripheral for the
ADSP-BF527 processors provides a 10/100M bit/second Ethernet interface, compliant with IEEE Std. 802.3-2002, between a Media
Independent Interface (MII) and the Blackfin peripheral subsystem. The
MAC operates in both half-duplex and full-duplex modes. It provides programmable enhanced features designed to minimize bus utilization and
pre- or post-message processing. The connection to the external physical
layer device (PHY) is achieved via the MII or a Reduced Media Independent Interface (RMII). The RMII provides data buses half as wide (2 bit
vs. 4 bit) as those of an MII, operating at double the frequency.
The MAC is clocked internally from the CLKIN pin on the processor. A
buffered version of this clock can also be used to drive the external PHY
via the CLKBUF pin. A 25 MHz source should be used with an MII PHY.
A 50 MHz clock source is required to drive an RMII PHY.
Parallel Peripheral Interface
The processor provides a Parallel Peripheral Interface (PPI) that can connect directly to parallel A/D and D/A converters, ITU-R 601/656 video
encoders and decoders, and other general-purpose peripherals. The PPI
consists of a dedicated input clock pin and three multiplexed frame sync
pins. The input clock supports parallel data rates up to half the system
clock rate.
In ITU-R 656 modes, the PPI receives and parses a data stream of 8-bit or
10-bit data elements. On-chip decode of embedded preamble control and
synchronization information is supported.
•Active video only - The PPI does not read in any data between the
End of Active Video (EAV) and Start of Active Video (SAV) preamble symbols, or any data present during the vertical blanking
intervals. In this mode, the control byte sequences are not stored to
memory; they are filtered by the PPI.
•Vertical blanking only - The PPI only transfers Vertical Blanking
Interval (VBI) data, as well as horizontal blanking information and
control byte sequences on VBI lines.
•Entire field - The entire incoming bitstream is read in through the
PPI. This includes active video, control preamble sequences, and
ancillary data that may be embedded in horizontal and vertical
blanking intervals.
Though not explicitly supported, ITU-R 656 output functionality can be
achieved by setting up the entire frame structure (including active video,
blanking, and control information) in memory and streaming the data out
the PPI in a frame sync-less mode. The processor’s 2-D DMA features
facilitate this transfer by allowing the static frame buffer (blanking and
control codes) to be placed in memory once, and simply updating the
active video information on a per-frame basis.
The general-purpose modes of the PPI are intended to suit a wide variety
of data capture and transmission applications. The modes are divided into
four main categories, each allowing up to 16 bits of data transfer per
PPI_CLK cycle:
•Data receive with internally generated frame syncs
•Data receive with externally generated frame syncs
•Data transmit with internally generated frame syncs
•Data transmit with externally generated frame syncs
These modes support ADC/DAC connections, as well as video communication with hardware signalling. Many of the modes support more than
one level of frame synchronization. If desired, a programmable delay can
be inserted between assertion of a frame sync and reception/transmission
of data.
SPORT Controllers
The processor incorporates two dual-channel synchronous serial ports
(SPORT0 and SPORT1) for serial and multiprocessor communications.
The SPORTs support these features:
•Bidirectional, I2S capable operation
Each SPORT has two sets of independent transmit and receive
pins, which enable eight channels of I2S stereo audio.
•Buffered (eight-deep) transmit and receive ports
Each port has a data register for transferring data words to and
from other processor components and shift registers for shifting
data in and out of the data registers.
•Clocking
Each transmit and receive port can either use an external serial
clock or can generate its own in a wide range of frequencies.
•Word length
Each SPORT supports serial data words from 3 to 32 bits in
length, transferred in most significant bit first or least significant
bit first format.
Each transmit and receive port can run with or without frame sync
signals for each data word. Frame sync signals can be generated
internally or externally, active high or low, and with either of two
pulse widths and early or late frame sync.
•Companding in hardware
Each SPORT can perform A-law or µ-law companding according
to ITU recommendation G.711. Companding can be selected on
the transmit and/or receive channel of the SPORT without additional latencies.
•DMA operations with single cycle overhead
Each SPORT can automatically receive and transmit multiple buffers of memory data. The processor can link or chain sequences of
DMA transfers between a SPORT and memory.
•Interrupts
Each transmit and receive port generates an interrupt upon completing the transfer of a data word or after transferring an entire
data buffer or buffers through DMA.
•Multichannel capability
Each SPORT supports 128 channels out of a 1024-channel window and is compatible with the H.100, H.110, MVIP-90, and
HMVIP standards.
The processor has an SPI-compatible port that enables the processor to
communicate with multiple SPI-compatible devices.
The SPI interface uses three pins for transferring data: two data pins and a
clock pin. An SPI chip select input pin lets other SPI devices select the
processor, and seven SPI chip select output pins let the processor select
other SPI devices. The SPI select pins are reconfigured general-purpose
I/O pins. Using these pins, the SPI port provides a full-duplex, synchronous serial interface, which supports both master and slave modes and
multimaster environments.
The SPI port’s baud rate and clock phase/polarities are programmable,
and it has an integrated DMA controller, configurable to support either
transmit or receive datastreams. The SPI’s DMA controller can only service unidirectional accesses at any given time.
During transfers, the SPI port simultaneously transmits and receives by
serially shifting data in and out of its two serial data lines. The serial clock
line synchronizes the shifting and sampling of data on the two serial data
lines.
Timers
There are nine general-purpose programmable timer units in the processor. Eight timers have an external pin that can be configured either as a
Pulse Width Modulator (PWM) or timer output, as an input to clock the
timer, or as a mechanism for measuring pulse widths of external events.
These timer units can be synchronized to an external clock input connected to the PF1 pin, an external clock input to the PPI_CLK pin, or to the
internal
The timer units can be used in conjunction with the UARTs to measure
the width of the pulses in the datastream to provide an autobaud detect
function for a serial channel.
The timers can generate interrupts to the processor core to provide periodic events for synchronization, either to the processor clock or to a count
of external signals.
In addition to the eight general-purpose programmable timers, a 9th timer
is also provided. This extra timer is clocked by the internal processor clock
and is typically used as a system tick clock for generation of operating system periodic interrupts.
UART Ports
The processor provides two half-duplex Universal Asynchronous
Receiver/Transmitter (UART) ports, which are fully compatible with
PC-standard UARTs. The UART ports provide a simplified UART interface to other peripherals or hosts, providing half-duplex, DMA-supported,
asynchronous transfers of serial data. The UART ports include support for
5 to 8 data bits; 1 or 2 stop bits; and none, even, or odd parity. The
UART ports support two modes of operation:
•Programmed I/O
The processor sends or receives data by writing or reading
I/O-mapped UART registers. The data is double buffered on both
transmit and receive.
•Direct Memory Access (DMA)
The DMA controller transfers both transmit and receive data. This
reduces the number and frequency of interrupts required to transfer data to and from memory. Each of the two UARTs have two
dedicated DMA channels, one for transmit and one for receive.
These DMA channels have lower priority than most DMA channels because of their relatively low service rates.
The UARTs’ baud rate, serial data format, error code generation and status, and interrupts can be programmed to support:
•Wide range of bit rates
•Data formats from 7 to 12 bits per frame
•Generation of maskable interrupts to the processor by both transmit and receive operations
In conjunction with the general-purpose timer functions, autobaud detection is supported.
The capabilities of the UART ports are further extended with support for
the Infrared Data Association (IrDA
Specification (SIR) protocol.
®
) Serial Infrared Physical Layer Link
Security
ADSP-BF52x processors provides security features (Blackfin Lockbox™
Secure Technology) that enable customer applications to use secure protocols, consisting of code authentication and execution of code within a
secure environment. Implementing secure protocols on Blackfin processors involves a combination of hardware and software components.
Together these components protect secure memory spaces and restrict
control of security features to authenticated developer code.
•Blackfin Lockbox Secure Technology incorporates a secure hardware platform for confidentiality and integrity protection of secure
code and data with authenticity maintained by secure software.
•This secure platform provides:
•A secure execution mode
•Secure storage for on-chip keys
•On-chip secure ROM
•Secure RAM
•Access to code and data in the secure domain is monitored by the
hardware and any unauthorized access to the secure domain is
prevented.
•The secure ROM code establishes the root of trust for the secure
software in the system.
•The secure RAM provides integrity protection and confidentiality
for authenticated code and data.
•User-defined cipher key(s) and ID(s) can be securely stored in the
on-chip OTP memory.
•Every processor ships from the ADI factory with a unique chip ID
value stored in publicly accessible OTP memory area.
Real-Time Clock
The processor’s Real-Time Clock (RTC) provides a robust set of digital
watch features, including current time, stopwatch, and alarm. The RTC is
clocked by a 32.768 kHz crystal external to the processor. The RTC
peripheral has dedicated power supply pins, so that it can remain powered
up and clocked even when the rest of the processor is in a low power state.
The RTC provides several programmable interrupt options, including
interrupt per second, minute, hour, or day clock ticks, interrupt on programmable stopwatch countdown, or interrupt at a programmed alarm
time.
The 32.768 kHz input clock frequency is divided down to a 1 Hz signal
by a prescaler. The counter function of the timer consists of four counters:
a 60 second counter, a 60 minute counter, a 24 hours counter, and a
32768 day counter.
When enabled, the alarm function generates an interrupt when the output
of the timer matches the programmed value in the alarm control register.
There are two alarms. The first alarm is for a time of day. The second
alarm is for a day and time of that day.
The stopwatch function counts down from a programmed value, with one
minute resolution. When the stopwatch is enabled and the counter underflows, an interrupt is generated.
Like the other peripherals, the RTC can wake up the processor from sleep
mode or deep sleep mode upon generation of any RTC wakeup event. An
RTC wakeup event can also wake up the on-chip internal voltage regulator from a powered down state.
Watchdog Timer
The processor includes a 32-bit timer that can be used to implement a
software watchdog function. A software watchdog can improve system
availability by forcing the processor to a known state through generation
of a hardware reset, nonmaskable interrupt (NMI), or general-purpose
interrupt, if the timer expires before being reset by software. The programmer initializes the count value of the timer, enables the appropriate
interrupt, then enables the timer. Thereafter, the software must reload the
counter before it counts to zero from the programmed value. This protects
the system from remaining in an unknown state where software that
would normally reset the timer has stopped running due to an external
noise condition or software error.
If configured to generate a hardware reset, the watchdog timer resets both
the CPU and the peripherals. After a reset, software can determine if the
watchdog was the source of the hardware reset by interrogating a status bit
in the watchdog control register.
The timer is clocked by the system clock (
of f
SCLK
.
SCLK), at a maximum frequency
Clock Signals
The processor can be clocked by an external crystal, a sine wave input, or a
buffered, shaped clock derived from an external clock oscillator.
This external clock connects to the processor CLKIN pin. The CLKIN input
cannot be halted, changed, or operated below the specified frequency during normal operation. This clock signal should be a TTL-compatible
signal.
The core clock (
the input clock (CLKIN) signal. An on-chip Phase Locked Loop (PLL) is
capable of multiplying the
64×) multiplication factor (bounded by specified minimum and maxi-
VCO frequencies). The default multiplier is 10×, but it can be
mum
modified by a software instruction sequence. On-the-fly frequency
changes can be made by simply writing to the PLL_DIV register.
CCLK) and system peripheral clock (SCLK) are derived from
CLKIN signal by a user-programmable (0.5× to
All on-chip peripherals are clocked by the system clock (
SCLK). The system
clock frequency is programmable by means of the SSEL[3:0] bits of the
The processor provides four operating modes, each with a different performance/power profile. In addition, dynamic power management provides
the control functions to dynamically alter the processor core supply voltage to further reduce power dissipation. Control of clocking to each of the
peripherals also reduces power consumption.
Full-On Mode (Maximum Performance)
In the full-on mode, the PLL is enabled, not bypassed, providing the maximum operational frequency. This is the normal execution state in which
maximum performance can be achieved. The processor core and all
enabled peripherals run at full speed.
Active Mode (Moderate Power Savings)
In the active mode, the PLL is enabled, but bypassed. Because the PLL is
bypassed, the processor’s core clock (CCLK) and system clock (SCLK) run at
the input clock (CLKIN) frequency. In this mode, the CLKIN to VCO multiplier ratio can be changed, although the changes are not realized until the
full on mode is entered. DMA access is available to appropriately configured L1 memories.
In the active mode, it is possible to disable the PLL through the PLL control register (
transitioning to the full on or sleep modes.
PLL_CTL). If disabled, the PLL must be re-enabled before
Sleep Mode (High Power Savings)
The sleep mode reduces power dissipation by disabling the clock to the
processor core (
tinue to operate in this mode. Typically an external event or RTC activity
will wake up the processor. When in the sleep mode, assertion of any
CCLK). The PLL and system clock (SCLK), however, con-
interrupt causes the processor to sense the value of the bypass bit (
in the PLL control register (PLL_CTL). If bypass is disabled, the processor
transitions to the full on mode. If bypass is enabled, the processor transitions to the active mode.
When in the sleep mode, system DMA access to L1 memory is not
supported.
Deep Sleep Mode (Maximum Power Savings)
The deep sleep mode maximizes dynamic power savings by disabling the
processor core and synchronous system clocks (CCLK and SCLK). Asynchronous systems, such as the RTC, may still be running, but cannot access
internal resources or external memory. This powered-down mode can only
be exited by assertion of the reset interrupt or by an asynchronous interrupt generated by the RTC. When in deep sleep mode, an RTC
asynchronous interrupt causes the processor to transition to the active
mode. Assertion of RESET while in deep sleep mode causes the processor to
transition to the full on mode.
Hibernate State
BYPASS)
For lowest possible power dissipation, this state allows the internal supply
(V
DDINT
running. Although not strictly an operating mode like the four modes
detailed above, it is illustrative to view it as such.
) to be powered down, while keeping the I/O supply (V
DDEXT
)
Voltage Regulation
The ADSP-BF523, ADSP-BF525, ADSP-BF527 processors provide an
on-chip voltage regulator that can generate V
ply. Figure 18-3 on page 18-18 shows the typical external components
required to complete the power management system. The regulator con-
trols the internal logic voltage levels and is programmable with the voltage
regulator control register (
standby power consumption, the internal voltage regulator can be programmed to remove power to the processor core while keeping I/O power
supplied. While in this state, V
need for external buffers. The regulator can also be disabled and bypassed
at the user’s discretion.
VR_CTL) in increments of 50 mV. To reduce
DDEXT
can still be applied, eliminating the
Instruction Set Description
The Blackfin processor family assembly language instruction set employs
an algebraic syntax designed for ease of coding and readability. Refer to
the Blackfin Processor Programming Reference for detailed information.
The instructions have been specifically tuned to provide a flexible, densely
encoded instruction set that compiles to a very small final memory size.
The instruction set also provides fully featured multifunction instructions
that allow the programmer to use many of the processor core resources in
a single instruction. Coupled with many features more often seen on
microcontrollers, this instruction set is very efficient when compiling C
and C++ source code. In addition, the architecture supports both user
(algorithm/application code) and supervisor (O/S kernel, device drivers,
debuggers, ISRs) modes of operation, allowing multiple levels of access to
core resources.
The assembly language, which takes advantage of the processor’s unique
architecture, offers these advantages:
•Embedded 16/32-bit microcontroller features, such as arbitrary bit
and bit field manipulation, insertion, and extraction; integer operations on 8-, 16-, and 32-bit data types; and separate user and
supervisor stack pointers
•Seamlessly integrated DSP/CPU features optimized for both 8-bit
and 16-bit operations
•A multi-issue load/store modified Harvard architecture, which supports two 16-bit MAC or four 8-bit ALU + two load/store + two
pointer updates per cycle
•All registers, I/O, and memory mapped into a unified 4G byte
memory space, providing a simplified programming model
Code density enhancements include intermixing of 16- and 32-bit
instructions with no mode switching or code segregation. Frequently used
instructions are encoded in 16 bits.
Development Tools
The processor is supported with a complete set of CROSSCORE® software and hardware development tools, including Analog Devices
emulators and the VisualDSP++® development environment. The same
emulator hardware that supports other Analog Devices products also fully
emulates the Blackfin processor family.
The VisualDSP++ project management environment lets programmers
develop and debug an application. This environment includes an
easy-to-use assembler that is based on an algebraic syntax, an archiver
(librarian/library builder), a linker, a loader, a cycle-accurate instruction-level simulator, a C/C++ compiler, and a C/C++ runtime library that
includes DSP and mathematical functions. A key point for these tools is
C/C++ code efficiency. The compiler has been developed for efficient
translation of C/C++ code to Blackfin processor assembly. The Blackfin
processor has architectural features that improve the efficiency of compiled C/C++ code.
Debugging both C/C++ and assembly programs with the VisualDSP++
debugger, programmers can:
•View mixed C/C++ and assembly code (interleaved source and
object information)
•Insert breakpoints
•Set conditional breakpoints on registers, memory, and stacks
•Trace instruction execution
•Perform linear or statistical profiling of program execution
•Fill, dump, and graphically plot the contents of memory
•Perform source level debugging
•Create custom debugger windows
The VisualDSP++ Integrated Development and Debugging Environment
(IDDE) lets programmers define and manage software development. Its
dialog boxes and property pages let programmers configure and manage all
development tools, including color syntax highlighting in the VisualDSP++ editor. These capabilities permit programmers to:
•Control how the development tools process inputs and generate
outputs
•Maintain a one-to-one correspondence with the tool’s command-line switches
The VisualDSP++ Kernel (VDK) incorporates scheduling and resource
management tailored specifically to address the memory and timing constraints of DSP programming. These capabilities enable engineers to
develop code more effectively, eliminating the need to start from the very
beginning, when developing new application code. The VDK features
include threads, critical and unscheduled regions, semaphores, events, and
device flags. The VDK also supports priority-based, pre-emptive, coopera-
tive and time-sliced scheduling approaches. In addition, the VDK was
designed to be scalable. If the application does not use a specific feature,
the support code for that feature is excluded from the target system.
Because the VDK is a library, a developer can decide whether to use it or
not. The VDK is integrated into the VisualDSP++ development environment but can also be used with standard command-line tools. The VDK
development environment assists in managing system resources, automating the generation of various VDK-based objects, and visualizing the
system state during application debug.
Analog Devices emulators use the IEEE 1149.1 JTAG test access port of
the processor to monitor and control the target board processor during
emulation. The emulator provides full speed emulation, allowing inspection and modification of memory, registers, and processor stacks.
Nonintrusive in-circuit emulation is assured by the use of the processor’s
JTAG interface—the emulator does not affect target system loading or
timing.
In addition to the software and hardware development tools available
from Analog Devices, third parties provide a wide range of tools supporting the Blackfin processor family. Hardware tools include the
ADSP-BF52x EZ-KIT Lite standalone evaluation/development cards.
Third party software tools include DSP libraries, real-time operating systems, and block diagram design tools.
This chapter discusses on-chip buses, how data moves through the system,
and other factors that determine the system organization. Following an
overview and a list of key features is a block diagram of the chip bus hierarchy and a description of its operation. The chapter concludes with
details about the system interconnects and associated system buses.
Overview
The ADSP-BF52x Blackfin processors feature a powerful chip bus hierarchy on which all data movement between the processor core, internal
memory, external memory, and its rich set of peripherals occurs. The chip
bus hierarchy includes the controllers for system interrupts, test/emulation, and clock and power management. Synchronous clock domain
conversion is provided to support clock domain transactions between the
core and the system.
The processor system includes:
•The peripheral set (timers, real-time clock, TWI, Ethernet MAC
(ADSP-BF527), USB 2.0, GPIOs, UARTs, SPORTs, PPI, watchdog timer, and SPI)