Page 1
DSP56009 24-Bit Digital Signal Processor User’s Manual Motorola, Incorporated Semiconductor Products Sector DSP Division 6501 William Cannon Drive West Austin, TX 78735-8598...
Page 2
Motorola products are not authorized for use as components in life support devices or systems intended for surgical implant into the body or intended to support or sustain life. Buyer agrees to notify Motorola of any such intended end use whereupon Motorola shall determine availability and suitability of its product or products for the use intended.
Page 3
OVERVIEW SIGNAL DESCRIPTIONS MEMORY, OPERATING MODES, AND INTERRUPTS EXTERNAL MEMORY INTERFACE SERIAL HOST INTERFACE SERIAL AUDIO INTERFACE GENERAL PURPOSE I/O BOOTSTRAP CODE CONTENTS PROGRAMMING REFERENCE APPLICATION EXAMPLES INDEX...
Page 4
OVERVIEW SIGNAL DESCRIPTIONS MEMORY, OPERATING MODES, AND INTERRUPTS EXTERNAL MEMORY INTERFACE SERIAL HOST INTERFACE SERIAL AUDIO INTERFACE GENERAL PURPOSE I/O BOOTSTRAP CODE CONTENTS PROGRAMMING SHEETS APPLICATION EXAMPLES INDEX...
The versatile, on-board peripherals allow the DSP to be easily connected to almost any other processor with little or no additional logic. The low pin-count (80 pins) allows the DSP56009 to be available in a small, inexpensive package.
• Appendix A—Bootstrap Code Listings lists the code used to bootstrap the DSP56009. • Appendix B—Programming Reference provides a quick reference for the instructions and registers used by the DSP56009. These sheets are provided with the expectation that they be photocopied and used by programmers when programming the registers.
(see Table 1-1). For example, the RESET pin is active when pulled to ground. Therefore, references to the RESET pin will always have an overbar. Such pins and signals are also said to be “active low” or “low true.” MOTOROLA DSP56009 User’s Manual...
The DSP56009 consists of the DSP56000 core, program and data memory, and peripherals useful for embedded control applications. The following paragraphs provide a list of DSP56009 features and a brief description of its core and peripheral components. • General Features –...
Page 25
– On-chip 4352 × 24-bit Y data RAM and 1792 × 24-bit Y data ROM – On-chip 4608 × 24-bit X data RAM and 3072 × 24-bit X data ROM – On-chip 10240 × 24-bit Program ROM – On-chip 512 × 24-bit Program RAM and 64 × 24-bit bootstrap ROM MOTOROLA DSP56009 User’s Manual...
– Four independent, programmable GPIO lines DSP56009 ARCHITECTURAL OVERVIEW The DSP56009 is a member of the 24-bit DSP56000 family. The DSP is composed of the 24-bit DSP56000 core, memory, and a set of peripheral modules as shown in Figure 1-1 on page 1-9. The 24-bit DSP56000 core is composed of a Data ALU, an...
IRQA, IRQB NMI, RESET AA0248k Figure 1-1 DSP56009 Block Diagram The DSP56000 core is dual-natured in that there are two independent, expandable data memory spaces, two address arithmetic units, and a Data ALU that has two accumulators and two shifter/limiters. The duality of the architecture makes it easier to write software for DSP applications.
• Serial Host Interface (SHI)—The SHI provides a fast, yet simple serial interface to connect the DSP56009 to a host processor or to another serial peripheral device. Two serial protocols are available: the Motorola Serial Peripheral Interface (SPI) bus and the Philips Inter Integrated-circuit Control C) bus.
Overview DSP56009 Architectural Overview 1.3.2.1 Data Arithmetic and Logic Unit (ALU) The Data Arithmetic and Logic Unit (ALU) has been designed to be fast and provide the capability to process signals having a wide dynamic range. Special circuitry has been provided to facilitate the processing of data overflows and round-off errors. The Data ALU performs all of the arithmetic and logical operations on data operands.
Overview DSP56009 Architectural Overview AGU registers may be read from or written to via the Global Data Bus as 16-bit operands. The AGU has two modulo arithmetic units that can generate two independent 16-bit addresses every instruction cycle for any two of the XAB, YAB, or PAB.
1.3.3 Memories The three independent memory spaces of the DSP56009—X data, Y data, and program—and their configurations are discussed briefly here. See Section 3 for more detail Memory, Operating Modes, and Interrupts 1.3.3.1...
Page 32
Overview DSP56009 Architectural Overview Table 1-2 Interrupt Starting Addresses and Sources (Continued) Interrupt Interrupt Source Starting Address P:$000A 0–2 IRQB P:$000C Reserved P:$000E Reserved P:$0010 0–2 SAI Left Channel Transmitter if TXIL = 0 P:$0012 0–2 SAI Right Channel Transmitter if TXIL = 0 P:$0014 0–2...
Bootstrap ROM The bootstrap ROM occupies locations 0–31 ($0–$1F) and 256–287 ($100–$11F) in two areas in the memory map on the DSP56009. The bootstrap ROM is factory-programmed to perform the bootstrap operation following hardware reset; it either jumps to the user’s ROM starting address (P:$2000) or downloads up to 512 words of user program from either the EMI port or the SHI port (in SPI or I format).
Program RAM are read-disabled but write-accessible. The contents of the bootstrap ROM are listed in Appendix A. 1.3.3.6 External Memory The DSP56009 does not extend internal memory off chip. However, external memory can be added using the EMI. See Section 4, for a detailed External Memory Interface description of the EMI.
Page 35
Overview DSP56009 Architectural Overview Table 1-4 On-chip Peripheral Memory Map (Continued) Address Register X:$FFF6 EMI Write Offset Register (EWOR) X:$FFF5 Reserved X:$FFF4 Reserved X:$FFF3 SHI Receive FIFO/Transmit Register (HRX/HTX) X:$FFF2 SHI I C Slave Address Register (HSAR) X:$FFF1 SHI Host Control/Status Register (HCSR)
This interface facilitates the storage of audio samples for digital reverberation algorithms and permits simple implementation of large data delay buffers in external memory. The EMI on the DSP56009 is designed to connect directly to Dynamic RAM (DRAM) of the following sizes: •...
Overview DSP56009 Architectural Overview 1.3.4.3 Serial Audio Interface (SAI) The DSP can communicate with other devices through the SAI. The SAI provides a synchronous full-duplex serial port for serial connection with a variety of audio devices such as Analog-to-Digital (A/D) converters, Digital-to-Analog (D/A) converters, Compact Disk (CD) devices, etc.
Signal Descriptions Signal Groupings SIGNAL GROUPINGS The DSP56009 input and output signals are organized into the nine functional groups, as shown in Table 2-1. The individual signals are illustrated in Figure 2-1. Table 2-1 DSP56009 Functional Group Signal Allocations Detailed...
Address Bus Ground —GND provides isolated ground for sections of the address bus I/O drivers. This connection must be tied externally to all other chip ground connections. The user must provide adequate external decoupling capacitors. MOTOROLA DSP56009 User’s Manual...
DSP clock. The PLL output is divided by two to produce a four-phase instruction cycle clock, with the minimum instruction time being two PLL output clock periods. If the PLL is disabled, EXTAL is divided by two to produce the four-phase instruction cycle clock. DSP56009 User’s Manual MOTOROLA...
PCAP and the other terminal to V . The required capacitor value is specified in the DSP56009 Technical Data sheets. When short lock time is critical, low dielectric absorption capacitors such as polystyrene, polypropylene, or teflon are recommended.
Page 46
If the data bus width is defined as four bits wide, only signals MD0–MD3 are active, while signals MD4–MD7 remain tri-stated. While tri-stated, MD0–MD7 are disconnected from the pins and do not require external pull-ups. DSP56009 User’s Manual MOTOROLA...
Driven High Driven High Driven Low Driven High MCS0 — Driven High Driven High Driven High Driven High — Driven High Driven High Driven High Driven High — Driven High Driven High Driven High Driven High MOTOROLA DSP56009 User’s Manual...
While the DSP is in the Stop mode, asserting IRQA gates on the oscillator and, after a clock stabilization delay, enables clocks to the processor and peripherals. Hardware reset causes this input to function as MODA. 2-10 DSP56009 User’s Manual MOTOROLA...
Page 49
However, as the fall time of the interrupt signal increases, the probability that noise on IRQB will generate multiple interrupts also increases. Hardware reset causes this input to function as MODB. MOTOROLA DSP56009 User’s Manual 2-11...
Page 50
However, as the fall time of the interrupt signal increases, the probability that noise on NMI will generate multiple interrupts also increases. Hardware reset causes this input to function as MODC. 2-12 DSP56009 User’s Manual MOTOROLA...
Page 51
RESET signal. For proper hardware reset to occur, the clock must be active, since a number of clock ticks are required for proper propagation of the hardware reset state. MOTOROLA DSP56009 User’s Manual 2-13...
Fosc for the SPI mode and for the I C mode. This signal is tri-stated during hardware reset, software reset, or individual reset (no need for external pull-up in this state). 2-14 DSP56009 User’s Manual MOTOROLA...
Page 53
A low-to-high transition of SDA while SCL is high is an unique situation, and is defined as the Stop event. Note: This line is tri-stated during hardware reset, software reset, or individual reset (no need for external pull-up in this state). MOTOROLA DSP56009 User’s Manual 2-15...
Page 54
SS is deasserted, the SHI ignores SCK clocks and keeps the MISO output signal in the high-impedance state. Note: This signal is tri-stated during hardware reset, software reset, or individual reset (no need for external pull-up in this state). 2-16 DSP56009 User’s Manual MOTOROLA...
Page 55
HREQ to proceed to the next transfer. Note: This signal is tri-stated during hardware, software, individual reset, or when the HREQ[1:0] bits (in the HCSR) are cleared (no need for external pull-up in this state). MOTOROLA DSP56009 User’s Manual 2-17...
Note: SCKR is high impedance if all receivers are disabled (individual reset) and during hardware or software reset, or while the DSP is in the Stop state. 2-18 DSP56009 User’s Manual MOTOROLA...
Page 57
DSP is in the Stop state. While in the high impedance state, the internal input buffer is disconnected from the signal and no external pull-up is necessary. MOTOROLA DSP56009 User’s Manual 2-19...
(individual reset), during hardware reset, software reset, or while the DSP is in the Stop state. While in the high impedance state, the internal input buffer is disconnected from the pin and no external pull-up is necessary. 2-20 DSP56009 User’s Manual MOTOROLA...
Note: Hardware reset or software reset configures all the GPIO lines as disconnected (external circuitry connected to these pins may need pull-ups until the pins are configured for operation). MOTOROLA DSP56009 User’s Manual 2-21...
Note: If the OnCE port is in use, an external pull-down resistor should be attached to the DSI/OS0 signal. If the OnCE port is not in use, the resistor is not required. 2-22 DSP56009 User’s Manual MOTOROLA...
Page 61
Note: If the OnCE port is in use, an external pull-down resistor should be attached to the DSCK/OS1 pin. If the OnCE port is not in use, the resistor is not required. MOTOROLA DSP56009 User’s Manual 2-23...
Page 62
OnCE port is ready to receive the data to be written; after the data is written, another acknowledge pulse will be provided. Note: During hardware reset and when idle, the DSO line is held high. 2-24 DSP56009 User’s Manual MOTOROLA...
Page 63
For more information, see Methods Of Entering The Debug Mode in the DSP56000 Family Manual. Note: If the OnCE port is not in use, an external pull-up resistor should be attached to the DR line. MOTOROLA DSP56009 User’s Manual 2-25...
Page 64
Signal Descriptions On-Chip Emulation (OnCE ) Port 2-26 DSP56009 User’s Manual MOTOROLA...
Introduction INTRODUCTION The DSP56009 program and data memories are independent, and the on-chip data memory is divided into two separate memory spaces, X and Y. There are also two on-chip data ROMs in the X and Y data memory spaces, and a bootstrap ROM that can overlay part of the Program RAM.
The X data ROM occupies locations $2000–$2BFF in the X data memory space. The functions contained in the X data ROM are listed in the DSP56009 Technical Data sheet. For more detailed information, contact the Motorola DSP technical help line.
$000005, which is the opcode for the ILLEGAL instruction. DSP56009 DATA AND PROGRAM MEMORY MAPS The memory in the DSP56009 can be mapped into four different configurations according to the PEA and PEB bits in the OMR. Memory maps for each of the four configurations are shown in Figure 3-1, Figure 3-2, Figure 3-3, and Figure 3-4 on the following pages.
Memory, Operating Modes, and Interrupts DSP56009 Data And Program Memory Maps X Data Y Data Program $FFFF $FFFF $FFFF Internal I/O $FFC0 Reserved $FFBF Reserved Reserved $4800 $2C00 $47FF $2700 $2BFF Internal $26FF Internal Internal $2000 $2000 $2000 $1FFF $1FFF...
Memory, Operating Modes, and Interrupts DSP56009 Data And Program Memory Maps X Data Y Data Program $FFFF $FFFF $FFFF Internal I/O $FFC0 Reserved $FFBF Reserved Reserved $4800 $2C00 $47FF $2700 $2BFF $26FF Internal Internal Internal $2000 $2000 $2000 $1FFF $1FFF...
Memory, Operating Modes, and Interrupts DSP56009 Data And Program Memory Maps 3.3.1 Dynamic Switching of Memory Configurations The internal memory configuration is altered by re-mapping RAM modules from X and Y data memories into program memory space and vise-versa. Data contents of the switched RAM modules are preserved.
Although labelled reserved on the DSP56009, the BCR remains active. The BCR is cleared by reset and should remain cleared (i.e., do not write to this location) since the DSP56009 does not make use of the BCR function. MOTOROLA DSP56009 User’s Manual...
The DSP operating mode bits, MC, MB, and MA, select the operating mode of the DSP56009. These operating modes are described in Section 3.5 Operating Modes on the following page. On hardware reset, MC, MB, and MA are loaded from the external mode select pins MODC, MODB, and MODA, respectively.
STOP instruction will allow a faster start up of the DSP. OPERATING MODES The DSP56009 operating modes are defined as described below and summarized in Table 3-3 on page 3-13. The operating modes are latched from pins MODA, MODB, and MODC during reset and can be changed by writing to the OMR.
Table 3-3 Operating Modes Mode Operating Mode C B A Normal operation, bootstrap disabled Bootstrap from EMI Wake up in Program ROM address $2000 Reserved Reserved Bootstrap from SHI (SPI mode) Reserved Bootstrap from SHI (I C mode) MOTOROLA DSP56009 User’s Manual 3-13...
• Bits 10–15 are available for determining IPLs for each peripheral (EMI, SHI, SAI). Two IPL bits are required for each peripheral interrupt group. The interrupt priorities are shown in Table 3-4 and the interrupt vectors are shown in Table 3-5. 3-14 DSP56009 User’s Manual MOTOROLA...
SHI Receive Overrun Error SHI Transmit Underrun Error SHI Receive FIFO Full SHI Transmit Data SHI Receive FIFO Not Empty EMI EBAR0 Memory Wrap EMI EBAR1 Memory Wrap EMI Read Data Lowest EMI Write Data MOTOROLA DSP56009 User’s Manual 3-15...
• the PLL VCO frequency is divided by the Low Power Divider (LPD) and then used as the internal DSP clock if CSRC is cleared. The DSP56009 PLL multiplication factor is set to 3 during hardware reset, which means that the Multiplication Factor bits (MF[11:0]) in the PCTL are set to $002. The PLL may be disabled (PEN = 0) upon reset by pulling the PINIT pin low.
HARDWARE RESET OPERATION The processor enters the Reset processing state after the external RESET pin is asserted (hardware reset occurs) for the specified minimum time (See DSP56009 Technical Data sheet). The Reset state: • resets internal peripheral devices by initializing their control registers as described in the individual peripheral sections, •...
(EDRR). This will trigger an EMI read operation in which the data is read from the external memory device and is stored in the EDRR. The end of operation is signaled by a status bit or by an interrupt request. MOTOROLA DSP56009 User’s Manual...
– Absolute Addressing for program bootstrap and overlays (SRAM or EPROM), and to access external peripherals – Two base registers to handle two delay buffers in parallel – Base-offset address calculation for data-delay buffers – Optional base address post update (increment) DSP56009 User’s Manual MOTOROLA...
0, then in order to write the data sample delayed by N, the value of N should be written into the EWOR. Note: The EWOR is cleared by hardware reset and software reset. MOTOROLA DSP56009 User’s Manual...
(to the right) before being transferred to the EDRR. When writing 12-bit or 20-bit words to external memory via a 4-bit data bus, only the most significant 12 or 20 bits of the EDRB contents are transferred. Similarly, when MOTOROLA DSP56009 User’s Manual...
Note: EBW is cleared by hardware reset and software reset. Table 4-3 EMI Memory Accesses and Locations Per Word Memory Memory Addressing Bus Width Word Length locations/ accesses/ word word Relative Relative Relative Relative Relative Relative 16 Data/24 Address 4-10 DSP56009 User’s Manual MOTOROLA...
The encoding of EWL[2:0] is shown in Table 4-4 . Note: EWL[2:0] are cleared by hardware reset and software reset. Table 4-4 EMI Word Length EWL2 EWL1 EWL0 Word Length 8-bit data word 16-bit data word MOTOROLA DSP56009 User’s Manual 4-11...
SRAM Relative MA[14:0] MCS[3:0] n.a. 128 K 0100 DRAM Relative MA[7:0] 64 K 0101 DRAM Relative MA[8:0] 256 K 0110 DRAM Relative MA[9:0] 0111 DRAM Relative MA[10:0] 10xx Reserved DRAM Absolute MA[7:0] 64 K 1100 4-12 DSP56009 User’s Manual MOTOROLA...
Bus Width Word Length Number of Words 0000 16 K 0000 10,922 0000 0000 6,553 0000 5,461 0000 32 K 0000 12 or 16 16 K 0000 20 or 24 10,922 0001 and 0010 128 K MOTOROLA DSP56009 User’s Manual 4-13...
Note: EINR is cleared by hardware reset and software reset. 4.2.7.5 EMI Increment EBAR After Write (EINW)—Bit 8 The read/write control bit EMI Increment EBAR after Write (EINW) enables the function of incrementing the contents of the relevant EBARx after a write operation. 4-16 DSP56009 User’s Manual MOTOROLA...
EBAR0 and EBAR1. The largest word address is reached when the value of the significant bits in EBARx is all 1s. The number of the significant bits in EBARx involved with address generation can be concluded from Table 4-13 MOTOROLA DSP56009 User’s Manual 4-17...
EDRB and the EDRR contain data after memory read operations. EBDF is cleared otherwise. Note: EBDF is cleared by hardware reset, software reset, individual reset, and while the DSP is in the Stop state. 4-18 DSP56009 User’s Manual MOTOROLA...
12 or 16 5 × (4 + ESTM) 6 × (4 + ESTM) 3 × (4 + ESTM) 20 or 24 Where ESTM is the value of the ESTM[3:0] bits, ranging from 0 to 15 4-20 DSP56009 User’s Manual MOTOROLA...
DSP is in the Debug mode independent of the state of EREF. Refresh cycle requests are generated according to the output clock rate of the refresh timer. If ERED is cleared, refresh cycle insertion is disabled when the DSP leaves the Debug mode. 4-22 DSP56009 User’s Manual MOTOROLA...
Address Register in use can be optionally incremented by one after calculating the word address. Base Address Offset Register C2–C0 Word Address: A23–A0 Relative Addressing Extension Bits Address Format Conversion EMI Address and Chip Select Pins AA0296 Figure 4-4 EMI Address Generation Block Diagram MOTOROLA DSP56009 User’s Manual 4-23...
(during a read operation) or unpacking (during a write operation) the data word segment. The accesses proceed from the least significant to the most significant portion of the word. For each of the accesses, the contents of 4-24 DSP56009 User’s Manual MOTOROLA...
Note: In this addressing mode, if the word length is 20 bits or 24 bits (or 16 bits using 24-bit addressing), it is possible to connect only three SRAMs (and save memory), since MCS0 will not be activated at all. Table 4-13 summarizes the address generation for the SRAM Addressing modes. MOTOROLA DSP56009 User’s Manual 4-25...
0 to 3 extension bits to the right (forming the LSBs of the column addresses). The extension bits are then used to generate the number of column addresses required. Address pins that are not required are kept at the MOTOROLA DSP56009 User’s Manual 4-27...
DRAM Relative Addressing mode (see Table 4-10 on page 4-19). The DRAM Absolute Addressing modes, however, are useful when 20- or 24-bit data words are used and the wasted memory locations that appear in the DRAM Relative 4-30 DSP56009 User’s Manual MOTOROLA...
This, however, must be assured. The EMI address translation is performed in such a way that it is possible to satisfy these requirements by carefully choosing the base addresses of the different data-delay buffers. MOTOROLA DSP56009 User’s Manual 4-31...
In order to avoid such a situation the user should set the ERED bit in the ERCR—see Section 4.2.8 EMI Refresh Control Register (ERCR). Refresh cycles will then be initiated by the internal refresh timer according to the ERCR setting. 4-32 DSP56009 User’s Manual MOTOROLA...
Note: Special attention should be given to cases in which data transfers are performed when the DSP is not polling status bits or receiving EMI interrupts, as the predetermined number of instruction cycles can change due to the insertion of external refresh cycles. MOTOROLA DSP56009 User’s Manual 4-33...
ERCR one-shot refresh enable bit (EOSR), thus inserting one refresh cycle at a time. Care should be taken to ensure that a sufficient number of refresh cycles are executed. Refer to Section 4.4.5 for more details. 4-34 DSP56009 User’s Manual MOTOROLA...
DRAM Refresh 4.4.5 DRAM Refresh Timing Table 4-17 shows the typical refresh requirements of some Motorola DRAM devices. Note that the column “periodic refresh per row” refers to the time between the refresh cycles if refreshing is continuous. Table 4-17 Typical DRAM Refresh Timing Requirements...
Figure 4-6 Timing Diagram of a DRAM Refresh Cycle (Fast) MRAS MCAS During a Refresh Cycle: MCSx, MRD and MWR are deasserted (high), data lines remain high impedance, and address lines remain unchanged. AA0299 Figure 4-7 Timing Diagram Of a DRAM Refresh Cycle (Slow) MOTOROLA DSP56009 User’s Manual 4-37...
When this occurs: – EBSY is set immediately, – the address calculation is executed at the next I , and – the external access starts at the next cycle after I and ends N I later. 4-38 DSP56009 User’s Manual MOTOROLA...
The EMI read interrupt can also be generated when both the EDRB and the EDRR are full. In this case, a single fast interrupt service with two MOVEP instructions can read two data words. 4-40 DSP56009 User’s Manual MOTOROLA...
Page 125
; read the data delayed by OFF_3 ; perform other operations ; or poll EDRF for EDRR full ; or wait a sufficient number of Icyc ; and then, movep X:<<EDRR0,X0 ; read the data delayed by OFF_4 MOTOROLA DSP56009 User’s Manual 4-41...
Page 126
; triggering from EDRR bclr #ERTS,X:<<ECSR ; set ERTS=0 (turn off EDRR triggering) ; perform other operations ; or poll EDRF for EDRR full ; or wait a sufficient number of Icyc ; and then, 4-42 DSP56009 User’s Manual MOTOROLA...
Data is only transferred from EDWR to the EDRB if the buffer is empty. This feature ensures synchronization between memory writes and DSP writes, as long as the DSP ensures that writes to EDWR occur only if EDWR is empty. MOTOROLA DSP56009 User’s Manual 4-43...
Page 128
; trigger the next memory write ; transfer perform other operations ; or poll EDWE for EDWR empty ; or wait a sufficient number of Icyc ; and then, movep #DATA_4,X:<<EDWR0 ; trigger the next memory write ; transfer 4-44 DSP56009 User’s Manual MOTOROLA...
DSP core, after the device exits the Wait state. No control or status bits in the ECSR and ERCR are affected by the Wait state. MOTOROLA DSP56009 User’s Manual 4-45...
(EBAR) Space. Illustration of One data-delay Buffer Illustration of Two Independent Moving Along the Memory Address Range Data-delay Buffers of Different Lengths Region of valid delayed data AA0401 Figure 4-9 Illustration of the Data-Delay Structure 4-46 DSP56009 User’s Manual MOTOROLA...
Page 131
EBARx is incremented, preparing the base address for the next sample. • The contents of EBARx should now be saved to an internal memory location to be used in future accesses to this data-delay buffer. MOTOROLA DSP56009 User’s Manual 4-47...
A[14:0] MD[7:0] DQ[7:0] Absolute SRAM Addressing (MCM60256A) GPIO3 DRAM Relative Addressing A[8:0] (EMI) A[8:0] DQ[3:0] DQ[3:0] DRAM DRAM MCM514256A MCM514256A MRAS MCAS AA0260k Figure 4-10 DRAM for Data Delay Buffers and for SRAM for Bootstrap 4-48 DSP56009 User’s Manual MOTOROLA...
Table 4-20 shows the maximum DSP clock frequencies while using typical DRAM devices: Table 4-20 Maximum DSP Clock Frequencies When Using DRAM DRAM Max Freq EDTM MCM54400A—60 ns 66 MHz 81 MHz MCM54400A—70 ns 50 MHz 81 MHz 4-50 DSP56009 User’s Manual MOTOROLA...
Timing Diagrams for DRAM Addressing Modes When operating in the DRAM modes, the timing is defined by the ECSR EDTM bit. The timing is classified as Fast (EDTM = 0) or Slow (EDTM = 1). MOTOROLA DSP56009 User’s Manual 4-51...
Finish last R/W cycle Start new memory cycle Column Address Address Address Address MRAS MCAS Read Valid Data In Data Write Valid Data Out Data AA0403 Figure 4-13 Fast Read or Write DRAM Access Timing—1 4-52 DSP56009 User’s Manual MOTOROLA...
New memory cycle Column Last Column Address Address Address Address Address MRAS MCAS Read Valid Valid Data In Data Data Write Valid Valid Data Out Data Data AA0404 Figure 4-14 Fast Read or Write DRAM Access Timing—2 MOTOROLA DSP56009 User’s Manual 4-53...
New memory cycle Column Last Column Address Address Address Address Address MRAS MCAS Read Valid Valid Data In Data Data Write Valid Valid Data Out Data Data AA0405 Figure 4-15 Fast Read or Write DRAM Access Timing—3 4-54 DSP56009 User’s Manual MOTOROLA...
New memory cycle Column Last Column Address Address Address Address Address MRAS MCAS Read Valid Valid Data In Data Data Write Valid Valid Data Out Data Data AA0406 Figure 4-16 Fast Read or Write DRAM Access Timing—4 MOTOROLA DSP56009 User’s Manual 4-55...
New memory cycle Column Last Column Address Address Address Address Address MRAS MCAS Read Valid Valid Data In Data Data Write Valid Valid Data Out Data Data AA0407 Figure 4-17 Fast Read or Write DRAM Access Timing—5 4-56 DSP56009 User’s Manual MOTOROLA...
New memory cycle Column Last Column Address Address Address Address Address MRAS MCAS Read Valid Valid Data In Data Data Write Valid Valid Data Out Data Data AA0408 Figure 4-18 Fast Read or Write DRAM Access Timing—6 MOTOROLA DSP56009 User’s Manual 4-57...
Finish last R/W cycle 9 10 11 12 New memory cycle Column Address Address Address Address MRAS MCAS Read Valid Data In Data Write Valid Data Out Data AA0409 Figure 4-19 Slow Read or Write DRAM Access Timing—1 4-58 DSP56009 User’s Manual MOTOROLA...
New memory cycle Column Last Column Address Address Address Address Address MRAS MCAS Read Valid Valid Data In Data Data Write Valid Valid Data Out Data Data AA0410 Figure 4-20 Slow Read or Write DRAM Access Timing—2 MOTOROLA DSP56009 User’s Manual 4-59...
New memory cycle Column Last Column Address Address Address Address Address MRAS MCAS Read Valid Valid Data In Data Data Write Valid Valid Data Out Data Data AA0411 Figure 4-21 Slow Read or Write DRAM Access Timing—3 4-60 DSP56009 User’s Manual MOTOROLA...
New memory cycle Column Last Column Address Address Address Address Address MRAS MCAS Read Valid Valid Data In Data Data Write Valid Valid Data Out Data Data AA0412 Figure 4-22 Slow Read or Write DRAM Access Timing—4 MOTOROLA DSP56009 User’s Manual 4-61...
New memory cycle Column Last Column Address Address Address Address Address MRAS MCAS Read Valid Valid Data In Data Data Write Valid Valid Data Out Data Data AA0413 Figure 4-23 Slow Read or Write DRAM Access Timing—5 4-62 DSP56009 User’s Manual MOTOROLA...
New memory cycle Column Last Column Address Address Address Address Address MRAS MCAS Read Valid Valid Data In Data Data Write Valid Valid Data Out Data Data AA0414 Figure 4-24 Slow Read or Write DRAM Access Timing—6 MOTOROLA DSP56009 User’s Manual 4-63...
Table 4-11 on page 4-20. Repeat One Nibble or Byte Access ESTM + 1 last Address MRAS MCAS Read Valid Data In Data Write Valid Data Out Data AA0415 Figure 4-25 SRAM Read/Write Timing 4-64 DSP56009 User’s Manual MOTOROLA...
The SHI can also communicate with other serial peripheral devices. The SHI can interface directly to either of two well-known and widely used synchronous serial buses: the Motorola Serial Peripheral Interface (SPI) bus and the Philips Inter-Integrated-circuit Control (I C) bus.
• Host side—see Figure 5-3 below and Section 5.3.1 on page 5-8 • DSP side—see Figure 5-4 on page 5-6 and Sections 5.3.2 on page 5-8 through 5.3.6 on page 5-13 for detailed information I/O Shift Register (IOSR) IOSR AA0418 Figure 5-3 SHI Programming Model—Host Side MOTOROLA DSP56009 User’s Manual...
Page 154
Serial Host Interface Serial Host Interface Programming Model DSP56009 User’s Manual MOTOROLA...
SHI Bus Error Table 5-2 SHI Internal Interrupt Priorities Priority Interrupt Highest SHI Bus Error SHI Receive Overrun Error SHI Transmit Underrun Error SHI Receive FIFO Full SHI Transmit Data Lowest SHI Receive FIFO Not Empty MOTOROLA DSP56009 User’s Manual...
In the single-byte data transfer mode the most significant byte of the HTX is transmitted; in the double-byte mode the two most significant bytes, and in the triple-byte mode all the HTX is transferred. DSP56009 User’s Manual MOTOROLA...
The SHI Clock Control Register (HCKR) is a 24-bit read/write register that controls the SHI clock generator operation. The HCKR bits should be modified only while the SHI is in the individual reset state (HEN = 0 in the HCSR). MOTOROLA DSP56009 User’s Manual...
Figure 5-6 SPI Data-To-Clock Timing Diagram The Clock Phase (CPHA) bit controls the relationship between the data on the MISO and MOSI pins and the clock produced or received at the SCK pin. This control bit is 5-10 DSP56009 User’s Manual MOTOROLA...
HCKR Prescaler Rate Select (HRS)—Bit 2 The HRS bit controls a prescaler in series with the clock generator divider. This bit is used to extend the range of the divider when slower clock rates are desired. When MOTOROLA DSP56009 User’s Manual 5-11...
When HFM1 = 1 and HFM0 = 0, the narrow-spike-tolerance filter mode is selected. In this mode the filters eliminate spikes with durations of up to 20ns. This mode is suitable for use in mildly noisy environments and imposes some limitations on the maximum achievable bit-rate transfer. 5-12 DSP56009 User’s Manual MOTOROLA...
When HI C is cleared, the SHI operates in the SPI mode. When HI C is set, the SHI operates in the I C mode. HI C affects the functionality of the SHI pins as MOTOROLA DSP56009 User’s Manual 5-13...
Section 5.3.6.17 Host Bus Error (HBER)—Bit 21). When configured as an I C Master, the SHI controls the I C bus by generating Start events, clock pulses, and Stop events for transmission and reception of serial data. It is 5-14 DSP56009 User’s Manual MOTOROLA...
ACK on the last byte. As a result, the slave transmitter must release the SDA line to allow the master to generate the Stop event. If the SHI completes receiving a word and the HRX FIFO is full, the clock will be MOTOROLA DSP56009 User’s Manual 5-15...
HRNE and HRFF (bits 17 and 19, see below) status bits must be polled to determine if there is data in the receive FIFO. If HRIE[1:0] are not cleared, receive interrupts will be generated according to Table 5-6. 5-16 DSP56009 User’s Manual MOTOROLA...
DSP. HTDE is set when the data word is transferred from HTX to the shift register, except for a special case in SPI Master mode when CPHA = 0 (see HCKR). When operating in the SPI Master mode with MOTOROLA DSP56009 User’s Manual 5-17...
SS is asserted; in this case, transmission is suspended at the end of transmission of the current word. HBER is cleared only by hardware reset, software reset, SHI individual reset, and during the Stop state. 5-18 DSP56009 User’s Manual MOTOROLA...
SS line should be held high. If the SS line is driven low when the SHI is in SPI Master mode, a bus error will be generated (the HCSR HBER bit will be set). MOTOROLA DSP56009 User’s Manual 5-19...
Changes in the data line when the clock line is high will be interpreted as control signals (see Figure 5-7). Data Line Change Stable: of Data Data Valid Allowed AA0422 Figure 5-7 I C Bit Transfer 5-20 DSP56009 User’s Manual MOTOROLA...
The device that acknowledges has to pull down the SDA line during the acknowledge clock pulse in such a way that the SDA line is stable low during the high period of the acknowledge-related clock pulse (see Figure 5-9). MOTOROLA DSP56009 User’s Manual 5-21...
(this feature is not supported by the SHI when operating as an I C master device). This method is also used to provide indivisible data transfers. Various combinations of read/write formats are illustrated in Figure 5-10 and Figure 5-11. 5-22 DSP56009 User’s Manual MOTOROLA...
SHI may communicate with an external device by receiving and/or transmitting data. Before changing the SHI operational mode, an SHI individual reset should be generated by clearing the HEN bit. The following paragraphs describe programming considerations for each operational mode. MOTOROLA DSP56009 User’s Manual 5-23...
The HREQ line may be used to interrupt the external master device. Connecting the HREQ line between two SHI-equipped DSPs, one operating as an SPI master device and the other as an SPI slave device, enables full hardware handshaking if operating with CPHA = 1. 5-24 DSP56009 User’s Manual MOTOROLA...
The HRX FIFO contains valid receive data, which may be read by the DSP, if the HRNE status bit is set. Note: Motorola recommends that an SHI individual reset (HEN cleared) be generated before beginning data reception in order to reset the receive FIFO to its initial (empty) state, such as when switching from transmit to receive data.
Page 174
R/W bit of the received slave device address byte has been cleared. Following a receive initiation, data in the SDA line is shifted into IOSR MSB first. Following each received byte, an acknowledge (ACK = 0) is sent at the 5-26 DSP56009 User’s Manual MOTOROLA...
Page 175
I C frame so that they fit in a complete number of words. For this purpose, the slave device address byte does not count as part of the data, and therefore, it is treated separately. MOTOROLA DSP56009 User’s Manual 5-27...
Page 176
Note: The slave address byte should be located in the high portion of the data word, whereas the middle and low portions are ignored. Only one byte (the slave address byte) will be shifted out, independent of the word length defined by the HM0–HM1 bits. 5-28 DSP56009 User’s Manual MOTOROLA...
Page 177
As a result, the last byte of the next received data word is not acknowledged, the slave transmitter releases the SDA line, and the SHI generates the Stop event and terminates the session. MOTOROLA DSP56009 User’s Manual 5-29...
Page 178
HTX are empty, the SHI will suspend the serial clock until new data is written into HTX (when the SHI proceeds with the transmit session) or HIDLE is set (the SHI reactivates the clock to generate the Stop event and terminate the transmit session). 5-30 DSP56009 User’s Manual MOTOROLA...
• The HCSR status bits and the transmit/receive paths are reset to the same state produced by hardware reset or software reset. • The HCSR and HCKR control bits are not affected. Note: Motorola recommends that the SHI be disabled before entering the Stop state. MOTOROLA DSP56009 User’s Manual...
Page 180
Serial Host Interface SHI Programming Considerations 5-32 DSP56009 User’s Manual MOTOROLA...
• Maximum external serial clock rate equal to one third of the DSP core clock • Separate transmit and receive sections • Master or Slave operating modes • Three synchronized data transmission lines • Two synchronized data reception lines • Double-buffered MOTOROLA DSP56009 User’s Manual...
32 bits. This is done by disabling eight data shifts at the beginning/end of the data word transfer, according to the RDWT bit in the RCS register. These shift registers cannot be directly accessed by the DSP. MOTOROLA DSP56009 User’s Manual...
TRDE and TLDE are cleared, and the transmit section external pins, Word Select Transmit (WST) and Serial Clock Transmit (SCKT), are tri-stated. The transmitter section is illustrated in Figure 6-3 . DSP56009 User’s Manual MOTOROLA...
This is done by enabling eight data shifts at the beginning/end of the data word transfer, according to the TDWE bit in the TCS register. These shift registers cannot be directly accessed by the DSP. MOTOROLA DSP56009 User’s Manual...
RXIL bit in the Receive Control Status (RCS) register. The interrupt vector locations for the SAI are shown in Table 6-1 . The interrupts generated by the SAI are prioritized as shown in Table 6-2 . DSP56009 User’s Manual MOTOROLA...
When read by the DSP, the BRC appears on the two low-order bytes of the 24-bit word, and the high-order byte is read as 0s. The BRC is cleared during hardware reset and software reset. MOTOROLA DSP56009 User’s Manual...
The read/write Receiver 0 Enable (R0EN) control bit enables the operation of SAI Receiver 0. When R0EN is set, Receiver 0 is enabled. When R0EN is cleared, Receiver 0 is disabled. If both R0EN and R1EN are cleared, the receiver section is disabled, 6-10 DSP56009 User’s Manual MOTOROLA...
16 most significant bits of the receive data register, independent of the Receiver data shift Direction bit (RDIR, see below), while the 8 least significant bits of the receive data register are cleared. If a 32-bit word length is selected, 8 bits are MOTOROLA DSP56009 User’s Manual 6-11...
Left data word and WSR low identifies the Right data word (see Figure 6-6 ). The RLRS bit is cleared during hardware reset and software reset. RLRS = 0 Right Left Left Right RLRS = 1 AA0432 Figure 6-6 Receiver Left/Right Selection (RLRS) Programming 6-12 DSP56009 User’s Manual MOTOROLA...
WSR occurs one serial clock cycle earlier (together with the last bit of the previous data word), as required by the I S format (see Figure 6-8 ). The RREL bit is cleared during hardware reset and software reset. MOTOROLA DSP56009 User’s Manual 6-13...
Channel Receiver, the Right Channel Receiver and the Receiver Exception interrupt vectors are located in program addresses $46, $48, and $4A, respectively. The RXIL bit is cleared during hardware reset and software reset. Refer to Table 6-1 on page 6-9. MOTOROLA DSP56009 User’s Manual 6-15...
RXIE is set, an interrupt request will be issued when RRDF is set. The vector of the interrupt request will depend on the state of the receive overrun condition. The RRDF bit is cleared during hardware reset and software reset. 6-16 DSP56009 User’s Manual MOTOROLA...
SDO1 line is set to high level. If T0EN, T1EN and T2EN are cleared, the SAI transmitter section is disabled and enters the individual reset state. The T1EN bit is cleared during hardware reset and software reset. MOTOROLA DSP56009 User’s Manual 6-17...
When TDIR is cleared, transmit data is shifted out MSB first. When TDIR is set, the data is shifted out LSB first (see Figure 6-10). The TDIR bit is cleared during hardware reset and software reset. 6-18 DSP56009 User’s Manual MOTOROLA...
SDOx lines change synchronously with the positive edge of the clock, and are considered valid during negative transitions of the clock (see Figure 6-12). The TCKP bit is cleared during hardware reset and software reset. MOTOROLA DSP56009 User’s Manual 6-19...
The read/write Transmitter Data Word Expansion (TDWE) control bit selects the method used to expand a 24-bit data word to 32 bits during transmission. When TDWE is cleared, after transmitting the 24-bit data word from the transmit data 6-20 DSP56009 User’s Manual MOTOROLA...
TRDE = 1. The transmit data registers should be loaded with the right data words. 3. Transmit interrupt with exception (underrun) is generated when TXIE = 1, TLDE = 1, and TRDE = 1. This means that old data is being retransmitted. MOTOROLA DSP56009 User’s Manual 6-21...
TCS register, followed by writing the transmit data registers of the enabled transmitters. If TXIE is set, an interrupt request will be issued when TLDE is set. The vector of the interrupt request will depend on the state of the transmit underrun 6-22 DSP56009 User’s Manual MOTOROLA...
The transmit data registers should be written with left channel and right channel data alternately. The first word to be transmitted, after enabling the operation of the respective transmitter, will be the left channel word. MOTOROLA DSP56009 User’s Manual 6-23...
When the condition arises for the receive interrupt to occur, the same interrupt service routine may be used to read data from the receiver section and to write data to the transmitter section. 6-24 DSP56009 User’s Manual MOTOROLA...
During a data word transfer (i.e., before completion), all transitions in WSR/WST are ignored. After completion of a data word transfer the SAI stops shifting data in and out until the next correct WSR/WST transition is detected. MOTOROLA DSP56009 User’s Manual 6-25...
Page 206
WSR/WST transition, the data bits being received are ignored and no data is transmitted. These characteristics can be used to disable reception or transmission of undesired data words by keeping SCKR (SCKT) running freely and gating WSR/WST for a certain number of bit-clock cycles. 6-26 DSP56009 User’s Manual MOTOROLA...
GPIOR are used to read from or write to the GPIO pins. Hardware reset and software reset clear all the bits in GPIOR. The GPIOR bits are described in the following paragraphs. MOTOROLA DSP56009 User’s Manual...
The read/write GPIO Control bits (GC[3:0]) select the type of output buffer for each of the GPIO[3:0] pins when the pins are defined as outputs, and select whether or not the input buffer is connected to the pin when the pin is defined as an input. DSP56009 User’s Manual MOTOROLA...
GPIOx pin output buffer is defined as an open-drain type (see Table 7-1 and Figure 7-2 ). The GC[3:0] bits are cleared during hardware reset and software reset. Buffer GD0-GD3 Control* See Table 7-1 GPIO Pin Configuration. AA0442k Figure 7-2 GPIO Circuit Diagram MOTOROLA DSP56009 User’s Manual...
24-bits long and are received through the SHI. The SHI operates in the Slave mode, with the 10-word FIFO enabled, and with the HREQ pin enabled for receive operation. The OnCE port is enabled by the bootstrap code. The bootstrap program listing is shown on the following page. MOTOROLA DSP56009 User’s Manual...
Bootstrap ROM Contents BOOTSTRAP PROGRAM LISTING ; BOOTSTRAP CODE FOR DSP56009—(C) Copyright 1995 Motorola Inc. ; Revised April 16, 1995. ; Bootstrap through EMI, SHI-SPI and SHI-I2C, according to op-modes MC:MB:MA. ; Occupies 32 words of bootstrap ROM in the address range P:$0-P:$1F $fffe ;...
Page 217
; for transfer is 24 bits. The SHI operates in the SPI or in the ; IIC mode, according to the Bootstrap mode. shild jclr #mb,omr,shi_loop; ;If MC:MB:MA = 101, then bset #hi2c,r1 ; IIC (HI2C = 1) MOTOROLA DSP56009 User’s Manual...
Page 218
; set operating mode to 0 ; (and trigger an exit from ; Bootstrap mode). movep a1,x:bcr ; Delay needed for Op. Mode ; change used to clear BCR. (r0) ; Then go to destination address. DSP56009 User’s Manual MOTOROLA...
OnCE Enabled Mode A? Mode C? Mode B? Download Download Download SHI/SPI SHI/I Switch to Switch to Normal Mode & Normal Mode & Go to P:$0 Go to P:$2000 AA0443k Figure A-1 Bootstrap Flow Chart MOTOROLA DSP56009 User’s Manual...
Page 220
Bootstrap ROM Contents DSP56009 User’s Manual MOTOROLA...
Table B-3 on page B-7 summarizes the instruction set. For more detailed information about the instructions, consult the DSP56000 Family Manual . PROGRAMMING SHEETS Figure B-2 on page B-14 through Figure B-17 on page B-29 are programming sheets for the complete set of programmable registers on the DSP. MOTOROLA DSP56009 User’s Manual...
Page 224
= Unused and reserved. Read as a random number. To ensure future compatibility, do not write to these registers. = Unused and reserved. Consult the appropriate chapter for information on how to ensure future compatibility. Figure B-1 On-chip Peripheral Memory Map DSP56009 User’s Manual MOTOROLA...
Page 225
Reserved P:$003E Illegal Instruction P: $0040 0–2 SAI Left Channel Transmitter if TXIL = 1 P: $0042 0–2 SAI Right Channel Transmitter if TXIL = 1 P: $0044 0–2 SAI Transmitter Exception if TXIL = 1 MOTOROLA DSP56009 User’s Manual...
Page 226
SHI Bus Error SHI Receive Overrun Error SHI Transmit Underrun Error SHI Receive FIFO Full SHI Transmit Data SHI Receive FIFO Not Empty EMI EBAR0 Memory Wrap EMI EBAR1 Memory Wrap EMI Read Data Lowest EMI Write Data DSP56009 User’s Manual MOTOROLA...
Page 227
* indicates that the bit may be set according to the definition, depending on parallel move conditions ? indicates that the bit is set according to a special definition. See the instruction descriptions in Appendix A of the DSP56000 Family Manual (DSP56KFAMUM/AD) 0 indicates that the bit is cleared MOTOROLA DSP56009 User’s Manual...
Page 228
* indicates that the bit may be set according to the definition, depending on parallel move conditions ? indicates that the bit is set according to a special definition. See the instruction descriptions in Appendix A of the DSP56000 Family Manual (DSP56KFAMUM/AD) 0 indicates that the bit is cleared DSP56009 User’s Manual MOTOROLA...
Page 229
* indicates that the bit may be set according to the definition, depending on parallel move conditions ? indicates that the bit is set according to a special definition. See the instruction descriptions in Appendix A of the DSP56000 Family Manual (DSP56KFAMUM/AD) 0 indicates that the bit is cleared MOTOROLA DSP56009 User’s Manual...
Page 230
* indicates that the bit may be set according to the definition, depending on parallel move conditions ? indicates that the bit is set according to a special definition. See the instruction descriptions in Appendix A of the DSP56000 Family Manual (DSP56KFAMUM/AD) 0 indicates that the bit is cleared B-10 DSP56009 User’s Manual MOTOROLA...
Page 231
* indicates that the bit may be set according to the definition, depending on parallel move conditions ? indicates that the bit is set according to a special definition. See the instruction descriptions in Appendix A of the DSP56000 Family Manual (DSP56KFAMUM/AD) 0 indicates that the bit is cleared MOTOROLA DSP56009 User’s Manual B-11...
Page 232
* indicates that the bit may be set according to the definition, depending on parallel move conditions ? indicates that the bit is set according to a special definition. See the instruction descriptions in Appendix A of the DSP56000 Family Manual (DSP56KFAMUM/AD) 0 indicates that the bit is cleared B-12 DSP56009 User’s Manual MOTOROLA...
Page 233
* indicates that the bit may be set according to the definition, depending on parallel move conditions ? indicates that the bit is set according to a special definition. See the instruction descriptions in Appendix A of the DSP56000 Family Manual (DSP56KFAMUM/AD) 0 indicates that the bit is cleared MOTOROLA DSP56009 User’s Manual B-13...
Page 234
Reset = $0300 Mode Register (MR) Condition Code Register (CCR) = Reserved, write as 0 Note: The operation and function of the Status Register is detailed in the DSP56000 Family Manual Figure B-2 Status Register (SR) B-14 DSP56009 User’s Manual MOTOROLA...
Application Examples TYPICAL AUDIO APPLICATION Figure C-2 depicts a sample configuration using the DSP56009 for AC3 Surround or DTS. Host Microcontroller Right Stereo DAC Left SAI Tx Center DSP56009 Stereo DAC ICE 958 Rx SAI Rx SAI Tx Subwoofer SAI Tx...
; load base address movep #(T_dly-1),x:EOR0 ; read trigger for delayed sample movep x:SAMPLE,x:EDWR0 ; write trigger for current sample movep x:EBAR0,y:Delay_Base ; store updated base address ; nop or other movep x:EDRR0,y0 ; read the delayed data MOTOROLA DSP56009 User’s Manual...
; write current sample to delay line. ; EWOR = 0 ; nop or other movep x:EDRR0,x1 ; read last data macr x1,y0,a ; compute the output movep x:EBAR0,y:FIR_Base ; store FIR base move a,x:FIR_output ; store result in internal memory DSP56009 User’s Manual MOTOROLA...
; load left channel output y0,b y;(r2)+,y0 x:(r4),a ; get right sample and gain values movep x:EBAR1,y:(r0)+ ; update base address (right) ; point (#2} ; insert “nop or other” ; instructions if required MOTOROLA DSP56009 User’s Manual...
Page 258
; point (#3} ; insert “nop or other” ; instructions if required ; nop or other ; nop or other end comb move x1,b x0,b y1,y:out_left ; store left output move b,x:out_right ; store right output DSP56009 User’s Manual MOTOROLA...
Page 259
Delay T Comb Filters for One Channel Base Base Buffers Buffers (Left) (Right) Offset Offset Buffers Buffers (Left) (Right) Gain Gain Buffers Buffers (Left) (Right) Sample Sample (Right) (Left) AA0448 Figure C-4 Two-Channel Comb Filter Structure MOTOROLA DSP56009 User’s Manual...
; get G3, wait 4 (DRAM)or 2 (SRAM) inst. cycles ; or do other tasks movep x:EDRR0,y0 ; get x(n-T3) movep x:SAMPLE,x:EDWR0 ; store x(n) in mem. x0,y0,a ; calculate y(n) = y(n) + G3 x(n-T3) C-10 DSP56009 User’s Manual MOTOROLA...
Page 261
Delay T2 Delay T3 Gain G1 Gain G2 Gain G3 y(n) = G1 x (n - T1) + G2 x (n - T2) + G3 x (n - T3) AA0449 Figure C-5 3 Tap FIR Filter MOTOROLA DSP56009 User’s Manual C-11...
Application Examples TYPICAL AUDIO APPLICATION Figure C-2 depicts a sample configuration using the DSP56009 for AC3 Surround or DTS. Host Microcontroller Right Stereo DAC Left SAI Tx Center DSP56009 Stereo DAC ICE 958 Rx SAI Rx SAI Tx Subwoofer SAI Tx...
; load base address movep #(T_dly-1),x:EOR0 ; read trigger for delayed sample movep x:SAMPLE,x:EDWR0 ; write trigger for current sample movep x:EBAR0,y:Delay_Base ; store updated base address ; nop or other movep x:EDRR0,y0 ; read the delayed data MOTOROLA DSP56009 User’s Manual...
; write current sample to delay line. ; EWOR = 0 ; nop or other movep x:EDRR0,x1 ; read last data macr x1,y0,a ; compute the output movep x:EBAR0,y:FIR_Base ; store FIR base move a,x:FIR_output ; store result in internal memory DSP56009 User’s Manual MOTOROLA...
; load left channel output y0,b y;(r2)+,y0 x:(r4),a ; get right sample and gain values movep x:EBAR1,y:(r0)+ ; update base address (right) ; point (#2} ; insert “nop or other” ; instructions if required MOTOROLA DSP56009 User’s Manual...
Page 276
; point (#3} ; insert “nop or other” ; instructions if required ; nop or other ; nop or other end comb move x1,b x0,b y1,y:out_left ; store left output move b,x:out_right ; store right output DSP56009 User’s Manual MOTOROLA...
Page 277
Delay T Comb Filters for One Channel Base Base Buffers Buffers (Left) (Right) Offset Offset Buffers Buffers (Left) (Right) Gain Gain Buffers Buffers (Left) (Right) Sample Sample (Right) (Left) AA0448 Figure C-4 Two-Channel Comb Filter Structure MOTOROLA DSP56009 User’s Manual...
; get G3, wait 4 (DRAM)or 2 (SRAM) inst. cycles ; or do other tasks movep x:EDRR0,y0 ; get x(n-T3) movep x:SAMPLE,x:EDWR0 ; store x(n) in mem. x0,y0,a ; calculate y(n) = y(n) + G3 x(n-T3) C-10 DSP56009 User’s Manual MOTOROLA...
Page 279
Delay T2 Delay T3 Gain G1 Gain G2 Gain G3 y(n) = G1 x (n - T1) + G2 x (n - T2) + G3 x (n - T3) AA0449 Figure C-5 3 Tap FIR Filter MOTOROLA DSP56009 User’s Manual C-11...