This document provides a description of the operation of
firmware for the CS470xx family of DSPs and attempts to
explain frequently used terminology and, at the same time,
systematically explains the OS operation and
communication for the CS470xx.
This document is a general overview to the family of
CS470xx Firmware User’s Manuals designated by the
general name AN333[X][Y]; where [X] = MPM (matrix
processing module), VPM (virtual processing module),
PPM (post processing module), and [Y] = A,B,C. The
CS470xx family of DSPs does not contain a compressed
data decoder.
http://www.cirrus.com
CS470xx Block Diagram
Copyright Cirrus Logic, Inc. 2014
(All Rights Reserved)
AN333
APR '14
1 Document Strategy
1Document Strategy
The CS470xx has been designed with inherently flexibility in terms of firmware usage. Each instance of operation of the
CS470xx can potentially use a different mix of DSP firmware, depending on the needs of the end user. The strategy
adopted to document the various DSP firmware is based on a single general overview firmware user’s manual coupled
with an individual application note for each DSP firmware module offered by Cirrus Logic.
The individual application notes each follow as an extension of AN333. These manuals have been named in such a way
so as to classify them into one of the following cate g or ies:
•Operating system and general overview
•Matrix processing module (MPM)
•Virtual processing module (VPM)
•Post-processing module (PPM)
Furthermore, since each classification (such as post-processing module) may contain several associated DSP firmware
modules, an incremental letter assignment (such as A, B, C) was given to index each DSP firmware document within a
given category. As an example, the table below outlines the ge neral naming conventions for several firmware documents.
Table 1-1. Naming Conventions
DSP Firmware ModuleBase NameOverlay TypeIndexDocument Reference Number
For a further breakdown of the available CS470xx firmware modules and their respective application note document
numbers, see Section 2.3. Contact your local field applications engineer (FAE) for the latest code updates and availability.
2AN333
2 Overview
2Overview
The firmware that runs on this device expects a stereo or multichannel PCM input source. This section describes the
overlays.
The DSP program memory is divided into five functional segments called overlays that can be thought of as the locations
for the firmware modules that are accessed and implemented by the DSP. Firmware modules are downloaded into their
respective overlays either from internal ROM, or from the host.
•OS Overlay
Manages the overall operation of the DSP. Also handles host communication, data inputs and outputs, and other
critical internal tasks.
•Decoder Overlay
The decoder overlay on CS47xx only supports the Do lby Dig ita l
•Matrix Processing Overlay
Performs additional channel generation, upmixing, and downmixing. This overlay is where algorithms such as
®
Dolby
•Virtual Processing Overlay
Performs stereo virtualizing to simulate multichannel systems, such as Dolby
Dolby Virtual Surround
•Post-processing Overlay
This overlay specifically caters to firmware that performs post-processing tasks. It allows the system designer
flexibility in tweaking the system for optimal audio performance and effects. This is also the segment in which
firmware modules such as the Audio Manager, Bass Manager, Tone Control, Delay, and Parametric EQ Module
reside.
Pro Logic® IIx and Cirrus Original Multichannel Surround 2™ (COMS-2) reside.
™
.
®
decoder in certain memory maps.
®
Audistry®, Dolby Headphone®, and
2.1 Code Image (.uld) Files
Each overlay is a separate code image file (.uld) that is loaded individually into the DSP. To ch ange the functionality of the
application, only the overlay of interest needs to be loaded. For example the post-processing overlay can be exchanged
from SPP to APP by reloading only the post-processing overlay. This reduces the system response time to user changes,
as well as the code image storage requirements.
There are four different memory configuration s of the program RAM size, denoted by p2, p4, p6, and p8 (p for program
memory; 2, 4, 6, and 8 are the number of kilowords; 1 word = 32 bits). Increasi ng P RAM decreases Y RAM, while X RAM
remains the same. Each overlay is denoted as p2, p4, p6, or p8 in the .uld file name to indicate which memory configuration
is used. For example, “ac3_p2_xxx.uld”.
Memory configuration must be consistent across all overlays (OS, decoder, MPM, VPM, and PPM).
2.2 Download Sequence
A standard procedure to download firmware to the DSP follows this structure at system power-up:
AN3333
Step 2 (optional): Download a matrix processing module
(Examples: Crossbar Mixer, Pro Logic IIx, DTS Neo:6®)
Automatically fills the matrix processing overlay.
Step 3 (optional): Download a virtual processing module
(Exa mples : SPP, APP)
Automatically fills the post-processing overlay. If SPP or APP is not required, then the bare
requirement f or t his overlay is the Audio Manager module.
Step 1: Download the firmware OS _p*_**.uld
Automatically fills the OS over lay. (*2, 4, 6, or 8 for mem or y ma p; **device and version)
2.2 Download Sequence
Figure 2-1. Download Sequence
4AN333
AN3335
2.3 Firmware Modules and Associated Application Notes
Table 2-1. Firmware Module Read and Write Addresses with Associated Application Note Reference
DSP Firmware Module / (Application Note Name)
General
OS Manager
(AN333)
Matrix Processing Overlay
Dolby Pro Logic IIx (AN333MPMA)01, 070xBF00HHHH 0xhhhhhhhh0xBFC0HHHH0x3FC0HHHH 0xhhhhhhhh
DTS Neo:6
(AN333MPMB)
Crossbar
(AN333MPMC)
®
SRS
Circle Surround
®
SRS Circle Surround II
SRS Circle Surround Auto
(AN333MPMG)
Signal Generator
(AN333MPMH)
Cirrus Original Multichannel Surround 2 (COMS-2)
(AN333MPMJ)
Virtual Processor Overlay
SRS TruSurround XT
Table 2-1. Firmware Module Read and Write Addresses with Associated Application Note Reference (Cont.)
DSP Firmware Module / (Application Note Name)
SPP (Standard Post Processing) in DSP Composer Module
Processing Order:
1. Tone Control
2. BM
3. Delay
4. AM
See individual module application notes.
APP (Advanced Post Processing) in DSP Composer Module Processing Order:
1. Tone Control
2. ReEQ
3. BM
4. EQ
5. Delay
6. AM
See individual module application notes.
Supported Memory Map(s)
(Firmware Version)
Post-processing Overlays (continued)
01, 03, 05, 07, 09———
01, 03———
Write RequestRead RequestRead Response
3 Firmware Messaging
3Firmware Messaging
While using the CS470xx, it is necessary to communicate with the DSP in order to control or monitor the various
downloaded firmware modules. We refer to this process of communication as firmware messaging. The purpose of this
section is to describe the types and formats of these firmware messages. In general, the user can control the firmware
module running on the DSP with firmware messaging, and subsequently perform various tasks including the following:
•Configure the module after firmware download (such as kick-starting the DSP)
•Change runtime parameters (such as adjusting the volume or switching Pro Logic II modes)
•Obtain information from the DSP (such as the current state of the firmware registers or data stream information)
3.1 Communication Overview
From a microprogramming point of view, the CS470xx firmware modules can be thought of as blocks of several 32-bit
registers (variables) that either control the behavior of the firmware or store information about the state of the firmware at
the time of operation. Each register has a unique index. Access to the register involves a combination of a specified opcode
for that firmware module together with the register index. For each firmware module, the followin g opcod es are ava ilable :
•Write Opcode—Issues a command to write to a specific module.
•Read Opcode—Issues a command to read from a specific module.
•Read-response Opcode—Indicates the modul e and index that have been read.
These available opcodes permit the following types of communication with the CS470xx DSP:
•Writing to the DSP
•Solicited read from the DSP
•Unsolicited read from the DSP
3.1.1Writing to the DSP
A write session with the CS470xx consists of one 8-byte message from the host to the CS470xx. The write message
consists of a 32-bit command word followed by a 32-bit data word (that is, data to be written to the register ). The command
word is formed by combining the write opcode for that module with the index of the register that needs to be written. The
32-bit data word is the value of the data intended to fill that register.
A solicited read can be thought of as a request to read the contents of a specific register. A solicited read is composed of
a 32-bit solicited read-command word, which is a request to read a specific index (register) in a given module or read up
to sixteen consecutive indices. The DSP, upon receiving this message, responds by sending back a 32-b it read-response
opcode and the requested 32-bit data word(s) contained in each of the indices read.
8AN333
3.1 Communication Overview
Fig. 3-2 provides the format of a solicited read message:
Figure 3-3. Read-Response Command and Read-response Data Words
INDEX[15:0] (First index to be read)
INDEX[15:0] (First index to be read)
3.1.3Unsolicited Message
The DSP needs to inform the host when the PLL is out of lock or there is a runtime memory allocation error (malloc failure).
This type of message is considered an unsolicited message because it was initiated by the CS470xx rather than the host.
This message comes from the CS470xx to indicate a change in the system that must be addressed. The 8- byte unsolicited
read messages from the CS470xx consists of a 4-byte read command word, which defines the type of unsolicited
message, and an associated 4-byte data word that contains more information describing a system condition. When the
IRQ pin for the port being used goes low (SCP1_IRQ
to be read. Every time a message is detected, the host reads out the 8-byte unsolicited read message.
or PCP_IRQ), the host senses that an unsolicited message is ready
AN3339
Loading...
+ 19 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.