Analog Devices ee-19 Application Notes

Engineer-To-Engineer Note EE-19
Technical Notes on using Analog Devices’ DSP components and development tools
Phone: (800) ANALOG-D, FAX: (781) 461-3010, EMAIL: dsp.support@analog.com, FTP: ftp.analog.com, WEB: www.analog.com/dsp
Copyright 1999, Analog Devices, Inc. All rights reserved. Analog Devices assumes no responsibility for customer product design or the use or application of customers’ products or for any infringements of patents or rights of others which may result from Analog Devices assistance. All trademarks and logos are property of their respective holders. Information furnished by Analog Devices Applications and Development Tools Engineers is believed to be accurate and reliable, however no responsibility is assumed by Analog Devices regarding the technical accuracy of the content provided in all Analog Devices’ Engineer-to-Engineer Notes.
Contributed by: Dan L. Last Modified: 10/20/97
routine that loads 24-bit program memory (PM) into internal RAM from an 8-bit boot memory device. Booting can occur automatically when the DSP is reset and/or while the DSP is running. Boot memory is divided into eight pages. Each page holds an entire memory image of the DSP’s internal PM. When configured to load PM from boot memory at reset, the DSP automatically loads boot-page 0.
Introduction
This document provides various strategies to increase the efficiency and usefulness of standard boot memory in 21xx systems (excluding the ADSP­218x). The following topics are covered:
Maximizing the efficiency of boot-page allocation
within the boot memory of your ADSP-21xx system.
Selecting the smallest boot memory device
possible for your ADSP-21xx system.
Creating multi-bank boot-page systems with 16
and 32 boot-pages.
Mapping program memory and data memory
into boot memory for large amounts of 8-bit wide storage.
Modifying the boot memory image file.
Description of an example system using all of
the above concepts.
These methods can be complicated to implement, yet can effectively streamline certain applications.
For more information on boot-pages, see section 10.4 of the ADSP-21xx Family User’s Manual, or the following Analog Devices Engineers Note: Boot
Paging I: FAQ - Boot Pages on the 21xx Family DSP’s (excluding 218x & CSP01), #XXX.
Boot Memory Overview
The Analog Devices ADSP-21xx family of Digital Signal Processors (DSP) have a built-in booting
Each 24-bit program memory word is stored in 4 bytes of boot memory. Therefore, the length of a boot-page (in bytes) is always 4 times the number of PM words stored within it.
This boot memory device is most commonly a ROM of some sort but can be any memory device (FLASH RAM, static RAM, or another processor) as long as it is fast enough and compatible with the DSP’s external memory interface.
Basic Boot Memory Interface
The standard method used to connect an ADSP­21xx DSP to boot memory is to connect pins A0-A13 of the external DSP bus to pins A0-A13 of the boot memory and pins D22 and D23 of the DSP to pins A14 and A15 of the boot memory. Pins A0-A12 cycle through the 8192 locations of each page. Pins A13, D22 and D23 select the page. This interface requires a minimum of 512 Kbits of boot memory.
The ADSP-21xx family DSPs built-in boot-page loading hardware assumes that the boot pages will be 8 Kbytes apart in boot memory. For example, boot page 0 starts at boot memory address 0, boot page 1 starts at boot memory address 0x2000(hex), etc. If your system uses a DSP that has less than 2Kwords of program memory, there is unused memory within each boot page in the boot memory. For instance, the ADSP-2115 has only 512 words of PM and requires 2 Kbytes of boot memory space per boot page. This leaves 6 Kbytes of boot memory unused per boot page. If the ADSP 2115 system uses all eight boot pages with this addressing scheme, the system requires 512 Kbits of boot
a
memory. This 512 Kbit boot memory has a maximum of 2K x 8 = 16 Kbytes worth of boot data and a minimum of 6K x 8 = 48 Kbytes of unused data. Figure 2 shows a memory map of this allocation scheme.
Removing Unused Memory
By rewiring the address lines from the DSP to the boot memory, the unused memory (a minimum of 6K x 8 = 48 Kbytes) is removed.
A DSP with 512 bytes of PM such as the ADSP­2105, 2115, 2163 and 2164, need only 2048 bytes to be read from each boot page because the internal PM is only 512 words long. By removing pins A11 and A12 from the boot memory and reconnecting pins A13, D22, and D23 (boot-page select lines) on the DSP to A11, A12 and A13 respectively, on the boot memory, the 6Kbytes per boot page that was previously unused is now eliminated and the pages are packed next to each other. The result is 8 boot pages stored in 128 Kbits of boot memory as opposed to the original 512 Kbits.
In a system that uses a DSP with 1K of PM such as the ADSP-2101, 2103, 2161, 2162 and 2111, each boot page is 4096 bytes in length because the internal PM is 1024 words long. Only pin A12 is removed and pins A13, D22 and D23 move down one address line. The result is 8 boot pages stored in 256 Kbits of boot memory verses the original 512 Kbits. Table 1 summarizes these relationships. For more information, see Section 5.4 in the ADSP-2100 Assembler Tools and Simulator Manual.
Total PM in DSP (words)
512 128 A11, A12
Min. Size of BM (Kbits)
Address Lines Left Disconnected
unused address line added as the most-significant unused address line of the boot memory. These unused lines can be tied to a memory mapped flip­flop in a DSP system.
To load a boot page from another bank first write to the flip-flop and specify the bank, then write to the System Control Register (SYSCON) and write the boot-page number. The unused bits may also be connected to hard switches, or to an entirely separate system. To connect these unused bits, the actual boot memory image file(s) created by the 21xx splitter must be modified. See “Modifying the Boot Memory Image file” section later in this article.
Mapping PM or DM Space into Boot Memory
With a little logic between the ADSP-2115 and boot memory, it is possible to map PM and/or DM into unused portions of the boot memory. Although this data is only 8-bits wide, it can store other data such as function look-up tables and/or data constants.
To map PM and/or DM into unused portions of the boot memory, both the boot memory select pin (BMSL) and data or program memory select (PMSL) pins must logically select different sections of the boot memory.
In addition, the 14 address lines from the DSP must connect directly to the 14 least significant address lines of the boot memory. Less than 14 address lines can be used to allocate a smaller block of PM or DM but they should be contiguously connected on both the DSP and boot memory. If no memory-efficient allocation scheme is used this method is not necessary (page packing). If this scheme is used, additional logic is needed to allow BM, DM and PM accesses to function correctly.
1024 256 A11 2048 512 (none)
Table 1 : DSP Boot Memory Sizes
Creating Multiple Boot-Page ‘Banks’
To create a system that uses more than 8 boot pages, the boot memory must be an order of 2x larger than the minimum size of boot memory as defined in Table 1. A boot memory size of 2x yields 16 boot pages: 4x yields 32 boot pages. Every time the boot memory is increased 2x, there is one
EN-19 Page 2
Technical Notes on using Analog Devices’ DSP components and development tools
Phone: (800) ANALOG-D, FAX: (781) 461-3010, FTP: ftp.analog.com, EMAIL: dsp.support@analog.com
Modifying the Boot Memory Image file
If you alter the configuration of the address lines between the DSP and the boot memory, the ASCII boot memory image file (*.bnm) created by the splitter must also be modified to reflect these changes. In many cases a simple text editor macro can perform all of the required modifications. Below are descriptions of the various boot memory image file modifications required for the various schemes described throughout this document.
Loading...
+ 3 hidden pages