CSL
CSL
IMPORTANT NOTICE Texas Instruments Incorporated and its subsidiaries (TI) reserve the right to make corrections, modifications, enhancements, improvements, and other changes to its products and services at any time and to discontinue any product or service without notice. Customers should obtain the latest relevant information before placing orders and should verify that such information is current and complete. All products are sold subject to TIs terms and conditions of sale supplied at the time of order acknowledgment. TI warrants performance of its hardware products to the specifications applicable at the time of sale in accordance with TIs standard warranty. Testing and other quality control techniques are used to the extent TI deems necessary to support this warranty. Except where mandated by government requirements, testing of all parameters of each product is not necessarily performed. TI assumes no liability for applications assistance or customer product design. Customers are responsible for their products and applications using TI components. To minimize the risks associated with customer products and applications, customers should provide adequate design and operating safeguards. TI does not warrant or represent that any license, either express or implied, is granted under any TI patent right, copyright, mask work right, or other TI intellectual property right relating to any combination, machine, or process in which TI products or services are used. Information published by TI regarding third-party products or services does not constitute a license from TI to use such products or services or a warranty or endorsement thereof. Use of such information may require a license from a third party under the patents or other intellectual property of the third party, or a license from TI under the patents or other intellectual property of TI. Reproduction of information in TI data books or data sheets is permissible only if reproduction is without alteration and is accompanied by all associated warranties, conditions, limitations, and notices. Reproduction of this information with alteration is an unfair and deceptive business practice. TI is not responsible or liable for such altered documentation. Resale of TI products or services with statements different from or beyond the parameters stated by TI for that product or service voids all express and any implied warranties for the associated TI product or service and is an unfair and deceptive business practice. TI is not responsible or liable for any such statements. Following are URLs where you can obtain information on other Texas Instruments products and application solutions:
Products Amplifiers Data Converters DSP Interface Logic Power Mgmt Microcontrollers amplifier.ti.com dataconverter.ti.com dsp.ti.com interface.ti.com logic.ti.com power.ti.com microcontroller.ti.com Applications Audio Automotive Broadband Digital Control Military Optical Networking Security Telephony Video & Imaging Wireless Mailing Address: Texas Instruments Post Office Box 655303 Dallas, Texas 75265 www.ti.com/audio www.ti.com/automotive www.ti.com/broadband www.ti.com/digitalcontrol www.ti.com/military www.ti.com/opticalnetwork www.ti.com/security www.ti.com/telephony www.ti.com/video www.ti.com/wireless
Preface
API module support for various C6000 devices, and lists the API modules.
iii
Notational Conventions
provides:
J J J J
A description of the API module A table showing the APIs within the module and a page reference for more specific information A table showing the macros within the module and a page reference for more specific information A module API Reference section in alphabetical order listing the CSL API functions, enumerations, type definitions, structures, constants, and global variables. Examples are given to show how these elements are used.
DSP/BIOS.
- Appendix B provides a list of the registers associated with current
Notational Conventions
This document uses the following conventions:
- Program listings, program examples, and interactive displays are shown
in a special typeface.
- In syntax descriptions, the function or macro appears in a bold typeface
and the parameters appear in plainface within parentheses. Portions of a syntax that are in bold should be entered as shown; portions of a syntax that are within parentheses describe the type of information that should be entered.
- Macro names are written in uppercase text; function names are written in
lowercase.
- TMS320C6000 devices are referred to throughout this reference guide as
TMS320C64x Technical Overview (SPRU395) The TMS320C64x technical overview gives an introduction to the TMS320C64x digital signal processor, and discusses the application areas that are enhanced by the TMS320C64x VelociTI. TMS320C62x Image/Video Processing Library (literature number SPRU400) describes the optimized image/video processing functions including many C-callable, assembly-optimized, general-purpose image/video processing routines. TMS320C6000 DSP External Memory Interface (EMIF) Reference Guide (literature number SPRU266) describes the operation of the external memory interface (EMIF) in the digital signal processors of the TMS320C6000 DSP family. TMS320C6000 DSP Enhanced Direct Memory Access (EDMA) Controller Reference Guide (literature number SPRU234) describes the operation of the EDMA controller in the digital signal processors of the TMS320C6000 DSP family. This document also describes the quick DMA (QDMA) used for fast data requests by the CPU. TMS320C6000 DSP EMAC/MDIO Module Reference Guide (literature number SPRU628) describes the EMAC and MDIO module in the digital signal processors of the TMS320C6000 DSP family. TMS320C6000 DSP General-Purpose Input/Output (GPIO) Reference Guide (literature number SPRU584) describes the general-purpose input/output (GPIO) peripheral in the digital signal processors (DSPs) of the TMS320C6000 DSP family. TMS320C6000 DSP Host Port Interface (HPI) Reference Guide (literature number SPRU578) describes the hostport interface (HPI) in the digital signal processors (DSPs) of the TMS320C6000 DSP family that external processors use to access the memory space. TMS320C6000 DSP Interrupt Selector Reference Guide (literature number SPRU646) describes the interrupt selector, interrupt selector registers, and the available interrupts in the digital signal processors (DSPs) of the TMS320C6000 DSP family. TMS320C6000 DSP Inter-Integrated Circuit (I2C) Module Reference Guide (literature number SPRU175) describes the I2C module that provides an interface between a TMS320C6000 digital signal processor (DSP) and any I2C-bus-compatible device that connects by way of an I2C bus. TMS320C6000 DSP Multichannel Audio Serial Port (McASP) Reference Guide (literature number SPRU041) describes the multichannel audio serial port (McASP) in the digital signal processors (DSPs) of the TMS320C6000 DSP family.
vi
TMS320C6000 DSP Multichannel Buffered Serial Port (McBSP) Reference Guide (literature number SPRU580) describes the operation of the multichannel buffered serial port (McBSP) in the digital signal processors (DSPs) of the TMS320C6000 DSP family. TMS320C6000 DSP Peripheral Component Interconnect (PCI) Reference Guide (literature number SPRU581) describes the peripheral component interconnect (PCI) port in the digital signal processors (DSPs) of the TMS320C6000 DSP family. The PCI port supports connection of the DSP to a PCI host via the integrated PCI master/slave bus interface. TMS320C6000 DSP Software Programmable Phase-Locked Loop (PLL) Controller RG (literature number SPRU233) describes the operation of the software-programmable phase-locked loop (PLL) controller in the digital signal processors (DSPs) of the TMS320C6000 DSP family. TMS320C6000 DSP 32-Bit Timer Reference Guide (literature number SPRU582) describes the 32-bit timer in the TMS320C6000 DSP family. TMS320C64x DSP Turbo-Decoder Coprocessor (TCP) Reference Guide (literature number SPRU534) describes the operation and programming of the turbo decoder coprocessor (TCP) embedded in the TMS320C6416 digital signal processor (DSP) of the TMS320C6000 DSP family. TMS320C64x DSP Viterbi-Decoder Coprocessor (VCP) Reference Guide (literature number SPRU533) describes the operation and programming of the Viterbi-decoder coprocessor (VCP) embedded in the TMS320C6416 digital signal processor (DSP) of the TMS320C6000 DSP family. TMS320C64x DSP Video Port/ /VCXO Interpolated Control (VIC) Port Reference Guide (literature number SPRU629) describes the video port and VCXO interpolated control (VIC) port in the TMS320C64x digital signal processors (DSPs) of the TMS320C6000 DSP family. TMS320C64x DSP Universal Test and Operations Interface for ATM (UTOPIA) Reference Guide (literature number SPRU583) describes the universal test and operations PHY interface for asynchronous transfer mode (UTOPIA) in the TMS320C64x digital signal processors (DSPs) of the TMS320C6000 DSP family. TMS320C62x DSP Expansion Bus (XBUS) Reference Guide (literature number SPRU579) describes the expansion bus (XBUS) used by the CPU to access off-chip peripherals, FIFOs, and peripheral component interconnect (PCI) interface devices in the TMS320C62x digital signal processors (DSPs) of the TMS320C6000 DSP family.
Read This First vii
Trademarks
TMS320C620x/C670x DSP Program and Data Memory Controller/DMA Controller Reference Guide (literature number SPRU577) describes the program memory modes, program and data memory organizations, and the program and data memory controller in the TMS320C620x/C670x digital signal processors (DSPs) of the TMS320C6000 DSP family.
Trademarks
The Texas Instruments logo and Texas Instruments are registered trademarks of Texas Instruments. Trademarks of Texas Instruments include: TI, Code Composer Studio, DSP/BIOS, and TMS320C6000. All other brand or product names are trademarks or registered trademarks of their respective companies or organizations.
viii
Contents
Contents
1 CSL Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1 Provides an overview of the chip support library (CSL), shows which TMS320C6000 devices support the various APIs, and lists each of the API modules. 1.1 CSL Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2 1.1.1 Benefits of the CSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2 1.1.2 CSL Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2 1.1.3 Interdependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4 CSL Naming Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5 CSL Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-6 CSL Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-7 1.4.1 Peripheral Initialization via Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-8 CSL Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-9 CSL Symbolic Constant Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-12 Resource Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-13 1.7.1 Using CSL Handles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-13 CSL API Module Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-15 1.8.1 CSL Endianess/Device Support Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-17
CACHE Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1 Describes the CACHE module, gives a description of the two CACHE architectures, lists the functions and macros within the module, and provides a CACHE API reference section. . . . 2.1 2.2 2.3 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6
CHIP Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1 Describes the CHIP module, lists the API functions and macros within the CHIP module, and provides a CHIP API reference section. 3.1 3.2 3.3 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4
CSL Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1 Describes the CSL module, shows the single API function within the module, and provides a CSL API reference section. 4.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2
ix
Contents
4.2 5
DAT Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Describes the DAT module, lists the API functions within the module, discusses how the module manages the DMA/EDMA peripheral, and provides a DAT API reference section. 5.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.1 DAT Routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.2 DAT Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.3 DMA/EDMA Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.4 Devices With DMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.5 Devices With EDMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DMA Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1 Describes the DMA module, lists the API functions and macros within the module, and provides a DMA API reference section. 6.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2 6.1.1 Using a DMA Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-4 6.2 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-5 6.3 Configuration Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-7 6.4 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-9 6.4.1 Primary Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-9 6.4.2 DMA Global Register Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-14 6.4.3 DMA Auxiliary Functions, Constants, and Macros . . . . . . . . . . . . . . . . . . . . . . 6-23 EDMA Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-1 Describes the EDMA module, lists the API functions and macros within the module, discusses how to use an EDMA channel, and provides an EDMA reference section. 7.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2 7.1.1 Using an EDMA Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-4 7.2 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-5 7.3 Configuration Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-7 7.4 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-8 7.4.1 EDMA Primary Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-8 7.4.2 EDMA Auxiliary Functions and Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-16 EMAC Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-1 Describes the EMAC module, lists the API functions and macros within the module, and provides an EMAC reference section. 8.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2 8.2 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-4 8.3 Configuration Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-6 8.4 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-13 EMIF Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-1 Describes the EMIF module, lists the API functions and macros within the module, and provides an EMIF API reference section. 9.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-2
Contents
10 EMIFA/EMIFB Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-1 Describes the EMIFA and EMIFB modules, lists the API functions and macros within the modules, and provides an API reference section. 10.1 10.2 10.3 10.4 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuration Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-2 10-3 10-5 10-7
11 GPIO Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-1 Describes the GPIO module, lists the API functions and macros within the module, and provides an GPIO API reference section. 11.1 11.2 11.3 11.4 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-2 11.1.1 Using GPIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-4 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-5 Configuration Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-7 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-8 11.4.1 Primary GPIO Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-8 11.4.2 Auxiliary GPIO Functions and Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-11
12 HPI Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-1 Describes the HPI module, lists the API functions and macros within the module, and provides an HPI API reference section. 12.1 12.2 12.3 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-2 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-3 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-5
13 I2C Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-1 Describes the I2C module, lists the API functions and macros within the module, and provides an I2C API reference section. 13.1 13.2 13.3 13.4 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-2 13.1.1 Using an I2C Device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-3 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-5 Configuration Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-7 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-8 13.4.1 Primary Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-8 13.4.2 Auxiliary Functions and Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-13 13.4.3 Auxiliary Functions Defined for C6410, C6413 and C6418 . . . . . . . . . . . . . . 13-22
14 IRQ Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-1 Describes the IRQ module, lists the API functions and macros within the module, and provides an IRQ API reference section. 14.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-2
Contents xi
Contents
Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-4 Configuration Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-6 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-9 14.4.1 Primary IRQ Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-9 14.4.2 Auxiliary IRQ Functions and Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-15
15 McASP Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-1 Describes the McASP module, lists the API functions and macros within the module, discusses using a McASP device, and provides a McASP API reference section. 15.1 15.2 15.3 15.4 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-2 15.1.1 Using a McASP Device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-4 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-5 Configuration Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-7 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-10 15.4.1 Primary Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-10 15.4.2 Parameters and Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-14 15.4.3 Auxiliary Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-17 15.4.4 Interrupt Control Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-30
16 McBSP Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-1 Describes the McBSP module, lists the API functions and macros within the module, and provides a McBSP API reference section. 16.1 16.2 16.3 16.4 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-2 16.1.1 Using a McBSP Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-4 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-5 Configuration Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-7 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-9 16.4.1 Primary Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-9 16.4.2 Auxiliary Functions and Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-15 16.4.3 Interrupt Control Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-23
17 MDIO Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-1 Describes the MDIO module, lists the API functions and macros within the module, and provides an MDIO reference section. 17.1 17.2 17.3 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-2 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-3 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-4
18 PCI Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-1 Describes the PCI module, lists the API functions and macros within the module, discusses the three application domains, and provides a PCI API reference section. 18.1 18.2 18.3
xii
Contents
18.4
Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-7
19 PLL Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-1 Describes the PLL module, lists the API functions and macros within the module, discusses the three application domains, and provides a PLL API reference section. 19.1.1 Using the PLL Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuration Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-3 19-4 19-6 19-7
20 PWR Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-1 Describes the PWR module, lists the API functions and macros within the module, and provides a PWR API reference section. 20.1 20.2 20.3 20.4 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuration Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-2 20-3 20-5 20-6
21 TCP Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-1 Describes the TCP module, lists the API functions and macros within the module, discusses how to use the TPC, and provides a TCP API reference section. 21.1 21.2 21.3 21.4 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-2 21.1.1 Using the TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-5 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-6 Configuration Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-8 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-13
22 TIMER Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-1 Describes the TIMER module, lists the API functions and macros within the module, discusses how to use a TIMER device, and provides a TIMER API reference section. 22.1 22.2 22.3 22.4 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-2 22.1.1 Using a TIMER Device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-3 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-4 Configuration Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-6 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-7 22.4.1 Primary Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-7 22.4.2 Auxiliary Functions and Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-11
23 UTOPIA Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-1 Describes the UTOPIA module, lists the API functions and macros within the module, discusses how to use the UTOPIA interface, and provides a UTOP API reference section. 23.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-2 23.1.1 Using UTOPIA APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-3
Contents xiii
Contents
24 VCP Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-1 Describes the VCP module, lists the API functions and macros within the module, discusses how to use the VCP, and provides a VCP API reference section. 24.1 24.2 24.3 24.4 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-2 24.1.1 Using the VCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-4 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-5 Configuration Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-7 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-11
25 VIC Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-1 Describes the VIC module, lists the API functions and macros within the module, and provides a VIC reference section. 25.1 25.2 25.3 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-2 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-3 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-4
26 VP Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-1 Describes the VP module, lists the API functions and macros within the module, and provides a VP reference section 26.1 26.2 26.3 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-2 Configuration Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-4 Functions and Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-9
27 XBUS Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27-1 Describes the XBUS module, lists the API functions and macros within the module, discusses how to use the XBUS device, and provides an XBUS API reference section. 27.1 27.2 27.3 27.4 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuration Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27-2 27-2 27-4 27-5
28 Using the HAL Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-1 Describes the hardware abstraction layer (HAL), gives a summary of the HAL macros, discusses RMK macros and macro token pasting, and provides a HAL macro reference section. 28.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28.1.1 HAL Macro Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28.1.2 HAL Header Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28.1.3 HAL Macro Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Generic Macro Notation and Table of Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-2 28-2 28-2 28-3 28-4
28.2
xiv
Contents
28.3
28.4 A
General Comments Regarding HAL Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-6 28.3.1 Right-Justified Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-6 28.3.2 _OF Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-7 28.3.3 RMK Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-8 28.3.4 Macro Token Pasting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-11 28.3.5 Peripheral Register Data Sheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-11 HAL Macro Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-12
Using CSL APIs Without DSP/BIOS ConfigTool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-1 Provides an example of using CSL independently of the DSP/BIOS configuration tool. A.1 Using CSL APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.1.1 Using DMA_config() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.1.2 Using DMA_configArgs() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Compiling and Linking With CSL Using Code Composer Studio IDE . . . . . . . . . . . . . . . A.2.1 CSL Directory Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.2.2 Using the Code Composer Studio Project Environment . . . . . . . . . . . . . . . . . . . A-2 A-2 A-5 A-7 A-7 A-7
A.2
TMS320C6000 CSL Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-1 Shows the registers associated with current TMS320C6000 DSPs. B.1 B.2 B.3 B.4 B.5 B.6 B.7 B.8 B.9 B.10 B.11 B.12 B.13 B.14 B.15 B.16 B.17 B.18 B.19 B.20 B.21 B.22 B.23 B.24 B.25 Cache Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-2 Direct Memory Access (DMA) Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-17 Enhanced DMA (EDMA) Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-31 EMAC Control Module Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-60 EMAC Module Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-64 External Memory Interface (EMIF) Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-122 General-Purpose Input/Output (GPIO) Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-149 Host Port Interface (HPI) Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-159 Inter-Integrated Circuit (I2C) Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-168 Interrupt Request (IRQ) Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-203 Multichannel Audio Serial Port (McASP) Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-207 Multichannel Buffered Serial Port (McBSP) Registers . . . . . . . . . . . . . . . . . . . . . . . . . B-284 MDIO Module Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-311 Peripheral Component Interconnect (PCI) Registers . . . . . . . . . . . . . . . . . . . . . . . . . . B-328 Phase-Locked Loop (PLL) Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-353 Power-Down Control Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-359 TCP Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-360 Timer Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-382 UTOPIA Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-386 VCP Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-396 VIC Port Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-409 Video Port Control Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-413 Video Capture Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-427 Video Display Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-462 Video Port GPIO Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-504
Contents xv
Contents
B.26 Expansion Bus (XBUS) Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-529 C D Old and New CACHE APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-1 Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D-1
xvi
Figures
Figures
11 51 A1 B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 B11 B12 B13 B14 B15 B16 B17 B18 B19 B20 B21 B22 B23 B24 B25 B26 B27 B28 B29 B30 B31 B32 B33 API Module Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3 2D Transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-7 Defining the Target Device in the Build Options Dialog Box . . . . . . . . . . . . . . . . . . . . . . . A-8 Cache Configuration Register (CCFG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-3 L2 EDMA Access Control Register (EDMAWEIGHT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-5 L2 Writeback Base Address Register (L2WBAR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-5 L2 Writeback Word Count Register (L2WWC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-6 L2 WritebackInvalidate Base Address Register (L2WIBAR) . . . . . . . . . . . . . . . . . . . . . . . . B-6 L2 WritebackInvalidate Word Count Register (L2WIWC) . . . . . . . . . . . . . . . . . . . . . . . . . . B-7 L2 Invalidate Base Address Register (L2IBAR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-7 L2 WritebackInvalidate Word Count Register (L2IWC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-8 L2 Allocation Registers (L2ALLOC0L2ALLOC3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-8 L1P Invalidate Base Address Register (L1PIBAR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-9 L1P Invalidate Word Count Register (L1PIWC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-9 L1D WritebackInvalidate Base Address Register (L1DWIBAR) . . . . . . . . . . . . . . . . . . . . B-10 L1D WritebackInvalidate Word Count Register (L1DWIWC) . . . . . . . . . . . . . . . . . . . . . . B-10 L1P Invalidate Base Address Register (L1PIBAR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-11 L1D Invalidate Word Count Register (L1DIWC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-11 L2 Writeback All Register (L2WB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-12 L2 WritebackInvalidate All Register (L2WBINV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-13 L2 Memory Attribute Registers (MAR0MAR15) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-14 L2 Memory Attribute Registers (MAR96MAR111) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-15 L2 Memory Attribute Registers (MAR128MAR191) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-16 DMA Auxiliary Control Register (AUXCTL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-17 DMA Channel Primary Control Register (PRICTL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-19 DMA Channel Secondary Control Register (SECCTL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-24 DMA Channel Source Address Register (SRC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-28 DMA Channel Destination Address Register (DST) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-28 DMA Channel Transfer Counter Register (XFRCNT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-29 DMA Global Count Reload Register (GBLCNT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-29 DMA Global Index Register (GBLIDX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-30 DMA Global Address Reload Register (GBLADDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-30 EDMA Channel Options Register (OPT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-32 EDMA Channel Source Address Register (SRC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-36 EDMA Channel Transfer Count Register (CNT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-37 EDMA Channel Destination Address Register (DST) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-37
Contents xvii
Figures
B34 B35 B36 B37 B38 B39 B40 B41 B42 B43 B44 B45 B46 B47 B48 B49 B50 B51 B52 B53 B54 B55 B56 B57 B58 B59 B60 B61 B62 B63 B64 B65 B66 B67 B68 B69 B70 B71 B72 B73 B74 B75 B76
xviii
EDMA Channel Index Register (IDX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Channel Count Reload/Link Register (RLD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Event Selector Register 0 (ESEL0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Event Selector Register 1 (ESEL1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Event Selector Register 3 (ESEL3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Priority Queue Allocation Register (PQAR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Priority Queue Status Register (PQSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Priority Queue Status Register (PQSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Channel Interrupt Pending Register (CIPR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Channel Interrupt Pending Low Register (CIPRL) . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Channel Interrupt Pending High Register (CIPRH) . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Channel Interrupt Enable Register (CIER) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Channel Interrupt Enable Low Register (CIERL) . . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Channel Interrupt Enable High Register (CIERH) . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Channel Chain Enable Register (CCER) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Channel Chain Enable Low Register (CCERL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Channel Chain Enable High Register (CCERH) . . . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Event Register (ER) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1EDMA Event High Register (ERH) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Event Enable Register (EER) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Event Enable Low Register (EERL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Event Enable High Register (EERH) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Event Clear Register (ECR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Event Clear Low Register (ECRL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Event Clear High Register (ECRH) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Event Set Register (ESR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Event Set Low Register (ESRL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Event Set High Register (ESRH) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Event Polarity Low Register (EPRL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Event Polarity High Register (EPRH) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EMAC Control Module Transfer Control Register (EWTRCTRL) . . . . . . . . . . . . . . . . . . . . EMAC Control Module Interrupt Control Register (EWCTL) . . . . . . . . . . . . . . . . . . . . . . . . EMAC Control Module Interrupt Timer Count Register (EWINTTCNT) . . . . . . . . . . . . . . . Transmit Identification and Version Register (TXIDVER) . . . . . . . . . . . . . . . . . . . . . . . . . . Transmit Control Register (TXCONTROL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transmit Teardown Register (TXTEARDOWN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Receive Identification and Version Register (RXIDVER) . . . . . . . . . . . . . . . . . . . . . . . . . . . Receive Control Register (RXCONTROL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Receive Teardown Register (RXTEARDOWN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Receive Multicast/Broadcast/Promiscuous Channel Enable Register (RXMBPENABLE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Receive Unicast Set Register (RXUNICASTSET) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Receive Unicast Clear Register (RXUNICASTCLEAR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . Receive Maximum Length Register (RXMAXLEN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
B-38 B-38 B-39 B-40 B-41 B-42 B-43 B-43 B-44 B-45 B-45 B-46 B-47 B-47 B-48 B-49 B-49 B-50 B-51 B-52 B-53 B-53 B-54 B-55 B-55 B-56 B-57 B-57 B-58 B-59 B-60 B-62 B-63 B-67 B-68 B-69 B-70 B-71 B-72 B-73 B-78 B-80 B-82
Figures
B77 Receive Buffer Offset Register (RXBUFFEROFFSET) . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-83 B78 Receive Filter Low Priority Packets Threshold Register (RXFILTERLOWTHRESH) . . . B-84 B79 Receive Channel n Flow Control Threshold Registers (RXnFLOWTHRESH) . . . . . . . . . B-85 B80 Receive Channel n Free Buffer Count Registers (RXnFREEBUFFER) . . . . . . . . . . . . . . B-86 B81 MAC Control Register (MACCONTROL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-87 B82 MAC Status Register (MACSTATUS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-89 B83 Transmit Interrupt Status (Unmasked) Register (TXINTSTATRAW) . . . . . . . . . . . . . . . . . B-93 B84 Transmit Interrupt Status (Masked) Register (TXINTSTATMASKED) . . . . . . . . . . . . . . . . B-94 B85 Transmit Interrupt Mask Set Register (TXINTMASKSET) . . . . . . . . . . . . . . . . . . . . . . . . . . B-95 B86 Transmit Interrupt Mask Clear Register (TXINTMASKCLEAR) . . . . . . . . . . . . . . . . . . . . . B-97 B87 MAC Input Vector Register (MACINVECTOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-99 B88 Receive Interrupt Status (Unmasked) Register (RXINTSTATRAW) . . . . . . . . . . . . . . . . B-100 B89 Receive Interrupt Status (Masked) Register (RXINTSTATMASKED) . . . . . . . . . . . . . . . B-101 B90 Receive Interrupt Mask Set Register (RXINTMASKSET) . . . . . . . . . . . . . . . . . . . . . . . . . B-102 B91 Receive Interrupt Mask Clear Register (RXINTMASKCLEAR) . . . . . . . . . . . . . . . . . . . . B-104 B92 MAC Interrupt Status (Unmasked) Register (MACINTSTATRAW) . . . . . . . . . . . . . . . . . B-106 B93 MAC Interrupt Status (Masked) Register (MACINTSTATMASKED) . . . . . . . . . . . . . . . . B-107 B94 MAC Interrupt Mask Set Register (MACINTMASKSET) . . . . . . . . . . . . . . . . . . . . . . . . . . B-108 B95 MAC Interrupt Mask Clear Register (MACINTMASKCLEAR) . . . . . . . . . . . . . . . . . . . . . . B-109 B96 MAC Address Channel n Lower Byte Register (MACADDRLn) . . . . . . . . . . . . . . . . . . . . B-110 B97 MAC Address Middle Byte Register (MACADDRM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-110 B98 MAC Address High Bytes Register (MACADDRH) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-111 B99 MAC Address Hash 1 Register (MACHASH1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-112 B100 MAC Address Hash 2 Register (MACHASH2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-113 B101 Backoff Test Register (BOFFTEST) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-114 B102 Transmit Pacing Test Register (TPACETEST) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-115 B103 Receive Pause Timer Register (RXPAUSE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-116 B104 Transmit Pause Timer Register (TXPAUSE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-117 B105 Transmit Channel n DMA Head Descriptor Pointer Register (TXnHDP) . . . . . . . . . . . . . B-118 B106 Receive Channel n DMA Head Descriptor Pointer Register (RXnHDP) . . . . . . . . . . . . . B-118 B107 Transmit Channel n Interrupt Acknowledge Register (TXnINTACK) . . . . . . . . . . . . . . . . B-119 B108 Receive Channel n Interrupt Acknowledge Register (RXnINTACK) . . . . . . . . . . . . . . . . B-120 B109 Statistics Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-121 B110 EMIF Global Control Register (GBLCTL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-123 B111 . EMIF Global Control Register (GBLCTL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-126 B112 EMIF Global Control Register (GBLCTL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-128 B113 EMIF CE Space Control Register (CECTL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-131 B114 EMIF CE Space Control Register (CECTL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-133 B115 EMIF CE Space Control Register (CECTL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-135 B116 EMIF CE Space Secondary Control Register (CESEC) . . . . . . . . . . . . . . . . . . . . . . . . . . B-137 B117 EMIF SDRAM Control Register (SDCTL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-139 B118 EMIF SDRAM Control Register (SDCTL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-141 B119 EMIF SDRAM Control Register (SDCTL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-143 B120 EMIF SDRAM Timing Register (SDTIM) (C620x/C670x) . . . . . . . . . . . . . . . . . . . . . . . . . B-145
Contents xix
Figures
B121 B122 B123 B124 B125 B126 B127 B128 B129 B130 B131 B132 B133 B134 B135 B136 B137 B138 B139 B140 B141 B142 B143 B144 B145 B146 B147 B148 B149 B150 B151 B152 B153 B154 B155 B156 B157 B158 B159 B160 B161 B162 B163 B164
xx
EMIF SDRAM Timing Register (SDTIM) (C621x/C671x/C64x) . . . . . . . . . . . . . . . . . . . . EMIF SDRAM Extension Register (SDEXT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EMIF Peripheral Device Transfer Control Register (PDTCTL) . . . . . . . . . . . . . . . . . . . . . GPIO Enable Register (GPEN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GPIO Direction Register (GPDIR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GPIO Value Register (GPVAL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GPIO Delta High Register (GPDH) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GPIO High Mask Register (GPHM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GPIO Delta Low Register (GPDL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GPIO Low Mask Register (GPLM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GPIO Global Control Register (GPGC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GPIO Interrupt Polarity Register (GPPOL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HPI Control Register (HPIC)C620x/C670x DSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HPI Control Register (HPIC)C621x/C671x DSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HPI Control Register (HPIC)C64x DSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HPI Transfer Request Control Register (TRCTL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I2C Own Address Register (I2COAR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I2C Interrupt Enable Register (I2CIER) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I2C Status Register (I2CSTR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Roles of the Clock Divide-Down Values (ICCL and ICCH) . . . . . . . . . . . . . . . . . . . . . . . . I2C Clock Low-Time Divider Register (I2CCLKL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I2C Clock High-Time Divider Register (I2CCLKH) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I2C Data Count Register (I2CCNT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I2C Data Receive Register (I2CDRR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I2C Slave Address Register (I2CSAR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I2C Data Transmit Register (I2CDXR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I2C Mode Register (I2CMDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Block Diagram Showing the Effects of the Digital Loopback Mode (DLB) Bit . . . . . . . . I2C Interrupt Source Register (I2CISRC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I2C Extended Mode Register (I2CEMDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I2C Prescaler Register (I2CPSC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I2C Peripheral Identification Register 1 (I2CPID1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I2C Peripheral Identification Register 2 (I2CPID2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I2C Pin Function Register (I2CPFUNC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I2C Pin Direction Register (I2CPDIR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I2C Pin Data Input Register (I2CPDIN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I2C Pin Data Output Register (I2CPDOUT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I2C Pin Data Set Register (I2CPDSET) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I2C Pin Data Clear Register (I2CPDCLR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Interrupt Multiplexer High Register (MUXH) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Interrupt Multiplexer Low Register (MUXL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . External Interrupt Polarity Register (EXTPOL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Peripheral Identification Register (PID) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Power Down and Emulation Management Register (PWRDEMU) . . . . . . . . . . . . . . . . .
B-145 B-146 B-148 B-149 B-150 B-151 B-152 B-153 B-154 B-155 B-156 B-158 B-162 B-163 B-164 B-167 B-169 B-170 B-171 B-177 B-177 B-178 B-179 B-180 B-181 B-182 B-183 B-190 B-191 B-192 B-193 B-194 B-195 B-196 B-197 B-198 B-199 B-201 B-202 B-203 B-205 B-206 B-212 B-213
Figures
B165 B166 B167 B168 B169 B170 B171 B172 B173 B174 B175 B176 B177 B178 B179 B180 B181 B182 B183 B184 B185 B186 B187 B188 B189 B190 B191 B192 B193 B194 B195 B196 B197 B198 B199 B200 B201 B202 B203 B204 B205 B206 B207 B208
Pin Function Register (PFUNC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pin Direction Register (PDIR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pin Data Output Register (PDOUT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pin Data Input Register (PDIN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pin Data Set Register (PDSET) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PDCLR Pin Data Clear Register (PDCLR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Global Control Register (GBLCTL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Audio Mute Control Register (AMUTE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Digital Loopback Control Register (DLBCTL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DIT Mode Control Register (DITCTL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Receiver Global Control Register (RGBLCTL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Receive Format Unit Bit Mask Register (RMASK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Receive Bit Stream Format Register (RFMT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Receive Frame Sync Control Register (AFSRCTL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Receive Clock Control Register (ACLKRCTL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Receive High-Frequency Clock Control Register (AHCLKRCTL) . . . . . . . . . . . . . . . . . . Receive TDM Time Slot Register (RTDM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Receiver Interrupt Control Register (RINTCTL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Receiver Status Register (RSTAT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Current Receive TDM Time Slot Register (RSLOT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Receive Clock Check Control Register (RCLKCHK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Receiver DMA Event Control Register (REVTCTL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transmitter Global Control Register (XGBLCTL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transmit Format Unit Bit Mask Register (XMASK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transmit Bit Stream Format Register (XFMT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transmit Frame Sync Control Register (AFSXCTL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transmit Clock Control Register (ACLKXCTL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transmit High Frequency Clock Control Register (AHCLKXCTL) . . . . . . . . . . . . . . . . . . Transmit TDM Time Slot Register (XTDM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transmitter Interrupt Control Register (XINTCTL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transmitter Status Register (XSTAT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Current Transmit TDM Time Slot Register (XSLOT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transmit Clock Check Control Register (XCLKCHK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transmitter DMA Event Control Register (XEVTCTL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . Serializer Control Registers (SRCTLn) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DIT Left Channel Status Registers (DITCSRA0DITCSRA5) . . . . . . . . . . . . . . . . . . . . . DIT Right Channel Status Registers (DITCSRB0DITCSRB5) . . . . . . . . . . . . . . . . . . . . DIT Left Channel User Data Registers (DITUDRA0DITUDRA5) . . . . . . . . . . . . . . . . . . DIT Right Channel User Data Registers (DITUDRB0DITUDRB5) . . . . . . . . . . . . . . . . . Transmit Buffer Registers (XBUFn) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Receive Buffer Registers (RBUFn) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Data Receive Register (DRR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Data Transmit Register (DXR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Serial Port Control Register (SPCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Contents
B-214 B-216 B-219 B-221 B-223 B-225 B-227 B-230 B-234 B-235 B-236 B-238 B-239 B-242 B-243 B-245 B-247 B-248 B-250 B-253 B-254 B-256 B-257 B-260 B-261 B-264 B-265 B-267 B-269 B-270 B-272 B-275 B-276 B-278 B-279 B-281 B-281 B-282 B-282 B-283 B-283 B-284 B-285 B-285
xxi
Figures
B209 B210 B211 B212 B213 B214 B215 B216 B217 B218 B219 B220 B221 B222 B223 B224 B225 B226 B227 B228 B229 B230 B231 B232 B233 B234 B235 B236 B237 B238 B239 B240 B241 B242 B243 B244 B245 B246 B247 B248 B249
xxii
Pin Control Register (PCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Receive Control Register (RCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transmit Control Register (XCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sample Rate Generator Register (SRGR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Multichannel Control Register (MCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Receive Channel Enable Register (RCER) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transmit Channel Enable Register (XCER) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Enhanced Receive Channel Enable Registers (RCERE03) . . . . . . . . . . . . . . . . . . . . . . Enhanced Transmit Channel Enable Registers (XCERE03) . . . . . . . . . . . . . . . . . . . . . MDIO Version Register (VERSION) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MDIO Control Register (CONTROL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MDIO PHY Alive Indication Register (ALIVE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MDIO PHY Link Status Register (LINK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MDIO Link Status Change Interrupt Register (LINKINTRAW) . . . . . . . . . . . . . . . . . . . . . MDIO Link Status Change Interrupt (Masked) Register (LINKINTMASKED) . . . . . . . . . MDIO User Command Complete Interrupt Register (USERINTRAW) . . . . . . . . . . . . . . MDIO User Command Complete Interrupt (Masked) Register (USERINTMASKED) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MDIO User Command Complete Interrupt Mask Set Register (USERINTMASKSET) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MDIO User Command Complete Interrupt Mask Clear Register (USERINTMASKCLEAR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MDIO User Access Register 0 (USERACCESS0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MDIO User Access Register 1 (USERACCESS1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MDIO User PHY Select Register 0 (USERPHYSEL0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . MDIO User PHY Select Register 1 (USERPHYSEL1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . DSP Reset Source/Status Register (RSTSRC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Power Management DSP Control/Status Register (PMDCSR) . . . . . . . . . . . . . . . . . . . . PCI Interrupt Source Register (PCIIS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PCI Interrupt Enable Register (PCIIEN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DSP Master Address Register (DSPMA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PCI Master Address Register (PCIMA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PCI Master Control Register (PCIMC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Current DSP Address (CDSPA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Current PCI Address Register (CPCIA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Current Byte Count Register (CCNT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EEPROM Address Register (EEADD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EEPROM Data Register (EEDAT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EEPROM Control Register (EECTL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PCI Transfer Halt Register (HALT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PCI Transfer Request Control Register (TRCTL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PLL Controller Peripheral Identification Register (PLLPID) . . . . . . . . . . . . . . . . . . . . . . . . PLL Control/Status Register (PLLCSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PLL Multiplier Control Register (PLLM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
B-290 B-293 B-296 B-299 B-301 B-305 B-306 B-307 B-309 B-312 B-313 B-315 B-316 B-317 B-318 B-319 B-320 B-321 B-322 B-323 B-324 B-326 B-327 B-329 B-332 B-335 B-338 B-341 B-342 B-343 B-344 B-344 B-345 B-346 B-347 B-348 B-350 B-351 B-353 B-354 B-356
Figures
B250 B251 B252 B253 B254 B255 B256 B257 B258 B259 B260 B261 B262 B263 B264 B265 B266 B267 B268 B269 B270 B271 B272 B273 B274 B275 B276 B277 B278 B279 B280 B281 B282 B283 B284 B285 B286 B287 B288 B289 B290 B291 B292 B293
PLL Controller Divider Register (PLLDIV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Oscillator Divider 1 Register (OSCDIV1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Power-Down Control Register (PDCTL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TCP Input Configuration Register 0 (TCPIC0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TCP Input Configuration Register 1 (TCPIC1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TCP Input Configuration Register 2 (TCPIC2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TCP Input Configuration Register 3 (TCPIC3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TCP Input Configuration Register 4 (TCPIC4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TCP Input Configuration Register 5 (TCPIC5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TCP Input Configuration Register 6 (TCPIC6) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TCP Input Configuration Register 7 (TCPIC7) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TCP Input Configuration Register 8 (TCPIC8) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TCP Input Configuration Register 9 (TCPIC9) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TCP Input Configuration Register 10 (TCPIC10) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TCP Input Configuration Register 11 (TCPIC11) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TCP Output Parameter Register (TCPOUT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TCP Execution Register (TCPEXE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TCP Endian Register (TCPEND) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TCP Error Register (TCPERR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TCP Status Register (TCPSTAT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Timer Control Register (CTL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Timer Period Register (PRD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Timer Count Register (CNT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . UTOPIA Control Register (UCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . UTOPIA Interrupt Enable Register (UIER) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . UTOPIA Interrupt Pending Register (UIPR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Clock Detect Register (CDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Error Interrupt Enable Registers (EIER) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Error Interrupt Pending Register (EIPR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VCP Input Configuration Register 0 (VCPIC0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VCP Input Configuration Register 1 (VCPIC1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VCP Input Configuration Register 2 (VCPIC2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VCP Input Configuration Register 3 (VCPIC3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VCP Input Configuration Register 4 (VCPIC4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VCP Input Configuration Register 5 (VCPIC5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VCP Output Register 0 (VCPOUT0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VCP Output Register 1 (VCPOUT1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VCP Execution Register (VCPEXE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VCP Endian Mode Register (VCPEND) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VCP Status Register 0 (VCPSTAT0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VCP Status Register 1 (VCPSTAT1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VCP Error Register (VCPERR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VIC Control Register (VICCTL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VIC Input Register (VICIN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Contents
B-357 B-358 B-359 B-361 B-363 B-364 B-365 B-366 B-367 B-369 B-370 B-371 B-372 B-373 B-374 B-375 B-376 B-377 B-378 B-380 B-382 B-385 B-385 B-386 B-389 B-390 B-391 B-392 B-394 B-397 B-398 B-399 B-399 B-400 B-401 B-402 B-403 B-404 B-405 B-406 B-407 B-408 B-409 B-411
xxiii
Figures
B294 B295 B296 B297 B298 B299 B300 B301 B302 B303 B304 B305 B306 B307 B308 B309 B310 B311 B312 B313 B314 B315 B316 B317 B318 B319 B320 B321 B322 B323 B324 B325 B326 B327 B328 B329 B330 B331 B332 B333 B334 B335 B336 B337
xxiv
VIC Clock Divider Register (VICDIV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Port Control Register (VPCTL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Port Status Register (VPSTAT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Port Interrupt Enable Register (VPIE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Port Interrupt Status Register (VPIS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Capture Channel x Status Register (VCASTAT, VCBSTAT) . . . . . . . . . . . . . . . . . Video Capture Channel A Control Register (VCACTL) . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Capture Channel x Field 1 Start Register (VCASTRT1, VCBSTRT1) . . . . . . . . . Video Capture Channel x Field 1 Stop Register (VCASTOP1, VCBSTOP1) . . . . . . . . . Video Capture Channel x Field 2 Start Register (VCASTRT2, VCBSTRT2) . . . . . . . . . Video Capture Channel x Field 2 Stop Register (VCASTOP2, VCBSTOP2) . . . . . . . . . Video Capture Channel x Vertical Interrupt Register (VCAVINT, VCBVINT) . . . . . . . . . Video Capture Channel x Threshold Register (VCATHRLD, VCBTHRLD) . . . . . . . . . . . Video Capture Channel x Event Count Register (VCAEVTCT, VCBEVTCT) . . . . . . . . . Video Capture Channel B Control Register (VCBCTL) . . . . . . . . . . . . . . . . . . . . . . . . . . . TSI Capture Control Register (TSICTL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TSI Clock Initialization LSB Register (TSICLKINITL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TSI Clock Initialization MSB Register (TSICLKINITM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . TSI System Time Clock LSB Register (TSISTCLKL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TSI System Time Clock MSB Register (TSISTCLKM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . TSI System Time Clock Compare LSB Register (TSISTCMPL) . . . . . . . . . . . . . . . . . . . . TSI System Time Clock Compare MSB Register (TSISTCMPM) . . . . . . . . . . . . . . . . . . TSI System Time Clock Compare Mask LSB Register (TSISTMSKL) . . . . . . . . . . . . . . TSI System Time Clock Compare Mask MSB Register (TSISTMSKM) . . . . . . . . . . . . . TSI System Time Clock Ticks Interrupt Register (TSITICKS) . . . . . . . . . . . . . . . . . . . . . . Video Display Status Register (VDSTAT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Display Control Register (VDCTL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Display Frame Size Register (VDFRMSZ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Display Horizontal Blanking Register (VDHBLNK) . . . . . . . . . . . . . . . . . . . . . . . . . Video Display Field 1 Vertical Blanking Start Register (VDVBLKS1) . . . . . . . . . . . . . . . . Video Display Field 1 Vertical Blanking End Register (VDVBLKE1) . . . . . . . . . . . . . . . . Video Display Field 2 Vertical Blanking Start Register (VDVBLKS2) . . . . . . . . . . . . . . . . Video Display Field 2 Vertical Blanking End Register (VDVBLKE2) . . . . . . . . . . . . . . . . Video Display Field 1 Image Offset Register (VDIMGOFF1) . . . . . . . . . . . . . . . . . . . . . . Video Display Field 1 Image Size Register (VDIMGSZ1) . . . . . . . . . . . . . . . . . . . . . . . . . Video Display Field 2 Image Offset Register (VDIMGOFF2) . . . . . . . . . . . . . . . . . . . . . . Video Display Field 2 Image Size Register (VDIMGSZ2) . . . . . . . . . . . . . . . . . . . . . . . . . Video Display Field 1 Timing Register (VDFLDT1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Display Field 2 Timing Register (VDFLDT2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Display Threshold Register (VDTHRLD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Display Horizontal Synchronization Register (VDHSYNC) . . . . . . . . . . . . . . . . . . Video Display Field 1 Vertical Synchronization Start Register (VDVSYNS1) . . . . . . . . . Video Display Field 1 Vertical Synchronization End Register (VDVSYNE1) . . . . . . . . . Video Display Field 2 Vertical Synchronization Start Register (VDVSYNS2) . . . . . . . . .
B-412 B-414 B-417 B-418 B-421 B-429 B-431 B-436 B-438 B-439 B-440 B-441 B-444 B-445 B-446 B-451 B-453 B-454 B-455 B-456 B-457 B-458 B-459 B-460 B-461 B-463 B-465 B-470 B-471 B-473 B-474 B-476 B-477 B-479 B-480 B-481 B-483 B-484 B-485 B-486 B-488 B-489 B-490 B-491
Figures
B338 B339 B340 B341 B342 B343 B344 B345 B346 B347 B348 B349 B350 B351 B352 B353 B354 B355 B356 B357 B358 B359 B360 B361 B362 B363 B364 B365 B366
Video Display Field 2 Vertical Synchronization End Register (VDVSYNE2) . . . . . . . . . Video Display Counter Reload Register (VDRELOAD) . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Display Display Event Register (VDDISPEVT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Display Clipping Register (VDCLIP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Display Default Display Value Register (VDDEFVAL) . . . . . . . . . . . . . . . . . . . . . . . Video Display Default Display Value Register (VDDEFVAL)Raw Data Mode . . . . . . Video Display Vertical Interrupt Register (VDVINT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Display Field Bit Register (VDFBIT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Display Field 1 Vertical Blanking Bit Register (VDVBIT1) . . . . . . . . . . . . . . . . . . . Video Display Field 2 Vertical Blanking Bit Register (VDVBIT2) . . . . . . . . . . . . . . . . . . . Video Port Peripheral Identification Register (VPPID) . . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Port Peripheral Control Register (PCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Port Pin Function Register (PFUNC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Port Pin Direction Register (PDIR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Port Pin Data Input Register (PDIN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Port Pin Data Output Register (PDOUT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Port Pin Data Set Register (PDSET) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Port Pin Data Clear Register (PDCLR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Port Pin Interrupt Enable Register (PIEN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Port Pin Interrupt Polarity Register (PIPOL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Port Pin Interrupt Status Register (PISTAT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Port Pin Interrupt Clear Register (PICLR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Expansion Bus Global Control Register (XBGC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Expansion Bus XCE Space Control Register (XCECTL) . . . . . . . . . . . . . . . . . . . . . . . . . . Expansion Bus Host Port Interface Control Register (XBHC) . . . . . . . . . . . . . . . . . . . . . . Expansion Bus Internal Master Address Register (XBIMA) . . . . . . . . . . . . . . . . . . . . . . . Expansion Bus External Address Register (XBEA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Expansion Bus Data Register (XBD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Expansion Bus Internal Slave Address Register (XBISA) . . . . . . . . . . . . . . . . . . . . . . . . .
B-492 B-493 B-494 B-495 B-496 B-497 B-498 B-499 B-501 B-502 B-505 B-506 B-508 B-510 B-513 B-515 B-517 B-519 B-521 B-523 B-525 B-527 B-529 B-531 B-533 B-535 B-535 B-536 B-536
Contents
xxv
Tables
Tables
11 12 13 14 15 16 17 18 19 110 21 22 23 31 32 33 41 51 61 62 63 64 71 72 73 74 81 82 83 84 91 92 93 94 101 102
xxvi
CSL Modules and Include Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3 CSL Naming Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5 CSL Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-6 Generic CSL Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-7 Generic CSL Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-10 Generic CSL Handle-Based Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-11 Generic CSL Symbolic Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-12 CSL API Module Support for TMS320C6000 Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-15 CSL API Module Support for TMS320C641x and DM64x Devices . . . . . . . . . . . . . . . . . . 1-16 CSL Device Support Library Name and Symbol Conventions . . . . . . . . . . . . . . . . . . . . . . 1-17 CACHE APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2 CACHE Macros that Access Registers and Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4 CACHE Macros that Construct Register and Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5 CHIP APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2 CHIP Macros that Access Registers and Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 CHIP Macros that Construct Register and Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 CSL API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2 DAT APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2 DMA Configuration Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2 DMA APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2 DMA Macros that Access Registers and Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-5 DMA Macros that Construct Register and Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-6 EDMA Configuration Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2 EDMA APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2 EDMA Macros That Access Registers and Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-5 EDMA Macros that Construct Register and Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-6 EMAC Configuration Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2 EMAC APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2 EMAC Macros That Access Registers and Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-4 EMAC Macros that Construct Registers and Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-5 EMIF Configuration Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-2 EMIF APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-2 EMIF Macros that Access Registers and Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-3 EMIF Macros that Construct Register and Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-4 EMIFA/EMIFB Configuration Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-2 EMIFA/EMIFB APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-2
Tables
103 104 111 112 113 114 121 122 123 131 132 133 134 141 142 143 144 151 152 153 154 161 162 163 164 171 172 173 181 182 183 184 191 192 193 194 201 202 203 204 211 212 213 214
EMIFA/EMIFB Macros that Access Registers and Fields . . . . . . . . . . . . . . . . . . . . . . . . . EMIFA/EMIFB Macros that Construct Register and Field Values . . . . . . . . . . . . . . . . . . . GPIO Configuration Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GPIO APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GPIO Macros that Access Registers and Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GPIO Macros that Construct Register and Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . HPI APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HPI Macros that Access Registers and Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HPI Macros that Construct Register and Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I2C Configuration Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I2C APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I2C Macros that Access Registers and Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I2C Macros that Construct Register and Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . IRQ Configuration Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IRQ APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IRQ Macros that Access Registers and Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IRQ Macros that Construct Register and Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . McASP Configuration Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . McASP APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . McASP Macros that Access Registers and Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . McASP Macros that Construct Register and Field Values . . . . . . . . . . . . . . . . . . . . . . . . . McBSP Configuration Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . McBSP APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . McBSP Macros that Access Registers and Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . McBSP Macros that Construct Register and Field Values . . . . . . . . . . . . . . . . . . . . . . . . . MDIO Functions and Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MDIO Macros That Access Registers and Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MDIO Macros that Construct Register and Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . PCI Configuration Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PCI APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PCI Macros that Access Registers and Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PCI Macros that Construct Register and Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PLL Configuration Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PLL APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PLL Macros that Access Registers and Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PLL Macros that Construct Register and Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PWR Configuration Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PWR APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PWR Macros that Access Registers and Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PWR Macros that Construct Register and Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . TCP Configuration Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TCP APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TCP Macros that Access Registers and Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TCP Macros that Construct Register and Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Contents
10-3 10-4 11-2 11-2 11-5 11-6 12-2 12-3 12-4 13-2 13-2 13-5 13-6 14-2 14-2 14-4 14-5 15-2 15-2 15-5 15-6 16-2 16-2 16-5 16-6 17-2 17-3 17-3 18-2 18-2 18-4 18-5 19-2 19-2 19-4 19-5 20-2 20-2 20-3 20-4 21-2 21-2 21-7 21-7
xxvii
Tables
221 222 223 224 231 232 233 234 241 242 243 244 251 252 253 261 262 271 272 273 274 281 A1 B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 B11 B12 B13 B14 B15 B16 B17 B18 B19 B20 B21
xxviii
TIMER Configuration Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-2 TIMER APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-2 TIMER Macros that Access Registers and Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-4 TIMER Macros that Construct Register and Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . 22-5 UTOPIA Configuration Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-2 UTOPIA APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-2 UTOP Macros that Access Registers and Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-4 UTOP Macros that Construct Register and Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-5 VCP Configuration Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-2 VCP APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-2 VCP Macros that Access Registers and Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-5 VCP Macros that Construct Register and Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-6 VIC Functions and Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-2 VIC Macros That Access Registers and Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-3 VIC Macros That Construct Register and Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-3 Configuration Structures (Macros) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-2 VP APIs and Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-2 XBUS Configuration Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27-2 XBUS APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27-2 XBUS Macros that Access Registers and Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27-3 XBUS Macros that Construct Register and Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . 27-3 CSL HAL Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-5 CSL Directory Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-7 Cache Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-2 Cache Configuration Register (CCFG) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-3 L2 EDMA Access Control Register (EDMAWEIGHT) Field Values . . . . . . . . . . . . . . . . . . . B-5 L2 Writeback Base Address Register (L2WBAR) Field Values . . . . . . . . . . . . . . . . . . . . . . B-5 L2 Writeback Word Count Register (L2WWC) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . B-6 L2 WritebackInvalidate Base Address Register (L2WIBAR) Field Values . . . . . . . . . . . . B-6 L2 WritebackInvalidate Word Count Register (L2WIWC) Field Values . . . . . . . . . . . . . . . B-7 L2 Invalidate Base Address Register (L2IBAR) Field Values . . . . . . . . . . . . . . . . . . . . . . . . B-7 L2 Invalidate Word Count Register (L2IWC) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . B-8 L2 Allocation Registers (L2ALLOC0L2ALLOC3) Field Values . . . . . . . . . . . . . . . . . . . . . . B-8 L1P Invalidate Base Address Register (L1PIBAR) Field Values . . . . . . . . . . . . . . . . . . . . . B-9 L1P Invalidate Word Count Register (L1PIWC) Field Values . . . . . . . . . . . . . . . . . . . . . . . . B-9 L1D WritebackInvalidate Base Address Register (L1DWIBAR) Field Values . . . . . . . . B-10 L1D WritebackInvalidate Word Count Register (L1DWIWC) Field Values . . . . . . . . . . . B-10 L1D Invalidate Base Address Register (L1DIBAR) Field Values . . . . . . . . . . . . . . . . . . . . B-11 L1D Invalidate Word Count Register (L1DIWC) Field Values . . . . . . . . . . . . . . . . . . . . . . . B-11 L2 Writeback All Register (L2WB) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-12 L2 WritebackInvalidate All Register (L2WBINV) Field Values . . . . . . . . . . . . . . . . . . . . . B-13 L2 Memory Attribute Registers (MAR0MAR15) Field Values . . . . . . . . . . . . . . . . . . . . . . B-14 L2 Memory Attribute Registers (MAR96MAR111) Field Values . . . . . . . . . . . . . . . . . . . . B-15 L2 Memory Attribute Registers (MAR128MAR191) Field Values . . . . . . . . . . . . . . . . . . . B-16
Tables
B22 B23 B24 B25 B26 B27 B28 B29 B30 B31 B32 B33 B34 B35 B36 B37 B38 B39 B40 B41 B42 B43 B44 B45 B46 B47 B48 B49 B50 B51 B52 B53 B54 B55 B56 B57 B58 B59 B60 B61 B62 B63 B64 B65
DMA Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DMA Auxiliary Control Register (AUXCTL) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . DMA Channel Primary Control Register (PRICTL) Field Values . . . . . . . . . . . . . . . . . . . DMA Channel Secondary Control Register (SECCTL) Field Values . . . . . . . . . . . . . . . . DMA Channel Source Address Register (SRC) Field Values . . . . . . . . . . . . . . . . . . . . . . . DMA Channel Destination Address Register (DST) Field Values . . . . . . . . . . . . . . . . . . . DMA Channel Transfer Counter Register (XFRCNT) Field Values . . . . . . . . . . . . . . . . . . DMA Global Count Reload Register (GBLCNT) Field Values . . . . . . . . . . . . . . . . . . . . . . . DMA Global Index Register (GBLIDX) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DMA Global Address Reload Register (GBLADDR) Field Values . . . . . . . . . . . . . . . . . . . EDMA Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Channel Options Register (OPT) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Channel Source Address Register (SRC) Field Values . . . . . . . . . . . . . . . . . . . . . . EDMA Channel Transfer Count Register (CNT) Field Values . . . . . . . . . . . . . . . . . . . . . . . EDMA Channel Destination Address Register (DST) Field Values . . . . . . . . . . . . . . . . . . EDMA Channel Index Register (IDX) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Channel Count Reload/Link Register (RLD) Field Values . . . . . . . . . . . . . . . . . . . . EDMA Event Selector Register 0 (ESEL0) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Event Selector Register 0 (ESEL1) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Event Selector Register 0 (ESEL3) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . Priority Queue Allocation Register (PQAR) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . Priority Queue Status Register (PQSR) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Priority Queue Status Register (PQSR) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Channel Interrupt Pending Register (CIPR) Field Values . . . . . . . . . . . . . . . . . . . . EDMA Channel Interrupt Pending Low Register (CIPRL) Field Values . . . . . . . . . . . . . . . EDMA Channel Interrupt Pending High Register (CIPRH) Field Values . . . . . . . . . . . . . . C621x/C671x: Channel Interrupt Enable Register (CIER) Field Values . . . . . . . . . . . . . . EDMA Channel Interrupt Enable Low Register (CIERL) Field Values . . . . . . . . . . . . . . . . EDMA Channel Interrupt Enable High Register (CIERH) Field Values . . . . . . . . . . . . . . . EDMA Channel Chain Enable Register (CCER) Field Values . . . . . . . . . . . . . . . . . . . . . . EDMA Channel Chain Enable Low Register (CCERL) Field Values . . . . . . . . . . . . . . . . . EDMA Channel Chain Enable High Register (CCERH) Field Values . . . . . . . . . . . . . . . . EDMA Event Register (ER) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Event Low Register (ERL) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Event High Register (ERH) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Event Enable Register (EER) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Event Low Register (EERL) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Event Enable High Register (EERH) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Event Clear Register (ERC) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Event Clear Low Register (ERCL) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Event Clear High Register (ECRH) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Event Set Register (ESR) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Event Set Low Register (ESRL) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Event Set High Register (ESRH) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Contents
B-17 B-18 B-19 B-24 B-28 B-28 B-29 B-29 B-30 B-30 B-31 B-33 B-36 B-37 B-37 B-38 B-38 B-39 B-40 B-41 B-42 B-43 B-43 B-44 B-45 B-45 B-46 B-47 B-47 B-48 B-49 B-49 B-50 B-51 B-51 B-52 B-53 B-53 B-54 B-55 B-55 B-56 B-57 B-57
xxix
Tables
B66 B67 B68 B69 B70 B71 B72 B73 B74 B75 B76 B77 B78 B79 B80 B81 B82 B83 B84 B85 B86 B87 B88 B89 B90 B91 B92 B93 B94 B95 B96 B97 B98 B99 B100 B101 B102 B103 B104 B105 B106
xxx
EDMA Event Polarity Low Register (EPRL) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . B-58 EDMA Event Polarity High Register (EPRH) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . B-59 EMAC Control Module Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-60 EMAC Control Module Transfer Control Register (EWTRCTRL) Field Values . . . . . . . . . B-61 EMAC Control Module Interrupt Control Register (EWCTL) Field Values . . . . . . . . . . . . . B-62 EMAC Control Module Interrupt Timer Count Register (EWINTTCNT) Field Values . . . B-63 EMAC Module Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-64 Transmit Identification and Version Register (TXIDVER) Field Values . . . . . . . . . . . . . . . B-67 Transmit Control Register (TXCONTROL) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . B-68 Transmit Teardown Register (TXTEARDOWN) Field Values . . . . . . . . . . . . . . . . . . . . . . . B-69 Receive Identification and Version Register (RXIDVER) Field Values . . . . . . . . . . . . . . . B-70 Receive Control Register (RXCONTROL) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . B-71 Receive Teardown Register (RXTEARDOWN) Field Values . . . . . . . . . . . . . . . . . . . . . . . B-72 Receive Multicast/Broadcast/Promiscuous Channel Enable Register (RXMBPENABLE) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-73 Receive Unicast Set Register (RXUNICASTSET) Field Values . . . . . . . . . . . . . . . . . . . . B-78 Receive Unicast Clear Register (RXUNICASTCLEAR) Field Values . . . . . . . . . . . . . . . B-80 Receive Maximum Length Register (RXMAXLEN) Field Values . . . . . . . . . . . . . . . . . . . . B-82 Receive Buffer Offset Register (RXBUFFEROFFSET) Field Values . . . . . . . . . . . . . . . . . B-83 Receive Filter Low Priority Packets Threshold Register (RXFILTERLOWTHRESH) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-84 Receive Channel n Flow Control Threshold Registers ( RXnFLOWTHRESH) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-85 Receive Channel n Free Buffer Count Registers (RXnFREEBUFFER) Field Values . . . B-86 MAC Control Register (MACCONTROL) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . B-87 MAC Status Register (MACSTATUS) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-90 Transmit Interrupt Status (Unmasked) Register (TXINTSTATRAW) Field Values . . . . . . B-93 Transmit Interrupt Status (Masked) Register (TXINTSTATMASKED) Field Values . . . . . B-94 Transmit Interrupt Mask Set Register (TXINTMASKSET) Field Values . . . . . . . . . . . . . B-95 Transmit Interrupt Mask Clear Register (TXINTMASKCLEAR) Field Values . . . . . . . . . B-97 MAC Input Vector Register (MACINVECTOR) Field Values . . . . . . . . . . . . . . . . . . . . . . . . B-99 Receive Interrupt Status (Unmasked) Register (RXINTSTATRAW) Field Values . . . . . B-100 Receive Interrupt Status (Masked) Register (RXINTSTATMASKED) Field Values . . . . B-101 Receive Interrupt Mask Set Register (RXINTMASKSET) Field Values . . . . . . . . . . . . . B-102 Receive Interrupt Mask Clear Register (RXINTMASKCLEAR) Field Values . . . . . . . . B-104 MAC Interrupt Status (Unmasked) Register (MACINTSTATRAW) Field Values . . . . . . B-106 MAC Interrupt Status (Masked) Register (MACINTSTATMASKED) Field Values . . . . . B-107 MAC Interrupt Mask Set Register (MACINTMASKSET) Field Values . . . . . . . . . . . . . . . B-108 MAC Interrupt Mask Clear Register (MACINTMASKCLEAR) Field Values . . . . . . . . . . B-109 MAC Address Channel n Lower Byte Register (MACADDRLn) Field Values . . . . . . . . . B-110 MAC Address Middle Byte Register (MACADDRM) Field Values . . . . . . . . . . . . . . . . . . B-110 MAC Address High Bytes Register (MACADDRH) Field Values . . . . . . . . . . . . . . . . . . . B-111 MAC Address Hash 1 Register (MACHASH1) Field Values . . . . . . . . . . . . . . . . . . . . . . . B-112 MAC Address Hash 2 Register (MACHASH2) Field Values . . . . . . . . . . . . . . . . . . . . . . . B-113
Tables
B107 Backoff Test Register (BOFFTEST) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B108 Transmit Pacing Test Register (TPACETEST) Field Values . . . . . . . . . . . . . . . . . . . . . . . B109 Receive Pause Timer Register (RXPAUSE) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . B110 Transmit Pause Timer Register (TXPAUSE) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . B111 . Transmit Channel n DMA Head Descriptor Pointer Register (TXnHDP) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B112 Receive Channel n DMA Head Descriptor Pointer Register (RXnHDP) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B113 Transmit Channel n Interrupt Acknowledge Register (TXnINTACK) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B114 Receive Channel n Interrupt Acknowledge Register (RXnINTACK) Field Values . . . . . B115 EMIF Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B116 EMIF Global Control Register (GBLCTL) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . B117 EMIF Global Control Register (GBLCTL) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . B118 EMIF Global Control Register (GBLCTL) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . B119 EMIF CE Space Control Register (CECTL) Field Values . . . . . . . . . . . . . . . . . . . . . . . . B120 EMIF CE Space Control Register (CECTL) Field Values . . . . . . . . . . . . . . . . . . . . . . . . B121 EMIF CE Space Control Register (CECTL) Field Values . . . . . . . . . . . . . . . . . . . . . . . . B122 EMIF CE Space Secondary Control Register (CESEC) Field Values . . . . . . . . . . . . . . B123 EMIF SDRAM Control Register (SDCTL) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . B124 EMIF SDRAM Control Register (SDCTL) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . B125 EMIF SDRAM Control Register (SDCTL) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . B126 EMIF SDRAM Timing Register (SDTIM) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . B127 EMIF SDRAM Extension Register (SDEXT) Field Values . . . . . . . . . . . . . . . . . . . . . . . . B128 EMIF Peripheral Device Transfer Control Register (PDTCTL) Field Values . . . . . . . . . . B129 GPIO Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B130 GPIO Enable Register (GPEN) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B131 GPIO Direction Register (GPDIR) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B132 GPIO Value Register (GPVAL) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B133 GPIO Delta High Register (GPDH) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B134 GPIO High Mask Register (GPHM) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B135 GPIO Delta Low Register (GPDL) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B136 GPIO Low Mask Register (GPLM) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B137 GPIO Global Control Register (GPGC) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . B138 GPIO Interrupt Polarity Register (GPPOL) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . B139 HPI Registers for C62x/C67x DSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B140 HPI Registers for C64x DSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B141 HPI Control Register (HPIC) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B142 HPI Transfer Request Control Register (TRCTL) Field Values . . . . . . . . . . . . . . . . . . . . . B143 I2C Module Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B144 I2C Own Address Register (I2COAR) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B145 I2C Interrupt Enable Register (I2CIER) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . B146 I2C Status Register (I2CSTR) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B147 I2C Clock Low-Time Divider Register (I2CCLKL) Field Values . . . . . . . . . . . . . . . . . . . .
Contents
B-114 B-115 B-116 B-117 B-118 B-118 B-119 B-120 B-122 B-123 B-126 B-128 B-131 B-133 B-135 B-137 B-139 B-141 B-143 B-145 B-146 B-148 B-149 B-150 B-150 B-151 B-152 B-153 B-154 B-155 B-156 B-158 B-159 B-159 B-165 B-167 B-168 B-169 B-170 B-172 B-178
xxxi
Tables
B148 B149 B150 B151 B152 B153 B154 B155 B156 B157 B158 B159 B160 B161 B162 B163 B164 B165 B166 B167 B168 B169 B170 B171 B172 B173 B174 B175 B176 B177 B178 B179 B180 B181 B182 B183 B184 B185 B186 B187 B188 B189 B190 B191
xxxii
I2C Clock High-Time Divider Register (I2CCLKH) Field Values . . . . . . . . . . . . . . . . . . . . I2C Data Count Register (I2CCNT) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I2C Data Receive Register (I2CDRR) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I2C Slave Address Register (I2CSAR) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . I2C Data Transmit Register (I2CDXR) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I2C Mode Register (I2CMDR) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Master-Transmitter/Receiver Bus Activity Defined by RM, STT, and STP Bits . . . . . . . How the MST and FDF Bits Affect the Role of TRX Bit . . . . . . . . . . . . . . . . . . . . . . . . . . . I2C Interrupt Source Register (I2CISRC) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . I2C Extended Mode Register (I2CEMDR) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . I2C Prescaler Register (I2CPSC) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I2C Peripheral Identification Register 1 (I2CPID1) Field Values . . . . . . . . . . . . . . . . . . . . I2C Peripheral Identification Register 2 (I2CPID2) Field Values . . . . . . . . . . . . . . . . . . . . I2C Pin Function Register (I2CPFUNC) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . I2C Pin Direction Register (I2CPDIR) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I2C Pin Data Input Register (I2CPDIN) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I2C Pin Data Output Register (I2CPDOUT) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . I2C Pin Data Set Register (I2CPDSET) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I2C Pin Data Clear Register (I2CPDCLR) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . IRQ Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Interrupt Multiplexer High Register (MUXH) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . Interrupt Multiplexer Low Register (MUXL) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . External Interrupt Polarity Register (EXTPOL) Field Values . . . . . . . . . . . . . . . . . . . . . . . McASP Registers Accessed Through Configuration Bus . . . . . . . . . . . . . . . . . . . . . . . . McASP Registers Accessed Through Data Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Peripheral Identification Register (PID) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Power Down and Emulation Management Register (PWRDEMU) Field Values . . . . . . Pin Function Register (PFUNC) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pin Direction Register (PDIR) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pin Data Output Register (PDOUT) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pin Data Input Register (PDIN) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pin Data Set Register (PDSET) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pin Data Clear Register (PDCLR) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Global Control Register (GBLCTL) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Audio Mute Control Register (AMUTE) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . Digital Loopback Control Register (DLBCTL) Field Values . . . . . . . . . . . . . . . . . . . . . . . . DIT Mode Control Register (DITCTL) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Receiver Global Control Register (RGBLCTL) Field Values . . . . . . . . . . . . . . . . . . . . . . Receive Format Unit Bit Mask Register (RMASK) Field Values . . . . . . . . . . . . . . . . . . . . Receive Bit Stream Format Register (RFMT) Field Values . . . . . . . . . . . . . . . . . . . . . . . Receive Frame Sync Control Register (AFSRCTL) Field Values . . . . . . . . . . . . . . . . . . Receive Clock Control Register (ACLKRCTL) Field Values . . . . . . . . . . . . . . . . . . . . . . . Receive High-Frequency Clock Control Register (AHCLKRCTL) Field Values . . . . . . Receive TDM Time Slot Register (RTDM) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . .
B-178 B-179 B-180 B-181 B-182 B-183 B-189 B-189 B-191 B-192 B-193 B-194 B-195 B-196 B-197 B-198 B-200 B-201 B-202 B-203 B-204 B-205 B-206 B-207 B-211 B-212 B-213 B-215 B-217 B-220 B-222 B-224 B-226 B-228 B-231 B-234 B-235 B-236 B-238 B-239 B-242 B-244 B-245 B-247
Tables
B192 B193 B194 B195 B196 B197 B198 B199 B200 B201 B202 B203 B204 B205 B206 B207 B208 B209 B210 B211 B212 B213 B214 B215 B216 B217 B218 B219 B220 B221 B222 B223 B224 B225 B226 B227 B228 B229 B230 B231 B232 B233
Receiver Interrupt Control Register (RINTCTL) Field Values . . . . . . . . . . . . . . . . . . . . . Receiver Status Register (RSTAT) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Current Receive TDM Time Slot Register (RSLOT) Field Values . . . . . . . . . . . . . . . . . . Receive Clock Check Control Register (RCLKCHK) Field Values . . . . . . . . . . . . . . . . . Receiver DMA Event Control Register (REVTCTL) Field Values . . . . . . . . . . . . . . . . . . . Transmitter Global Control Register (XGBLCTL) Field Values . . . . . . . . . . . . . . . . . . . . Transmit Format Unit Bit Mask Register (XMASK) Field Values . . . . . . . . . . . . . . . . . . . Transmit Bit Stream Format Register (XFMT) Field Values . . . . . . . . . . . . . . . . . . . . . . Transmit Frame Sync Control Register (AFSXCTL) Field Values . . . . . . . . . . . . . . . . . . Transmit Clock Control Register (ACLKXCTL) Field Values . . . . . . . . . . . . . . . . . . . . . . . Transmit High-Frequency Clock Control Register (AHCLKXCTL) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transmit TDM Time Slot Register (XTDM) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . Transmitter Interrupt Control Register (XINTCTL) Field Values . . . . . . . . . . . . . . . . . . . Transmitter Status Register (XSTAT) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Current Transmit TDM Time Slot Register (XSLOT) Field Values . . . . . . . . . . . . . . . . . . Transmit Clock Check Control Register (XCLKCHK) Field Values . . . . . . . . . . . . . . . . Transmitter DMA Event Control Register (XEVTCTL) Field Values . . . . . . . . . . . . . . . . . Serializer Control Registers (SRCTLn) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . McBSP Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Data Receive Register (DRR) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Data Transmit Register (DXR) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Serial Port Control Register (SPCR) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pin Control Register (PCR) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Receive Control Register (RCR) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transmit Control Register (XCR) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sample Rate Generator Register (SRGR) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . Multichannel Control Register (MCR) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Receive Channel Enable Register (RCER) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . Transmit Channel Enable Register (XCER) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . Enhanced Receive Channel Enable Registers (RCERE03) Field Values . . . . . . . . . . . Channel Enable Bits in RCEREn for a 128-Channel Data Stream . . . . . . . . . . . . . . . . . Enhanced Transmit Channel Enable Registers (XCERE03) Field Values . . . . . . . . . . Channel Enable Bits in XCEREn for a 128-Channel Data Stream . . . . . . . . . . . . . . . . . . MDIO Module Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MDIO Version Register (VERSION) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MDIO Control Register (CONTROL) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MDIO PHY Alive Indication Register (ALIVE) Field Values . . . . . . . . . . . . . . . . . . . . . . . . MDIO PHY Link Status Register (LINK) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . MDIO Link Status Change Interrupt Register (LINKINTRAW) Field Values . . . . . . . . . . MDIO Link Status Change Interrupt (Masked) Register (LINKINTMASKED) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MDIO User Command Complete Interrupt Register (USERINTRAW) Field Values . . . MDIO User Command Complete Interrupt (Masked) Register (USERINTMASKED) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Contents
B-248 B-250 B-253 B-254 B-256 B-257 B-260 B-261 B-264 B-266 B-267 B-269 B-270 B-273 B-275 B-276 B-278 B-279 B-284 B-284 B-285 B-286 B-290 B-294 B-296 B-299 B-301 B-305 B-306 B-307 B-308 B-309 B-310 B-311 B-312 B-313 B-315 B-316 B-317 B-318 B-319 B-320
xxxiii
Tables
B234 MDIO User Command Complete Interrupt Mask Set Register (USERINTMASKSET) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B235 MDIO User Command Complete Interrupt Mask Clear Register (USERINTMASKCLEAR) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B236 MDIO User Access Register 0 (USERACCESS0) Field Values . . . . . . . . . . . . . . . . . . . B237 MDIO User Access Register 1 (USERACCESS1) Field Values . . . . . . . . . . . . . . . . . . . . B238 MDIO User PHY Select Register 0 (USERPHYSEL0) Field Values . . . . . . . . . . . . . . . . B239 MDIO User PHY Select Register 1 (USERPHYSEL1) Field Values . . . . . . . . . . . . . . . . B240 PCI Memory-Mapped Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B241 DSP Reset Source/Status Register (RSTSRC) Field Values . . . . . . . . . . . . . . . . . . . . . B242 Power Management DSP Control/Status Register (PMDCSR) Field Values . . . . . . . . B243 PCI Interrupt Source Register (PCIIS) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B244 PCI Interrupt Enable Register (PCIIEN) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . B245 DSP Master Address Register (DSPMA) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . B246 PCI Master Address Register (PCIMA) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B247 PCI Master Control Register (PCIMC) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B248 Current DSP Address (CDSPA) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B249 Current PCI Address Register (CPCIA) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B250 Current Byte Count Register (CCNT) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B251 EEPROM Address Register (EEADD) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B252 EEPROM Data Register (EEDAT) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B253 EEPROM Control Register (EECTL) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B254 PCI Transfer Halt Register (HALT) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B255 PCI Transfer Request Control Register (TRCTL) Field Values . . . . . . . . . . . . . . . . . . . . . B256 PLL Controller Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B257 PLL Controller Peripheral Identification Register (PLLPID) Field Values . . . . . . . . . . . . B258 PLL Control/Status Register (PLLCSR) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . B259 PLL Multiplier Control Register (PLLM) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B260 PLL Controller Divider Register (PLLDIV) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . B261 Oscillator Divider 1 Register (OSCDIV1) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . B262 Power-Down Control Register (PDCTL) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . B263 TCP Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B264 TCP Input Configuration Register 0 (TCPIC0) Field Values . . . . . . . . . . . . . . . . . . . . . . B265 TCP Input Configuration Register 1 (TCPIC1) Field Values . . . . . . . . . . . . . . . . . . . . . . . B266 TCP Input Configuration Register 2 (TCPIC2) Field Values . . . . . . . . . . . . . . . . . . . . . . . B267 TCP Input Configuration Register 3 (TCPIC3) Field Values . . . . . . . . . . . . . . . . . . . . . . . B268 TCP Input Configuration Register 4 (TCPIC4) Field Values . . . . . . . . . . . . . . . . . . . . . . . B269 TCP Input Configuration Register 5 (TCPIC5) Field Values . . . . . . . . . . . . . . . . . . . . . . . B270 TCP Input Configuration Register 6 (TCPIC6) Field Values . . . . . . . . . . . . . . . . . . . . . . . B271 TCP Input Configuration Register 7 (TCPIC7) Field Values . . . . . . . . . . . . . . . . . . . . . . . B272 TCP Input Configuration Register 8 (TCPIC8) Field Values . . . . . . . . . . . . . . . . . . . . . . . B273 TCP Input Configuration Register 9 (TCPIC9) Field Values . . . . . . . . . . . . . . . . . . . . . . . B274 TCP Input Configuration Register 10 (TCPIC10) Field Values . . . . . . . . . . . . . . . . . . . . . B275 TCP Input Configuration Register 11 (TCPIC11) Field Values . . . . . . . . . . . . . . . . . . . . .
xxxiv
B-321 B-322 B-323 B-325 B-326 B-327 B-328 B-329 B-332 B-335 B-338 B-341 B-342 B-343 B-344 B-344 B-345 B-346 B-347 B-348 B-350 B-352 B-353 B-354 B-355 B-356 B-357 B-358 B-359 B-360 B-361 B-363 B-364 B-365 B-366 B-367 B-369 B-370 B-371 B-372 B-373 B-374
Tables
B276 B277 B278 B279 B280 B281 B282 B283 B284 B285 B286 B287 B288 B289 B290 B291 B292 B293 B294 B295 B296 B297 B298 B299 B300 B301 B302 B303 B304 B305 B306 B307 B308 B309 B310 B311 B312 B313 B314 B315 B316 B317 B318 B319
TCP Output Parameter Register (TCPOUT) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . TCP Execution Register (TCPEXE) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TCP Endian Register (TCPEND) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TCP Error Register (TCPERR) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TCP Status Register (TCPSTAT) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Timer Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Timer Control Register (CTL) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Timer Period Register (PRD) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Timer Count Register (CNT) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . UTOPIA Configuration Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . UTOPIA Control Register (UCR) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . UTOPIA Interrupt Enable Register (UIER) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . UTOPIA Interrupt Pending Register (UIPR) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . Clock Detect Register (CDR) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Error Interrupt Enable Register (EIER) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Error Interrupt Pending Register (EIPR) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . EDMA Bus Accesses Memory Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VCP Input Configuration Register 0 (VCPIC0) Field Values . . . . . . . . . . . . . . . . . . . . . . . VCP Input Configuration Register 1 (VCPIC1) Field Values . . . . . . . . . . . . . . . . . . . . . . . VCP Input Configuration Register 2 (VCPIC2) Field Values . . . . . . . . . . . . . . . . . . . . . . . VCP Input Configuration Register 3 (VCPIC3) Field Values . . . . . . . . . . . . . . . . . . . . . . . VCP Input Configuration Register 4 (VCPIC4) Field Values . . . . . . . . . . . . . . . . . . . . . . . VCP Input Configuration Register 5 (VCPIC5) Field Values . . . . . . . . . . . . . . . . . . . . . . VCP Output Register 0 (VCPOUT0) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VCP Output Register 1 (VCPOUT1) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VCP Execution Register (VCPEXE) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VCP Endian Mode Register (VCPEND) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . VCP Status Register 0 (VCPSTAT0) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VCP Status Register 1 (VCPSTAT1) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VCP Error Register (VCPERR) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VIC Port Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VIC Control Register (VICCTL) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VIC Input Register (VICIN) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VIC Clock Divider Register (VICDIV) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Port Control Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Port Control Register (VPCTL) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Port Operating Mode Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Port Status Register (VPSTAT) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Port Interrupt Enable Register (VPIE) Field Values . . . . . . . . . . . . . . . . . . . . . . . . Video Port Interrupt Status Register (VPIS) Field Values . . . . . . . . . . . . . . . . . . . . . . . . Video Capture Control Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Capture Channel x Status Register (VCxSTAT) Field Values . . . . . . . . . . . . . . . Video Capture Channel A Control Register (VCACTL) Field Values . . . . . . . . . . . . . . . Video Capture Channel x Field 1 Start Register (VCxSTRT1) Field Values . . . . . . . . . .
Contents
B-375 B-376 B-377 B-378 B-380 B-382 B-383 B-385 B-385 B-386 B-387 B-389 B-390 B-391 B-393 B-394 B-396 B-397 B-398 B-399 B-399 B-400 B-401 B-402 B-403 B-404 B-405 B-406 B-407 B-408 B-409 B-410 B-411 B-412 B-413 B-414 B-416 B-417 B-418 B-421 B-427 B-429 B-431 B-437
xxxv
Tables
B320 B321 B322 B323 B324 B325 B326 B327 B328 B329 B330 B331 B332 B333 B334 B335 B336 B337 B338 B339 B340 B341 B342 B343 B344 B345 B346 B347 B348 B349 B350 B351 B352 B353 B354 B355 B356 B357 B358 B359 B360
xxxvi
Video Capture Channel x Field 1 Stop Register (VCxSTOP1) Field Values . . . . . . . . . . Video Capture Channel x Field 2 Start Register (VCxSTRT2) Field Values . . . . . . . . . . Video Capture Channel x Field 2 Stop Register (VCxSTOP2) Field Values . . . . . . . . . . Video Capture Channel x Vertical Interrupt Register (VCxVINT) Field Values . . . . . . . . Video Capture Channel x Threshold Register (VCxTHRLD) Field Values . . . . . . . . . . . Video Capture Channel x Event Count Register (VCxEVTCT) Field Values . . . . . . . . . Video Capture Channel B Control Register (VCBCTL) Field Values . . . . . . . . . . . . . . . TSI Capture Control Register (TSICTL) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . TSI Clock Initialization LSB Register (TSICLKINITL) Field Values . . . . . . . . . . . . . . . . . TSI Clock Initialization MSB Register (TSICLKINITM) Field Values . . . . . . . . . . . . . . . . TSI System Time Clock LSB Register (TSISTCLKL) Field Values . . . . . . . . . . . . . . . . . . TSI System Time Clock MSB Register (TSISTCLKM) Field Values . . . . . . . . . . . . . . . . TSI System Time Clock Compare LSB Register (TSISTCMPL) Field Values . . . . . . . . TSI System Time Clock Compare MSB Register (TSISTCMPM) Field Values . . . . . . . TSI System Time Clock Compare Mask LSB Register (TSISTMSKL) Field Values . . . TSI System Time Clock Compare Mask MSB Register (TSISTMSKM) Field Values . . TSI System Time Clock Ticks Interrupt Register (TSITICKS) Field Values . . . . . . . . . . Video Display Control Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Display Status Register (VDSTAT) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Display Control Register (VDCTL) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . Video Display Frame Size Register (VDFRMSZ) Field Values . . . . . . . . . . . . . . . . . . . . . Video Display Horizontal Blanking Register (VDHBLNK) Field Values . . . . . . . . . . . . . . Video Display Field 1 Vertical Blanking Start Register (VDVBLKS1) Field Values . . . . Video Display Field 1 Vertical Blanking End Register (VDVBLKE1) Field Values . . . . . Video Display Field 2 Vertical Blanking Start Register (VDVBLKS2) Field Values . . . . Video Display Field 2 Vertical Blanking End Register (VDVBLKE2) Field Values . . . . . Video Display Field 1 Image Offset Register (VDIMGOFF1) Field Values . . . . . . . . . . . Video Display Field 1 Image Size Register (VDIMGSZ1) Field Values . . . . . . . . . . . . . . Video Display Field 2 Image Offset Register (VDIMGOFF2) Field Values . . . . . . . . . . . Video Display Field 2 Image Size Register (VDIMGSZ2) Field Values . . . . . . . . . . . . . . Video Display Field 1 Timing Register (VDFLDT1) Field Values . . . . . . . . . . . . . . . . . . . Video Display Field 2 Timing Register (VDFLDT2) Field Values . . . . . . . . . . . . . . . . . . . Video Display Threshold Register (VDTHRLD) Field Values . . . . . . . . . . . . . . . . . . . . . . Video Display Horizontal Synchronization Register (VDHSYNC) Field Values . . . . . . . Video Display Field 1 Vertical Synchronization Start Register (VDVSYNS1) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Display Field 1 Vertical Synchronization End Register (VDVSYNE1) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Display Field 2 Vertical Synchronization Start Register (VDVSYNS2) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Display Field 2 Vertical Synchronization End Register (VDVSYNE2) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Display Counter Reload Register (VDRELOAD) Field Values . . . . . . . . . . . . . . . . Video Display Display Event Register (VDDISPEVT) Field Values . . . . . . . . . . . . . . . . . Video Display Clipping Register (VDCLIP) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . .
B-438 B-439 B-440 B-442 B-444 B-445 B-446 B-451 B-453 B-454 B-455 B-456 B-457 B-458 B-459 B-460 B-461 B-462 B-464 B-465 B-470 B-472 B-473 B-475 B-476 B-478 B-479 B-480 B-482 B-483 B-484 B-485 B-487 B-488 B-489 B-490 B-491 B-492 B-493 B-494 B-495
Tables
B361 B362 B363 B364 B365 B366 B367 B368 B369 B370 B371 B372 B373 B374 B375 B376 B377 B378 B379 B380 B381 B382 B383 B384 B385 B386 C1 C2 C3 C4
Video Display Default Display Value Register (VDDEFVAL) Field Values . . . . . . . . . . . B-497 Video Display Vertical Interrupt Register (VDVINT) Field Values . . . . . . . . . . . . . . . . . . . B-498 Video Display Field Bit Register (VDFBIT) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . B-500 Video Display Field 1 Vertical Blanking Bit Register (VDVBIT1) Field Values . . . . . . . . B-501 Video Display Field 2 Vertical Blanking Bit Register (VDVBIT2) Field Values . . . . . . . . B-503 Video Port GPIO Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-504 Video Port Peripheral Identification Register (VPPID) Field Values . . . . . . . . . . . . . . . . . B-505 Video Port Peripheral Control Register (PCR) Field Values . . . . . . . . . . . . . . . . . . . . . . . B-507 Video Port Pin Function Register (PFUNC) Field Values . . . . . . . . . . . . . . . . . . . . . . . . B-508 Video Port Pin Direction Register (PDIR) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . B-510 Video Port Pin Data Input Register (PDIN) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . B-514 Video Port Pin Data Out Register (PDOUT) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . B-516 Video Port Pin Data Set Register (PDSET) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . B-518 Video Port Pin Data Clear Register (PDCLR) Field Values . . . . . . . . . . . . . . . . . . . . . . . . B-520 Video Port Pin Interrupt Enable Register (PIEN) Field Values . . . . . . . . . . . . . . . . . . . . . B-522 Video Port Pin Interrupt Polarity Register (PIPOL) Field Values . . . . . . . . . . . . . . . . . . . B-524 Video Port Pin Interrupt Status Register (PISTAT) Field Values . . . . . . . . . . . . . . . . . . . . B-526 Video Port Pin Interrupt Clear Register (PICLR) Field Values . . . . . . . . . . . . . . . . . . . . . B-528 Expansion Bus Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-529 Expansion Bus Global Control Register (XBGC) Field Values . . . . . . . . . . . . . . . . . . . . . B-530 Expansion Bus XCE Space Control Register (XCECTL) Field Values . . . . . . . . . . . . . B-531 Expansion Bus Host Port Interface Control Register (XBHC) Field Values . . . . . . . . . B-533 Expansion Bus Internal Master Address Register (XBIMA) Field Values . . . . . . . . . . . . B-535 Expansion Bus External Address Register (XBEA) Field Values . . . . . . . . . . . . . . . . . . . B-535 Expansion Bus Data Register (XBD) Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-536 Expansion Bus Internal Slave Address Register (XBISA) Field Values . . . . . . . . . . . . . . B-536 CSL APIs for L2 Cache Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-1 CSL APIs for L1 Cache Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-2 Mapping of Old L2 Register Names to New L2 Register Names . . . . . . . . . . . . . . . . . . . . C-2 Mapping of New L2ALLOCx Bit Field Names to Old Bit Field Names (C64x only) . . . . . . C-3
Contents
xxxvii
Chapter 1
CSL Overview
This chapter provides an overview of the chip support library (CSL), shows which TMS320C6000 devices support the various application programming interfaces (APIs), and lists each of the API modules.
Topic
1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8
Page
CSL Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2 CSL Naming Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5 CSL Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-6 CSL Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-7 CSL Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-9 CSL Symbolic Constant Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-12 Resource Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-13 CSL API Module Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-15
1-1
CSL Introduction
1.1.1
The CSL provides a standard protocol for programming the on-chip peripherals. This includes data types and macros to define a peripherals configuration, and functions to implement the various operations of each peripheral.
- Basic Resource Management
Basic resource management is provided through the use of Open and Close functions for many of the peripherals. This is especially helpful for peripherals that support multiple channels.
- Symbolic Peripheral Descriptions
As a side benefit to the creation of the CSL, a complete symbolic description of all peripheral registers and register fields has been created. You will find it advantageous to use the higherlevel protocols described in the first two benefits, because these are less devicespecific, thus making it easier to migrate your code to newer versions of TI DSPs. The symbolic constants used to program any peripheral are listed in its peripheral reference guide among the register descriptions.
1.1.2
CSL Architecture
The CSL granularity is designed such that each peripheral is covered by a single API module. Hence, there is a direct memory access (DMA) API module for the DMA peripheral, a multichannel buffered serial port (McBSP) API module for the McBSP peripheral, and so on.
1-2
CSL Introduction
Figure 11 illustrates some of the individual API modules (see section 1.8 for a complete list). This architecture allows for future expansion of the CSL because new API modules can be added as new peripheral devices emerge.
CACHE
CHIP
CSL
DAT
DMA
...
MCBSP TIMER
...
It is important to note that not all devices support all API modules. This depends on if the device actually has the peripheral to which an API relates. For example, the enhanced direct memory access (EDMA) API module is not supported on a C6201 because this device does not have an EDMA peripheral. Other modules such as the interrupt request (IRQ) module, however, are supported on all devices. Table 11 lists general and peripheral modules with their associated include file and the module support symbol. These components must be included in your application.
CSL Overview
1-3
CSL Introduction
Peripheral Module (PER) HPI I2C IRQ McASP McBSP MDIO PCI PWR TCP TIMER UTOP VCP VIC VP XBUS
Description Host port interface module InterIntegrated circuit module Interrupt controller module Multichannel audio serial port module Multichannel buffered serial port module Management data I/O module Peripheral component interconnect interface module Power-down module Turbo decoder coprocessor module Timer module Utopia interface module Viterbi decoder coprocessor module VCXO interpolated control Video port module Expansion bus module
Include File csl_hpi.h csl_i2c.h csl_irq.h csl_mcasp.h csl_mcbsp.h csl_mdio.h csl_pci.h csl_pwr.h csl_tcp.h csl_timer.h csl_utop.h csl_vcp.h csl_vic.h csl_vp.h csl_xbus.h
Module Support Symbol HPI_SUPPORT I2C_SUPPORT IRQ_SUPPORT MCASP_SUPPORT MCBSP_SUPPORT MDIO_SUPPORT PCI_SUPPORT PWR_SUPPORT TCP_SUPPORT TIMER_SUPPORT UTOP_SUPPORT VCP_SUPPORT VIC_SUPPORT VP_SUPPORT XBUS_SUPPORT
1.1.3
Interdependencies
Although each API module is unique, there exists some interdependency between the modules. For example, the DMA module depends on the IRQ module. This comes into play when linking code because if you use the DMA module, the IRQ module automatically gets linked also.
1-4
- All functions, variables, macros, and data types start with PER_ (where
letters. Capital letters are used only if the function name consists of two separate words, such as PER_getConfig()
- Macro names follow the peripheral name and use all caps, for example,
DMA_PRICTL_RMK
- Data types start with uppercase letters followed by lowercase letters, such
as DMA_Handle Note: CSL Macro and Function Names The CSL macro and constant names are defined for each register and each field in CSL include files. Therefore, you will need to be careful not to redefine macros using similar names. Because many CSL functions are predefined in CSL libraries, you will need to name your own functions carefully.
CSL Overview
1-5
These data types are available to all CSL modules. Additional data types are defined within each module and are described by each modules chapter.
1-6
CSL Functions
[handle] is required only for the handle-based peripherals: DAT, DMA, EDMA, GPIO, McBSP, and TIMER. See section 1.7.1. [priority] is required only for the DAT peripheral module.
Closes a peripheral channel previously opened with PER_open(). The registers for the channel are set to their power-on defaults, and any pending interrupt is cleared.
CSL Overview
1-7
CSL Functions
1.4.1
where PER is one of the CSL modules. This function requires an address as its one parameter. The address specifies the location of a structure that represents the peripherals register values. The configuration structure data type is defined for each peripheral module that contains the PER_config() function. Example 11 shows an example of this method.
arguments to the function, which then writes those individual values to the register. Example 12 shows an example of this method. You can use these two initialization functions interchangeably but you still need to generate the register values. To simplify the process of defining the values to write to the peripheral registers, the CSL provides the PER_REG_RMK (make) macros, which form merged values from a list of field arguments. Macros are discussed in Section 1.5, CSL Macros.
1-8
CSL Macros
constant (PER_REG_DEFAULT), or a merged field value created with the peripheral field make macro, PER_FMK().
- fieldval indicates an integer constant, integer variable, or symbolic
constant (PER_REG_FIELD_SYMVAL) as explained in section 1.6); all field values are right justified
- x indicates an integer constant, integer variable. - sym indicates a symbolic constant - CSL also offers equivalent macros to those listed in Table 15, but instead
of using REG to identify which channel the register belongs to, it uses the handle value. The handle value is returned by the PER_open() function (see section 1.7). These macros are shown in Table 16. Each API chapter provides specific descriptions of the macros within that module. Page references to the macros in the hardware abstraction layer (Chapter 28, Using the HAL Macros), are provided for additional information.
CSL Overview
1-9
CSL Macros
PER_RGET(REG ) PER_RSET(REG, regval ) PER_FMK (REG, FIELD, fieldval ) PER_FGET(REG, FIELD ) PER_FSET(REG, FIELD, fieldval ) PER_REG_ADDR(REG ) PER_FSETS (REG, FIELD, sym ) PER_FMKS (REG, FIELD, sym )
Creates a shifted version of fieldval that you could OR with the result of other _FMK macros to initialize register REG. This allows the user to initialize few fields in REG as an alternative to the _RMK macro, which requires that ALL register fields be initialized. Returns the value of the specified FIELD in the peripheral register.
If applicable, gets the memory address (or subaddress) of the peripheral register REG. Writes the symbol value to the specified field in the peripheral.
Creates a shifted version of the symbol value that you can OR with the result of other _FMK/_FMKS macros to initialize register REG. (See also PER_FMK() macro.)
1-10
CSL Macros
Sets the field value to the symbol value for a given handle.
CSL Overview
1-11
Each API chapter provides specific descriptions of the symbolic constants within that module. Page references to the constants in the hardware abstraction layer (Chapter 28, Using the HAL Macros), are provided for additional information.
(b) Constant Values for Fields Constant PER_REG_FIELD_SYMVAL Description Symbolic constant to specify values for individual fields in the specified peripheral register. See the CSL Registers in Appendix B for the symbolic values. Default value for a field; corresponds to the field value after a reset or to 0 if a reset has no effect.
PER_REG_FIELD_DEFAULT
1-12
Resource Management
1.7.1
Resource Management
The call to DMA_open initializes the handle, myDma. This handle can then be used in calls to other API functions.
if(myDma != INV) { DMA_start (myDma);
DMA_close (myDma); }
1-14
CSL Overview
1-15
Table 19. CSL API Module Support for TMS320C641x and DM64x Devices
Module CACHE CHIP DAT DMA EDMA EMAC EMIFA EMIFB EMU GPIO HPI IRQ McASP McBSP MDIO PCI PWR TCP TIMER UTOP VCP VIC VP X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 6414 X X X 6415 X X X 6416 X X X 6410 X X X 6413 X X X 6418 X X X DM642 X X X DM641 X X X DM640 X X X
1-16
1.8.1
Table 110. CSL Device Support Library Name and Symbol Conventions
Device C6201 C6202 C6203 C6204 C6205 C6211 C6701 C6711 C6712 C6713 C6414 C6415 C6416 DA610 DM642 DM641 DM640 C6410 C6413 C6418 Little Endian Library csl6201.lib csl6202.lib csl6203.lib csl6204.lib csl6205.lib csl6211.lib csl6701.lib csl6711.lib csl6712.lib csl6713.lib csl6414.lib csl6415.lib csl6416.lib cslDA610.lib cslDM642.lib cslDM641.lib cslDM640.lib csl6410.lib csl6413.lib csl6418.lib Big Endian Library csl6201e.lib csl6202e.lib csl6203e.lib csl6204e.lib csl6205e.lib csl6211e.lib csl6701e.lib csl6711e.lib csl6712e.lib csl6713e.lib csl6414e.lib csl6415e.lib csl6416e.lib cslDA610e.lib cslDM642e.lib cslDM641e.lib cslDM640e.lib csl6410.lib csl6413.lib csl6418.lib Device Support Symbol CHIP_6201 CHIP_6202 CHIP_6203 CHIP_6204 CHIP_6205 CHIP_6211 CHIP_6701 CHIP_6711 CHIP_6712 CHIP_6713 CHIP_6414 CHIP_6415 CHIP_6416 CHIP_DA610 CHIP_DM642 CHIP_DM641 CHIP_DM640 CHIP_6410 CHIP_6413 CHIP_6418
CSL Overview
1-17
Chapter 2
CACHE Module
This chapter describes the CACHE module, gives a description of the two CACHE architectures, lists the functions and macros within the module, and provides a CACHE API reference section.
Topic
2.1 2.2 2.3
Page
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6
2-1
Overview
2.1 Overview
The CACHE module functions are used for managing data and program cache. Currently, TMS320C6x devices use three cache architectures. The first type, as seen on the C620x device, provides program cache by disabling on-chip program RAM and turning it into cache. The second and third types, seen on C621x/C671x and C64x devices respectively, are the twolevel (L2) cache architectures. For the differences between C621x/C671x and C64x cache architectures, refer to SPRU610 TMS320C64x DSP Two Level Internal Memory Reference Guide. The CACHE module has APIs that are specific for the L2 cache and specific for the older program cache architecture. However, the API functions are callable on both types of platforms to make application code portable. On devices without L2, the L2-specific cache API calls do nothing but return immediately. Table 21 shows the API functions within the CACHE module.
Note: F = Function; C = Constant; M = Macro This API function is provided for backward compatibility. Users should use the new APIs. Only for C6414, C6415, C6416 devices
2-2
Overview
Note: F = Function; C = Constant; M = Macro This API function is provided for backward compatibility. Users should use the new APIs. Only for C6414, C6415, C6416 devices
CACHE Module
2-3
Macros
2.2 Macros
There are two types of CACHE macros: those that access registers and fields, and those that construct register and field values. Table 22 lists the CACHE macros that access registers and fields, and Table 23 lists the CACHE macros that construct register and field values. The macros themselves are found in Chapter 28, Using the HAL Macros. CACHE macros are not handle-based.
2-4
Macros
Table 23. CACHE Macros that Construct Register and Field Values
Macro CACHE_<REG>_DEFAULT CACHE_<REG>_RMK() CACHE_<REG>_OF() CACHE_<REG>_<FIELD>_DEFAULT CACHE_FMK() CACHE_FMKS() CACHE_<REG>_<FIELD>_OF() CACHE_<REG>_<FIELD>_<SYM> Description/Purpose Register default value Register make Register value of ... Field default value Field make Field make symbolically Field value of ... Field symbolic value See page ... 28-21 28-23 28-22 28-24 28-14 28-15 28-24 28-24
CACHE Module
2-5
CACHE_clean
2.3 Functions
CACHE_clean
Note: This function is provided for backward compatibility only. The user is strongly advised to use the new functions as shown in Appendix D. Function void CACHE_clean( CACHE_Region region, void *addr, Uint32 wordCnt ); region Specifies which cache region to clean; must be one of the following: - CACHE_L2 - CACHE_L2ALL Beginning address of range to clean; word aligned Number of 32-bit words to clean. IMPORTANT: Maximum allowed wordCnt is 65535.
Arguments
addr wordCnt
none Cleans a range of L2 cache. All lines within the range defined by addr and wordCnt are cleaned out of L2. If CACHE_L2ALL is specified, then all of L2 is cleaned, addr and wordCnt are ignored. A clean operation involves writing back all dirty cache lines and then invalidating those lines. This routine waits until the operation completes before returning. Note: This function does nothing on devices without L2 cache.
Example
If you want to clean a 4K-byte range that starts at 0x80000000 out of L2, use:
CACHE_clean(CACHE_L2,(void*)0x80000000,0x00000400);
CACHE_enableCaching
CACHE_enableCaching Specifies block of ext. memory for caching Function void CACHE_enableCaching( Uint32 block ); block Specifies a block of external memory to enable caching for; must be one of the following: For devices other than C64x - CACHE_CE33 (0xB3000000 to 0xB3FFFFFF) - CACHE_CE32 (0xB2000000 to 0xB2FFFFFF) - CACHE_CE31 (0xB1000000 to 0xB1FFFFFF) - CACHE_CE30 (0xB0000000 to 0xB0FFFFFF) - CACHE_CE23 (0xA3000000 to 0xA3FFFFFF) - CACHE_CE22 (0xA2000000 to 0xA2FFFFFF) - CACHE_CE21 (0xA1000000 to 0xA1FFFFFF) - CACHE_CE20 (0xA0000000 to 0xA0FFFFFF) - CACHE_CE13 (0x93000000 to 0x93FFFFFF) - CACHE_CE12 (0x92000000 to 0x92FFFFFF) - CACHE_CE11 (0x91000000 to 0x91FFFFFF) - CACHE_CE10 (0x90000000 to 0x90FFFFFF) - CACHE_CE03 (0x83000000 to 0x83FFFFFF) - CACHE_CE02 (0x82000000 to 0x82FFFFFF) - CACHE_CE01 (0x81000000 to 0x81FFFFFF) - CACHE_CE00 (0x80000000 to 0x80FFFFFF) For C6414, C6415, and C6416 EMIFB - CACHE_EMIFB_CE00 (60000000h to 60FFFFFFh) - CACHE_EMIFB_CE01 (61000000h to 61FFFFFFh) - CACHE_EMIFB_CE02 (62000000h to 62FFFFFFh) - CACHE_EMIFB_CE03 (63000000h to 63FFFFFFh) - CACHE_EMIFB_CE010 (64000000h to 64FFFFFFh) - CACHE_EMIFB_CE011 (65000000h to 65FFFFFFh) - CACHE_EMIFB_CE012 (66000000h to 66FFFFFFh) - CACHE_EMIFB_CE013 (67000000h to 67FFFFFFh) - CACHE_EMIFB_CE020 (68000000h to 68FFFFFFh) - CACHE_EMIFB_CE021 (69000000h to 69FFFFFFh) - CACHE_EMIFB_CE022 (6A000000h to 6AFFFFFFh) - CACHE_EMIFB_CE023 (6B000000h to 6BFFFFFFh) - CACHE_EMIFB_CE030 (6C000000h to 6CFFFFFFh) - CACHE_EMIFB_CE031 (6D000000h to 6DFFFFFFh) - CACHE_EMIFB_CE032 (6E000000h to 6EFFFFFFh) - CACHE_EMIFB_CE033 (6F000000h to 6FFFFFFFh)
CACHE Module 2-7
Arguments
CACHE_enableCaching
For EMIFA CE0 - CACHE_EMIFA_CE00 (80000000h to 80FFFFFFh) - CACHE_EMIFA_CE01 (81000000h to 81FFFFFFh) - CACHE_EMIFA_CE02 (82000000h to 82FFFFFFh) - CACHE_EMIFA_CE03 (83000000h to 83FFFFFFh) - CACHE_EMIFA_CE04 (84000000h to 84FFFFFFh) - CACHE_EMIFA_CE05 (85000000h to 85FFFFFFh) - CACHE_EMIFA_CE06 (86000000h to 86FFFFFFh) - CACHE_EMIFA_CE07 (87000000h to 87FFFFFFh) - CACHE_EMIFA_CE08 (88000000h to 88FFFFFFh) - CACHE_EMIFA_CE09 (89000000h to 89FFFFFFh) - CACHE_EMIFA_CE010 (8A000000h to 8AFFFFFFh) - CACHE_EMIFA_CE011 (8B000000h to 8BFFFFFFh) - CACHE_EMIFA_CE012 (8C000000h to 8CFFFFFFh) - CACHE_EMIFA_CE013 (8D000000h to 8DFFFFFFh) - CACHE_EMIFA_CE014 (8E000000h to 8EFFFFFFh) - CACHE_EMIFA_CE015 (8F000000h to 8FFFFFFFh) For CACHE_EMIFA_CE1, CACHE_EMIFA_CE2, and CACHE_EMIFA_CE3 the symbols are the same as CACHE_EMIFA_CE0, with start addresses 90000000h, A0000000h, and B0000000h, respectively. Return Value Description none Enables caching for the specified block of memory. This is accomplished by setting the CE bit in the appropriate memory attribute register (MAR). By default, caching is disabled for all memory spaces. Note: This function does nothing on devices without L2 cache. Example To enable caching for the range of memory from 0x80000000 to 0x80FFFFFF use:
For C64x CACHE_enableCaching(CACHE_EMIFA_CE00);
2-8
Arguments
Flushes a range of L2 cache. All lines within the range defined by addr and wordCnt are flushed out of L2. If CACHE_L2ALL is specified, then all of L2 is flushed; addr and wordCnt are ignored. A flush operation involves writing back all dirty cache lines, but the lines are not invalidated. This routine waits until the operation completes before returning. Note: This function does nothing on devices without L2 cache.
Example
If you want to flush a 4K-byte range that starts at 0x80000000 out of L2, use:
CACHE_flush(CACHE_L2,(void*)0x80000000,0x00000400);
CACHE Module
2-9
CACHE_getL2SramSize
CACHE_getL2SramSize Returns current size of L2 that is configured as SRAM Function Arguments Return Value Description Uint32 CACHE_getL2SramSize(); none size Returns number of bytes of on-chip SRAM
This function returns the current size of L2 that is configured as SRAM. Note: This function does nothing on devices without L2 cache.
Example
SramSize = CACHE_getL2SramSize();
Arguments
Invalidates a range from cache. All lines within the range defined by addr and wordCnt are invalidated from region. If CACHE_L1PALL is specified, then all of L1P is invalidated; addr and wordCnt are ignored. Likewise, if CACHE_L1DALL is specified, then all of L1D is invalidated; addr and wordCnt are ignored. This routine waits until the operation completes before returning.
2-10
CACHE_invAllL1p
Note: This function does nothing on devices without L2 cache. Example If you want to invalidate a 4K-byte range that starts at 0x80000000 from L1P, use:
CACHE_invalidate(CACHE_L1P,(void*)0x80000000,0x00000400);
Example
CACHE_invL1d
Function
Arguments
wait
Return Value
none
CACHE Module 2-11
CACHE_invL1p
Description This function issues an L1D block invalidate command to the cache controller. Please see the TMS320C64x DSP Two Level Internal Memory Reference Guide (literature number SPRU610) for details of this operation. If a previous cache operation is still active, the function waits for its completion before initiating the new operation, in order to prevent lockout of interrupts. If the user specifies CACHE_NOWAIT, then the function returns immediately, regardless of whether the operation has completed. The user can call CACHE_wait() afterwards to wait for the operation to complete. Although the block size can be specified in number of bytes, the cache controller operates on whole cache lines only. This function is only supported on C64x devices. Example
char buffer[1024]; /* call with wait flag set */ CACHE_invL1d(buffer, 1024, CACHE_WAIT); ... /* call without the wait flag set */ CACHE_invL1d(buffer, 1024, CACHE_NOWAIT); ... ... CACHE_wait();
CACHE_invL1p
Function
Arguments
wait
Return Value
2-12
none
CACHE_invL2
Description This function issues an L1P block invalidate command to the cache controller. Please see the TMS320C621x/C671x DSP Two Level Internal Memory Reference Guide (literature number SPRU609) and the TMS320C64x DSP Two Level Internal Memory Reference Guide (literature number SPRU610) for details of this operation. If a previous cache operation is still active, the function waits for its completion before initiating the new operation, in order to prevent lockout of interrupts. If the user specifies CACHE_NOWAIT, then the function returns immediately, regardless of whether the operation has completed. The user can call CACHE_wait() afterwards to wait for the operation to complete. Although the block size can be specified in number of bytes, the cache controller operates on whole cache lines only. Example
char buffer[1024]; /* call with wait flag set */ CACHE_invL1p(buffer, 1024, CACHE_WAIT); ... /* call without the wait flag set */ CACHE_invL1p(buffer, 1024, CACHE_NOWAIT); ... ... CACHE_wait();
CACHE_invL2
Function
Arguments
wait
Return Value
none
CACHE Module 2-13
CACHE_L1D_LINESIZE
Description This function issues an L2 block invalidate command to the cache controller. Please see the TMS320C64x DSP Two Level Internal Memory Reference Guide (literature number SPRU610) for details of this operation. If a previous cache operation is still active, the function waits for its completion before initiating the new operation, in order to prevent lockout of interrupts. If the user specifies CACHE_NOWAIT, then the function returns immediately, regardless of whether the operation has completed. The user can call CACHE_wait() afterwards to wait for the operation to complete. Although the block size can be specified in number of bytes, the cache controller operates on whole cache lines only. To prevent unintended behavior, blockPtr and byteCnt should be multiples of the cache line size. This function is supported on C64x devices only. Example
char buffer[1024]; /* call with wait flag set */ CACHE_invL2(buffer, 1024, CACHE_WAIT); ... /* call without the wait flag set */ CACHE_invL2(buffer, 1024, CACHE_NOWAIT); ... ... CACHE_wait();
CACHE_L1P_LINESIZE Compile-time constant that is set equal to the L1P cache line size of the device.
#pragma DATA_ALIGN(array, CACHE_L1P_LINESIZE)
CACHE_reset
Function Arguments Return Value Description
Example
CACHE_reset();
CACHE_resetEMIFA Resets the MAR registers dedicated to the EMIFA CE spaces Function Arguments Return Value Description Example void CACHE_resetEMIFA(); none none This function resets the MAR registers dedicated to the EMIFA CE spaces.
CACHE_enableCaching(CACHE_EMIFA_CE00); CACHE_enableCaching(CACHE_EMIFA_CE13); CACHE_resetEMIFA();
CACHE_resetL2Queue
CACHE_resetL2Queue Function
void CACHE_resetL2Queue( Uint32 queueNum ); queueNum Queue number to be reset to the default length: The following constants may be used for L2 queue number: - CACHE_L2Q0 - CACHE_L2Q1 - CACHE_L2Q2 - CACHE_L2Q3 none This functions allows the user to reset the queue length of the given L2 queue to its default value. See the CACHE_setL2Queue() function.
EDMA_setL2Queue(CACHE_L2Q2,4); EDMA_resetL2Queue(CACHE_L2Q2);
Arguments
CACHE_ROUND_TO_LINESIZE Rounds to cache line size Macro CACHE_ROUND_TO_LINESIZE( CACHE, ELCNT, ELSIZE ); CACHE ELCNT ELSIZE Return Value Description Cache type: L1D, L1P, or L2 Element count Element size
Arguments
Rounded up element count This macro rounds an element up to make an array size a multiple number of cache lines. Arrays located in external memory that require user-controlled coherence maintenance must be aligned at a cache line boundary and be a multiple of cache lines large to prevent incoherency problems. Please see the TMS320C6000 DSP Cache Users Guide (literature number SPRU656) for details.
2-16
CACHE_setL2Mode Example
/* assume an L2 line size of 128 bytes */ /* align arrays y and x at the cache line border */ #pragma DATA_ALIGN(y, CACHE_L2_LINESIZE) #pragma DATA_ALIGN(x, CACHE_L2_LINESIZE) /* array y spans 7 full lines and 104 bytes of the next line*/ short y[500]; /* the array element count is increased such that the array x spans a multiple number of cache lines, i.e. 8 lines */ short x[CACHE_ROUNT_TO_LINESIZE(L2, 500, sizeof(short))]
CACHE_setL2Mode Function
Arguments
CACHE Module
2-17
CACHE_setL2Mode
(For C6414/C6415/C6416) - CACHE_1024KSRAM - CACHE_0KCACHE - CACHE_992KSRAM - CACHE_32KCACHE - CACHE_960KSRAM - CACHE_64KCACHE - CACHE_896KSRAM - CACHE_128KCACHE - CACHE_768KSRAM - CACHE_256KCACHE (For C6410, DM640 and DM641) CACHE_128KSRAM CACHE_0KCACHE CACHE_96KSRAM CACHE_32KCACHE CACHE_64KSRAM CACHE_64KCACHE CACHE_128KCACHE
(For C6413) - CACHE_256KSRAM - CACHE_0KCACHE - CACHE_224KSRAM - CACHE_32KCACHE - CACHE_192KSRAM - CACHE_64KSRAM - CACHE_128KSRAM - CACHE_128KCACHE - CACHE_256KCACHE (For C6418) CACHE_512KSRAM CACHE_0KCACHE CACHE_480KSRAM CACHE_32KCACHE CACHE_448KSRAM CACHE_64KCACHE CACHE_384KSRAM CACHE_128KCACHE CACHE_256KSRAM
2-18
CACHE_getL2Mode
- CACHE_256KCACHE
(For DM642) - CACHE_256KSRAM - CACHE_0KCACHE - CACHE_224KSRAM - CACHE_32KCACHE - CACHE_192KSRAM - CACHE_64KCACHE - CACHE_128KSRAM - CACHE_128KCACHE - CACHE_0KSRAM - CACHE_256KCACHE Return Value Description oldMode Returns old cache mode, one of those listed above.
This function sets the mode of the L2 cache. There are three conditions that may occur as a result of changing cache modes: 1. A decrease in cache size 2. An increase in cache size 3. No change in cache size If the cache size decreases, all of L2 is writeback-invalidated, then the mode is changed. If the cache size increases, the part of SRAM that is about to be turned into cache is writeback-invalidated from L1D and all of L2 is writeback-invalidated; then the mode is changed. Nothing happens when there is no change. Increasing cache size means that some of the SRAM is lost. If there is data in the SRAM that should not be lost, it must be preserved before changing cache modes. Some of the cache modes are identical. For example, on the C6211, there are 64KBytes of L2; hence, CACHE_16KSRAM is equivalent to CACHE_48KCACHE. However, if the L2 size changes on a future device, this will not be the case. Note: This function does nothing on devices without L2 cache.
Example
CACHE_setL2Queue
Leve 2 Cache mode (listed under CACHE_setL2Mode function explanation) This retuns the current L2 cache mode. If L2 cache is not supported, it returns CACHE_0KCACHE.
CACHE_L2Mode oldMode: OldMode = CACHE_getL2Mode();
CACHE_setL2Queue Function
Arguments
This function allows the user to set the queue length of a specified L2 also CACHE_resetL2Queue() function.
CACHE_setL2Queue(CACHE_L2Q1,5);
CACHE_setPriL2Req Function
Arguments
2-20
CACHE_setPccMode
Return Value Description Example none This function allows the user to set the L2 priority level P of the CCFG register.
CACHE_setPriL2Req(CACHE_L2PRIHIGH);
Arguments
Return Value
OldMode
Description
This function sets the program cache mode for devices that do not have an L2 cache. For devices that do have an L2 cache such as the C6211, this function does nothing. See the TMS320C6000 Peripherals Reference Guide (SPRU190) for the meaning of the cache modes. To enable the program cache in normal mode, use:
CACHE_Pcc OldMode; OldMode = CACHE_setPccMode(CACHE_PCC_ENABLE);
Example
CACHE_wait
Function Arguments
CACHE_wbAllL2
Return Value Description none This function waits for the completion of the last cache operation. This function ONLY works in conjunction with the following operations:
-
Example
CACHE_wbAllL2
Function
L2 writeback all
void CACHE_wbAllL2( int wait ); wait Wait flag: - CACHE_NOWAIT return immediately - CACHE_WAIT wait until the operation completes
Arguments
none This function issues an L2 writeback all command to the cache controller. Please see the TMS320C621x/C671x DSP Two Level Internal Memory Reference Guide (literature number SPRU609) and the TMS320C64x DSP Two Level Internal Memory Reference Guide (literature number SPRU610) for details of this operation. If the user specifies CACHE_NOWAIT, then the function returns immediately, regardless of whether the operation has completed. The user can call CACHE_wait() afterwards to wait for the operation to complete.
2-22
CACHE_wbInvL1d
Example
/* call with wait flag set */ CACHE_wbAllL2(CACHE_WAIT); ... /* call without the wait flag set */ CACHE_wbAllL2(CACHE_NOWAIT); ... CACHE_wait();
Arguments
wait
none This function issues an L1D block writeback and invalidate command to the cache controller. Please see the TMS320C621x/C671x DSP Two Level Internal Memory Reference Guide (literature number SPRU609) and the TMS320C64x DSP Two Level Internal Memory Reference Guide (literature number SPRU610) for details of this operation. If a previous cache operation is still active, the function waits for its completion before initiating the new operation, in order to prevent lockout of interrupts. If the user specifies CACHE_NOWAIT, then the function returns immediately, regardless of whether the operation has completed. The user can call CACHE_wait() afterwards to wait for the operation to complete. Although the block size can be specified in number of bytes, the cache controller operates on whole cache lines only.
CACHE Module 2-23
CACHE_wbInvAllL2
Example
char buffer[1024]; /* call with wait flag set */ CACHE_wbInvL1d(buffer, 1024, CACHE_WAIT); ... /* call without the wait flag set */ CACHE_wbInvL1d(buffer, 1024, CACHE_NOWAIT); ... ... CACHE_wait();
Arguments
none This function issues an L2 writeback and invalidate all command to the cache controller. Please see the TMS320C621x/C671x DSP Two Level Internal Memory Reference Guide (literature number SPRU609) and the TMS320C64x DSP Two Level Internal Memory Reference Guide (literature number SPRU610) for details of this operation. If the user specifies CACHE_NOWAIT, then the function returns immediately, regardless of whether the operation has completed. The user can call CACHE_wait() afterwards to wait for the operation to complete.
Example
/* call with wait flag set */ CACHE_wbInvAllL2(CACHE_WAIT); ... /* call without the wait flag set */ CACHE_wbInvAllL2(CACHE_NOWAIT); ... ... CACHE_wait();
2-24
CACHE_wbInvL2 CACHE_wbInvL2
Function
Arguments
wait
none This function issues an L2 block writeback and invalidate command to the cache controller. Please see the TMS320C621x/C671x DSP Two Level Internal Memory Reference Guide (literature number SPRU609) and the TMS320C64x DSP Two Level Internal Memory Reference Guide (literature number SPRU610) for details of this operation. If a previous cache operation is still active, the function waits for its completion before initiating the new operation, in order to prevent lockout of interrupts. If the user specifies CACHE_NOWAIT, then the function returns immediately, regardless of whether the operation has completed. The user can call CACHE_wait() afterwards to wait for the operation to complete. Although the block size can be specified in number of bytes, the cache controller operates on whole cache lines only. To prevent unintended behavior, blockPtr and byteCnt should be multiples of the cache line size.
Example
char buffer[1024]; /* call with wait flag set */ CACHE_wbInvL2(buffer, 1024, CACHE_WAIT); ... /* call without the wait flag set */ CACHE_wbInvL2(buffer, 1024, CACHE_NOWAIT); ... ... CACHE_wait(); CACHE Module 2-25
CACHE_wbL2 CACHE_wbL2
Function
L2 block writeback
void CACHE_wbL2( void *blockPtr, Uint32 byteCnt, int wait ); blockPtr byteCnt Pointer to the beginning of the block Number of bytes in the block. This value must be a multiple of four. The largest size this can be in 65535*4. Wait flag: - CACHE_NOWAIT return immediately - CACHE_WAIT wait until the operation completes
Arguments
wait
none This function issues an L2 block writeback command to the cache controller. Please see the TMS320C621x/C671x DSP Two Level Internal Memory Reference Guide (literature number SPRU609) and the TMS320C64x DSP Two Level Internal Memory Reference Guide (literature number SPRU610) for details of this operation for details of this operation. If a previous cache operation is still active, the function waits for its completion before initiating the new operation, in order to prevent lockout of interrupts. If the user specifies CACHE_NOWAIT, then the function returns immediately, regardless of whether the operation has completed. The user can call CACHE_wait() afterwards to wait for the operation to complete. Although the block size can be specified in number of bytes, the cache controller operates on whole cache lines only. To prevent unintended behavior, blockPtr and byteCnt should be multiples of the cache line size.
Example
char buffer[1024]; /* call with wait flag set */ CACHE_wbL2(buffer, 1024, CACHE_WAIT); ... /* call without the wait flag set */ CACHE_wbL2(buffer, 1024, CACHE_NOWAIT); ... ... CACHE_wait();
2-26
Chapter 3
CHIP Module
This chapter describes the CHIP module, lists the API functions and macros within the module, and provides a CHIP API reference section.
Topic
3.1 3.2 3.3
Page
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4
3-1
Overview
3.1 Overview
The CHIP module is where chip-specific and chip-related code resides. This module has the potential to grow in the future as more devices are placed on the market. Currently, CHIP has some API functions for obtaining device endianess, memory map mode if applicable, and CPU and REV IDs. The CHIP_Config structure contains a single field which holds the unsigned device configuration value. Table 31 shows the API functions within the CHIP module.
Note: F = Function; C = Constant Only for C6713, DA610, C6412, C6711C, C6712C, DM642, DM641, DM640, C6410, C6413 and C6418 devices.
3-2
Macros
3.2 Macros
There are two types of CHIP macros: those that access registers and fields, and those that construct register and field values. Table 32 lists the CHIP macros that access registers and fields, and Table 33 lists the CHIP macros that construct register and field values. The macros themselves are found in Chapter 28, Using the HAL Macros. CHIP macros are not handle-based.
Table 33. CHIP Macros that Construct Register and Field Values
Macro CHIP_<REG>_DEFAULT CHIP_<REG>_RMK() CHIP_<REG>_OF() CHIP_<REG>_<FIELD>_DEFAULT CHIP_FMK() CHIP_FMKS() CHIP_<REG>_<FIELD>_OF() CHIP_<REG>_<FIELD>_<SYM> Description/Purpose Register default value Register make Register value of ... Field default value Field make Field make symbolically Field value of ... Field symbolic value See page... 28-21 28-23 28-22 28-24 28-14 28-15 28-24 28-24
CHIP Module
3-3
CHIP_6XXX
3.3 Functions
CHIP_6XXX
Constant
Description
3-4
CHIP_getCpuId CHIP_getCpuId
Function Arguments Return Value Description Example
CHIP_getEndian
Function Arguments Return Value
Description Example
Returns the current endian mode of the device as determined by the EN bit of the CSR register.
Uint32 Endian; 0 Endian = CHIP_getEndian(); if (Endian == CHIP_ENDIAN_BIG) { /* user big endian configuration / } else { / user little endian configuration */ }
CHIP Module
3-5
CHIP_getMapMode
Description Example
Returns the current MAP mode of the device as determined by the MAP bit of the EMIF global control register.
Uint32 MapMode; 0 MapMode = CHIP_getMapMode(); if (MapMode == CHIP_MAP_0) { /* user map 0 configuration / } else { / user map 1 configuration */ }
CHIP_getRevId
Function Arguments Return Value Description Example
This function returns the CPU revision ID as determined by the Revision ID field of the CSR register.
Uint32 RevId; RevId = CHIP_getRevId();
CHIP_SUPPORT
Constant Description
Compile-time constant
CHIP_SUPPORT Compile-time constant that has a value of 1 if the device supports the CHIP module and 0 otherwise. You are not required to use this constant. Currently, all devices support this module.
Example
3-6
CHIP_SUPPORT CHIP_config
Function
CHIP_getConfig
Function
CHIP_configArgs
Function
CHIP Module
3-7
Chapter 4
CSL Module
This chapter describes the CSL module, shows the single API function within the module, and provides a CSL API reference section.
Topic
4.1 4.2
Page
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-3
4-1
Overview
4.1 Overview
The CSL module is the top-level API module whose primary purpose is to initialize the library. The CSL_init() function must be called once at the beginning of your program before calling any other CSL API functions. Table 41 shows the only function exported by the CSL module.
4-2
CSL_init
4.2 Functions
CSL_init
Function Arguments Return Value Description
Example
CSL_init();
CSL Module
4-3
Chapter 5
DAT Module
This chapter describes the DAT module, lists the API functions within the DAT module, discusses how the DAT module manages the DMA/EDMA peripheral, and provides a DAT API reference section.
Topic
5.1 5.2
Page
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-4
5-1
Overview
5.1 Overview
The data module (DAT) is used to move data around by means of DMA/EDMA hardware. This module serves as a level of abstraction such that it works the same for devices that have the DMA peripheral as for devices that have the EDMA peripheral. Therefore, application code that uses the DAT module is compatible across all current devices regardless of which type of DMA controller it has. Table 51 shows the API functions within the DAT module.
Type Description F F F F F F F C F Checks to see if a previous transfer has completed Closes the DAT module Copies a linear block of data from Src to Dst using DMA or EDMA hardware Performs a 2-dimensional data copy using DMA or EDMA hardware. Fills a linear block of memory with the specified fill value using DMA or EDMA hardware Opens the DAT module Sets the priority CPU vs DMA/EDMA A compile time constant whose value is 1 if the device supports the DAT module Waits for a previous transfer to complete
See page ... 5-4 5-4 5-5 5-6 5-8 5-10 5-11 5-12 5-13
5.1.1
DAT Routines
The DAT module has been intentionally kept simple. There are routines to copy data from one location to another and routines to fill a region of memory. These operations occur in the background on dedicated DMA hardware independent of the CPU. Because of this asynchronous nature, there is API support that enables waiting until a given copy/fill operation completes. It works like this: call one of the copy/fill functions and get an ID number as a return value. Then use this ID number later on to wait for the operation to complete. This allows the operation to be submitted and performed in the background while the CPU performs other tasks in the foreground. Then as needed, the CPU can block on completion of the operation before moving on.
5-2
Overview
5.1.2
DAT Macros
There are no register and field access macros dedicated to the DAT module. The only macros used by DAT are equivalent to the DMA or EDMA macros.
5.1.3
DMA/EDMA Management
Since the DAT module uses the DMA/EDMA peripheral, it must do so in a managed way. In other words, it must not use a DMA channel that is already allocated by the application. To ensure that this does not happen, the DAT module must be opened before use, this is accomplished using the DAT_open() API function. Opening the DAT module allocates a DMA channel for exclusive use. If the module is no longer needed, the DMA resource may be freed up by closing the DAT module with DAT_close(). Note: For devices that have EDMA, the DAT module uses the quick DMA feature. This means that the module does not have to internally allocate a DMA channel. However, you are still required to open the DAT module before use.
5.1.4
5.1.5
DAT_busy
5.2 Functions
DAT_busy
Function Arguments Return Value Description Example
Checks to see if a previous transfer has completed or not, identified by the transfer ID.
DAT_open(DAT_CHAANY, DAT_PRI_LOW, 0); ... transferId = DAT_copy(src,dst,len); ... while (DAT_busy(transferId));
DAT_close
Function Arguments Return Value Description Example
5-4
DAT_copy DAT_copy
Function Copies linear block of data from Src to Dst using DMA or EDMA hardware Uint32 DAT_copy( void *src, void *dst, Uint16 byteCnt ); src dst byteCnt Return Value Description xfrId Pointer to source data Pointer to destination location Number of bytes to copy Transfer ID
Arguments
Copies a linear block of data from Src to Dst using DMA or EDMA hardware, depending on the device. The arguments are checked for alignment and the DMA is submitted accordingly. For best performance in devices other than C64x devices, you should ensure that the source and destination addresses are aligned on a 4-byte boundary and the transfer length is a multiple of four. A maximum of 65,535 bytes may be copied. A byteCnt of zero has unpredictable results. For C64x devices, the EDMA uses a 64-bit bus (8 bytes) to L2 SRAM. For best efficiency, the source and destination addresses should be aligned on an 8-byte boundary, with the transfer rate a multiple of eight. If the DMA channel is busy with one or more previous requests, the function will block and wait for completion before submitting this request. The DAT module must be opened before calling this function. See DAT_open(). The return value is a transfer identifier that may be used later on to wait for completion. See DAT_wait().
Example
#define DATA_SIZE 256 Uint32 BuffA[DATA_SIZE/sizeof(Uint32)]; Uint32 BuffB[DATA_SIZE/sizeof(Uint32)]; DAT_open(DAT_CHAANY,DAT_PRI_LOW,0); DAT_copy(BuffA,BuffB,DATA_SIZE); DAT Module 5-5
DAT_copy2d DAT_copy2d
Function
Arguments
Performs a 2-dimensional data copy using DMA or EDMA hardware, depending on the device. The arguments are checked for alignment and the hardware configured accordingly. For best performance on devices other than C64x devices, you should ensure that the source address and destination address are aligned on a 4-byte boundary and that the lineLen and linePitch are multiples of 4-bytes. For C64x devices, the EDMA uses a 64-bit bus (8 bytes) to L2 SRAM. For best efficiency, the source and destination addresses should be aligned on an 8-byte boundary with the transfer rate a multiple of eight. If the channel is busy with previous requests, this function will block (spin) and wait until it frees up before submitting this request. Note: The DAT module must be opened with the DAT_OPEN_2D flag before calling this function. See DAT_open(). There are three ways to submit a 2D transfer: 1D to 2D, 2D to 1D, and 2D to 2D. This is specified using the type argument. In all cases, the number of bytes copied is lineLen lineCnt. The 1D part of the transfer is just a linear block of data. The 2D part is illustrated in Figure 51.
5-6
LinePitch
If a 2D to 2D transfer is specified, both the source and destination have the same lineLen, lineCnt, and linePitch. The return value is a transfer identifier that may be used later on to wait for completion. See DAT_wait(). Example
DAT_copy2d (DAT_1D2D, buffA, buffB, 16, 8, 32);
DAT Module
5-7
DAT_fill DAT_fill
Function Fills linear block of memory with specified fill value using DMA hardware Uint32 DAT_fill( void *dst, Uint16 byteCnt, Uint32 *fillValue ); dst byteCnt fillValue Return Value Description xfrId Pointer to destination location Number of bytes to fill Pointer to fill value Transfer ID
Arguments
Fills a linear block of memory with the specified fill value using DMA hardware. The arguments are checked for alignment and the DMA is submitted accordingly. For best performance, you should ensure that the destination address is aligned on a 4-byte boundary and the transfer length is a multiple of 4. A maximum of 65,535 bytes may be filled. For devices other than C64x devices, the fill value is 8-bits in size but must be contained in a 32-bit word. This is due to the way the DMA hardware works. If the arguments are 32-bit aligned, then the DMA transfer element size is set to 32-bits to maximize performance. This means that the source of the transfer, the fill value, must be 32-bits in size. So, the 8-bit fill value must be repeated to fill the 32-bit value. For example, if you want to fill a region of memory with the value 0xA5, the fill value should contain 0xA5A5A5A5 before calling this function. If the arguments are 16-bit aligned, a 16-bit element size is used. Finally, if any of the arguments are 8-bit aligned, an 8-bit element size is used. It is a good idea to always fill in the entire 32-bit fill value to eliminate any endian issues. For C64x devices, the fill count must be a multiple of 8 bytes. The EDMA uses a 64-bit bus to store data in L2 SRAM. A pointer of 64-bit value must be passed to the fillvalue parameter (a set of 8 consecutive bytes, aligned). The EDMA transfer element size is set to 64-bits. If you want to fill the memory region with a value of 0x1234, the pointer should point to two consecutive 32-bit words set to 0x12341234 value . If the DMA channel is busy with a previous request, the function will block and wait for completion before submitting this request. The DAT module must be opened before calling this function. See DAT_open().
5-8
DAT_fill
The return value is a transfer identifier that may be used later on to wait for completion. See DAT_wait(). Note: You should be aware that if the fill value is in cache, the DMA always uses the external address and not the value that is in cache. It is up to you to ensure that the fill value is flushed before calling this function. Also, since the user specifies a pointer to the fill value, it is important not to write to it while the fill is in progress. Example
Uint32 BUFF_SIZE 256; Uint32 buff[BUFF_SIZE/sizeof(Uint32)]; Uint32 fillValue = 0xA5A5A5A5; DAT_open(DAT_CHAANY,DAT_PRI_LOW,0); DAT_fill(buff,BUFF_SIZE,&fillValue);
DAT Module
5-9
DAT_open DAT_open
Function
Arguments
priority
Description
This function opens up the DAT module and must be called before calling any of the other DAT API functions. The ChaNum argument specifies which DMA channel to open for exclusive use by the DAT module. For devices with EDMA, the ChaNum argument is ignored because the quick DMA is used which does not have a channel associated with it. For DMA Devices:
- ChaNum specifies which DMA channel to use - DAT_PRI_LOW sets the DMA channel up for CPU priority - DAT_PRI_HIGH sets the DMA channel up for DMA priority
DAT_setPriority
- DAT_PRI_LOW sets LOW priority - DAT_PRI_HIGH sets HIGH priority
Once the DAT module is opened, any resources allocated, such as DMA channels, remain allocated. You can call DAT_close() to free these resources. If 2D transfers are planned via DAT_copy2d, the DAT_OPEN_2D flag must be specified. Specifying this flag for devices with the DMA peripheral will cause allocation of one global count reload register and one global index register. These global registers are freed when DAT_close() is called. Note: For devices with EDMA, the DAT module uses the EDMA registers to submit transfer requests. Also used is the channel interrupt pending register (CIPR). Interrupts are not enabled but the completion flags in CIPR are used. The DAT module uses interrupt completion codes 1 through 4 which amounts to a mask of 0x00000001E in the CIPR register. If you use the DAT module on devices with EDMA, you must avoid using transfer completion codes 1 through 4. Example To open the DAT module using any available DMA channel, use:
DAT_open(DAT_CHAANY,DAT_PRI_LOW,0);
To open the DAT module using DMA channel 2 in high-priority mode, use:
DAT_open(DAT_CHA2,DAT_PRI_HIGH,0);
DAT_setPriority
Function
DAT_SUPPORT
- DAT_PRI_LOW - DAT_PRI_HIGH
Example
/* Open DAT channel with priority Low */ DAT_open(DMA_CHAANY,DAT_PRI_LOW,0) /* Set transfer with priority high */ DAT_setPriority(DAT_PRI_HI);
DAT_SUPPORT
Constant Description
Compile-time constant
DAT_SUPPORT Compile-time constant that has a value of 1 if the device supports the DAT module and 0 otherwise. You are not required to use this constant. Note: The DAT module is supported by all devices that have an EDMA or DMA peripheral.
Example
5-12
DAT_wait DAT_wait
Function
Arguments
none This function waits for a previous transfer to complete, identified by the transfer ID. If the transfer has already completed, this function returns immediately. Interrupts are not disabled during the wait.
Uint32 transferId; DAT_open(DAT_CHAANY, DAT_PRI_LOW, 0); transferId = DAT_copy(src,dst,len); /* user DAT configuration */ DAT_wait(transferId);
Example
DAT Module
5-13
Chapter 6
DMA Module
This chapter describes the DMA module, lists the API functions and macros within the module, discusses how to use a DMA channel, and provides a DMA API reference section.
Topic
6.1 6.2 6.3 6.4
Page
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-5 Configuration Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-7 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-9
6-1
Overview
6.1 Overview
Currently, the are two DMA architectures used on TMS320C6x devices are: DMA and EDMA (enhanced DMA). Devices such as the C6201 have the DMA peripheral, whereas the C6211 has the EDMA peripheral. The two architectures are different enough to warrant a separate API module for each. Table 61 lists the configuration structures for use with the DMA functions. Table 62 lists the functions and constants available in the CSL DMA module.
Type Description F F F F F F F F Closes a DMA channel opened via DMA_open() Sets up the DMA channel using the configuration structure Sets up the DMA channel using the register values passed in Opens a DMA channel for use Pauses the DMA channel by setting the START bits in the primary control register appropriately Resets the DMA channel by setting its registers to power-on defaults Starts a DMA channel running without autoinitialization Stops a DMA channel by setting the START bits in the primary control register appropriately
See page ... 6-9 6-9 6-10 6-11 6-12 6-12 6-13 6-13
6-2
Overview
(c) DMA Auxiliary Functions, Constants, and Macros Syntax DMA_autoStart DMA_CHA_CNT DMA_CLEAR_CONDITION DMA_GBLADDRA DMA_GBLADDRB DMA_GBLADDRC DMA_GBLADDRD DMA_GBLCNTA DMA_GBLCNTB DMA_GBLIDXA
Note:
Type Description F C M C C C C C C C Starts a DMA channel with autoinitialization Number of DMA channels for the current device Clears condition flag DMA global address register A mask DMA global address register B mask DMA global address register C mask DMA global address register D mask DMA global count reload register A mask DMA global count reload register B mask DMA global index register A mask
See page ... 6-23 6-24 6-24 6-24 6-24 6-25 6-25 6-25 6-25 6-25
DMA Module
6-3
Overview
C M F F F F F C F
DMA global index register B mask Gets condition flag Reads the current DMA configuration structure Returns the IRQ event ID for the DMA completion interrupt Reads the status bits of the DMA channel Restores the status from DMA_getStatus() by setting the START bit of the PRICTL primary control register Sets the DMA AUXCTL register A compile time constant whose value is 1 if the device supports the DMA module Enters a spin loop that polls the DMA status bits until the DMA completes
6.1.1
6-4
Macros
6.2 Macros
There are two types of DMA macros: those that access registers and fields, and those that construct register and field values. Table 63 lists the DMA macros that access registers and fields, and Table 64 lists the DMA macros that construct register and field values. The macros themselves are found in Chapter 28, Using the HAL Macros. The DMA module includes handle-based macros.
DMA Module
6-5
Macros
Table 64. DMA Macros that Construct Register and Field Values
Macro DMA_<REG>_DEFAULT DMA_<REG>_RMK() DMA_<REG>_OF() DMA_<REG>_<FIELD>_DEFAULT DMA_FMK() DMA_FMKS() DMA_<REG>_<FIELD>_OF() DMA_<REG>_<FIELD>_<SYM> Description/Purpose Register default value Register make Register value of ... Field default value Field make Field make symbolically Field value of ... Field symbolic value See page ... 28-21 28-23 28-22 28-24 28-14 28-15 28-24 28-24
6-6
DMA_Config
global registers needed to initialize a DMA channel. These global registers are resources shared across the different DMA channels, and include element/frame indexes and reload registers, as well as src/dst page registers. You can use literal values or the _RMK macros to create the structure member values.
DMA_Config
Structure Members
Description
This DMA configuration structure is used to set up a DMA channel. You create and initialize this structure and then pass its address to the DMA_config() function. You can use literal values or the _RMK macros to create the structure member values.
DMA_Config MyConfig = { 0x00000050, /* prictl */ 0x00000080, /* secctl */ 0x80000000, /* src */ 0x80010000, /* dst */ 0x00200040 /* xfrcnt */ }; DMA_config(hDma,&MyConfig);
Example
DMA Module
6-7
Members
Description
This is the DMA global register configuration structure used to set up a DMA global register configuration. You create and initialize this structure, then pass its address to the DMA_globalConfig() function.
Uint32 dmaGblRegMsk; Uint32 dmaGblRegId = DMA_GBLADDRB | DMA_GBLADDRC; DMA_GlobalConfig dmaGblCfg = { 0x00000000, /* Global Address Register A */ 0x80001000, /* Global Address Register B */ 0x80002000, /* Global Address Register C */ 0x00000000, /* Global Address Register D */ 0x00000000, /* Global Index Register A */ 0x00000000, /* Global Index Register B */ 0x00000000, /* Global Count Reload Register A */ 0x00000000 /* Global Count Reload Register B */ }; dmaGblRegMsk = DMA_globalAlloc(dmaGblRegId); DMA_globalConfig(dmaGblRegMsk, &dmaGblCfg);
Example
6-8
DMA_close
6.4 Functions
6.4.1 Primary Functions Closes DMA channel opened via DMA_open()
void DMA_close( DMA_Handle hDma ); hDma none This function closes a DMA channel previously opened via DMA_open(). The registers for the DMA channel are set to their power-on defaults and the completion interrupt is disabled and cleared.
DMA_close(hDma);
DMA_close
Function
Example
DMA_config
Function
Arguments
none Sets up the DMA channel using the configuration structure. The values of the structure are written to the DMA registers. The primary control register (prictl) is written last. See also DMA_configArgs() and DMA_Config.
DMA_Config MyConfig = { 0x00000050, /* prictl */ 0x00000080, /* secctl */ 0x80000000, /* src */ 0x80010000, /* dst */ 0x00200040 /* xfrcnt */ }; DMA_config(hDma,&MyConfig); DMA Module 6-9
Example
DMA_configArgs DMA_configArgs
Function
Arguments
none Sets up the DMA channel using the register values passed in. The register values are written to the DMA registers. The primary control register (prictl) is written last. See also DMA_config(). You may use literal values for the arguments or for readability. You may use the _RMK macros to create the register values based on field values.
Example
DMA_configArgs(hDma, 0x00000050, /* prictl 0x00000080, /* secctl 0x80000000, /* src 0x80010000, /* dst 0x00200040 /* xfrcnt );
*/ */ */ */ */
6-10
DMA_open DMA_open
Function
Arguments
Device Handle Handle to newly opened device Before a DMA channel can be used, it must first be opened by this function. Once opened, it cannot be opened again until closed. See DMA_close(). You have the option of either specifying exactly which physical channel to open or you can let the library pick an unused one for you by specifying DMA_CHAANY. The return value is a unique device handle that you use in subsequent DMA API calls. If the open fails, INV is returned. If the DMA_OPEN_RESET is specified, the DMA channel registers are set to their power-on defaults and the channel interrupt is disabled and cleared.
Example
DMA Module
6-11
DMA_pause DMA_pause
Function Pauses DMA channel by setting START bits in primary control register void DMA_pause( DMA_Handle hDma ); hDma none This function pauses the DMA channel by setting the START bits in the primary control register accordingly. See also DMA_start(), DMA_stop(), and DMA_autoStart().
DMA_pause(hDma);
Example
DMA_reset
Function
Example
6-12
DMA_start DMA_start
Function
Example
DMA_stop
Function
Stops DMA channel by setting START bits in primary control register void DMA_stop( DMA_Handle hDma ); hDma none Stops a DMA channel by setting the START bits in the primary control register accordingly. See also DMA_pause(), DMA_start(), and DMA_autoStart().
DMA_stop(hDma);
Example
DMA Module
6-13
DMA_allocGlobalReg
6.4.2
DMA_allocGlobalReg Function
Arguments
Global Register ID Unique ID number for the global register Since the DMA global registers are shared, they must be controlled using resource management. This is done using DMA_allocGlobalReg() and DMA_freeGlobalReg() functions. Allocating a register ensures that it will not be reallocated until it is freed. The register ID may then be used to get or set the register value by calling DMA_getGlobalReg() and DMA_setGlobalReg() respectively. If the register cannot be allocated, a register ID of 0 is returned. The register ID may directly be used with the DMA_PRICTL_RMK macro.
- DMA_GBL_ADDRRLD
Allocate global address register for use as DMA DST RELOAD or DMA SRC RELOAD. Will allocate one of the following DMA registers:
J J J
- DMA_GBL_INDEX
Allocate global index register for use as DMA INDEX. Will allocate one of the following DMA registers:
J J 6-14
DMA_allocGlobalReg
- DMA_GBL_CNTRLD
Allocate global count reload register for use as DMA CNT RELOAD. Will allocate one of the following DMA registers:
J J
- DMA_GBL_SPLIT
Allocate global address register for use as DMA SPLIT. Will allocated one of the following DMA registers:
J J J
Example
Uint32 RegId; /* allocate global index register and initialize it */ RegId = DMA_allocGlobalReg(DMA_GBL_ INDEX,0x00200040);
DMA Module
6-15
DMA_freeGlobalReg
DMA_freeGlobalReg Frees global DMA register that was previously allocated Function void DMA_freeGlobalReg( Uint32 regId ); regId none This function frees a global DMA register that was previously allocated by calling DMA_allocGlobalReg(). Once freed, the register is available for reallocation.
Uint32 RegId; /* allocate global index register and initialize it */ RegId = DMA_allocGlobalReg(DMA_GBL_INDEX,0x00200040); /* some time later on when youre done with it */ DMA_freeGlobalReg(RegId);
Example
DMA_getGlobalReg Function
Register Value Value read from register This function returns the register value of the global DMA register that was previously allocated by calling DMA_allocGlobalReg(). If you prefer not to use the alloc/free paradigm for the global register management, the predefined register IDs may be used. You should be aware that use of predefined register IDs precludes the use of alloc/free. The list of predefined IDs are shown below:
6-16
DMA_getGlobalRegAddr DMA_GBL_ADDRRLDB DMA_GBL_ADDRRLDC DMA_GBL_ADDRRLDD DMA_GBL_INDEXA DMA_GBL_INDEXB DMA_GBL_CNTRLDA DMA_GBL_CNTRLDB DMA_GBL_SPLITA DMA_GBL_SPLITB DMA_GBL_SPLITC
Note: DMA_GBL_ADDRRLDB denotes the same physical register as DMA_GBL_SPLITB and DMA_GBL_ADDRRLDC denotes the same physical register as DMA_GBL_SPLITC. Example
Uint32 RegId; Uint32 RegValue; /* allocate global index register and initialize it / RegId = DMA_allocGlobalReg(DMA_GBL_ INDEX,0x00200040); RegValue = DMA_getGlobalReg(RegId);
DMA_getGlobalRegAddr Gets DMA global register address Function Uint32 DMA_getGlobalRegAddr( Uint32 regId ); regId Uint32 DMA global registers ID DMA global register address corresponding to regId
Get DMA global register address and return the address value.
Uint32 regId = DMA_GBL_ADDRRLDB; Uint32 regAddr; regAddr = DMA_getGlobalRegAddr(regId); DMA Module 6-17
DMA_globalAlloc DMA_globalAlloc
Function
Allocates DMA global registers and returns a mask of allocated DMA global registers. Mask depends on DMA global register ID and the availability of the register.
Uint32 dmaGblRegMsk; Uint32 regs = DMA_GBLADDRB | DMA_GBLADDRC; DmaGblRegMsk = DMA_globalAlloc(regs);
Example
6-18
DMA_globalConfig DMA_globalConfig Sets up the DMA global registers using the configuration structure
Function void DMA_globalConfig( Uint32 regs, DMA_GlobalConfig *cfg ); regs cfg Return Value Description none Sets up the DMA global registers using the configuration structure. The values of the structure that are written to the DMA global registers depend on the DMA global register mask.
Uint32 dmaGblRegMsk; Uint32 dmaGblRegId = DMA_GBLADDRB | DMA_GBLADDRC; DMA_GlobalConfig dmaGblCfg = { 0x00000000, /* Global Address Register A */ 0x80001000, /* Global Address Register B */ 0x80002000, /* Global Address Register C */ 0x00000000, /* Global Address Register D */ 0x00000000, /* Global Index Register A */ 0x00000000, /* Global Index Register B */ 0x00000000, /* Global Count Reload Register A */ 0x00000000 /* Global Count Reload Register B */ }; dmaGblRegMsk = DMA_globalAlloc(dmaGblRegId); DMA_globalConfig(dmaGblRegMsk, &dmaGblCfg);
Arguments
Example
DMA Module
6-19
DMA_globalConfigArgs
DMA_globalConfigArgs Function
void DMA_globalConfigArgs( Uint32 regs, Uint32 addrA, Uint32 addrB, Uint32 addrC, Uint32 addrD, Uint32 idxA, Uint32 idxB, Uint32 cntA, Uint32 cntB ); regs addrA addrB addrC addrD idxA idxB cntA cntB none Sets up the DMA global registers using the register values passed in. The register values that are written to the DMA global registers depend on the DMA global register mask. DMA global register mask value. Global address register A value. Global address register B value. Global address register C value. Global address register D value. Global index register A value. Global index register B value. Global count reload register A value. Global count reload register B value.
Arguments
6-20
DMA_globalConfigArgs Example
Uint32 dmaGblRegMsk; Uint32 dmaGblRegId = DMA_GBLADDRB | DMA_GBLADDRC; Uint32 addrA = 0x00000000; Uint32 addrB = 0x80001000; Uint32 addrC = 0x80002000; Uint32 addrD = 0x00000000; Uint32 idxA = 0x00000000; Uint32 idxB = 0x00000000; Uint32 cntA = 0x00000000; Uint32 cntB = 0x00000000; dmaGblRegMsk = DMA_globalAlloc(dmaGblRegId); DMA_globalConfigArgs( dmaGblRegMsk, addrA, addrB, addrC, addrD, idxA, idxB, cntA, cntB );
DMA Module
6-21
DMA_globalFree DMA_globalFree
Function
DMA_globalGetConfig
Function
void DMA_globalGetConfig( Uint32 regs, DMA_GlobalConfig *cfg ); regs cfg DMA global register ID Pointer to an initialized configuration structure.
Arguments
none Gets DMA global registers current configuration value depending on DMA global register ID.
Uint32 dmaGblRegId = DMA_GBLADDRB | DMA_GBLADDRC; DMA_GlobalConfig dmaGblCfg; DMA_globalGetConfig(dmaGblRegId, &dmaGblCfg);
6-22
DMA_setGlobalReg
DMA_setGlobalReg Function
Arguments
none This function sets the value of a global DMA register that was previously allocated by calling DMA_allocGlobalReg().
Uint32 RegId; /* allocate global index register and initialize it / RegId = DMA_allocGlobalReg(DMA_GBL_INDEX,0x00200040); DMA_setGlobalReg(RegId,0x12345678);
6.4.3
DMA_autoStart
Function
Example
DMA Module
6-23
DMA_CHA_CNT DMA_CHA_CNT
Constant Description
DMA_CLEAR_CONDITION Macro
DMA_CLEAR_CONDITION( hDma, COND ); hDma COND Handle to DMA channel, see DMA_open() Condition to clear, must be one of the following: - DMA_SECCTL_SXCOND - DMA_SECCTL_FRAMECOND - DMA_SECCTL_LASTCOND - DMA_SECCTL_BLOCKCOND - DMA_SECCTL_RDROPCOND - DMA_SECCTL_WDROPCOND
Arguments
none This macro clears one of the condition flags in the DMA secondary control register. See the TMS320C6000 Peripherals Reference Guide (SPRU190) for a description of the condition flags.
DMA_CLEAR_CONDITION(hDma,DMA_SECCTL_BLOCKCOND);
Example
6-24
DMA_GBLCNTA
Constant Description
DMA_GBLCNTB
Constant Description
DMA_GBLIDXA
Constant Description
DMA_GBLIDXB DMA_GBLIDXB
Constant Description
DMA_GET_CONDITION Macro
DMA_GET_CONDITION( hDma, COND ); hDma COND Handle to DMA channel. See DMA_open() Condition to get; must be one of the following: - DMA_SECCTL_SXCOND - DMA_SECCTL_FRAMECOND - DMA_SECCTL_LASTCOND - DMA_SECCTL_BLOCKCOND - DMA_SECCTL_RDROPCOND - DMA_SECCTL_WDROPCOND Condition, 0 if clear, 1 if set
Arguments
Condition
This macro gets one of the condition flags in the DMA secondary control register. See the TMS320C6000 Peripherals Reference Guide (SPRU190) for a description of the condition flags.
if (DMA_GET_CONDITION(hDma,DMA_SECCTL_BLOCKCOND)) { /* user DMA configuration */ }
Example
DMA_getConfig
Function
Arguments
6-26
DMA_getEventId
Return Value Description Example none Get DMA current configuration value
DMA_config dmaCfg; DMA_getConfig(hDma, &dmaCfg);
DMA_getEventId
Function
Returns the IRQ Event ID for the DMA completion interrupt. Use this ID to manage the event using the IRQ module.
EventId = DMA_getEventId(hDma); IRQ_enable(EventId);
DMA_getStatus
Function
Description Example
Arguments
DMA_setAuxCtl
Return Value Description Example none Restores the status from DMA_getStatus() by setting the START bit of the PRICTL primary control register. status = DMA_getStatus(hDma); ... DMA_restoreStatus(hDma, status);
DMA_setAuxCtl
Function
Example
DMA_SUPPORT
Constant Description
Example
#if (DMA_SUPPORT) /* user DMA configuration / #elif (EDMA_SUPPORT) / user EDMA configuration */ #endif
6-28
DMA_wait DMA_wait
Function
Enters spin loop that polls DMA status bits until DMA completes
void DMA_wait( DMA_Handle hDma ); hDma none This function enters a spin loop that polls the DMA status bits until the DMA completes. Interrupts are not disabled during this loop. This function is equivalent to the following line of code:
while (DMA_getStatus(hDma)&DMA_STATUS_RUNNING);
Example
DMA_wait(hDma);
DMA Module
6-29
Chapter 7
EDMA Module
This chapter describes the EDMA module, lists the API functions and macros within the module, discusses how to use an EDMA channel, and provides an EDMA API reference section.
Topic
7.1 7.2 7.3 7.4
Page
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-5 Configuration Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-7 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-8
7-1
Overview
7.1 Overview
Currently, there are two DMA architectures used on C6x devices: DMA and EDMA (Enhanced DMA). Devices such as the C6201 have the DMA peripheral whereas C6211 devices have the EDMA peripheral. The two architectures are different enough to warrant a separate API module for each. Table 71 lists the configuration structures for use with the EDMA functions. Table 72 lists the functions and constants available in the CSL EDMA module.
(b) EDMA Auxiliary Functions and Constants Syntax EDMA_allocTable EDMA_allocTableEx EDMA_CHA_CNT EDMA_chain EDMA_clearChannel EDMA_clearPram
Note: F = Function; C = Constant
Type Description F F C F F F Allocates a parameter RAM table from PRAM Allocates set of parameter RAM tables from PRAM Number of EDMA channels Sets the TCC,TCINT fields of the parent EDMA handle Clears the EDMA event flag in the EDMA channel event register Clears the EDMA parameter RAM (PRAM)
7-2
Overview
Type Description F F F F F F F F F F F F F F F F F F F F F F F F Disables EDMA chaining Enables EDMA chaining Disables an EDMA channel Enables an EDMA channel Frees up a PRAM table previously allocated Frees a previously allocated set of parameter RAM tables Returns the current state of the channel event Reads the current EDMA configuration values Returns the value of the priority queue status register (PQSR) Returns the starting address of the EDMA PRAM used as non-cacheable on-chip SRAM (scratch area) Returns the size (in bytes) of the EDMA PRAM used as non-cacheable on-chip SRAM (scratch area) Returns the 32-bit absolute address of the table Allocates a transfer complete code Clears EDMA transfer completion interrupt pending flag Default function called by EDMA_intDispatcher() Disables EDMA transfer completion interrupt Calls an ISR when CIER[x] and CIPR[x] are both set Enables EDMA transfer completion interrupt Frees a transfer complete code previously allocated Hooks to an ISR channel which is called by EDMA_intDispatcher() Tests EDMA transfer completion interrupt pending flag Links two EDMA transfers together Sets up QDMA registers using configuration structure Sets up QDMA registers using arguments
See page ... 7-20 7-20 7-21 7-21 7-22 7-22 7-23 7-23 7-24 7-24 7-24 7-25 7-25 7-25 7-26 7-26 7-26 7-27 7-27 7-28 7-29 7-29 7-30 7-31
EDMA Module
7-3
Overview
Type Description F F F F F C C Resets all EDMA channels supported by the chip device Resets the Priority queue length to the default value Triggers an EDMA channel by writing to the appropriate bit in the event set register (ESR) Sets the polarity of the event associated with the EDMA handle. Sets the length of a given priority queue allocation register A compile-time constant whose value is 1 if the device supports the EDMA module A compile-time constant that holds the total number of parameter table entries in the EDMA PRAM
See page ... 7-32 7-32 7-32 7-33 7-33 7-34 7-34
7.1.1
7-4
Macros
7.2 Macros
There are two types of EDMA macros: those that access registers and fields, and those that construct register and field values. Table 73 lists the EDMA macros that access registers and fields, and Table 74 lists the EDMA macros that construct register and field values. The macros themselves are found in Chapter 28, Using the HAL Macros. The EDMA module includes handle-based macros.
EDMA Module
7-5
Macros
Table 74. EDMA Macros that Construct Register and Field Values
Macro EDMA_<REG>_DEFAULT EDMA_<REG>_RMK() EDMA_<REG>_OF() EDMA_<REG>_<FIELD>_DEFAULT EDMA_FMK() EDMA_FMKS() EDMA_<REG>_<FIELD>_OF() EDMA_<REG>_<FIELD>_<SYM> Description/Purpose Register default value Register make Register value of ... Field default value Field make Field make symbolically Field value of ... Field symbolic value See page... 28-21 28-23 28-22 28-24 28-14 28-15 28-24 28-24
7-6
EDMA_Config
EDMA_Config
Structure Members
Description
This is the EDMA configuration structure used to set up an EDMA channel. You create and initialize this structure and then pass its address to the EDMA_config() function.
EDMA_Config myConfig = { 0x41200000, /* opt */ 0x80000000, /* src */ 0x00000040, /* cnt */ 0x80010000, /* dst */ 0x00000004, /* idx */ 0x00000000 /* rld */ }; EDMA_config(hEdma,&myConfig);
Example
EDMA Module
7-7
EDMA_close
7.4 Functions
7.4.1 EDMA Primary Functions
EDMA_close
Function
Example
EDMA_close(hEdma);
EDMA_config
Function
Arguments
none Sets up the EDMA channel using the configuration structure. The values of the structure are written to the EDMA PRAM entries. The options value (opt) is written last. See also EDMA_configArgs() and EDMA_Config. This function accepts the following device handles:
- From EDMA_open() - From EDMA_allocTable()
7-8
EDMA_configArgs
Example
EDMA_Config myConfig = { 0x41200000, /* opt */ 0x80000000, /* src */ 0x00000040, /* cnt */ 0x80010000, /* dst */ 0x00000004, /* idx */ 0x00000000 /* rld */ }; EDMA_config(hEdma,&myConfig);
Arguments
Device handle. See EDMA_open() and EDMA_allocTable(). Options Source address Transfer count Destination address Index Element count reload and link address
EDMA_open
- From EDMA_open() - From EDMA_allocTable()
Example
EDMA_configArgs(hEdma, 0x41200000, /* opt */ 0x80000000, /* src */ 0x00000040, /* cnt */ 0x80010000, /* dst */ 0x00000004, /* idx */ 0x00000000 /* rld */ );
EDMA_open
Function
Arguments
7-10
EDMA_open
-
EDMA_CHA_TINT1 EDMA_CHA_SDINT EDMA_CHA_EXTINT4 EDMA_CHA_EXTINT5 EDMA_CHA_EXTINT6 EDMA_CHA_EXTINT7 EDMA_CHA_TCC8 EDMA_CHA_TCC9 EDMA_CHA_TCC10 EDMA_CHA_TCC11 EDMA_CHA_XEVT0 EDMA_CHA_REVT0 EDMA_CHA_XEVT1 EDMA_CHA_REVT1
(In addition, for C6711C and C6712C) - EDMA_CHA_GPINT4 - EDMA_CHA_GPINT5 - EDMA_CHA_GPINT6 - EDMA_CHA_GPINT7 - EDMA_CHA_GPINT2 (For C6713, DA610, C6414, C6415, C6416, DM642, DM641, DM640, C6412, C6413, and C6418) - EDMA_CHA_ANY - EDMA_CHA_DSPINT - EDMA_CHA_TINT0 - EDMA_CHA_TINT1 - EDMA_CHA_SDINT - EDMA_CHA_EXTINT4 - EDMA_CHA_GPINT4 - EDMA_CHA_EXTINT5 - EDMA_CHA_GPINT5 - EDMA_CHA_EXTINT6 - EDMA_CHA_GPINT6 - EDMA_CHA_EXTINT7 - EDMA_CHA_GPINT7 - EDMA_CHA_TCC8 - EDMA_CHA_GPINT0 - EDMA_CHA_TCC9 - EDMA_CHA_GPINT1 - EDMA_CHA_TCC10 - EDMA_CHA_GPINT2
EDMA Module 7-11
EDMA_open
-
EDMA_CHA_TCC11 EDMA_CHA_GPINT3 EDMA_CHA_XEVT0 EDMA_CHA_REVT0 EDMA_CHA_XEVT1 EDMA_CHA_REVT1 EDMA_CHA_GPINT8 EDMA_CHA_GPINT9 EDMA_CHA_GPINT10 EDMA_CHA_GPINT11 EDMA_CHA_GPINT12 EDMA_CHA_GPINT13 EDMA_CHA_GPINT14 EDMA_CHA_GPINT15
(In addition, for C6713 and DA610) - EDMA_CHA_AXEVTE0 - EDMA_CHA_AXEVTO0 - EDMA_CHA_AXEVT0 - EDMA_CHA_AREVTE0 - EDMA_CHA_AREVTO0 - EDMA_CHA_AREVT0 - EDMA_CHA_AXEVTE1 - EDMA_CHA_AXEVTO1 - EDMA_CHA_AXEVT1 - EDMA_CHA_AREVTE1 - EDMA_CHA_AREVTO1 - EDMA_CHA_AREVT1 - EDMA_CHA_ICREVT0 - EDMA_CHA_ICXEVT0 - EDMA_CHA_ICREVT1 - EDMA_CHA_ICXEVT1 (In addition, for C6410, C6413, and C6418) - EDMA_CHA_TINT2 - EDMA_CHA_VCPREVT0# - EDMA_CHA_VCPXEVT0# - EDMA_CHA_AXEVTE0 - EDMA_CHA_AXEVTO0 - EDMA_CHA_AXEVT0 - EDMA_CHA_AREVTE0 - EDMA_CHA_AREVTO0 - EDMA_CHA_AREVT0
7-12
EDMA_open
EDMA_CHA_AXEVTE1 EDMA_CHA_AXEVTO1 EDMA_CHA_AXEVT1 EDMA_CHA_AXEVTE1 EDMA_CHA_AXEVTO1 EDMA_CHA_AXEVT1 EDMA_CHA_ICREVT0 EDMA_CHA_ICXEVT0 EDMA_CHA_ICREVT1 EDMA_CHA_ICXEVT1 # Defined only for C6418
-
(In addition, for DM642, DM641, and DM640) - EDMA_CHA_VP0EVTYA - EDMA_CHA_VP0EVTUA - EDMA_CHA_VP0EVTVA - EDMA_CHA_TINT2 - EDMA_CHA_ICREVT0 - EDMA_CHA_ICXEVT0 - EDMA_CHA_VP0EVTYB# - EDMA_CHA_VP0EVTUB# - EDMA_CHA_VP0EVTVB# - EDMA_CHA_AXEVTE0 - EDMA_CHA_AXEVTO0 - EDMA_CHA_AXEVT0 - EDMA_CHA_AREVTE0 - EDMA_CHA_AREVTO0 - EDMA_CHA_AREVT0 - EDMA_CHA_VP1EVTYB# - EDMA_CHA_VP1EVTUB# - EDMA_CHA_VP1EVTVB# - EDMA_CHA_VP2EVTYB# - EDMA_CHA_VP2EVTUB# - EDMA_CHA_VP2EVTVB# - EDMA_CHA_VP1EVTYA - EDMA_CHA_VP1EVTUA - EDMA_CHA_VP1EVTVA - EDMA_CHA_VP2EVTYA@ - EDMA_CHA_VP2EVTUA@ - EDMA_CHA_VP2EVTVA@ @ Only for DM642 and DM641 # Only for DM642
EDMA Module
7-13
EDMA_open
(In addition, for C6414, C6415 and C6416) - EDMA_CHA_XEVT2 - EDMA_CHA_REVT2 - EDMA_CHA_TINT2 - EDMA_CHA_SDINTB - EDMA_CHA_PCI - EDMA_CHA_VCPREVT - EDMA_CHA_VCPXEVT - EDMA_CHA_TCPREVT - EDMA_CHA_TCPXEVT - EDMA_CHA_UREVT - EDMA_CHA_UREVT0 - EDMA_CHA_UREVT1 - EDMA_CHA_UREVT2 - EDMA_CHA_UREVT3 - EDMA_CHA_UREVT4 - EDMA_CHA_UREVT5 - EDMA_CHA_UREVT6 - EDMA_CHA_UREVT7 - EDMA_CHA_UXEVT - EDMA_CHA_UXEVT0 - EDMA_CHA_UXEVT1 - EDMA_CHA_UXEVT2 - EDMA_CHA_UXEVT3 - EDMA_CHA_UXEVT4 - EDMA_CHA_UXEVT5 - EDMA_CHA_UXEVT6 - EDMA_CHA_UXEVT7 (In addition, for C6412) - EDMA_CHA_TINT2 - EDMA_CHA_PCI - EDMA_CHA_MACEVT - EDMA_CHA_ICREVT0 - EDMA_CHA_ICXEVT0 flags Open flags, logical OR of any of the following: - EDMA_OPEN_RESET - EDMA_OPEN_ENABLE
Return Value
7-14
Device Handle Device handle to be used by other EDMA API function calls.
EDMA_reset
Description Before an EDMA channel can be used, it must first be opened by this function. Once opened, it cannot be opened again until closed. See EDMA_close(). You have the option of either specifying exactly which physical channel to open or you can let the library pick an unused one for you by specifying EDMA_CHA_ANY. The return value is a unique device handle that you use in subsequent EDMA API calls. If the open fails, INV is returned. If the EDMA_OPEN_RESET is specified, the EDMA channel is reset and the channel interrupt is disabled and cleared. If the EDMA_OPEN_ENABLE flag is specified, the channel will be enabled. If the channel cannot be opened, INV is returned. Note: If the DAT module is open [see DAT_open()], then EDMA transfer completion interrupts 1 through 4 are reserved. Refer to the TMS320C6000 Peripherals Reference Guide (SPRU190) for details regarding the EDMA channels. Example
EDMA_Handle hEdma; ... hEdma = EDMA_open(EDMA_CHA_TINT0,EDMA_OPEN_RESET); ...
EDMA_reset
Function
This function accepts the following device handle: From EDMA_open() Example
EDMA_reset(hEdma); EDMA Module 7-15
EDMA_allocTable
Function
Device Handle Returns a device handle This function allocates the PRAM tables dedicated to the Reload/Link parameters. You use the Reload/Link PRAM tables for linking transfers together. You can either specify a table number or specify 1 and the function will pick an unused one for you. The return value is a device handle and may be used for APIs that require a device handle. If the table could not be allocated, then INV is returned. If you finish with the table and wish to free it up again, call EDMA_freeTable(). For TMS320C621x/C671x, the first two tables located at 0x01A00180 and 0x01A00198, respectively, are reserved. The first parameter table is initialized to zero, and the second table is reserved for CSL code. The first available table for the user starts at address 0x01A001B0. There are 67 available tables, with table numbers from 0 to 66. For TMS320C64xx, the first two tables located at 0x01A00600 and 0x01A00618 are reserved. The first parameter table is initialized to zero, and the second table is reserved for CSL code. The first available table for the user starts at address 0x01A00630. There are 19 available tables, with table numbers from 0 to 18.
hEdmaTable=EDMA_allocTable(0);
Example
7-16
EDMA_allocTableEx
EDMA_allocTableEx Allocates set of parameter RAM tables from PRAM Function int EDMA_allocTableEx( int cnt, EDMA_Handle *array ); cnt array Return Value Description numAllocated cnt or 0. Number of tables to allocate An array to hold the table handles for each table allocated Returns the actual number of tables allocated. It will either be
Arguments
This function allocates a set of parameter RAM tables from PRAM. The tables are not guaranteed to be contiguous in memory. You use PRAM tables for linking transfers together. The array passed in is filled with table handles and each one may be used for APIs that require a device handle. If you finish with the tables and wish to free them up again, call EDMA_freeTableEx().
Example
EDMA_CHA_CNT
Constant Description
EDMA Module
7-17
EDMA_chain EDMA_chain
Function
Arguments
flag_atcc
none Sets the TCC,TCINT fields (and TCCM field for C64x devices) of the parent EDMA handle based on the nextChannel EDMA handle. For C621x/C671x, only channels from 8 to 11 are chainable.
7-18
EDMA_clearChannel Example
EDMA_Handle hEdmaChain,hEdmaPar; Unit32 Tcc; /*Open and Configure parent Channel*/ hEdmaPar=EDMA_open(EDMA_CHA_TINT1,EDMA_OPEN_RESET); EDMA_config(hEdmaPar,&myConfig); /*Allocate a transfer complete code*/ Tcc=intAlloc(1); /*Open the Channel for the next transfer with TCC value*/ hEdmaChain=EDMA_open(Tcc,EDMA_OPEN_RESET); /*Update the TCC, TCINT, (TCCM) fields of the parent channel configuration*/ EDMA_chain(hEdmaPar,hEdmaChain,EDMA_TCC_SET,0) /*Enable chaining: CCER (CCERL/CCERH) setting*/ ); EDMA_enableChaining(hEdmaChain);
EDMA_clearChannel Clears EDMA event flag in EDMA channel event register Function void EDMA_clearChannel( EDMA_Handle hEdma ); hEdma none This function clears the EDMA event flag in the EDMA channel event register by writing to the appropriate bit in the EDMA event clear register (ECR). This function accepts the following device handle: From EDMA_open() Example
EDMA_clearChannel(hEdma);
EDMA Module
7-19
EDMA_clearPram EDMA_clearPram
Function
EDMA_disableChaining Function
void EDMA_disableChaining( EDMA_Handle hEdma ); hEdma none Disables the CCE bit in the Channel Chaining Enable Register associated with the EDMA handle. See also EDMA_enableChaining(). For C621x/C671x, only channels from 8 to 11 are chainable. EDMA handle to be chained
Example
EDMA_enableChaining(hEdmaCha8); EDMA_disableChaining(hEdmaCha8);
EDMA_enableChaining Enables EDMA chaining Function void EDMA_enableChaining( EDMA_Handle hEdma ); hEdma none Enables the CCE bit in the Channel Chaining Enable Register associated with the EDMA handle. EDMA handle to be chained
7-20
EDMA_disableChannel Disables EDMA channel Function void EDMA_disableChannel( EDMA_Handle hEdma ); hEdma none Disables an EDMA channel by clearing the corresponding bit in the EDMA event enable register. See also EDMA_enableChannel(). This function accepts the following device handle: From EDMA_open() Example
EDMA_disableChannel(hEdma);
EDMA_enableChannel Function
void EDMA_enableChannel( EDMA_Handle hEdma ); hEdma none Enables an EDMA channel by setting the corresponding bit in the EDMA event enable register. See also EDMA_disableChannel(). When you open an EDMA channel it is disabled, so you must enable it explicitly.
EDMA Module 7-21
EDMA_freeTable
This function accepts the following device handle: From EDMA_open() Example
EDMA_enableChannel(hEdma);
EDMA_freeTable
Function
This function accepts the following device handle: From EDMA_allocTable() Example EDMA_freeTableEx Function
EDMA_freeTable(hEdmaTable);
Arguments
none This function frees a set of parameter RAM tables that were previously allocated. You use PRAM tables for linking transfers together. The array that is passed in must contain the table handles for each one to be freed.
EDMA_Handle hEdmaTableArray[16]; ... if (EDMA_allocTableEx(16,hEdmaTableArray)) { ... } ... EDMA_freeTableEx(16,hEdmaTableArray);
Example
7-22
EDMA_getChannel
EDMA_getChannel Function
Description
Returns the current state of the channel event by reading the event flag from the EDMA channel event register (ER). This function accepts the following device handle: From EDMA_open()
Example
flag = EDMA_getChannel(hEdma);
EDMA_getConfig
Function
Arguments
EDMA Module
7-23
EDMA_getPriQStatus
EDMA_getPriQStatus Returns value of priority queue status register (PQSR) Function Arguments Return Value Description Uint32 EDMA_getPriQStatus(); none Status Returns status of the priority queue
Returns the value of the priority queue status register (PQSR). May be the logical OR of any of the following:
- 0x00000001 PQ0 - 0x00000002 PQ1 - 0x00000004 PQ2
Example
pqStat = EDMA_getPriQStatus();
EDMA_getScratchAddr Returns starting address of EDMA PRAM scratch area Function Arguments Return Value Description Uint32 EDMA_getScratchAddr(); none Scratch Address 32-bit starting address of PRAM scratch area
There is a small portion of the EDMA PRAM that is not used for parameter tables and is free for use as non-cacheable on-chip SRAM. This function returns the starting address of this scratch area. See also EDMA_getScratchSize().
Uint32 *scratchWord; scratchWord = (Uint32*)EDMA_getScratchAddr();
Example
EDMA_getScratchSize Returns size (in bytes) of EDMA PRAM scratch area Function Arguments Return Value Description Uint32 EDMA_getScratchSize(); none Scratch Size Size of PRAM scratch area in bytes
There is a small portion of the EDMA PRAM that is not used for parameter tables and is free for use as non-cacheable on-chip SRAM. This function returns the size of this scratch area in bytes. See also EDMA_getScratchAddr().
scratchSize = EDMA_getScratchSize();
Example
7-24
EDMA_getTableAddress
EDMA_getTableAddress Returns 32-bit absolute address of table Function Uint32 EDMA_getTableAddress( EDMA_Handle hEdma ); hEdma Device handle obtained by EDMA_allocTable().
Table Address 32-bit address of table Given a device handle obtained from EDMA_allocTable(), this function returns the 32-bit absolute address of the table. This function accepts the following device handle: From EDMA_allocTable()
Example
addr = EDMA_getTableAddress(hEdmaTable);
EDMA_intAlloc
Function
This function allocates the transfer-complete code passed in and returns the same TCC number if successful, or 1 otherwise. If 1 is used as an argument, the first available TCC number is allocated.
EDMA_intAlloc(5); EDMA_intAlloc(43); tcc=EDMA_intAlloc(1);;
Example
EDMA_intClear
Function
Arguments
EDMA_intDefaultHandler
none This function clears a transfer-completion interrupt flag by modifying the CIPR register appropriately. Note: If the DAT module is open [see DAT_open()], then EDMA transfer-completion interrupts 1 through 4 are reserved.
EDMA_intClear(12);
EDMA_intDisable
Function
Example
EDMA_intDisable(12);
EDMA_intDispatcher Calls an ISR when CIER[x] and CIPR[x] are both set Function void EDMA_intDispatcher( void ); none
Arguments
7-26
EDMA_intEnable
Return Value Description none This function checks for CIER and CIPR for all those bits which are set in both the registers and calls the corresponding ISR. For example, if CIER[14] = 1 and CIPR[14] =1 then it calls the ISR corresponding to channel 14. By default, this ISR is EDMA_intHandler(), however, this can be changed by EDMA_intHook(). See also EDMA_intDefaultHandler() and EDMA_intHook(). EDMA_intDispatcher();
Example
EDMA_intEnable
Function
Example
EDMA_intEnable(12);
EDMA_intFree
Function
EDMA_intHook EDMA_intHook
Function
Arguments
IntHandler Returns the old ISR address This function hooks an ISR to the specified channel. When the tcint is 1 and tccNum is specified in the EDMA options, the EDMA controller sets the corresponding bit in the CIPR register. If the corresponding bit in the CIER register is also set, then calling EDMA_intDispatcher() would call the ISR corresponding the the tccNum, which by default is nothing. To change this default ISR to a different one, use EDMA_intHook(). Only when an ISR is hooked this way would it be called. See also EDMA_intDefaultHandler() and EDMA_intDispatcher().
Example
complete);
//Hooks
complete
function
to
EDMA_intReset
Function
Example
7-28
EDMA_intTest
Function
Description
This function tests a transfer-completion interrupt flag by reading the CIPR register appropriately. Note: If the DAT module is open [see DAT_open()], then EDMA transfer-completion interrupts 1 through 4 are reserved.
Example
if (EDMA_intTest(12)) { ... }
EDMA_link
Function
Arguments
EDMA_map
Return Value Description none This function links two EDMA transfers together by setting the LINK field of the parents RLD parameter appropriately. Both parent and child handles may be from EDMA_open(), EDMA_allocTable(), or a combination of both. parent>child Note: This function does not attempt to set the LINK field of the OPT parameter; this is still up to the user. Example
EDMA_Handle hEdma; EDMA_Handle hEdmaTable; ... hEdma = EDMA_open(EDMA_CHA_TINT1,0); hEdmaTable = EDMA_allocTable(1); EDMA_link(hEdma,hEdmaTable); EDMA_link(hEdmaTable,hEdmaTable);
EDMA_map
Function
7-30
EDMA_qdmaConfigArgs Example
EDMA_Config myConfig = { 0x41200000, /* opt */ 0x80000000, /* src */ 0x00000040, /* cnt */ 0x80010000, /* dst */ 0x00000004, /* idx */ 0x00000000 /* rld will be ignored */ }; EDMA_qdmaConfig(&myConfig);
EDMA_qdmaConfigArgs Sets up QDMA registers using arguments Function void EDMA_qdmaConfigArgs( Uint32 opt, Uint32 src, Uint32 cnt, Uint32 dst, Uint32 idx ); opt src cnt dst idx Return Value Description none Sets up the QDMA registers using the arguments passed in. The src, cnt, dst, and idx values are written to the normal QDMA registers, then the opt value is written to the pseudo-OPT register which initiates the transfer. See also EDMA_qdmaConfig() and EDMA_Config.
EDMA_qdmaConfigArgs( 0x41200000, /* opt 0x80000000, /* src 0x00000040, /* cnt 0x80010000, /* dst 0x00000004 /* idx ); */ */ */ */ */
Arguments
Example
EDMA Module
7-31
EDMA_resetAll EDMA_resetAll
Function Arguments Return Value Description
Example
EDMA_resetPriQLength Function
void EDMA_resetPriQLength( Uint32 priNum ) priNum Queue Number [03] associated to the following constants: - EDMA_Q0 - EDMA_Q1 - EDMA_Q2 - EDMA_Q3
Arguments
none Resets the queue length of the associated priority queue allocation register to the default value. See also EDMA_setPriQLength() function
/* Sets the queue length of the PQAR0 register */ EDMA_setPriQLength(EDMA_Q0,4); /* Resets the queue length of the PQAR0 */ EDMA_resetPriQLength(EDMA_Q0);
Arguments
7-32
EDMA_setEvtPolarity
Return Value Description none Software triggers an EDMA channel by writing to the appropriate bit in the EDMA event set register (ESR). This function accepts the following device handle: From EDMA_open() Example
EDMA_setChannel(hEdma);
Arguments
polarity
none Sets the polarity of the event associated with the EDMA channel.
/* Sets the polarity of the event to transition*/ hEdma=EDMA_open(EDMA_CHA_TINT1,0); EDMA_setEvtPolarity(hEdma,EDMA_EVT_HIGHLOW); falling-edge of
Arguments
length
EDMA_SUPPORT
Return Value Description Example none Sets the queue length of the associated priority queue allocation register (See EDMA_resetPriQLength() function.)
/* Sets the queue length of the PQAR1 register to 4 */ EDMA_setPriQLength(EDMA_Q1,4); EDMA_resetPriQLength(EDMA_Q1);
EDMA_SUPPORT
Constant Description
Compile-time constant
EDMA_SUPPORT Compile-time constant that has a value of 1 if the device supports the EDMA module and 0 otherwise. You are not required to use this constant. Note: The EDMA module is not supported on devices that do not have the EDMA peripheral. In these cases, the DMA module is supported instead.
Example
#if (EDMA_SUPPORT) /* user EDMA configuration / #elif (DMA_SUPPORT) / user DMA configuration */ #endif
Compile-time constant
EDMA_TABLE_CNT Compile-time constant that holds the total number of reload/link parameter-table entries in the EDMA PRAM.
7-34
Chapter 8
EMAC Module
This chapter describes the EMAC module, lists the API functions and macros within the module, and provides an EMAC reference section.
Topic
8.1 8.2 8.3 8.4
Page
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-4 Configuration Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-6 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-13
8-1
Overview
8.1 Overview
The ethernet media access controller (EMAC) module provides an efficient interface between the DSP core processor and the networked community. The EMAC supports both 10Base-T (10Mbits/sec) and 100BaseTX (100Mbits/sec), in either half or full duplex, with hardware flow control and quality-of-service (QOS) support. Note: When used in a multitasking environment, no EMAC function may be called while another EMAC function is operating on the same device handle in another thread. It is the responsibility of the application to assure adherence to this restriction. Table 81 lists the configuration structures for use with the EMAC functions. Table 82 lists the functions and constants available in the CSL EMAC module.
8-2
Overview
EMAC Module
8-3
Macros
8.2 Macros
There are two types of EMAC macros: those that access registers and fields, and those that construct register and field values. Table 83 lists the EMAC macros that access registers and fields, and Table 83 lists the EMAC macros that construct register and field values. The macros themselves are found in Chapter 28, Using the HAL Macros.
8-4
Macros
EMAC Module
8-5
EMAC_Config
EMAC_Config
Members
EMACPkt EMAC_Pkt * (*pfcbGetPacket)(Handle hApplication); /* Callback function */ void (*pfcbFreePacket)(Handle hApplication, EMAC_Pkt *pPacket); /* Callback function */ EMAC_Pkt *(*pfcbRxPacket)(Handle hApplication, EMAC_Pkt *pPacket); /*Callback function */ void (*pfcbStatus)(Handle hApplication); /* Callback function */ void (*pfcbStatistics)(Handle hApplication); /* Callback function */ Description The config structure defines how the EMAC device should operate. It is passed to the device when the device is opened, and remains in effect until the device is closed. A list of callback functions is used to register callback functions with a particular instance of the EMAC peripheral. Callback functions are used by EMAC to communicate with the application. These functions are REQUIRED for operation. The same callback table can be used for multiple driver instances. The callback functions can be used by EMAC during any EMAC function, but mostly occur during calls to EMAC_statusIsr() and EMAC_statusPoll().
8-6
EMAC_Config
- * pfcbGetPacket
Called by EMAC to get a free packet buffer from the application layer for receive data. This function should return NULL is no free packets are available. The size of the packet buffer must be large enough to accommodate a full sized packet (1514 or 1518 depending on the EMAC_CONFIG_MODEFLG_RXCRC flag), plus any application buffer padding (DataOffset).
- * pfcbFreePacket
Called by EMAC to give a free packet buffer back to the application layer. This function is used to return transmit packets. Note that at the time of the call, structure fields other than pDataBuffer and BufferLen are in an undefined state.
- * pfcbRxPacket
Called to give a received data packet to the application layer. The applicaiton must accept the packet. When the application is finished with the packet, it can return it to its own free queue. This function also returns a pointer to a free packet to replace the received packet on the EMAC free list. It returns NULL when no free packets are available. The return packet is the same as would be returned by pfcbGetPacket. Therefore, if a newly received packet is not desired, it can simply be returned to EMAC via the return value.
- * pfcbStatus
Called to indicate to the application that it should call EMAC_getStatus() to read the current device status. This call is made when device status changes.
- * pfcbStatistics
Called to indicate to the application that it should call EMAC_getStatistics() to read the current Ethernet statistics. Called when the statistic counters are to the point of overflow. The hApplication calling calling argument is the applications handle as supplied to the EMAC device in the EMAC_open() function.
EMAC Module
8-7
EMAC_Pkt EMAC_Pkt Defines the basic unit of memory used to hold data packets for the EMAC
Uint32 AppPrivate; struct _EMAC_Pkt *pPrev; struct _EMAC_Pkt *pNext; Uint8 *pDataBuffer; Uint32 BufferLen; Uint32 Flags; Uint32 ValidLen; Uint32 DataOffset; Uint32 PktChannel; Uint32 PktLength; Uint32 PktFrags; /*For use by the application /*Previous record */ /*Next record */ /*Pointer to Data Buffer (read only) */ /*Physical Length of buffer (read only) */ /*Packet Flags */ /*Length of valid data in buffer */ /*Byte offset to valid data */ /*Tx/Rx Channel/Priority 07 (SOP only) */ /*Length of Packet (SOP only) */ /*(same as ValidLen on single frag Pkt) */ /*Number of frags in packet (SOP only) */ /*(frag is EMAC_Pkt record normally 1)*/
Members
Description
The packet structure defines the basic unit of memory used to hold data packets for the EMAC device. A packet is comprised of one or more packet buffers. Each packet buffer contains a packet buffer header, and a pointer to the buffer data. The EMAC_Pkt structure defines the packet buffer header. The pDataBuffer field points to the packet data. This is set when the buffer is allocated, and is not altered. BufferLen holds the the total length of the data buffer that is used to store the packet (or packet fragment). This size is set by the entity that originally allocates the buffer, and is not altered. The Flags field contains additional information about the packet. ValidLen holds the length of the valid data currently contained in the data buffer. DataOffset is the byte offset from the start of the data buffer to the first byte of valid data. Therefore, (ValidLen+DataOffet)<=BufferLen. Note that for receive buffer packets, the DataOffset field may be assigned before there is any valid data in the packet buffer. This allows the application to reserve space at the top of data buffer for private use. In all instances, the
8-8
EMAC_Pkt
DataOffset field must be valid for all packets handled by EMAC. The data portion of the packet buffer represents a packet or a fragment of a larger packet. This is determined by the Flags parameter. At the start of every packet, the SOP bit is set in Flags. If the EOP bit is also set, then the packet is not fragmented. Otherwise; the next packet structure pointed to by the pNext field will contain the next fragment in the packet. On either type of buffer, when the SOP bit is set in Flags, then the PktChannel, PktLength, and PktFrags fields must also be valid. These fields contain additional information about the packet. The PktChannel field detetmines what channel the packet has arrived on, or what channel it should be transmitted on. The EMAC library supports only a single receive channel, but allows for up to eight transmit channels. Transmit channels can be treated as roundrobin or priority queues. The PktLength field holds the size of the entire packet. On single frag packets (both SOP and EOP set in BufFlags), PktLength and ValidLen will be equal. The PktFrags field holds the number of fragments (EMAC_Pkt records) usedto describe the packet. If more than 1 frag is present, the first recordmust have EMAC_PKT_FLAGS_SOP flag set, with corresponding fields validated.Each frag/record must be linked list using the pNext field, and the finalfrag/record must have EMAC_PKT_FLAGS_EOP flag set and pNext=0. In systems where the packet resides in cacheable memory, the data buffer must start on a cache line boundary and be an even multiple of cache lines in size. The EMAC_Pkt header must not appear in the same cache line as the data portion of the packet. On multi-fragment packets, some packet fragments may reside in cacheable memory where others do not. Note: It is up to the caller to assure that all packet buffers residing in cacheable memory are not currently stored in L1 or L2 cache when passed to any EMAC function. Some of the packet Flags can only be set if the device is in the proper configuration to receive the corresponding frames. In order to enable these flags, the following modes must be set: RxCrc Flag : RXCRC Mode in EMAC_Config RxErr Flags : PASSERROR Mode in EMAC_Config RxCtl Flags : PASSCONTROL Mode in EMAC_Config RxPrm Flag : EMAC_RXFILTER_ALL in EMAC_setReceiveFilter()
EMAC Module 8-9
EMAC_Status EMAC_Status
Members
Description
The status structure contains information about the MACs run-time status. The following is a short description of the configuration fields:
- MdioLinkStatus
Current number of Rx packets held by the EMAC device - TxPktHeld Current number of Tx packets held by the EMAC device - FatalError Fatal Error Code
8-10
EMAC_Statistics EMAC_Statistics Retreives the current count of various packet events in the system
Members
Uint32 RxGoodFrames; Uint32 RxBCastFrames; Uint32 RxMCastFrames; Uint32 RxPauseFrames; Uint32 RxCRCErrors; Uint32 RxAlignCodeErrors; Uint32 RxOversized; Uint32 RxJabber; Uint32 RxUndersized; Uint32 RxFragments; Uint32 RxFiltered; Uint32 RxQOSFiltered; Uint32 RxOctets; Uint32 TxGoodFrames; Uint32 TxBCastFrames; Uint32 TxMCastFrames; Uint32 TxPauseFrames; Uint32 TxDeferred; Uint32 TxCollision; Uint32 TxSingleColl; Uint32 TxMultiColl; Uint32 TxExcessiveColl; Uint32 TxLateColl; Uint32 TxUnderrun; Uint32 TxCarrierSLoss; Uint32 TxOctets; Uint32 Frame64; Uint32 Frame65t127; Uint32 Frame128t255;
/* Good Frames Received */ /* Good Broadcast Frames Received */ /* Good Multicast Frames Received */ /* PauseRx Frames Received */ /* Frames Received with CRC Errors */ /* Frames Received with Alignment/Code Errors */ /* Oversized Frames Received */ /* Jabber Frames Received */ /* Undersized Frames Received */ /* Rx Frame Fragments Received */ /* Rx Frames Filtered Based on Address */ /* Rx Frames Filtered Based on QoS Filtering */ /* Total Received Bytes in Good Frames */ /* Good Frames Sent */ * Good Broadcast Frames Sent */ /* Good Multicast Frames Sent */ /* PauseTx Frames Sent */ /* Frames Where Transmission was Deferred */ /* Total Frames Sent With Collision */ /* Frames Sent with Exactly One Collision*/ /* Frames Sent with Multiple Colisions */ /* Tx Frames Lost Due to Excessive Collisions */ /* Tx Frames Lost Due to a Late Collision*/ /* Tx Frames Lost with Transmit Underrun Error */ /* Tx Frames Lost Due to Carrier Sense Loss */ /* Total Transmitted Bytes in Good Frames*/ /* Total Tx&Rx with Octet Size of 64 */ /* Total Tx&Rx with Octet Size of 65 to 127 */ /* Total Tx&Rx with Octet Size of 128 to
EMAC Module 8-11
EMAC_Statistics
255 */ /* Total Tx&Rx with Octet Size of 256 to 511 */ /* Total Tx&Rx with Octet Size of 512 to 1023 */ /* Total Tx&Rx with Octet Size of >=1024 */ /* Sum of all Octets Tx or Rx on the Network */ /* Total Rx Start of Frame Overruns */ /* Total Rx Middle of Frame Overruns */ /* Total Rx DMA Overruns */
Uint32 Frame256t511; Uint32 Frame512t1023; Uint32 Frame1024tUp; Uint32 NetOctets; Uint32 RxSOFOverruns; Uint32 RxMOFOverruns; Uint32 RxDMAOverruns; Description
The statistics structure is the used to retrieve the current count of various packet events in the system. These values represent the delta values from the last time the statistics were read. Note: The application is charged with verifying that only one of the following API calls may only be executing at a given time across all threads and all interrupt functions.
8-12
EMAC_close
8.4 Functions
In the function descriptions, uint is defined as unsigned int and Handle as void*
EMAC_close
Function
Example
EMAC_enumerate Enumerates the peripherals installed in the system and returns an integer count
Function Arguments Return Value Description uint EMAC_enumerate(); None uint Enumerates the EMAC peripherals installed in the system and returns an integer count. The EMAC devices are enumerated in a consistent fashion so that each device can be later referenced by its physical index value ranging from 1 to n where n is the count returned by this function.
uint numOfEmac; ... numOfEmac = EMAC_enumerate(); EMAC Module 8-13
Example
EMAC_getReceiveFilter EMAC_getReceiveFilter Called to get the current packet filter setting for received packets
Function uint EMAC_getReceiveFilter( Handle hEMAC, uint *pReceiveFilter ); Handle hEMAC uint *pReceiveFilter uint Called to get the current packet filter setting for received packets. The filter values are the same as those used in EMAC_setReceiveFilter(). The current filter value is written to the pointer supplied in pReceiveFilter. The function returns zero on success, or an error code on failure. Possible error code include: EMAC_ERROR_INVALID A calling parameter is invalid Example
Handle hEMAC; uint *pReceiveFilter; uint retStat; ... retStat = EMAC_getReceiveFilter(hEMAC, pReceiveFilter);
8-14
EMAC Module
8-15
EMAC_getStatus EMAC_getStatus
Function
Example
uint retVal; Handle hEMAC; EMAC_Status *pStatus; ... retVal = EMAC_getStatus(hEMAC, pStatus);
8-16
EMAC_open EMAC_open
Function
Arguments
Example
uint retVal; Handle hApplication; EMAC_Config *pEMACConfig; Handle *phEMAC; ... retVal = EMAC_open(1, hApplication, pEMACConfig, phEMAC); EMAC Module 8-17
EMAC_setReceiveFilter EMAC_setReceiveFilter Called to set the packet filter for received packets
Function uint EMAC_setReceiveFilter( Handle hEMAC, uint ReceiveFilter ); Handle hEMAC uint ReceiveFilter uint Called to set the packet filter for received packets. The filtering level is inclusive, so BROADCAST would include both BROADCAST and DIRECTED (UNICAST) packets. Available filtering modes include the following: EMAC_RXFILTER_NOTHING Receive nothing EMAC_RXFILTER_DIRECT Receive only Unicast to local MAC addr EMAC_RXFILTER_BROADCAST Receive direct and broadcast EMAC_RXFILTER_MULTICAST Receive above plus multicast in mcast list EMAC_RXFILTER_ALLMULTICAST Receive above plus all multicast EMAC_RXFILTER_ALL Receive all packets Note that if error frames and control frames are desired, reception of these must be specified in the device configuration. Possible error code include: EMAC_ERROR_INVALID A calling parameter is invalid Example
uint retVal; Handle hEMAC; ... retVal = EMAC_setReceiveFilter(hEMAC, EMAC_RXFILTER_DIRECT);
8-18
EMAC_setMulticast EMAC_setMulticast Called to install a list of multicast addresses for use in multicast address filtering
Function uint EMAC_setMulticast( Handle hEMAC, uint AddrCnt, Uint8 *pMCastList ); Handle hEMAC uint AddrCnt Uint8 *pMCastList uint This function is called to install a list of multicast addresses for use in multicast address filtering. Each time this function is called, any current multicast configuration is discarded in favor of the new list. Therefore, a set with a list size of zero removes all multicast addresses from the device. Note that the multicast list configuration is stateless in that the list of multicast addresses used to build the configuration is not retained. Therefore, it is impossible to examine a list of currently installed addresses. The addresses to install are pointed to by pMCastList. The length of this list in bytes is 6 times the value of AddrCnt. When AddrCnt is zero, the pMCastList parameter can be NULL.. The function returns zero on success, or an error code on failure. The multicast list settings are not altered in the event of a failure code. Possible error code include: EMAC_ERROR_INVALID A calling parameter is invalid Example
uint retVal; Handle hEMAC; Uint8 *pMCastList; ... retVal = EMAC_setMulticast(hEMAC, 0, NULL);
Arguments
EMAC Module
8-19
EMAC_sendPacket EMAC_sendPacket Sends a Ethernet data packet out the EMAC device
Function uint EMAC_sendPacket( Handle hEMAC, EMAC_Pkt *pPacket ); Handle hEMAC EMAC_Pkt *pPacket uint Sends a Ethernet data packet out the EMAC device. On a non-error return, the EMAC device takes ownership of the packet. The packet is returned to the applications free pool once it has been transmitted. The function returns zero on success, or an error code on failure. When an error code is returned, the EMAC device has not taken ownership of the packet. Possible error codes include: EMAC_ERROR_INVALID A calling parameter is invalid EMAC_ERROR_BADPACKET The packet structure is invalid Example
uint retVal; Handle hEMAC; EMAC_Pkt *pPacket; ... retVal = EMAC_sendPacket(hEMAC, pPacket);
8-20
EMAC Module
8-21
EMAC_SUPPORT EMAC_SUPPORT
Description
Compile-time constant
Compile-time constant that has a value of 1 if the device supports the EMAC module and 0 otherwise. You are not required to use this constant.
EMAC_timerTICK
Function
Example
8-22
Chapter 9
EMIF Module
This chapter describes the EMIF module, lists the API functions and macros within the module, and provides an EMIF API reference section. Note: This module has not been updated for C64x devices.
Topic
9.1 9.2 9.3 9.4
Page
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-2 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-3 Configuration Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-5 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-6
9-1
Overview
9.1 Overview
The EMIF module has a simple API for configuring the EMIF registers. The EMIF may be configured by passing an EMIF_Config() structure to EMIF_config() or by passing register values to the EMIF_configArgs() function. To assist in creating register values, there are EMIF_MK (make) macros that construct register values based on field values. In addition, there are symbol constants that may be used for the field values. Table 91 lists the configuration structure for use with the EMIF functions. Table 92 lists the functions and constants available in the CSL EMIF module.
Note:
F = Function; C = Constant
9-2
Macros
9.2 Macros
There are two types of EMIF macros: those that access registers and fields, and those that construct register and field values. Table 93 lists the EMIF macros that access registers and fields, and Table 94 lists the EMIF macros that construct register and field values. The macros themselves are found in Chapter 28, Using the HAL Macros. EMIF macros are not handle based.
EMIF Module
9-3
Macros
Table 94. EMIF Macros that Construct Register and Field Values
Macro EMIF_<REG>_DEFAULT EMIF_<REG>_RMK() EMIF_<REG>_OF() EMIF_<REG>_<FIELD>_DEFAULT EMIF_FMK() EMIF_FMKS() EMIF_<REG>_<FIELD>_OF() EMIF_<REG>_<FIELD>_<SYM> Description/Purpose Register default value Register make Register value of ... Field default value Field make Field make symbolically Field value of ... Field symbolic value See page ... 28-21 28-23 28-22 28-24 28-14 28-15 28-24 28-24
9-4
EMIF_Config
EMIF_Config
Structure Members
Description
This is the EMIF configuration structure used to set up the EMIF peripheral. You create and initialize this structure and then pass its address to the EMIF_config() function. You can use literal values or the EMIF_MK macros to create the structure member values.
EMIF_Config MyConfig = { /* example for 6211/6711 */ 0x00003060, /* gblctl */ 0x00000040, /* cectl0 */ 0x404F0323, /* cectl1 */ 0x00000030, /* cectl2 */ 0x00000030, /* cectl3 */ 0x72270000, /* sdctl */ 0x00000410, /* sdtim */ 0x00000000 /* sdext */ }; EMIF_config(&MyConfig); EMIF Module 9-5
Example
EMIF_config
9.4 Functions
EMIF_config
Function
Example
EMIF_configArgs
Function
9-6
EMIF_configArgs
); /* for all other devices*/ void EMIF_configArgs( Uint32 gblctl, Uint32 cectl0, Uint32 cectl1, Uint32 cectl2, Uint32 cectl3, Uint32 sdctl, Uint32 sdtim ); Arguments gblctl cectl0 cectl1 cectl2 cectl3 sdctl sdtim sdext Return Value Description Example none Sets up the EMIF using the register value arguments. The arguments are written to the EMIF registers. See also EMIF_config().
EMIF_configArgs( 0x00003060, /* 0x00000040, /* 0x404F0323, /* 0x00000030, /* 0x00000030, /* 0x72270000, /* 0x00000410 /* ); /* devices other than 6211/6711 */ gblctl */ cectl0 */ cectl1 */ cectl2 */ cectl3 */ sdctl */ sdtim */
EMIF global control register value CE0 space control register value CE1 space control register value CE2 space control register value CE3 space control register value SDRAM control register value SDRAM timing register value SDRAM extension register value (optional reserved for 6211/6711 only)
EMIF Module
9-7
EMIF_getConfig EMIF_getConfig
Function
EMIF_SUPPORT
Constant Description
Example
9-8
Chapter 10
EMIFA/EMIFB Modules
This chapter describes the EMIFA and EMIFB modules, lists the API functions and macros within the modules, and provides an API reference section.
Topic
Page
10.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-2 10.2 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-3 10.3 Configuration Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-5 10.4 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-7
10-1
Overview
10.1 Overview
The EMIFA and EMIFB modules have simple APIs for configuring the EMIFA and EMIFB registers respectively. The EMIFA and EMIFB may be configured by passing a configuration structure to EMIFA_config() and EMIFB_config() or by passing register values to the EMIFA_configArgs() and EMIFB_configArgs() functions. To assist in creating register values, the EMIFA_<REG>_RMK() and EMIFB_<REG>_RMK() (make) macros construct register values based on field values. In addition, the symbol constants may be used for the field values. Table 101 lists the configuration structure for use with the EMIFA/EMIFB functions. Table 102 lists the functions and constants available in the CSL EMIFA/EMIFB modules.
Type Description F F F C Sets up the EMIFA(B) using the configuration structure Sets up the EMIFA(B) using the register value arguments Reads the current EMIFA(B) configuration values A compile time constant that has a value of 1 if the device supports the EMIFA and/or EMIFB modules
10-2
Macros
10.2 Macros
There are two types of macros: those that access registers and fields, and those that construct register and field values. Table 103 lists the EMIFA and EMIFB macros that access registers and fields, and Table 104 lists the EMIFA and EMIFB macros that construct register and field values. The macros themselves are found in Chapter 28, Using the HAL Macros. EMIFA and EMIFB macros are not handle-based.
EMIFA/EMIFB Modules
10-3
Macros
Table 104. EMIFA/EMIFB Macros that Construct Register and Field Values
Macro EMIFA_<REG>_DEFAULT EMIFB_<REG>_DEFAULT EMIFA_<REG>_RMK() EMIFB_<REG>_RMK() EMIFA_<REG>_OF() EMIFB_<REG>_OF() EMIFA_<REG>_<FIELD>_DEFAULT EMIFB_<REG>_<FIELD>_DEFAULT EMIFA_FMK() EMIFB_FMK() EMIFA_FMKS() EMIFB_FMKS() EMIFA_<REG>_<FIELD>_OF() EMIFB_<REG>_<FIELD>_OF() EMIFA_<REG>_<FIELD>_<SYM> EMIFB_<REG>_<FIELD>_<SYM> Description/Purpose Register default value Register make Register value of ... Field default value Field make Field make symbolically Field value of ... Field symbolic value See page ... 28-21 28-23 28-22 28-24 28-14 28-15 28-24 28-24
10-4
EMIFA_Config EMIFB_Config
EMIFA_Config EMIFB_Config
Structure
Members
Description
These are the EMIFA and EMIFB configuration structures used to set up the EMIFA and EMIFB peripherals, respectively. You create and initialize these structures and then pass their addresses to the EMIFA_config() and EMIFB_config() functions. You can use literal values or the EMIFA_<REG>_RMK and EMIFB_<REG>_RMK macros to create the structure member values.
EMIFA/B Modules
10-5
EMIFA_Config EMIFB_Config
Example
EMIFA_Config MyConfigA = { 0x00003060, /* gblctl */ 0x00000040, /* cectl0 */ 0x404F0323, /* cectl1 */ 0x00000030, /* cectl2 */ 0x00000030, /* cectl3 */ 0x07117000, /* sdctl */ 0x00000610, /* sdtim */ 0x00000000, /* sdext */ 0x00000000, /* cesec0 */ 0x00000000, /* cesec1 */ 0x00000000, /* cesec2 */ 0x00000000 /* cesec3 */ }; EMIFB_Config MyConfigB = { 0x00003060, /* gblctl */ 0x00000040, /* cectl0 */ 0x404F0323, /* cectl1 */ 0x00000030, /* cectl2 */ 0x00000030, /* cectl3 */ 0x07117000, /* sdctl */ 0x00000610, /* sdtim */ 0x00000000, /* sdext */ 0x00000000, /* cesec0 */ 0x00000000, /* cesec1 */ 0x00000000, /* cesec2 */ 0x00000000 /* cesec3 */ }; EMIFA_config(&MyConfigA); EMIFB_config(&MyConfigB);
10-6
EMIFA_config EMIFB_config
10.4 Functions
EMIFA_config EMIFB_config
Function
config none
Sets up the EMIFA and/or EMIFB using the configuration respective structures. The values of the structures are written to the EMIFA and EMIFB registers respectively.
EMIFA/B Modules
10-7
EMIFA_config EMIFB_config
Example
EMIFA_Config MyConfigA = { 0x00003060, /* gblctl */ 0x00000040, /* cectl0 */ 0x404F0323, /* cectl1 */ 0x00000030, /* cectl2 */ 0x00000030, /* cectl3 */ 0x07117000, /* sdctl */ 0x00000610, /* sdtim */ 0x00000000, /* sdext */ 0x00000000, /* cesec0 */ 0x00000000, /* cesec1 */ 0x00000000, /* cesec2 */ 0x00000000. /* cesec3 */ }; EMIFB_Config MyConfigB = { 0x00003060, /* gblctl */ 0x00000040, /* cectl0 */ 0x404F0323, /* cectl1 */ 0x00000030, /* cectl2 */ 0x00000030, /* cectl3 */ 0x07117000, /* sdctl */ 0x00000610, /* sdtim */ 0x00000000, /* sdext */ 0x00000000, /* cesec0 */ 0x00000000, /* cesec1 */ 0x00000000, /* cesec2 */ 0x00000000 /* cesec3 */ }; EMIFA_config(&MyConfigA); EMIFB_config(&MyConfigB);
10-8
EMIFA_configArgs EMIFB_configArgs EMIFA_configArgs EMIFB_configArgs Sets up EMIFA and EMIFB using register value arguments
Function void EMIFA_configArgs( Uint32 gblctl, Uint32 cectl0, Uint32 cectl1, Uint32 cectl2, Uint32 cectl3, Uint32 sdctl, Uint32 sdtim, Uint32 sdext, Uint32 cesec0, Uint32 cesec1, Uint32 cesec2, Uint32 cesec3 ); void EMIFB_configArgs( Uint32 gblctl, Uint32 cectl0, Uint32 cectl1, Uint32 cectl2, Uint32 cectl3, Uint32 sdctl, Uint32 sdtim, Uint32 sdext, Uint32 cesec0, Uint32 cesec1, Uint32 cesec2, Uint32 cesec3 ); Arguments gblctl cectl0 cectl1 cectl2 cectl3 sdctl sdtim sdext cesec0 cesec1 EMIFA(B) global control register value CE0 space control register value CE1 space control register value CE2 space control register value CE3 space control register value SDRAM control register value SDRAM timing register value SDRAM extension register value CE0 space secondary register value CE1 space secondary register value
EMIFA/B Modules 10-9
EMIFA_configArgs EMIFB_configArgs
cesec2 cesec3 Return Value Description none Set up the EMIFA and EMIFB using the register value arguments. The arguments are written to the EMIFA and EMIFB registers respectively. See also EMIFA_config(),EMIFB_config() functions.
EMIFA_configArgs( 0x00003060, /* gblctl 0x00000040, /* cectl0 0x404F0323, /* cectl1 0x00000030, /* cectl2 0x00000030, /* cectl3 0x07117000, /* sdctl 0x00000610, /* sdtim 0x00000000, /* sdext 0x00000000, /* cesec0 0x00000000, /* cesec1 0x00000000, /* cesec2 0x00000000 /* cesec3 ); EMIFB_configArgs( 0x00003060, /* gblctl 0x00000040, /* cectl0 0x404F0323, /* cectl1 0x00000030, /* cectl2 0x00000030, /* cectl3 0x07117000, /* sdctl 0x00000610, /* sdtim 0x00000000, /* sdext 0x00000000, /* cesec0 0x00000000, /* cesec1 0x00000000, /* cesec2 0x00000000 /* cesec3 ); */ */ */ */ */ */ */ */ */ */ */ */
CE2 space secondary register value CE3 space secondary register value
Example
*/ */ */ */ */ */ */ */ */ */ */ */
10-10
config none
EMIFA/B Modules
10-11
Chapter 11
GPIO Module
This chapter describes the GPIO module, lists the GPIO functions and macros within the module, and provides a GPIO API reference section.
Topic
Page
11.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-2 11.2 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-5 11.3 Configuration Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-7 11.4 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-8
11-1
Overview
11.1 Overview
For TMS320C64x devices, the GPIO peripheral provides 16 dedicated general-purpose pins that can be configured as either inputs or outputs. Each GPx pin configured as an input can directly trigger a CPU interrupt or a GPIO event. The properties and functionalities of the GPx pins are covered by a set of CSL APIs. Table 111 lists the configuration structure for use with the GPIO functions. Table 112 lists the functions and constants available in the CSL GPIO module.
11-2
Overview
Type Description F F Clears the bit of a given input pin in Delta High register Indicates if a given input pin has undergone a low-to-high transition. Returns 0 if the transition is not detected. Reads the current GPIO configuration structure Constants dedicated to GPIO interrupt/event signals: GPIO_GPINT0, GPIO_GPINT4, GPIO_GPINT5, GPIO_GPINT6, GPIO_GPINT7 Sets the polarity of the GPINTx interrupt/event signals when configured in Pass Through mode Clears the bits of given input pins in Mask Low register Enables given pins to cause a CPU interrupt or EDMA event based on corresponding GPxDL or inverted GPxVAL by setting the associated mask bit. Clears the bits of input pins in Mask High register Enables given pins to cause a CPU interrupt or EGPIO event based on corresponding GPxDH or GPxVAL by setting the associated mask bit. Disables given pins under the Global Enable register Sets the direction of the given pins. Applies only if the corresponding pins are enabled. Enables the given pins under the Global Enable register Reads the detected values of pins configured as inputs and the values to be driven on given output pins. Writes the values to be driven on given output pins. Constants dedicated to GPIO pins: GPIO_PIN0 GPIO_PIN15. Reads data from a set of pins. A compile time constant whose value is 1 if the device supports the GPIO module. Writes the value to the specified set of GPIO pins.
GPIO_getConfig GPIO_GPINTx
F C
11-13 11-14
F F F
GPIO_maskHighClear GPIO_maskHighSet
F F
11-16 11-16
F F F F F C C C C
GPIO Module
11-3
Overview
11-4
Macros
11.2 Macros
There are two types of GPIO macros: those that access registers and fields, and those that construct register and field values. Table 113 lists the GPIO macros that access registers and fields, and Table 114 lists the GPIO macros that construct register and field values. The macros themselves are found in Chapter 28, Using the HAL Macros. The GPIO module includes handle-based macros.
GPIO Module
11-5
Macros
Table 113. GPIO Macros that Access Registers and Fields (Continued)
Macro GPIO_FSETH(h,<REG>,<FIELD>, fieldval) GPIO_FSETSH(h,<REG>,<FIELD>, <SYM>) Description/Purpose Sets the field value to x for a given handle Sets field for a given address See page ...
Table 114. GPIO Macros that Construct Register and Field Values
Macro GPIO_<REG>_DEFAULT GPIO_<REG>_RMK() GPIO_<REG>_OF() GPIO_<REG>_<FIELD>_DEFAULT GPIO_FMK() GPIO_FMKS() GPIO_<REG>_<FIELD>_OF() GPIO_<REG>_<FIELD>_<SYM> Description/Purpose Register default value Register make Register value of ... Field default value Field make Field make symbolically Field value of ... Field symbolic value See page ... 28-21 28-23 28-22 28-24 28-14 28-15 28-24 28-24
11-6
GPIO_Config
GPIO_Config
Structure Members
Description
This is the GPIO configuration structure used to set up the GPIO registers. You create and initialize this structure, then pass its address to the GPIO_config() function. You can use literal values or the _RMK macros to create the structure register value.
GPIO_Config MyConfig = { 0x00000031, /* gpgc */ 0x000000F9, /* gpen */ 0x00000070, /* gdir */ 0x00000082, /* gpval */ 0x00000000, /* gphm */ 0x00000000, /* gplm */ 0x00000030 /* gppol */ }; ... GPIO_config(hGpio,&MyConfig);
Example
GPIO Module
11-7
GPIO_close
11.4 Functions
11.4.1 Primary GPIO Functions GPIO_close
Function
GPIO_config
Function
Arguments
none Sets up the GPIO mode using the configuration structure. The values of the structure are written to the GPIO Global control register. See also GPIO_configArgs() and GPIO_Config.
GPIO_Config MyConfig = { 0x00000031, /* gpgc */ GPIO_GPEN_RMK(0x000000F9), /* gpen */ 0x00000070, /* gdir */ 0x00000082, /* gpval */ 0x00000000, /* gphm */ 0x00000000, /* gplm */ 0x00000030 /* gppol */ }; GPIO_config(hGpio,&MyConfig);
Example
11-8
GPIO_configArgs GPIO_configArgs
Function
Arguments
Example
GPIO_configArgs(hGpio, 0x00000031, /* gpgc */ 0x000000F9, /* gpen */ 0x00000070, /* gdir */ 0x00000082, /* gpval */ 0x00000000, /* gphm */ 0x00000000, /* gplm */ 0x00000030 /* gppol */ );
GPIO Module
11-9
GPIO_reset GPIO_reset
Function
Example
GPIO_open
Function
Arguments
Device Handle Returns a device handle to be used by other GPIO API function calls Before a GPIO device can be used, it must first be opened by this function. Once opened, it cannot be opened again until closed. See GPIO_close(). The return value is a unique device handle that is used in subsequent GPIO API calls. If the open fails, INV is returned. If the GPIO_OPEN_RESET is specified, the GPIO channel is reset, the channel interrupt is disabled and cleared. If the device cannot be opened, INV is returned.
Example
11-10
GPIO_clear
Function
GPIO_deltaLowClear Clears bits of given input pins in Delta Low Register Function void GPIO_deltaLowClear( GPIO_Handle hGpio, Uint32 pinId ); hGpio pinId Return Value Description Example none This function clears the bits of given pins register in Delta Low Register.
/* Clears one pin */ GPIO_deltaLowClear (hGpio,GPIO_PIN2); /* Clears several pins */ Uint32 PinID= GPIO_PIN2 | GPIO_PIN3; GPIO_deltaLowClear (hGpio,PinID);
Arguments
Handle to GPIO device, see GPIO_open() Pin ID to the associated pin to be cleared
GPIO Module
11-11
GPIO_deltaLowGet GPIO_deltaLowGet Returns high-to-low transition detection status for given input pins
Function Uint32 GPIO_deltaLowGet( GPIO_Handle hGpio, Uint32 pinId ); hGpio pinId Return Value Description status Handle to GPIO device, see GPIO_open() Pin ID to the associated pin to be cleared Returns the transition detection status of pinID.
Arguments
This function indicates if a given input pin has undergone a high-to-low transition. Returns the status of the transition detection for the pins associated with the pinId.
/* Get transition Detection Status for pin2 */ Uint32 detectionHL; detectionHL = GPIO_deltaLowGet (hGpio,GPIO_PIN2); /* Get transition Detection Status for several pins */ Uint32 PinID= GPIO_PIN2 | GPIO_PIN3; Uint32 detectionHL; detectionHL = GPIO_deltaLowGet (hGpio,PinID); /* detectionHL can take the following values : */ /* 0x00000000 : No high-low transition detected */ /* 0x00000004 : transition detected for GP2 */ /* 0x00000008 : transition detected for GP3 */ /* 0x0000000C : transitions detected for GP2 and GP3 */
Example
GPIO_deltaHighClear Clears bits of given input pins in Delta High Register Function void GPIO_deltaHighClear( GPIO_Handle hGpio, Uint32 pinId ); hGpio pinId Return Value Description
11-12
Arguments
Handle to GPIO device, see GPIO_open() Pin ID to the associated pin to be cleared
none This function clears the bits of given pin register in Delta High Register.
GPIO_deltaHighGet Example
/* Clears one pin */ GPIO_deltaHighClear (hGpio,GPIO_PIN2); /* Clears several pins */ Uint32 PinID= GPIO_PIN2 | GPIO_PIN3; GPIO_deltaHighClear (hGpio,PinID);
GPIO_deltaHighGet Function
Arguments
status
This function indicates if a given input pin has undergone a low-to-high transition. Returns the status of the transition detection for the pins associated to the pinId.
/* Get transition Detection Status for pin2 */ Uint32 detectionLH; detectionLH = GPIO_deltaHighGet (hGpio,GPIO_PIN2); /* Get transition Detection Status for several pins */ Uint32 PinID= GPIO_PIN2 | GPIO_PIN3; Uint32 detectionLH; detectionLH = GPIO_deltaHighGet (hGpio,PinID); /* detectionLH can take the following values : */ /* 0x00000000 : no high-low transitions detected*/ /* 0x00000004 : transition detected for GP2 */ /* 0x00000008 : transition detected for GP3 */ /* 0x0000000C : transitions detected for GP2 and GP3 */
Example
GPIO_getConfig
Function
Arguments
GPIO_GPINTx
Return Value Description Example none Get GPIO current configuration value
GPIO_config GPIOCfg; GPIO_getConfig(hGpio,&GPIOCfg);
GPIO_GPINTx
Constant Description
Example
GPIO_intPolarity(GPIO_GPINT7,GPIO_RISING); GPIO_intPolarity(GPIO_GPINT8,GPIO_FALLING);
GPIO_intPolarity
Function
Arguments
Return Value
none
11-14
GPIO_maskLowClear
GPIO_maskLowClear Clears bits which cause a CPU interrupt or EDMA event Function void GPIO_maskLowClear( GPIO_Handle hGpio, Uint32 pinId ); hGpio pinId Return Value Description Example none This function clears the bits of given pins in Mask Low Register. See also GPIO_maskLowSet() function.
/* Clears one pin mask */ GPIO_maskLowClear (hGpio,GPIO_PIN2); /* Clears several pins */ Uint32 PinID= GPIO_PIN2 | GPIO_PIN3; GPIO_maskLowClear (hGpio,PinID);
Arguments
Handle to GPIO device, see GPIO_open() Pin ID to the associated pin to be cleared
Arguments
Handle to GPIO device, see GPIO_open() Pin ID to the associated pin to be set
Example
GPIO_maskHighClear
GPIO_maskHighClear Clears bits which cause a CPU interrupt or EDMA event Function void GPIO_maskHighClear( GPIO_Handle hGpio, Uint32 pinId ); hGpio pinId Return Value Description Example none This function clears the bits of given pins in Mask High Register. See also GPIO_maskHighSet() function.
/* Clears one pin mask */ GPIO_maskHighClear (hGpio,GPIO_PIN2); /* Clears several pins */ Uint32 PinID= GPIO_PIN2 | GPIO_PIN3; GPIO_maskHighClear (hGpio,PinID);
Arguments
Handle to GPIO device, see GPIO_open() Pin ID to the associated pin to be cleared
Arguments
Handle to GPIO device, see GPIO_open() Pin ID to the associated pin to be set
Example
11-16
GPIO_pinDisable GPIO_pinDisable
Function
Arguments
none This function disables the given GPIO pins by setting the associated bits to 0 under the GPEN register. This function is used after having enabled some pins. See also the GPIO_pinEnable() function.
/* Enables Pins */ GPIO_pinEnable(hGpio,GPIO_PIN1 | GPIO_PIN2 | GPIO_PIN3); /* Disable GP1 pin */ GPIO_pinDisable(hGpio,GPIO_PIN1);
Example
Arguments
CurrentSet
This function sets the associated direction bits of given pins as input or output. Applies only if the given are enabled previously.
GPIO Module 11-17
GPIO_pinEnable
Example
Uint32 Current_dir; /* Sets GP1 as input pin */ Current_dir = GPIO_pinDirection(hGpio,GPIO_PIN1,GPIO_INPUT); /* Sets GP2 and GP3 as output pins */ Uint32 PinID= GPIO_PIN2 | GPIO_PIN3; Current_dir = GPIO_ pinDirection(hGpio,PinID,GPIO_OUTPUT);
GPIO_pinEnable
Function
Arguments
none This function enables the given GPIO pins by setting the associated bits to 1 under the GPEN register. This function is used after using the given pins as GPIO pins. See also the GPIO_pinDisable() function.
/* Enables Pins */ GPIO_pinEnable(hGpio,GPIO_PIN1 | GPIO_PIN2 | GPIO_PIN3);
Example
GPIO_pinRead
Function
Arguments
val
If the specified pin has been previously configured as an input, this function returns the value 0 or 1. If the specified pin has been configured as an output pin, this function returns the value to be driven on the pin.
11-18
GPIO_pinWrite
Example
Uint32 val; /* returns value of pin #2 */ val = GPIO_pinRead (hGpio,GPIO_PIN2);
GPIO_pinWrite
Function
Arguments
none This function sets the value 0 or 1 to be driven on given output pins.
Uint32 val; /* Sets value of one pin to 1*/ GPIO_pinWrite(hGpio,GPIO_PIN2,1); /* Sets values of several pins to 0*/ Uint32 PinID= GPIO_PIN2 | GPIO_PIN3; GPIO_ pinWrite(hGpio,PinID,0);
GPIO_PINx
Constant Description
Example
/* Enables pins */ GPIO_pinEnable (hGpio,GPIO_PIN2 | GPIO_PIN3); /* Sets Pin3 as an output pin */ Current_dir = GPIO_pinDirection(hGpio,GPIO_PIN3, 1) /* Sets one pin mask */ GPIO_maskHighSet (hGpio,GPIO_PIN2); GPIO Module 11-19
GPIO_read GPIO_read
Function
Arguments
Uint32
This function reads data from a set of pins passed on as a pinmask to the function. See also GPIO_write(), GPIO_pinWrite() and GPIO_pinRead().
pinVal = GPIO_read(hGpio,GPIO_PIN8|GPIO_PIN7|GPIO_PIN6);
GPIO_SUPPORT
Constant Description
Compile-time constant
GPIO_SUPPORT Compile-time constant that has a value of 1 if the device supports the GPIO module and 0 otherwise. You are not required to use this constant. Note: The GPIO module is not supported on devices without the GPIO peripheral.
#if (GPIO_SUPPORT) /* user GPIO configuration / #endif
Example
GPIO_write
Function
Arguments
none This function writes the value to a set of GPIO pins. See also GPIO_read().
GPIO_ write(hGpio,GPIO_PIN2|GPIO_PIN3,0x4);
Chapter 12
HPI Module
This chapter describes the HPI module, lists the API functions and macros within the module, and provides an HPI API reference section.
Topic
Page
12-1
Overview
12.1 Overview
The HPI module has a simple API for configuring the HPI registers. Functions are provided for reading HPI status bits and setting interrupt events. For C64x devices, write and Read memory addresses can be accessed. Table 121 shows the API functions within the HPI module.
Type Description F F F F F F F F F F F F C Reads the DSPINT bit from the HPIC register Obtain the IRQ event associated with the HPI device Reads the FETCH flag from the HPIC register and returns its value. Returns the value of the HINT bit of the HPIC register Returns the value of the HRDY bit of the HPIC register Returns the value of the HWOB bit of the HPIC register Returns the Read memory address (HPIAR C64x only) Returns the Write memory address (HPIAW C64x only) Writes the value to the DSPINT field of the HPIC register Writes the value to the HINT field of the HPIC register Sets the Read memory address (HPIAR C64x only) Sets the Write memory address (HPIAW C64x only) A compile-time constant whose value is 1 if the device supports the HPI module
See page ... 12-5 12-5 12-5 12-6 12-6 12-6 12-6 12-7 12-7 12-7 12-8 12-8 12-8
12-2
Macros
12.2 Macros
There are two types of HPI macros: those that access registers and fields, and those that construct register and field values. Table 122 lists the HPI macros that access registers and fields, and Table 123 lists the HPI macros that construct register and field values. The macros themselves are found in Chapter 28, Using the HAL Macros. HPI macros are not handle-based.
HPI Module
12-3
Macros
Table 123. HPI Macros that Construct Register and Field Values
Macro HPI_<REG>_DEFAULT HPI_<REG>_RMK() HPI_<REG>_OF() HPI_<REG>_<FIELD>_DEFAULT HPI_FMK() HPI_FMKS() HPI_<REG>_<FIELD>_OF() HPI_<REG>_<FIELD>_<SYM> Description/Purpose Register default value Register make Register value of ... Field default value Field make Field make symbolically Field value of ... Field symbolic value See page ... 28-21 28-23 28-22 28-24 28-14 28-15 28-24 28-24
12-4
HPI_getDspint
12.3 Functions
HPI_getDspint
Function Arguments Return Value Description Example
This function reads the DSPINT bit from the HPIC register.
if (HPI_getDspint()) { }
HPI_getEventId
Function Arguments Return Value Description Example
Use this function to obtain the IRQ event associated with the HPI device. Currently this is IRQ_EVT_DSPINT.
HpiEventId = HPI_getEventId();
HPI_getFetch
Function Arguments Return Value Description Example
Reads FETCH flag from HPIC register and returns its value
Uint32 HPI_getFetch(); none FETCH Returns the value 0 (always read at 0)
This function reads the FETCH flag from the HPIC register and returns its value.
flag = HPI_getFetch();
HPI Module
12-5
HPI_getHint HPI_getHint
Function Arguments Return Value Description Example
This function returns the value of the HINT bit of the HPIC register.
hint = HPI_getHint();
HPI_getHrdy
Function Arguments Return Value Description Example
This function returns the value of the HRDY bit of the HPIC register.
hrdy = HPI_getHrdy();
HPI_getHwob
Function Arguments Return Value Description Example
This function returns the value of the HWOB bit of the HPIC register.
hwob = HPI_getHwob();
HPI_getReadAddr Returns the Read memory address (HPIAR C64x devices only)
Function Arguments Return Value Description Example Uint32 HPI_getReadAddr(); none HPIAR Read Memory Address
This function returns the read memory address set under the HPIAR register (supported by C64x devices only)
Uint32 addR; addR = HPI_getReadAddr();
12-6
HPI_getWriteAddr HPI_getWriteAddr Returns the Write memory address (HPIAW C64x devices only)
Function Arguments Return Value Description Example Uint32 HPI_getWriteAddr(); none HPIAW Write Memory Address
This function returns the write memory address set under the HPIAW register (supported by C64x devices only)
Uint32 addW; addW = HPI_getWriteAddr();
HPI_setDspint
Function
HPI_setHint
Function
HPI_setReadAddr HPI_setReadAddr
Function
HPI_setWriteAddr Sets the Write memory address (HPIAW C64x devices only)
Function void HPI_setWriteAddr( Uint32 address; ); address none This function sets the write memory address in the HPIAW register (supported by C64x devices only)
Uint32 addW = 0x80000000; HPI_setWriteAddr(addW);
HPI_SUPPORT
Constant Description Example
Compile-time constant
HPI_SUPPORT Compile time constant that has a value of 1 if the device supports the HPI module and 0 otherwise. You are not required to use this constant.
#if (HPI_SUPPORT) /* user HPI configuration / #endif
12-8
Chapter 13
I2C Module
This chapter describes the I2C module, lists the API functions and macros within the module, and provides an I2C API reference section.
Topic
Page
13.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-2 13.2 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-5 13.3 Configuration Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-7 13.4 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-8
13-1
Overview
13.1 Overview
The inter-integrated circuit (I2C) module provides an interface between a TMS320c6000 DSP and other devices compliant with Phillips Semiconductors InterIC bus (I2Cbus) Specification version 2.1 and connected by way of an I2Cbus. Refer to TMS320c6000 DSP InterIntegrated Circuit (I2C) Module Reference Guide (SPRU175) for more details. Table 131 lists the configuration structure for use with the I2C functions. Table 132 lists the functions and constants available in the CSL I2C module.
(b) Secondary I2C Functions and Constants Syntax I2C_bb I2C_getConfig I2C_getEventId I2C_getRcvAddr Type Description F F F F Returns the busbusy status Reads the current I2C configuration values Obtains the event ID for the specified I2C devices Returns the data receive register address See page ... 13-13 13-14 13-14 13-15
13-2
Overview
Overview
The I2C device can be configured by passing an I2C_Config structure to I2C_config() or by passing register values to the I2C_configArgs() function. To assist in creating register values, the _RMK(make) macros construct register values based on field values. In addition, the symbol constants may be used for the field values. Once the I2C is used and is no longer needed, it should be closed by passing the corresponding handle to I2C_close().
13-4
Macros
13.2 Macros
There are two types of I2C macros: those that access registers and fields, and those that construct register and field values. Table 133 lists the I2C macros that access registers and fields, and Table 134 lists the I2C macros that construct register and field values. The macros themselves are found in Chapter 28, Using the HAL Macros. I2C macros are handle-based.
I2C Module
13-5
Macros
Table 134. I2C Macros that Construct Register and Field Values
Macro I2C_<REG>_DEFAULT I2C_<REG>_RMK() I2C_<REG>_OF() I2C_<REG>_<FIELD>_DEFAULT I2C_FMK() I2C_FMKS() I2C_<REG>_<FIELD>_OF() I2C_<REG>_<FIELD>_<SYM> Description/Purpose Register default value Register make Register value of ... Field default value Field make Field make symbolically Field value of ... Field symbolic value See page... 28-21 28-23 28-22 28-24 28-14 28-15 28-24 28-24
13-6
I2C_Config
I2C_Config
Structure Members
i2coar i2cimr i2cclkl i2cclkh i2ccnt i2csar i2cmdr i2cpsc i2cemdr i2cpfunc i2cpdir
Own address register Interrupt mask register Clock control low register Clock control high register Data count register Slave address register Mode register Prescalar register Extended mode register Pin function register Pin direction register
Description
This is the configuration structure used to dynamically configure the I2C device. The user should create and initialize this structure before passing its address to the I2C_config() function.
I2C Module
13-7
I2C_close
13.4 Functions
13.4.1 Primary Functions I2C_close
Function
Example
I2C_config
Function
Arguments
none This function configures the I2C device using the configuration structure which contains members corresponding to each of the I2C registers. These values are directly written to the corresponding I2C device registers.
I2C_Handle hI2c I2C_Config myConfig ... I2C_config(hI2c,&myConfig);
Example
13-8
Arguments
Device handle; see I2C_open() Own address register Interrupt mask register Clock control low register Clock control high register Data count register Slave address register Mode register Prescalar register Extended mode register Pin function register Pin direction register
Example
I2C_open
For other devices Function void I2C_configArgs( I2C_Handle hI2c Uint32 i2coar, Uint32 i2cimr, Uint32 i2cclkl, Uint32 i2cclkh, Uint32 i2ccnt, Uint32 i2csar, Uint32 i2cmdr, Uint32 i2cpsc ); hI2c i2coar i2cimr i2cclkl i2cclkh i2ccnt i2csar i2cmdr i2cpsc none This function configures the I2C module using the register values passed in as arguments.
I2C_Handle hI2c; ... IRQ_configArgs(hI2c,0x10,0x00,0x08,0x10,0x05,0x10,0x6E0,0x19);
Arguments
Device handle; see I2C_open() Own address register Interrupt mask register Clock control low register Clock control high register Data count register Slave address register Mode register Prescalar register
I2C_open
Function
Arguments
13-10
I2C_reset
Return Value I2C_Handle Device handle INV: open failed Description Before the I2C device can be used, it must be opened using this function. Once opened, it cannot be opened again until it is closed. (See I2C_close().) The return value is a unique device handle that is used in subsequent I2C API calls. If the open fails, INV is returned.
I2C_Handle hI2c; ... hI2c = I2C_open(OPEN_RESET);
Example
I2C_reset
Function
I2C Module
13-11
I2C_resetAll I2C_resetAll
Function
I2C_sendStop
Function
13-12
I2C_start I2C_start
Function
Example
I2C_bb
Function
Description Example
I2C_getConfig I2C_getConfig
Function
Arguments
I2C_getEventId
Function
This function returns the event ID of the interrupt associated with the I2C device.
I2C_Handle hI2c; Uint16 evt; ... evt = I2C_getEventId(hI2c); IRQ_enable(evt);
13-14
I2C_getRcvAddr I2C_getRcvAddr
Function
I2C_getXmtAddr
Function
I2C Module
13-15
I2C_intClear I2C_intClear
Function
This function clears the interrupt flag. If there is more than one interrupt flag, it clears the highest priority flag and returns the content of the interrupt vector register (I2CIVR).
I2C_Handle hI2c; Uint32 val; ... val = I2C_intClear(hI2c);
Example
I2C_intClearAll
Function
13-16
I2C_intEvtDisable I2C_intEvtDisable
Function
Arguments
none This function disables the I2C interrupt specified by the maskFlag. maskFlag can be an ORed combination of one or more of the following: I2C_EVT_AL Arbitration Lost Interrupt Enable I2C_EVT_NACK No Acknowledgement Interrupt Enable I2C_EVT_ARDY Register Access Ready Interrupt I2C_EVT_RRDY Data Receive Ready Interrupt I2C_EVT_XRDY Data Transmit Ready Interrupt
Example
I2C Module
13-17
I2C_intEvtEnable I2C_intEvtEnable
Function
Arguments
none This function enables the I2C interrupt specified by the maskFlag. maskFlag can be an ORed combination of one or more of the following: I2C_EVT_AL Arbitration Lost Interrupt Enable I2C_EVT_NACK No Acknowledgement Interrupt Enable I2C_EVT_ARDY Register Access Ready Interrupt I2C_EVT_RRDY Data Receive Ready Interrupt I2C_EVT_XRDY Data Transmit Ready Interrupt
Example
13-18
I2C_outOfReset I2C_outOfReset
Function
I2C_SUPPORT
Constant Description
Example
I2C_readByte
Function
This function performs a direct 8bit read from the data receive register (I2CDRR). This function does not check the receive ready status. To check the receive ready status, use I2C_rrdy().
I2C_Handle hI2c; Uint8 data; ... data = I2C_readByte(hI2c); I2C Module 13-19
Example
I2C_rfull I2C_rfull
Function
Description Example
This function returns the overrun status of the receive shift register. This field is cleared by reading the data receive register or resetting the I2C.
I2C_Handle hI2c; ... if(I2C_rfull(hI2c)){ ... }
I2C_rrdy
Function
Description Example
This function returns the receive data ready interrupt flag value. The bit is cleared to 0 when I2CDRR is read.
I2C_Handle hI2c; ... if(I2C_rrdy(hI2c)){ ... }
13-20
I2C_writeByte I2C_writeByte
Function
Arguments
none This function writes an 8bit value to the I2C data transmit register. This function does not check the transfer ready status. To check the transfer ready status, use I2C_xrdy().
I2C_Handle hI2c; ... I2C_writeByte(hI2c, 0x34);
Example
I2C_xempty
Function
Description Example
This function returns the transmitter underflow status. The value is 0 when underflow occurs.
I2C_Handle hI2c; ... if(I2C_xempty(hI2c)){ ... }
I2C Module
13-21
I2C_xrdy I2C_xrdy
Function
Description Example
This function returns the transmit data ready interrupt flag value.
I2C_Handle hI2c; ... if(I2C_xrdy(hI2c)){ ... }
Some DSPs may require pullups on the SDA and SCL pins in order to use GPIO mode. Please refer to the device specific data manual to determine if this is the case for the DSP being used.
13-22
I2C_getPins I2C_getPins
Function
Example
I2C_setPins
Function
Sets value of SDA and SCL pins when they are configured as output
void I2C_setPins( I2C_Handle hI2C, Uint32 pins ); None This bit sets the value of the I2CPDOUT by setting the SDAOUT and SCLOUT bits of the I2CPDSET register. A write of 0 has no effect. When 1 is written to either of these bits, the corresponding bit in I2COUT is set to 1. This drives the SDA and SCL pins HIGH. I2C_Handle hI2C; ... I2C_setPins(hI2C,0x3);
Example
I2C Module
13-23
I2C_clearPins I2C_clearPins
Function
Clears the value of SDA and SCL pins where they are configured as output
void I2C_clearPins( I2C_Handle hI2C, Uint32 pins ); None This bit sets the value of the I2CPDOUT by setting the SDAOUT and SCLOUT bits of the I2CPDCLR register. A write of 0 has no effect. When 1 is written to either of these bits, the corresponding bit in I2COUT is cleared to 0. This drives the SDA and SCL pins LOW. I2C_Handle hI2C; ... I2C_clearPins(hI2C,0x3);
Example
I2C_getExtMode
Function
The XRDYM bit of the I2CEMDR register determines which condition generates a transmit-data-receive interrupt. This has an effect only when the I2C is operating as a slave-transmitter. A value of 0 indicates that the transmit-data-ready interrupt is generated when the master requests more data by sending an acknowledge signal after the transmission of the last data. I2C_Handle hI2C; Uint32 emdrStat; ... emdrStat = I2C_getExtMode(hI2C);
Example
13-24
I2C_setMstAck I2C_setMstAck
Function
I2C_setDxrCpy
Function
I2C Module
13-25
Chapter 14
IRQ Module
This chapter describes the IRQ module, lists the API functions and macros within the module, and provides an IRQ API reference section.
Topic
Page
14.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-2 14.2 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-4 14.3 Configuration Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-6 14.4 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-9
14-1
Overview
14.1 Overview
The IRQ module is used to manage CPU interrupts. Table 141 lists the configuration structure for use with the IRQ functions. Table 142 lists the functions and constants available in the CSL IRQ module.
14-2
Overview
Note:
F = Function; C = Constant;
IRQ Module
14-3
Macros
14.2 Macros
There are two types of IRQ macros: those that access registers and fields, and those that construct register and field values. Table 143 lists the IRQ macros that access registers and fields, and Table 144 lists the IRQ macros that construct register and field values. The macros themselves are found in Chapter 28, Using the HAL Macros. IRQ macros are not handle-based.
14-4
Macros
Table 144. IRQ Macros that Construct Register and Field Values
Macro IRQ_<REG>_DEFAULT IRQ_<REG>_RMK() IRQ_<REG>_OF() IRQ_<REG>_<FIELD>_DEFAULT IRQ_FMK() IRQ_FMKS() IRQ_<REG>_<FIELD>_OF() IRQ_<REG>_<FIELD>_<SYM> Description/Purpose Register default value Register make Register value of ... Field default value Field make Field make symbolically Field value of ... Field symbolic value See page... 28-21 28-23 28-22 28-24 28-14 28-15 28-24 28-24
IRQ Module
14-5
IRQ_Config
Members
funcArg user defined argument eventId the ID of the event that caused the interrupt funcArg This is an arbitrary user-defined argument that gets passed to the interrupt service routine. This is useful when the application code wants to pass information to an ISR without using global variables. This argument is also accessible using IRQ_getArg() and IRQ_setArg(). Cache control mask: determines how the DSP/BIOS dispatcher handles the cache settings when calling an interrupt service routine (ISR). When an interrupt occurs and that event is being handled by the dispatcher, the dispatcher modifies the cache settings based on this argument before calling the ISR. Then when the ISR exits and control is returned back to the dispatcher, the cache settings are restored back to their original state. The following list shows valid values for ccMask: (a) IRQ_CCMASK_NONE (b) IRQ_CCMASK_DEFAULT
14-6
ccMask
IRQ_Config
(c) (d) (e) (f) (g) (h) (i) (j) IRQ_CCMASK_PCC_MAPPED IRQ_CCMASK_PCC_ENABLE IRQ_CCMASK_PCC_FREEZE IRQ_CCMASK_PCC_BYPASS IRQ_CCMASK_DCC_MAPPED IRQ_CCMASK_DCC_ENABLE IRQ_CCMASK_DCC_FREEZE IRQ_CCMASK_DCC_BYPASS
Only certain combinations of the above values are valid: (a) and (b) are mutually exclusive with all others. This means that if (a) is used, it is used by itself, likewise for (b). IRQ_CCMASK_NONE means do not touch the cache at all. IRQ_CCMASK_DEFAULT has the same meaning. If neither (a) nor (b) is used, then one value from (c) through (f) bitwise ORed with a value from (g) through (j) may be used. In other words, choose one value for the PCC control and one value for the DCC control. It is possible to use a PCC value without a DCC value and vise-versa. ieMask Interrupt enable mask: determines how interrupts are masked during the processing of the event. The DSP/BIOS interrupt dispatcher allows nested interrupts such that interrupts of higher priority may preempt those of lower priority (priority here is determined by hardware). The ieMask argument determines which interrupts to mask out during processing. Each bit in ieMask corresponds to bits in the interrupt enable register (IER). A 1 bit in ieMask means disable the corresponding interrupt. When processing the interrupt service routine is complete, the dispatcher restores IER back to its original state. The user may specify a numeric value for the mask or use one of the following predefined symbols: - IRQ_IEMASK_ALL - IRQ_IEMASK_SELF - IRQ_IEMASK_DEFAULT Use IRQ_IEMASK_ALL to mask out all interrupts including self,
IRQ Module 14-7
IRQ_Config
use IRQ_IEMASK_SELF to mask self (prevent an ISR from preempting itself), or use the default which is the same as IRQ_IEMASK_SELF. Description This is the configuration structure used to dynamically configure the DSP/BIOS interrupt dispatcher. The interrupt dispatcher may be statically configured using the configuration tool and also dynamically configured using the CSL functions IRQ_config(), IRQ_configArgs(), and IRQ_getConfig(). These functions allow the user to dynamically hook new interrupt service routines at runtime. The DSP/BIOS dispatcher uses a lookup table to gather information for each interrupt. Each entry of this built-in table contains the same members as this configuration structure. Calling IRQ_config() simply copies the configuration structure members into the appropriate locations in the dispatch table. Example 1
IRQ_Config myConfig = { myIsr, 0x00000000, IRQ_CCMASK_DEFAULT, IRQ_IEMASK_DEFAULT }; ... IRQ_config(eventId,&myConfig); ... void myIsr(Uint32 funcArg, Uint32 eventId) { ... } IRQ_Config myConfig = { myIsr, 0x00000000, IRQ_CCMASK_PCC_ENABLE | IRQ_CCMASK_DCC_MAPPED, IRQ_IEMASK_ALL }; ... IRQ_config(eventId,&myConfig); ... void myIsr(Uint32 funcArg, Uint32 eventId) { ... }
Example 2
14-8
IRQ_clear
14.4 Functions
14.4.1 Primary IRQ Functions
IRQ_clear
Function
IRQ_config
Function
Arguments
none This function dynamically configures an entry in the interrupt dispatcher table with the information contained in the configuration structure. To use this function, a DSP/BIOS configuration .cdb must be defined. Two constraints must be met before this function has any effect: 1) The event must be mapped to an interrupt 2) The interrupt this event is mapped to must be using the dispatcher
IRQ Module 14-9
IRQ_configArgs
If either of the above two conditions are not met, this function will have no effect. Example
IRQ_Config myConfig = { myIsr, 0x00000000, IRQ_CCMASK_DEFAULT, IRQ_IEMASK_DEFAULT }; ... IRQ_config(eventId,&myConfig);
IRQ_configArgs
Function
Arguments
funcArg
ccMask
This function dynamically configures an entry in the interrupt dispatcher table. It does the same thing as IRQ_config() except this function takes the information as arguments rather than passed in a configuration structure. This function dynamically configures an entry in the interrupt dispatcher table with the information passed in the arguments.
14-10
IRQ_disable
To use this function, a DSP/BIOS configuration .cdb must be defined. Two constraints must be met before this function has any effect: 1) The event must be mapped to an interrupt 2) The interrupt this event is mapped to must be using the dispatcher If either of the above two conditions are not met, this function will have no effect. Example
IRQ_configArgs( eventId, myIsr, 0x00000000, IRQ_CCMASK_DEFAULT, IRQ_IEMASK_DEFAULT );
IRQ_disable
Function
Disables the interrupt associated with the specified event by modifying the interrupt enable register (IER). If the event is not mapped to an interrupt, then no action is taken.
IRQ_disable(IRQ_EVT_TINT0);
Example
IRQ_enable
Function
IRQ_globalDisable
Description Example Enables the event by modifying the interrupt enable register (IER). If the event is not mapped to an interrupt, then no action is taken.
IRQ_enable(IRQ_EVT_TINT0);
This function globally disables interrupts by clearing the GIE bit of the CSR register. The old value of GIE is returned. This is useful for temporarily disabling global interrupts, then restoring them back.
Uint32 gie; gie = IRQ_globalDisable(); ... IRQ_globalRestore(gie);
Example
Example
IRQ_globalRestore Function
Arguments
14-12
IRQ_reset
Return Value Description none This function restores the global interrupt enable state to the value passed in by writing to the GIE bit of the CSR register. This is useful for temporarily disabling global interrupts, then restoring them back.
Uint32 gie; gie = IRQ_globalDisable(); ... IRQ_globalRestore(gie);
Example
IRQ_reset
Function
IRQ_restore
Function
Arguments
none This function restores the enable state of the event to the value passed in. This is useful for temporarily disabling an event, then restoring it back.
Uint32 ie; ie = IRQ_disable(eventId); ... IRQ_restore(ie); IRQ Module 14-13
IRQ_setVecs IRQ_setVecs
Function
Use this function to set the base address of the interrupt vector table. CAUTION: Changing the interrupt vector table base can have adverse effects on your system because you will be effectively eliminating all interrupt settings that were there previously. The DSP/BIOS kernel and RTDX will more than likely fail if care is not taken when using this function.
Example
IRQ_setVecs((void*)0x800000000);
IRQ_test
Function
Use this function to test an event to see if its flag is set in the interrupt flag register (IFR). If the event is not mapped to an interrupt, then no action is taken and this function returns 0.
while (!IRQ_test(IRQ_EVT_TINT0));
Example
14-14
IRQ_EVT_NNNN
Constant
IRQ_EVT_NNNN
IRQ_EVT_GPINT4 IRQ_EVT_EXTINT5 IRQ_EVT_GPINT5 IRQ_EVT_EXTINT6 IRQ_EVT_GPINT6 IRQ_EVT_EXTINT7 IRQ_EVT_GPINT7 IRQ_EVT_EDMAINT IRQ_EVT_EMUDTDMA IRQ_EVT_EMURTDXRX IRQ_EVT_EMURTDXTX IRQ_EVT_XINT0 IRQ_EVT_RINT0 IRQ_EVT_XINT1 IRQ_EVT_RINT1 IRQ_EVT_GPINT0 IRQ_EVT_TINT2 IRQ_EVT_I2CINT0 IRQ_EVT_MACINT IRQ_EVT_VINT0 IRQ_EVT_VINT1 IRQ_EVT_VINT2# # Only for DM642 IRQ_EVT_AXINT0 IRQ_EVT_ARINT0
(For other devices) IRQ_EVT_DSPINT IRQ_EVT_TINT0 IRQ_EVT_TINT1 IRQ_EVT_TINT2 C64x only IRQ_EVT_SDINT IRQ_EVT_SDINTA C64x only IRQ_EVT_SDINTB C64x only IRQ_EVT_GPINT0 C64x only IRQ_EVT_GPINT4 C64x only IRQ_EVT_GPINT5 C64x only IRQ_EVT_GPINT6 C64x only IRQ_EVT_GPINT7 C64x only IRQ_EVT_EXTINT4 IRQ_EVT_EXTINT5 IRQ_EVT_EXTINT6 IRQ_EVT_EXTINT7
14-16
IRQ_getArg
IRQ_EVT_DMAINT0 IRQ_EVT_DMAINT1 IRQ_EVT_DMAINT2 IRQ_EVT_DMAINT3 IRQ_EVT_EDMAINT IRQ_EVT_XINT0 IRQ_EVT_RINT0 IRQ_EVT_XINT1 IRQ_EVT_RINT1 IRQ_EVT_XINT2 IRQ_EVT_RINT2 IRQ_EVT_PCIWAKE IRQ_EVT_UINTC64x only
Description
These are the IRQ events. Refer to the TMS320C6000 Peripherals Reference Guide (SPRU190) for more details regarding these events.
IRQ_getArg
Function
Description
This function reads the user defined argument from the interrupt dispatcher table and returns it to the user. Two constraints must be met before this function has any effect: 1) The event must be mapped to an interrupt 2) The interrupt this event is mapped to must be using the dispatcher If either of the above two conditions are not met, this function will have no effect.
Example
IRQ_getConfig IRQ_getConfig
Function
Arguments
none This function reads information from the interrupt dispatcher table and stores it in the configuration structure. Two constraints must be met before this function has any effect: 1) The event must be mapped to an interrupt. 2) The interrupt this event is mapped to must be using the dispatcher. If either of the above two conditions are not met, this function will have no effect.
Example
14-18
IRQ_map IRQ_map
Function
Arguments
intNumber Interrupt number, 4 to 15 Return Value Description none This function maps an event to a physical interrupt number by configuring the interrupt selector MUX registers. For most cases, the default map is sufficient and does not need to be changed.
IRQ_map(IRQ_EVT_TINT0,12);
Example
IRQ_nmiDisable
Function Arguments Return Value Description Example
IRQ_nmiEnable
Function Arguments Return Value Description
Example
IRQ_resetAll IRQ_resetAll
Function Arguments Return Value Description
Example
IRQ_set
Function
Example
14-20
IRQ_setArg IRQ_setArg
Function
Arguments
none This function sets the user-defined argument in the interrupt dispatcher table. Two constraints must be met before this function has any effect: 1) The event must be mapped to an interrupt 2) The interrupt this event is mapped to must be using the dispatcher If either of the above two conditions are not met, this function will have no effect.
Example
IRQ_setArg(eventId,0x12345678);
IRQ_SUPPORT
Constant Description
Example
IRQ Module
14-21
IRQ_SUPPORT
14-22
Chapter 15
McASP Module
This chapter describes the McASP module, lists the API functions and macros within the module, discusses using a McASP device, and provides a McASP API reference section.
Topic
Page
15.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-2 15.2 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-5 15.3 Configuration Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-7 15.4 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-10
15-1
Overview
15.1 Overview
The McASP module contains a set of API functions for configuring the McASP registers. Table 151 lists the configuration structure for use with the McASP functions. Table 152 lists the functions and constants available in the CSL McASP module.
15-2
Overview
(c)Auxiliary Functions Syntax MCASP_clearPins MCASP_configDit MCASP_configGbl MCASP_configRcv MCASP_configSrctl MCASP_configXmt MCASP_enableClk MCASP_enableFsync MCASP_enableHclk MCASP_enableSers MCASP_enableSm MCASP_getConfig MCASP_getGblctl
Note:
Type Description F F F F F F F F F F F F F Clears pins which are enabled as GPIO and output Configures XMASK, XTDM, and AFSXCTL registers for DIT transmission Configures McASP device global registers Configures McASP device receive registers Configures McASP device serial control registers Configures McASP device transmit registers Wakes up transmit and/or receive clock, depending on direction Enables frame sync if receiver has internal frame sync Wakes up transmit and or receive high clock, depending on direction Enables transmit or receive serializers, depending on direction Wakes up transmit and or receive state machine, depending on direction Reads the current McASP configuration values Reads the GBLCTL register, depending on direction
See page ... 15-17 15-18 15-18 15-19 15-19 15-20 15-20 15-21 15-22 15-23 15-24 15-25 15-25
McASP Module
15-3
Overview
Type Description F F F F F F F F F Reads the data from rbufNum Resets the receiver fields in the Global Control register Resets the transmitter fields in the Global Control register Sets pins which are enabled as GPIO and output Sets up McASP transmit and receive clock registers Sets up McASP transmit and receive format registers Sets up McASP transmit and receive frame sync registers Sets up McASP transmit and receive high clock registers Writes the val into rbufNum
See page ... 15-26 15-26 15-27 15-27 15-28 15-28 15-29 15-29 15-30
Type Description F F Retrieves the receive event ID for the given device Retrieves the transmit event ID for the given device
15-4
Macros
15.2 Macros
There are two types of McASP macros: those that access registers and fields, and those that construct register and field values. Table 153 lists the McASP macros that access registers and fields, and Table 154 lists the McASP macros that construct register and field values. The macros themselves are found in Chapter 28, Using the HAL Macros. The McASP module includes handle-based macros.
McASP Module
15-5
Macros
Table 154. McASP Macros that Construct Register and Field Values
Macro MCASP_<REG>_DEFAULT MCASP_<REG>_RMK() MCASP_<REG>_OF() MCASP_<REG>_<FIELD>_DEFAULT MCASP_FMK() MCASP_FMKS() MCASP_<REG>_<FIELD>_OF() MCASP_<REG>_<FIELD>_<SYM> Description/Purpose Register default value Register make Register value of ... Field default value Field make Field make symbolically Field value of ... Field symbolic value See page ... 28-21 28-23 28-22 28-24 28-14 28-15 28-24 28-24
15-6
MCASP_Config
MCASP_Config
Structure Members
Description
This is the McASP configuration structure used to set up a McASP device. The user can create and initialize this structure and then pass its address to the MCASP_config() function.
Uint32 Description
amute
This is the McASP configuration structure used to configure McASP device global registers. The user can create and initialize this structure and then pass its address to the MCASP_configGbl() function.
McASP Module
15-7
Description
This is the McASP configuration structure used to configure McASP device receive registers. The user can create and initialize this structure and then pass its address to the MCASP_configRcv() function.
MCASP_ConfigSrctl Structure used to configure McASP serial control registers Structure Members MCASP_ConfigSrctl Uint32 srctl0 Configures the serial control for pin 0 Uint32 srctl1 Configures the serial control for pin 1 Uint32 srctl2 Configures the serial control for pin 2 Uint32 srctl3 Configures the serial control for pin 3 Uint32 srctl4@ Configures the serial control for pin 4 Uint32 srctl5@ Configures the serial control for pin 5 Uint32 srctl6# Configures the serial control for pin 6 Uint32 srctl7# Configures the serial control for pin 7 Uint32 srctl8! Configures the serial control for pin 8 Uint32 srctl9! Configures the serial control for pin 9 Uint32 srctl10! Configures the serial control for pin 10 Uint32 srctl11! Configures the serial control for pin 11 Uint32 srctl12! Configures the serial control for pin 12 Uint32 srctl13! Configures the serial control for pin 13 Uint32 srctl14! Configures the serial control for pin 14 Uint32 srctl15! Configures the serial control for pin 15 @ Only for DM642, C6410, C6413, C6418, C6713 and DA610 # Only for DM642, C6713 and DA610 ! Only for DA610
15-8
MCASP_ConfigXmt
Description This is the McASP configuration structure used to configure McASP device serial control registers. The user can create and initialize this structure and then pass its address to the MCASP_configSrctl() function.
Description
This is the McASP configuration structure used to configure McASP device transmit registers. The user can create and initialize this structure and then pass its address to the MCASP_configXmt() function.
McASP Module
15-9
MCASP_close
15.4 Functions
15.4.1 Primary Functions
MCASP_close
Function
Example
MCASP_config
Function
Arguments
none This function configures the McASP device using the configuration structure. The values of the structure members are written to the McASP registers. This structure is passed on to the MCASP_config() functions. See also MCASP_getConfig(), MCASP_configGbl(), MCASP_configRcv(), MCASP_configXmt(), and MCASP_configSrctl().
MCASP_Config MyConfig = { MCASP_config(hMcasp,&MyConfig);
Example
15-10
MCASP_open MCASP_open
Function
Arguments
Device Handle Returns a device handle Before a McASP device can be used, it must first be opened by this function. Once opened, it cannot be opened again until it is closed. See MCASP_close().The return value is a unique device handle that is used in subsequent McASP API calls. If the open fails, INV is returned. If the MCASP_OPEN_RESET is specified, the McASP device registers are set to their power-on defaults.
Example
McASP Module
15-11
MCASP_read32 MCASP_read32
Function
Reads data when the receiver is configured to receive from data bus
Uint32 MCASP_read32( MCASP_Handle hMcasp ); hMcasp Uint32 Handle to McASP port. See MCASP_open() Returns the data received by McASP
This function reads data when the receiver is configured to receive from the peripheral data bus.
MCASP_Handle hMcasp; ... val = MCASP_read32(hMcasp);// Read data from the Address space for the McASP MCASP_Handle hMcasp; Uint32 i; extern far dstBuf[8]; ... for (i = 0;i < 8; i++) { val = MCASP_read32(hMcasp); //Reads data }
Example
MCASP_reset
Function
15-12
MCASP_write32 MCASP_write32
Function
Arguments
none This function writes data when the transmitter is configured to transmit to the peripheral data bus.
MCASP_Handle hMcasp; Uint32 val; val = 30; ... MCASP_write32(hMcasp);// Writes data into the Address space for the McASP MCASP_Handle hMcasp; Uint32 i; ... for (i = 0;i < 8; i++) { MCASP_write32(hMcasp,i); // Writes data through the peripheral data bus for McASP }
McASP Module
15-13
MCASP_DEVICE_CNT
MCASP_DEVICE_CNT
Constant Description
MCASP_OPEN_RESET
Description
This is the clock configuration structure used to set up transmit and receive clocks for the McASP device. The user can create and initialize this structure and then pass its address to the MCASP_setupClk() function.
15-14
MCASP_SetupFormat
MCASP_SetupFormat Parameters for data streams format: XFMTRFMT Structure Members MCASP_SetupFormat Uint32 MCASP_Dsprep Uint32 Uint32 Uint32 Uint32 Uint32 Uint32 Uint32 Uint32 MCASP_Dsprep Uint32 Uint32 Uint32 Uint32 Uint32 Uint32 Uint32 xbusel xdsprep xslotsize xwordsize xalign xpad xpbit xorder xdelay rbusel rdsprep rslotsize rwordsize ralign rpad rpbit rorder rdelay Selects peripheral config/data bus for transmit DSP representation:Q31/Integer 832 bits XSSZ field XFMT register Rotation right Left/right aligned Pad value for extra bits Which bit to pad the extra bits MSB/LSB XRVRS field XFMT register Bit delay XFMT register Selects peripheral config/data bus for receive DSP representation:Q31/Integer 832 bits RSSZ field RFMT register Rotation right Left/right aligned Pad value for extra bits Which bit to pad the extra bits MSB/LSB XRVRS field RFMT register FSXDLY Bit delay RFMT register
Description
This is the format configuration structure used to set up transmit and receive formats for the McASP device. The user can create and initialize this structure and then pass its address to the MCASP_setupFormat() function.
McASP Module
15-15
MCASP_SetupFsync
MCASP_SetupFsync Parameters for frame sync control: AFSXCTL AFSRCTL Structure Members MCASP_SetupFsync Uint32 Uint32 Uint32 Uint32 Uint32 Uint32 Uint32 Uint32 Uint32 Uint32 xmode xslotsize xfssrc xfspol fxwid rmode rslotsize rfssrc rfspol rxwid TDMBURST: FSXMOD AFSXCTL register Number of slots for TDM: FSXMOD AFSXCTL register Internal/external AFSXE AFSXCTL register Transmit clock polarity FSXPOL AFSXCTL register Transmit frame duration FXWID AFSXCTL register TDMBURST: FSRMOD AFSRCTL register Number of slots for TDM: FSRMOD AFSRCTL register Receive internal/external AFSRE AFSRCTL register Receive clock polarity FSRPOL AFSRCTL register Receive frame duration FRWID AFSRCTL register
Description
This is the frame sync configuration structure used to set up transmit and receive frame sync for the McASP device. The user can create and initialize this structure and then pass its address to the MCASP_setupFsync() function.
MCASP_SetupHclk Parameters for McASP transmit and receive high clock registers
Structure Members MCASP_SetupHclk Uint32 Uint32 Uint32 Uint32 Uint32 Uint32 xhclksrc xhclkpol xhclkdiv rhclksrc rhclkpol rhclkdiv Transmit high clock source Transmit high clock polarity Transmit high clock div Receive high clock source Receive high clock polarity Receive high clock div
Description
This is the high clock configuration structure used to set up transmit and receive high clocks for the McASP device. The user can create and initialize this structure and then pass its address to the MCASP_setupHclk() function.
15-16
Handle to McASP device. See MCASP_open() Mask value for the pins
Example
McASP Module
15-17
Arguments
Arguments
15-18
MCASP_configRcv
Example
MCASP_ConfigGbl MyConfigGbl; ... MCASP_configGbl(hMcasp, &MyConfigGbl);
Arguments
Example
Arguments
MCASP_configXmt
Example
MCASP_ConfigSrctl MyConfigSrctl; ... MCASP_configSrctl(hMcasp, &MyConfigSrctl);
Arguments
Example
Arguments
MCASP_enableFsync Return Value Description none This function wakes up the transmit or receive (or both) clock out of reset by writing into RCLKRST and XCLKRST of GBLCTL. This function should only be used when the corresponding clock is internal.
MCASP_Handle hMcasp; ... MCASP_enableClk(hMcasp, MCASP_RCV); //Wakes up receive clock MCASP_enableClk(hMcasp, MCASP_XMT); //Wakes up transmit clock MCASP_enableClk(hMcasp, MCASP_XMTRCV); //Wakes up transmit and receive clock MCASP_enableClk(hMcasp, MCASP_RCVXMT); //Wakes up receive and transmit clock
Example
MCASP_enableFsync Enables frame sync if receiver has internal frame sync Function void MCASP_enableFsync( MCASP_Handle hMcasp, Uint32 direction ) hMcasp direction Handle to McASP device. See MCASP_open() direction of frame sync
- MCASP_RCV - MCASP_XMT - MCASP_RCVXMT - MCASP_XMTRCV
Arguments
none This function wakes up the transmit or recieve (or both) frame sync out of reset by writing into RFSRST and XFSRST of GBLCTL. This function should only be used when the corresponding frame sync is internal.
McASP Module
15-21
MCASP_enableHclk
Example
MCASP_Handle hMcasp; ... MCASP_enableFsync(hMcasp, MCASP_RCV); //Wakes up receive frame sync MCASP_enableFsync(hMcasp, MCASP_XMT); //Wakes up transmit frame sync MCASP_enableFsync(hMcasp, MCASP_XMTRCV); //Wakes up transmit and receive frame sync MCASP_enableFsync(hMcasp, MCASP_RCVXMT); //Wakes up receive and transmit frame sync
Arguments
none This function wakes up the transmit or recieve (or both) high clock out of reset by writing into RHCLKRST and XHCLKRST of GBLCTL. This function should only be used when the corresponding high clock is internal.
MCASP_Handle hMcasp; ... MCASP_enableHclk(hMcasp, MCASP_RCV); //Wakes up receive high clock MCASP_enableHclk(hMcasp, MCASP_XMT); //Wakes up transmit high clock MCASP_enableHclk(hMcasp, MCASP_XMTRCV); //Wakes up transmit and receive high clock MCASP_enableHclk(hMcasp, MCASP_RCVXMT); //Wakes up receive and transmit high clock
Example
15-22
Arguments
none This function wakes up the transmit or recieve (or both) serializers out of reset by writing into RSRCRL and XSRCLR of GBLCTL.
MCASP_Handle hMcasp; ... MCASP_enableSers(hMcasp, MCASP_RCV); //Receive serializers are made active MCASP_enableSers(hMcasp, MCASP_XMT); //Transmit serializers are made active MCASP_enableSers(hMcasp, MCASP_XMTRCV); //Transmit and receive serializers are made active MCASP_enableSers(hMcasp, MCASP_RCVXMT); //Receive and transmit serializers are made active
McASP Module
15-23
MCASP_enableSm MCASP_enableSm Wakes up transmit and/or receive state machine, depending on direction
Function void MCASP_enableSm( MCASP_Handle hMcasp, Uint32 direction ) hMcasp direction
-
Arguments
none This function wakes up the transmit or recieve (or both) serializers out of reset by writing into RSMRST and XSMRST of GBLCTL.
MCASP_Handle hMcasp; ... MCASP_enableSm(hMcasp, MCASP_RCV); //Wakes up receive state machine MCASP_enableSm(hMcasp, MCASP_XMT); //Wakes up transmit state machine MCASP_enableSm(hMcasp, MCASP_XMTRCV); //Wakes up transmit and receive state machine MCASP_enableSm(hMcasp, MCASP_RCVXMT); //Wakes up receive and transmit state machine
15-24
Arguments
Handle to McASP device. See MCASP_open() Pointer to the source configuration structure
Example
Arguments
Uint32
This function returns the XGBLCTL value for MCASP_XMT direction, and the RGBLCTL value for MCASP_RCV direction. It returns GBLCTL otherwise.
MCASP_Handle hMcasp; Uint32 gblVal; hMcasp = MCASP_open(MCASP_DEV0, MCASP_OPEN_RESET); ... gblVal = MCASP_getGblctl(hMcasp, MCASP_RCV); //RGBLCTL gblVal = MCASP_getGblctl(hMcasp, MCASP_XMT); //XGBLCTL gblVal = MCASP_getGblctl(hMcasp, MCASP_XMTRCV); //GBLCTL McASP Module 15-25
Example
Arguments
This function reads data from RBUF[0:15]. It should be used only when the corresponding AXR[0:15] is configured as a receiver and the receiver uses the peripheral configuration bus.
MCASP_Handle hMcasp; Uint32 val; ... val = MCASP_read32Cfg(hMcasp,9);// Read data from RBUF9, which is configured as receiver
Example
MCASP_resetRcv
Function
Example
15-26
MCASP_resetXmt MCASP_resetXmt
Function
Example
MCASP_setPins
Function
Handle to McASP device. See MCASP_open() Mask value for the pins
Example
MCASP_setupClk MCASP_setupClk
Function
Example
MCASP_setupFormat Sets up McASP transmit and receive format registers Function void MCASP_setupFormat( MCASP_Handle hMcasp, MCASP_SetupFormat *setupformat ) hMcasp setupformat none This function configures the McASP device format registers using the configuration structure MCASP_SetupFormat. The values of the structure members are written to McASP transmit and receive format registers.
MCASP_SetupFormat setupformat; ... MCASP_setupFormat(hMcasp, &setupformat);
Example
15-28
MCASP_setupFsync
MCASP_setupFsync Sets up McASP transmit and receive frame sync registers Function void MCASP_setupFsync( MCASP_Handle hMcasp, MCASP_SetupFsync *setupfsync ) hMcasp setupfsync none This function configures the McASP device frame sync registers using the configuration structure MCASP_SetupFsync. The values of the structure members are written to McASP transmit and receive frame sync registers.
MCASP_SetupFsync setupfsync; ... MCASP_setupFsync(hMcasp, &setupfsync);
Example
Example
McASP Module
15-29
Arguments
Example
15-30
MCASP_getXmtEventId MCASP_getXmtEventId
Function
Uint32 MCASP_getXmtEventId( MCASP_Handle hMcasp ); hMcasp Uint32 Handle to McASP device. See MCASP_open() Transmit event ID
McASP Module
15-31
MCASP_getXmtEventId
15-32
Chapter 16
McBSP Module
This chapter describes the McBSP module, lists the API functions and macros within the module, discusses using a McBSP port, and provides a McBSP API reference section.
Topic
Page
16.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-2 16.2 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-5 16.3 Configuration Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-7 16.4 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-9
16-1
Overview
16.1 Overview
The McBSP module contains a set of API functions for configuring the McBSP registers. Table 161 lists the configuration structure for use with the McBSP functions. Table 162 lists the functions and constants available in the CSL McBSP module.
(b) Auxiliary Functions and Constants Syntax MCBSP_enableFsync MCBSP_enableRcv MCBSP_enableSrgr MCBSP_enableXmt MCBSP_getConfig MCBSP_getPins
Note: F = Function; C = Constant
Type Description F F F F F F Enables the frame sync generator for the given port Enables the receiver for the given port Enables the sample rate generator for the given port Enables the transmitter for the given port Reads the current McBSP configuration values Reads the values of the port pins when configured as general purpose I/Os
16-2
Overview
Type Description F F C F F F F F F F C F F F F Returns the address of the data receive register (DRR) Returns the address of the data transmit register, DXR A compile time constant that holds the number of serial ports present on the current device Performs a direct 32-bit read of the data receive register DRR Resets the given serial port Resets all serial ports supported by the device Reads the RFULL bit of the serial port control register Reads the RRDY status bit of the SPCR register Reads the RSYNCERR status bit of the SPCR register Sets the state of the serial port pins when configured as general purpose IO A compile time constant whose value is 1 if the device supports the McBSP module Writes a 32-bit value directly to the serial port data transmit register, DXR Reads the XEMPTY bit from the SPCR register Reads the XRDY status bit of the SPCR register Reads the XSYNCERR status bit of the SPCR register
See page ... 16-17 16-18 16-18 16-18 16-19 16-19 16-19 16-20 16-20 16-21 16-21 16-22 16-22 16-22 16-23
Type Description F F Retrieves the receive event ID for the given port Retrieves the transmit event ID for the given port
McBSP Module
16-3
Overview
16-4
Macros
16.2 Macros
There are two types of McBSP macros: those that access registers and fields, and those that construct register and field values. Table 163 lists the McBSP macros that access registers and fields, and Table 164 lists the McBSP macros that construct register and field values. The macros themselves are found in Chapter 28, Using the HAL Macros. The McBSP module includes handle-based macros.
McBSP Module
16-5
Macros
Table 164. McBSP Macros that Construct Register and Field Values
Macro MCBSP_<REG>_DEFAULT MCBSP_<REG>_RMK() MCBSP_<REG>_OF() MCBSP_<REG>_<FIELD>_DEFAULT MCBSP_FMK() MCBSP_FMKS() MCBSP_<REG>_<FIELD>_OF() MCBSP_<REG>_<FIELD>_<SYM> Description/Purpose Register default value Register make Register value of ... Field default value Field make Field make symbolically Field value of ... Field symbolic value See page ... 28-21 28-23 28-22 28-24 28-14 28-15 28-24 28-24
16-6
MCBSP_Config
MCBSP_Config
Structure Members
Configuration structure for C64x devices only: Uint32 spcr Serial port control register value Uint32 rcr Receive control register value Uint32 xcr Transmit control register value Uint32 srgr Sample rate generator register value Uint32 mcr Multichannel control register value Uint32 rcere0 Enhanced Receive channel enable register 0 value Uint32 rcere1 Enhanced Receive channel enable register 1 value Uint32 rcere2 Enhanced Receive channel enable register 2 value Uint32 rcere3 Enhanced Receive channel enable register 3 value Uint32 xcere0 Enhanced Transmit channel enable register 0 value Uint32 xcere1 Enhanced Transmit channel enable register 1 value Uint32 xcere2 Enhanced Transmit channel enable register 2 value Uint32 xcere3 Enhanced Transmit channel enable register 3 value UInt32 pcr Pin Control register value Description This is the McBSP configuration structure used to set up a McBSP port. You create and initialize this structure and then pass its address to the MCBSP_config() function. You can use literal values or the MCBSP_RMK macros to create the structure member values.
McBSP Module
16-7
MCBSP_Config
Example
MCBSP_Config MyConfig = { 0x00012001, /* spcr */ 0x00010140, /* rcr */ 0x00010140, /* xcr */ 0x00000000, /* srgr */ 0x00000000, /* mcr */ 0x00000000, /* rcer */ 0x00000000, /* xcer */ 0x00000000 /* pcr */ }; MCBSP_config(hMcbsp,&MyConfig);
16-8
MCBSP_close
16.4 Functions
16.4.1 Primary Functions
MCBSP_close
Function
Example
MCBSP_config
Function
Arguments
none Sets up the McBSP port using the configuration structure. The values of the structure are written to the port registers. The serial port control register (spcr) is written last. See also MCBSP_configArgs() and MCBSP_Config.
McBSP Module
16-9
MCBSP_config
Example
#if (!C64_SUPPORT) MCBSP_Config MyConfig 0x00012001, /* spcr 0x00010140, /* rcr 0x00010140, /* xcr 0x00000000, /* srgr 0x00000000, /* mcr 0x00000000, /* rcer 0x00000000, /* xcer 0x00000000 /* pcr }; #else
= { */ */ */ */ */ */ */ */
16-10
McBSP Module
16-11
MCBSP_configArgs
For C64x devices: rcere0 Enhanced Receive channel enable register 0 value rcere1 Enhanced Receive channel enable register 1 value rcere2 Enhanced Receive channel enable register 2 value rcere3 Enhanced Receive channel enable register 3 value xcere0 Enhanced Transmit channel enable register 0 value xcere1 Enhanced Transmit channel enable register 1 value xcere2 Enhanced Transmit channel enable register 2 value xcere3 Enhanced Transmit channel enable register 3 value Return Value Description none Sets up the McBSP port using the register values passed in. The register values are written to the port registers. The serial port control register (spcr) is written last. See also MCBSP_config(). You may use literal values for the arguments or for readability. You may use the _RMK macros to create the register values based on field values. Example
MCBSP_configArgs(hMcbsp, 0x00012001, /* spcr */ 0x00010140, /* rcr */ 0x00010140, /* xcr */ 0x00000000, /* srgr */ 0x00000000, /* mcr */ 0x00000000, /* rcer */ 0x00000000, /* xcer */ 0x00000000 /* pcr */ );
/* C64x devices */
16-12
MCBSP_open
MCBSP_configArgs(hMcbsp, 0x00012001, /* spcr */ 0x00010140, /* rcr */ 0x00010140, /* xcr */ 0x00000000, /* srgr */ 0x00000000, /* mcr */ 0x00000000, /* rcere0 */ 0x00000000, /* rcere1 */ 0x00000000, /* rcere2 */ 0x00000000, /* rcere3 */ 0x00000000, /* xcere0 */ 0x00000000, /* xcere1 */ 0x00000000, /* xcere2 */ 0x00000000, /* xcere3 */ 0x00000000 /* pcr */ );
MCBSP_open
Function
Arguments
Device Handle Returns a device handle Before a McBSP port can be used, it must first be opened by this function. Once opened, it cannot be opened again until closed. See MCBSP_close().The return value is a unique device handle that you use in subsequent McBSP API calls. If the open fails, INV is returned. If the MCBSP_OPEN_RESET is specified, the McBSP port registers are set to their power-on defaults and any associated interrupts are disabled and cleared.
Example
MCBSP_start MCBSP_start
Function
Arguments
SampleRateGenDelay Sample rate generated delay. McBSP logic requires two SRGR clock periods after enabling the sample rate generator for itsl logic to stabilize. Use this parameter to provide the appropriate delay. Value = 2 x SRGR clock period/ 4 x C6x Instruction cycle Default value is 0xFFFFFFFF Return Value Description none Use this function to start a transmit and/or receive operation for a McBSP port by passing the handle and mask. Equivalent to MCBSP_enableXmt(), MCBSP_enableRcv(), MCBSP_enableSrgr(), and MCBSP_enableFsync(). Example
MCBSP_start( hMcbsp, MCBSP_RCV_START, 0x00003000); MCBSP_start( hMcbsp, MCBSP_RCV_START | MCBSP_XMT_START, 0x00003000);
16-14
MCBSP_enableFsync
MCBSP_enableFsync Function
MCBSP_enableRcv Function
McBSP Module
16-15
MCBSP_enableSrgr
MCBSP_enableSrgr Function
MCBSP_enableXmt Function
Arguments
16-16
MCBSP_getPins MCBSP_getPins
Function
Bit-Mask of pin values MCBSP_PIN_CLKX MCBSP_PIN_FSX MCBSP_PIN_DX MCBSP_PIN_CLKR MCBSP_PIN_FSR MCBSP_PIN_DR MCBSP_PIN_CLKS
Description
This function reads the values of the port pins when configured as general purpose input/outputs.
Uint32 PinMask; ... PinMask = MCBSP_getPins(hMcbsp); if (PinMask & MCBSP_PIN_DR) { ... }
Example
MCBSP_getRcvAddr Returns address of data receive register (DRR) Function Uint32 MCBSP_getRcvAddr( MCBSP_Handle hMcbsp ); hMcbsp Receive Address Handle to McBSP port. See MCBSP_open() DRR register address
Returns the address of the data receive register, DRR. This value is needed when setting up DMA transfers to read from the serial port. See also MCBSP_getXmtAddr().
Addr = MCBSP_getRcvAddr(hMcbsp); McBSP Module 16-17
Example
Transmit Address
Returns the address of the data transmit register, DXR. This value is needed when setting up DMA transfers to write to the serial port. See also MCBSP_getRcvAddr().
Addr = MCBSP_getXmtAddr(hMcbsp);
Example
MCBSP_PORT_CNT Compile-time constant Constant Description Example MCBSP_PORT_CNT Compile-time constant that holds the number of serial ports present on the current device.
#if (MCBSP_PORT_CNT==3) #endif
MCBSP_read
Function
16-18
MCBSP_reset MCBSP_reset
Function
will be reset to the McBSP reset value and not the device reset value
- All associated interrupts are disabled and cleared
Example
MCBSP_reset(hMcbsp);
MCBSP_resetAll
Function Arguments Return Value Description
will be reset to the McBSP reset value and not the device reset value
- All associated interrupts are disabled and cleared
Example
MCBSP_resetAll();
MCBSP_rfull
Function
Arguments
MCBSP_rrdy
Return Value Description Example RFULL Returns RFULL status bit of SPCR register; 0 or 1
This function reads the RFULL bit of the serial port control register. A 1 indicates a receive shift register full error.
if (MCBSP_rfull(hMcbsp)) { }
MCBSP_rrdy
Function
Reads the RRDY status bit of the SPCR register. A 1 indicates the receiver is ready with data to be read.
if (MCBSP_rrdy(hMcbsp)) { }
MCBSP_rsyncerr
Function
Reads the RSYNCERR status bit of the SPCR register. A 1 indicates a receiver frame sync error.
if (MCBSP_ rsyncerr(hMcbsp)) { }
16-20
MCBSP_setPins MCBSP_setPins
Function
Arguments
none Use this function to set the state of the serial port pins when configured as general purpose IO.
MCBSP_setPins(hMcbsp, MCBSP_PIN_FSX | MCBSP_PIN_DX );
Example
Compile-time constant
MCBSP_SUPPORT Compile-time constant that has a value of 1 if the device supports the McBSP module and 0 otherwise. You are not required to use this constant. Currently, all devices support this module.
Example
MCBSP_write MCBSP_write
Function
Writes 32-bit value directly to serial port data transmit register, DXR
void MCBSP_write( MCBSP_Handle hMcbsp, Uint32 val ); hMcbsp val Handle to McBSP port. See MCBSP_open() 32-bit data value
Arguments
none Use this function to directly write a 32-bit value to the serial port data transmit register, DXR.
MCBSP_write(hMcbsp,0x12345678);
MCBSP_xempty
Function
Reads the XEMPTY bit from the SPCR register. A 0 indicates the transmit shift (XSR) is empty.
if (MCBSP_xempty(hMcbsp)) { }
MCBSP_xrdy
Function
MCBSP_xsyncerr
Description Example Reads the XRDY status bit of the SPCR register. A 1 indicates the transmitter is ready to be written to.
if (MCBSP_xrdy(hMcbsp)) { }
MCBSP_xsyncerr
Function
Reads the XSYNCERR status bit of the SPCR register. A 1 indicates a transmitter frame sync error.
if (MCBSP_ xsyncerr(hMcbsp)) { }
MCBSP_getRcvEventId Function
Uint32 MCBSP_getRcvEventId( MCBSP_Handle hMcbsp ); hMcbsp Receive Event ID Handle to McBSP port. See MCBSP_open() Receiver event ID
MCBSP_getXmtEventId
MCBSP_getXmtEventId Function
Uint32 MCBSP_getXmtEventId( MCBSP_Handle hMcbsp ); hMcbsp Handle to McBSP port. See MCBSP_open() Event ID of transmitter
Transmit Event ID
16-24
Chapter 17
MDIO Module
This chapter describes the MDIO module, lists the API functions and macros within the module, and provides an MDIO reference section.
Topic
Page
17-1
Overview
17.1 Overview
The management data input/output (MDIO) module implements the 802.3 serial management interface to interrogate and control Ethernet PHY(s) using a shared two-wire bus. Host software uses the MDIO module to configure the auto-negotiation parameters of each PHY attached to the EMAC, retrieve the negotiation results, and configure required parameters in the EMAC module for correct operation. The module is designed to allow almost transparent operation of the MDIO interface, with very little maintenance from the core processor. Table 171 lists the functions and constants available in the CSL MDIO module. When used in a multitasking environment, no MDIO function may be called while another MDIO function is operating on the same device handle in another thread. It is the responsibility of the application to assure adherence to this restriction. When using the CSL EMAC module, the EMAC module makes use of this MDIO module. It is not necessary for the application to call any MDIO functions directly when the CSL EMAC module is in use. In the function descriptions, uint is defined as unsigned int and Handle as void*.
17-2
Macros
17.2 Macros
There are two types of MDIO macros: those that access registers and fields, and those that construct register and field values. Table 172 lists the MDIO macros that access registers and fields, and Table 173 lists the MDIO macros that construct register and field values. The macros themselves are found in Chapter 28, Using the HAL Macros.
Table 173. MDIO Macros that Construct Register and Field Values
Macro Description/Purpose See page
MDIO Module
17-3
MDIO_close
17.3 Functions
MDIO_close
Function
MDIO_getStatus
Function
Arguments
17-4
MDIO_initPHY MDIO_initPHY
Function
Example
MDIO_open
Function
Opens the MDIO peripheral and starts searching for a PHY device
Handle MDIO_open( uint mdioModeFlags ); uint mdioModeFlags Mode flags for initializing device void* Opens the MDIO peripheral and start searching for a PHY device. It is assumed that the MDIO module is reset prior to calling this function. Handle hMDIO; ... hMDIO = MDIO_open(MDIO_MODEFLG_HD10);
MDIO Module
17-5
Arguments
Example
Arguments
Example
17-6
MDIO_SUPPORT MDIO_SUPPORT
Constant Description
Compile-time constant
MDIO_SUPPORT Compile-time constant that has a value of 1 if the device supports the MDIO module and 0 otherwise. You are not required to use this constant.
MDIO_timerTick
Function
MDIO Module
17-7
Chapter 18
PCI Module
This chapter describes the PCI module, lists the API functions and macros within the module, discusses the three application domains, and provides a PCI API reference section.
Topic
Page
18.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-2 18.2 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-4 18.3 Configuration Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-6 18.4 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-7
18-1
Overview
18.1 Overview
The PCI module APIs cover the following three application domains:
- APIs that are dedicated to DSP-PCI Master transfers (mainly starting with
Table 181 lists the configuration structure for use with the PCI functions. Table 182 lists the functions and constants available in the CSL PCI module.
18-2
Overview
PCI Module
18-3
Macros
18.2 Macros
There are two types of PCI macros: those that access registers and fields, and those that construct register and field values. Table 183 lists the PCI macros that access registers and fields, and Table 184 lists the PCI macros that construct register and field values. The macros themselves are found in Chapter 28, Using the HAL Macros. PCI macros are not handle-based.
18-4
Macros
Table 184. PCI Macros that Construct Register and Field Values
Macro PCI_<REG>_DEFAULT PCI_<REG>_RMK() PCI_<REG>_OF() PCI_<REG>_<FIELD>_DEFAULT PCI_FMK() PCI_FMKS() PCI_<REG>_<FIELD>_OF() PCI_<REG>_<FIELD>_<SYM> Description/Purpose Register default value Register make Register value of ... Field default value Field make Field make symbolically Field value of ... Field symbolic value See page ... 28-21 28-23 28-22 28-24 28-14 28-15 28-24 28-24
PCI Module
18-5
PCI_ConfigXfr
PCI_ConfigXfr
Structure Members
Description
Example
18-6
PCI_curByteCntGet
18.4 Functions
PCI_curDspAddrGet Returns current DSP address Function Arguments Return Value Description Example Uint32 PCI_curDspAddrGet(); none DSP Address Returns the current DSP Address of the master transactions.
Uint32 dspAddr; dspAddr = PCI_curDspAddrGet();
PCI Module
18-7
PCI_dspIntReqClear
PCI_dspIntReqClear Clears DSP-to-PCI interrupt request bit Function Arguments Return Value Description Example void PCI_dspIntReqClear(); none none Clears the DSP-to-PCI interrupt request bit of the RSTSRC register.
PCI_dspIntReqClear();
PCI_eepromErase Function
0 or 1 (success) Erases the 16-bit data at the specified address. The Enable Write EWEN is performed under this function.
Uint32 success; success = PCI_eepromErase(0x00000002);
18-8
PCI_eepromEraseAll
PCI_eepromEraseAll Erases entire EEPROM Function Arguments Return Value Description Example Uint32 PCI_eepromEraseAll() none address of the 16-bit data to be erased
Uint32 PCI_eepromIsAutoCfg(); none 0 or 1 Tests if the PCI reads configure-values from EEPROM. Returns value of the EEAI field of EECTL register.
Uint32 x; x = PCI_eepromIsAutoCfg();
PCI_eepromRead
Function
value of the 16-bit data Reads the 16-bit data at the specified address from EEPROM.
Uint16 eepromdata; eepromdata = PCI_eepromRead(0x00000001);
PCI Module
18-9
PCI_eepromSize PCI_eepromSize
Function Arguments Return Value Description
Example
PCI_eepromTest
Function Arguments Return Value Description Example
PCI_eepromWrite
Function
Arguments
Return Value
18-10
0 or 1
PCI_eepromWriteAll
Description Example Writes the 16-bit data into the specified EEPROM address. The Enable Write EWEN is performed under this function.
Uint16 x; x = PCI_eepromWrite(0x123,0x8888);
PCI_EVT_NNN
Constant
Description
PCI_intClear
Function
Arguments
PCI_intDisable
Return Value Description Example none Clears the specified event flag of PCIIS register by writing 1 to the associated bit.
PCI_intClear(PCI_EVT_MASTEROK);
PCI_intDisable
Function
PCI_intEnable
Function
PCI_intTest
Function
Arguments
18-12
PCI_pwrStatTest
Return Value Description Example 0 or 1 Tests if the specified event flag was set in the PCIIS register.
Uint32 x; x = PCI_intTest(PCI_EVT_MASTEROK);
PCI_pwrStatTest
Function Arguments Return Value
0:No State change request 1: Requested State D0/D1 2: Requested State D2 3: Requested State D3
Description Example
Tests if the DSP has received an event related to a state change (not supported by 64x devices).
PCI_pwrStatTest();
PCI_SUPPORT
Constant Description
Compile-time constant
PCI_SUPPORT Compile-time constant that has a value of 1 if the device supports the PCI module and 0 otherwise. You are not required to use this constant.
PCI Module 18-13
PCI_xfrByteCntSet
Currently, all devices support this module. Example
#if (PCI_SUPPORT) /* user PCI configuration */ #endif
Number of bytes to be transferred for the next transaction. 1 < nbbyte < 65K max
PCI_xfrConfig
Function
Example
18-14
PCI_xfrConfigArgs PCI_xfrConfigArgs Sets up registers related to master transfer using register values
Function void PCI_xfrConfigArgs( Uint32 dspma, Uint32 pcima, Uint32 pcimc Uint32 trctl (For C64x devices only) ); dspma DSP master address register value pcima PCI master address register value pcimc PCI master control register value For C64x devices only) trctl PCI transfer request control register none Sets up the PCI registers related to the master transfer using the register values passed in. The register values are written to the PCI registers. See also PCI_xfrConfig().
PCI_xfrConfigArgs{ 0x80001000, /* dspma register */ 0xFBE00000, /* pcima register CPLD XBISA DSP reg*/ 0x0100000 /* pcimc register 256-byte transfer*/ );
Arguments
Example
PCI_xfrEnable
Function Arguments Return Value Description
Example
PCI Module
18-15
PCI_xfrFlush PCI_xfrFlush
Function Arguments Return Value Description Example
PCI_xfrGetConfig
Function
Example
PCI_xfrHalt
Function Arguments Return Value Description
Example
18-16
PCI_xfrStart PCI_xfrStart
Function
Starts transaction
void PCI_xfrStart( Uint32 modeXfr ); modeXfr Specified one of the following transfer modes (macros): - PCI_WRITE or 0x1 - PCI_READ_PREF or 0x2 - PCI_READ_NOPREF or 0x3
Arguments
PCI_xfrTest
Function Arguments Return Value Description
Example
PCI Module
18-17
Chapter 19
PLL Module
This chapter describes the PLL module, lists the API functions and macros within the module, discusses the three application domains, and provides a PLL API reference section.
Topic
Page
19.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-2 19.2 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-4 19.3 Configuration Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-6 19.4 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-7
19-1
Overview
19.1 Overview
This module provides functions and macros to configure the PLL controller. The PLL controller peripheral is in charge of controlling the DSP clock. Table 191 lists the configuration structure for use with the PLL functions. Table 192 lists the functions and constants available in the CSL PLL module.
Type Description F F F F F F F F F F F F F F F F Sets the PLL in bypass mode Checks and returns the oscillator input stable condition Configures the PLL using the configuration structure Configures the PLL using register fields as arguments Releases the PLL from reset Disables the oscillator divider OD1 Disables the specified divider Enables the PLL Enables the oscillator divider OD1 Enables the specified divider Reads the current PLL controller configuration values Returns the PLL multiplier value Returns the oscillator divide ratio Returns the PLL divide ratio Initializes the PLL using the PLL_Init structure Sets the PLL in operational mode
See page ... 19-7 19-7 19-8 19-8 19-9 19-9 19-9 19-10 19-10 19-11 19-11 19-11 19-12 19-12 19-12 19-13
19-2
Overview
Type Description F F F F F C Sets the PLL in power down state Resets the PLL Sets the PLL multiplier value Sets the oscillator divide ratio (CLKOUT3 divider) Sets the PLL divide ratio A compile time constant whose value is 1 if the device supports PLL
PLL Module
19-3
Macros
19.2 Macros
There are two types of PLL macros: those that access registers and fields, and those that construct register and field values. Table 193 lists the PLL macros that access registers and fields, and Table 194 lists the PLL macros that construct register and field values. The macros themselves are found in Chapter 28, Using the HAL Macros. PLL macros are not handle-based.
19-4
Macros
Table 194. PLL Macros that Construct Register and Field Values
Macro PLL_<REG>_DEFAULT PLL_<REG>_RMK() PLL_<REG>_OF() PLL_<REG>_<FIELD>_DEFAULT PLL_FMK() PLL_FMKS() PLL_<REG>_<FIELD>_OF() PLL_<REG>_<FIELD>_<SYM> Description/Purpose Register default value Register make Register value of ... Field default value Field make Field make symbolically Field value of ... Field symbolic value See page ... 28-21 28-23 28-22 28-24 28-14 28-15 28-24 28-24
PLL Module
19-5
PLL_Config
Description
This is the PLL configuration structure used to configure the PLL controller. The user should create and initialize this structure before passing its address to the PLL_config() function.
PLL_Init
Structure Members
Description
This is the PLL initialization structure used to initialize the PLL controller. The user should create and initialize this structure before passing its address to the PLL_init() function.
19-6
PLL_bypass
19.4 Functions
PLL_bypass
Function
Example
PLL_clkTest
Function
Description
This function checks and returns the oscillator input stable condition. 0 OSCIN/CLKIN input not yet stable. This is true if the synchronous counter has not finished counting. 1 OSCIN/CLKIN input is stable. This is true if any one of the following three cases is true: H Synchronous counter has finished counting the number of OSCIN/CLKIN cycles H Synchronous counter is disabled H Test mode
Example
PLL_config PLL_config
Function
Example
PLL_configArgs
Function
Arguments
PLL_deassert PLL_deassert
Function
Arguments
Return Value
none
PLL Module 19-9
PLL_enable
Description Example This function disables the divider specified by the divId parameter.
PLL_disablePllDiv(PLL_DIV0);
PLL_enable
Function
Example
19-10
PLL_enablePllDiv PLL_enablePllDiv
Function
Arguments
none This function enables the divider specified by the divId parameter.
PLL_enablePllDiv(PLL_DIV0);
PLL_getConfig
Function
PLL_getMultiplier
Function
Arguments
PLL_getOscRatio
Return Value Description Example Uint32 PLL multiplier value. See PLL_setMultiplier().
This function gets the current PLL multiplier value. For PLL multiplier values, see PLL_setMultiplier().
Uint32 val; val = PLL_getMultiplier();
PLL_getOscRatio
Function
This function returns the oscillator divide ratio. For oscillator divide values, see PLL_setOscRatio().
Uint32 val; val = PLL_getOscRatio();
PLL_getPllRatio
Function
This function returns the PLL divide ratio. For PLL divide values, see PLL_setPllRatio().
Uint32 val; val = PLL_getPllRatio(PLL_DIV0);
PLL_init
Function
Arguments
19-12
PLL_operational
Return Value Description none This function initializes the PLL controller using the PLL_Init structure. The values of the structure variables are written to the corresponding PLL controller register fields.
PLL_Init myInit; ... PLL_init(&myInit);
Example
PLL_operational
Function
PLL_pwrdwn
Function
Example
PLL Module
19-13
PLL_reset PLL_reset
Function
PLL_setMultiplier
Function
Example
PLL_setMultiplier(0x04);
PLL_setOscRatio
Function
Arguments
19-14
PLL_setPllRatio
Return Value Description none This function sets the oscillator divide ratio (CLKOUT3 divider). Divider values 00000 = /1 00000 = /5 00000 = /9 00000 = /13 00000 = /17 00000 = /21 00000 = /25 00000 = /29 Example
PLL_setOscRatio(0x05);
PLL_setPllRatio
Function
Arguments
Divider values
This function sets the divide ratio for the clock divider specified by the divId parameter.
PLL Module
19-15
PLL_SUPPORT
Description This function sets the divide ratio for the clock divider specified by the divId parameter. Divider values 00000 = /1 00000 = /5 00000 = /9 00000 = /13 00000 = /17 00000 = /21 00000 = /25 00000 = /29 Example
PLL_setPllDiv(PLL_DIV0,0x05);
PLL_SUPPORT
Constant Description
Example
19-16
Chapter 20
PWR Module
This chapter describes the PWR module, lists the API functions and macros within the module, and provides a PWR API reference section.
Topic
Page
20.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-2 20.2 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-3 20.3 Configuration Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-5 20.4 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-6
20-1
Overview
20.1 Overview
The PWR module is used to configure the power-down control registers, if applicable, and to invoke various power-down modes. Table 201 lists the configuration structure for use with the PWR functions. Table 202 lists the functions and constants available in the CSL PWR module.
Type Description F F F F C Sets up the PWR register using the configuration structure Sets up the power-down logic using the register value passed in Reads the current PWR configuration values Forces the DSP to enter a power-down state A compile time constant whose value is 1 if the device supports the PWR module
20-2
Macros
20.2 Macros
There are two types of PWR macros: those that access registers and fields, and those that construct register and field values. Table 203 lists the PWR macros that access registers and fields, and Table 204 lists the PWR macros that construct register and field values. The macros themselves are found in Chapter 28, Using the HAL Macros. PWR macros are not handle-based.
PWR Module
20-3
Macros
Table 204. PWR Macros that Construct Register and Field Values
Macro PWR_<REG>_DEFAULT PWR_<REG>_RMK() PWR_<REG>_OF() PWR_<REG>_<FIELD>_DEFAULT PWR_FMK() PWR_FMKS() PWR_<REG>_<FIELD>_OF() PWR_<REG>_<FIELD>_<SYM> Description/Purpose Register default value Register make Register value of ... Field default value Field make Field make symbolically Field value of ... Field symbolic value See page ... 28-21 28-23 28-22 28-24 28-14 28-15 28-24 28-24
20-4
PWR_Config
PWR_Config
Structure Members Description
This is the PWR configuration structure used to set up the PWR option of the 6202 device. You create and initialize this structure and then pass its address to the PWR_config() function. You can use literal values or the _RMK macros to create the structure member values.
PWR_Config pwrCfg = { 0x00000000 }; PWR_config(&pwrCfg);
Example
PWR Module
20-5
PWR_config
20.4 Functions
PWR_config
Function
PWR_configArgs
Function
Example
PWR_configArgs(0x00000000);
20-6
PWR_getConfig PWR_getConfig
Function
Arguments
none Calling this function forces the DSP to enter a power-down state. Refer to the TMS320C6000 Peripherals Reference Guide (SPRU190) for a description of the power-down modes.
PWR_powerDown(PWR_PD2);
Example
PWR Module
20-7
PWR_SUPPORT PWR_SUPPORT
Constant Description
Compile-time constant
PWR_SUPPORT Compile-time constant that has a value of 1 if the device supports the PWR module and 0 otherwise. You are not required to use this constant. Currently, all devices support this module.
Example
20-8
Chapter 21
TCP Module
This chapter describes the TCP module, lists the API functions and macros within the module, discusses how to use the TCP, and provides a TCP API reference section.
Topic
Page
21.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-2 21.2 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-6 21.3 Configuration Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-8 21.4 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-13
21-1
Overview
21.1 Overview
Currently, there is one TMS320C6000 device with a turbo coprocessor (TCP): the TMS320C6416. The TCP is intended to be serviced using the EDMA for most accesses, but the CPU must first configure the TCP control values. There are also a number of functions available to the CPU to monitor the TCP status and access decision and output parameter data. Table 211 lists the configuration structures for use with the TCP functions. Table 212 lists the functions and constants available in the CSL TCP module.
TCP_calcCountsSP
21-13
F F F F C
21-2
Overview
Type Description C F F F F F F F C F F F F F F F F F F F F F F Value indicating little endian format within packed 32-bit words Returns the error bit of ERR register Maximum frame length Generates the TCP_ConfigIc struct based on the TCP parameters provided by the TCP_Params struct Function used to set basic TCP parameters Returns access error flag Returns Apriori data endian configuration Returns the Extrinsics data endian configuration Returns the frame length error status Returns the IC values already programmed into the TCP Returns the Interleaver Table data endian configuration Returns the interleaver table error status Returns the error status for a bad reliability length Returns the error status for a bad TCP mode Returns the number of iterations performed by the TCP Returns the output parameters error status Returns the error status for an invalid prolog length Returns the error status for an invalid rate Returns the error status for an invalid reliability length Returns the error status indicating an invalid number of sub frames Returns the Systematics and Parities data endian configuration Stores the IC values into the TCP Stores the IC values into the TCP using arguments
See page ... 21-16 21-16 21-17 21-17 21-17 21-18 21-18 21-19 21-19 21-19 21-20 21-20 21-21 21-21 21-22 21-22 21-22 21-23 21-23 21-23 21-24 21-24 21-25
TCP Module
21-3
Overview
Type Description F F C C C C C F F C C C C F F F F F F F C C F F Interleaves extrinsics data for shared processing mode Builds the Tail values used for IC6IC11 Value indicating that the first iteration of a MAP1 decoding Value indicating a MAP1 decoding (any iteration after the first) Value indicating a MAP2 decoding Value indicating standalone processing mode Value indicating shared processing mode Normalized ceiling function Pauses the TCP Value indicating a rate of 1/2 Value indicating a rate of 1/3 Value indicating a rate of 1/4 Maximum reliability length Sets the Apriori data endian configuration Sets the Extrinsics data endian configuration Sets the Interleaver Table data endian configuration Sets all data formats to be native (not packed data) Sets all data formats to be packed data Generates IC0IC5 based on the channel parameters Sets the Systematics and Parities data endian configuration Value indicating the 3GPP standard Value indicating the IS2000 standard Starts the TCP Returns the error status
See page ... 21-26 21-27 21-27 21-27 21-27 21-28 21-28 21-28 21-28 21-28 21-29 21-29 21-29 21-29 21-30 21-30 21-31 21-31 21-31 21-32 21-32 21-32 21-33 21-33
21-4
Overview
Type Description F F F F F F F F F F F F F Returns the pause status Returns the run status Returns the Apriori data status Returns the Extrinsics data status Returns the Hard Decisions status Returns the IC values status Returns the Interleaver Table status Returns the Output Parameters status Returns the Systematics and Parities data status Generates IC6IC11 by calling either TCP_tailConfig3GPP or TCP_tailConfigIS2000 Generates tail values for 3GPP channel data Generates tail values for IS2000 channel data Unpauses the TCP
See page ... 21-33 21-34 21-34 21-34 21-35 21-35 21-35 21-36 21-36 21-37 21-38 21-39 21-40
Macros
16bit) or being packed into a 32-bit word. This being the case, the endian mode values can be set using a single function call to either TCP_setNativeEndian() or TCP_setPacked32Endian(). Alternatively, the data format of individual data types can be programmed with independent functions. The user can monitor the status of the TCP during operation and also monitor error flags if there is a problem.
21.2 Macros
There are two types of TCP macros: those that access registers and fields, and those that construct register and field values. These are not required as all TCP configuring and monitoring can be done through the provided functions. These TCP functions make use of a number of macros. Table 213 lists the TCP macros that access registers and fields. Table 214 lists the TCP macros that construct register and field values. The macros themselves are found in Chapter 28, Using the HAL Macros. The TCP module includes handle-based macros.
21-6
Macros
Table 214. TCP Macros that Construct Register and Field Values
Macro TCP_<REG>_DEFAULT TCP_<REG>_RMK() TCP_<REG>_OF() TCP_<REG>_<FIELD>_DEFAULT TCP_FMK() TCP_FMKS() TCP_<REG>_<FIELD>_OF() TCP_<REG>_<FIELD>_<SYM> Description/Purpose Register default value Register make Register value of ... Field default value Field make Field make symbolically Field value of ... Field symbolic value See page ... 28-21 28-23 28-22 28-24 28-14 28-15 28-24 28-24
TCP Module
21-7
TCP_BaseParams
Description
This is the TCP base parameters structure used to set up the TCP programmable parameters. You create the object and pass it to the TCP_genParams() function which returns the TCP_Params structure.
TCP_BaseParams tcpBaseParam0 = { TCP_STANDARD_3GPP, /* Decoder Standard */ TCP_RATE_1_3, /* Rate */ 40, /*Frame Length (FL: 40 to 20730)*/ 24, /*Prolog Size (P: 24 to 48) */ 8, /*Max of Iterations (MAXITSA mode only)*/ 0, /*SNR Threshold (SNR SA mode only) */ 1, /*Interleaver Write Flag */ 1 /*Output Parameters Read Flag */ }; TCP_genParams(&tcpBaseParam0, &tcpParam0);
Example
21-8
TCP_ConfigIc TCP_ConfigIc
Structure
Members
Description
This is the TCP input configuration structure that holds all of the configuration values that are to be transferred to the TCP via the EDMA. Though using the EDMA is highly recommended, the values can be written to the TCP using the CPU with the TCP_icConfig() function.
extern TCP_Params *params; extern TCP_UserData *xabData; TCP_ConfigIc *config; ... TCP_genIc(params, xabData, config); ... TCP Module 21-9
Example
TCP_Params TCP_Params
Structure
21-10
TCP_Params
Members standard The 3G standard used: 3GPP or IS2000 The available constants are: - TCP_STANDARD_3GPP - TCP_STANDARD_IS2000 The processing mode: Shared or Standalone The available constants are: - TCP_MODE_SA - TCP_MODE_SP The map mode constants are: - TCP_MAP_MAP1A - TCP_MAP_MAP1B - TCP_MAP_MAP2 The rate: 1/2, 1/3,1/4 The rate constants are: - TCP_RATE_1_2 - TCP_RATE_1_3 - TCP_RATE_1_4 Interleaver write flag Output parameters flag Number of symbols in the frame to be decoded The number of symbols in a sub-frame Reliability length Reliability length of the last sub-frame Prolog Size Number of sub-blocks Number of sub-blocks in the last sub-frame Maximum number of iterations Signal to noise ratio threshold Number of interleaver words per event Number of systematics and parities words per event Number of apriori words per event Number of extrinsics per event Number of hard decisions words per event
TCP Module 21-11
mode
map
rate
intFlag outParmFlag frameLen subFrameLen relLen relLenLast prologSize numSubBlock numSubBlockLast maxIter snr numInter numSysPar numApriori numExt numHd
TCP_Params
Description This is the TCP parameters structure that holds all of the information concerning the user channel. These values are used to generate the appropriate input configuration values for the TCP and to program the EDMA.
extern TCP_Params *params; extern TCP_UserData *xabData; TCP_ConfigIc *config; ... TCP_genIc(params, xabData, config); ...
Example
21-12
TCP_calcSubBlocksSA
21.4 Functions
TCP_calcSubBlocksSA Function Arguments Return Value Description Example TCP_calcSubBlocksSP Function Arguments Return Value Description
Configuration parameters
Divides the data frames into sub-frames and sub-blocks for shared processing mode. The number of subframes into which the data frame was divided is returned.
Uint32 numSubFrames; NumSubFrames = TCP_calcSubBlocksSP(configParms);
Example
Configuration parameters
Example
TCP_calculateHd
Return Value Description Example none This function calculates all of the count values required to transfer all data to/from the TCP using the EDMA. This function is for shared processing mode.
TCP_calcCountsSP(configParms);
TCP_calculateHd
Function
Arguments
Extrinsics data following MAP1 decode Apriori data following MAP2 decode Input channel data Hard decisions Number of extrinsics Channel rate
TCP_ceil
Function Arguments Return Value Description
Ceiling function
Uint32 TCP_ceil(Uint32 val, Uint32 pwr2); val pwr2 ceilVal Value to be augmented The power of two by which val must be divisible The smallest number which when multiplied by 2^pwr2 is greater than val.
This function calculates the ceiling for a given value and a power of 2. The arguments follow the formula: ceilVal * 2^pwr2 = ceiling(val, pwr2).
21-14
TCP_deinterleaveExt Example
TCP_deinterleaveExt De-interleave extrinsics data Function Void TCP_deinterleaveExt( TCP_ExtrinsicData *restrict aprioriMap1, const TCP_ExtrinsicData *restrict extrinsicsMap2, const Uint16 *restrict interleaverTable, Uint32 numExt); aprioriMap1 extrinsicsMap2 interleaverTable numExt Return Value Description Example none This function de-interleaves the MAP2 extrinsics data to generate apriori data for the MAP1 decode. This function is for use in performing shared processing.
<...MAP 2 decode...> TCP_deinterleaveExt(aprioriMap2, extrinsicsMap1, interleaverTable, numExt); <...MAP 1 decode...>
Arguments
Apriori data for MAP1 decode Extrinsics data following MAP2 decode Interleaver data table Number of Extrinsics
TCP_demuxInput
Function
Arguments
TCP_END_NATIVE
Return Value Description none This function splits the input data into two working sets. One set contains the non-interleaved input data and is used with the MAP 1 decoding. The other contains the interleaved input data and is used with the MAP2 decoding. This function is used in shared processing mode.
TCP_demuxInput(rate, frameLen, input, interleaver, nonInterleaved, interleaved);
Example
TCP_errTest
Function Arguments Return Value Description Example
21-16
TCP_FLEN_MAX TCP_FLEN_MAX
Constant Description
TCP_genIc
Function
Arguments
Pointer to Channel parameters structure Pointer to tail values at the end of the channel data Pointer to Input Configuration structure
TCP_genParams
Function
number of sub-blocks Copies the basic parameters under the output TCP_Params parameters structure and returns the number of sub-blocks.
TCP Module 21-17
TCP_getAccessErr
Example
Uint32 numSubblk; TCP_Params tcpParam0; TCP_ConfigIc *config; numSubblk = TCP_genParams(&tcpBaseParam0, &tcpParam0);
Returns the ACC bit value indicating whether an invalid access has been made to the TCP during operation.
/* check whether an invalid access has been made */ if (TCP_getAccessErr()){ ... } /* end if */
TCP_getAprioriEndian Returns Apriori data endian configuration Function Arguments Return Value Description Uint32 TCP_getAprioriEndian(); none Endian Endian setting for apriori data
Returns the value programmed into the TCP_END register for the apriori data indicating whether the data is in its native 8-bit format (1) or consists of values packed in little endian format into 32-bit words (0). This should always be 0 for little endian operation. See also TCP_aprioriEndianSet, TCP_nativeEndianSet, TCP_packed32EndianSet, TCP_extEndianGet, TCP_interEndianGet, TCP_sysParEndianGet, TCP_extEndianSet, TCP_interEndianSet, TCP_sysParEndianSet.
Example
21-18
Returns the value programmed into the TCP_END register for the extrinsics data indicating whether the data is in its native 8-bit format (1) or consists of values packed in little endian format into 32-bit words (0). This should always be 0 for little endian operation. See also TCP_setExtEndian, TCP_setNativeEndian, TCP_setPacked32Endian, TCP_getAprioriEndian, TCP_getInterEndian, TCP_getSysParEndian, TCP_setAprioriEndian, TCP_setInterEndian, TCP_setSysParEndian.
Example
TCP_getFrameLenErr Returns the frame length error status Function Arguments Return Value Description Example Uint32 TCP_getFrameLenErr(); none Error flag Boolean indication of frame length error
Returns a Boolean value indicating whether an invalid frame length has been programmed in the TCP during operation.
/* check whether an invalid access has been made */ if (TCP_getFrameLenErr()){ ... } /* end if */
TCP_getIcConfig
Function Arguments
TCP_getInterEndian
Return Value Description Example none Reads the input configuration values currently programmed into the TCP.
TCP_ConfigIc *config; ... TCP_getIcConfig(config); ...
Returns the value programmed into the TCP_END register for the interleaver table data indicating whether the data is in its native 8-bit format (1) or consists of values packed in little endian format into 32-bit words (0). This should always be 0 for little endian operation. See also TCP_setExtEndian, TCP_setNativeEndian, TCP_setPacked32Endian, TCP_getAprioriEndian, TCP_getExtEndian, TCP_getSysParEndian, TCP_setAprioriEndian, TCP_setInterEndian, TCP_setSysParEndian.
Example
TCP_getInterleaveErr Returns the interleaver table error status Function Arguments Return Value Description Uint32 TCP_getInterleaveErr(); none Error flag value of interleaver table error bit
Returns an INTER value bit indicating whether the TCP was incorrectly programmed to receive an interleaver table. An interleaver table can only be sent when operating in standalone mode. This bit indicates if an interleaver table was sent when in shared processing mode.
21-20
TCP_getLastRelLenErr Example
/* check whether the TCP was programmed to receive an interleaver table when in shared processing mode. */ if (TCP_getInterleaveErr()){ ... } /* end if */
Returns the LR bit value indicating whether the TCP was programmed with a bad reliability length for the last subframe. The reliability length must be greater than or equal to 40 to be valid.
/* check whether the TCP was programmed with a bad reliability length for the last frame. */ if (TCP_getLastRelLenErr()){ ... } /* end if */
Example
TCP_getModeErr
Function Arguments Return Value Description Example
Returns the MODE bit value indicating whether an invalid MAP mode was programmed into the TCP. Only values of 4, 5, and 7 are valid.
/* check whether the TCP was programmed using an invalid mode. */ if (TCP_getModeErr()){ ... } /* end if */ TCP Module 21-21
TCP_getNumIt TCP_getNumIt
Function Arguments Return Value Description
Returns the number of iterations executed by the TCP in standalone processing mode. This function reads the output parameters register. Alternatively, the EDMA can be used to transfer the output parameters following the hard decisions (recommended).
numIter = TCP_getNumit();
Example
TCP_getOutParmErr Returns the output parameter Function Arguments Return Value Description Uint32 TCP_getOutParmErr(); none Error flag value of output parameters error
Returns the OP bit value indicating whether the TCP was programmed to transfer output parameters in shared processing mode. The output parameters are only valid when operating in standalone mode.
/* check whether the TCP was programmed to provide output parameters when in Shared Processing mode. */ if (TCP_getOutParmErr()){ ... } /* end if */
Example
Returns the P bit value indicating whether an invalid prolog length has been programmed into the TCP.
/* check whether an invalid prolog length has been programmed. */ if (TCP_getProlLenErr()){ ... } /* end if */
21-22
TCP_getRateErr TCP_getRateErr
Function Arguments Return Value Description Example
Returns the RATE bit value indicating whether an invalid rate has been programmed into the TCP.
/* check whether an invalid rate has been programmed */ if (TCP_getRateErr()){ ... } /* end if */
TCP_getRelLenErr Returns the error status for and invalid reliability length
Function Arguments Return Value Description Example Uint32 TCP_getRelLenErr(); none Error flag Value of reliability length error
Returns the R bit value indicating whether an invalid reliability length has been programmed into the TCP.
/* check whether an invalid reliability length has been programmed. */ if (TCP_getRelLenErrG()){ ... } /* end if */
TCP_getSubFrameErr Returns sub-frame error flag Function Arguments Return Value Description Example Uint32 TCP_getSubFrameErr(); none Error flag Boolean indication of sub-frame error
Returns a Boolean value indicating whether the sub-frame length programmed into the TCP is invalid.
/* check whether an invalid sub-frame length has been programmed. */ if (TCP_getSubFrameErr()){ ... } /* end if */ TCP Module 21-23
TCP_getSysParEndian
TCP_getSysParEndian Returns Systematics and Parities data endian configuration Function Arguments Return Value Description Uint32 TCP_getSysParEndian(); none Endian Endian setting for systematics and parities data
Returns the value programmed into the TCP_END register for the systematics and parities data, indicating whether the data is in its native 8-bit format (1) or consists of values packed in little endian format into 32-bit words (0). This should always be 0 for little endian operation. See also TCP_setSysParEndian, TCP_setNativeEndian, TCP_setPacked32Endian.
Example
TCP_icConfig
Function Arguments Return Value Description
Example
21-24
TCP_icConfigArgs TCP_icConfigArgs Stores the IC values into the TCP using arguments
Function Void TCP_icConfigArgs( Uint32 ic0, Uint32 ic1, Uint32 ic2, Uint32 ic3, Uint32 ic4, Uint32 ic5, Uint32 ic6, Uint32 ic7, Uint32 ic8, Uint32 ic9, Uint32 ic10, Uint32 ic11 ) ic0 ic1 ic2 ic3 ic4 ic5 ic6 ic7 ic8 ic9 ic10 ic11 none Stores the input configuration values currently programmed into the TCP. This is not the recommended means by which to program the TCP, as it is more efficient to transfer the IC values using the EDMA, but can be used in test code. Input Configuration word 0 value Input Configuration word 1 value Input Configuration word 2 value Input Configuration word 3 value Input Configuration word 4 value Input Configuration word 5 value Input Configuration word 6 value Input Configuration word 7 value Input Configuration word 8 value Input Configuration word 9 value Input Configuration word 10 value Input Configuration word 11 value
Arguments
TCP Module
21-25
TCP_interleaveExt
Example
TCP_icConfigArgs( 0x00283200 0x00270000 0x00080118 0x001E0014 0x00000000 0x00000002 0x00E3E6F2 0x00E40512 0x00000000 0x00F5FA1E 0x00F00912 0x00000000 );
/* /* /* /* /* /* /* /* /* /* /* /*
IC0 IC1 IC2 IC3 IC4 IC5 IC6 IC7 IC8 IC9 IC10 IC11
*/ */ */ */ */ */ */ */ */ */ */ */
Arguments
Apriori data for MAP2 decode Extrinsics data following MAP1 decode Interleaver data table Number of Extrinsics
21-26
TCP_makeTailArgs
TCP_makeTailArgs Function
Arguments
Byte to be placed in bits 3124 of the 32-bit value Byte to be placed in bits 2316 of the 32-bit value Byte to be placed in bits 158 of the 32-bit value Byte to be placed in bits 70 of the 32-bit value
TCP_MAP_MAP1B Value indicating a MAP1 decoding (any iteration after the first)
Constant Description TCP_MAP_MAP1B This constant allows selection of the Map 1decoding mode used when operating in shared processing mode on any but the first iteration through the data. The first iteration through the Map 1 decoding is unique in that no apriori data is set to the TCP.
TCP_MAP_MAP2
Constant Description
TCP_MODE_SA TCP_MODE_SA
Constant Description
TCP_MODE_SP
Constant Description
TCP_normalCeil
Function Arguments Return Value Description Example
Returns the smallest number greater than or equal to val1 that is divisible by val2.
winSize = TCP_normalCeil(winSize, numSlidingWindow);
TCP_pause
Function Arguments Return Value Description Example
TCP_RATE_1_2
Constant Description
21-28
TCP_RATE_1_3 TCP_RATE_1_3
Constant Description
TCP_RATE_1_4
Constant Description
TCP_RLEN_MAX
Constant Description
Void TCP_setAprioriEndian(Uint32 endianMode); Endian none This function programs TCP to view the format of the apriori data as either native 8-bit format (1) or values packed into 32-bit words in little endian format (0). This should always be 0 for little endian operation. See also TCP_getAprioriEndian, TCP_setNativeEndian, TCP_setPacked32Endian, TCP_getExtEndian, TCP_getInterEndian, TCP_getSysParEndian, TCP_setExtEndian, TCP_setInterEndian, TCP_setSysParEndian. Endian setting for apriori data
Example
none This function programs TCP to view the format of the interleaver table data as either native 8-bit format (1) or values packed into 32-bit words in little endian format (0). This should always be 0 for little endian operation. See also TCP_getInterEndian, TCP_setNativeEndian, TCP_setPacked32Endian, TCP_getAprioriEndian, TCP_getExtEndian, TCP_getSysParEndian, TCP_setAprioriEndian, TCP_setExtEndian, TCP_setSysParEndian.
Example
21-30
TCP_setInterEndian(TCP_END_PACKED32);
TCP_setNativeEndian
TCP_setNativeEndian Sets all data formats to be native (not packed) Function Arguments Return Value Description void TCP_setNativeEndian(); none none This function programs the TCP to view the format of all data as native 8-/16-bit format. This should only be used when running in big endian mode. See also TCP_setExtEndian, TCP_setPacked32Endian, TCP_getAprioriEndian, TCP_getExtEndian, TCP_getSysParEndian, TCP_setAprioriEndian, TCP_setInterEndian, TCP_setSysParEndian. Example
TCP_setNativeEndian();
TCP_setPacked32Endian Sets all data formats to packed data Function Arguments Return Value Description void TCP_setPacked32Endian(); none none This function programs the TCP to view the format of all data as packed data in 32-bit words. This should always be used when running in little endian mode and should be used in big endian mode only if the CPU is formatting the data. See also TCP_setNativeEndian, TCP_setExtEndian, TCP_getAprioriEndian, TCP_getExtEndian, TCP_getSysParEndian, TCP_setAprioriEndian, TCP_setInterEndian, TCP_setSysParEndian. Example
TCP_setPacked32Endian();
TCP_setParams
Function
Arguments
TCP_setSysParEndian
none This function generates the input control values IC0IC5 based on the user channel parameters contained in the configParms structure.
extern TCP_Params *configParms; TCP_ConfigIc *configIC; ... TCP_setParams(configParms, configIc);
Example
TCP_setSysParEndian(TCP_END_PACKED32);
TCP_STANDARD_3GPP Value indicating the 3GPP standard Constant Description TCP_STANDARD_3GPP This constant allows selection of the 3GPP standard.
TCP_start TCP_start
Function Arguments Return Value Description Example
TCP_statError
Function Arguments Return Value Description Example
Returns the ERR bit value indicating whether any TCP error has occurred.
/* check whether an error has occurred */ if (TCP_statError()){ ... } /* end if */
TCP_statPause
Function Arguments Return Value Description Example
TCP_statRun TCP_statRun
Function Arguments Return Value Description Example
Returns the WAP bit status indicating whether the TCP is waiting to receive apriori data.
/* check if TCP is waiting on apriori data */ if (TCP_statWaitApriori()){ ... } /* end if */
TCP_statWaitExt
Function Arguments Return Value Description Example
Returns the REXT bit status indicating whether the TCP is waiting for extrinsic data to be read.
/* check if TCP has extrinsic data pending */ if (TCP_statWaitExt()){ ... } /* end if */
21-34
TCP_statWaitHardDec
Returns the RHD bit status indicating whether the TCP is waiting for the hard decisions data to be read.
/* check if TCP has hard decisions data pending*/ if (TCP_statWaitHardDec()){ ... } /* end if */
TCP_statWaitIc
Function Arguments Return Value Description Example
Returns the WIC bit status indicating whether the TCP is waiting to receive new IC values.
/* check if TCP is waiting on new IC values */ if (TCP_statWaitIc()){ ... } /* end if */
Returns the WINT status indicating whether the TCP is waiting to receive interleaver table data.
/* check if TCP is waiting on interleaver data */ if (TCP_statWaitInter()){ ... } /* end if */ TCP Module 21-35
TCP_statWaitOutParm
Returns the ROP bit status indicating whether the TCP is waiting for the output parameters to be read.
/* check if TCP has output parameters data pending */ if (TCP_statWaitOutParm()){ ... } /* end if */
Returns the WSP bit status indicating whether the TCP is waiting to receive systematic and parity data.
/* check if TCP is waiting on systematic and parity data */ if (TCP_statWaitSysPar()){ ... } /* end if */
21-36
TCP_tailConfig TCP_tailConfig
Function
Arguments
Example
extern TCP_Params *configParms; extern TCP_UserData *userData; TCP_ConfigIc *configIC; TCP_Standard standard = configParms>standard; TCP_Mode mode = configParms>mode; TCP_Map map = configParms>map; TCP_Rate rate = configParms>rate; Uint16 index = configParms>frameLen * rate; TCP_UserData *xabData = &userData[index]; ... TCP_setParams(standard, mode, map, rate, xabData, configIc);
TCP Module
21-37
TCP_tailConfig3GPP
TCP_tailConfig3GPP Function
Arguments
Example
extern TCP_Params *configParms; extern TCP_UserData *userData; TCP_ConfigIc *configIC; TCP_Mode mode = configParms>mode; TCP_Map map = configParms>map; Uint16 index = configParms>frameLen * rate; TCP_UserData *xabData = &userData[index]; ... TCP_setParams(mode, map, xabData, configIc);
21-38
TCP_tailConfigIS2000
TCP_tailConfigIS2000 Generates IC6IC11 tail values for IS2000 channels Function Void TCP_tailConfigIS2000( TCP_Mode mode, TCP_Map map, TCP_Rate rate, TCP_UserData *xabData, TCP_ConfigIc *configIc ); Mode Map Rate XabData configIc Return Value Description none This function generates the input control values IC6 IC11 for IS2000 channels. These values consist of the tail data following the systematic and parity data. This function is called from the generic TCP_tailConfig function. See also: TCP_tailConfig and TCP_tailConfig3GPP. Example
extern TCP_Params *configParms; extern TCP_UserData *userData; TCP_ConfigIc *configIC; TCP_Mode mode = configParms>mode; TCP_Map map = configParms>map; TCP_Rate rate = configParms>rate; Uint16 index = configParms>frameLen rate;TCP_UserData *xabData = &userData[index]; ... TCP_setParams(standard, mode, map, rate, xabData, configIc);
Arguments
Processing mode Map mode for shared processing Rate Pointer to the tail data Pointer to the IC values structure
TCP Module
21-39
TCP_unpause TCP_unpause
Function Arguments Return Value Description Example
21-40
Chapter 22
TIMER Module
This chapter describes the TIMER module, lists the API functions and macros within the module, discusses how to use a TIMER device, and provides a TIMER API reference section.
Topic
Page
22.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-2 22.2 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-4 22.3 Configuration Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-6 22.4 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-7
22-1
Overview
22.1 Overview
The TIMER module has a simple API for configuring the timer registers. Table 221 lists the configuration structure for use with the TIMER functions. Table 222 lists the functions and constants available in the CSL TIMER module.
(b) Auxiliary Functions and Constants Syntax TIMER_DEVICE_CNT TIMER_getConfig TIMER_getCount TIMER_getDatIn TIMER_getEventId TIMER_getPeriod
Note: F = Function; C = Constant
Type Description C F F F F F A compile time constant; number of timer devices present Reads the current Timer configuration values Returns the current timer count value Reads the value of the TINP pin Obtains the event ID for the timer device Returns the period of the timer device
22-2
Overview
Type Description F F F F F C Reads the timer status; value of timer output Resets all timer devices Sets the count value of the timer Sets the data output value Sets the timer period A compile time constant whose value is 1 if the device supports the TIMER module
F = Function; C = Constant
TIMER Module
22-3
Macros
22.2 Macros
There are two types of TIMER macros: those that access registers and fields, and those that construct register and field values. Table 223 lists the TIMER macros that access registers and fields, and Table 224 lists the TIMER macros that construct register and field values. The macros themselves are found in Chapter 28, Using the HAL Macros. The TIMER module includes handle-based macros.
22-4
Macros
Table 224. TIMER Macros that Construct Register and Field Values
Macro TIMER_<REG>_DEFAULT TIMER_<REG>_RMK() TIMER_<REG>_OF() TIMER_<REG>_<FIELD>_DEFAULT TIMER_FMK() TIMER_FMKS() TIMER_<REG>_<FIELD>_OF() TIMER_<REG>_<FIELD>_<SYM> Description/Purpose Register default value Register make Register value of ... Field default value Field make Field make symbolically Field value of ... Field symbolic value See page ... 28-21 28-23 28-22 28-24 28-14 28-15 28-24 28-24
TIMER Module
22-5
TIMER_Config
TIMER_Config
Structure Members
Description
Example
22-6
TIMER_close
22.4 Functions
22.4.1 Primary Functions TIMER_close
Function
Example
TIMER_close(hTimer);
TIMER_config
Function
Example
Arguments
Device handle. See TIMER_open(). Control register value Period register value Count register value
22-8
TIMER_open TIMER_open
Function
Arguments
Device Handle Device handle Before a TIMER device can be used, it must first be opened by this function. Once opened, it cannot be opened again until closed. See TIMER_close().The return value is a unique device handle that is used in subsequent TIMER API calls. If the open fails, INV is returned. If the TIMER_OPEN_RESET is specified, the timer device registers are set to their power-on defaults and any associated interrupts are disabled and cleared.
Example
TIMER_pause
Function
Pauses timer
void TIMER_pause( TIMER_Handle hTimer ); hTimer none This function pauses the timer. May be restarted using TIMER_resume().
TIMER_pause(hTimer); TIMER_resume(hTimer); TIMER Module 22-9
TIMER_reset TIMER_reset
Function
TIMER_resume
Function
TIMER_start
Function
TIMER_DEVICE_CNT
TIMER_DEVICE_CNT Compile time constant Constant Description TIMER_DEVICE_CNT Compile-time constant; number of timer devices present.
TIMER_getConfig
Function
Arguments
TIMER_getCount
Function
Count Value This function returns the current timer count value.
cnt = TIMER_getCount(hTimer);
TIMER Module
22-11
TIMER_getDatIn TIMER_getDatIn
Function
Use this function to obtain the event ID for the timer device.
TimerEventId = TIMER_getEventId(hTimer); IRQ_enable(TimerEventId);
TIMER_getPeriod
Function
TIMER_getTstat TIMER_getTstat
Function
This function reads the timer status; value of timer output. status = TIMER_getTstat(hTimer);
TIMER_resetAll
Function Arguments Return Value Description
Example
TIMER_setCount
Function
Arguments
none This function sets the count value of the timer. The timer is not paused during the update.
TIMER_setCount(hTimer,0x00000000); TIMER Module 22-13
TIMER_setDatOut TIMER_setDatOut
Function
TIMER_setPeriod
Function
22-14
Chapter 23
UTOPIA Module
This chapter describes the UTOPIA module, lists the API functions and macros within the module, discusses how to set the UTOPIA interface, and provides a UTOP API reference section.
Topic
Page
23.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-2 23.2 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-4 23.3 Configuration Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-6 23.4 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-7
23-1
Overview
23.1 Overview
For TMS320C64x devices, the UTOPIA consists of a transmit interface and a receive interface. Both interfaces are configurable via the configuration registers. The properties and functionalities of each interface can be set and controlled by using the CSL APIs dedicated to the UTOPIA interface. Table 231 lists the configuration structure for use with the UTOP functions. Table 232 lists the functions and constants available in the CSL UTOPIA module.
23-2
Overview
Type Description F F F F F F F C F Returns the Slave Transmit Queue Address. Clears the relevant interrupt pending queue bit of the UTOPIA queue interfaces. Disables the relevant interrupt queue bit of the UTOPIA queue interfaces. Enables the relevant interrupt queue event of the UTOPIA queue interfaces. Clears and disables the interrupt queue event of the UTOPIA queue interfaces. Tests a queue event interrupt Reads from the slave receive queue A compile time constant whose value is 1 if the device supports the UTOPIA module Writes into the slave transmit queue
See page ... 23-12 23-12 23-12 23-13 23-13 23-14 23-14 23-14 23-15
UTOPIA Module
23-3
Macros
23.2 Macros
There are two types of UTOP macros: those that access registers and fields, and those that construct register and field values. Table 233 lists the UTOP macros that access registers and fields, and Table 234 lists the UTOP macros that construct register and field values. The macros themselves are found in Chapter 28, Using the HAL Macros. The UTOPIA module includes handle-based macros.
23-4
Macros
Table 234. UTOP Macros that Construct Register and Field Values
Macro UTOP_<REG>_DEFAULT UTOP_<REG>_RMK() UTOP_<REG>_OF() UTOP_<REG>_<FIELD>_DEFAULT UTOP_FMK() UTOP_FMKS() UTOP_<REG>_<FIELD>_OF() UTOP_<REG>_<FIELD>_<SYM> Description/Purpose Register default value Register make Register value of ... Field default value Field make Field make symbolically Field value of ... Field symbolic value See page ... 28-21 28-23 28-22 28-24 28-14 28-15 28-24 28-24
UTOPIA Module
23-5
UTOP_Config
UTOP_Config
Structure Members
Description
This is the UTOP configuration structure used to set up the UTOPIA registers. You create and initialize this structure then pass its address to the UTOP_config() function. You can use literal values or the _RMK macros to create the structure register value.
UTOP_Config MyConfig = { 0x00010001, /* ucr */ 0x00FF00FF, /* cdr */ }; UTOP_config(MyConfig);
Example
23-6
UTOP_config
23.4 Functions
UTOP_config
Function
Example
UTOP_configArgs
Function
Arguments
none Sets up the UTOP mode using the register value passed in. The register value is written to the associated registers. See also UTOP_config(). You may use literal values for the arguments or for readability. You may use the _RMK macros to create the register values based on field values.
Example
UTOP_enableRcv UTOP_enableRcv
Function Arguments Return Value Description Example
UTOP_enableXmt
Function Arguments Return Value Description Example
UTOP_errClear
Function
Arguments
23-8
UTOP_errDisable
Return Value Description Example none This function clears the bit of given error condition ID of EIPR.
/* Clears bit error condition*/ UTOP_errClear(UTOP_ERR_RCF);
UTOP_errDisable
Function
Arguments
UTOP_errEnable
Function
Arguments
Return Value
none
UTOPIA Module 23-9
UTOP_errReset
Description Example This function enables the error interrupt event.
/* Enables error condition interrupt */ UTOP_errEnable(UTOP_ERR_RCF);
UTOP_errReset
Function
Arguments
none This function resets the error interrupt event by disabling and clearing the error interrupt bit associated to the error condition.
/* Resets error condition interrupt */ UTOP_errReset(UTOP_ERR_RCF);
UTOP_errTest
Function
Arguments
val
This function tests the error interrupt event by returning the bit status.
UTOP_getConfig
Example
/* Enables error condition interrupt */ Uint32 errDetect; UTOP_errEnable(UTOP_ERR_RCF); errDetect = UTOP_errTest(UTOP_ERR_RCF)
UTOP_getConfig
Function
This function returns the event ID associated to the UTOPIA CPU-interrupt. See also IRQ_EVT_NNNN (IRQ Chapter 13)
Uint32 UtopEventId; UtopEventId = UTOP_getEventId();
UTOP_getXmtAddr
Description Example
This function returns the address of the Receiver Queue. This address is needed when you read from the Receiver Port.
Uint32 UtopRcvAddr; UtopRcvAddr = UTOP_getRcvAddr();
This function returns the address of the Transmit Queue. This address is needed when you write to the Transmit Port.
Uint32 UtopXmtAddr; UtopXmtAddr = UTOP_getXmtAddr();
UTOP_intClear
Function
Arguments
none Clears the associated bit to the interrupt ID of the utopia interrupt pending register (UIPR).
/* Clears the flag of the receive event */ UTOP_intClear(UTOP_INT_RQ);
UTOP_intDisable
Function
Arguments
23-12
UTOP_intEnable
Return Value Description Example none Disables the interrupt bit to the CPU. No interrupts are sent if the corresponding event occurs.
/* Disables the interrupt of the receive event */ UTOP_intDisable(UTOP_INT_RQ);
UTOP_intEnable
Function
Arguments
none Enables the interrupt to the CPU by setting the bit to 1. The interrupt event is sent to the CPU selector. The CPU interrupt is generated only if the relevant bit is set under UIER register.
/* Enables the interrupt of the receive event */ UTOP_intEnable(UTOP_INT_RQ); IRQ_enable(IRQ_EVT_UINT);
Example
UTOP_intReset
Function
Arguments
none Resets the interrupt to the CPU by disabling the interrupt bit uner UIER and clearing the pending bit of UIPR.
/* Resets the interrupt of the receive event */ UTOP_intReset(UTOP_INT_RQ); UTOPIA Module 23-13
UTOP_intTest UTOP_intTest
Function
Arguments
val
Tests the interrupt to the CPU has occurred by reading the corresponding flag of UIPR register.
Uint32 UtopEvent; /* Tests the interrupt of the receive event */ UtopEvent = UTOP_intTest(UTOP_INT_RQ);
UTOP_read
Function Arguments Return Value Description Example
UTOP_SUPPORT
Constant Description
Compile-time constant
UTOP_SUPPORT Compile-time constant that has a value of 1 if the device supports the UTOP module and 0 otherwise. You are not required to use this constant. Note: The UTOP module is not supported on devices that do not have the UTOP peripheral.
Example
23-14
UTOP_write UTOP_write
Function
UTOPIA Module
23-15
Chapter 24
VCP Module
This chapter describes the VCP module, lists the API functions and macros within the module, discusses how to use the VCP, and provides a VCP API reference section.
Topic
Page
24.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-2 24.2 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-5 24.3 Configuration Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-7 24.4 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-11
24-1
Overview
24.1 Overview
The Viterbi co-processor is supported only on TMS320C6416. The VCP should be serviced using the EDMA for most accesses, but the CPU must first configure the VCP control values. There are also a number of functions available to the CPU to monitor the VCP status and access decision and output parameter data. Table 241 lists the configuration structures for use with the VCP functions. Table 242 lists the functions and constants available in the CSL VCP module.
VCP_genParams VCP_getBmEndian
Note: F = Function; C = Constant
F F
24-13 24-14
24-2
Overview
Type Description F F F F F F F F F F F C C C F F F F F F F F Returns the IC values already programmed into the VCP Returns the final maximum state metric Returns the final minimum state metric Returns the number of symbols in the input FIFO Returns the number of symbols in the output FIFO Returns the soft decisions data configuration Returns the Yamamoto bit result Stores the IC values into the VCP Stores the IC values into the VCP using arguments Normalized ceiling function Pauses the VCP Value indicating a rate of 1/2 Value indicating a rate of 1/3 Value indicating a rate of 1/4 Resets the VCP Sets the branch metrics data endian configuration Sets all data formats to be native (not packed data) Sets all data formats to be packed data Sets the soft decisions data configuration Starts the VCP Returns the error status Returns the input FIFO status
See page ... 24-14 24-15 24-15 24-15 24-16 24-16 24-16 24-17 24-18 24-18 24-19 24-19 24-19 24-19 24-19 24-20 24-20 24-21 24-21 24-21 24-22 24-22
VCP Module
24-3
Overview
Type Description F F F F F F C C C F Returns the output FIFO status Returns the pause status Returns the run status Returns the Number of Symbols processed status bit Returns the input control status Stops the VCP Value indicating convergent traceback mode Value indicating mixed traceback mode Value indicating tailed traceback mode Unpauses the VCP
See page ... 24-22 24-23 24-23 24-23 24-24 24-24 24-24 24-24 24-25 24-25
Macros
24.2 Macros
There are two types of VCP macros: those that access registers and fields, and those that construct register and field values. These are not required as all VCP configuring and monitoring can be done through the provided functions. These VCP functions make use of a number of macros. Table 243 lists the VCP macros that access registers and fields, and Table 244 lists the VCP macros that construct register and field values. The macros themselves are found in Chapter 28, Using the HAL Macros. The VCP module includes handle-based macros.
VCP Module
24-5
Macros
Table 244. VCP Macros that Construct Register and Field Values
Macro VCP_<REG>_DEFAULT VCP_<REG>_RMK() VCP_<REG>_OF() VCP_<REG>_<FIELD>_DEFAULT VCP_FMK() VCP_FMKS() VCP_<REG>_<FIELD>_OF() VCP_<REG>_<FIELD>_<SYM> Description/Purpose Register default value Register make Register value of ... Field default value Field make Field make symbolically Field value of ... Field symbolic value See page ... 28-21 28-23 28-22 28-24 28-14 28-15 28-24 28-24
24-6
VCP_BaseParams
Description
This is the VCP base parameters structure used to set up the VCP programmable parameters. You create the object and pass it to the VCP_genParams() function which returns the VCP_Params structure. See the VCP_genParams() function.
VCP_BaseParams vcpBaseParam0 = { 3, /* Rate */ 9, /*Constraint Length (K=5,6,7,8, OR 9)*/ 81, /*Frame Length (FL) */ 0, /*Yamamoto Threshold (YAMT)*/ 0, /*Stat Index to set to IMAXS (IMAXI) */ 0, /*Output Hard Decision Type */ 0 /*Output Parameters Read Flag */ }; VCP_genParams(&vcpBaseParam0, &vcpParam0);
Example
VCP Module
24-7
VCP_ConfigIc VCP_ConfigIc
Structure
Members
Description
This is the VCP input configuration structure that holds all of the configuration values that are to be transferred to the VCP via the EDMA. Though using the EDMA is highly recommended, the values can be written to the VCP using the CPU with the VCP_icConfig() function.
extern VCP_Params *params; VCP_ConfigIc *config; ... VCP_genIc(params, config);
Example
24-8
VCP_Params VCP_Params
Structure
Members
constLen poly0 poly1 poly2 poly3 yamTh frameLen relLen convDist maxSm minSm stateNum
VCP_Params
Branch metrics buffer length in input FIFO Decisions buffer length in output FIFO Traceback mode The available constants are: - VCP_TRACEBACK_NONE - VCP_TRACEBACK_TAILED - VCP_TRACEBACK_MIXED - VCP_TRACEBACK_CONVERGENT readFlag Output parameters read flag decision Decision selection: hard or soft The following constants are available: - VCP_DECISION_HARD - VCP_DECISION_SOFT numBranchMetrics Number of branch metrics per event numDecisions Number of decisions words per event Description This is the VCP parameters structure that holds all of the information concerning the user channel. These values are used to generate the appropriate input configuration values for the VCP and to program the EDMA.
extern VCP_Params *params; VCP_ConfigIc *config; ... VCP_genIc(params, config); ...
Example
24-10
VCP_ceil
24.4 Functions
VCP_ceil
Function Arguments Return Value Description Example
Ceiling function
Uint32 VCP_ceil(Uint32 val, Uint32 pwr2); val pwr2 ceilVal Value to be augmented The power of two by which val must be divisible The smallest number which when multiplied by 2^pwr2 is greater than val.
This function calculates the ceiling for a given value and a power of 2. The arguments follow the formula: ceilVal * 2^pwr2 = ceiling(val, pwr2).
numSysPar = VCP_ceil((frameLen * rate), 4);
VCP Module
24-11
VCP_END_PACKED32
VCP_errTest
Function Arguments Return Value Description Example
This function returns an ERR bit indicating what VCP error has occurred.
/* check whether an error has occurred */ if (VCP_errTest()){ } /* end if */
VCP_genIc
Function
24-12
VCP_genParams VCP_genParams
Function
G0-G3 (POLY1-POLY3) Traceback (TB) Convergence Distance (CD) Reliability Length (R) Decision Buffer Length (SYMR +1) Branch Metric Buffer Length (SYMX +1) Max Initial Metric State (IMAXS) Min Initial Metric State (IMINS)
Example
VCP Module
24-13
This function returns the value programmed into the END register for the branch metrics data indicating whether the data is in its native 8-bit format (1) or consists of values packed in little endian format into 32-bit words (0). This should always be 0 for little endian operation. See also VCP_setBmEndian, VCP_setNativeEndian, VCP_setPacked32Endian, VCP_getSdEndian, VCP_setSdEndian.
Example
VCP_getIcConfig
Function Arguments Return Value Description Example
24-14
VCP_getMaxSm VCP_getMaxSm
Function Arguments Return Value Description
This function returns the final maximum state metric after the VCP has completed its decoding. See also VCP_getMinSm.
Example
VCP_getMinSm
Function Arguments Return Value Description
This function returns the final minimum state metric after the VCP has completed its decoding. See also VCP_getMaxSm.
Example
this function returns the number of symbols currently in the input FIFO.
numSym = VCP_getNumInFifo(); VCP Module 24-15
VCP_getNumOutFifo
VCP_getNumOutFifo Returns the number of symbols in the output FIFO Function Arguments Return Value Description Example Uint32 VCP_getNumOutFifo(); None count The number of symbols currently in the output FIFO
this function returns the number of symbols currently in the output FIFO.
numSym = VCP_getNumOutFifo();
This function returns the value programmed into the VCP_END register for the soft decision data indicating whether the data is in its native 16-bit format (1) or consists of values packed in little endian format into 32-bit words (0). This should always be 0 for little endian operation. See also VCP_setSdEndian, VCP_setNativeEndian, VCP_setPacked32Endian.
Example
VCP_getYamBit
Function Arguments Return Value Description Example
Returns the value of the Yamamoto bit after the VCP decoding.
Uint32 yamBit; YamBit = VCP_getYamBit();
24-16
VCP_icConfig VCP_icConfig
Function Arguments Return Value Description
Example
VCP Module
24-17
VCP_icConfigArgs VCP_icConfigArgs Stores the IC values into the VCP using arguments
Function void VCP_icConfigArgs( Uint32 ic0, Uint32 ic1, Uint32 ic2, Uint32 ic3, Uint32 ic4, Uint32 ic5 ) ic0 ic1 ic2 ic3 ic4 ic5 None This function stores the input configuration values currently programmed into the VCP. This is not the recommended means by which to program the VCP, as it is more efficient to transfer the IC values using the EDMA, but can be used in test code.
VCP_icConfigArgs( 0x00283200 0x00270000 0x00080118 0x001E0014 0x00000000 0x00000002 );
Arguments
Input Configuration word 0 value Input Configuration word 1 value Input Configuration word 2 value Input Configuration word 3 value Input Configuration word 4 value Input Configuration word 5 value
Example
/* /* /* /* /* /*
*/ */ */ */ */ */
VCP_normalCeil
Function Arguments Return Value Description Example
24-18
This function returns the smallest number greater than or equal to val1 that is divisible by val2.
winSize = VCP_normalCeil(winSize, numSlidingWindow);
VCP_pause VCP_pause
Function Arguments Return Value Description Example
VCP_RATE_1_2
Constant Description
VCP_RATE_1_3
Constant Description
VCP_RATE_1_4
Constant Description
VCP_reset
Function Arguments Return Value Description Example
Arguments
None This function programs the VCP to view the format of the branch metrics data as either native 8-bit format (1) or values packed into 32-bit words in little endian format (0). This should always be 0 for little endian operation. See also VCP_getBmEndian, VCP_setNativeEndian, VCP_setPacked32Endian.
Example
VCP_setBmEndian(VCP_END_PACKED32);
VCP_setNativeEndian Sets all data formats to native (not packed data) Function Arguments Return Value Description void VCP_setNativeEndian(); None None This function programs the VCP to view the format of all data as native 8-/16-bit format. This should only be used when running in big endian mode. See also VCP_setPacked32Endian, VCP_getBmEndian, VCP_getSdEndian, VCP_setBmEndian, VCP_setSdEndian. Example
VCP_setNativeEndian();
24-20
VCP_setPacked32Endian
VCP_setPacked32Endian Sets all data formats to packed data Function Arguments Return Value Description void VCP_setPacked32Endian(); None None This function programs the VCP to view the format of all data as packed data in 32-bit words. This should always be used when running in little endian mode and should be used in big endian mode only if the CPU is formatting the data. See also VCP_setNativeEndian, VCP_getBmEndian, VCP_getSdEndian, VCP_setBmEndian, VCP_setSdEndian. Example
VCP_setPacked32Endian();
Arguments
None This function programs the VCP to view the format of the soft decision data as either native 8-bit format (1) or values packed into 32-bit words in little endian format (0). This should always be 0 for little endian operation. See also VCP_getSdEndian, VCP_setNativeEndian, VCP_setPacked32Endian.
VCP_setSdEndian(VCP_END_PACKED32);
VCP_statError VCP_statError
Function Arguments Return Value Description Example
This function returns a Boolean value indicating whether any VCP error has occurred.
/* check whether an error has occurred */ if (VCP_statError()){ error = VCP_errTest(); } /* end if */
VCP_statInFifo
Function Arguments Return Value Description Example
This function returns the input FIFOs empty status flag. A 1 indicates that the input FIFO is empty and a 0 indicates it is not empty.
If (VCP_statInFifo()){ ... } /* end if */
VCP_statOutFifo
Function Arguments Return Value Description Example
This function returns the output FIFOs full status flag. A 1 indicates that the output FIFO is full and a 1 indicates it is not full.
If (VCP_statOutFifo()){ ... } /* end if */
24-22
VCP_statPause VCP_statPause
Function Arguments Return Value Description Example
This function returns the PAUSE bit status indicating whether the VCP is paused or not.
/* pause the VCP */ VCP_pause(); /* wait for pause to take place */ while (!VCP_statPause());
VCP_statRun
Function Arguments Return Value Description Example
This function returns the RUN bit status indicating whether the VCP is running.
/* start the VCP */ VCP_start(); /* check that the VCP is running */ while (!VCP_statRun());
VCP_statWaitIc VCP_statWaitIc
Function Arguments Return Value Description Example
This function returns the WIC bit status indicating whether the VCP is waiting to receive new IC values.
If (statWaitIc()){ ... } /* end if */
VCP_TRACEBACK_MIXED Value indicating mixed traceback mode Constant Description VCP_TRACEBACK_MIXED This constant allows selection of mixed traceback mode.
24-24
VCP_TRACEBACK_TAILED
VCP_unpause
Function Arguments Return Value Description
Example
VCP Module
24-25
Chapter 25
VIC Module
Describes the VIC module, lists the API functions and macros within the module, and provides a VIC reference section.
Topic
Page
25-1
Overview
25.1 Overview
The VCXO interpolated control (VIC) port provides single-bit interpolated VCXO control with resolution from 9 bits to up to 16 bits. The frequency of interpolation is dependent on the resolution needed. The VIC module is currently supported only on the DM642, DM641, and DM640 devices. Table 251 lists the functions and constants available in the CSL VIC module.
25-2
Overview
25.2 Macros
There are two types of VIC macros: those that access registers and fields, and those that construct register and field values. Table 252 lists the VIC macros that access registers and fields, and Table 253 lists the VIC macros that construct register and field values. The macros themselves are found in Chapter 28, Using the HAL Macros.
Table 253. VIC Macros That Construct Register and Field Values
Macro VIC_<REG>_DEFAULT VIC_<REG>_RMK() VIC_<REG>_OF() VIC_<REG>_<FIELD>_DEFAULT VIC_FMK() VIC_FMKS() VIC_<REG>_<FIELD>_OF() VIC_<REG>_<FIELD>_<SYM> Description/Purpose Register default value Register make Register value of ... Field default value Field make Field make symbolically Field value of ... Field symbolic value See page 28-21 28-23 28-22 28-24 28-14 28-15 28-24 28-24
VIC Module
25-3
VIC_getPrecision
25.3 Functions
VIC_getPrecision
Function Arguments Return Value Description Example
VIC_getGo
Function Arguments Return Value Description Example
25-4
VIC_getInputBits VIC_getInputBits
Function Arguments Return Value Description
Example
VIC Module
25-5
VIC_setPrecision VIC_setPrecision
Function Arguments Return Value Description
Example
VIC_setGo
Function Arguments Return Value Description
Example
VIC_setGo(VIC_VICCTL_GO_0);
25-6
VIC_setInputBits VIC_setInputBits
Function Arguments Return Value Description Example
VIC Module
25-7
Chapter 26
VP Module
This chapter describes the VP module, lists the API functions and macros within the module, and provides a VP reference section.
Topic
Page
26.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-2 26.2 Configuration Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-4 26.3 Functions and Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-9
26-1
Overview
26.1 Overview
The video port peripheral can operate as a video capture port, video display port, or transport stream interface (TSI) capture port. For more information about the peripheral, refer to the TMS320C64x DSP Video Port Reference Guide (SPRU629). Table 261 lists the configuration structures available in the CSL VP module. Table 262 lists the functions and constants available in the CSL VP module.
26-2
Overview
Syntax VP_configCaptureTSI VP_configDisplay VP_configGpio VP_configPort VP_getCbdstAddr VP_getCbsrcaAddr VP_getCbsrcbAddr# VP_getConfig VP_getCrdstAddr VP_getCrsrcaAddr VP_getCrsrcbAddr# VP_getEventId VP_getPins VP_getYdstaAddr VP_getYdstbAddr VP_getYsrcaAddr VP_getYsrcbAddr# VP_open VP_reset VP_resetAll VP_resetCaptureChA VP_resetCaptureChB# VP_resetDisplay VP_setPins # Defined only for DM642
Type Description F F F F F F F F F F F F F F F F F F F F F F F F Configures transfer stream interface (TSI) mode of video port Sets display characteristics for video port Enables pins to be used as GPIO pins Configures port characteristics of VP Gets the address of the Cb FIFO Destination Register Gets the address of the Cb FIFO Source Register A Gets the address of the Cb FIFO Source Register B Reads the VP configuration values Gets the address of the Cr FIFO Destination Register Gets the address of the Cr FIFO Source Register A Gets the address of the Cr FIFO Source Register B Gets event id specified in device handle Returns value of PDIN. This reflects the state of the video port pins. Gets the address of the Y FIFO Destination Register A Gets the address of the Y FIFO Destination Register B Gets the address of the Y FIFO Source Register A Gets the address of the Y FIFO Source Register B Opens VP device for use Resets the VP device Resets all video ports Resets the Capture Channel A and disables all its interrupts Resets the Capture Channel B and disables all its interrupts Resets the video display module and disables all its interrupts Writes value to PDSET
See page 26-12 26-12 26-13 26-13 26-14 26-14 26-14 26-15 26-15 26-16 26-16 26-17 26-17 26-18 26-18 26-19 26-19 26-20 26-20 26-21 26-21 26-21 26-22 26-22
VP Module
26-3
VP_Config
Description
This is the VP configuration structure used to configure Video Port(s). You create and initialize this structure and then pass its address to the VP_config function.
26-4
VP_ConfigCaptureChA
Description This structure is used to configure the Video Port Capture Mode. This is used as a parameter in VP_Config.
Description
This structure is used to configure the Channel A Video Port Capture Mode.
Description
This structure is used to configure the channel B video capture mode VP_ConfigCaptureChB#.
VP Module
26-5
VP_ConfigCaptureTSI VP_ConfigCaptureTSI Structure used to configure the transport stream interface mode (TSI) capture mode
Members Uint32 vcactl Uint32 tsictl Uint32 tsiclkinitl Uint32 tsiclkinitm Uint32 tsistcmpl Uint32 tsistcmpm Uint32 tsistmskl Uint32 tsistmskm Uint32 tsiticks Video Capture Channel A Control Register TSI Capture Control Register TSI Clock Initialization LSB Register TSI Clock Initialization MSB Register TSI System Time Clock Compare LSB Register TSI System Time Clock Compare MSB Register TSI System Time Clock Compare Mask LSB Register TSI System Time Clock Compare Mask MSB Register TSI System Time Clock Ticks Interrupt Register
Description
This structure is used to configure the transport stream interface mode (TSI) port capture mode.
26-6
Description
This structure is used to configure the Video Display Mode. This is used as a parameter in VP_Config.
VP Module
26-7
VP_ConfigGpio VP_ConfigGpio
Members
Description
Signals not used for Video display and capture can be used as GPIO pins. The GPIO register set includes registers to set for using pins in GPIO mode. This structure is used as a parameter in VP_Config.
VP_ConfigPort
Members
Description
This structure is used to configure the video port control and interrupt registers. This is used as a parameter in VP_Config.
26-8
VP_OPEN_RESET
VP_clearPins
Function
VP_close
Function
Example
VP_config VP_config
Function
26-10
VP Module
26-11
VP_configCaptureTSI VP_configCaptureTSI Configures Transfer stream interface (TSI) mode of video port
Function void VP_configCaptureTSI( VP_Handle hVP, VP_ConfigCaptureTSI *myCaptureTSI ) hVP Device Handle; see VP_open myCaptureTSI; see VP_ConfigCaptureTSI None Used to configure the transfer stream interface (TSI) mode of video port
VP_ConfigCaptureTSI myCaptureTSI; VP_Handle hVP; .... VP_configCaptureTSI(hVP,&myCaptureTSI);
VP_configDisplay
Function
26-12
VP_configGpio VP_configGpio
Function
VP_configPort
Function
VP Module
26-13
VP_getConfig VP_getConfig
Function
VP_getCrdstAddr
Function
VP Module
26-15
26-16
VP_getEventID VP_getEventID
Function
VP_getPins
Function
Returns value of PDIN. This reflects the state of the video port pins
Uint32 VP_getPins( VP_Handle hVP ) hVP Device Handle; see VP_open Uint32 Returns value of PDIN. This reflects the state of the video port pins.
VP_Handle hVP; Uint32 getVal; getVal = VP_getPins(hVP);
VP Module
26-17
VP_getYdstaAddr VP_getYdstaAddr
Function
26-18
VP_getYsrcaAddr VP_getYsrcaAddr
Function
VP Module
26-19
VP_open VP_open
Function
Arguments
Example
VP_reset
Function
26-20
VP_resetAll VP_resetAll
Function Return Value Description Example
VP_resetCaptureChA Resets the capture channel A and disables all its interrupts
Function void VP_resetCaptureChA( VP_Handle hVP ) hVP Device Handle; see VP_open None Resets the channel bit in VCACTL, disables interrupts for this channel and clears status bits in VPIS set for this channel. All further DMA event generation is blocked and the FIFO is flushed upon completion of pending DMA events.
VP_Handle hVP; VP_resetCaptureChA(hVP);
Example
VP_resetCaptureChB Resets the capture channel B and disables all its interrupts#
Function void VP_resetCaptureChB( VP_Handle hVP ) hVP Device Handle; see VP_open None Resets the channel bit in VCBCTL, disables interrupts for this channel and clears status bits in VPIS set for this channel. All further DMA event generation is blocked and the FIFO is flushed upon completion of pending DMA events.
VP_Handle hVP; VP_resetCaptureChB(hVP);
Example
VP_resetDisplay VP_resetDisplay
Function
Resets the video display module and disables all its interrupts
void VP_resetDisplay( VP_Handle hVP ) hVP Device Handle; see VP_open None Resets the video display module and sets its registers to their initial values. All related interrupts are disabled and the status bits set in VPIS are cleared
VP_Handle hVP; VP_resetDisplay(hVP);
VP_setPins
Function
26-22
Chapter 27
XBUS Module
This chapter describes the XBUS module, lists the API functions and macros within the module, discusses how to use the XBUS device, and provides an XBUS API reference section.
Topic
Page
27.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27-2 27.2 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27-2 27.3 Configuration Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27-4 27.4 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27-5
27-1
Overview
27.1 Overview
This module has a simple API for configuring the XBUS registers. The XBUS may be configured by passing an XBUS_CONFIG structure to XBUS_Config() or by passing register values to the XBUS_ConfigArgs() function. Table 271 lists the configuration structure for use with the XBUS functions. Table 272 lists the functions and constants available in the CSL DMA module.
Type Description F F F C Configures entry for XBUS configuration structure Configures entry for XBUS registers Returns the current XBUS configuration structure Compile time constant
27.2 Macros
There are two types of XBUS macros: those that access registers and fields, and those that construct register and field values. Table 273 lists the XBUS macros that access registers and fields, and Table 274 lists the XBUS macros that construct register and field values. The macros themselves are found in Chapter 28, Using the HAL Macros. XBUS macros are not handle-based.
27-2
Macros
Table 274. XBUS Macros that Construct Register and Field Values
Macro XBUS_<REG>_DEFAULT XBUS_<REG>_RMK() XBUS_<REG>_OF() XBUS_<REG>_<FIELD>_DEFAULT XBUS_FMK() XBUS_FMKS() XBUS_<REG>_<FIELD>_OF() XBUS_<REG>_<FIELD>_<SYM> Description/Purpose Register default value Register make Register value of ... Field default value Field make Field make symbolically Field value of ... Field symbolic value See page ... 28-21 28-23 28-22 28-24 28-14 28-15 28-24 28-24
XBUS Module
27-3
XBUS_Config
XBUS_Config
Structure Members
Description
This is the XBUS configuration structure used to set up an XBUS configuration. You create and initialize this structure then pass its address to the XBUS_config() function.
XBUS_Config xbusCfg = { 0x00000000, /* Global Control Register(XBGC) */ 0xFFFF3F23, /* XCE0 Space Control Register(XCE0CTL) 0xFFFF3F23, /* XCE1 Space Control Register(XCE1CTL) 0xFFFF3F23, /* XCE2 Space Control Register(XCE2CTL) 0xFFFF3F23, /* XCE3 Space Control Register(XCE3CTL) 0x00000000, /* XBUS HPI Control Register(XBHC) */ 0x00000000, /* XBUS Internal Master Address Register(XBIMA) */ 0x00000000 /* XBUS External Address Register(XBEA) }; . . XBUS_config(&xbusCfg);
Example
*/ */ */ */
*/
27-4
XBUS_config
27.4 Functions
XBUS_config
Function
*/ */ */ */
*/
XBUS_getConfig
Arguments xbgc xce0ctl xce1ctl xce2ctl xce3ctl xbhc xbima xbea none Sets up the XBUS using the register values passed in. The register values are written to the XBUS registers.
xbgc = 0x00000000; xce0ctl = 0xFFFF3F23; xce1ctl = 0xFFFF3F23; xce2ctl = 0xFFFF3F23; xce3ctl = 0xFFFF3F23; xbhc = 0x00000000; xbima = 0x00000000; xbea = 0x00000000; XBUS_configArgs( xbgc, xce0ctl, xce1ctl, xce2ctl, xce3ctl, xbhc, xbima, xbea );
Expansion Bus global control register value XCE0 space control register value XCE1 space control register value XCE2 space control register value XCE3 space control register value Expansion Bus host port interface control register value Expansion Bus internal master address register value Expansion Bus external address register value
XBUS_getConfig
Function
XBUS_SUPPORT
Example
XBUS_config xbusCfg; XBUS_getConfig(&xbusCfg);
XBUS_SUPPORT
Constant Description Example
XBUS Module
27-7
Chapter 28
Topic
Page
28.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-2 28.2 Generic Macro Notation and Table of Macros . . . . . . . . . . . . . . . . . . 28-4 28.3 General Comments Regarding HAL Macros . . . . . . . . . . . . . . . . . . . 28-6 28.4 HAL Macro Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-12
28-1
Introduction
28.1 Introduction
The chip support library (CSL) has two layers: the service layer and the hardware abstraction layer (HAL). The service layer contains the API functions, data types, and constants as defined in the various chapters of this reference guide. The HAL is made up of a set of header files that define an orthogonal set of C macros and constants which abstract registers and bit-fields into symbols.
Introduction
Macro for reading a register Macro for writing to a register Macro that returns the address of a memory-mapped register Macro for inserting a field value into a register Macro for extracting a field value from a register Macro for inserting a field value into a register using a symbolic name Variations of the above for handle-based registers Variations of the above for given register addresses
- Macros that construct register and field values. These macros are
Macro constant for the default value of a register Macro that constructs register values based on field values Macro constant for the default value of a register field Macro that constructs a field value Macro that constructs a field value given a symbolic constant
28-3
etc.
- <REG> = placeholder for a register name: PRICTL, SPCR, AUXCTL, etc. - <FIELD> = placeholder for a field name: PRI, STATUS, XEMPTY, etc. - <SYM> = placeholder for a value name: ENABLE, YES, HIGH, etc.
<PER> represents a placeholder for the peripheral (module) name; i.e., DMA, MCBSP, etc. When the table lists something like <PER>_ADDR, it actually represents a whole set of macros defined in the different modules: DMA_ADDR(), MCBSP_ADDR(), etc. Likewise, whenever <REG> is used, it is a placeholder for a register name. For example, <PER>_<REG>_DEFAULT represents a set of macros including DMA_AUXCTL_DEFAULT, MCBSP_SPCR_DEFAULT, TIMER_CTL_DEFA ULT, etc. There are also field name place holders such as in the macro <PER>_<REG>_<FIELD>_DEFAULT. In this case it represents a set of macros including: DMA_PRICTL_PRI_DEFAULT, MCBSP_SPCR_GRST_D EFAULT, etc.
28-4
28-5
17
If you wanted to extract this field, you would first mask the register value with 0x003E0000 then right-shift it by 17 bits. This would give the right-justified field value. If you start with the right justified field value and want to create the in-place field value, you would first left-shift it by 17 bits then mask it with 0x003E0000. If we had HAL macros for this hypothetical register, then we would have a MYPER_FGET(MYREG, MYFIELD) macro that would return the MYFIELD value right-justified. We would also have the MYPER_FSET(MYREG, MYFIELD, x) macro that accepts a right-justified field value and inserts it into the register. All of the FGET type of macros return the right-justified field value and all of the FSET type of macros take a right-justified field value as an argument. The FMK and RMK macros also deal with right-justified field values.
28-6
So, you could pass just about anything as an argument and it will get typecasted into a Uint32.
However, using the _OF() macros, the code now becomes clear. The above code and the below code both do the same thing. Also notice that the _OF() macros help out by eliminating the need to do manual typecasts.
Using the HAL Macros 28-7
/* create a config structure using the _OF() macros */ DMA_Config cfg = { DMA_PRICTL_OF(0x10002050), DMA_SECCTL_OF(0x00000080), DMA_SRC_OF(buffa), DMA_DST_OF(buffb), DMA_XFRCNT_OF(0x00010008) );
The same principle applies for field values. Every field has an _OF() macro defined for it:
- DMA_PRICTL_ESIZE_OF(x) - DMA_PRICTL_PRI_OF(x) - DMA_AUXCTL_CHPRI_OF(x) - MCBSP_SPCR_DLB_OF(x) - etc
The field _OF() macros are generally used with the RMK macros. However, they are also useful when a field is very wide and it is not practical to #define a symbol for every value the field could take on.
<PER>_<REG>_RMK(field_ms,,field_ls)
For illustrative purposes, we will pick a register that does not have too many fields, such as the MCBSP multichannel control register, or MCR. Here is the MCR register comment header pulled directly from the MCBSP HAL file:
/********************************************************\ * _____________________ * | * | * * MCR0 * MCR1 * MCR2 * * (1) only supported on devices with three serial ports * * FIELDS (msb > lsb) * (rw) XPBBLK * (rw) XPABLK * (r) XCBLK * (rw) XMCM * (rw) RPBBLK * (rw) RPABLK * (r) * \********************************************************/ RCBLK * (rw) RMCM serial port 0 multichannel control register serial port 1 multichannel control register serial port 2 multichannel control register (1) M C R | |
* |___________________|
Out of the eight fields, only six are writable; hence, the RMK macro takes six arguments.
MCBSP_MCR_RMK(xpbblk,xpablk,xmcm,rpbblk,rpablk,rmcm)
28-9
This macro will take each of the field values xpbblk to rmcm and form a 32-bit value. There are several ways you could use this macro each with a differing level of readability. You could just hardcode the field values
x = MCBSP_MCR_RMK(1,0,0,1,0,1);
As you can see, the second method is much easier to understand and, in the long run, will be much easier to maintain. Another consideration is when you use a variable for one of the field value arguments. Lets say that the XMCM argument is based on a variable in your program. Just like before, but with the variable
x = MCBSP_MCR_RMK( MCBSP_MCR_XPBBLK_SF1, MCBSP_MCR_XPABLK_SF0, myVar, MCBSP_MCR_RPBBLK_SF3, MCBSP_MCR_RPABLK_SF0, MCBSP_MCR_RMCM_CHENABLE );
In the first method, its a little unclear what myVar is; however, in the second method, its very clear because of the _OF() macro.
28-10
One thing that needs to be re-emphasized is the fact that the RMK macros do not write to anything; they simply return a value. As a matter of fact, if you used all symbolic constants for the field values, then the whole macro resolves down to a single integer from the compilers standpoint. The RMK macros may be used anywhere in your code, in static initializers, function arguments, arguments to other macros, etc.
If you call MYMAC(0), then it resolves into MYMAC0() which can be a totally different macro definition. The HAL uses this in many instances.
#define DMA_RGET(REG) REG) _PER_RGET(_DMA_##REG##_ADDR, DMA,
Where,
#define _PER_RGET(addr,PER,REG) (*(volatileUint32*)(addr))
Because of this token pasting, there is the possibility of side effects if you define macros that match the token names.
28-11
<PER>_ADDR
Register Address
<PER>_ADDR(<REG>) <REG> Uint32 Register name Address
Returns the address of a memory mapped register. <PER> is a placeholder for the peripheral name: DMA, MCBSP, TIMER, etc.
Uint32 regAddr; regAddr = DMA_ADDR(PRICTL0); regAddr = DMA_ADDR(AUXCTL); regAddr = MCBSP_ADDR(SPCR0);
<PER>_ADDRH
Macro Arguments Return Value Description
Returns the address of the memory-mapped register given a handle. Only registers covered by the handle structure are valid, if any. <PER> is a placeholder for the peripheral name: DMA, MCBSP, TIMER, etc.
DMA_Handle hDma; Uint32 regAddr; hDma = DMA_open(DMA_CHA2, 0); regAddr = DMA_ADDRH(hDma, PRICTL); regAddr = DMA_ADDRH(hDma, SRC);
Example
<PER>_CRGET
Macro Arguments Return Value Description
Returns the current value of a CPU register. The value returned is right-justified. <PER> is a placeholder for the peripheral name (applies to CHIP module only).
Uint32 valReg; valReg = CHIP_CRGET(CSR);
Example
28-12
<PER>_CRSET <PER>_CRSET
Macro Arguments Return Value Description
CPU register name (i.e. CSL, IER, ISR...) Uint 32 value to set the register
Example
<PER>_FGET
Macro Arguments Return Value Description Example
Returns a field value from a register. The value returned is right-justified. <PER> is a placeholder for the peripheral name: DMA, MCBSP, TIMER, etc.
Uint32 fieldVal; fieldVal = DMA_FGET(PRICTL0, INDEX); fieldVal = DMA_FGET(AUXCTL, CHPRI); fieldVal = MCBSP_FGET(SPCR0, XRDY);
<PER>_FGETA
Macro Arguments
Returns the value of the field given the address of the memory mapped register. The return value is right-justified. This macro is useful in those situations where an arbitrary memory location is treated like a register such as in a configuration structure. <PER> is a placeholder for the peripheral name: DMA, MCBSP, TIMER, etc.
Using the HAL Macros 28-13
<PER>_FGETH
Example
Uint32 fieldVal; Uint32 regAddr = 0x01840000; DMA_Config cfg; fieldVal = DMA_FGETA(0x01840000, PRICTL, INDEX); fieldVal = DMA_FGETA(regAddr, PRICTL, PRI); fieldVal = DMA_FGETA(0x01840070, AUXCTL, CHPRI); fieldVal = DMA_FGETA(&(cfg.prictl), PRICTL, EMOD);
<PER>_FGETH
Macro Arguments
Returns the value of the field given a handle. Only registers covered by handles per peripheral are valid, if any. <PER> is a placeholder for the peripheral name: DMA, MCBSP, TIMER, etc.
DMA_Handle hDma; Uint32 fieldVal; hDma = DMA_open(DMA_CHA1, 0); fieldVal = DMA_FGETH(hDma, PRICTL , ESIZE);
Example
<PER>_FMK
Macro Arguments
Field Make
<PER>_FMK(<REG>,<FIELD>,x) <REG> <FIELD> x Uint32 Register name Field name Field value, right-justified In-place and masked-field value
This macro takes the right-justified field value then shifts it over and masks it to form the in-place field value. It can be bit-wise ORed with other FMK or FMKS macros to form a register value as an alternative to the RMK macro.
Uint32 x; x = DMA_FMK(AUXCTL, CHPRI, 0) | DMA_FMK(AUXCTL, AUXPRI, 0);
Example
28-14
<PER>_FMKS <PER>_FMKS
Macro Arguments
This macro takes the symbolic field value then shifts it over and masks it to form the in-place field value. It can be bit-wise ORed with other FMK or FMKS macros to form a register value as an alternative to the RMK macro.
Uint32 x; x = DMA_FMKS(AUXCTL, CHPRI, HIGHEST) | DMA_FMKS(AUXCTL, AUXPRI, CPU);
Example
<PER>_FSET
Macro Arguments
Field Set
<PER>_FSET(<REG>,<FIELD>,x) <REG> <FIELD> x none Sets a field of a register to the specified value. The value is right-justified. <PER> is a placeholder for the peripheral name: DMA, MCBSP, TIMER, etc.
Uint32 fieldVal = 0; DMA_FSET(PRICTL0, INDEX, 0); DMA_FSET(PRICTL0, INDEX, fieldVal); DMA_FSET(AUXCTL, CHPRI, 1); TIMER_FSET(CTL0, GO, 0);
28-15
<PER>_FSETA <PER>_FSETA
Macro Arguments
Uint32 address Register name Field name Uint32 field value, right-justified
Example
<PER>_FSETH
Macro Arguments
Peripheral handle Register name Field name Uint32 field value, right-justified
Example
28-16
<PER>_FSETS <PER>_FSETS
Macro Arguments
Example
<PER>_FSETSA
Macro Arguments
Example
<PER>_FSETSH <PER>_FSETSH
Macro Arguments
Example
<PER>_RGET
Macro Arguments Return Value Description Example
Returns the current value of a register. <PER> is a placeholder for the peripheral name: DMA, MCBSP, TIMER, etc.
Uint32 regVal; regVal = DMA_RGET(PRICTL0); regVal = MCBSP_RGET(SPCR0); regVal = DMA_RGET(AUXCTL); regVal = TIMER_RGET(CTL0);
28-18
<PER>_RGETA <PER>_RGETA
Macro Arguments Return Value Description
Returns the current value of a register given the address of the register. This macro is useful in those situations where an arbitrary memory location is treated like a register such as in a configuration structure. <PER> is a placeholder for the peripheral name: DMA, MCBSP, TIMER, etc.
Uint32 regVal; DMA_Config cfg; regVal = DMA_RGETA(0x01840000, PRICTL); regVal = DMA_RGETA(0x01840070, AUXCTL); regVal = DMA_RGETA(&(cfg.prictl), PRICTL);
Example
<PER>_RGETH
Macro Arguments Return Value Description
Returns the value of a register given a handle. Only registers covered by the handle structure are valid, if any. <PER> is a placeholder for the peripheral name: DMA, MCBSP, TIMER, etc.
DMA_Handle hDma; Uint32 regVal; hDma = DMA_open(DMA_CHA2, DMA_OPEN_RESET); regVal = DMA_RGETH(hDma, PRICTL);
Example
28-19
<PER>_RSET <PER>_RSET
Macro Arguments
Register Set
<PER>_RSET(<REG>,x) <REG> x none Write the value x to the register. x may be any valid C expression. <PER> is a placeholder for the peripheral name: DMA, MCBSP, TIMER, etc.
Uint32 regVal = 0x09000101; DMA_RSET(PRICTL0, 0x09000101); DMA_RSET(PRICTL0, regVal); DMA_RSET(AUXCTL, DMA_AUXCTL_DEFAULT); MCBSP_RSET(SPCR0, 0x00000000); DMA_RSET(PRICTL0, DMA_RGET(PRICTL0)&0xFFFFFFFC);
Example
<PER>_RSETA
Macro Arguments
Example
28-20
<PER>_RSETH <PER>_RSETH
Macro Arguments
Example
<PER>_<REG>_DEFAULT
Macro Arguments Return Value Description Example
28-21
<PER>_<REG>_OF
Returns Value Of
<PER>_<REG>_OF(x) x Uint32 Register value Returns x casted into a Uint32
This macro simply takes the argument x and returns it. It is type-casted into a Uint32. The intent is to make code more readable. The examples illustrate this: Example 1 does not use these macros and Example 2 does. Notice how Example 2 is easier to follow. You are not required to use these macros; however, they can be helpful.
/* create a config structure using hard coded values */ DMA_Config cfg = { 0x10002050, 0x00000080, (Uint32)buffa, (Uint32)buffb, 0x00010008 ); /* create a config structure using the OF macros */ DMA_Config cfg = { DMA_PRICTL_OF(0x10002050), DMA_SECCTL_OF(0x00000080), DMA_SRC_OF(buffa), DMA_DST_OF(buffb), DMA_XFRCNT_OF(0x00010008) );
Example 1
Example 2
28-22
This macro constructs (makes) a register value based on individual field values. It does not do any writes; it just returns a value suitable for this register. Use this macro to make your code readable. Only writable fields are specified and they are ordered from most significant to least significant. Also, note that this macro may vary from one device to another for the same register.
Example
Uint32 prictl; prictl = DMA_PRICTL_RMK( DMA_PRICTL_DSTRLD_NONE, DMA_PRICTL_SRCRLD_NONE, DMA_PRICTL_EMOD_HALT, DMA_PRICTL_FS_DISABLE, DMA_PRICTL_TCINT_DISABLE, DMA_PRICTL_PRI_CPU, DMA_PRICTL_WSYNC_NONE, DMA_PRICTL_RSYNC_NONE, DMA_PRICTL_INDEX_DEFAULT, DMA_PRICTL_CNTRLD_DEFAULT, DMA_PRICTL_SPLIT_DISABLE, DMA_PRICTL_ESIZE_32BIT, DMA_PRICTL_DSTDIR_INC, DMA_PRICTL_SRCDIR_INC, DMA_PRICTL_START_NORMAL );
28-23
This macro simply takes the argument x and returns it. It is type-casted into a Uint32. The intent is to make code more readable. It serves a similar purpose to the <PER>_<REG>_OF() macros. Generally, these macros are used in conjunction with the <PER>_RMK() macros. You are not required to use these macros; however, they can be helpful.
Uint32 idx; idx = DMA_PRICTL_INDEX_OF(1);
Example
<PER>_<REG>_<FIELD>_<SYM>
Macro Arguments Return Value Description Example none Uint32
<PER>_<REG>_<FIELD>_<SYM>
field value
28-24
Appendix A Appendix A
Topic
A.1 A.2
Page
Using CSL APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-2 Compiling/Linking With CSL Using Code Composer Studio IDE . . A-7
A-1
#include <csl.h> #include <csl_dma.h> // Examplespecific initialization #define BUFFSZ 1024 #define Uint32 BuffA[BUFFSZ/sizeof(Uint32)] #define Uint32 BuffB[BUFFSZ/sizeof(Uint32)]
//Step 2: //
A-2
DMA_Config myconfig = { /* DMA_PRICTL */ DMA_PRICTL_RMK( DMA_PRICTL_DSTRLD_NONE, DMA_PRICTL_SRCRLD_NONE, DMA_PRICTL_EMOD_NOHALT, DMA_PRICTL_FS_DISABLE, DMA_PRICTL_TCINT_DISABLE, DMA_PRICTL_PRI_DMA, DMA_PRICTL_WSYNC_NONE, DMA_PRICTL_RSYNC_NONE, DMA_PRICTL_INDEX_NA, DMA_PRICTL_CNTRLD_NA, DMA_PRICTL_SPLIT_DISABLE, DMA_PRICTL_ESIZE_32BIT, DMA_PRICTL_DSTDIR_INC, DMA_PRICTL_SRCDIR_INC, DMA_PRICTL_STATUS_STOPPED, DMA_PRICTL_START_NORMAL, ), /* DMA_SECCTL */ DMA_SECCTL_RMK( DMA_SECCTL_WSPOL_NA, DMA_SECCTL_RSPOL_NA, DMA_SECCTL_FSIG_NA, DMA_SECCTL_DMACEN_LOW, DMA_SECCTL_WSYNCCLR_NOTHING, DMA_SECCTL_WSYNCSTAT_CLEAR, DMA_SECCTL_RSYNCCLR_NOTHING, DMA_SECCTL_RSYNCSTAT_CLEAR, DMA_SECCTL_WDROPIE_DISABLE, DMA_SECCTL_WDROPCOND_CLEAR, DMA_SECCTL_RDROPIE_DISABLE, DMA_SECCTL_RDROPCOND_CLEAR, DMA_SECCTL_BLOCKIE_ENABLE, DMA_SECCTL_BLOCKCOND_CLEAR, DMA_SECCTL_LASTIE_DISABLE, DMA_SECCTL_LASTCOND_CLEAR, DMA_SECCTL_FRAMEIE_DISABLE, DMA_SECCTL_FRAMECOND_CLEAR, DMA_SECCTL_SXIE_DISABLE, DMA_SECCTL_SXCOND_CLEAR, ), /* src */ (Uint32) BuffA, /* dst */ (Uint32) BuffB, /* xfrcnt */ BUFFSZ/sizeof(Uint32) };
A-3
DMA_Handle myhDma; void main(void) { // Initialize Buffer tables for (x=0;x<BUFFSZ/sizeof(Uint32);x++) { BuffA[x]=x; BuffB[x]=0; } //Step 4: // // One-time only initialization of the CSL library and of the CSL module to be used. Must be done before calling any CSL module API. /* Init CSL */
CSL_init();
//Step 5: Open, configure and start the DMA channel. // To configure the channel you can use the // DMA_config or DMA_configArgs functions. myhDma = DMA_open(DMA_CHA0,0);/*Open Channel(Optional) */ DMA_config(myhDma, &myconfig); /* Configure Channel */ DMA_start(myhDma); /* Begin Transfer */ //Step 6: (Optional) // Use CSL DMA APIs to track DMA channel status. while(DMA_getStatus(myhDma)); /* Wait for complete */
//Step 7: Close DMA channel after using. } DMA_close(myhDma); /* Close channel (Optional) */
Note: The usage of the RMK macro for configuring registers is recommended as shown above in Step 2. This is because it is using symbolic constants provided by CSL for setting fields of the register. Refer to Table 15 for further help on the RMK macro. Also refer to Appendix B for the symbolic constants provided by CSL for registers and bitfields of any peripherals.
A-4
#include <csl.h> #include <csl_dma.h> // Examplespecific initialization #define BUFFSZ 1024 #define Uint32 BuffA[BUFFSZ/sizeof(Uint32)] #define Uint32 BuffB[BUFFSZ/sizeof(Uint32)]
//Step 2: // //
Define a DMA_Handle pointer. DMA_open returns a pointer to a DMA_Handle when a DMA channel is opened.
DMA_Handle myhDma; void main(void) { // Initialize Buffer tables for (x=0;x<BUFFSZ/sizeof(Uint32);x++) { BuffA[x]=x; BuffB[x]=0; } //Step 3: // // One-time only initialization of the CSL library and of the CSL module to be used. Must be done before calling any CSL module API. /* Init CSL */
CSL_init();
//Step 4: Open, configure, and start the DMA channel. // To configure the channel you can use the // DMA_config() or DMA_configArgs() functions.
A-5
};
//Step 6: (Optional) // Use CSL DMA APIs to track DMA channel status. while(DMA_getStatus(myhDma)); /* Wait for complete */
//Step 7: Close DMA channel after using. } DMA_close(myhDma); /* Close channel (Optional) */
A-6
Compiling and Linking With CSL Using Code Composer Studio IDE
A.2 Compiling and Linking With CSL Using Code Composer Studio IDE
A.2.1 CSL Directory Structure
Table A1 lists the locations of the CSL components. Use this information when you set up the compiler and linker search paths.
A-7
Compiling and Linking With CSL Using Code Composer Studio IDE
Figure A1. Defining the Target Device in the Build Options Dialog Box
A-8
Appendix B Appendix A
Topic
B.1 B.2 B.3 B.4 B.5 B.6 B.7 B.8 B.9 B.10 B.11 B.12 B.13 B.14 B.15 B.16 B.17 B.18 B.19 B.20 B.21 B.22 B.23 B.24 B.25 B.26
Page
Cache Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-2 Direct Memory Access (DMA) Registers . . . . . . . . . . . . . . . . . . . . . . . B-17 Enhanced DMA (EDMA) Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-31 EMAC Control Module Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-60 EMAC Module Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-64 External Memory Interface (EMIF) Registers . . . . . . . . . . . . . . . . . . B-122 General-Purpose Input/Output (GPIO) Registers . . . . . . . . . . . . . . B-149 Host Port Interface (HPI) Register . . . . . . . . . . . . . . . . . . . . . . . . . . . B-159 Inter-Integrated Circuit (I2C) Registers . . . . . . . . . . . . . . . . . . . . . . . B-168 Interrupt Request (IRQ) Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . B-203 Multichannel Audio Serial Port (McASP) Registers . . . . . . . . . . . . B-207 Multichannel Buffered Serial Port (McBSP) Registers . . . . . . . . . B-284 MDIO Module Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-311 Peripheral Component Interconnect (PCI) Registers . . . . . . . . . . B-328 Phase-Locked Loop (PLL) Registers . . . . . . . . . . . . . . . . . . . . . . . . . B-353 Power-Down Control Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-359 TCP Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-360 Timer Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-382 UTOPIA Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-386 VCP Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-396 VIC Port Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-409 Video Port Control Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-413 Video Capture Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-427 Video Display Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-462 Video Port GPIO Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-504 Expansion Bus (XBUS) Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-529
B-1
Cache Registers
Notes: 1) The names of the registers have been changed, Appendix D contains a comparison table of old versus new names. For C621x/C671x only. For C64x only.
B-2
Cache Registers
B.1.1 Cache Configuration Register (CCFG) Figure B1. Cache Configuration Register (CCFG)
31 P{ R/W-000 15 Reserved R-0
16
symval
Value
Description
L2 Requestor Priority (for C64x only, reserved for C621x/C671x)
0 1h 2h 3h 0
L2 controller requests are placed on urgent priority level L2 controller requests are placed on high priority level L2 controller requests are placed on medium priority level L2 controller requests are placed on low priority level Reserved. The reserved bit location is always read as zero. A value written to this field has no effect. L1P operation
0 1
0 1 0
Normal L1D operation All L1D lines invalidated Invalidate LIP Reserved. The reserved bit location is always read as zero. A value written to this field has no effect.
Reserved
B-3
Cache Registers
symval
Value
Description
L2 Operation Mode
0 1h 1h 2h 2h 3h 3h 4h6h 7h 7h
No L2 Cache (All SRAM mode) 1-way cache (16K L2 cache) C621x/C671x only 4-way cache (32K L2 cache) C64x only 2-way cache (32K L2 cache) C621x/C671x only 4-way cache (64K L2 cache) C64x only 3-way cache (48K L2 cache) C621x/C671x only 4-way cache (128K L2 cache) C64x only Reserved 4-way cache (64K L2 cache) C621x/C671x only 4-way cache (256K L2 cache) C64x only
B-4
Cache Registers
B.1.2
2 1 R/W-1
EDMAWEIGHT
B.1.3 L2 Writeback Base Address Register (L2WBAR) Figure B3. L2 Writeback Base Address Register (L2WBAR)
31 L2 Writeback Base Address (L2WBAR) R/W-0
Legend: R/W-x = Read/Write-Reset value
field LWFBAR
symval OF(value)
B-5
Cache Registers
B.1.4 L2 Writeback Word Count Register (L2WWC) Figure B4. L2 Writeback Word Count Register (L2WWC)
31 Reserved R-0
Legend: R/W-x = Read/Write-Reset value
symval OF(value)
Value 0 0FFFFh
Description Reserved. The reserved bit location is always read as zero. A value written to this field has no effect. L2 Writeback Word Count.
B.1.5 L2 WritebackInvalidate Base Address Register (L2WIBAR) Figure B5. L2 WritebackInvalidate Base Address Register (L2WIBAR)
31 L2 WritebackInvalidate Base Address (L2WIBAR) R/W-0
Legend: R/W-x = Read/Write-Reset value
field L2WIBAR
symval OF(value)
B-6
Cache Registers
B.1.6 L2 WritebackInvalidate Count Register (L2WIWC) Figure B6. L2 WritebackInvalidate Word Count Register (L2WIWC)
31 Reserved R-0
Legend: R/W-x = Read/Write-Reset value
16 15
symval OF(value)
Value 0 0FFFFh
Description Reserved. The reserved bit location is always read as zero. A value written to this field has no effect. L2 WritebackInvalidate Clean Word Count.
B.1.7 L2 Invalidate Base Address Register (L2IBAR) (C64x only) Figure B7. L2 Invalidate Base Address Register (L2IBAR)
31 L2 Invalidate Base Address (L2IBAR) R/W-0
Legend: R/W-x = Read/Write-Reset value
field L2IBAR
symval OF(value)
B-7
Cache Registers
B.1.8 L2 Invalidate Count Register (L2IWC) (C64x only) Figure B8. L2 WritebackInvalidate Word Count Register (L2IWC)
31 Reserved R-0
Legend: R/W-x = Read/Write-Reset value
symval OF(value)
Value 0 0FFFFh
Description Reserved. The reserved bit location is always read as zero. A value written to this field has no effect. L2 Invalidate Clean Word Count.
B.1.9 L2 Allocation Priority Queue Registers (L2ALLOC0L2ALLOC3) (C64x) Figure B9. L2 Allocation Registers (L2ALLOC0L2ALLOC3)
31 Reserved 16
15 Reserved
3 2 QnCNT R/W-0
symval OF(value)
Value 0 07h
Description Reserved. The reserved bit location is always read as zero. A value written to this field has no effect.
B-8
Cache Registers
B.1.10 L1P Invalidate Base Address Register (L1PIBAR) Figure B10. L1P Invalidate Base Address Register (L1PIBAR)
31 L1P Invalidate Base Address (L1PIBAR) R/W-0
Legend: R/W-x = Read/Write-Reset value
Table B11. L1P Invalidate Base Address Register (L1PIBAR) Field Values
Bit 310
field L1PIBAR
symval OF(value)
B.1.11 L1P Invalidate Word Count Register (L1PIWC) Figure B11. L1P Invalidate Word Count Register (L1PIWC)
31 Reserved R-0
Legend: R/W-x = Read/Write-Reset value
Table B12. L1P Invalidate Word Count Register (L1PIWC) Field Values
Bit 3116 150
symval OF(value)
Value 0 0FFFFh
Description Reserved. The reserved bit location is always read as zero. A value written to this field has no effect. L1P Invalidate Word Count.
B-9
Cache Registers
B.1.12 L1D WritebackInvalidate Base Address Register (L1DWIBAR) Figure B12. L1D WritebackInvalidate Base Address Register (L1DWIBAR)
31 L1D WritebackInvalidate Base Address (L1DWIBAR) R/W-0
Legend: R/W-x = Read/Write-Reset value
Table B13. L1D WritebackInvalidate Base Address Register (L1DWIBAR) Field Values
Bit 310
field L1DWIBAR
symval OF(value)
B.1.13 L1D WritebackInvalidate Word Count Register (L1DWIWC) Figure B13. L1D WritebackInvalidate Word Count Register (L1DWIWC)
31 Reserved R-0
Legend: R/W-x = Read/Write-Reset value
16 15
Table B14. L1D WritebackInvalidate Word Count Register (L1DWIWC) Field Values
Bit 3116 150
symval OF(value)
Value 0 0FFFFh
Description Reserved. The reserved bit location is always read as zero. A value written to this field has no effect. L1D WritebackInvalidate Word Count.
B-10
Cache Registers
B.1.14 L1D Invalidate Base Address Register (L1DIBAR) (C64x only) Figure B14. L1P Invalidate Base Address Register (L1PIBAR)
31 L1D Invalidate Base Address (L1DIBAR) R/W-0
Legend: R/W-x = Read/Write-Reset value
Table B15. L1D Invalidate Base Address Register (L1DIBAR) Field Values
Bit 310
field L1DIBAR
symval OF(value)
B.1.15 L1D Invalidate Word Count Register (L1DIWC) (C64x only) Figure B15. L1D Invalidate Word Count Register (L1DIWC)
31 Reserved R-0
Legend: R/W-x = Read/Write-Reset value
Table B16. L1D Invalidate Word Count Register (L1DIWC) Field Values
Bit 3116 150
symval OF(value)
Value 0 0FFFFh
Description Reserved. The reserved bit location is always read as zero. A value written to this field has no effect. L1D Invalidate Word Count.
B-11
Cache Registers
16
0 C R/W-0
symval
Value 0
Description Reserved. The reserved bit location is always read as zero. A value written to this field has no effect. Writeback All L2
0 1
B-12
Cache Registers
16
0 C R/W-0
symval
Value 0
Description Reserved. The reserved bit location is always read as zero. A value written to this field has no effect. Clean L2
0 1
B-13
Cache Registers
16
0 CE R/W-0
symval
Value 0
Description
Reserved. The reserved bit location is always read as zero. A value written to this field has no effect. Cache enable bit.
0 1
B-14
Cache Registers
16
0 CE R/W-0
symval
Value 0
Description
Reserved. The reserved bit location is always read as zero. A value written to this field has no effect. Cache enable bit.
0 1
B-15
Cache Registers
16
0 CE R/W-0
symval
Value 0
Description
Reserved. The reserved bit location is always read as zero. A value written to this field has no effect. Cache enable bit.
0 1
B-16
B.2.1 DMA Auxiliary Control Register (AUXCTL) Figure B21. DMA Auxiliary Control Register (AUXCTL)
31 Reserved R-0 5 Reserved R-0
Legend: R/W-x = Read/Write-Reset value
4 AUXPRI R/W-0
3 CHPRI R/W-0
B-17
0 1h 2h 3h 4h 5hFh
Fixed channel priority mode auxiliary channel highest priority Fixed channel priority mode auxiliary channel 2nd-highest priority Fixed channel priority mode auxiliary channel 3rd-highest priority Fixed channel priority mode auxiliary channel 4th-highest priority Fixed channel priority mode auxiliary channel lowest priority Reserved
B-18
B.2.2 DMA Channel Primary Control Register (PRICTL) Figure B22. DMA Channel Primary Control Register (PRICTL)
31 DSTRLD R/W-0 23 WSYNC R/W-0 14 RSYNC R/W-0 7 DSTDIR R/W-0 6 5 SRCDIR R/W-0 13 INDEX R/W-0 12 CNTRLD R/W-0 4 3 STATUS R-0 11 SPLIT R/W-0 2 1 START R/W-0 10 9 ESIZE R/W-0 0 30 29 SRCRLD R/W-0 28 27 EMOD R/W-0 19 18 RSYNC R/W-0 8 26 FS R/W-0 25 TCINT R/W-0 24 PRI R/W-0
Table B24. DMA Channel Primary Control Register (PRICTL) Field Values
Bit 3130 field DSTRLD NONE B C D 2928 SRCRLD NONE B C D
symval
Value
0 1h 2h 3h
Do not reload during autoinitialization Use DMA global address register B as reload Use DMA global address register C as reload Use DMA global address register D as reload Source address reload for autoinitialization
0 1h 2h 3h
Do not reload during autoinitialization Use DMA global address register B as reload Use DMA global address register C as reload Use DMA global address register D as reload
B-19
Table B24. DMA Channel Primary Control Register (PRICTL) Field Values (Continued)
Bit 27 field EMOD NOHALT HALT 26 FS DISABLE RSYNC 25 TCINT DISABLE ENABLE 24 PRI CPU DMA 2319 WSYNC NONE TINT0 TINT1 SDINT EXTINT4 EXTINT5 EXTINT6 EXTINT7 DMAINT0 DMAINT1 DMAINT2
symval
Value
0 1
DMA channel keeps running during an emulation halt DMA channel pauses during an emulation halt Frame synchronization
0 1
Disable RSYNC event used to synchronize entire frame Transfer controller interrupt
0 1
0 1
0 1h 2h 3h 4h 5h 6h 7h 8h 9h Ah
External interrupt event 4 External interrupt event 5 External interrupt event 6 External interrupt event 7 DMA interrupt event 0 DMA interrupt event 1 DMA interrupt event 2
B-20
Table B24. DMA Channel Primary Control Register (PRICTL) Field Values (Continued)
Bit field symval DMAINT3 XEVT0 REVT0 XEVT1 REVT1 DSPINT XEVT2 REVT2 1814 RSYNC NONE TINT0 TINT1 SDINT EXTINT4 EXTINT5 EXTINT6 EXTINT7 DMAINT0 DMAINT1 DMAINT2 DMAINT3 XEVT0 REVT0 XEVT1
Description DMA interrupt event 3 McBSP 0 transmit event 0 McBSP 0 receive event McBSP 1 transmit event McBSP 1 receive event DSP interrupt event McBSP 2 transmit event McBSP 2 receive event Reserved Read synchronization
0 1h 2h 3h 4h 5h 6h 7h 8h 9h Ah Bh Ch Dh Eh
External interrupt event 4 External interrupt event 5 External interrupt event 6 External interrupt event 7 DMA interrupt event 0 DMA interrupt event 1 DMA interrupt event 2 DMA interrupt event 3 McBSP 0 transmit event 0 McBSP 0 receive event McBSP 1 transmit event
B-21
Table B24. DMA Channel Primary Control Register (PRICTL) Field Values (Continued)
Bit field symval REVT1 DSPINT XEVT2 REVT2 118 13 INDEX A B 12 CNTRLD A B 1110 SPLIT DISABLE A B C 98 ESIZE 32 BIT 16 BIT 8 BIT
Description McBSP 1 receive event DSP interrupt event McBSP 2 transmit event McBSP 2 receive event Reserved Selects the DMA global data register to use as a programmable index
0 1
Use DMA global index register A Use DMA global index register B Transfer counter reload for autoinitialization and multiframe transfers
0 1
Reload with DMA global count reload register A Reload with DMA global count reload register B Split channel mode
0 1h 2h 3h
Split-channel mode disabled Split-channel mode enabled; use DMA global address register A as split address Split-channel mode enabled; use DMA global address register B as split address Split-channel mode enabled; use DMA global address register C as split address Element size
0 1h 2h 3h
B-22
Table B24. DMA Channel Primary Control Register (PRICTL) Field Values (Continued)
Bit 76 field DSTDIR NONE INC DEC IDX 54 SRCDIR NONE INC DEC IDX 32 STATUS STOPPED RUNNING PAUSED AUTORUNNING 10 START STOP NORMAL PAUSE AUTOINIT
symval
Value
0 1h 2h 3h
No modification Increment by element size in bytes Decrement by element size in bytes Adjust using DMA global index register selected by INDEX Source address modification after element transfers
0 1h 2h 3h
No modification Increment by element size in bytes Decrement by element size in bytes Adjust using DMA global index register selected by INDEX
0 1h 2h 3h
0 1h 2h 3h
B-23
B.2.3 DMA Channel Secondary Control Register (SECCTL) Figure B23. DMA Channel Secondary Control Register (SECCTL)
31 Reserved R-0 22 Reserved R-0 15
WSYNCCLR
21 WSPOL
20 RSPOL R/W-0 12
19 FSIG R/W-0 11
WDROPIE
18 DMACEN 10
WDROPCOND
16
14
WSYNCSTAT
R/W-0 13
R/W-000 9
RDROPIE
8
RDROPCOND
RSYNCCLR RSYNCSTAT
R/W-0 7
BLOCKIE
R/W-0 6
BLOCKCOND
R/W-0 5
LASTIE
R/W-0 4
LASTCOND
R/W-0 3
FRAMEIE
R/W-0 2
FRAMECOND
R/W-0 1
SXIE
R/W-0 0
SXCOND
R/W-1
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
These bits are not available on the C6201 and C6701 devices. These bits are R+0 on the C6201 and C6701 devices.
Table B25. DMA Channel Secondary Control Register (SECCTL) Field Values
Bit 3122 21 field Reserved WSPOL symval Value 0 Description Reserved. The reserved bit location is always read as zero. A value written to this field has no effect. Write synchronization event polarity (not applicable for C6201 and C6701 devices). This field is valid only if EXT_INTx is selected. ACTIVEHIGH ACTIVELOW 20 RSPOL 0 1 Active high Active low Read and frame synchronization event polarity (not applicable for C6201 and C6701 devices). This field is valid only if EXT_INTx is selected. ACTIVEHIGH ACTIVELOW
0 1
B-24
Table B25. DMA Channel Secondary Control Register (SECCTL) Field Values (Continued)
Bit 19 field FSIG symval Value Description Level/edge detect mode selection. FSIG must be cleared to 0 for non-frame-synchronized transfers (not applicable for C6201 and C6701 devices). NORMAL IGNORE 0 1 Edge detect mode (FS = 1 or FS = 0). Level detect mode (valid only when FS = 1). In level detect mode, synchronization inputs received during a frame transfer are ignored unless still set after the frame transfer completes. 1816 DMACEN LOW HIGH RSYNCSTAT WSYNCSTAT FRAMECOND BLOCKCOND 15 WSYNCCLR NOTHING CLEAR 14 WSYNCSTAT CLEAR SET 13 RSYNCCLR NOTHING CLEAR
DMA action complete pins reflect status and condition. 0 1h 2h 3h 4h 5h 6h7h DMAC pin is held low. DMAC pin is held high. DMAC reflects RSYNCSTAT. DMAC reflects WSYNCSTAT. DMAC reflects FRAMECOND. DMAC reflects BLOCKCOND. Reserved Write synchronization status clear bit. 0 1 No effect. Clear write synchronization status. Write synchronization status. 0 1 Synchronization is not received. Synchronization is received. Read synchronization status clear bit. 0 1 No effect. Clear read synchronization status.
B-25
Table B25. DMA Channel Secondary Control Register (SECCTL) Field Values (Continued)
Bit 12 field RSYNCSTAT CLEAR SET 11 WDROPIE DISABLE ENABLE 10 WDROPCOND CLEAR SET 9 RDROPIE DISABLE ENABLE 8 RDROPCOND CLEAR SET 7 BLOCKIE DISABLE ENABLE 6 BLOCKCOND CLEAR SET
symval
Value
0 1
Synchronization is not received. Synchronization is received. Write synchronization dropped interrupt enable.
0 1
WDROP condition does not enable DMA channel interrupt. WDROP condition enables DMA channel interrupt. Write drop condition.
0 1
WDROP condition is not detected. WDROP condition is detected. Read synchronization dropped interrupt enable.
0 1
RDROP condition does not enable DMA channel interrupt. RDROP condition enables DMA channel interrupt. Read drop condition.
0 1
RDROP condition is not detected. RDROP condition is detected. Block transfer finished interrupt enable.
0 1
BLOCK condition does not enable DMA channel interrupt. BLOCK condition enables DMA channel interrupt. Block transfer finished condition.
0 1
B-26
Table B25. DMA Channel Secondary Control Register (SECCTL) Field Values (Continued)
Bit 5 field LASTIE DISABLE ENABLE 4 LASTCOND CLEAR SET 3 FRAMEIE DISABLE ENABLE 2 FRAMECOND CLEAR SET 1 SXIE DISABLE ENABLE 0 SXCOND CLEAR SET
symval
Value
0 1
LAST condition does not enable DMA channel interrupt. LAST condition enables DMA channel interrupt. Last frame finished condition.
0 1
LAST condition is not detected. LAST condition is detected. Frame complete interrupt enable.
0 1
FRAME condition does not enable DMA channel interrupt. FRAME condition enables DMA channel interrupt. Frame complete condition.
0 1
FRAME condition is not detected. FRAME condition is detected. Split transmit overrun receive interrupt enable.
0 1
SX condition does not enable DMA channel interrupt. SX condition enables DMA channel interrupt. Split transmit condition.
0 1
B-27
B.2.4 DMA Channel Source Address Register (SRC) Figure B24. DMA Channel Source Address Register (SRC)
31 Source Address (SRC) R/W-0
Legend: R/W-x = Read/Write-Reset value
Table B26. DMA Channel Source Address Register (SRC) Field Values
Bit 310
Field SRC
symval OF(value)
B.2.5 DMA Channel Destination Address Register (DST) Figure B25. DMA Channel Destination Address Register (DST)
31 Destination Address (DST) R/W-0
Legend: R/W-x = Read/Write-Reset value
Table B27. DMA Channel Destination Address Register (DST) Field Values
Bit 310
Field DST
symval OF(value)
B-28
B.2.6 DMA Channel Transfer Counter Register (XFRCNT) Figure B26. DMA Channel Transfer Counter Register (XFRCNT)
31 Frame Count (FRMCNT) R/W-0
Legend: R/W-x = Read/Write-Reset value
Table B28. DMA Channel Transfer Counter Register (XFRCNT) Field Values
Bit 3116 150
B.2.7 DMA Global Count Reload Register (GBLCNT) Figure B27. DMA Global Count Reload Register (GBLCNT)
31 Frame Count Reload (FRMCNT) R/W-0
Legend: R/W-x = Read/Write-Reset value
Table B29. DMA Global Count Reload Register (GBLCNT) Field Values
Bit 3116 150
Description This 16-bit value reloads FRMCNT bits in XFRCNT. This 16-bit value reloads ELECNT bits in XFRCNT.
B-29
B.2.8 DMA Global Index Register (GBLIDX) Figure B28. DMA Global Index Register (GBLIDX)
31 Frame Index (FRMIDX) R/W-0
Legend: R/W-x = Read/Write-Reset value
B.2.9 DMA Global Address Reload Register (GBLADDR) Figure B29. DMA Global Address Reload Register (GBLADDR)
31 Global Address Reload (GBLADDR) R/W-0
Legend: R/W-x = Read/Write-Reset value
Table B31. DMA Global Address Reload Register (GBLADDR) Field Values
Bit 310
Field GBLADDR
symval OF(value)
B-30
B-31
B.3.1 EDMA Channel Options Register (OPT) Figure B30. EDMA Channel Options Register (OPT)
31 PRI R/W-0 23 2DD R/W-0 15 Reserved R-0 14 TCCM{ R/W-00 5 ATCC R/W-0
29 28 ESIZE R/W-0 21 DUM R/W-0 13 20 TCINT R/W-0 12 ATCINT R/W-0 4 Reserved R-0 11 19
27
26 2DS R/W-0
25 SUM R/W-0
24
22
B-32
1h 2h
This level is reserved only for L2 requests and not valid for EDMA transfer requests. Low priority EDMA transfer requests. Element size
0 1h 2h 3h
0 1
0 1h 2h 3h
Fixed address mode. No source address modification Source address increment depends on 2DS and FS bits Source address decrement depends on 2DS and FS bits Source address modified by the element index/frame index depending on 2DS and FS bits.
B-33
Table B33. EDMA Channel Options Register (OPT) Field Values (Continued)
Bit 23 field 2DD NO YES 2221 DUM NONE INC DEC IDX 20 TCINT NO YES 1916 TCC OF(value) 0 1 0Fh 0 1h 2h 3h 0 1 symval Value Description Destination dimension 1-dimensional destination 2-dimensional destination Destination address update mode Fixed address mode. No destination address modification Destination address increment depends on 2DD and FS bits Destination address decrement depends on 2DD and FS bits Destination address modified by the element index/frame index depending on 2DD and FS bits. Transfer complete interrupt Transfer complete indication disabled. CIPR bits are not set upon completion of a transfer. The relevant CIPR bit is set on channel transfer completion. The bit (position) set in the CIPR is the TCC value specified. Transfer complete code 4-bit code is used to set the relevant bit in CIPR (i.e. CIPR[TCC] bit) provided. For C64x, the 4-bit TCC code is used in conjunction with bit field TCCM for a 6-bit transfer complete code. Reserved. The reserved bit location is always read as zero. A value written to this field has no effect. Transfer complete code most-significant bits. This 2-bit value works in conjunction with the TCC bits to provide a 6-bit transfer complete code. The 6-bit code is used to set the relevant bit in the EDMA channel interrupt pending register (CIPRL or CIPRH) provided TCINT = 1, when the current set is exhausted.
15 1413
Reserved TCCM
OF(value)
0 03h
B-34
Table B33. EDMA Channel Options Register (OPT) Field Values (Continued)
Bit 12 field ATCINT NO 0 symval Value Description Alternate transfer complete interrupt. Alternate transfer complete indication is disabled. The EDMA channel interrupt pending register (CIPRL or CIPRH) bits are not set upon completion of intermediate transfers in a block. Alternate transfer complete indication is enabled. The EDMA channel interrupt pending register (CIPRL or CIPRH) bit is set upon completion of intermediate transfers in a block. The bit (position) set in CIPRL or CIPRH is the ATCC value specified. Reserved. The reserved bit location is always read as zero. A value written to this field has no effect. Alternate transfer complete code. This 6-bit value is used to set the bit in the EDMA channel interrupt pending register (CIPRL or CIPRH) (CIP[ATCC] bit) provided ATCINT = 1, upon completion of an intermediate transfer in a block. This bit can be used for chaining and interrupt generation. Reserved. The reserved bit location is always read as zero. A value written to this field has no effect. Peripheral device transfer (PDT) mode for source. DISABLE ENABLE 2 PDTD DISABLE ENABLE 1 LINK NO YES 0 1 0 1 0 1 PDT read is disabled. PDT read is enabled. Peripheral device transfer (PDT) mode for destination. PDT write is disabled. PDT write is enabled. Linking of event parameters enable. Linking of event parameters disabled. Entry not reloaded. Linking of event parameters enabled. After the current set is exhausted, the channel entry is reloaded with the parameter set specified by the link address. The link address must be on a 24-byte boundary and within the EDMA PaRAM. The link address is a 16-bit address offset from the PaRAM base address.
YES
11
Reserved
105
ATCC
OF(value)
03Fh
Reserved
PDTS
B-35
Table B33. EDMA Channel Options Register (OPT) Field Values (Continued)
Bit 0 field FS NO YES
symval
Value
0 1
Channel is element/array synchronized. Channel is frame synchronized. The relevant event for a given EDMA channel is used to synchronize a frame.
B.3.2 EDMA Channel Source Address Register (SRC) Figure B31. EDMA Channel Source Address Register (SRC)
31 Source Address (SRC) 0
Table B34. EDMA Channel Source Address Register (SRC) Field Values
Bit 310 Field SRC symval OF(value) Value 0FFFF FFFFh Description This 32-bit source address specifies the starting byte address of the source. The address is modified using the SUM bits in the EDMA channel options parameter (OPT).
B-36
B.3.3 EDMA Channel Transfer Count Register (CNT) Figure B32. EDMA Channel Transfer Count Register (CNT)
31 FRMCNT 16 15 ELECNT 0
Table B35. EDMA Channel Transfer Count Register (CNT) Field Values
Bit 3116 field FRMCNT symval OF(value) Value 0FFFFh Description Frame/array count. A 16-bit unsigned value plus 1 that specifies the number of frames in a 1D block or number of arrays in a 2D block. Valid values for the frame/array count: 065535. Element count. A 16-bit unsigned value that specifies the number of elements in a frame for (1D transfers) or an array (for 2D transfers). Valid values for the element count: 165535.
150
ELECNT
OF(value)
1FFFFh
B.3.4 EDMA Channel Destination Address Register (DST) Figure B33. EDMA Channel Destination Address Register (DST)
31 Destination Address (DST) 0
Table B36. EDMA Channel Destination Address Register (DST) Field Values
Bit 310 Field DST symval OF(value) Value 0FFFF FFFFh Description This 32-bit destination address specifies the starting byte address of the destination. The address is modified using the DUM bits in the EDMA channel options parameter (OPT).
B-37
B.3.5 EDMA Channel Index Register (IDX) Figure B34. EDMA Channel Index Register (IDX)
31 FRMIDX 16 15 ELEIDX 0
150
ELEIDX
OF(value)
0FFFFh
B.3.6 EDMA Channel Count Reload/Link Register (RLD) Figure B35. EDMA Channel Count Reload/Link Register (RLD)
31 ELERLD 16 15 LINK 0
Table B38. EDMA Channel Count Reload/Link Register (RLD) Field Values
Bit 3116 field ELERLD symval OF(value) Value 0FFFFh Description Element count reload. A 16-bit unsigned value used to reload the element count field in the EDMA channel transfer count parameter (CNT) once the last element in a frame is transferred. This field is used only for a 1D element sync (FS = 0) transfer, since the EDMA has to keep track of the next element address using the element count. This is necessary for multi-frame EDMA transfers where frame count value is greater than 0. This 16-bit link address specifies the lower 16-bit address in the parameter RAM from which the EDMA loads/reloads the parameters of the next event in the chain.
150
LINK
OF(value)
0FFFFh
B-38
B.3.7 EDMA Event Selector Registers (ESEL0, 1, 3) Figure B36. EDMA Event Selector Register 0 (ESEL0)
31 R-0 15 R-0 14 13 EVTSEL1 R/W-00 0001b 30 29 EVTSEL3 R/W-00 0011b 8 7 R-0 24 23 R-0 6 5 EVTSEL0 R/W-00 0000b 22 21 EVTSEL2 R/W-00 0010b 0 16 Reserved Reserved
Reserved
Reserved
B-39
Reserved
Reserved
B-40
Reserved
Reserved
B-41
B.3.8 Priority Queue Allocation Registers (PQAR03) (C64x) Figure B39. Priority Queue Allocation Register (PQAR)
31 Reserved R-0 3 Rsvd R/W-0 2 PQA2 R-0 1 PQA1 R-1 0 PQA0 R-0
Legend: R = Read only; R/W = Read/Write; -n = value after reset Always write 0 to the reserved bit. For PQAR0 and PQAR2, the default value is 010b; for PQAR1 and PQAR3, the default value is 110b.
symval OF(value)
Value 0 0 07h
Description Reserved. You should always write 0 to this field. Reserved. The reserved bit location is always read as 0. If writing to this field, always write a 0. Priority queue allocation bits determine the queue length available to EDMA requests.
EDMA_PQAR1_PQA_symval,
For CSL implementation, use the notation EDMA_PQAR0_PQA_symval, EDMA_PQAR2_PQA_symval, and EDMA_PQAR3_PQA_symval.
B-42
B.3.9 Priority Queue Status Register (PQSR) (C621x/C671x) Figure B40. Priority Queue Status Register (PQSR)
31 Reserved R-0
Legend: R/W-x = Read/Write-Reset value
2 PQ2 R-1
1 PQ1 R-1
0 PQ0 R-1
Field Reserved PQ
symval OF(value)
Value 0 07h
Description Reserved. You should always write 0 to this field. Priority queue status. A 1 in the PQ bit indicates that there are no requests pending in the respective priority level queue.
B.3.10 Priority Queue Status Register (PQSR) (C64x) Figure B41. Priority Queue Status Register (PQSR)
31 Reserved R-0
Legend: R/W-x = Read/Write-Reset value
3 PQ3 R-1
2 PQ2 R-1
1 PQ1 R-1
0 PQ0 R-1
B-43
B.3.11 EDMA Channel Interrupt Pending Register (CIPR) (C621x/C671x) Figure B42. EDMA Channel Interrupt Pending Register (CIPR)
31 Reserved R-0
Legend: R/W-x = Read/Write-Reset value
16 15 CIP R/W-0
Table B45. EDMA Channel Interrupt Pending Register (CIPR) Field Values
Bit 3116 150 Field Reserved CIP symval OF(value) Value 0 0FFFFh Description Reserved. You should always write 0 to this field. Channel interrupt pending. When the TCINT bit in the channel options parameter (OPT) is set to 1 for an EDMA channel and a specific transfer complete code (TCC) is provided by the EDMA transfer controller, the EDMA channel controller sets a bit in the CIP field.
B-44
B.3.12 EDMA Channel Interrupt Pending Low Register (CIPRL) (C64x) Figure B43. EDMA Channel Interrupt Pending Low Register (CIPRL)
31 CIP R/W-0
Legend: R/W-x = Read/Write-Reset value
Table B46. EDMA Channel Interrupt Pending Low Register (CIPRL) Field Values
Bit 310 Field CIP symval OF(value) Value 0FFFF FFFFh Description Channel 031 interrupt pending. When the TCINT or ATCINT bit in the channel options parameter (OPT) is set to 1 for an EDMA channel and a specific transfer complete code (TCC) or alternate transfer complete code (ATCC) is provided by the EDMA transfer controller, the EDMA channel controller sets a bit in the CIP field.
B.3.13 EDMA Channel Interrupt Pending High Register (CIPRH) (C64x) Figure B44. EDMA Channel Interrupt Pending High Register (CIPRH)
31 CIP R/W-0
Legend: R/W-x = Read/Write-Reset value
Table B47. EDMA Channel Interrupt Pending High Register (CIPRH) Field Values
Bit 310 Field CIP symval OF(value) Value 0FFFF FFFFh Description Channel 3263 interrupt pending. When the TCINT or ATCINT bit in the channel options parameter (OPT) is set to 1 for an EDMA channel and a specific transfer complete code (TCC) or alternate transfer complete code (ATCC) is provided by the EDMA transfer controller, the EDMA channel controller sets a bit in the CIP field.
B-45
B.3.14 EDMA Channel Interrupt Enable Register (CIER) (C621x/C671x) Figure B45. EDMA Channel Interrupt Enable Register (CIER)
31 Reserved 16 15 CIE R/W-0
Legend: R/W-x = Read/Write-Reset value
Table B48. C621x/C671x: Channel Interrupt Enable Register (CIER) Field Values
Bit 3116 150 Field Reserved CIE symval OF(value) Value 0 0FFFFh Description Reserved. You should always write 0 to this field. Channel interrupt enable. A 16-bit unsigned value used to disable (bit value = 0) or enable (bit value = 1) an interrupt for an EDMA channel.
B-46
B.3.15 EDMA Channel Interrupt Enable Low Register (CIERL) (C64x) Figure B46. EDMA Channel Interrupt Enable Low Register (CIERL)
31 CIE R/W-0
Legend: R/W-x = Read/Write-Reset value
Table B49. EDMA Channel Interrupt Enable Low Register (CIERL) Field Values
Bit 310 Field CIE symval OF(value) Value 0FFFF FFFFh Description Channel 031 interrupt enable. A 32-bit unsigned value used to disable (bit value = 0) or enable (bit value = 1) an interrupt for an EDMA channel.
B.3.16 EDMA Channel Interrupt Enable High Register (CIERH) (C64x) Figure B47. EDMA Channel Interrupt Enable High Register (CIERH)
31 CIE R/W-0
Legend: R/W-x = Read/Write-Reset value
Table B50. EDMA Channel Interrupt Enable High Register (CIERH) Field Values
Bit 310 Field CIE symval OF(value) Value 0FFFF FFFFh Description Channel 3263 interrupt enable. A 32-bit unsigned value used to disable (bit value = 0) or enable (bit value = 1) an interrupt for an EDMA channel.
B-47
B.3.17 EDMA Channel Chain Enable Register (CCER) (C621x/C671x) Figure B48. EDMA Channel Chain Enable Register (CCER)
31 Reserved
8 7 Reserved
Table B51. EDMA Channel Chain Enable Register (CCER) Field Values
Bit 3112 118 Field Reserved CCE symval OF(value) Value 0 0Fh Description Reserved. You should always write 0 to this field. Channel chain enable. To enable the EDMA controller to chain channels by way of a single event, set the TCINT bit in the channel options parameter (OPT) to 1. Additionally, set the relevant bit in the CCE field to trigger off the next channel transfer specified by TCC. Reserved. You should always write 0 to this field.
70
Reserved
B-48
B.3.18 EDMA Channel Chain Enable Low Register (CCERL) (C64x) Figure B49. EDMA Channel Chain Enable Low Register (CCERL)
31 CCE R/W-0
Legend: R/W-x = Read/Write-Reset value
Table B52. EDMA Channel Chain Enable Low Register (CCERL) Field Values
Bit 310 Field CCE symval OF(value) Value 0FFFF FFFFh Description Channel 031 chain enable. To enable the EDMA controller to chain channels by way of a single event, set the TCINT or ATCINT bit in the channel options parameter (OPT) to 1. Additionally, set the relevant bit in the CCE field to trigger off the next channel transfer specified by the transfer complete code (TCC) or alternate transfer complete code (ATCC).
B.3.19 EDMA Channel Chain Enable High Register (CCERH) (C64x) Figure B50. EDMA Channel Chain Enable High Register (CCERH)
31 CCE R/W-0
Legend: R/W-x = Read/Write-Reset value
Table B53. EDMA Channel Chain Enable High Register (CCERH) Field Values
Bit 310 Field CCE symval OF(value) Value 0FFFF FFFFh Description Channel 3263 chain enable. To enable the EDMA controller to chain channels by way of a single event, set the TCINT or ATCINT bit in the channel options parameter (OPT) to 1. Additionally, set the relevant bit in the CCE field to trigger off the next channel transfer specified by the transfer complete code (TCC) or alternate transfer complete code (ATCC).
B-49
B.3.20 EDMA Event Register (ER) (C621x/C671x) Figure B51. EDMA Event Register (ER)
31 Reserved 16 15 EVT R-0
Legend: R/W-x = Read/Write-Reset value
symval OF(value)
Value 0 0FFFFh
Description Reserved. You should always write 0 to this field. Event. All events that are captured by the EDMA are latched in ER, even if that event is disabled.
B-50
B.3.21 EDMA Event Low Register (ERL) (C64x) Figure B51. EDMA Event Low Register (ERL)
31 EVT R-0
Legend: R/W-x = Read/Write-Reset value
Field EVT
symval OF(value)
Description Event 031. Events 031 captured by the EDMA are latched in ERL, even if that event is disabled.
B.3.22 EDMA Event High Register (ERH) (C64x) Figure B52. 1EDMA Event High Register (ERH)
31 EVT R-0
Legend: R/W-x = Read/Write-Reset value
Field EVT
symval OF(value)
Description Event 3263. Events 3263 captured by the EDMA are latched in ERH, even if that event is disabled.
B-51
B.3.23 EDMA Event Enable Register (EER) (C621x/C671x) Figure B53. EDMA Event Enable Register (EER)
31 Reserved 16 15 EE R/W-0
Legend: R/W-x = Read/Write-Reset value
B-52
B.3.24 EDMA Event Enable Low Register (EERL) (C64x) Figure B54. EDMA Event Enable Low Register (EERL)
31 EE R/W-0
Legend: R/W-x = Read/Write-Reset value
Field EE
symval OF(value)
Description Event 031 enable. Any of the event bits can be set to 1 to enable that event or be cleared to 0 to disable that event.
B.3.25 EDMA Event Enable High Register (EERH) (C64x) Figure B55. EDMA Event Enable High Register (EERH)
31 EE R/W-0
Legend: R/W-x = Read/Write-Reset value
Table B59. EDMA Event Enable High Register (EERH) Field Values
Bit 310
Field EE
symval OF(value)
Description Event 3263 enable. Any of the event bits can be set to 1 to enable that event or be cleared to 0 to disable that event.
B-53
B.3.26 EDMA Event Clear Register (ECR) (C621x/C671x) Figure B56. EDMA Event Clear Register (ECR)
31 Reserved 16 15 EC R/W-0
Legend: R/W-x = Read/Write-Reset value
Field Reserved EC
symval OF(value)
Value 0 0FFFFh
Description Reserved. You should always write 0 to this field. Event clear. Any of the event bits can be set to 1 to clear that event; a write of 0 has no effect.
B-54
B.3.27 EDMA Event Clear Low Register (ECRL) (C64x) Figure B57. EDMA Event Clear Low Register (ECRL)
31 EC R/W-0
Legend: R/W-x = Read/Write-Reset value
Table B61. EDMA Event Clear Low Register (ERCL) Field Values
Bit 310
Field EC
symval OF(value)
Description Event 031 clear. Any of the event bits can be set to 1 to clear that event; a write of 0 has no effect.
B.3.28 EDMA Event Clear High Register (ECRH) (C64x) Figure B58. EDMA Event Clear High Register (ECRH)
31 EC R/W-0
Legend: R/W-x = Read/Write-Reset value
Table B62. EDMA Event Clear High Register (ECRH) Field Values
Bit 310
Field EC
symval OF(value)
Description Event 3263 clear. Any of the event bits can be set to 1 to clear that event; a write of 0 has no effect.
B-55
B.3.29 EDMA Event Set Register (ESR) (C621x/C671x) Figure B59. EDMA Event Set Register (ESR)
31 Reserved 16 15 ES R/W-0
Legend: R/W-x = Read/Write-Reset value
B-56
B.3.30 EDMA Event Set Low Register (ESRL) (C64x) Figure B60. EDMA Event Set Low Register (ESRL)
31 ES R/W-0
Legend: R/W-x = Read/Write-Reset value
Table B64. EDMA Event Set Low Register (ESRL) Field Values
Bit 310 Field ES symval OF(value) Value 0FFFF FFFFh Description Event 031 set. Any of the event bits can be set to 1 to set the corresponding bit in the event low register (ERL); a write of 0 has no effect.
B.3.31 EDMA Event Set High Register (ESRH) (C64x) Figure B61. EDMA Event Set High Register (ESRH)
31 ES R/W-0
Legend: R/W-x = Read/Write-Reset value
Table B65. EDMA Event Set High Register (ESRH) Field Values
Bit 310 Field ES symval OF(value) Value 0FFFF FFFFh Description Event 3263 set. Any of the event bits can be set to 1 to set the corresponding bit in the event high register (ERH); a write of 0 has no effect.
B-57
B.3.32 EDMA Event Polarity Low Register (EPRL) Figure B62. EDMA Event Polarity Low Register (EPRL)
31 EP31 R/W-0 23 EP23 R/W-0 15 EP15 R/W-0 7 EP7 R/W-0 30 EP30 R/W-0 22 EP22 R/W-0 14 EP14 R/W-0 6 EP6 R/W-0 29 EP29 R/W-0 21 EP21 R/W-0 13 EP13 R/W-0 5 EP5 R/W-0 28 EP28 R/W-0 20 EP20 R/W-0 12 EP12 R/W-0 4 EP4 R/W-0 27 EP27 R/W-0 19 EP19 R/W-0 11 EP11 R/W-0 3 EP3 R/W-0 26 EP26 R/W-0 18 EP18 R/W-0 10 EP10 R/W-0 2 EP2 R/W-0 25 EP25 R/W-0 17 EP17 R/W-0 9 EP9 R/W-0 1 EP1 R/W-0 24 EP24 R/W-0 16 EP16 R/W-0 8 EP8 R/W-0 0 EP0 R/W-0
Table B66. EDMA Event Polarity Low Register (EPRL) Field Values
Bit 310 Field EP symval OF(value) Value 0FFFF FFFFh Description Event 031 polarity. A 32-bit unsigned value used to select a rising edge (bit value = 0) or falling edge (bit value = 1) to determine when an event is triggered on its input.
B-58
B.3.33 EDMA Event Polarity High Register (EPRH) Figure B63. EDMA Event Polarity High Register (EPRH)
31 EP63 R/W-0 23 EP55 R/W-0 15 EP47 R/W-0 7 EP39 R/W-0 30 EP62 R/W-0 22 EP54 R/W-0 14 EP46 R/W-0 6 EP38 R/W-0 29 EP61 R/W-0 21 EP53 R/W-0 13 EP45 R/W-0 5 EP37 R/W-0 28 EP60 R/W-0 20 EP52 R/W-0 12 EP44 R/W-0 4 EP36 R/W-0 27 EP59 R/W-0 19 EP51 R/W-0 11 EP43 R/W-0 3 EP35 R/W-0 26 EP58 R/W-0 18 EP50 R/W-0 10 EP42 R/W-0 2 EP34 R/W-0 25 EP57 R/W-0 17 EP49 R/W-0 9 EP41 R/W-0 1 EP33 R/W-0 24 EP56 R/W-0 16 EP48 R/W-0 8 EP40 R/W-0 0 EP32 R/W-0
Table B67. EDMA Event Polarity High Register (EPRH) Field Values
Bit 310 Field EP symval OF(value) Value 0FFFF FFFFh Description Event 3263 polarity. A 32-bit unsigned value used to select a rising edge (bit value = 0) or falling edge (bit value = 1) to determine when an event is triggered on its input.
B-59
B-60
Table B69. EMAC Control Module Transfer Control Register (EWTRCTRL) Field Values
Bit 317 64 field Reserved PRIORITY symval Value 0 07h Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Priority bits specify the relative priority of EMAC packet data transfers relative to other memory operations in the system. Although the default value is medium priority, since the EMAC data transfer is real time (once a packet transfer begins), this priority may need to be raised in some system. Urgent priority High priority Medium priority Low priority Reserved Allocation bits specifiy the number of outstanding EMAC requests that can be pending at any given time. Since the EMAC has only three internal FIFOs, an allocation amount of 3 is ideal.
B-61
16
2 EMACRST R/W-0
1 MDIORST R/W-0
0 INTEN R/W-0
Table B70. EMAC Control Module Interrupt Control Register (EWCTL) Field Values
Bit 313 2 field Reserved EMACRST NO YES 1 MDIORST NO YES 0 INTEN DISABLE ENABLE
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. EMAC reset bit.
0 1
0 1
MDIO is not in reset. MDIO is held in reset. EMAC and MDIO interrupt enable bit.
0 1
EMAC and MDIO interrupts are disabled. EMAC and MDIO interrupts are enabled.
B-62
Figure B66. EMAC Control Module Interrupt Timer Count Register (EWINTTCNT)
31 Reserved R-0
Legend: R = Read only; R/W = Read/Write; -n = value after reset
17 16 EWINTTCNT R/W-0
Table B71. EMAC Control Module Interrupt Timer Count Register (EWINTTCNT) Field Values
Bit 3117 160
symval
Value 0 01 FFFFh
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Interrupt timer count.
B-63
Receive Multicast/Broadcast/Promiscuous Channel Enable Register B.5.7 Receive Unicast Set Register Receive Unicast Clear Register Receive Maximum Length Register Receive Buffer Offset Register Receive Filter Low Priority Packets Threshold Register Receive Channel 07 Flow Control Threshold Registers Receive Channel 07 Free Buffer Count Registers MAC Control Register MAC Status Register Transmit Interrupt Status (Unmasked) Register Transmit Interrupt Status (Masked) Register Transmit Interrupt Mask Set Register Transmit Interrupt Mask Clear Register MAC Input Vector Register Receive Interrupt Status (Unmasked) Register Receive Interrupt Status (Masked) Register Receive Interrupt Mask Set Register Receive Interrupt Mask Clear Register B.5.8 B.5.9 B.5.10 B.5.11 B.5.12 B.5.13 B.5.14 B.5.15 B.5.16 B.5.17 B.5.18 B.5.19 B.5.20 B.5.21 B.5.22 B.5.23 B.5.24 B.5.25
B-64
B-65
B-66
16
8 7 TXMINORVER R-x
Table B73. Transmit Identification and Version Register (TXIDVER) Field Values
Bit 3116 field TXIDENT 4h 158 TXMAJORVER x 70 TXMINORVER x
symval
Value
Description Transmit identification value bits. EMAC Transmit major version value is the major version number. See the device-specific datasheet for the value. Transmit minor version value is the minor version number. See the device-specific datasheet for the value.
B-67
0 TXEN R/W-0
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Transmit enable bit.
0 1
B-68
3 2 R/W-0
TXTDNCH
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Transmit teardown channel bits determine the transmit channel to be torn down. The teardown register is read as 0. Teardown transmit channel 0. Teardown transmit channel 1. Teardown transmit channel 2. Teardown transmit channel 3. Teardown transmit channel 4. Teardown transmit channel 5. Teardown transmit channel 6. Teardown transmit channel 7.
B-69
16
8 7 RXMINORVER R-x
Table B76. Receive Identification and Version Register (RXIDVER) Field Values
Bit 3116 field RXIDENT 4h 158 RXMAJORVER x 70 RXMINORVER x
symval
Value
Description Receive identification value bits. EMAC Receive major version value is the major version number. See the device-specific datasheet for the value. Receive minor version value is the minor version number. See the device-specific datasheet for the value.
B-70
0 RXEN R/W-0
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Receive DMA enable bit.
0 1
B-71
3 2 R/W-0
RXTDNCH
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Receive teardown channel bits determine the receive channel to be torn down. The teardown register is read as 0. Teardown receive channel 0. Teardown receive channel 1. Teardown receive channel 2. Teardown receive channel 3. Teardown receive channel 4. Teardown receive channel 5. Teardown receive channel 6. Teardown receive channel 7.
B-72
28
RXNOCHAIN
27 Reserved R-0 19 18
25
24 RXCMFEN R/W-0 16
R/W-0
Table B79. Receive Multicast/Broadcast/Promiscuous Channel Enable Register (RXMBPENABLE) Field Values
Bit 31 30 field Reserved RXPASSCRC DISCARD INCLUDE
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Pass received CRC enable bit.
0 1
Received CRC is discarded for all channels and is not included in the buffer descriptor packet length field. Received CRC is transferred to memory for all channels and is included in the buffer descriptor packet length.
B-73
Table B79. Receive Multicast/Broadcast/Promiscuous Channel Enable Register (RXMBPENABLE) Field Values (Continued)
Bit 29 field RXQOSEN DISABLE ENABLE 28 RXNOCHAIN DISABLE ENABLE 0 1 0 1 symval Value Description Receive quality of service (QOS) enable bit. Receive QOS is disabled. Receive QOS is enabled. Receive no buffer chaining bit. Received frames can span multiple buffers. Receive DMA controller transfers each frame into a single buffer regardless of the frame or buffer size. All remaining frame data after the first buffer is discarded. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Receive copy MAC control frames enable bit. Enables MAC control frames to be transferred to memory. MAC control frames are normally acted upon (if enabled), but not copied to memory. MAC control frames that are pause frames will be acted upon if enabled in MACCONTROL, regardless of the value of RXCMFEN. Frames transferred to memory due to RXCMFEN will have the control bit set in their EOP buffer descriptor. DISABLE ENABLE 23 RXCSFEN 0 1 MAC control frames are filtered (but acted upon if enabled). MAC control frames are transferred to memory. Receive copy short frames enable bit. Enables frames or fragments shorter than 64 bytes to be copied to memory. Frames transferred to memory due to RXCSFEN will have the fragment or undersized bit set in their EOP buffer descriptor. Fragments are short frames that contain CRC/align/code errors and undersized are short frames without errors. DISABLE ENABLE
2725 24
Reserved RXCMFEN
0 1
B-74
Table B79. Receive Multicast/Broadcast/Promiscuous Channel Enable Register (RXMBPENABLE) Field Values (Continued)
Bit 22 field RXCEFEN symval Value Description Receive copy error frames enable bit. Enables frames containing errors to be transferred to memory. The appropriate error bit will be set in the frame EOP buffer descriptor. DISABLE ENABLE 21 RXCAFEN 0 1 Frames containing errors are filtered. Frames containing errors are transferred to memory. Receive copy all frames enable bit. Enables frames that do not address match (includes multicast frames that do not hash match) to be transferred to the promiscuous channel selected by PROMCH bits. Such frames will be marked with the no_match bit in their EOP buffer descriptor. DISABLE ENABLE 0 1 Frames that do not address match (includes multicast frames that do not hash match) are transferred to the promiscuous channel selected by PROMCH bits. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Receive promiscuous channel select bits. Select channel 0 to receive promiscuous frames. Select channel 1 to receive promiscuous frames. Select channel 2 to receive promiscuous frames. Select channel 3 to receive promiscuous frames. Select channel 4 to receive promiscuous frames. Select channel 5 to receive promiscuous frames. Select channel 6 to receive promiscuous frames. Select channel 7 to receive promiscuous frames. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect.
2019 1816
Reserved PROMCH
0 07h 0 1h 2h 3h 4h 5h 6h 7h
1514
Reserved
B-75
Table B79. Receive Multicast/Broadcast/Promiscuous Channel Enable Register (RXMBPENABLE) Field Values (Continued)
Bit 13 field BROADEN symval Value Description Receive broadcast enable bit. Enable received broadcast frames to be copied to the channel selected by BROADCH bits. DISABLE ENABLE 1211 108 Reserved BROADCH 0 1 0 07h Broadcast frames are filtered. Broadcast frames are copied to the channel selected by BROADCH bits. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Receive broadcast channel select bits. Selects the receive channel for reception of all broadcast frames when enabled by BROADEN bit. Select channel 0 to receive broadcast frames. Select channel 1 to receive broadcast frames. Select channel 2 to receive broadcast frames. Select channel 3 to receive broadcast frames. Select channel 4 to receive broadcast frames. Select channel 5 to receive broadcast frames. Select channel 6 to receive broadcast frames. Select channel 7 to receive broadcast frames. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Receive multicast enable bit. Enable received hash matching multicast frames to be copied to the channel selected by MULTCH bits. DISABLE ENABLE
0 1h 2h 3h 4h 5h 6h 7h 76 5 Reserved MULTEN 0
0 1
Multicast (group addressed) frames are filtered. Multicast frames are copied to the channel selected by MULTCH bits.
B-76
Table B79. Receive Multicast/Broadcast/Promiscuous Channel Enable Register (RXMBPENABLE) Field Values (Continued)
Bit 43 20 field Reserved MULTCH symval Value 0 07h Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Receive multicast channel select bits selects the receive channel for reception of all hash matching multicast frames when enabled by MULTEN bit. Select channel 0 to receive hash matching multicast frames. Select channel 1 to receive hash matching multicast frames. Select channel 2 to receive hash matching multicast frames. Select channel 3 to receive hash matching multicast frames. Select channel 4 to receive hash matching multicast frames. Select channel 5 to receive hash matching multicast frames. Select channel 6 to receive hash matching multicast frames. Select channel 7 to receive hash matching multicast frames.
0 1h 2h 3h 4h 5h 6h 7h
B-77
RXCH5SET RXCH4SET
RXCH1SET RXCH0SET
Legend: R = Read only; WS = Write 1 to set, write of 0 has no effect; -n = value after reset
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Receive channel 7 unicast enable set bit. Write 1 to set the enable, a write of 0 has no effect. No effect. Sets receive channel 7 unicast enable. Receive channel 6 unicast enable set bit. Write 1 to set the enable, a write of 0 has no effect. No effect. Sets receive channel 6 unicast enable.
B-78
Table B80. Receive Unicast Set Register (RXUNICASTSET) Field Values (Continued)
Bit 5 field RXCH5SET 0 1 4 RXCH4SET 0 1 3 RXCH3SET 0 1 2 RXCH2SET 0 1 1 RXCH1SET 0 1 0 RXCH0SET 0 1
symval
Value
Description Receive channel 5 unicast enable set bit. Write 1 to set the enable, a write of 0 has no effect. No effect. Sets receive channel 5 unicast enable. Receive channel 4 unicast enable set bit. Write 1 to set the enable, a write of 0 has no effect. No effect. Sets receive channel 4 unicast enable. Receive channel 3 unicast enable set bit. Write 1 to set the enable, a write of 0 has no effect. No effect. Sets receive channel 3 unicast enable. Receive channel 2 unicast enable set bit. Write 1 to set the enable, a write of 0 has no effect. No effect. Sets receive channel 2 unicast enable. Receive channel 1 unicast enable set bit. Write 1 to set the enable, a write of 0 has no effect. No effect. Sets receive channel 1 unicast enable. Receive channel 0 unicast enable set bit. Write 1 to set the enable, a write of 0 has no effect. No effect. Sets receive channel 0 unicast enable.
B-79
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Receive channel 7 unicast enable clear bit. Write 1 to clear the enable, a write of 0 has no effect. No effect. Clears receive channel 7 unicast enable. Receive channel 6 unicast enable clear bit. Write 1 to clear the enable, a write of 0 has no effect. No effect. Clears receive channel 6 unicast enable.
B-80
Table B81. Receive Unicast Clear Register (RXUNICASTCLEAR) Field Values (Continued)
Bit 5 field RXCH5CLR 0 1 4 RXCH4CLR 0 1 3 RXCH3CLR 0 1 2 RXCH2CLR 0 1 1 RXCH1CLR 0 1 0 RXCH0CLR 0 1
symval
Value
Description Receive channel 5 unicast enable clear bit. Write 1 to clear the enable, a write of 0 has no effect. No effect. Clears receive channel 5 unicast enable. Receive channel 4 unicast enable clear bit. Write 1 to clear the enable, a write of 0 has no effect. No effect. Clears receive channel 4 unicast enable. Receive channel 3 unicast enable clear bit. Write 1 to clear the enable, a write of 0 has no effect. No effect. Clears receive channel 3 unicast enable. Receive channel 2 unicast enable clear bit. Write 1 to clear the enable, a write of 0 has no effect. No effect. Clears receive channel 2 unicast enable. Receive channel 1 unicast enable clear bit. Write 1 to clear the enable, a write of 0 has no effect. No effect. Clears receive channel 1 unicast enable. Receive channel 0 unicast enable clear bit. Write 1 to clear the enable, a write of 0 has no effect. No effect. Clears receive channel 0 unicast enable.
B-81
16 15 RXMAXLEN R/W-5EEh
B-82
16 15 BUFFEROFFSET R/W-0
B-83
Figure B78. Receive Filter Low Priority Packets Threshold Register (RXFILTERLOWTHRESH)
31 Reserved R-0 15 Reserved R-0
Legend: R = Read only; R/W = Read/Write; -n = value after reset
16
8 7 FILTERTHRESH R/W-0
Table B84. Receive Filter Low Priority Packets Threshold Register (RXFILTERLOWTHRESH) Field Values
Bit 318 70 Field Reserved FILTERTHRESH symval Value 0 Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect.
0FFh Receive filter low threshold bits contain the free buffer count threshold value for filtering low priority incoming frames. This field should remain zero, if no filtering is desired.
B-84
16
8 7 FLOWTHRESH R/W-0
Table B85. Receive Channel n Flow Control Threshold Registers (RXnFLOWTHRESH) Field Values
Bit 318 70
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect.
0FFh Receive flow threshold bits contain the threshold value for issuing flow control on incoming frames (when enabled).
B-85
16 15 FREEBUF R/W-0
Table B86. Receive Channel n Free Buffer Count Registers (RXnFREEBUFFER) Field Values
Bit 3116 150 Field Reserved FREEBUF symval Value 0 0FFFFh Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Receive free buffer count bits contain the count of free buffers available. The RXFILTERLOWTHRESH value is compared with this field to determine if low priority frames should be filtered. The RXnFLOWTHRESH value is compared with this field to determine if receive flow control should be issued against incoming packets (if enabled). This is a write-to-increment field. This field rolls over to zero on overflow. If hardware flow control or QOS is used, the host must initialize this field to the number of available buffers (one register per channel). The EMAC decrements (by the number of buffers in the received frame) the associated channel register for each received frame. This is a write-to-increment field. The host must write this field with the number of buffers that have been freed due to host processing.
B-86
16
10
9 TXPTYPE R/W-0
8 Reserved R-0 0
FULLDUPLEX
3
RXFLOWEN
2 MTEST R/W-0
1
LOOPBACK
R/W-0
R/W-0
R/W-0
R/W-0
87 6
Reserved TXPACE
0 1
B-87
ENABLE
MTEST
0 1
B-88
symval
Value
0 1
24
20
19 Reserved R-0
16
12
11 Reserved R-0
1
RXFLOWACT
0
TXFLOWACT
R-0
R-0
R-0
B-89
NOERROR SOPERROR OWNERSHIP NOEOP NULLPTR NULLEN LENRRROR 19 1816 Reserved TXERRCH
0 1h 2h 3h 4h 5h 6h
7hFh Reserved 0 07h Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Transmit host error channel bits indicate which transmit channel the host error occurred on. This field is cleared to 0 on a host read. The host error occurred on transmit channel 0. The host error occurred on transmit channel 1. The host error occurred on transmit channel 2. The host error occurred on transmit channel 3. The host error occurred on transmit channel 4. The host error occurred on transmit channel 5. The host error occurred on transmit channel 6. The host error occurred on transmit channel 7.
DEFAULT
0 1h 2h 3h 4h 5h 6h 7h
B-90
NOERROR SOPERROR OWNERSHIP NOEOP NULLPTR NULLEN LENRRROR 11 108 Reserved RXERRCH
0 1h 2h 3h 4h 5h 6h
7hFh Reserved 0 07h Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Receive host error channel bits indicate which receive channel the host error occurred on. This field is cleared to 0 on a host read. The host error occurred on receive channel 0. The host error occurred on receive channel 1. The host error occurred on receive channel 2. The host error occurred on receive channel 3. The host error occurred on receive channel 4. The host error occurred on receive channel 5. The host error occurred on receive channel 6. The host error occurred on receive channel 7. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect.
DEFAULT
0 1h 2h 3h 4h 5h 6h 7h
73
Reserved
B-91
RXFLOWACT
TXFLOWACT
B-92
Table B89. Transmit Interrupt Status (Unmasked) Register (TXINTSTATRAW) Field Values
Bit 318 7 6 5 4 3 2 1 0
field Reserved TX7PEND TX6PEND TX5PEND TX4PEND TX3PEND TX2PEND TX1PEND TX0PEND
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. TX7PEND raw interrupt read (before mask) TX6PEND raw interrupt read (before mask) TX5PEND raw interrupt read (before mask) TX4PEND raw interrupt read (before mask) TX3PEND raw interrupt read (before mask) TX2PEND raw interrupt read (before mask) TX1PEND raw interrupt read (before mask) TX0PEND raw interrupt read (before mask)
B-93
Table B90. Transmit Interrupt Status (Masked) Register (TXINTSTATMASKED) Field Values
Bit 318 7 6 5 4 3 2 1 0
field Reserved TX7PEND TX6PEND TX5PEND TX4PEND TX3PEND TX2PEND TX1PEND TX0PEND
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. TX7PEND masked interrupt read TX6PEND masked interrupt read TX5PEND masked interrupt read TX4PEND masked interrupt read TX3PEND masked interrupt read TX2PEND masked interrupt read TX1PEND masked interrupt read TX0PEND masked interrupt read
B-94
Legend: R = Read only; WS = Write 1 to set, write of 0 has no effect; -n = value after reset
Table B91. Transmit Interrupt Mask Set Register (TXINTMASKSET) Field Values
Bit 318 7 field Reserved TX7MASK 0 1 6 TX6MASK 0 1 5 TX5MASK 0 1
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Transmit channel 7 interrupt mask set bit. Write 1 to enable interrupt, a write of 0 has no effect. No effect. Transmit channel 7 interrupt is enabled. Transmit channel 6 interrupt mask set bit. Write 1 to enable interrupt, a write of 0 has no effect. No effect. Transmit channel 6 interrupt is enabled. Transmit channel 5 interrupt mask set bit. Write 1 to enable interrupt, a write of 0 has no effect. No effect. Transmit channel 5 interrupt is enabled.
B-95
Table B91. Transmit Interrupt Mask Set Register (TXINTMASKSET) Field Values (Continued)
Bit 4 field TX4MASK 0 1 3 TX3MASK 0 1 2 TX2MASK 0 1 1 TX1MASK 0 1 0 TX0MASK 0 1
symval
Value
Description Transmit channel 4 interrupt mask set bit. Write 1 to enable interrupt, a write of 0 has no effect. No effect. Transmit channel 4 interrupt is enabled. Transmit channel 3 interrupt mask set bit. Write 1 to enable interrupt, a write of 0 has no effect. No effect. Transmit channel 3 interrupt is enabled. Transmit channel 2 interrupt mask set bit. Write 1 to enable interrupt, a write of 0 has no effect. No effect. Transmit channel 2 interrupt is enabled. Transmit channel 1 interrupt mask set bit. Write 1 to enable interrupt, a write of 0 has no effect. No effect. Transmit channel 1 interrupt is enabled. Transmit channel 0 interrupt mask set bit. Write 1 to enable interrupt, a write of 0 has no effect. No effect. Transmit channel 0 interrupt is enabled.
B-96
Legend: R = Read only; WC = Write 1 to clear, write of 0 has no effect; -n = value after reset
Table B92. Transmit Interrupt Mask Clear Register (TXINTMASKCLEAR) Field Values
Bit 318 7 field Reserved TX7MASK 0 1 6 TX6MASK 0 1 5 TX5MASK 0 1
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Transmit channel 7 interrupt mask clear bit. Write 1 to disable interrupt, a write of 0 has no effect. No effect. Transmit channel 7 interrupt is disabled. Transmit channel 6 interrupt mask clear bit. Write 1 to disable interrupt, a write of 0 has no effect. No effect. Transmit channel 6 interrupt is disabled. Transmit channel 5 interrupt mask clear bit. Write 1 to disable interrupt, a write of 0 has no effect. No effect. Transmit channel 5 interrupt is disabled.
B-97
Table B92. Transmit Interrupt Mask Clear Register (TXINTMASKCLEAR) Field Values (Continued)
Bit 4 field TX4MASK 0 1 3 TX3MASK 0 1 2 TX2MASK 0 1 1 TX1MASK 0 1 0 TX0MASK 0 1
symval
Value
Description Transmit channel 4 interrupt mask clear bit. Write 1 to disable interrupt, a write of 0 has no effect. No effect. Transmit channel 4 interrupt is disabled. Transmit channel 3 interrupt mask clear bit. Write 1 to disable interrupt, a write of 0 has no effect. No effect. Transmit channel 3 interrupt is disabled. Transmit channel 2 interrupt mask clear bit. Write 1 to disable interrupt, a write of 0 has no effect. No effect. Transmit channel 2 interrupt is disabled. Transmit channel 1 interrupt mask clear bit. Write 1 to disable interrupt, a write of 0 has no effect. No effect. Transmit channel 1 interrupt is disabled. Transmit channel 0 interrupt mask clear bit. Write 1 to disable interrupt, a write of 0 has no effect. No effect. Transmit channel 0 interrupt is disabled.
B-98
30 LINKINT R-0
29 Reserved R-0 8 7
18
17 R-0
16 R-0 0
HOSTPEND STATPEND
TXPEND R-0
symval
Value
Description MDIO module user interrupt (USERINT) pending status bit. MDIO module link change interrupt (LINKINT) pending status bit.
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. EMAC module host error interrupt pending (HOSTPEND) status bit. EMAC module statistics interrupt pending (STATPEND) status bit.
0FFh Receive channel 07 interrupt pending (RXPEND) status bit. Bit 8 is receive channel 0. 0FFh Transmit channel 07 interrupt pending (TXPEND) status bit. Bit 0 is transmit channel 0.
B-99
Table B94. Receive Interrupt Status (Unmasked) Register (RXINTSTATRAW) Field Values
Bit 318 7 6 5 4 3 2 1 0
field Reserved RX7PEND RX6PEND RX5PEND RX4PEND RX3PEND RX2PEND RX1PEND RX0PEND
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. RX7PEND raw interrupt read (before mask) RX6PEND raw interrupt read (before mask) RX5PEND raw interrupt read (before mask) RX4PEND raw interrupt read (before mask) RX3PEND raw interrupt read (before mask) RX2PEND raw interrupt read (before mask) RX1PEND raw interrupt read (before mask) RX0PEND raw interrupt read (before mask)
B-100
Table B95. Receive Interrupt Status (Masked) Register (RXINTSTATMASKED) Field Values
Bit 318 7 6 5 4 3 2 1 0
field Reserved RX7PEND RX6PEND RX5PEND RX4PEND RX3PEND RX2PEND RX1PEND RX0PEND
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. RX7PEND masked interrupt read RX6PEND masked interrupt read RX5PEND masked interrupt read RX4PEND masked interrupt read RX3PEND masked interrupt read RX2PEND masked interrupt read RX1PEND masked interrupt read RX0PEND masked interrupt read
B-101
Legend: R = Read only; WS = Write 1 to set, write of 0 has no effect; -n = value after reset
Table B96. Receive Interrupt Mask Set Register (RXINTMASKSET) Field Values
Bit 318 7 field Reserved RX7MASK 0 1 6 RX6MASK 0 1 5 RX5MASK 0 1
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Receive channel 7 interrupt mask set bit. Write 1 to enable interrupt, a write of 0 has no effect. No effect. Receive channel 7 interrupt is enabled. Receive channel 6 interrupt mask set bit. Write 1 to enable interrupt, a write of 0 has no effect. No effect. Receive channel 6 interrupt is enabled. Receive channel 5 interrupt mask set bit. Write 1 to enable interrupt, a write of 0 has no effect. No effect. Receive channel 5 interrupt is enabled.
B-102
Table B96. Receive Interrupt Mask Set Register (RXINTMASKSET) Field Values (Continued)
Bit 4 field RX4MASK 0 1 3 RX3MASK 0 1 2 RX2MASK 0 1 1 RX1MASK 0 1 0 RX0MASK 0 1
symval
Value
Description Receive channel 4 interrupt mask set bit. Write 1 to enable interrupt, a write of 0 has no effect. No effect. Receive channel 4 interrupt is enabled. Receive channel 3 interrupt mask set bit. Write 1 to enable interrupt, a write of 0 has no effect. No effect. Receive channel 3 interrupt is enabled. Receive channel 2 interrupt mask set bit. Write 1 to enable interrupt, a write of 0 has no effect. No effect. Receive channel 2 interrupt is enabled. Receive channel 1 interrupt mask set bit. Write 1 to enable interrupt, a write of 0 has no effect. No effect. Receive channel 1 interrupt is enabled. Receive channel 0 interrupt mask set bit. Write 1 to enable interrupt, a write of 0 has no effect. No effect. Receive channel 0 interrupt is enabled.
B-103
Legend: R = Read only; WC = Write 1 to clear, write of 0 has no effect; -n = value after reset
Table B97. Receive Interrupt Mask Clear Register (RXINTMASKCLEAR) Field Values
Bit 318 7 field Reserved RX7MASK 0 1 6 RX6MASK 0 1 5 RX5MASK 0 1
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Receive channel 7 interrupt mask clear bit. Write 1 to disable interrupt, a write of 0 has no effect. No effect. Receive channel 7 interrupt is disabled. Receive channel 6 interrupt mask clear bit. Write 1 to disable interrupt, a write of 0 has no effect. No effect. Receive channel 6 interrupt is disabled. Receive channel 5 interrupt mask clear bit. Write 1 to disable interrupt, a write of 0 has no effect. No effect. Receive channel 5 interrupt is disabled.
B-104
Table B97. Receive Interrupt Mask Clear Register (RXINTMASKCLEAR) Field Values (Continued)
Bit 4 field RX4MASK 0 1 3 RX3MASK 0 1 2 RX2MASK 0 1 1 RX1MASK 0 1 0 RX0MASK 0 1
symval
Value
Description Receive channel 4 interrupt mask clear bit. Write 1 to disable interrupt, a write of 0 has no effect. No effect. Receive channel 4 interrupt is disabled. Receive channel 3 interrupt mask clear bit. Write 1 to disable interrupt, a write of 0 has no effect. No effect. Receive channel 3 interrupt is disabled. Receive channel 2 interrupt mask clear bit. Write 1 to disable interrupt, a write of 0 has no effect. No effect. Receive channel 2 interrupt is disabled. Receive channel 1 interrupt mask clear bit. Write 1 to disable interrupt, a write of 0 has no effect. No effect. Receive channel 1 interrupt is disabled. Receive channel 0 interrupt mask clear bit. Write 1 to disable interrupt, a write of 0 has no effect. No effect. Receive channel 0 interrupt is disabled.
B-105
16
1 HOSTERRINT R-0
0 STATINT R-0
Table B98. MAC Interrupt Status (Unmasked) Register (MACINTSTATRAW) Field Values
Bit 312 1 0
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Host error interrupt bit. Raw interrupt read (before mask). Statistics interrupt bit. Raw interrupt read (before mask).
B-106
16
1 HOSTERRINT R-0
0 STATINT R-0
Table B99. MAC Interrupt Status (Masked) Register (MACINTSTATMASKED) Field Values
Bit 312 1 0
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Host error interrupt bit. Masked interrupt read. Statistics interrupt bit. Masked interrupt read.
B-107
16
1 HOSTERRINT R/WS-0
0 STATINT R/WS-0
Table B100. MAC Interrupt Mask Set Register (MACINTMASKSET) Field Values
Bit 312 1 field Reserved HOSTERRINT 0 1 0 STATINT 0 1
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Host error interrupt mask set bit. Write 1 to enable interrupt, a write of 0 has no effect. No effect. Host error interrupt is enabled. Statistics interrupt mask set bit. Write 1 to enable interrupt, a write of 0 has no effect. No effect. Statistics interrupt is enabled.
B-108
16
1 HOSTERRINT R/WC-0
0 STATINT R/WC-0
Table B101. MAC Interrupt Mask Clear Register (MACINTMASKCLEAR) Field Values
Bit 312 1 field Reserved HOSTERRINT 0 1 0 STATINT 0 1
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Host error interrupt mask clear bit. Write 1 to disable interrupt, a write of 0 has no effect. No effect. Host error interrupt is disabled. Statistics interrupt mask clear bit. Write 1 to disable interrupt, a write of 0 has no effect. No effect. Statistics interrupt is disabled.
B-109
Table B102. MAC Address Channel n Lower Byte Register (MACADDRLn) Field Values
Bit 318 70
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect.
Table B103. MAC Address Middle Byte Register (MACADDRM) Field Values
Bit 318 70
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect.
B-110
0 0
Table B104. MAC Address High Bytes Register (MACADDRH) Field Values
Bit 310 Field MACADDR32 symval Value Description
0FFFF FFFEh First 32 bits (bits 1647) of MAC specific address. Bit 0 is considered the group/specific bit and is hardwired to 0, writes have no effect. Bit 0 corresponds to the group/specific address bit. Specific addresses always have this bit cleared to 0.
B-111
This function is used as an offset into a 64-bit hash table stored in MACHASH1 and MACHASH2 that indicates whether a particular address should be accepted or not. The MAC address hash 1 register (MACHASH1) is shown in Figure B99 and described in Table B105.
B-112
B-113
30 ATTEMPT R/W-0
16
R/W-0 15
12 11 RETRYCOUNT R/W-0
Reserved
0Fh 0 03FFh Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Backoff current count bits allow the current value of the backoff counter to be observed for test purposes. This field is loaded automatically according to the backoff algorithm and is decremented by 1 for each slot time after the collision.
B-114
5 4 R/W-0
PACEVAL
B-115
16 15 PAUSETIMER R/W-0
B-116
16 15 PAUSETIMER R/W-0
B-117
Figure B105. Transmit Channel n DMA Head Descriptor Pointer Register (TXnHDP)
31 DESCPTR R/W-0
Legend: R/W = Read/Write; -n = value after reset
Table B111. Transmit Channel n DMA Head Descriptor Pointer Register (TXnHDP) Field Values
Bit 310 Field DESCPTR symval Value 0FFFF FFFFh Description Descriptor pointer bits. Writing a transmit DMA buffer descriptor address to a head pointer location initiates transmit DMA operations in the queue for the selected channel. Writing to these locations when they are nonzero is an error (except at reset). Host software must initialize these locations to zero on reset.
Figure B106. Receive Channel n DMA Head Descriptor Pointer Register (RXnHDP)
31 DESCPTR R/W-0
Legend: R/W = Read/Write; -n = value after reset
Table B112. Receive Channel n DMA Head Descriptor Pointer Register (RXnHDP) Field Values
Bit 310 Field DESCPTR symval Value 0FFFF FFFFh Description Descriptor pointer bits. Writing a receive DMA buffer descriptor address to this location allows receive DMA operations in the selected channel when a channel frame is received. Writing to these locations when they are nonzero is an error (except at reset). Host software must initialize these locations to zero on reset.
B-118
Table B113. Transmit Channel n Interrupt Acknowledge Register (TXnINTACK) Field Values
Bit 310 Field DESCPTR symval Value 0FFFF FFFFh Description Transmit host interrupt acknowledge register bits. This register is written by the host with the buffer descriptor address for the last buffer processed by the host during interrupt processing. The EMAC uses the value written to determine if the interrupt should be deasserted.
B-119
Table B114. Receive Channel n Interrupt Acknowledge Register (RXnINTACK) Field Values
Bit 310 Field DESCPTR symval Value 0FFFF FFFFh Description Receive host interrupt acknowledge register bits. This register is written by the host with the buffer descriptor address for the last buffer processed by the host during interrupt processing. The EMAC uses the value written to determine if the interrupt should be deasserted.
B-120
B-121
B-122
B.6.1 EMIF Global Control Register (GBLCTL) (C620x/C670x) Figure B110. EMIF Global Control Register (GBLCTL)
31 Reserved R/W-0 15 Reserved R/W-0 7 NOHOLD R/W-0
16
The reserved bit fields should always be written with their default values when modifying the GBLCTL. Writing a value other than the default value to these fields may cause improper operation. For C6202/C6203/C6204/C6205 this field is Reserved. The reserved bit fields should always be written with their default values when modifying the GBLCTL. Writing a value other than the default value to these fields may cause improper operation. Legend: R/W = Read/Write; R = Read only; -n = value after reset; -x = value is indeterminate after reset
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. ARDY input bit.
0 1
ARDY input is low. External device is not ready. ARDY input is high. External device is ready. HOLD input bit.
0 1
HOLD input is low. External device requesting EMIF. HOLD input is high. No external request pending. HOLDA output bit.
0 1
HOLDA output is low. External device owns EMIF. HOLDA output is high. External device does not own EMIF.
B-123
Table B116. EMIF Global Control Register (GBLCTL) Field Values (Continued)
Bit 7 field NOHOLD DISABLE ENABLE 6 SDCEN 0 1 symval Value Description External NOHOLD enable bit. No hold is disabled. Hold requests via the HOLD input are acknowledged via the HOLDA output at the earliest possible time. No hold is enabled. Hold requests via the HOLD input are ignored. SDCLK enable bit. This bit enables CLKOUT2 if SDRAM is used in system (specified by the MTYPE field in in the CE space control register). DISABLE ENABLE 5 SSCEN 0 1 SDCLK is held high. SDCLK is enabled to clock. SSCLK enable bit. This bit enables CLKOUT2 if SBSRAM is used in the system (specified by the MTYPE field in in the CE space control register). DISABLE ENABLE 4 CLK1EN DISABLE ENABLE 3 CLK2EN DISABLE ENABLE 2 SSCRT CPUOVR2 CPU 1 RBTR8 HPRI 8ACC
0 1
0 1
CLKOUT1 is held high. CLKOUT1 is enabled to clock. For C6201/C6701 DSP: CLKOUT2 is enabled/disabled using SSCEN/SDCEN bits.
0 1
CLKOUT2 is held high. CLKOUT2 is enabled to clock. For C6201/C6701 DSP: SBSRAM clock rate select bit.
0 1
SSCLK runs at 1/2 CPU clock rate. SSCLK runs at CPU clock rate. Requester arbitration mode bit.
0 1
The requester controls the EMIF until a high-priority request occurs. The requester controls the EMIF for a minimum of eight accesses.
B-124
Table B116. EMIF Global Control Register (GBLCTL) Field Values (Continued)
Bit 0 field MAP MAP0 MAP1
symval
Value
Description Map mode bit contains the value of the memory map mode of the device.
0 1
Map 0 is selected. External memory located at address 0. Map 1 is selected. Internal memory located at address 0.
B-125
B.6.2 EMIF Global Control Register (GBLCTL) (C621x/C671x) Figure B111. EMIF Global Control Register (GBLCTL)
31 Reserved R/W-0 15 Reserved R/W-0 7 NOHOLD R/W-0
16
10 ARDY R-0
9 HOLD R-0
8 HOLDA R-0 0
Reserved R/W-0
The reserved bit fields should always be written with their default values when modifying the GBLCTL. Writing a value other than the default value to these fields may cause improper operation. Available on C6713, C6712C, and C6711C devices only; on other C621x/C671x devices, this field is reserved with R/W-1. This bit is reserved on C6713, C6712C, and C6711C devices with R/W-0. Writing a value other than 0 to this bit may cause improper operation. Legend: R/W = Read/Write; R = Read only; -n = value after reset
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Bus request (BUSREQ) output bit indicates if the EMIF has an access/refresh pending or in progress.
0 1
BUSREQ output is low. No access/refresh pending. BUSREQ output is high. Access/refresh pending or in progress. ARDY input bit.
0 1
ARDY input is low. External device is not ready. ARDY input is high. External device is ready.
For CSL implementation, use the notation EMIF_GBLCTL_field_symval. ECLKOUT does not turn off/on glitch free via EKEN.
B-126
Table B117. EMIF Global Control Register (GBLCTL) Field Values (Continued)
Bit 9 field HOLD LOW HIGH 8 HOLDA LOW HIGH 7 NOHOLD DISABLE ENABLE 6 5 Reserved EKEN DISABLE ENABLE 4 CLK1EN 0 1 0 1 1 0 1 0 1 symval Value Description HOLD input bit. HOLD input is low. External device requesting EMIF. HOLD input is high. No external request pending. HOLDA output bit. HOLDA output is low. External device owns EMIF. HOLDA output is high. External device does not own EMIF. External NOHOLD enable bit. No hold is disabled. Hold requests via the HOLD input are acknowledged via the HOLDA output at the earliest possible time. No hold is enabled. Hold requests via the HOLD input are ignored. Reserved. The reserved bit location is always read as 1. A value written to this field has no effect. For C6713, C6712C, and C6711C DSP: ECLKOUT enable bit. ECLKOUT is held low. ECLKOUT is enabled to clock (default). Not on C6713, C6712C, and C6711C DSP: CLKOUT1 enable bit. On C6713, C6712C, and C6711C DSP, this bit must be programmed to 0 for proper operation. DISABLE ENABLE 3 CLK2EN DISABLE ENABLE 20
0 1
CLKOUT1 is held high. CLKOUT1 is enabled to clock. CLKOUT2 is enabled/disabled using SSCEN/SDCEN bits.
0 1 0
CLKOUT2 is held high. CLKOUT2 is enabled to clock. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect.
Reserved
For CSL implementation, use the notation EMIF_GBLCTL_field_symval. ECLKOUT does not turn off/on glitch free via EKEN.
B-127
B.6.3 EMIF Global Control Register (GBLCTL) (C64x) Figure B112. EMIF Global Control Register (GBLCTL)
31 Reserved R/W-0 15 Reserved R/W-0 7 NOHOLD R/W-0 6 EK1HZ R/W-1 14 13 BRMODE R/W-1 5 EK1EN R/W-1 12 Reserved R-0 4 CLK4EN R/W-1 11 BUSREQ R-0 3 CLK6EN R/W-1 20 19 EK2RATE R/W-10 10 ARDY R-0 2 Reserved R/W-1 1 Reserved R/W-0 18 17 EK2HZ R/W-0 9 HOLD R-0 16 EK2EN R/W-1 8 HOLDA R-0 0
symval
Value 0 03h 0 1h 2h 3h
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. ECLKOUT2 rate. ECLKOUT2 runs at: 1 EMIF input clock (ECLKIN, CPU/4 clock, or CPU/6 clock) rate. 1/2 EMIF input clock (ECLKIN, CPU/4 clock, or CPU/6 clock) rate. 1/4 EMIF input clock (ECLKIN, CPU/4 clock, or CPU/6 clock) rate. Reserved. ECLKOUT2 high-impedance control bit.
0 1
ECLKOUT2 continues clocking during Hold (if EK2EN = 1). ECLKOUT2 is in high-impedance state during Hold.
For CSL implementation, use the notation EMIFA_GBLCTL_field_symval or EMIFB_GBLCTL_field_symval. ECLKOUTn does not turn off/on glitch free via EKnEN or via EKnHZ. ECLKOUT2 rate should only be changed once during EMIF initialization from the default (1/4x) to either 1/2x or 1x. Applies to EMIFA only.
B-128
Table B118. EMIF Global Control Register (GBLCTL) Field Values (Continued)
Bit 16 field EK2EN DISABLE ENABLE 1514 13 Reserved BRMODE MSTATUS MRSTATUS 12 11 Reserved BUSREQ LOW HIGH 10 ARDY LOW HIGH 9 HOLD LOW HIGH 8 HOLDA LOW HIGH
symval
Value
0 1 0
ECLKOUT2 is held low. ECLKOUT2 is enabled to clock. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Bus request mode (BRMODE) bit indicates if BUSREQ shows memory refresh status.
0 1 0
BUSREQ indicates memory access pending or in progress. BUSREQ indicates memory access or refresh pending or in progress. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Bus request (BUSREQ) output bit indicates if the EMIF has an access/refresh pending or in progress.
0 1
BUSREQ output is low. No access/refresh pending. BUSREQ output is high. Access/refresh pending or in progress. ARDY input bit. Valid ARDY bit is shown only when performing asynchronous memory access (when async CEn is active).
0 1
ARDY input is low. External device is not ready. ARDY input is high. External device is ready. HOLD input bit.
0 1
HOLD input is low. External device requesting EMIF. HOLD input is high. No external request pending. HOLDA output bit.
0 1
HOLDA output is low. External device owns EMIF. HOLDA output is high. External device does not own EMIF.
For CSL implementation, use the notation EMIFA_GBLCTL_field_symval or EMIFB_GBLCTL_field_symval. ECLKOUTn does not turn off/on glitch free via EKnEN or via EKnHZ. ECLKOUT2 rate should only be changed once during EMIF initialization from the default (1/4x) to either 1/2x or 1x. Applies to EMIFA only.
B-129
Table B118. EMIF Global Control Register (GBLCTL) Field Values (Continued)
Bit 7 field NOHOLD DISABLE ENABLE 6 EK1HZ CLK HIGHZ 5 EK1EN DISABLE ENABLE 4 CLK4EN 0 1 0 1 0 1 symval Value Description External NOHOLD enable bit. No hold is disabled. Hold requests via the HOLD input are acknowledged via the HOLDA output at the earliest possible time. No hold is enabled. Hold requests via the HOLD input are ignored. ECLKOUT1 high-impedance control bit. ECLKOUT1 continues clocking during Hold (if EK1EN = 1). ECLKOUT1 is in high-impedance state during Hold. ECLKOUT1 enable bit. ECLKOUT1 is held low. ECLKOUT1 is enabled to clock. CLKOUT4 enable bit. CLKOUT4 pin is muxed with GP1 pin. Upon exiting reset, CLKOUT4 is enabled and clocking. After reset, CLKOUT4 may be configured as GP1 via the GPIO enable register (GPEN). DISABLE ENABLE 3 CLK6EN 0 1 CLKOUT4 is held high. CLKOUT4 is enabled to clock. CLKOUT 6 enable bit. CLKOUT6 pin is muxed with GP2 pin. Upon exiting reset, CLKOUT6 is enabled and clocking. After reset, CLKOUT6 may be configured as GP2 via the GPIO enable register (GPEN). DISABLE ENABLE 2 10
0 1 1 0
CLKOUT6 is held high. CLKOUT6 is enabled to clock. Reserved. The reserved bit location is always read as 1. A value written to this field has no effect. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect.
Reserved Reserved
For CSL implementation, use the notation EMIFA_GBLCTL_field_symval or EMIFB_GBLCTL_field_symval. ECLKOUTn does not turn off/on glitch free via EKnEN or via EKnHZ. ECLKOUT2 rate should only be changed once during EMIF initialization from the default (1/4x) to either 1/2x or 1x. Applies to EMIFA only.
B-130
B.6.4 EMIF CE Space Control Register (CECTL) (C620x/C670x) Figure B113. EMIF CE Space Control Register (CECTL)
31 WRSETUP R/W-1111 15 R/W-0 14 13 RDSTRB R/W-11 1111 28 27 WRSTRB R/W-11 1111 8 7 Rsvd R/W-0 6 MTYPE R/W-010 22 21 20 19 RDSETUP R/W-1111 4 3 Reserved R/W-0 2 1 0 16 WRHLD R/W-11
Reserved
RDHLD R/W-11
2722 2120
WRSTRB WRHLD
OF(value) OF(value)
03Fh 03h
1916
RDSETUP
OF(value)
0Fh
1514 138 7
OF(value)
0 03Fh 0
For CSL implementation, use the notation EMIF_CECTL_field_symval. Clock cycles are in terms of CLKOUT1 for C620x/C670x DSP.
B-131
Table B119. EMIF CE Space Control Register (CECTL) Field Values (Continued)
Bit 64 field MTYPE ASYNC8 ASYNC16 ASYNC32 SDRAM32 SBSRAM32 32 10 Reserved RDHLD OF(value) 0 1h 2h 3h 4h 5h7h 0 03h symval Value Description Memory type of the corresponding CE spaces. 8-bit-wide ROM (CE1 only) 16-bit-wide ROM (CE1 only) 32-bit-wide asynchronous interface 32-bit-wide SDRAM (CE0, CE2, CE3 only) 32-bit-wide SBSRAM Reserved Reserved. The reserved bit location is always read as zero. A value written to this field has no effect. Read hold width. Number of clock cycles that address (EA) and byte strobes (BE[0-3]) are held after read strobe rises. For asynchronous read accesses, this is also the hold time of AOE after ARE rising.
For CSL implementation, use the notation EMIF_CECTL_field_symval. Clock cycles are in terms of CLKOUT1 for C620x/C670x DSP.
B-132
B.6.5 EMIF CE Space Control Register (CECTL) (C621x/C671x) Figure B114. EMIF CE Space Control Register (CECTL)
31 WRSETUP R/W-1111 15 TA R/W-11 14 13 RDSTRB R/W-11 1111 28 27 WRSTRB R/W-11 1111 8 7 MTYPE R/W-0010 22 21 20 19 RDSETUP R/W-1111 4 3 Reserved R-0 2 RDHLD R/W-011 0 16
WRHLD R/W-11
WRSETUP OF(value)
2722 2120
WRSTRB WRHLD
OF(value) OF(value)
03Fh 03h
1916
RDSETUP
OF(value)
0Fh
1514
TA
OF(value)
03h
138
RDSTRB
OF(value)
03Fh
For CSL implementation, use the notation EMIF_CECTL_field_symval. Clock cycles are in terms of ECLKOUT for C621x/C671x DSP. 32-bit interfaces (MTYPE=0010b, 0011b, 0100b) do not apply to C6712 DSP.
B-133
Table B120. EMIF CE Space Control Register (CECTL) Field Values (Continued)
Bit 74 field MTYPE ASYNC8 ASYNC16 ASYNC32 SDRAM32 SBSRAM32 SDRAM8 SDRAM16 SBSRAM8 SYNC8 SBSRAM16 SYNC16 3 20 Reserved RDHLD OF(value) symval Value 0Fh 0 1h 2h 3h 4h 5h7h 8h 9h Ah Ah Bh Bh Description Memory type of the corresponding CE spaces. 8-bit-wide asynchronous interface. 16-bit-wide asynchronous interface. 32-bit-wide asynchronous interface. 32-bit-wide SDRAM. 32-bit-wide SBSRAM. Reserved. 8-bit-wide SDRAM. 16-bit-wide SDRAM. 8-bit-wide SBSRAM. If C6712 DSP: 8-bit-wide programmable synchronous memory. 16-bit-wide SBSRAM. If C6712 DSP: 16-bit-wide programmable synchronous memory.
ChFh Reserved. 0 07h Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Read hold width. Number of clock cycles that address (EA) and byte strobes (BE) are held after read strobe rises. For asynchronous read accesses, this is also the hold time of AOE after ARE rising.
For CSL implementation, use the notation EMIF_CECTL_field_symval. Clock cycles are in terms of ECLKOUT for C621x/C671x DSP. 32-bit interfaces (MTYPE=0010b, 0011b, 0100b) do not apply to C6712 DSP.
B-134
B.6.6 EMIF CE Space Control Register (CECTL) (C64x) Figure B115. EMIF CE Space Control Register (CECTL)
31 WRSETUP R/W-1111 15 TA R/W-11 14 13 RDSTRB R/W-11 1111 28 27 WRSTRB R/W-11 1111 8 7 MTYPE R/W-0 22 21 20 19 RDSETUP R/W-1111 4 3 WRHLDMSB R/W-0 2 RDHLD R/W-011 0 16 WRHLD R/W-11
2722 2120
WRSTRB WRHLD
OF(value) OF(value)
03Fh 03h
1916
RDSETUP
OF(value)
0Fh
1514
TA
OF(value)
03h
138
RDSTRB
OF(value)
03Fh
For CSL implementation, use the notation EMIFA_CECTL_field_symval or EMIFB_CECTL_field_symval. Clock cycles are in terms of ECLKOUT1 for C64x DSP. 32-bit and 64-bit interfaces (MTYPE=0010b, 0011b, 0100b, 1100b, 1101b, 1110b) do not apply to C64x EMIFB.
B-135
Table B121. EMIF CE Space Control Register (CECTL) Field Values (Continued)
Bit 74 field MTYPE ASYNC8 ASYNC16 ASYNC32 SDRAM32 SYNC32 SDRAM8 SDRAM16 SYNC8 SYNC16 ASYNC64 SDRAM64 SYNC64 3 20 WRHLDMSB RDHLD OF(value) OF(value) symval Value 0Fh 0 1h 2h 3h 4h 5h7h 8h 9h Ah Bh Ch Dh Eh Fh 01 07h Description Memory type of the corresponding CE spaces. 8-bit-wide asynchronous interface. 16-bit-wide asynchronous interface. 32-bit-wide asynchronous interface. 32-bit-wide SDRAM. 32-bit-wide programmable synchronous memory. Reserved. 8-bit-wide SDRAM. 16-bit-wide SDRAM. 8-bit-wide programmable synchronous memory. 16-bit-wide programmable synchronous memory. 64-bit-wide asynchronous interface. 64-bit-wide SDRAM. 64-bit-wide programmable synchronous memory. Reserved. Write hold width MSB is the most-significant bit of write hold. Read hold width. Number of clock cycles that address (EA) and byte strobes (BE) are held after read strobe rises. For asynchronous read accesses, this is also the hold time of AOE after ARE rising.
For CSL implementation, use the notation EMIFA_CECTL_field_symval or EMIFB_CECTL_field_symval. Clock cycles are in terms of ECLKOUT1 for C64x DSP. 32-bit and 64-bit interfaces (MTYPE=0010b, 0011b, 0100b, 1100b, 1101b, 1110b) do not apply to C64x EMIFB.
B-136
B.6.7 EMIF CE Space Secondary Control Register (CESEC) (C64x) Figure B116. EMIF CE Space Secondary Control Register (CESEC)
31 Reserved R/W-0 15 Reserved R/W-0
Legend: R/W = Read/Write; -n = value after reset
16
6 SNCCLK R/W-0
5 RENEN R/W-0
4 R/W-0
3 R/W-0
2 1
CEEXT SYNCWL
SYNCRL R/W-10
Table B122. EMIF CE Space Secondary Control Register (CESEC) Field Values
Bit 317 6 field Reserved SNCCLK ECLKOUT1 ECLKOUT2 5 RENEN ADS 0 0 1 symval Value 0 Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Synchronization clock selection bit. Control/data signals for this CE space are synchronized to ECLKOUT1. Control/data for this CE space are synchronized to ECLKOUT2. Read Enable enable bit. ADS mode. SADS/SRE signal acts as SADS signal. SADS goes active for reads, writes, and deselect. Deselect is issued after a command is completed if no new commands are pending from the EDMA. (used for SBSRAM or ZBT SRAM interface). Read enable mode. SADS/SRE signal acts as SRE signal. SRE goes low only for reads. No deselect cycle is issued. (used for FIFO interface). CE extension register ENABLE BIT. INACTIVE ACTIVE 0 1 CE goes inactive after the final command has been issued (not necessarily when all the data has been latched). On read cycles, the CE signal will go active when SOE goes active and will stay active until SOE goes inactive. The SOE timing is controlled by SYNCRL. (used for synchronous FIFO reads with glue, where CE gates OE).
READ
CEEXT
B-137
Table B122. EMIF CE Space Secondary Control Register (CESEC) Field Values (Continued)
Bit 32 field SYNCWL 0CYCLE 1CYCLE 2CYCLE 3CYCLE 10 SYNCRL 0CYCLE 1CYCLE 2CYCLE 3CYCLE
symval
Description Synchronous interface data write latency. 0 cycle read latency. 1 cycle read latency. 2 cycle read latency. 3 cycle read latency. Synchronous interface data read latency. 0 cycle read latency. 1 cycle read latency. 2 cycle read latency. 3 cycle read latency.
B-138
B.6.8 EMIF SDRAM Control Register (SDCTL) (C620x/C670x) Figure B117. EMIF SDRAM Control Register (SDCTL)
31 Reserved R/W-0 15 TRC R/W-1111
Legend: R/W-x = Read/Write-Reset value
27
26 SDWID R/W-0
25 RFEN R/W-1
24 INIT W-1
23 TRCD R/W-1000
20 19 TRP R/W-1000
16
12 11 Reserved R/W-0
2320
TRCD
OF(value)
0Fh
For CSL implementation, use the notation EMIF_SDCTL_field_symval. tcyc refers to the EMIF clock period, which is equal to CLKOUT2 period for C620x/C670x DSP.
B-139
Table B123. EMIF SDRAM Control Register (SDCTL) Field Values (Continued)
Bit 1916 1512 110
Description Specifies the tRC value of the SDRAM in EMIF clock cycles. TRP = tRP / tcyc 1 Specifies the tRC value of the SDRAM in EMIF clock cycles. TRC = tRC / tcyc 1 Reserved. The reserved bit location is always read as 0. A value written to this field has no effect.
For CSL implementation, use the notation EMIF_SDCTL_field_symval. tcyc refers to the EMIF clock period, which is equal to CLKOUT2 period for C620x/C670x DSP.
B-140
B.6.9 EMIF SDRAM Control Register (SDCTL) (C621x/C671x/C64x) Figure B118. EMIF SDRAM Control Register (SDCTL)
31 Reserved R/W-0 15 TRC R/W-1111
Legend: R/W-x = Read/Write-Reset value
30 SDBSZ R/W-0
29
28 27
26
25 RFEN R/W-1
24 INIT W-0
23 TRCD R/W-0100
20 19 TRP R/W-1000
16
SDRSZ R/W-0
SDCSZ R/W-0
12 11 Reserved R/W-0
symval
Value Description 0 Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. SDRAM bank size bit. 0 1 03h 0 1h 2h 3h 03h 0 1h 2h 3h One bank-select pin (two banks). Two bank-select pins (four banks). SDRAM row size bits. 11 row address pins (2048 rows per bank). 12 row address pins (4096 rows per bank). 13 row address pins (8192 rows per bank). Reserved. SDRAM column size bits. 9 column address pins (512 elements per row). 8 column address pins (256 elements per row). 10 column address pins (1024 elements per row). Reserved.
For CSL implementation, use the notation EMIF_SDCTL_field_symval. tcyc refers to the EMIF clock period, which is equal to ECLKOUT period for C621x/C671x DSP; ECLKOUT1 period for the C64x.
B-141
Table B124. EMIF SDRAM Control Register (SDCTL) Field Values (Continued)
Bit 25 field RFEN symval Value Description Refresh enable bit. If SDRAM is not used, be sure RFEN = 0; otherwise, BUSREQ may become asserted when SDRAM timer counts down to 0. DISABLE ENABLE 24 INIT NO YES 0 1 0 1 SDRAM refresh is disabled. SDRAM refresh is enabled. Initialization bit. This write-only bit forces initialization of all SDRAM present. Reading this bit returns an undefined value. No effect. Initialize SDRAM in each CE space configured for SDRAM. The CPU should initialize all of the CE space control registers and SDRAM extension register before setting INIT = 1. Specifies the tRCD value of the SDRAM in EMIF clock cycles. TRCD = tRCD / tcyc 1 Specifies the tRC value of the SDRAM in EMIF clock cycles. TRP = tRP / tcyc 1 Specifies the tRC value of the SDRAM in EMIF clock cycles. TRC = tRC / tcyc 1 Reserved. The reserved bit location is always read as 0. A value written to this field has no effect.
For CSL implementation, use the notation EMIF_SDCTL_field_symval. tcyc refers to the EMIF clock period, which is equal to ECLKOUT period for C621x/C671x DSP; ECLKOUT1 period for the C64x.
B-142
B.6.10 EMIF SDRAM Control Register (SDCTL) (C64x with EMIFA and EMIFB) Figure B119. EMIF SDRAM Control Register (SDCTL)
31 Reserved R/W-0 15 TRC R/W-1111 30 SDBSZ R/W-0 29 28 27 26 25 RFEN R/W-1 24 INIT W-0 23 TRCD R/W-0100 20 19 TRP R/W-1000 1 Reserved R/W-0 0 SLFRFR R/W-0 16 SDRSZ R/W-0 SDCSZ R/W-0
12 11
Legend: R/W-x = Read/Write-Reset value SLFRFR only applies to EMIFA. Bit 0 is Reserved, R/W-0, on EMIFB.
symval
Value 0
Description Reserved. The reserved bit location is always read as zero. A value written to this field has no effect. SDRAM bank size
0 1
One bank-select pin (two banks) Two bank-select pins (four banks) SDRAM row size
0 1h 2h 3h
11 row address pins (2048 rows per bank) 12 row address pins (4096 rows per bank) 13 row address pins (8192 rows per bank) Reserved SDRAM column size
0 1h 2h 3h
9 column address pins (512 elements per row) 8 column address pins (256 elements per row) 10 column address pins (1024 elements per row) Reserved
For CSL implementation, use the notation EMIFA_SDCTL_field_symval or EMIFB_SDCTL_field_symval. TRCD specifies the number of ECLKOUT1 cycles between an ACTV command and a READ or WRT command (CAS). The specified separation is maintained while driving write data one cycle earlier. t cyc refers to the EMIF clock period, which is equal to or ECLKOUT1 period for the C64x.
B-143
Table B125. EMIF SDRAM Control Register (SDCTL) Field Values (Continued)
Bit 25 field RFEN symval Value Description Refresh enable bit. If SDRAM is not used, be sure RFEN = 0; otherwise, BUSREQ may become asserted when SDRAM timer counts down to 0. DISABLE ENABLE 24 INIT NO YES 0 1 0 1 SDRAM refresh is disabled SDRAM refresh is enabled Initialization bit. This write-only bit forces initialization of all SDRAM present. Reading this bit returns an undefined value. No effect Initialize SDRAM in each CE space configured for SDRAM. EMIF automatically changes INIT back to 0 after SDRAM initialization is performed. Specifies the tRCD value of the SDRAM in EMIF clock cycles TRCD = tRCD / tcyc 1 Specifies the tRP value of the SDRAM in EMIF clock cycles TRP = tRP / tcyc 1 Specifies the tRC value of the SDRAM in EMIF clock cycles TRC = tRC / tcyc 1 Reserved. The reserved bit location is always read as zero. A value written to this field has no effect. Self-refresh mode, if SDRAM is used in the system: 0 1 Self-refresh mode disabled Self-refresh mode enabled If SDRAM is not used: 0 1
For CSL implementation, use the notation EMIFA_SDCTL_field_symval or EMIFB_SDCTL_field_symval. TRCD specifies the number of ECLKOUT1 cycles between an ACTV command and a READ or WRT command (CAS). The specified separation is maintained while driving write data one cycle earlier. t cyc refers to the EMIF clock period, which is equal to or ECLKOUT1 period for the C64x.
B-144
B.6.11 EMIF SDRAM Timing Register (SDTIM) Figure B120. EMIF SDRAM Timing Register (SDTIM) (C620x/C670x)
31 Reserved R/W-0
Legend: R/W-x = Read/Write-Reset value
24 23 CNTR R-040h
12 11 PERIOD R/W-040h
XRFR R/W-0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Extra refreshes controls the number of refreshes performed to SDRAM when the refresh counter expires. 1 refresh. 2 refreshes. 3 refreshes. 4 refreshes. Current value of the refresh counter. Refresh period in EMIF clock cycles.
EMIFA_SDTIM_field_symval, or
CNTR PERIOD
OF(value) OF(value)
0FFFh 0FFFh
For CSL implementation, use the notation EMIF_SDTIM_field_symval, EMIFB_SDTIM_field_symval. For C620x/C670x, EMIF clock cycles = CLKOUT2 cycles. For C621x/C671x, EMIF clock cycles = ECLKOUT cycles. For C64x, EMIF clock cycles = ECLKOUT1 cycles.
B-145
B.6.12 EMIF SDRAM Extension Register (SDEXT) (C621x/C671x/C64x) Figure B122. EMIF SDRAM Extension Register (SDEXT)
31 Reserved R/W-0 11 RD2DEAC R/W-11 10 9 RD2RD R/W-1 8 THZP R/W-10 21 20 WR2RD R/W-1 7 6 TWR R/W-01 19 R/W-01 5 18 17 WR2WR R/W-1 4 TRRD R/W-1 3 TRAS R/W-111 16 R/W-11 15 14 RD2WR R/W-101 1 0 TCL R/W-1 12 WR2DEAC R2WDQM
1918
WR2DEAC
OF(value)
17
WR2WR
OF(value)
1615
R2WDQM
OF(value)
1412
RD2WR
OF(value)
07h
1110
RD2DEAC
OF(value)
03h
For CSL implementation, use the notation EMIF_SDEXT_field_symval, EMIFA_SDEXT_field_symval, or EMIFB_SDEXT_field_symval. For C64x, ECLKOUT referenced in this table is equivalent to ECLKOUT1. t cyc refers to the EMIF clock period, which is equal to ECLKOUT period for the C621x/C671x, ECLKOUT1 period for C64x.
B-146
Table B127. EMIF SDRAM Extension Register (SDEXT) Field Values (Continued)
Bit 9 field RD2RD symval OF(value) 0 1 87 THZP OF(value) 03h Value Description Specifies number of cycles between READ to READ command (same CE space) of the SDRAM in ECLKOUT cycles READ to READ = 1 ECLKOUT cycle READ to READ = 2 ECLKOUT cycle Specifies tHZP (also known as tROH) value of the SDRAM in ECLKOUT cycles THZP = tHZP / tcyc 1 Specifies tWR value of the SDRAM in ECLKOUT cycles TWR = tWR / tcyc 1 Specifies tRRD value of the SDRAM in ECLKOUT cycles 0 1 31 0 TRAS TCL OF(value) OF(value) 0 1
65 4
TWR TRRD
OF(value) OF(value)
03h
TRRD = 2 ECLKOUT cycles TRRD = 3 ECLKOUT cycles Specifies tRAS value of the SDRAM in ECLKOUT cycles TRAS = tRAS / tcyc 1 Specified CAS latency of the SDRAM in ECLKOUT cycles CAS latency = 2 ECLKOUT cycles CAS latency = 3 ECLKOUT cycles
07h
For CSL implementation, use the notation EMIF_SDEXT_field_symval, EMIFA_SDEXT_field_symval, or EMIFB_SDEXT_field_symval. For C64x, ECLKOUT referenced in this table is equivalent to ECLKOUT1. t cyc refers to the EMIF clock period, which is equal to ECLKOUT period for the C621x/C671x, ECLKOUT1 period for C64x.
B-147
B.6.13 EMIF Peripheral Device Transfer Control Register (PDTCTL) (C64x) Figure B123. EMIF Peripheral Device Transfer Control Register (PDTCTL)
31 Reserved R-0
Legend: R/W = Read/Write; R = Read only; -n = value after reset
4 3 PDTWL R/W-0
2 1 PDTRL R/W-0
Table B128. EMIF Peripheral Device Transfer Control Register (PDTCTL) Field Values
Bit 314 32 field Reserved PDTWL 0CYCLE 1CYCLE 2CYCLE 3CYCLE 10 PDTRL 0CYCLE 1CYCLE 2CYCLE 3CYCLE
symval
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. PDT write latency bits. PDT signal is asserted 0 cycles prior to the data phase of a write transaction. PDT signal is asserted 1 cycle prior to the data phase of a write transaction. PDT signal is asserted 2 cycles prior to the data phase of a write transaction. PDT signal is asserted 3 cycles prior to the data phase of a write transaction. PDT read latency bits. PDT signal is asserted 0 cycles prior to the data phase of a read transaction. PDT signal is asserted 1 cycle prior to the data phase of a read transaction. PDT signal is asserted 2 cycles prior to the data phase of a read transaction. PDT signal is asserted 3 cycles prior to the data phase of a read transaction.
B-148
B.7.1 GPIO Enable Register (GPEN) Figure B124. GPIO Enable Register (GPEN)
31 Reserved R-0 15 GPXEN R/W-0
Legend: R/W = Read/Write; -n = value after reset
16
B-149
Value 0
Description Reserved. The reserved bit location is always read as zero. A value written to this field has no effect. GPIO Mode enable GPx pin is disabled as general-purpose input/output pin. It does not function as a GPIO pin and defaults to high impedance state. GPx pin is enabled as general-purpose input/output pin. It defaults to high impedance state.
B.7.2 GPIO Direction Register (GPDIR) Figure B125. GPIO Direction Register (GPDIR)
31 Reserved R-0 15 GPXDIR R/W-0
Legend: R/W = Read/Write; -n = value after reset
16
B-150
B.7.3 GPIO Value Register (GPVAL) Figure B126. GPIO Value Register (GPVAL)
31 Reserved R-0 15 GPXVAL R/W-0
Legend: R/W = Read/Write; -n = value after reset
16
B-151
B.7.4 GPIO Delta High Register (GPDH) Figure B127. GPIO Delta High Register (GPDH)
31 Reserved R-0 15 GPXDH R/W-0
Legend: R/W = Read/Write; -n = value after reset
16
B-152
B.7.5 GPIO High Mask Register (GPHM) Figure B128. GPIO High Mask Register (GPHM)
31 Reserved R-0 15 GPXHM R/W-0
Legend: R/W = Read/Write; -n = value after reset
16
Interrupt/event generation disabled for GPx. The value or transition on GPx does not cause an interrupt/event generation. Interrupt/event generation enabled for GPx.
B-153
B.7.6 GPIO Delta Low Register (GPDL) Figure B129. GPIO Delta Low Register (GPDL)
31 Reserved R-0 15 GPXDL R/W-0
Legend: R/W = Read/Write; -n = value after reset
16
B-154
B.7.7 GPIO Low Mask Register (GPLM) Figure B130. GPIO Low Mask Register (GPLM)
31 Reserved R-0 15 GPXLM R/W-0
Legend: R/W = Read/Write; -n = value after reset
16
Interrupt/event generation disabled for GPx. The value or transition on GPx does not cause an interrupt/event generation. Interrupt/event generation enabled for GPx.
B-155
B.7.8 GPIO Global Control Register (GPGC) Figure B131. GPIO Global Control Register (GPGC)
31 Reserved R-0 7 Reserved R-0 6 5 GP0M R/W-0 4 GPINT0M R/W-0 3 Reserved R-0 2 GPINTPOL R/W-0 1 LOGIC R/W-0 0 GPINTDV R/W-0 8
symval
Value 0
Description Reserved. The reserved bit location is always read as zero. A value written to this field has no effect. GP0 Output Mode. Applies only if GP0 is configured as an output (GP0DIR = 1 in the GPDIR register).
0 1
GPIO ModeGP0 output is based on GP0 value (GP0VAL in GPVAL register) Logic ModeGP0 output is based on the value of internal Logic Mode interrupt/event signal GPINT. GPINT0 interrupt/event generation mode.
0 1 0
Pass Through ModeGPINT0 interrupt/event generation is based on GP0 input value (GP0VAL in the GPVAL register). Logic ModeGPINT0 interrupt/event generation is based on GPINT. Reserved. The reserved bit location is always read as zero. A value written to this field has no effect. GPINT Polarity. Applies to Logic Mode (GPINT0M = 1) only.
0 1
GPINT is active (high) when the logic combination of the GPIO inputs is evaluated true. GPINT is active (high) when the logic combination of the GPIO inputs is evaluated false.
B-156
Table B137. GPIO Global Control Register (GPGC) Field Values (Continued)
Bit 1 field LOGIC ORMODE ANDMODE 0 GPINTDV DELTAMODE 0 0 1 symval Value Description GPINT Logic. Applies to Logic Mode (GPINT0M = 1) only. OR ModeGPINT is generated based on the logical-OR of all GPx events enabled in the GPHM or GPLM registers. AND ModeGPINT is generated based on the logical-AND of all GPx events enabled in the GPHM or GPLM registers. GPINT Delta/Value Mode. Applies to Logic Mode (GPINT0M = 1) only. Delta ModeGPINT is generated based on a logic combination of transitions on the GPx pins. The corresponding bits in the GPHM and/or GPLM registers must be set. Value ModeGPINT is generated based on a logic combination of values on the GPx pins. The corresponding bits in the GPHM and/or GPLM registers must be set.
VALUEMODE
B-157
B.7.9 GPIO Interrupt Polarity Register (GPPOL) Figure B132. GPIO Interrupt Polarity Register (GPPOL)
31 Reserved R-0 15 Reserved R-0
Legend: R/W = Read/Write; -n = value after reset
16
8 7 GPINTXPOL R/W-0
GPINTXPOL OF(value)
B-158
Register Name HPI data register HPI address write register HPI address read register HPI control register HPI transfer request control register
Host access to the HPIA updates both HPIAW and HPIAR. The CPU can access HPIAW and HPIAR, independently.
B-159
B-160
B-161
Legend: H = Host access; R = Read only; R/W = Read/Write; -n = value after reset
(b) CPU Reference View 31 Reserved R-0 15 Reserved R-0 5 4 FETCH R-0 3 HRDY R-1 2 HINT R/W-0 1 DSPINT R/W-0 0 HWOB R-0 16
B-162
Legend: H = Host access; R = Read only; R/W = Read/Write; -n = value after reset; -x = value is indeterminate after reset
16
3 HRDY R-1
2 HINT R/W-0
1 DSPINT R/W-0
0 HWOB R-0
B-163
Reserved
Legend: H = Host access; R = Read only; R/W = Read/Write; -n = value after resett; -x = value is indeterminate after reset These bits are writable fields and must be written with 0; otherwise, operation is undefined.
(b) CPU Reference View 31 Reserved R-0 15 Reserved R/W-0 14 R-0 8 7 Reserved R-0 6 Reserved R-0 4 3 HRDY R-1 2 HINT R/W-0 1 DSPINT R/W-0 0 HWOB R-0 16
Reserved
Legend: R = Read only; R/W = Read/Write; -n = value after reset These bits are writable fields and must be written with 0; otherwise, operation is undefined.
B-164
19, 3
HRDY 0 1
The internal bus is waiting for an HPI data access request to finish.
DSP-to-host interrupt bit. The inverted value of this bit determines the state of the CPU HINT output. 0 1 CPU HINT output is logic 1. CPU HINT output is logic 0. The host processor-to-CPU/DMA interrupt bit.
0 1 0
The first halfword is most significant. The first halfword is least significant. Reserved. The reserved bit location is always read as 0.
Reserved
B-165
B-166
Legend: R = Read only; R/W = Read/Write; -n = value after reset; -x = value is indeterminate after reset
Table B142. HPI Transfer Request Control Register (TRCTL) Field Values
Bit 319 8 field Reserved TRSTALL 0 1 76 54 Reserved PRI 0 03h 0 1h 2h 3h 30
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. Forces the HPI to stall all HPI requests to the EDMA. This bit allows the safe changing of the PALLOC and PRI fields. Allows HPI requests to be submitted to the EDMA. Halts the creation of new HPI requests to the EDMA. Reserved. The reserved bit location is always read as 0. Controls the priority queue level that HPI requests are submitted to. Urgent priority High priority Medium priority Low priority Controls the total number of outstanding requests that can be submitted by the HPI to the EDMA.
PALLOC
0Fh
B-167
Acronym I2COAR I2CIER I2CSTR I2CCLKL I2CCLKH I2CCNT I2CDRR I2CSAR I2CDXR I2CMDR I2CISRC I2CEMDR I2CPSC I2CPID1 I2CPID2 I2CPFUNC I2CPDIR I2CPDIN I2CPDOUT I2CPDSET I2CPDCLR I2CRSR I2CXSR
Register Name I2C own address register I2C interrupt enable register I2C status register I2C clock low-time divider register I2C clock high-time divider register I2C data count register I2C data receive register I2C slave address register I2C data transmit register I2C mode register I2C interrupt source register I2C extended mode register I2C prescaler register I2C peripheral identification register 1 I2C peripheral identification register 2 I2C pin function register I2C pin direction register I2C pin data input register I2C pin data output register I2C pin data set register I2C pin data clear register I2C receive shift register (not accessible to the CPU or EDMA) I2C transmit shift register (not accessible to the CPU or EDMA)
Section B.9.1 B.9.2 B.9.3 B.9.4 B.9.4 B.9.5 B.9.6 B.9.7 B.9.8 B.9.9 B.9.10 B.9.11 B.9.12 B.9.13 B.9.13 B.9.14 B.9.15 B.9.16 B.9.17 B.9.18 B.9.19
B-168
16
10 9 A R/W-0
B-169
Legend: R = Read only; R/W = Read/write; -n = value after reset Available only on C6410/C6413/C6418 DSPs; reserved on all other devices.
symval
Value 0
Description These Reserved bit locations are always read as zeros. A value written to this field has no effect. Address as slave interrupt enable bit.
0 1
Interrupt request is disabled. Interrupt request is enabled. Stop condition detected interrupt enable bit.
0 1
Interrupt request is disabled. Interrupt request is enabled. Transmit-data-ready interrupt enable bit.
0 1
Interrupt request is disabled. Interrupt request is enabled. Receive-data-ready interrupt enable bit.
0 1
B-170
Table B145. I2C Interrupt Enable Register (I2CIER) Field Values (Continued)
Bit 2 field ARDY MSK UNMSK 1 NACK MSK UNMSK 0 AL MSK UNMSK
symval
Value
0 1
Interrupt request is disabled. Interrupt request is enabled. No-acknowledgement interrupt enable bit.
0 1
Interrupt request is disabled. Interrupt request is enabled. Arbitration-lost interrupt enable bit
0 1
Legend: R = Read; W1C = Write 1 to clear (writing 0 has no effect); -n = value after reset Available only on C6410/C6413/C6418 DSPs; reserved on all other devices.
B-171
A STOP or a START condition. SDIR is manually cleared. To clear this bit, write a 1 to it.
NACK sent bit is used when the I2C module is in the receiver mode. One instance in which NACKSNT is affected is when the NACK mode is used (see the description for NACKMOD in section B.9.9). NONE 0 NACK is not sent. NACKSNT bit is cleared by any one of the following events:
-
It is manually cleared. To clear this bit, write a 1 to it. The I2C module is reset (either when 0 is written to the IRS bit of I2CMDR or when the whole DSP is reset).
NACK is sent: A no-acknowledge bit was sent during the acknowledge cycle on the I2C-bus. Bus busy bit. BB indicates whether the I2C-bus is busy or is free for another data transfer.
The I2C module receives or transmits a STOP bit (bus free). BB is manually cleared. To clear this bit, write a 1 to it. The I2C module is reset.
INT CLR
Bus is busy: The I2C module has received or transmitted a START bit on the bus.
B-172
INT 10 XSMT
Overrun is detected. Transmit shift register empty bit. XSMT indicates that the transmitter has experienced underflow. Underflow occurs when the transmit shift register (I2CXSR) is empty but the data transmit register (I2CDXR) has not been loaded since the last I2CDXR-to-I2CXSR transfer. The next I2CDXR-to-I2CXSR transfer will not occur until new data is in I2CDXR. If new data is not transferred in time, the previous data may be re-transmitted on the SDA pin.
NONE INT
0 1
Underflow is detected. No underflow is detected. XSMT is set by one of the following events:
-
Addressed-as-slave bit. The AAS bit has been cleared by a repeated START condition or by a STOP condition. The I2C module has recognized its own slave address or an address of all zeros (general call). The AAS bit is also set if the first data word has been received in the free data format (FDF = 1 in I2CMDR). Address 0 bit. NONE INT 0 1 AD0 has been cleared by a START or STOP condition. An address of all zeros (general call) is detected.
AD0
B-173
By reading INCODE bits in I2CICR as 110b. SCD is manually cleared. To clear this bit, write a 1 to it.
Transmit-data-ready interrupt flag bit. ICXRDY indicates that the data transmit register (I2CDXR) is ready to accept new data because the previous data has been copied from I2CDXR to the transmit shift register (I2CXSR). The CPU can poll ICXRDY or use the XRDY interrupt request. NONE 0 I2CDXR is not ready. ICXRDY is cleared by one of the following events:
-
Data is written to I2CDXR. ICXRDY is manually cleared. To clear this bit, write a 1 to it.
INT CLR
I2CDXR is ready: Data has been copied from I2CDXR to I2CXSR. ICXRDY is forced to 1 when the I2C module is reset.
B-174
I2CDRR is read. ICRRDY is manually cleared. To clear this bit, write a 1 to it. The I2C module is reset.
I2CDRR is ready: Data has been copied from I2CRSR to I2CDRR. Register-access-ready interrupt flag bit (only applicable when the I2C module is in the master mode). ARDY indicates that the I2C module registers are ready to be accessed because the previously programmed address, data, and command values have been used. The CPU can poll ARDY or use the ARDY interrupt request.
NONE
The registers are not ready to be accessed. ARDY is cleared by any one of the following events:
-
The I2C module starts using the current register contents. ARDY is manually cleared. To clear this bit, write a 1 to it. The I2C module is reset.
INT CLR
The registers are ready to be accessed. In the nonrepeat mode (RM = 0 in I2CMDR): If STP = 0 in I2CMDR, the ARDY bit is set when the internal data counter counts down to 0. If STP = 1, ARDY is not affected (instead, the I2C module generates a STOP condition when the counter reaches 0). In the repeat mode (RM = 1): ARDY is set at the end of each data word transmitted from I2CDXR.
B-175
An acknowledge bit (ACK) has been sent by the receiver. NACK is manually cleared. To clear this bit, write a 1 to it. The CPU reads the interrupt source register (I2CISR) when the register contains the code for a NACK interrupt. The I2C module is reset.
INT CLR
NACK bit is received. The hardware detects that a no-acknowledge (NACK) bit has been received. Note: While the I2C module performs a general call transfer, NACK is 1, even if one or more slaves send acknowledgement.
AL
Arbitration-lost interrupt flag bit (only applicable when the I2C module is a master-transmitter). AL primarily indicates when the I2C module has lost an arbitration contest with another master-transmitter. The CPU can poll AL or use the AL interrupt request. NONE 0 Arbitration is not lost. AL is cleared by any one of the following events:
-
AL is manually cleared. To clear this bit, write a 1 to it. The CPU reads the interrupt source register (I2CISR) when the register contains the code for an AL interrupt. The I2C module is reset.
INT CLR
The I2C module senses that it has lost an arbitration with two or more competing transmitters that started a transmission almost simultaneously. The I2C module attempts to start a transfer while the BB (bus busy) bit is set to 1.
When AL becomes 1, the MST and STP bits of I2CMDR are cleared, and the I2C module becomes a slave-receiver.
B-176
For each master clock cycle, ICCL determines the amount of time the signal is low.
- ICCH
in I2CCLKH (shown in Figure B142 and described in Table B148). For each master clock cycle, ICCH determines the amount of time the signal is high.
The frequency of the master clock can be calculated as: master clock frequency + module clock frequency ( ICCL ) 6 ) ) ( ICCH ) 6 )
Figure B140. Roles of the Clock Divide-Down Values (ICCL and ICCH)
High-time duration: Tmod (ICCH + 6) High-time duration: Tmod (ICCH + 6)
SCL
16
B-177
Table B147. I2C Clock Low-Time Divider Register (I2CCLKL) Field Values
Bit 3116 150 Field Reserved ICCL symval OF(value) Value 0 0FFFFh Description These Reserved bit locations are always read as zeros. A value written to this field has no effect. Clock low-time divide-down value of 165536. The period of the module clock is multiplied by (ICCL + 6) to produce the low-time duration of the master clock on the SCL pin.
16
Table B148. I2C Clock High-Time Divider Register (I2CCLKH) Field Values
Bit 3116 150 Field Reserved ICCH symval OF(value) Value 0 0FFFFh Description These Reserved bit locations are always read as zeros. A value written to this field has no effect. Clock high-time divide-down value of 165536. The period of the module clock is multiplied by (ICCH + 6) to produce the high-time duration of the master clock on the SCL pin.
B-178
16
B-179
16
8 7 D R/W-0
Field Reserved D
symval
Value 0 0FFh
Description These Reserved bit locations are always read as zeros. A value written to this field has no effect. Receive data.
OF(value)
B-180
16
10 9 A R/W-3FFh
Bits 90 provide the 10-bit slave address that the I2C module transmits when it is in the master-transmitter mode.
B-181
16
8 7 D R/W-0
Field Reserved D
symval
Value 0 0FFh
Description These Reserved bit locations are always read as zeros. A value written to this field has no effect. Transmit data
OF(value)
B-182
B-183
Reserved
This Reserved bit location is always read as zero. A value written to this field has no effect.
B-184
10
MST
10BIT
B-185
REPEAD
DLB
I2C module reset bit. 0 1 The I2C module is in reset/disabled. When this bit is cleared to 0, all status bits (in I2CSTR) are set to their default values. The I2C module is enabled.
B-186
The I2C module sends the slave address that is in I2CSAR. 3 FDF NONE SET
Free data format mode bit. Note that DLB in the free data format mode (DLB = 1 and FDF = 1) is not supported. 0 1 Free data format mode is disabled. Transfers use the 7-/10-bit addressing format selected by the XA bit. Free data format mode is enabled. Transfers have the free data (no address) format.
B-187
0 1h 2h 3h 4h 5h 6h 7h
8 bits per data word 1 bit per data word 2 bits per data word 3 bits per data word 4 bits per data word 5 bits per data word 6 bits per data word 7 bits per data word
B-188
Table B154. Master-Transmitter/Receiver Bus Activity Defined by RM, STT, and STP Bits
I2CMDR Bit RM 0 0 0 0 1 1 1 STT 0 0 1 1 0 0 1 STP 0 1 0 1 0 1 0 Bus Activity None P S-A-D..(n)..D S-A-D..(n)..D-P None P S-A-D-D-D.. Description No activity STOP condition START condition, slave address, n data words (n = value in I2CCNT) START condition, slave address, n data words, STOP condition (n = value in I2CCNT) No activity STOP condition Repeat mode transfer: START condition, slave address, continuous data transfers until STOP condition or next START condition Reserved bit combination (No activity)
None
Table B155. How the MST and FDF Bits Affect the Role of TRX Bit
I2CMDR Bit MST 0 FDF 0 I2C Module State In slave mode but not free data format mode In slave mode and free data format mode Function of TRX Bit TRX is a dont care. Depending on the command from the master, the I2C module responds as a receiver or a transmitter. The free data format mode requires that the transmitter and receiver be fixed. TRX identifies the role of the I2C module: TRX = 0: The I2C module is a receiver. TRX = 1: The I2C module is a transmitter. 1 X In master mode; free data format mode on or off TRX = 0: The I2C module is a receiver. TRX = 1: The I2C module is a transmitter.
B-189
Figure B148. Block Diagram Showing the Effects of the Digital Loopback Mode (DLB) Bit
I2C module
DLB SCL_IN 0 1 From internal I2C logic SCL_OUT DLB To internal I2C logic To CPU or EDMA 0 I2CDRR DLB From CPU or EDMA From CPU or EDMA From CPU or EDMA I2CSAR I2COAR I2CDXR Address/data 0 1 I2CXSR I2CRSR 1 0 SDA 0 SCL
B-190
which event generated the I2C interrupt. The I2CISRC is shown in Figure B149 and described in Table B156.
16
3 2 INTCODE R-0
symval
Value 0
Description These Reserved bit locations are always read as zeros. Always write 0 to this field. Interrupt code bits. The binary code in INTCODE indicates which event generated an I2C interrupt.
0 1h 2h 3h 4h 5h 6h7h
None Arbitration is lost. No-acknowledgement condition is detected. Registers are ready to be accessed. Receive data is ready. Transmit data is ready. Reserved
B-191
0 XRDYM R/W-1
DXRCPY
B-192
16
8 7 IPSC R/W-0
B-193
16
8 7 REV R-x
B-194
16
B-195
0 GPMODE R/W-0
0 1
GPIO mode is disabled; SCL and SDA pins have I2C functionality. GPIO mode is enabled; SCL and SDA pins have GPIO functionality.
B-196
1 SDADIR R/W-0
0 SCLDIR R/W-0
symval
Value 0
Description These reserved bit locations have an indeterminate value when read. A value written to this field has no effect. SDA direction bit. Controls the direction of the SDA pin when configured as GPIO.
0 1
SDA pin functions as input. SDA pin functions as output. SCL direction bit. Controls the direction of the SCL pin when configured as GPIO.
0 1
B-197
Legend: R = Read only; R/W = Read/write; -n = value after reset;-pin = external pin value after reset
Table B163. I2C Pin Data Input Register (I2CPDIN) Field Values
Bit 312 1 field Reserved SDAIN symval Value 0 Description These reserved bit locations have an indeterminate value when read. A value written to this field has no effect. Indicates the logic level present on the SDA pin. SDAIN is set regardless of the GPMODE setting. A value written to this bit has no effect. LOW HIGH 0 SCLIN 0 1 A logic low is present at the SDA pin. A logic high is present at the SDA pin. Indicates the logic level present on the SCL pin. SCLIN is set regardless of the GPMODE setting. A value written to this bit has no effect. LOW HIGH
0 1
A logic low is present at the SCL pin. A logic high is present at the SCL pin.
B-198
in I2CPDOUT to 1; writing a 0 has no effect and keeps the bits in I2CPDOUT unchanged.
- I2CPDCLR writing a 1 to a bit in I2CPDCLR clears the corresponding
bit in I2CPDOUT to 0; writing a 0 has no effect and keeps the bits in I2CPDOUT unchanged.
1 SDAOUT R/W-0
0 SCLOUT R/W-0
B-199
Table B164. I2C Pin Data Output Register (I2CPDOUT) Field Values
Bit 312 1 field Reserved SDAOUT symval Value 0 Description These reserved bit locations have an indeterminate value when read. A value written to this field has no effect. Controls the value driven on the SDA pin when the pin is configured as an output (GPIO mode must be enabled by setting GPMODE = 1). When reading data, returns the value in the SDAOUT bit, does not return the level on the pin. When writing data, writes to the SDAOUT bit. LOW HIGH 0 SCLOUT 0 1 SDA pin is driven to a logic low. SDA pin is driven to a logic high. Controls the value driven on the SCL pin when the pin is configured as an output (GPIO mode must be enabled by setting GPMODE = 1). When reading data, returns the value in the SCLOUT bit, does not return the level on the pin. When writing data, writes to the SCLOUT bit. LOW HIGH
0 1
SCL pin is driven to a logic low. SCL pin is driven to a logic high.
B-200
1 SDAOUT R/W-0
0 SCLOUT R/W-0
Table B165. I2C Pin Data Set Register (I2CPDSET) Field Values
Bit 312 1 field Reserved SDAOUT symval Value 0 Description These reserved bit locations have an indeterminate value when read. A value written to this field has no effect. Sets the value of the SDAOUT bit in I2CPDOUT. A write of 0 to this bit has no effect. This bit location has an indeterminate value when read. UNCHGN SET 0 SCLOUT 0 1 No effect. Sets the SDAOUT bit in I2CPDOUT to 1. Sets the value of the SCLOUT bit in I2CPDOUT. A write of 0 to this bit has no effect. This bit location has an indeterminate value when read. UNCHGN SET
0 1
B-201
1 SDAOUT R/W-0
0 SCLOUT R/W-0
Table B166. I2C Pin Data Clear Register (I2CPDCLR) Field Values
Bit 312 1 field Reserved SDAOUT symval Value 0 Description These reserved bit locations have an indeterminate value when read. A value written to this field has no effect. Clears the value of the SDAOUT bit in I2CPDOUT. A write of 0 to this bit has no effect. This bit location has an indeterminate value when read. UNCHGN CLR 0 SCLOUT 0 1 No effect. Clears the SDAOUT bit in I2CPDOUT to 0. Clears the value of the SCLOUT bit in I2CPDOUT. A write of 0 to this bit has no effect. This bit location has an indeterminate value when read. UNCHGN CLR
0 1
B-202
B-203
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect.
01Fh Interrupt selector 15 bits. This value maps interrupt 15 to any CPU interrupt. 01Fh Interrupt selector 14 bits. This value maps interrupt 14 to any CPU interrupt. 01Fh Interrupt selector 13 bits. This value maps interrupt 13 to any CPU interrupt. 0 Reserved. The reserved bit location is always read as 0. A value written to this field has no effect.
01Fh Interrupt selector 12 bits. This value maps interrupt 12 to any CPU interrupt. 01Fh Interrupt selector 11 bits. This value maps interrupt 11 to any CPU interrupt. 01Fh Interrupt selector 10 bits. This value maps interrupt 10 to any CPU interrupt.
B-204
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect.
01Fh Interrupt selector 9 bits. This value maps interrupt 9 to any CPU interrupt. 01Fh Interrupt selector 8 bits. This value maps interrupt 8 to any CPU interrupt. 01Fh Interrupt selector 7 bits. This value maps interrupt 7 to any CPU interrupt. 0 Reserved. The reserved bit location is always read as 0. A value written to this field has no effect.
01Fh Interrupt selector 6 bits. This value maps interrupt 6 to any CPU interrupt. 01Fh Interrupt selector 5 bits. This value maps interrupt 5 to any CPU interrupt. 01Fh Interrupt selector 4 bits. This value maps interrupt 4 to any CPU interrupt.
B-205
3 XIP7 R/W-0
2 XIP6 R/W-0
1 XIP5 R/W-0
0 XIP4 R/W-0
0 1
B-206
RMASK RFMT AFSRCTL ACLKRCTL AHCLKRCTL RTDM RINTCTL RSTAT RSLOT RCLKCHK
0064 0068 006C 0070 0074 0078 007C 0080 0084 0088
B.11.14 B.11.15 B.11.16 B.11.17 B.11.18 B.11.19 B.11.20 B.11.21 B.11.22 B.11.23
Available only on DA6x DSP. CFG BUS only if XBUSEL = 1. CFG BUS only if RBUSEL = 1.
B-207
XMASK XFMT AFSXCTL ACLKXCTL AHCLKXCTL XTDM XINTCTL XSTAT XSLOT XCLKCHK XEVCTL DITCSRA0 DITCSRA1 DITCSRA2 DITCSRA3 DITCSRA4 DITCSRA5 DITCSRB0 DITCSRB1 DITCSRB2 DITCSRB3 DITCSRB4
00A4 00A8 00AC 00B0 00B4 00B8 00BC 00C0 00C4 00C8 00CC 0100 0104 0108 010C 0110 0114 0118 011C 0120 0124 0128
B.11.26 B.11.27 B.11.28 B.11.29 B.11.30 B.11.31 B.11.32 B.11.33 B.11.34 B.11.35 B.11.36 B.11.38 B.11.38 B.11.38 B.11.38 B.11.38 B.11.38 B.11.39 B.11.39 B.11.39 B.11.39 B.11.39
Available only on DA6x DSP. CFG BUS only if XBUSEL = 1. CFG BUS only if RBUSEL = 1.
B-208
Register Name Right (odd TDM time slot) channel status register (DIT mode) 5 Left (even TDM time slot) channel user data register (DIT mode) 0 Left (even TDM time slot) channel user data register (DIT mode) 1 Left (even TDM time slot) channel user data register (DIT mode) 2 Left (even TDM time slot) channel user data register (DIT mode) 3 Left (even TDM time slot) channel user data register (DIT mode) 4 Left (even TDM time slot) channel user data register (DIT mode) 5 Right (odd TDM time slot) channel user data register (DIT mode) 0 Right (odd TDM time slot) channel user data register (DIT mode) 1 Right (odd TDM time slot) channel user data register (DIT mode) 2 Right (odd TDM time slot) channel user data register (DIT mode) 3 Right (odd TDM time slot) channel user data register (DIT mode) 4 Right (odd TDM time slot) channel user data register (DIT mode) 5 Serializer control register 0 Serializer control register 1 Serializer control register 2 Serializer control register 3 Serializer control register 4 Serializer control register 5 Serializer control register 6 Serializer control register 7 Serializer control register 8 Serializer control register 9 Serializer control register 10 Serializer control register 11
Address Offset (hex) 012C 0130 0134 0138 013C 0140 0144 0148 014C 0150 0154 0158 015C 0180 0184 0188 018C 0190 0194 0198 019C 01A0 01A4 01A8 01AC
Section B.11.39 B.11.40 B.11.40 B.11.40 B.11.40 B.11.40 B.11.40 B.11.41 B.11.41 B.11.41 B.11.41 B.11.41 B.11.41 B.11.37 B.11.37 B.11.37 B.11.37 B.11.37 B.11.37 B.11.37 B.11.37 B.11.37 B.11.37 B.11.37 B.11.37
Available only on DA6x DSP. CFG BUS only if XBUSEL = 1. CFG BUS only if RBUSEL = 1.
B-209
Register Name Serializer control register 12 Serializer control register 13 Serializer control register 14 Serializer control register 15 Transmit buffer register for serializer 0 Transmit buffer register for serializer 1 Transmit buffer register for serializer 2 Transmit buffer register for serializer 3 Transmit buffer register for serializer 4 Transmit buffer register for serializer 5 Transmit buffer register for serializer 6 Transmit buffer register for serializer 7 Transmit buffer register for serializer 8 Transmit buffer register for serializer 9 Transmit buffer register for serializer 10 Transmit buffer register for serializer 11 Transmit buffer register for serializer 12 Transmit buffer register for serializer 13 Transmit buffer register for serializer 14 Transmit buffer register for serializer 15 Receive buffer register for serializer 0 Receive buffer register for serializer 1 Receive buffer register for serializer 2 Receive buffer register for serializer 3 Receive buffer register for serializer 4
Address Offset (hex) 01B0 01B4 01B8 01BC 0200 0204 0208 020C 0210 0214 0218 021C 0220 0224 0228 022C 0230 0234 0238 023C 0280 0284 0288 028C 0290
Section B.11.37 B.11.37 B.11.37 B.11.37 B.11.42 B.11.42 B.11.42 B.11.42 B.11.42 B.11.42 B.11.42 B.11.42 B.11.42 B.11.42 B.11.42 B.11.42 B.11.42 B.11.42 B.11.42 B.11.42 B.11.43 B.11.43 B.11.43 B.11.43 B.11.43
Available only on DA6x DSP. CFG BUS only if XBUSEL = 1. CFG BUS only if RBUSEL = 1.
B-210
Register Name Receive buffer register for serializer 5 Receive buffer register for serializer 6 Receive buffer register for serializer 7 Receive buffer register for serializer 8 Receive buffer register for serializer 9 Receive buffer register for serializer 10 Receive buffer register for serializer 11 Receive buffer register for serializer 12 Receive buffer register for serializer 13 Receive buffer register for serializer 14 Receive buffer register for serializer 15
Address Offset (hex) 0294 0298 029C 02A0 02A4 02A8 02AC 02B0 02B4 02B8 02BC
Section B.11.43 B.11.43 B.11.43 B.11.43 B.11.43 B.11.43 B.11.43 B.11.43 B.11.43 B.11.43 B.11.43
Available only on DA6x DSP. CFG BUS only if XBUSEL = 1. CFG BUS only if RBUSEL = 1.
Write Accesses
XBUF
B-211
16
2316
TYPE 10h
B-212
0 FREE R/W-0
Table B174. Power Down and Emulation Management Register (PWRDEMU) Field Values
Bit 311 Field Reserved symval Value 0 Description Reserved. The reserved bit location always returns the default value. A value written to this field has no effect. If writing to this field, always write the default value for future device compatibility. Free-running mode enable bit. This bit determines the state of the serial port clock during emulation halt. OFF ON 0 1 Reserved. Free-running mode is enabled. Peripheral ignores the emulation suspend signal and continues to function as normal. During emulation suspend, EDMA requests continue to be generated and are serviced by the EDMA. Error conditions are flagged as usual.
FREE
B-213
Legend: R = Read only; R/W = Read/Write; -n = value after reset If writing to this field, always write the default value for future device compatibility. On DA6x DSP only; reserved on C6713 DSP.
B-214
symval
Value
MCASP GPIO
0 1
158
AXR[158] 0 1
Pin functions as McASP pin. Pin functions as GPIO pin. Determines if AXR[n] pin functions as McASP or GPIO.
0 1
For CSL implementation, use the notation MCASP_PFUNC_field_symval On DA6x DSP only; reserved on C6713 DSP.
B-215
Legend: R = Read only; R/W = Read/Write; -n = value after reset If writing to this field, always write the default value for future device compatibility. On DA6x DSP only; reserved on C6713 DSP.
B-216
symval
Value
IN OUT
0 1
158
AXR[158] 0 1
Pin functions as input. Pin functions as output. Determines if AXR[n] pin functions as an input or output.
0 1
For CSL implementation, use the notation MCASP_PDIR_field_symval On DA6x DSP only; reserved on C6713 DSP.
B-217
sets the corresponding bit in PDOUT to 1; writing a 0 has no effect and keeps the bits in PDOUT unchanged.
- PDCLR when written to at this address, writing a 1 to a bit in PDCLR
clears the corresponding bit in PDOUT to 0; writing a 0 has no effect and keeps the bits in PDOUT unchanged. There is only one set of data out bits, PDOUT[310]. The other registers, PDSET and PDCLR, are just different addresses for the same control bits, with different behaviors during writes. Writing to Reserved Bits Writing a value other than 0 to reserved bits in this register may cause improper device operation. This includes bits that are not implemented on a particular DSP.
B-218
Legend: R = Read only; R/W = Read/Write; -n = value after reset If writing to this field, always write the default value for future device compatibility. On DA6x DSP only; reserved on C6713 DSP.
B-219
symval
Value
Description Determines drive on specified output pin when the corresponding PFUNC[n] and PDIR[n] bits are set to 1. When reading data, returns the corresponding bit value in PDOUT[n], does not return input from I/O pin. When writing data, writes to the corresponding PDOUT[n] bit.
LOW HIGH
0 1
158
AXR[158]
0 1
For CSL implementation, use the notation MCASP_PDOUT_field_symval On DA6x DSP only; reserved on C6713 DSP.
B-220
Legend: R = Read only; R/W = Read/Write; -n = value after reset If writing to this field, always write the default value for future device compatibility. On DA6x DSP only; reserved on C6713 DSP.
B-221
symval
Value
0 SET 1
158
AXR[158]
Pin is logic low. Pin is logic high. Provides logic level of AXR[n] pin. Pin is logic low. Pin is logic high.
For CSL implementation, use the notation MCASP_PDIN_field_symval On DA6x DSP only; reserved on C6713 DSP.
B-222
Writing to Reserved Bits Writing a value other than 0 to reserved bits in this register may cause improper device operation. This includes bits that are not implemented on a particular DSP.
Legend: R = Read only; R/W = Read/Write; -n = value after reset If writing to this field, always write the default value for future device compatibility. On DA6x DSP only; reserved on C6713 DSP.
B-223
symval
Value
Description Allows the corresponding PDOUT[n] bit to be set to a logic high without affecting other I/O pins controlled by the same port.
0 SET 1
158
AXR[158]
No effect. Sets PDOUT[n] bit to 1. Allows PDOUT[n] bit to be set to a logic high without affecting other I/O pins controlled by the same port. No effect. Sets PDOUT[n] bit to 1.
For CSL implementation, use the notation MCASP_PDSET_field_symval On DA6x DSP only; reserved on C6713 DSP.
B-224
Legend: R = Read only; R/W = Read/Write; -n = value after reset If writing to this field, always write the default value for future device compatibility. On DA6x DSP only; reserved on C6713 DSP.
B-225
symval
Value
Description Allows the corresponding PDOUT[n] bit to be cleared to a logic low without affecting other I/O pins controlled by the same port.
0 CLR 1
158
AXR[158]
No effect. Clears PDOUT[n] bit to 0. Allows PDOUT[n] bit to be cleared to a logic low without affecting other I/O pins controlled by the same port. No effect. Clears PDOUT[n] bit to 0.
For CSL implementation, use the notation MCASP_PDCLR_field_symval On DA6x DSP only; reserved on C6713 DSP.
B-226
Legend: R = Read only; R/W = Read/Write; -n = value after reset If writing to this field, always write the default value for future device compatibility.
B-227
12
XFRST
11
XSMRST
B-228
RFRST
RSMRST
Receive serializer clear enable bit. By clearing then setting this bit, the receive buffer is flushed. 0 1 Receive serializers are cleared. Receive serializers are active. Receive high-frequency clock divider reset enable bit. 0 1 Receive high-frequency clock divider is held in reset. Receive high-frequency clock divider is running.
B-229
symval
Value
0 1
Receive clock divider is held in reset. When the clock divider is in reset, it passes through a divide-by-1 of its input. Receive clock divider is running.
Legend: R = Read only; R/W = Read/Write; -n = value after reset If writing to this field, always write the default value for future device compatibility.
B-230
12
XDMAERR
B-231
Table B182. Audio Mute Control Register (AMUTE) Field Values (Continued)
Bit 7 field RSYNCERR DISABLE ENABLE 0 1 symval Value Description If unexpected receive frame sync error (RSYNCERR), drive AMUTE active enable bit. Drive is disabled. Detection of unexpected receive frame sync error is ignored by AMUTE. Drive is enabled (active). Upon detection of unexpected receive frame sync error, AMUTE is active and is driven according to MUTEN bit. If transmit underrun error (XUNDRN), drive AMUTE active enable bit. DISABLE ENABLE 5 ROVRN DISABLE ENABLE 4 INSTAT OF(value) 0 1 3 INEN DISABLE ENABLE 2 INPOL ACTHIGH ACTLOW
XUNDRN 0 1
Drive is disabled. Detection of transmit underrun error is ignored by AMUTE. Drive is enabled (active). Upon detection of transmit underrun error, AMUTE is active and is driven according to MUTEN bit. If receiver overrun error (ROVRN), drive AMUTE active enable bit.
0 1
Drive is disabled. Detection of receiver overrun error is ignored by AMUTE. Drive is enabled (active). Upon detection of receiver overrun error, AMUTE is active and is driven according to MUTEN bit. Audio mute in (AMUTEIN) error detection status pin. AMUTEIN pin is inactive. AMUTEIN pin is active. Audio mute in error is detected. Drive AMUTE active when AMUTEIN error is active (INSTAT = 1).
0 1
Drive is disabled. AMUTEIN is ignored by AMUTE. Drive is enabled (active). INSTAT = 1 drives AMUTE active. Audio mute in (AMUTEIN) polarity select bit.
0 1
Polarity is active high. A high on AMUTEIN sets INSTAT to 1. Polarity is active low. A low on AMUTEIN sets INSTAT to 1.
B-232
Table B182. Audio Mute Control Register (AMUTE) Field Values (Continued)
Bit 10 field MUTEN DISABLE ERRHIGH ERRLOW
symval
Value 03h 0 1h 2h 3h
Description AMUTE pin enable bit (unless overridden by GPIO registers). AMUTE pin is disabled, pin goes to tri-state condition. AMUTE pin is driven high if error is detected. AMUTE pin is driven low if error is detected. Reserved
B-233
4 3 MODE R/W-0
1 ORD R/W-0
0 DLBEN R/W-0
32
MODE DEFAULT
03h 0
XMTCLK
1h
1 ORD
2h3h
0 1
Odd serializers N+1 transmit to even serializers N that receive. The corresponding serializers must be programmed properly. Even serializers N transmit to odd serializers N+1 that receive. The corresponding serializers must be programmed properly. Loopback mode enable bit.
0 1
B-234
3 VB R/W-0
2 VA R/W-0
1 Rsvd R-0
0 DITEN R/W-0
VB
DITEN
0 1
DIT mode is disabled. Transmitter operates in TDM or burst mode. DIT mode is enabled. Transmitter operates in DIT encoded mode.
B-235
Legend: R = Read only; R/W = Read/Write; -n = value after reset If writing to this field, always write the default value for future device compatibility.
12
XFRST
11
XSMRST
10
XSRCLR
B-236
Table B185. Receiver Global Control Register (RGBLCTL) Field Values (Continued)
Bit 9 field XHCLKRST symval Value x Description Transmit high-frequency clock divider reset enable bit. A read of this bit returns the XHCLKRST bit value of GBLCTL. Writes have no effect. Transmit clock divider reset enable bit. a read of this bit returns the XCLKRST bit value of GBLCTL. Writes have no effect. Reserved. The reserved bit location always returns the default value. A value written to this field has no effect. If writing to this field, always write the default value for future device compatibility. Receive frame sync generator reset enable bit. A write to this bit affects the RFRST bit of GBLCTL. RESET ACTIVE 3 RSMRST RESET ACTIVE 2 RSRCLR CLEAR ACTIVE 1 RHCLKRST RESET ACTIVE 0 RCLKRST RESET ACTIVE
8 75
XCLKRST Reserved
x 0
RFRST 0 1
Receive frame sync generator is reset. Receive frame sync generator is active. Receive state machine reset enable bit. A write to this bit affects the RSMRST bit of GBLCTL.
0 1
Receive state machine is held in reset. Receive state machine is released from reset. Receive serializer clear enable bit. A write to this bit affects the RSRCLR bit of GBLCTL.
0 1
Receive serializers are cleared. Receive serializers are active. Receive high-frequency clock divider reset enable bit. A write to this bit affects the RHCLKRST bit of GBLCTL.
0 1
Receive high-frequency clock divider is held in reset. Receive high-frequency clock divider is running. Receive clock divider reset enable bit. A write to this bit affects the RCLKRST bit of GBLCTL.
0 1
B-237
Table B186. Receive Format Unit Bit Mask Register (RMASK) Field Values
Bit 310 field RMASK[310] USEMASK 0 symval Value Description Receive data mask enable bit. Corresponding bit of receive data (after passing through reverse and rotate units) is masked out and then padded with the selected bit pad value (RPAD and RPBIT bits in RFMT). Corresponding bit of receive data (after passing through reverse and rotate units) is returned to CPU or EDMA.
NOMASK
B-238
Legend: R = Read only; R/W = Read/Write; -n = value after reset If writing to this field, always write the default value for future device compatibility.
Table B187. Receive Bit Stream Format Register (RFMT) Field Values
Bit 3118 field Reserved symval Value 0 Description Reserved. The reserved bit location always returns the default value. A value written to this field has no effect. If writing to this field, always write the default value for future device compatibility. Receive bit delay. 0-bit delay. The first receive data bit, AXR[n], occurs in the same ACLKR cycle as the receive frame sync (AFSR). 1-bit delay. The first receive data bit, AXR[n], occurs one ACLKR cycle after the receive frame sync (AFSR). 2-bit delay. The first receive data bit, AXR[n], occurs two ACLKR cycles after the receive frame sync (AFSR). Reserved Receive serial bitstream order. LSBFIRST MSBFIRST
1716
03h 0 1h 2h 3h
15
RRVRS 0 1
Bitstream is LSB first. No bit reversal is performed in receive format bit reverse unit. Bitstream is MSB first. Bit reversal is performed in receive format bit reverse unit.
B-239
Table B187. Receive Bit Stream Format Register (RFMT) Field Values (Continued)
Bit 1413 field RPAD ZERO ONE RPBIT 128 RPBIT OF(value) symval Value 03h 0 1h 2h 3h 01Fh Description Pad value for extra bits in slot not belonging to the word. This field only applies to bits when RMASK[n] = 0. Pad extra bits with 0. Pad extra bits with 1. Pad extra bits with one of the bits from the word as specified by RPBIT bits. Reserved RPBIT value determines which bit (as read by the CPU or EDMA from RBUF[n]) is used to pad the extra bits. This field only applies when RPAD = 2h. Pad with bit 0 value. Pad with bit 1 to bit 31 value. Receive slot size. Reserved Slot size is 8 bits. Reserved Slot size is 12 bits. Reserved Slot size is 16 bits. Reserved Slot size is 20 bits. Reserved Slot size is 24 bits. Reserved Slot size is 28 bits. Reserved Slot size is 32 bits.
DEFAULT
0 1h1Fh
74
0Fh 02h 3h 4h 5h 6h 7h 8h 9h Ah Bh Ch Dh Eh Fh
B-240
Table B187. Receive Bit Stream Format Register (RFMT) Field Values (Continued)
Bit 3 field RBUSEL DAT CFG 20 RROT NONE 4BITS 8BITS 12BITS 16BITS 20BITS 24BITS 28BITS
symval
Value
Description Selects whether reads from serializer buffer XRBUF[n] originate from the configuration bus (CFG) or the data (DAT) port.
0 1 07h 0 1h 2h 3h 4h 5h 6h 7h
Reads from XRBUF[n] originate on data port. Reads from XRBUF[n] on configuration bus are ignored. Reads from XRBUF[n] originate on configuration bus. Reads from XRBUF[n] on data port are ignored. Right-rotation value for receive rotate right format unit. Rotate right by 0 (no rotation). Rotate right by 4 bit positions. Rotate right by 8 bit positions. Rotate right by 12 bit positions. Rotate right by 16 bit positions. Rotate right by 20 bit positions. Rotate right by 24 bit positions. Rotate right by 28 bit positions.
B-241
Reserved
Reserved
Legend: R = Read only; R/W = Read/Write; -n = value after reset If writing to this field, always write the default value for future device compatibility.
Table B188. Receive Frame Sync Control Register (AFSRCTL) Field Values
Bit 3116 157 field Reserved RMOD symval OF(value) BURST Value 0 0180h 0 1h 2h20h 21h17Fh 180h 65 4 Reserved FRWID BIT WORD 32
Description value for future device compatibility. Receive frame sync mode select bits. Burst mode Reserved 2-slot TDM (I2S mode) to 32-slot TDM Reserved 384-slot TDM (external DIR IC inputting 384-slot DIR frames to McASP over I2S interface) value for future device compatibility. Receive frame sync width select bit indicates the width of the receive frame sync (AFSR) during its active period.
0 1 0
Reserved
B-242
Table B188. Receive Frame Sync Control Register (AFSRCTL) Field Values (Continued)
Bit 1 field FSRM EXTERNAL INTERNAL 0 FSRP ACTIVEHIGH ACTIVELOW
symval
Value
0 1
Externally-generated receive frame sync Internally-generated receive frame sync Receive frame sync polarity select bit.
0 1
A rising edge on receive frame sync (AFSR) indicates the beginning of a frame. A falling edge on receive frame sync (AFSR) indicates the beginning of a frame.
Legend: R = Read only; R/W = Read/Write; -n = value after reset If writing to this field, always write the default value for future device compatibility.
B-243
CLKRP
RISING
Reserved
CLKRM
External receive clock source from ACLKR pin. Internal receive clock source from output of programmable bit clock divider. Receive bit clock divide ratio bits determine the divide-down ratio from AHCLKR to ACLKR. Divide-by-1 Divide-by-2 Divide-by-3 to divide-by-32
B-244
Reserved
Legend: R = Read only; R/W = Read/Write; -n = value after reset If writing to this field, always write the default value for future device compatibility.
Table B190. Receive High-Frequency Clock Control Register (AHCLKRCTL) Field Values
Bit 3116 field Reserved symval Value 0 Description Reserved. The reserved bit location always returns the default value. A value written to this field has no effect. If writing to this field, always write the default value for future device compatibility. Receive high-frequency clock source bit. EXTERNAL INTERNAL
15
HCLKRM 0 1
External receive high-frequency clock source from AHCLKR pin. Internal receive high-frequency clock source from output of programmable high clock divider.
B-245
Table B190. Receive High-Frequency Clock Control Register (AHCLKRCTL) Field Values (Continued)
Bit 14 field HCLKRP RISING 0 symval Value Description Receive bitstream high-frequency clock polarity select bit. Rising edge. AHCLKR is not inverted before programmable bit clock divider. In the special case where the receive bit clock (ACLKR) is internally generated and the programmable bit clock divider is set to divide-by-1 (CLKRDIV = 0 in ACLKRCTL), AHCLKR is directly passed through to the ACLKR pin. Falling edge. AHCLKR is inverted before programmable bit clock divider. In the special case where the receive bit clock (ACLKR) is internally generated and the programmable bit clock divider is set to divide-by-1 (CLKRDIV = 0 in ACLKRCTL), AHCLKR is directly passed through to the ACLKR pin. Reserved. The reserved bit location always returns the default value. A value written to this field has no effect. If writing to this field, always write the default value for future device compatibility. Receive high-frequency clock divide ratio bits determine the divide-down ratio from AUXCLK to AHCLKR. Divide-by-1 Divide-by-2 Divide-by-3 to divide-by-4096
FALLING
1312
Reserved
110
0FFFh 0 1h 2hFFFh
B-246
Table B191. Receive TDM Time Slot Register (RTDM) Field Values
Bit 310 field RTDMS[310] INACTIVE ACTIVE
symval
Value
0 1
Receive TDM time slot n is inactive. The receive serializer does not shift in data during this slot. Receive TDM time slot n is active. The receive serializer shifts in data during this slot.
B-247
Legend: R = Read only; R/W = Read/Write; -n = value after reset If writing to this field, always write the default value for future device compatibility.
RSTAFRM
B-248
Table B192. Receiver Interrupt Control Register (RINTCTL) Field Values (Continued)
Bit 5 field RDATA DISABLE ENABLE 4 RLAST DISABLE ENABLE 3 RDMAERR DISABLE ENABLE 2 RCKFAIL DISABLE ENABLE 1 RSYNCERR DISABLE ENABLE 0 ROVRN DISABLE ENABLE
symval
Value
0 1
Interrupt is disabled. A receive data ready interrupt does not generate a McASP receive interrupt (RINT). Interrupt is enabled. A receive data ready interrupt generates a McASP receive interrupt (RINT). Receive last slot interrupt enable bit.
0 1
Interrupt is disabled. A receive last slot interrupt does not generate a McASP receive interrupt (RINT). Interrupt is enabled. A receive last slot interrupt generates a McASP receive interrupt (RINT). Receive EDMA error interrupt enable bit.
0 1
Interrupt is disabled. A receive EDMA error interrupt does not generate a McASP receive interrupt (RINT). Interrupt is enabled. A receive EDMA error interrupt generates a McASP receive interrupt (RINT). Receive clock failure interrupt enable bit.
0 1
Interrupt is disabled. A receive clock failure interrupt does not generate a McASP receive interrupt (RINT). Interrupt is enabled. A receive clock failure interrupt generates a McASP receive interrupt (RINT). Unexpected receive frame sync interrupt enable bit.
0 1
Interrupt is disabled. An unexpected receive frame sync interrupt does not generate a McASP receive interrupt (RINT). Interrupt is enabled. An unexpected receive frame sync interrupt generates a McASP receive interrupt (RINT). Receiver overrun interrupt enable bit.
0 1
Interrupt is disabled. A receiver overrun interrupt does not generate a McASP receive interrupt (RINT). Interrupt is enabled. A receiver overrun interrupt generates a McASP receive interrupt (RINT).
B-249
Legend: R = Read only; R/W = Read/Write; -n = value after reset If writing to this field, always write the default value for future device compatibility.
RERR
OF(value)
B-250
DEFAULT
RLAST
0 1
Current slot is not the last slot in a frame. Current slot is the last slot in a frame. RDATA is also set. Returns the LSB of RSLOT. Allows a single read of RSTAT to determine whether the current TDM time slot is even or odd. Current TDM time slot is odd. Current TDM time slot is even.
B-251
0 1
B-252
16
10 9 RSLOTCNT R-0
Table B194. Current Receive TDM Time Slot Register (RSLOT) Field Values
Bit 3110 Field Reserved symval Value 0 Description Reserved. The reserved bit location always returns the default value. A value written to this field has no effect. If writing to this field, always write the default value for future device compatibility. Current receive time slot count. Legal values: 0 to 383. TDM function is not supported for > 32 time slots. However, TDM time slot counter may count to 383 when used to receive a DIR block (transferred over TDM format).
90
RSLOTCNT
OF(value)
017Fh
B-253
Legend: R = Read only; R/W = Read/Write; -n = value after reset If writing to this field, always write the default value for future device compatibility.
Table B195. Receive Clock Check Control Register (RCLKCHK) Field Values
Bit 3124 field RCNT symval OF(value) Value 0FFh Description Receive clock count value (from previous measurement). The clock circuit continually counts the number of DSP system clocks for every 32 receive high-frequency master clock (AHCLKR) signals, and stores the count in RCNT until the next measurement is taken. Receive clock maximum boundary. This 8-bit unsigned value sets the maximum allowed boundary for the clock check counter after 32 receive high-frequency master clock (AHCLKR) signals have been received. If the current counter value is greater than RMAX after counting 32 AHCLKR signals, RCKFAIL in RSTAT is set. The comparison is performed using unsigned arithmetic. Receive clock minimum boundary. This 8-bit unsigned value sets the minimum allowed boundary for the clock check counter after 32 receive high-frequency master clock (AHCLKR) signals have been received. If RCNT is less than RMIN after counting 32 AHCLKR signals, RCKFAIL in RSTAT is set. The comparison is performed using unsigned arithmetic.
2316
RMAX
OF(value)
0FFh
158
RMIN
OF(value)
0FFh
B-254
Table B195. Receive Clock Check Control Register (RCLKCHK) Field Values (Continued)
Bit 74 field Reserved symval Value 0 Description Reserved. The reserved bit location always returns the default value. A value written to this field has no effect. If writing to this field, always write the default value for future device compatibility. Receive clock check prescaler value. McASP system clock divided by 1 McASP system clock divided by 2 McASP system clock divided by 4 McASP system clock divided by 8 McASP system clock divided by 16 McASP system clock divided by 32 McASP system clock divided by 64 McASP system clock divided by 128 McASP system clock divided by 256 Reserved
30
RPS DIVBY1 DIVBY2 DIVBY4 DIVBY8 DIVBY16 DIVBY32 DIVBY64 DIVBY128 DIVBY256
0Fh 0 1h 2h 3h 4h 5h 6h 7h 8h 9hFh
B-255
0 RDATDMA R/W-0
Table B196. Receiver DMA Event Control Register (REVTCTL) Field Values
Bit 311 field Reserved symval Value 0 Description Reserved. The reserved bit location always returns the default value. A value written to this field has no effect. If writing to this field, always write the default value for future device compatibility. Receive data DMA request enable bit. ENABLE DISABLE
RDATDMA 0 1
Receive data DMA request is enabled. Receive data DMA request is disabled.
B-256
Legend: R = Read only; R/W = Read/Write; -n = value after reset If writing to this field, always write the default value for future device compatibility.
12
XFRST 0 1
Transmit frame sync generator is reset. Transmit frame sync generator is active.
B-257
Table B197. Transmitter Global Control Register (XGBLCTL) Field Values (Continued)
Bit 11 field XSMRST RESET ACTIVE 10 XSRCLR CLEAR ACTIVE 9 XHCLKRST RESET ACTIVE 8 XCLKRST RESET ACTIVE 75 Reserved 0 1 0 0 1 0 1 0 1 symval Value Description Transmit state machine reset enable bit. A write to this bit affects the XSMRST bit of GBLCTL. Transmit state machine is held in reset. Transmit state machine is released from reset. Transmit serializer clear enable bit. A write to this bit affects the XSRCLR bit of GBLCTL. Transmit serializers are cleared. Transmit serializers are active. Transmit high-frequency clock divider reset enable bit. A write to this bit affects the XHCLKRST bit of GBLCTL. Transmit high-frequency clock divider is held in reset. Transmit high-frequency clock divider is running. Transmit clock divider reset enable bit. A write to this bit affects the XCLKRST bit of GBLCTL. Transmit clock divider is held in reset. Transmit clock divider is running. Reserved. The reserved bit location always returns the default value. A value written to this field has no effect. If writing to this field, always write the default value for future device compatibility. Receive frame sync generator reset enable bit. A read of this bit returns the RFRST bit value of GBLCTL. Writes have no effect. Receive state machine reset enable bit. A read of this bit returns the RSMRST bit value of GBLCTL. Writes have no effect. Receive serializer clear enable bit. A read of this bit returns the RSRSCLR bit value of GBLCTL. Writes have no effect.
4 3
RFRST RSMRST
x x
RSRCLR
B-258
Table B197. Transmitter Global Control Register (XGBLCTL) Field Values (Continued)
Bit 1 field RHCLKRST symval Value x Description Receive high-frequency clock divider reset enable bit. A read of this bit returns the RHCLKRST bit value of GBLCTL. Writes have no effect. Receive clock divider reset enable bit. A read of this bit returns the RCLKRST bit value of GBLCTL. Writes have no effect.
RCLKRST
B-259
Table B198. Transmit Format Unit Bit Mask Register (XMASK) Field Values
Bit 310 field XMASK[310] USEMASK 0 symval Value Description Transmit data mask enable bit. Corresponding bit of transmit data (before passing through reverse and rotate units) is masked out and then padded with the selected bit pad value (XPAD and XPBIT bits in XFMT), which is transmitted out the McASP in place of the original bit. Corresponding bit of transmit data (before passing through reverse and rotate units) is transmitted out the McASP.
NOMASK
B-260
Legend: R = Read only; R/W = Read/Write; -n = value after reset If writing to this field, always write the default value for future device compatibility.
Table B199. Transmit Bit Stream Format Register (XFMT) Field Values
Bit 3118 field Reserved symval Value 0 Description Reserved. The reserved bit location always returns the default value. A value written to this field has no effect. If writing to this field, always write the default value for future device compatibility. Transmit sync bit delay. 0-bit delay. The first transmit data bit, AXR[n], occurs in the same ACLKX cycle as the transmit frame sync (AFSX). 1-bit delay. The first transmit data bit, AXR[n], occurs one ACLKX cycle after the transmit frame sync (AFSX). 2-bit delay. The first transmit data bit, AXR[n], occurs two ACLKX cycles after the transmit frame sync (AFSX). Reserved Transmit serial bitstream order. LSBFIRST MSBFIRST
1716
03h 0 1h 2h 3h
15
XRVRS 0 1
Bitstream is LSB first. No bit reversal is performed in transmit format bit reverse unit. Bitstream is MSB first. Bit reversal is performed in transmit format bit reverse unit.
B-261
Table B199. Transmit Bit Stream Format Register (XFMT) Field Values (Continued)
Bit 1413 field XPAD ZERO ONE XPBIT 128 XPBIT OF(value) symval Value 03h 0 1h 2h 3h 01Fh Description Pad value for extra bits in slot not belonging to word defined by XMASK. This field only applies to bits when XMASK[n] = 0. Pad extra bits with 0. Pad extra bits with 1. Pad extra bits with one of the bits from the word as specified by XPBIT bits. Reserved XPBIT value determines which bit (as written by the CPU or EDMA to XBUF[n]) is used to pad the extra bits before shifting. This field only applies when XPAD = 2h. Pad with bit 0 value.
DEFAULT
1h1Fh Pad with bit 1 to bit 31 value. 74 XSSZ 8BITS 12BITS 16BITS 20BITS 24BITS 28BITS 32BITS
0Fh 02h 3h 4h 5h 6h 7h 8h 9h Ah Bh Ch Dh Eh Fh
Transmit slot size. Reserved Slot size is 8 bits. Reserved Slot size is 12 bits. Reserved Slot size is 16 bits. Reserved Slot size is 20 bits. Reserved Slot size is 24 bits. Reserved Slot size is 28 bits. Reserved Slot size is 32 bits.
B-262
Table B199. Transmit Bit Stream Format Register (XFMT) Field Values (Continued)
Bit 3 field XBUSEL DAT 0 symval Value Description Selects whether writes to serializer buffer XRBUF[n] originate from the configuration bus (CFG) or the data (DAT) port. Writes to XRBUF[n] originate from the data port. Writes to XRBUF[n] from the configuration bus are ignored with no effect to the McASP. Writes to XRBUF[n] originate from the configuration bus. Writes to XRBUF[n] from the data port are ignored with no effect to the McASP. Right-rotation value for transmit rotate right format unit. Rotate right by 0 (no rotation). Rotate right by 4 bit positions. Rotate right by 8 bit positions. Rotate right by 12 bit positions. Rotate right by 16 bit positions. Rotate right by 20 bit positions. Rotate right by 24 bit positions. Rotate right by 28 bit positions.
CFG
20
07h 0 1h 2h 3h 4h 5h 6h 7h
B-263
Reserved
Reserved
Legend: R = Read only; R/W = Read/Write; -n = value after reset If writing to this field, always write the default value for future device compatibility.
Table B200. Transmit Frame Sync Control Register (AFSXCTL) Field Values
Bit 3116 field Reserved symval Value 0 Description Reserved. The reserved bit location always returns the default value. A value written to this field has no effect. If writing to this field, always write the default value for future device compatibility. Transmit frame sync mode select bits. Burst mode Reserved 2-slot TDM (I2S mode) to 32-slot TDM Reserved 384-slot DIT mode Reserved. The reserved bit location always returns the default value. A value written to this field has no effect. If writing to this field, always write the default value for future device compatibility.
157
XMOD
OF(value) BURST
65
Reserved
B-264
Table B200. Transmit Frame Sync Control Register (AFSXCTL) Field Values
Bit 4 field FXWID BIT WORD 32 Reserved 0 1 0 symval Value Description Transmit frame sync width select bit indicates the width of the transmit frame sync (AFSX) during its active period. Single bit Single word Reserved. The reserved bit location always returns the default value. A value written to this field has no effect. If writing to this field, always write the default value for future device compatibility. Transmit frame sync generation select bit. EXTERNAL INTERNAL 0 FSXP ACTIVEHIGH ACTIVELOW
FSXM 0 1
Externally-generated transmit frame sync Internally-generated transmit frame sync Transmit frame sync polarity select bit.
0 1
A rising edge on transmit frame sync (AFSX) indicates the beginning of a frame. A falling edge on transmit frame sync (AFSX) indicates the beginning of a frame.
Legend: R = Read only; R/W = Read/Write; -n = value after reset If writing to this field, always write the default value for future device compatibility.
B-265
CLKXP
FALLING
ASYNC 0 1
Synchronous. Transmit clock and frame sync provides the source for both the transmit and receive sections. Asynchronous. Separate clock and frame sync used by transmit and receive sections. Transmit bit clock source bit. External transmit clock source from ACLKX pin. Internal transmit clock source from output of programmable bit clock divider. Transmit bit clock divide ratio bits determine the divide-down ratio from AHCLKX to ACLKX. Divide-by-1 Divide-by-2 Divide-by-3 to divide-by-32
B-266
Reserved
Legend: R = Read only; R/W = Read/Write; -n = value after reset If writing to this field, always write the default value for future device compatibility.
Table B202. Transmit High-Frequency Clock Control Register (AHCLKXCTL) Field Values
Bit 3116 field Reserved symval Value 0 Description Reserved. The reserved bit location always returns the default value. A value written to this field has no effect. If writing to this field, always write the default value for future device compatibility. Transmit high-frequency clock source bit. EXTERNAL INTERNAL
15
HCLKXM 0 1
External transmit high-frequency clock source from AHCLKX pin. Internal transmit high-frequency clock source from output of programmable high clock divider.
B-267
Table B202. Transmit High-Frequency Clock Control Register (AHCLKXCTL) Field Values (Continued)
Bit 14 field HCLKXP RISING 0 symval Value Description Transmit bitstream high-frequency clock polarity select bit. Rising edge. AHCLKX is not inverted before programmable bit clock divider. In the special case where the transmit bit clock (ACLKX) is internally generated and the programmable bit clock divider is set to divide-by-1 (CLKXDIV = 0 in ACLKXCTL), AHCLKX is directly passed through to the ACLKX pin. Falling edge. AHCLKX is inverted before programmable bit clock divider. In the special case where the transmit bit clock (ACLKX) is internally generated and the programmable bit clock divider is set to divide-by-1 (CLKXDIV = 0 in ACLKXCTL), AHCLKX is directly passed through to the ACLKX pin. Reserved. The reserved bit location always returns the default value. A value written to this field has no effect. If writing to this field, always write the default value for future device compatibility. Transmit high-frequency clock divide ratio bits determine the divide-down ratio from AUXCLK to AHCLKX. Divide-by-1 Divide-by-2 Divide-by-3 to divide-by-4096
FALLING
1312
Reserved
110
0FFFh 0 1h 2hFFFh
B-268
Table B203. Transmit TDM Time Slot Register (XTDM) Field Values
Bit 310 field XTDMS[310] INACTIVE ACTIVE 0 1 symval Value Description Transmitter mode during TDM time slot n. Transmit TDM time slot n is inactive. The transmit serializer does not shift out data during this slot. Transmit TDM time slot n is active. The transmit serializer shifts out data during this slot according to the serializer control register (SRCTL).
B-269
Legend: R = Read only; R/W = Read/Write; -n = value after reset If writing to this field, always write the default value for future device compatibility.
XSTAFRM
B-270
Table B204. Transmitter Interrupt Control Register (XINTCTL) Field Values (Continued)
Bit 5 field XDATA DISABLE ENABLE 4 XLAST DISABLE ENABLE 3 XDMAERR DISABLE ENABLE 2 XCKFAIL DISABLE ENABLE 1 XSYNCERR DISABLE ENABLE
symval
Value
0 1
Interrupt is disabled. A transmit data ready interrupt does not generate a McASP transmit interrupt (XINT). Interrupt is enabled. A transmit data ready interrupt generates a McASP transmit interrupt (XINT). Transmit last slot interrupt enable bit.
0 1
Interrupt is disabled. A transmit last slot interrupt does not generate a McASP transmit interrupt (XINT). Interrupt is enabled. A transmit last slot interrupt generates a McASP transmit interrupt (XINT). Transmit EDMA error interrupt enable bit.
0 1
Interrupt is disabled. A transmit EDMA error interrupt does not generate a McASP transmit interrupt (XINT). Interrupt is enabled. A transmit EDMA error interrupt generates a McASP transmit interrupt (XINT). Transmit clock failure interrupt enable bit.
0 1
Interrupt is disabled. A transmit clock failure interrupt does not generate a McASP transmit interrupt (XINT). Interrupt is enabled. A transmit clock failure interrupt generates a McASP transmit interrupt (XINT). Unexpected transmit frame sync interrupt enable bit.
0 1
Interrupt is disabled. An unexpected transmit frame sync interrupt does not generate a McASP transmit interrupt (XINT). Interrupt is enabled. An unexpected transmit frame sync interrupt generates a McASP transmit interrupt (XINT).
B-271
Table B204. Transmitter Interrupt Control Register (XINTCTL) Field Values (Continued)
Bit 0 field XUNDRN DISABLE 0 symval Value Description Transmitter underrun interrupt enable bit. Interrupt is disabled. Interrupt is disabled. A transmitter underrun interrupt does not generate a McASP transmit interrupt (XINT). ENABLE
Interrupt is enabled. A transmitter underrun interrupt generates a McASP transmit interrupt (XINT).
Legend: R = Read only; R/W = Read/Write; -n = value after reset If writing to this field, always write the default value for future device compatibility.
B-272
XERR
OF(value)
DEFAULT
B-273
0 1
B-274
Legend: R = Read only; -n = value after reset If writing to this field, always write the default value for future device compatibility.
Table B206. Current Transmit TDM Time Slot Register (XSLOT) Field Values
Bit 3110 Field Reserved symval Value 0 Description Reserved. The reserved bit location always returns the default value. A value written to this field has no effect. If writing to this field, always write the default value for future device compatibility. Current transmit time slot count. Legal values: 0 to 383. During reset, this counter value is 383 so the next count value, which is used to encode the first DIT group of data, will be 0 and encodes the B preamble. TDM function is not supported for >32 time slots. However, TDM time slot counter may count to 383 when used to transmit a DIT block.
90
XSLOTCNT
OF(value)
017Fh
B-275
Reserved
Legend: R = Read only; R/W = Read/Write; -n = value after reset If writing to this field, always write the default value for future device compatibility.
Table B207. Transmit Clock Check Control Register (XCLKCHK) Field Values
Bit 3124 field XCNT symval OF(value) Value Description
0FFh Transmit clock count value (from previous measurement). The clock circuit continually counts the number of DSP system clocks for every 32 transmit high-frequency master clock (AHCLKX) signals, and stores the count in XCNT until the next measurement is taken. 0FFh Transmit clock maximum boundary. This 8-bit unsigned value sets the maximum allowed boundary for the clock check counter after 32 transmit high-frequency master clock (AHCLKX) signals have been received. If the current counter value is greater than XMAX after counting 32 AHCLKX signals, XCKFAIL in XSTAT is set. The comparison is performed using unsigned arithmetic. 0FFh Transmit clock minimum boundary. This 8-bit unsigned value sets the minimum allowed boundary for the clock check counter after 32 transmit high-frequency master clock (AHCLKX) signals have been received. If XCNT is less than XMIN after counting 32 AHCLKX signals, XCKFAIL in XSTAT is set. The comparison is performed using unsigned arithmetic.
2316
XMAX
OF(value)
158
XMIN
OF(value)
B-276
Table B207. Transmit Clock Check Control Register (XCLKCHK) Field Values (Continued)
Bit 7 field XCKFAILSW DISABLE ENABLE 64 Reserved 0 1 0 symval Value Description Transmit clock failure detect autoswitch enable bit. Transmit clock failure detect autoswitch is disabled. Transmit clock failure detect autoswitch is enabled. Reserved. The reserved bit location always returns the default value. A value written to this field has no effect. If writing to this field, always write the default value for future device compatibility. Transmit clock check prescaler value. McASP system clock divided by 1 McASP system clock divided by 2 McASP system clock divided by 4 McASP system clock divided by 8 McASP system clock divided by 16 McASP system clock divided by 32 McASP system clock divided by 64 McASP system clock divided by 128 McASP system clock divided by 256 Reserved
30
XPS DIVBY1 DIVBY2 DIVBY4 DIVBY8 DIVBY16 DIVBY32 DIVBY64 DIVBY128 DIVBY256
0Fh 0 1h 2h 3h 4h 5h 6h 7h 8h 9hFh
B-277
0 XDATDMA R/W-0
Table B208. Transmitter DMA Event Control Register (XEVTCTL) Field Values
Bit 311 field Reserved symval Value 0 Description Reserved. The reserved bit location always returns the default value. A value written to this field has no effect. If writing to this field, always write the default value for future device compatibility. Transmit data DMA request enable bit. ENABLE DISABLE
XDATDMA 0 1
Transmit data DMA request is enabled. Transmit data DMA request is disabled.
B-278
Legend: R = Read only; R/W = Read/Write; -n = value after reset If writing to this field, always write the default value for future device compatibility.
RRDY
OF(value)
DEFAULT
Receive buffer (RBUF) is empty. Receive buffer (RBUF) contains data and needs to be read before the start of the next time slot or a receiver overrun occurs.
B-279
DEFAULT
0 1h 2h 3h 03h 0 1h 2h 3h
B-280
B-281
B-282
B-283
B.12.1 Data Receive Register (DRR) Figure B206. Data Receive Register (DRR)
31 DR R-0
Legend: R/W-x = Read/Write-Reset value
Field DR
symval OF(value)
B-284
B.12.2 Data Transmit Register (DXR) Figure B207. Data Transmit Register (DXR)
31 DX R/W-0
Legend: R/W-x = Read/Write-Reset value
Field DX
symval OF(value)
Description Data transmit register value to be loaded into the data transmit shift register (XSR).
B.12.3 Serial Port Control Register (SPCR) Figure B208. Serial Port Control Register (SPCR)
31 Reserved R-0 23 FRST R/W-0 15 DLB R/W-0 7 DXENA R/W-0
26
25 FREE R/W-0
22 GRST R/W-0 14
20
19 XSYNCERR R/W-0 11 10
18 XEMPTY R-0
17 XRDY R-0
6 Reserved R-0
Available in the C621x/C671x/C64x only. Writing a 1 to XSYNCERR or RSYNCERR sets the error condition when the transmitter or receiver (XRST=1 or RRST=1), respectively, are enabled. Thus, it is used mainly for testing purposes or if this operation is desired.
B-285
22
GRST
B-286
Table B213. Serial Port Control Register (SPCR) Field Values (Continued)
Bit 2120 field XINTM XRDY EOS FRM XSYNCERR 19 XSYNCERR symval Value 03h 0 1h 2h 3h Description Transmit interrupt (XINT) mode bit. XINT is driven by XRDY (end-of-word) and end-of-frame in A-bis mode. XINT is generated by end-of-block or end-of-frame in multichannel operation. XINT is generated by a new frame synchronization. XINT is generated by XSYNCERR. Transmit synchronization error bit. Writing a 1 to XSYNCERR sets the error condition when the transmitter is enabled (XRST = 1). Thus, it is used mainly for testing purposes or if this operation is desired. NO YES 18 XEMPTY YES NO 17 XRDY NO YES 16 XRST YES NO 15 DLB OFF ON
0 1
No synchronization error is detected. Synchronization error is detected. Transmit shift register empty bit.
0 1
0 1
Transmitter is not ready. Transmitter is ready for new data in DXR. Transmitter reset bit resets or enables the transmitter.
0 1
Serial port transmitter is disabled and in reset state. Serial port transmitter is enabled. Digital loop back mode enable bit.
0 1
Digital loop back mode is disabled. Digital loop back mode is enabled.
B-287
Table B213. Serial Port Control Register (SPCR) Field Values (Continued)
Bit 1413 field RJUST RZF RSE LZF 1211 CLKSTP DISABLE symval Value 03h 0 1h 2h 3h 03h 01h Description Receive sign-extension and justification mode bit. Right-justify and zero-fill MSBs in DRR. Right-justify and sign-extend MSBs in DRR. Left-justify and zero-fill LSBs in DRR. Reserved Clock stop mode bit. In SPI mode, operates in conjunction with CLKXP bit of pin control register (PCR). Clock stop mode is disabled. Normal clocking for non-SPI mode. In SPI mode with data sampled on rising edge (CLKXP = 0): NODELAY DELAY 2h 3h Clock starts with rising edge without delay. Clock starts with rising edge with delay. In SPI mode with data sampled on falling edge (CLKXP = 1): NODELAY DELAY 108 7 Reserved DXENA OFF ON 6
2h 3h 0
Clock starts with falling edge without delay. Clock starts with falling edge with delay. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. For C621x/C671x and C64x DSP: DX enabler bit.
0 1 0
DX enabler is off. DX enabler is on. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect.
Reserved
B-288
Table B213. Serial Port Control Register (SPCR) Field Values (Continued)
Bit 54 field RINTM RRDY EOS FRM RSYNCERR 3 RSYNCERR symval Value 03h 0 1h 2h 3h Description Receive interrupt (RINT) mode bit. RINT is driven by RRDY (end-of-word) and end-of-frame in A-bis mode. RINT is generated by end-of-block or end-of-frame in multichannel operation. RINT is generated by a new frame synchronization. RINT is generated by RSYNCERR. Receive synchronization error bit. Writing a 1 to RSYNCERR sets the error condition when the receiver is enabled (RRST = 1). Thus, it is used mainly for testing purposes or if this operation is desired. NO YES 2 RFULL NO YES 1 RRDY NO YES 0 RRST YES NO
0 1
No synchronization error is detected. Synchronization error is detected. Receive shift register full bit.
0 1
RBR is not in overrun condition. DRR is not read, RBR is full, and RSR is also full with new word. Receiver ready bit.
0 1
Receiver is not ready. Receiver is ready with data to be read from DRR. Receiver reset bit resets or enables the receiver.
0 1
The serial port receiver is disabled and in reset state. The serial port receiver is enabled.
B-289
B.12.4 Pin Control Register (PCR) Figure B209. Pin Control Register (PCR)
31 Reserved R-0 23 Reserved R-0 15 Reserved R-0 7 Reserved R-0 6 CLKSSTAT R/W-0 14 13 XIOEN R/W-0 5 DXSTAT R/W-0 12 RIOEN R/W-0 4 DRSTAT R-0 11 FSXM R/W-0 3 FSXP R/W-0 10 FSRM R/W-0 2 FSRP R/W-0 9 CLKXM R/W-0 1 CLKXP R/W-0 8 CLKRM R/W-0 0 CLKRP R/W-0 16 24
B-290
11
FSXM
CLKXM
B-291
1 0
0 1
CLKS pin reflects a logic low. CLKS pin reflects a logic high. DX pin status reflects value driven to DX pin when configured as a general-purpose output pin.
0 1
DX pin reflects a logic low. DX pin reflects a logic high. DR pin status reflects value on DR pin when configured as a general-purpose input pin.
0 1
DR pin reflects a logic low. DR pin reflects a logic high. Transmit frame-synchronization polarity bit.
0 1
Transmit frame-synchronization pulse is active high. Transmit frame-synchronization pulse is active low.
B-292
symval
Value
0 1
Receive frame-synchronization pulse is active high. Receive frame-synchronization pulse is active low. Transmit clock polarity bit.
0 1
Transmit data sampled on rising edge of CLKX. Transmit data sampled on falling edge of CLKX. Receive clock polarity bit.
0 1
Receive data sampled on falling edge of CLKR. Receive data sampled on rising edge of CLKR.
B.12.5 Receive Control Register (RCR) Figure B210. Receive Control Register (RCR)
31 RPHASE R/W-0 23 RWDLEN2 R/W-0 15 Reserved R-0 7 RWDLEN1 R/W-0
Legend: R/W-x = Read/Write-Reset value
24
16
B-293
symval
Value
Single-phase frame Dual-phase frame Specifies the receive frame length (number of words) in phase 2. Specifies the receive word length (number of bits) in phase 2. Receive word length is 8 bits. Receive word length is 12 bits. Receive word length is 16 bits. Receive word length is 20 bits. Receive word length is 24 bits. Receive word length is 32 bits. Reserved Receive companding mode bit. Modes other than 00 are only enabled when RWDLEN1/2 bit is 000 (indicating 8-bit data). No companding, data transfer starts with MSB first. No companding, 8-bit data transfer starts with LSB first. Compand using -law for receive data. Compand using A-law for receive data. Receive frame ignore bit.
OF(value)
0 1
Receive frame-synchronization pulses after the first pulse restarts the transfer. Receive frame-synchronization pulses after the first pulse are ignored.
B-294
30
Reserved
B-295
B.12.6 Transmit Control Register (XCR) Figure B211. Transmit Control Register (XCR)
31 XPHASE R/W-0 23 XWDLEN2 R/W-0 15 Reserved R-0 7 XWDLEN1 R/W-0
Legend: R/W-x = Read/Write-Reset value
24
16
symval
Value
0 1 07Fh
Single-phase frame Dual-phase frame Specifies the transmit frame length (number of words) in phase 2.
XFRLEN2
OF(value)
B-296
symval
Description Specifies the transmit word length (number of bits) in phase 2. Transmit word length is 8 bits. Transmit word length is 12 bits. Transmit word length is 16 bits. Transmit word length is 20 bits. Transmit word length is 24 bits. Transmit word length is 32 bits. Reserved Transmit companding mode bit. Modes other than 00 are only enabled when XWDLEN1/2 bit is 000 (indicating 8-bit data). No companding, data transfer starts with MSB first. No companding, 8-bit data transfer starts with LSB first. Compand using -law for transmit data. Compand using A-law for transmit data. Transmit frame ignore bit.
0 1 03h 0 1h 2h 3h 0 07Fh
Transmit frame-synchronization pulses after the first pulse restarts the transfer. Transmit frame-synchronization pulses after the first pulse are ignored. Transmit data delay bit. 0-bit data delay 1-bit data delay 2-bit data delay Reserved Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the transmit frame length (number of words) in phase 1.
Reserved XFRLEN1
OF(value)
B-297
30
Reserved
B-298
B.12.7 Sample Rate Generator Register (SRGR) Figure B212. Sample Rate Generator Register (SRGR)
31 GSYNC R/W-0 30 CLKSP R/W-0 29 CLKSM R/W-1 28 FSGM R/W-0 27 FPER R/W-0 24
16
7 CLKGDV R/W-1
Legend: R/W-x = Read/Write-Reset value
B-299
Table B217. Sample Rate Generator Register (SRGR) Field Values (Continued)
Bit 30 field CLKSP symval Value Description CLKS polarity clock edge select bit only used when the external clock (CLKS) drives the sample-rate generator clock (CLKSM = 0). RISING FALLING 29 CLKSM CLKS INTERNAL 28 FSGM DXR2XSR FSG 2716 FPER OF(value) 0 1 0FFFh 0 1 0 1 Rising edge of CLKS generates CLKG and FSG. Falling edge of CLKS generates CLKG and FSG. MCBSP sample-rate generator clock mode bit. Sample-rate generator clock derived from the CLKS pin. Sample-rate generator clock derived from CPU clock. Sample-rate generator transmit frame-synchronization mode bit used when FSXM = 1 in PCR. Transmit frame-sync signal (FSX) due to DXR-to-XSR copy. When FSGM = 0, FWID bit and FPER bit are ignored. Transmit frame-sync signal (FSX) driven by the sample-rate generator frame-sync signal (FSG). The value plus 1 specifies when the next frame-sync signal becomes active. Range: 1 to 4096 sample-rate generator clock (CLKG) periods. The value plus 1 specifies the width of the frame-sync pulse (FSG) during its active period. The value is used as the divide-down number to generate the required sample-rate generator clock frequency.
158 70
FWID CLKGDV
OF(value) OF(value)
0FFh 0FFh
B-300
B.12.8 Multichannel Control Register (MCR) Figure B213. Multichannel Control Register (MCR)
31 Reserved R-0 23 XPBBLK R/W-0 15 Reserved R-0 7 RPBBLK R/W-0
26
25 XMCME R/W-0
22 XPABLK R/W-0
21 20 XCBLK R-0
18 17
10
9 RMCME R/W-0
6 RPABLK R/W-0
5 4 RCBLK R-0
1 Reserved R-0
XMCME and RMCME are only available on C64x devices. These bit fields are Reserved (R-0) on all other C6000 devices.
symval
Value 0
Description Reserved. The reserved bit location is always read as zero. A value written to this field has no effect. For devices with 128-channel selection capability: Transmit 128-channel selection enable bit.
0 1
Normal 32-channel selection is enabled. Six additional registers (XCERCXCERH) are used to enable 128-channel selection.
For CSL implementation, use the notation MCBSP_MCR_field_symval DX is masked or driven to a high-impedance state during (a) interpacket intervals, (b) when a channel is masked regardless of whether it is enabled, or (c) when a channel is disabled.
B-301
symval
Description Transmit partition B block bit. Enables 16 contiguous channels in each block. Block 1. Channel 16 to channel 31 Block 3. Channel 48 to channel 63 Block 5. Channel 80 to channel 95 Block 7. Channel 112 to channel 127 Transmit partition A block bit. Enables 16 contiguous channels in each block. Block 0. Channel 0 to channel 15 Block 2. Channel 32 to channel 47 Block 4. Channel 64 to channel 79 Block 6. Channel 96 to channel 111 Transmit current block bit. Block 0. Channel 0 to channel 15 Block 1. Channel 16 to channel 31 Block 2. Channel 32 to channel 47 Block 3. Channel 48 to channel 63 Block 4. Channel 64 to channel 79 Block 5. Channel 80 to channel 95 Block 6. Channel 96 to channel 111 Block 7. Channel 112 to channel 127
For CSL implementation, use the notation MCBSP_MCR_field_symval DX is masked or driven to a high-impedance state during (a) interpacket intervals, (b) when a channel is masked regardless of whether it is enabled, or (c) when a channel is disabled.
B-302
ENMASK DISRP
2h 3h
1510 9
Reserved RMCME
0 1 03h 0 1h 2h 3h
Normal 32-channel selection is enabled. Six additional registers (RCERCRCERH) are used to enable 128-channel selection. Receive partition B block bit. Enables 16 contiguous channels in each block. Block 1. Channel 16 to channel 31 Block 3. Channel 48 to channel 63 Block 5. Channel 80 to channel 95 Block 7. Channel 112 to channel 127
For CSL implementation, use the notation MCBSP_MCR_field_symval DX is masked or driven to a high-impedance state during (a) interpacket intervals, (b) when a channel is masked regardless of whether it is enabled, or (c) when a channel is disabled.
B-303
For CSL implementation, use the notation MCBSP_MCR_field_symval DX is masked or driven to a high-impedance state during (a) interpacket intervals, (b) when a channel is masked regardless of whether it is enabled, or (c) when a channel is disabled.
B-304
B.12.9 Receive Channel Enable Register (RCER) (C62x/C67x) Figure B214. Receive Channel Enable Register (RCER)
31 RCEB R/W-0 15 RCEA R/W-0
Legend: R/W-x = Read/Write-Reset value
16
150
RCEA
OF(value)
0FFFFh
B-305
B.12.10 Transmit Channel Enable Register (XCER) (C62x/C67x) Figure B215. Transmit Channel Enable Register (XCER)
31 XCEB R/W-0 15 XCEA R/W-0
Legend: R/W-x = Read/Write-Reset value
16
150
XCEA
OF(value)
0FFFFh
B-306
Table B221. Enhanced Receive Channel Enable Registers (RCERE03) Field Values
Bit 310 Field RCE symval OF(value) Value 0FFFF FFFFh Description A 32-bit unsigned value used to disable (bit value = 0) or enable (bit value = 1) reception of the nth channel of the 128 elements. See Table B222 for the bit number of a specific channel.
For CSL implementation, use the notation MCBSP_RCEREn_RCE_symval, where n is the register number, 03.
B-307
Table B222. Channel Enable Bits in RCEREn for a 128-Channel Data Stream
Channel Number of a 128-Channel Data Stream (RCEn) RCEREn Bit 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 B-308 0 - 15 RCERE0 RCERE0 RCERE0 RCERE0 RCERE0 RCERE0 RCERE0 RCERE0 RCERE0 RCERE0 RCERE0 RCERE0 RCERE0 RCERE0 RCERE0 RCERE0 RCERE0 RCERE0 RCERE0 RCERE0 RCERE0 RCERE0 RCERE0 RCERE0 RCERE0 RCERE0 RCERE0 RCERE0 RCERE0 RCERE0 RCERE0 RCERE0 TMS320C6000 CSL Registers 16 - 31 32 - 47 RCERE1 RCERE1 RCERE1 RCERE1 RCERE1 RCERE1 RCERE1 RCERE1 RCERE1 RCERE1 RCERE1 RCERE1 RCERE1 RCERE1 RCERE1 RCERE1 RCERE1 RCERE1 RCERE1 RCERE1 RCERE1 RCERE1 RCERE1 RCERE1 RCERE1 RCERE1 RCERE1 RCERE1 RCERE1 RCERE1 RCERE1 RCERE1 48 - 63 64 - 79 RCERE2 RCERE2 RCERE2 RCERE2 RCERE2 RCERE2 RCERE2 RCERE2 RCERE2 RCERE2 RCERE2 RCERE2 RCERE2 RCERE2 RCERE2 RCERE2 RCERE2 RCERE2 RCERE2 RCERE2 RCERE2 RCERE2 RCERE2 RCERE2 RCERE2 RCERE2 RCERE2 RCERE2 RCERE2 RCERE2 RCERE2 RCERE2 80 - 95 96 - 111 RCERE3 RCERE3 RCERE3 RCERE3 RCERE3 RCERE3 RCERE3 RCERE3 RCERE3 RCERE3 RCERE3 RCERE3 RCERE3 RCERE3 RCERE3 RCERE3 RCERE3 RCERE3 RCERE3 RCERE3 RCERE3 RCERE3 RCERE3 RCERE3 RCERE3 RCERE3 RCERE3 RCERE3 RCERE3 RCERE3 RCERE3 RCERE3 112-127
Table B223. Enhanced Transmit Channel Enable Registers (XCERE03) Field Values
Bit 310 Field XCE symval OF(value) Value 0FFFF FFFFh Description A 32-bit unsigned value used to disable (bit value = 0) or enable (bit value = 1) transmission of the nth channel of the 128 elements. See Table B224 for the bit number of a specific channel.
For CSL implementation, use the notation MCBSP_XCEREn_XCE_symval, where n is the register number, 03.
B-309
Table B224. Channel Enable Bits in XCEREn for a 128-Channel Data Stream
Channel Number of a 128-Channel Data Stream (XCEn) XCEREn Bit 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 - 15 XCERE0 XCERE0 XCERE0 XCERE0 XCERE0 XCERE0 XCERE0 XCERE0 XCERE0 XCERE0 XCERE0 XCERE0 XCERE0 XCERE0 XCERE0 XCERE0 XCERE0 XCERE0 XCERE0 XCERE0 XCERE0 XCERE0 XCERE0 XCERE0 XCERE0 XCERE0 XCERE0 XCERE0 XCERE0 XCERE0 XCERE0 XCERE0 16 - 31 32 - 47 XCERE1 XCERE1 XCERE1 XCERE1 XCERE1 XCERE1 XCERE1 XCERE1 XCERE1 XCERE1 XCERE1 XCERE1 XCERE1 XCERE1 XCERE1 XCERE1 XCERE1 XCERE1 XCERE1 XCERE1 XCERE1 XCERE1 XCERE1 XCERE1 XCERE1 XCERE1 XCERE1 XCERE1 XCERE1 XCERE1 XCERE1 XCERE1 48 - 63 64 - 79 XCERE2 XCERE2 XCERE2 XCERE2 XCERE2 XCERE2 XCERE2 XCERE2 XCERE2 XCERE2 XCERE2 XCERE2 XCERE2 XCERE2 XCERE2 XCERE2 XCERE2 XCERE2 XCERE2 XCERE2 XCERE2 XCERE2 XCERE2 XCERE2 XCERE2 XCERE2 XCERE2 XCERE2 XCERE2 XCERE2 XCERE2 XCERE2 80 - 95 96 - 111 XCERE3 XCERE3 XCERE3 XCERE3 XCERE3 XCERE3 XCERE3 XCERE3 XCERE3 XCERE3 XCERE3 XCERE3 XCERE3 XCERE3 XCERE3 XCERE3 XCERE3 XCERE3 XCERE3 XCERE3 XCERE3 XCERE3 XCERE3 XCERE3 XCERE3 XCERE3 XCERE3 XCERE3 XCERE3 XCERE3 XCERE3 XCERE3 112-127
B-310
B-311
16
8 7 REVMIN R-x
symval
Value
Description Identifies type of peripheral. MDIO Identifies major revision of peripheral. See the device-specific datasheet for the value. Identifies minor revision of peripheral. See the device-specific datasheet for the value.
B-312
FAULTENB INTTESTENB
Legend: R = Read only; WC = Write to clear; R/W = Read/Write; -n = value after reset
0 1 0
Disables the MDIO state machine. Enables the MDIO state machine. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect.
Reserved
B-313
18
FAULTENB
1613 128
0 1
70
0FFh Clock divider bits. Specifies the division ratio between peripheral clock and the frequency of MDCLK. MDCLK is disabled when CLKDIV is cleared to 0. MDCLK frequency = peripheral clock/(CLKDIV + 1). 0 DEFAULT FFh MDCLK is disabled. MDCLK frequency = peripheral clock/256.
B-314
Table B228. MDIO PHY Alive Indication Register (ALIVE) Field Values
Bit 310 Field ALIVE Value Description MDIO ALIVE bits. Both user and polling accesses to a PHY cause the corresponding ALIVE bit to be updated. The ALIVE bits are only meant to give an indication of the presence or not of a PHY with the corresponding address. Writing a 1 to any bit clears that bit, writing a 0 has no effect. 0 1 The PHY fails to acknowledge the access. The most recent access to the PHY with an address corresponding to the register bit number was acknowledged by the PHY.
B-315
Table B229. MDIO PHY Link Status Register (LINK) Field Values
Bit 310 Field LINK 0 1 Value Description MDIO link state bits. These bits are updated after a read of the PHY generic status register. Writes to these bits have no effect. The PHY indicates it does not have a link or fails to acknowledge the read transaction. The PHY with the corresponding address has a link and the PHY acknowledges the read transaction.
B-316
1 MAC1 R/WC-0
0 MAC0 R/WC-0
Table B230. MDIO Link Status Change Interrupt Register (LINKINTRAW) Field Values
Bit 312 1 field Reserved MAC1 symval Value 0 Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. MDIO link change event bit. Writing a 1 clears the event and writing a 0 has no effect. If the INTTESTENB bit in the MDIO control register is set to 1, the host may set the MAC1 bit to 1 for test purposes. NO YES 0 1 No MDIO link change event. An MDIO link change event (change in the MDIO PHY link status register) corresponding to the PHY address in MDIO user PHY select register 1 (USERPHYSEL1). MDIO link change event bit. Writing a 1 clears the event and writing a 0 has no effect. If the INTTESTENB bit in the MDIO control register is set to 1, the host may set the MAC0 bit to 1 for test purposes. NO YES 0 1 No MDIO link change event. An MDIO link change event (change in the MDIO PHY link status register) corresponding to the PHY address in MDIO user PHY select register 0 (USERPHYSEL0).
MAC0
B-317
Figure B223. MDIO Link Status Change Interrupt (Masked) Register (LINKINTMASKED)
31 Reserved R-0
Legend: R = Read only; WC = Write 1 to clear, write of 0 has no effect; -n = value after reset
1 MAC1 R/WC-0
0 MAC0 R/WC-0
Table B231. MDIO Link Status Change Interrupt (Masked) Register (LINKINTMASKED) Field Values
Bit 312 1 field Reserved MAC1 symval Value 0 Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. MDIO link change interrupt bit. Writing a 1 clears the interrupt and writing a 0 has no effect. If the INTTESTENB bit in the MDIO control register is set to 1, the host may set the MAC1 bit to 1 for test purposes. NO YES 0 1 No MDIO link change event. An MDIO link change event (change in the MDIO PHY link status register) corresponding to the PHY address in MDIO user PHY select register 1 (USERPHYSEL1) and the LINKINTENB bit in USERPHYSEL1 is set to 1. MDIO link change interrupt bit. Writing a 1 clears the interrupt and writing a 0 has no effect. If the INTTESTENB bit in the MDIO control register is set to 1, the host may set the MAC0 bit to 1 for test purposes. NO YES 0 1 No MDIO link change event. An MDIO link change event (change in the MDIO PHY link status register) corresponding to the PHY address in MDIO user PHY select register 0 (USERPHYSEL0) and the LINKINTENB bit in USERPHYSEL0 is set to 1.
MAC0
B-318
1 MAC1 R/WC-0
0 MAC0 R/WC-0
Table B232. MDIO User Command Complete Interrupt Register (USERINTRAW) Field Values
Bit 312 1 field Reserved MAC1 symval Value 0 Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. MDIO user command complete event bit. Writing a 1 clears the event and writing a 0 has no effect. If the INTTESTENB bit in the MDIO control register is set to 1, the host may set the MAC1 bit to 1 for test purposes. NO YES 0 MAC0 0 1 No MDIO user command complete event. The previously scheduled PHY read or write command using MDIO user access register 1 (USERACCESS1) has completed. MDIO user command complete event bit. Writing a 1 clears the event and writing a 0 has no effect. If the INTTESTENB bit in the MDIO control register is set to 1, the host may set the MAC0 bit to 1 for test purposes. NO YES
0 1
No MDIO user command complete event. The previously scheduled PHY read or write command using MDIO user access register 0 (USERACCESS0) has completed.
B-319
Figure B225. MDIO User Command Complete Interrupt (Masked) Register (USERINTMASKED)
31 Reserved R-0
Legend: R = Read only; WC = Write 1 to clear, write of 0 has no effect; -n = value after reset
1 MAC1 R/WC-0
0 MAC0 R/WC-0
Table B233. MDIO User Command Complete Interrupt (Masked) Register (USERINTMASKED) Field Values
Bit 312 1 field Reserved MAC1 symval Value 0 Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. MDIO user command complete interrupt bit. Writing a 1 clears the interrupt and writing a 0 has no effect. If the INTTESTENB bit in the MDIO control register is set to 1, the host may set the MAC1 bit to 1 for test purposes. NO YES 0 1 No MDIO user command complete event. The previously scheduled PHY read or write command using MDIO user access register 1 (USERACCESS1) has completed and the MAC1 bit in USERINTMASKSET is set to 1. MDIO user command complete interrupt bit. Writing a 1 clears the interrupt and writing a 0 has no effect. If the INTTESTENB bit in the MDIO control register is set to 1, the host may set the MAC0 bit to 1 for test purposes. NO YES 0 1 No MDIO user command complete event. The previously scheduled PHY read or write command using MDIO user access register 0 (USERACCESS0) has completed and the MAC0 bit in USERINTMASKSET is set to 1.
MAC0
B-320
B.13.9 MDIO User Command Complete Interrupt Mask Set Register (USERINTMASKSET)
The MDIO user command complete interrupt mask set register (USERINTMASKSET) is shown in Figure B226 and described in Table B234.
Figure B226. MDIO User Command Complete Interrupt Mask Set Register (USERINTMASKSET)
31 Reserved R-0
Legend: R = Read only; WS = Write 1 to set, write of 0 has no effect; -n = value after reset
1 MAC1 R/WS-0
0 MAC0 R/WS-0
Table B234. MDIO User Command Complete Interrupt Mask Set Register (USERINTMASKSET) Field Values
Bit 312 1 field Reserved MAC1 symval Value 0 Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. MDIO user command complete interrupt mask set bit for MAC1 in USERINTMASKED. Writing a 1 sets the bit and writing a 0 has no effect. NO YES 0 MAC0 0 1 MDIO user command complete interrupts for the MDIO user access register 1 (USERACCESS1) are disabled. MDIO user command complete interrupts for the MDIO user access register 1 (USERACCESS1) are enabled. MDIO user command complete interrupt mask set bit for MAC0 in USERINTMASKED. Writing a 1 sets the bit and writing a 0 has no effect. NO YES
0 1
MDIO user command complete interrupts for the MDIO user access register 0 (USERACCESS0) are disabled. MDIO user command complete interrupts for the MDIO user access register 0 (USERACCESS0) are enabled.
B-321
B.13.10 MDIO User Command Complete Interrupt Mask Clear Register (USERINTMASKCLEAR)
The MDIO user command complete interrupt mask clear register (USERINTMASKCLEAR) is shown in Figure B227 and described in Table B235.
Figure B227. MDIO User Command Complete Interrupt Mask Clear Register (USERINTMASKCLEAR)
31 Reserved R-0
Legend: R = Read only; WC = Write 1 to clear, write of 0 has no effect; -n = value after reset
1 MAC1 R/WC-0
0 MAC0 R/WC-0
Table B235. MDIO User Command Complete Interrupt Mask Clear Register (USERINTMASKCLEAR) Field Values
Bit 312 1 field Reserved MAC1 symval Value 0 Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. MDIO user command complete interrupt mask clear bit for MAC1 in USERINTMASKED. Writing a 1 clears the bit and writing a 0 has no effect. NO YES 0 MAC0 0 1 MDIO user command complete interrupts for the MDIO user access register 1 (USERACCESS1) are enabled. MDIO user command complete interrupts for the MDIO user access register 1 (USERACCESS1) are disabled. MDIO user command complete interrupt mask clear bit for MAC0 in USERINTMASKED. Writing a 1 clears the bit and writing a 0 has no effect. NO YES
0 1
MDIO user command complete interrupts for the MDIO user access register 0 (USERACCESS0) are enabled. MDIO user command complete interrupts for the MDIO user access register 0 (USERACCESS0) are disabled.
B-322
30 WRITE R/W-0
29 ACK R/W-0
28 R-0
26 25 REGADR R/W-0
21 20 PHYADR R/W-0
16
Reserved
30
WRITE
MDIO transaction is a register read. MDIO transaction is a register write. Acknowledge bit determines if the PHY acknowledges the read transaction. No acknowledge. PHY acknowledges the read transaction. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect.
Reserved
B-323
Table B236. MDIO User Access Register 0 (USERACCESS0) Field Values (Continued)
Bit 2521 2016 150
symval
Description Register address bits specify the PHY register to be accessed for this transaction. PHY address bits specify the PHY to be accessed for this transaction. User data bits specify the data value read from or to be written to the specified PHY register.
30 WRITE R/W-0
29 ACK R/W-0
28 R-0
26 25 REGADR R/W-0
21 20 PHYADR R/W-0
16
Reserved
B-324
30
WRITE
MDIO transaction is a register read. MDIO transaction is a register write. Acknowledge bit determines if the PHY acknowledges the read transaction. No acknowledge. PHY acknowledges the read transaction. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Register address bits specify the PHY register to be accessed for this transaction. PHY address bits specify the PHY to be accessed for this transaction. User data bits specify the data value read from or to be written to the specified PHY register.
B-325
LINKSEL LINKINTENB
Table B238. MDIO User PHY Select Register 0 (USERPHYSEL0) Field Values
Bit 318 7 field Reserved LINKSEL MDIO MLINK 6 LINKINTENB DISABLE ENABLE 5 40
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Link status determination select bit.
0 1
Link status is determined by the MDIO state machine. Value must be set to MDIO. Link change interrupt enable bit.
0 1 0
Link change interrupts are disabled. Link change status interrupts for PHY address specified in PHYADDR bits are enabled. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect.
Reserved PHYADDR
B-326
LINKSEL LINKINTENB
Table B239. MDIO User PHY Select Register 1 (USERPHYSEL1) Field Values
Bit 318 7 field Reserved LINKSEL MDIO MLINK 6 LINKINTENB DISABLE ENABLE 5 40
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Link status determination select bit.
0 1
Link status is determined by the MDIO state machine. Value must be set to MDIO. Link change interrupt enable bit.
0 1 0
Link change interrupts are disabled. Link change status interrupts for PHY address specified in PHYADDR bits are enabled. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect.
Reserved PHYADDR
B-327
Register Name DSP reset source/status register Power management DSP control/status register PCI interrupt source register PCI interrupt enable register DSP master address register PCI master address register PCI master control register Current DSP address register Current PCI address register Current byte count register EEPROM address register EEPROM data register EEPROM control register PCI transfer halt register PCI transfer request control register
Section B.14.1 B.14.2 B.14.3 B.14.4 B.14.5 B.14.6 B.14.7 B.14.8 B.14.9 B.14.10 B.14.11 B.14.12 B.14.13 B.14.14 B.14.15
This register only applies to C62x/C67x DSP. TRCTL register only applies to C64x DSP.
B-328
B.14.1
7 Reserved R-0
6 CFGERR R-0
5 CFGDONE R-0
4 INTRST W-0
3 INTREQ W-0
2 WARMRST R-0
1 PRST R-0
0 RST R-1
Legend: R = Read only; W = Write only; -n = value after reset If writing to this field, always write the default value for future device compatibility.
CFGERR
OF(value)
No configuration error. Checksum error during EEPROM autoinitialization. Configuration hold bit. EEPROM has finished loading the PCI configuration registers. Read-only bit, writes have no effect. Configuration registers have not been loaded. Configuration registers load from EEPROM is complete.
B-329
Table B241. DSP Reset Source/Status Register (RSTSRC) Field Values (Continued)
Bits 4 field INTRST NO YES 3 INTREQ NO YES 2 WARMRST OF(value) 0 1 0 1 symval Value Description PINTA reset bit. This bit must be asserted before another host interrupt can be generated. Write-only bit, reads return 0. Writes of 0 have no effect. When a 1 is written to this bit, PINTA is deasserted and the interrupt logic is reset to enable future interrupts. Request a DSP-to-PCI interrupt when written with a 1. Write-only bit, reads return 0. Writes of 0 have no effect. Causes assertion of PINTA if the INTAM bit in the host status register (HSR) is 0. A host software reset of the DSP or a power management warm reset occurred since the last RSTSRC read or last RESET. Read-only bit, writes have no effect. This bit is set by a host write of 0 to the WARMRESET bit in the host-to-DSP control register (HDCR) or a power management request from D2 or D3. Cleared by a read of RSTSRC or RESET assertion. 0 1 1 PRST OF(value) No warm reset since last RSTSRC read or RESET. Warm reset since last RSTSRC read or RESET. Indicates occurrence of a PRST reset since the last RSTSRC read or RESET assertion. Read-only bit, writes have no effect. Cleared by a read of RSTSRC or RESET active. When PRST is held active (low), this bit always reads as 1. 0 1 0 RST OF(value) No PRST reset since last RSTSRC read. PRST reset has occurred since last RSTSRC read. Indicates a device reset (RESET) occurred since the last RSTSRC read. Read-only bit, writes have no effect. Cleared by a read of RSTSRC. 0 1
No device reset (RESET) since last RSTSRC read Device reset (RESET) has occurred since last RSTSRC read
B-330
B.14.2
B.14.2.1
3.3 Vaux Presence Detect Status Bit (AUXDETECT) The 3.3 VauxDET pin is used to indicate the presence of 3.3 Vaux when VDDcore is removed. The DSP can monitor this pin by reading the AUXDETECT bit in PMDCSR. The PMEEN bit in the power management control/status register (PMCSR) is held clear by the 3.3 VauxDET pin being low.
B.14.2.2
PCI Port Response to PWR_WKP and PME Generation The PCI port responds differently to an active PWR_WKP input, depending on whether VDDcore is alive when 3.3 Vaux is alive. The PCI port response to PWR_WKP is powered by 3.3 Vaux. When VDDcore is alive and 3.3 Vaux is alive (that is, all device power states but D3cold), bits are set in the PCI interrupt source register (PCIIS) for the detection of the PWR_WKP high-to-low and low-to-high transition. The PWR_WKP signal is directly connected to the DSP PCI_WAKEUP interrupt. When VDDcore is shut down and 3.3 Vaux is alive (in D3cold), a PWR_WKP transition causes the PMESTAT bit in PMCSR to be set (regardless of the PMEEN bit value). If the PMEEN bit is set, PWR_WKP activity also causes the PME pin to be asserted and held active. The PCI port can also generate PME depending on the HWPMECTL bits in PMDCSR. PME can be generated from any state or on transition to any state on an active PWR_WKP signal, if the corresponding bit in the HWPMECTL bits is set. Transitions on the PWR_WKP pin can cause a CPU interrupt (PCI_WAKEUP). The PWRHL and PWRLH bits in PCIIS indicate a high-to-low or low-to-high transition on the PWR_WKP pin. If the corresponding interrupts are enabled in the PCI interrupt enable register (PCIIEN), a PCI_WAKEUP interrupt is generated to the CPU. If 3.3 Vaux is not powered, the PME pin is in a high-impedance state. Once PME is driven active by the DSP, it is only deasserted when the PMESTAT bit in PMCSR is written with a 1 or the PMEEN bit is written with a 0. Neither PRST, RESET, or warm reset active can cause PME to go into a high-impedance state if it was already asserted before the reset.
TMS320C6000 CSL Registers B-331
Legend: R = Read only; R/W = Read/Write; -n = value after reset; -x = value is indeterminate after reset If writing to this field, always write the default value for future device compatibility.
Table B242. Power Management DSP Control/Status Register (PMDCSR) Field Values
Bits 3119 field Reserved symval Value 0 Description Reserved. The reserved bit location always returns the default value. A value written to this field has no effect. If writing to this field, always write the default value for future device compatibility. Hardware PME control. Allows PME to be generated automatically by hardware on active PWR_WKP if the corresponding bit is set. Reserved Requested state = 00 Requested state = 01 Requested state = 10 Requested state = 11 Reserved
1811
HWPMECTL
0FFh
0 1h 2h 3h 4h 5hFFh
B-332
Table B242. Power Management DSP Control/Status Register (PMDCSR) Field Values (Continued)
Bits 10 field D3WARMONWKP symval OF(value) Value Description Warm reset from D3. Read-only bit, writes have no effect. Warm resets are only generated from PWR_WKP if the following conditions are true: PRST (PCI reset ) is deasserted PCLK is active. 0 1 9 D2WARMONWKP OF(value) No warm reset is generated on PWR_WKP asserted (low). Warm reset is generated on PWR_WKP asserted if the current state is D3. Warm reset from D2. Read-only bit, writes have no effect. Warm resets are only generated from PWR_WKP if the following conditions are true: PRST (PCI reset) is deasserted PCLK is active. 0 1 8 PMEEN No warm reset is generated on PWR_WKP asserted (low). Warm reset is generated on PWR_WKP asserted if the current state is D2. PME assertion enable bit. Reads return current value of PMEEN bit in the power management control/status register (PMCSR). Writes of 1 clear both the PMEEN and PMESTAT bits in PMCSR, writes of 0 have no effect. 0 CLR 7 PWRWKP OF(value) 0 1
PMEEN bit in PMCSR is 0; PME assertion is disabled. PMEEN bit in PMCSR is 1; PME assertion is enabled. PWRWKP pin value. Read-only bit, writes have no effect. PWR_WKP pin is low. PWR_WKP pin is high.
B-333
Table B242. Power Management DSP Control/Status Register (PMDCSR) Field Values (Continued)
Bits 6 field PMESTAT symval Value Description PMESTAT sticky bit value. Reads return the current status of the PMESTAT bit in the power management control/status register (PMCSR). If the PMESTAT and PMEEN bits are written with a 1 at the same time, the PMEEN and PMESTAT bits are cleared. Writes of 0 have no effect. 0 SET 5 PMEDRVN OF(value) 0 1 4 AUXDETECT OF(value) 0 1 32 CURSTATE 03h 1 No effect. Forces the PMESTAT bit in PMCSR to 1. PME driven high. The DSP has driven the PME pin active high. Read-only bit, writes have no effect. DSP read of PMDCSR, but bit would be set if the PMEEN and PMESTAT bits are both still high. PMEEN and PMESTAT bits in the power management control/status register (PMCSR) are high. 3.3VauxDET pin value. Read-only bit, writes have no effect. 3.3 VauxDET is low. 3.3 VauxDET is high. Current power state. Reflects the current power management state of the device. On changing state, the device must change the CURSTATE bits. The value written here is used for PCI reads of the PWRSTATE bits in the power management control/status register (PMCSR). Current state = 00 Current state = 01 Current state = 10 Current state = 11 Last requested power state. Last value written by the host to the PCI PWRSTATE bits in the power management control/status register (PMCSR). Cleared to 00b on RESET or PRST. Read-only bit, writes have no effect.
D0 D1 D2 D3 10 REQSTATE OF(value)
0 1h 2h 3h 03h
B-334
B.14.3
16
10 Reserved R-0 2
PCIMASTER
9 EERDY R/W-0 1
PCITARGET
8 CFGERR R/W-0 0
PWRMGMT
R/W-0
R/W-0
R/W-0
Legend: R = Read only; R/W = Read/Write; -n = value after reset If writing to this field, always write the default value for future device compatibility. This bit is reserved on C64x DSP.
12
DMAHALTED
Auxiliary DMA transfers are not halted. Auxiliary DMA transfers have stopped. PCI reset change state bit.
0 1
B-335
Table B243. PCI Interrupt Source Register (PCIIS) Field Values (Continued)
Bit 10 field Reserved symval Value Description 0 Reserved. The reserved bit location always returns the default value. A value written to this field has no effect. If writing to this field, always write the default value for future device compatibility. EEPROM ready bit. 0 CLR 8 CFGERR 0 CLR 1 1 EEPROM is not ready to accept a new command. EEPROM is ready to accept a new command and the data register can be read. Configuration error bit. No checksum failure during PCI autoinitialization. Checksum failed during PCI autoinitialization. Set after an initialization due to PRST asserted and checksum error. Set after WARM if initialization has been done, but had checksum error. Configuration hold bit. 0 CLR 1 Configuration of PCI configuration registers is not complete. Configuration of PCI configuration registers is complete. Set after an initialization due to PRST asserted. Set after WARM if initialization has been done. PCI master transaction completes bit. 0 CLR 5 PWRHL 0 CLR 4 PWRLH 0 CLR
EERDY
CFGDONE
MASTEROK
No PCI master transaction completes interrupt. PCI master transaction completes interrupt. High-to-low transition on PWRWKP bit. No high-to-low transition on PWRWKP. High-to-low transition on PWRWKP. Low-to-high transition on PWRWKP bit. No low-to-high transition on PWRWKP. Low-to-high transition on PWRWKP.
B-336
Table B243. PCI Interrupt Source Register (PCIIS) Field Values (Continued)
Bit 3 field HOSTSW 0 CLR 2 PCIMASTER 0 CLR 1 PCITARGET 0 CLR 0 PWRMGMT 0 CLR
symval
Value Description Host software requested bit. No host software requested interrupt. Host software requested interrupt (this bit must be set after boot from PCI to wake up DSP). Master abort received bit. No master abort received. Master abort received. Target abort received bit. No target abort received. Target abort received. Power management state transition bit. No power management state transition interrupt. Power management state transition interrupt (is not set if the DSP clocks are not running).
B-337
B.14.4
16
9 EERDY R/W-0 1
PCITARGET
8 CFGERR R/W-0 0
PWRMGMT
R/W-0
R/W-0
R/W-0
Legend: R = Read only; R/W = Read/Write; -n = value after reset If writing to this field, always write the default value for future device compatibility. These reserved bits must always be written with 0, writing 1 to these bits result in an undefined operation.
12
Reserved
B-338
Table B244. PCI Interrupt Enable Register (PCIIEN) Field Values (Continued)
Bit 11 field PRST DISABLE ENABLE 10 Reserved 0 1 0 symval Value Description PRST transition interrupts enable bit. PRST transition interrupts are not enabled. PRST transition interrupts are enabled. Reserved. The reserved bit location is always read as 0. This reserved bit must always be written with a 0. Writing 1 to this bit results in an undefined operation. EEPROM ready interrupts enable bit. DISABLE ENABLE 8 CFGERR DISABLE ENABLE 7 CFGDONE DISABLE ENABLE 6 MASTEROK DISABLE ENABLE 5 PWRHL DISABLE ENABLE 4 PWRLH DISABLE ENABLE
EERDY 0 1
EEPROM ready interrupts are not enabled. EEPROM ready interrupts are enabled. Configuration error interrupts enable bit.
0 1
Configuration error interrupts are not enabled. Configuration error interrupts are enabled. Configuration complete interrupts enable bit.
0 1
Configuration complete interrupts are not enabled. Configuration complete interrupts are enabled. PCI master transaction complete interrupts enable bit.
0 1
PCI master transaction complete interrupts are not enabled. PCI master transaction complete interrupts are enabled. High-to-low PWRWKP interrupts enable bit.
0 1
High-to-low PWRWKP interrupts are not enabled. High-to-low PWRWKP interrupts are enabled. Low-to-high PWRKWP interrupts enable bit.
0 1
Low-to-high PWRWKP interrupts are not enabled. Low-to-high PWRKWP interrupts are enabled.
B-339
Table B244. PCI Interrupt Enable Register (PCIIEN) Field Values (Continued)
Bit 3 field HOSTSW DISABLE ENABLE 2 PCIMASTER DISABLE ENABLE 1 PCITARGET DISABLE ENABLE 0 PWRMGMT DISABLE ENABLE
symval
Value Description Host software requested interrupt enable bit. 0 1 Host software requested interrupts are not enabled. Host software requested interrupt are enabled. PCI master abort interrupt enable bit. 0 1 PCI master abort interrupt is not enabled. PCI master abort interrupt is enabled. PCI target abort interrupt enable bit. 0 1 PCI target abort interrupt is not enabled. PCI target abort interrupt is enabled. Power management state transition interrupt enable bit. 0 1 Power management state transition interrupt is not enabled. Power management state transition interrupt is enabled.
B-340
B.14.5
1 AINC R/W-0
0 Rsvd R-0
B-341
B.14.6
2 1 R-0
Reserved
B.14.7
Legend: R = Read only; R/W = Read/Write; -n = value after reset If writing to this field, always write the default value for future device compatibility. This reserved bit must always be written with 0, writing 1 to this bit results in an undefined operation.
Reserved
20
START
07h
0 1h 2h 3h 4h 5h 6h 7h
B-343
B.14.8
Field CDSPA
symval OF(value)
B.14.9
Field CPCIA
symval OF(value)
B-344
B.14.10
16
150
CCNT
OF(value)
0FFFFh
B-345
B.14.11
Legend: R = Read only; R/W = Read/Write; -n = value after reset If writing to this field, always write the default value for future device compatibility.
90
EEADD
OF(value)
03FFh
B-346
B.14.12
16
150
EEDAT
OF(value)
0FFFFh
B-347
B.14.13
Legend: R = Read only; R/W = Read/Write; -n = value after reset; -x = value is indeterminate after reset If writing to this field, always write the default value for future device compatibility.
CFGDONE OF(value)
B-348
Value
Description Checksum failed error bit. No checksum error. Checksum error. EEAI pin state at power-on reset. PCI uses default values. Read PCI configuration register values from EEPROM. EESZ pins state at power-on reset. No EEPROM 1K bits (C6205 DSP only) 2K bits (C6205 DSP only) 4K bits 16K bits (C6205 DSP only) Reserved EEPROM is ready for a new command. Cleared on writes to the EECNT bit. EEPROM is not ready for a new command. EEPROM is ready for a new command. EEPROM op code. Writes to this field cause the serial operation to commence.
0 0 0 0 1h 2h 3h
Write enable (address = 11xxxx) Erases all memory locations (address = 10xxxx) Writes all memory locations (address = 01xxxx) Disables programming instructions (address = 00xxxx) Write memory at address Reads data at specified address Erase memory at address
B-349
B.14.14
0 HALT R/W-0
HALT
No effect. HALT prevents the PCI port from performing master/slave auxiliary DMA transfer requests.
B-350
B.14.15
Legend: R = Read only; R/W = Read/Write; -n = value after reset If writing to this field, always write the default value for future device compatibility.
B-351
Table B255. PCI Transfer Request Control Register (TRCTL) Field Values
Bit 319 field Reserved symval Value 0 Description Reserved. The reserved bit location always returns the default value. A value written to this field has no effect. If writing to this field, always write the default value for future device compatibility. Forces the PCI to stall all PCI requests to the EDMA. This bit allows the safe changing of the PALLOC and PRI fields. 0 1 76 Reserved 0 Allows PCI requests to be submitted to the EDMA. Halts the creation of new PCI requests to the EDMA. Reserved. The reserved bit location always returns the default value. A value written to this field has no effect. If writing to this field, always write the default value for future device compatibility. Controls the priority queue level that PCI requests are submitted to. Urgent priority High priority Medium priority Low priority Controls the total number of outstanding requests that can be submitted by the PCI to the EDMA. Valid values of PALLOC are 1 to 15, all other values are reserved. PCI may have the programmed number of outstanding requests. Reserved Four outstanding requests can be submitted by the PCI to the EDMA.
54
PRI
OF(value)
03h 0 1h
DEFAULT
2h 3h
30
PALLOC
OF(value)
0Fh
DEFAULT
0 4h
B-352
16
B-353
Table B257. PLL Controller Peripheral Identification Register (PLLPID) Field Values
Bit 3124 2316 field Reserved TYPE symval OF(value) 10h 158 CLASS OF(value) 1 70 REV OF(value) x
Value 0
Description These Reserved bit locations are always read as zeros. A value written to this field has no effect. Identifies type of peripheral. PLL controller Identifies class of peripheral. Serial port Identifies revision of peripheral. See the device-specific datasheet for the value.
Reserved
B-354
ENABLE
B-355
16
DEFAULT
7h
B-356
15 DnEN R/W-1
14 Reserved R-0
5 4 RATIO R/W-0
Legend: R = Read only; R/W = Read/write; -n = value after reset For PLLDIV0 and PLLDIV1; for PLLDIV2 and PLLDIV3, reset value is 0 0001.
1. Divide frequency by 1. 2. Divide frequency by 2. 3 to 32. Divide frequency by 3 to divide frequency by 32.
B-357
symval
Value 0
Description Reserved. The reserved bit location is always read as zero. A value written to this field has no effect. Oscillator divider enable bit. Oscillator divider is disabled. No clock output. Oscillator divider is enabled. Reserved. The reserved bit location is always read as zero. A value written to this field has no effect. Oscillator divider ratio bits. Defines the input reference clock frequency divider ratio for output clock CLKOUT3. 1. Divide input reference clock frequency by 1. 2. Divide input reference clock frequency by 2. 3 to 7. Divide input reference clock frequency by 3 to divide input reference clock frequency by 7. 8. Divide input reference clock frequency by 8. 9 to 32. Divide input reference clock frequency by 9 to divide input reference clock frequency by 32.
B-358
16
4 MCBSP2 R/W-0
3 MCBSP1 R/W-0
2 MCBSP0 R/W-0
1 EMIF R/W-0
0 DMA R/W-0
symval
Value Description 0 Reserved. The reserved bit location is always read as zero. A value written to this field has no effect. Internal McBSP2 clock enable bit. 0 1 Internal McBSP2 clock is enabled. Internal McBSP2 clock is disabled. McBSP2 is not functional. Internal McBSP1 clock enable bit. 0 1 Internal McBSP1 clock is enabled. Internal McBSP1 clock is disabled. McBSP1 is not functional. Internal McBSP0 clock enable bit. 0 1 Internal McBSP0 clock is enabled. Internal McBSP0 clock is disabled. McBSP1 is not functional. Internal EMIF clock enable bit. 0 1 Internal EMIF clock is enabled. Internal EMIF clock is disabled. EMIF is not functional. Internal DMA clock enable bit. 0 1 Internal DMA clock is enabled. Internal DMA clock is disabled. DMA is not functional.
B-359
TCP Registers
B-360
TCP Registers
15
14
13 OUTF R/W-0
12 INTER R/W-0
11
10 9 RATE R/W-0
8 7 Reserved R/W-0
4 3 OPMOD R/W-0
0 Resvd R/W-0
Reserved R/W-0
Reserved R/W-0
symval OF(value)
Value 4020730 0
Description Frame length. Number of symbols in the frame to be decoded (not including tail symbols). Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Output parameters read flag (SA mode only; in SP mode, must be cleared to 0).
0 1
No REVT generation. Output parameters are not read via EDMA. REVT generation. Output parameters are read via EDMA. Interleaver write flag.
0 1 0
Interleaver table is not sent to the TCP (required for SP mode) Interleaver table is sent to the TCP (required for SA mode) Reserved. The reserved bit location is always read as 0. A value written to this field has no effect.
Reserved
B-361
TCP Registers
Table B264. TCP Input Configuration Register 0 (TCPIC0) Field Values (Continued)
Bit 98 field RATE DEFAULT 1_2 1_3 1_4 74 31 Reserved OPMOD SA MAP1A MAP1B MAP2 0
symval
Description Code rate. Reserved Rate 1/2 Rate 1/3 Rate 1/4 Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Operational mode. SA mode Reserved SP mode MAP1 (first iteration) SP mode MAP1 (any other iteration) Reserved SP mode MAP2 Reserved. The reserved bit location is always read as 0. A value written to this field has no effect.
Reserved
B-362
TCP Registers
30 LASTR R/W-0
24
23 Rsvd R/W-0
22 R R/W-0
16
23 2216
Reserved R
OF(value)
0 39127
150
SFL
OF(value)
985114
B-363
TCP Registers
Reserved
B-364
TCP Registers
16
field
symval
Description Number of systematic and parity words per XEVT. Number of interleaver words per XEVT (SA mode only; dont care in SP mode).
B-365
TCP Registers
16
Description Number of extrinsic words per REVT (SP mode only; dont care in SA mode). Number of a priori words per XEVT (SP mode only; dont care in SA mode).
B-366
TCP Registers
16
symval OF(value)
Value 0 0FFFFh
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Number of hard decisions words per REVT (SA mode only; dont care in SP mode).
B-367
TCP Registers
For IS2000 rate 1/3 and 1/4: the systematics are repeated twice at the transmitter but are not necessarily the same at the receiver. You can program the first (X1F+2) or the second (X2F+2) received systematic tail symbol, or the addition and saturation of the two (*).
3124 2316 (X1F+2 + X2F+2)* 0 or X1F+2 or X2F+2 158 (X1F+1 + X2F+1)* or X1F+1 or X2F+1 70 (X1F + X2F)* or X1F or X2F
- SP mode MAP2: J
For IS2000 rate 1/3 and 1/4: the systematics are repeated twice at the transmitter but are not necessarily the same at the receiver. You can program the first (X1F+2) or the second (X2F+2) received systematic tail symbol, or the addition and saturation of the two (*).
3124 2316 (X1F+2 + X2F+2)* 0 or X1F+2 or X2F+2 158 (X1F+1 + X2F+1)* or X1F+1 or X2F+1 70 (X1F + X2F)* or X1F or X2F
B-368
TCP Registers
field TAIL1
symval OF(value)
B-369
TCP Registers
- SP mode MAP2 rate 1/2 and rate 1/3: 3124 0 2316 At+2 158 At+1 70 At
field TAIL2
symval OF(value)
B-370
TCP Registers
- SP mode MAP2: J
field TAIL3
symval OF(value)
B-371
TCP Registers
- For IS2000 rate 1/3 and 1/4: the systematics are repeated twice at the
transmitter but are not necessarily the same at the receiver. You can program the first (X1F+2) or the second (X2F+2) or the average of the two.
3124 2316 (X1F+2 + X2F+2)/2 0 or X1F+2 or X2F+2 158 (X1F+1 + X2F+1)/2 or X1F+1 or X2F+1 70 (X1F + X2F)/2 or X1F or X2F
field TAIL4
symval OF(value)
B-372
TCP Registers
field TAIL5
symval OF(value)
B-373
TCP Registers
field TAIL6
symval OF(value)
B-374
TCP Registers
16
symval OF(value)
Value 0FFFFh 0
Description Indicates the number of executed iterations 1 and has no meaning in SP mode. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect.
B-375
TCP Registers
16
2 UNPAUSE R/W-0
1 PAUSE R/W-0
0 START R/W-0
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Used to unpause the TCP.
0 1
0 1
0 1
B-376
TCP Registers
16
3 EXT R/W-0
2 AP R/W-0
1 INTER R/W-0
0 SYSPAR R/W-0
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Extrinsics memory format.
0 1
32-bit word packed Native format (7 bits logically right aligned on 8 bits) A prioris memory format.
0 1
32-bit word packed Native format (7 bits logically right aligned on 8 bits) Interleaver indexes memory format.
0 1
32-bit word packed Native format (16 bits) Systematics and parities memory format.
0 1
B-377
TCP Registers
MODE Rsvd
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Memory access error bit.
0 1
No error. TCP memories access not allowed in current state. Output parameters load error bit.
0 1
No error. Output parameters load bit set to 1 in SP mode. Interleaver table load error bit.
0 1
No error. Interleaver load bit set to 1 in SP mode. Last subframe reliability length error bit.
0 1
B-378
TCP Registers
symval
Value
0 1
0 1 0
No error. Operational mode is different from 4, 5, and 7. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Subframe length error bit.
0 1
0 1
No error. Rate different from 1/2, 1/3, and 1/4. Prolog length error bit.
0 1
0 1
No error. In SA mode frame length > 5114 or frame length < 40. In SP mode, frame length >20730 or frame length < 40. Error bit.
0 1
B-379
TCP Registers
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Defines if the TCP is waiting for output parameter data to be read.
0 1
Not waiting Waiting Defines if the TCP is waiting for hard decision data to be read.
0 1
Not waiting Waiting Defines if the TCP is waiting for extrinsic data to be read.
0 1
Not waiting Waiting Defines if the TCP is waiting for a priori data to be written.
0 1
B-380
TCP Registers
symval
Value
Description Defines if the TCP is waiting for systematic and parity data to be written.
0 1
Not waiting Waiting Defines if the TCP is waiting for interleaver indexes to be written.
0 1
Not waiting Waiting Defines if the TCP is waiting for input control words to be written.
0 1
0 1
0 1
0 1
B-381
Timer Registers
B.18.1 Timer Control Register (CTL) Figure B270. Timer Control Register (CTL)
31 Reserved R-0 15 SPND R/W-0 7 HLD R/W-0 6 GO R/W-0 14 Reserved R-0 5 Reserved R-0 4 PWID R/W-0 12 11 TSTAT R-0 3 DATIN R-x 10 INVINP R/W-0 2 DATOUT R/W-0 9 CLKSRC R/W-0 1 INVOUT R/W-0 8 CP R/W-0 0 FUNC R/W-0 16
Legend: R = Read only; R/W = Read/Write; -n = value after reset; -x = value is indeterminate after reset For C64x DSP only; for C621x/C671x DSP, this bit is reserved.
B-382
Timer Registers
CLOCK
For CSL implementation, use the notation TIMER_CTL_field_symval For C64x DSP only; for C621x/C671x DSP, this bit is reserved.
B-383
Timer Registers
symval
Value Description Hold bit. Counter may be read or written regardless of HLD value. 0 1 Counter is disabled and held in the current state. Counter is allowed to count. GO bit. Resets and starts the timer counter. 0 1 0 No effect on the timers. If HLD = 1, the counter register is zeroed and begins counting on the next clock. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Pulse width bit. Only used in pulse mode (CP = 0). 0 1 TSTAT goes inactive one timer input clock cycle after the timer counter value equals the timer period value. TSTAT goes inactive two timer input clock cycles after the timer counter value equals the timer period value. Data in bit. Value on TINP pin. 0 1 Value on TINP pin is logic low. Value on TINP pin is logic high. Data output bit. 0 1 DATOUT is driven on TOUT. TSTAT is driven on TOUT after inversion by INVOUT. TOUT inverter control bit (used only if FUNC = 1). 0 1 Noninverted TSTAT drives TOUT. Inverted TSTAT drives TOUT. Function of TOUT pin. 0 1 TOUT is a general-purpose output pin. TOUT is a timer output pin.
For CSL implementation, use the notation TIMER_CTL_field_symval For C64x DSP only; for C621x/C671x DSP, this bit is reserved.
B-384
Timer Registers
B.18.2 Timer Period Register (PRD) Figure B271. Timer Period Register (PRD)
31 Timer Period (PRD) R/W-0
Legend: R/W-x = Read/Write-Reset value
B.18.3 Timer Count Register (CNT) Figure B272. Timer Count Register (CNT)
31 Timer Count (CNT) R/W-0
Legend: R/W-x = Read/Write-Reset value
B-385
UTOPIA Registers
Reserved R-0
Reserved R-0
B-386
UTOPIA Registers
2824
SLID
OF(value)
01Fh
2322
Reserved
2118
XUDC
OF(value) DEFAULT
0Fh 0
1hBh UTOPIA interface transmits the programmed number (1 to 11) of bytes as extra header. A UDC may have a minimum of 54 bytes (XUDC = 1h) up to a maximum of 64 bytes (XUDC = Bh). 17 Reserved ChFh Reserved 0 Reserved. The reserved bit location always returns the default value. A value written to this field has no effect. If writing to this field, always write the default value for future device compatibility. UTOPIA transmitter enable bit. DISABLE ENABLE 15 Reserved 0 1 0 UTOPIA port transmitter is disabled and in reset state. UTOPIA port transmitter is enabled. Reserved. The reserved bit location always returns the default value. A value written to this field has no effect. If writing to this field, always write the default value for future device compatibility.
16
UXEN
B-387
UTOPIA Registers
52
RUDC
OF(value) DEFAULT
0Fh 0
1hBh UTOPIA interface expects to receive the programmed number (1 to 11) of bytes as extra header. A UDC may have a minimum of 54 bytes (RUDC = 1h) up to a maximum of 64 bytes (RUDC = Bh). 1 Reserved ChFh Reserved 0 Reserved. The reserved bit location always returns the default value. A value written to this field has no effect. If writing to this field, always write the default value for future device compatibility. UTOPIA receiver enable bit. DISABLE ENABLE
UREN 0 1
UTOPIA port receiver is disabled and in reset state. UTOPIA port receiver is enabled.
B-388
UTOPIA Registers
17
16 RQIE R/W-0
0 XQIE R/W-0
16
RQIE
OF(value) DEFAULT
XQIE
OF(value) DEFAULT
Transmit queue interrupt is disabled. No interrupts are sent to the CPU upon the UXEVT event. Transmit queue interrupt is enabled. Upon UXEVT, interrupt UINT is sent to the CPU interrupt selector.
B-389
UTOPIA Registers
17
16 RQIP R/W-0
0 XQIP R/W-0
16
RQIP
XQIP 0 1
B-390
UTOPIA Registers
16
2316
XCCNT
OF(value)
0FFh
0 1hFFh
DEFAULT
FFh
B-391
UTOPIA Registers
70
RCCNT
OF(value)
0FFh
0 1hFFh
DEFAULT
FFh
19
18 XCPE R/W-0
2 RCPE R/W-0
B-392
UTOPIA Registers
18
XCPE
RCPE 0 1
Receive clock present interrupt is disabled. Receive clock present interrupt is enabled. Receive clock failed interrupt enable bit.
0 1
Receive clock failed interrupt is disabled. Receive clock failed interrupt is enabled. Receive queue stall interrupt enable bit.
0 1
Receive queue stall interrupt is disabled. Receive queue stall interrupt is enabled.
B-393
UTOPIA Registers
19
18 XCPP R/W-0
2 RCPP R/W-0
18
XCPP
B-394
UTOPIA Registers
Table B291. Error Interrupt Pending Register (EIPR) Field Values (Continued)
Bit 16 field XQSP symval OF(value) DEFAULT 0 1 Value Description Transmit queue stall interrupt pending bit. No transmit queue stall condition. Transmit queue stalled, a write is performed to a full transmit queue. The write is stalled until the queue is drained and space is available. Data is not overwritten. XQSP is cleared once the queue has space available and writes can continue. Reserved. The reserved bit location always returns the default value. A value written to this field has no effect. If writing to this field, always write the default value for future device compatibility. Receive clock present interrupt pending bit indicates if the UTOPIA receive clock (URCLK) is present. RCPP is valid regardless if the receive interface is enabled or disabled. DEFAULT CLEAR 1 RCFP DEFAULT CLEAR 0 1 0 1 URCLK is not present. URCLK is present. If the corresponding bit in EIER is set, an interrupt UINT is sent to the CPU. Receive clock failed interrupt pending bit is activated only when the UTOPIA receive interface is enabled (UREN in UCR = 1). URCLK is present. URCLK failed. No URCLK is detected for a period longer than that specified in the RCCNT field of CDR. If the corresponding bit in EIER is set, an interrupt UINT is sent to the CPU. Receive queue stall interrupt pending bit. 0 1 No receive queue stall condition. Receive queue stalled, a read is performed from an empty receive queue. The read is stalled until valid data is available in the queue. RQSP is cleared as soon as valid data is available and the read is performed.
153
Reserved
RCPP
RQSP
OF(value) DEFAULT
B-395
VCP Registers
B.20
VCP Registers
The VCP contains several memory-mapped registers accessible via CPU load and store instructions, the QDMA, and the EDMA. A peripheral-bus access is faster than an EDMA-bus access for isolated accesses (typically when accessing control registers). EDMA-bus accesses are intended to be used for EDMA transfers and are meant to provide maximum throughput to/from the VCP. The memory map is listed in Table B292. The branch metric and decision memories contents are not accessible and the memories can be regarded as FIFOs by the DSP, meaning you do not have to perform any indexing on the addresses.
B-396
VCP Registers
B.20.1
For CSL implementation, use the notation VCP_IC0_POLYn_symval The polynomial generators are 9-bit values defined as G(z) = b8z8 + b7z7 + b6z6 + b5z5 + b4z4 + b3z3 + b2z2 + b1z1 + b0, but only 8 bits are passed in the POLYn bitfields so that b1 is the most significant bit and b8 the least significant bit (b0 is not passed but set to 1 by the internal VCP hardware).
B-397
VCP Registers
B.20.2
29
28 YAMEN R/W-0
27 YAMT R/W-0
16
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Yamamoto algorithm enable bit.
0 1 0FFFh 0
Yamamoto algorithm is disabled. Yamamoto algorithm is enabled. Yamamoto threshold value bits. Reserved. These Reserved bit locations must be 0. A value written to this field has no effect.
YAMT Reserved
OF(value)
B-398
VCP Registers
B.20.3
16 15 F R/W-0
field R F
B.20.4
16 15 C R/W-0
Field Reserved C
symval OF(value)
Value 0 0FFFFh
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Convergence distance bits.
B-399
VCP Registers
B.20.5
16
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Minimum initial state metric value bits. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Maximum initial state metric value bits.
B-400
VCP Registers
B.20.6
30 OUTF R/W-0
29 Reserved R-0
26 25 TB R/W-0
24 23 SYMR R/W-0 8 7
20 19 SYMX R/W-0
16
0 IMAXI R/W-0
B-401
VCP Registers
Table B298. VCP Input Configuration Register 5 (VCPIC5) Field Values (Continued)
Bit 1916 field SYMX symval OF(value) Value 0Fh Description Determines branch metrics buffer length in input FIFO. When programming register values for the SYMX bits, always subtract 1 from the value calculated. Valid values for the SYMX bits are from 0 to Fh. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect.
158 70
Reserved IMAXI
OF(value)
0FFh Maximum initial state metric value bits. IMAXI bits determine which state should be initialized with the maximum state metrics value (IMAXS) bits in VCPIC4; all the other states will be initialized with the value in the IMINS bits.
B.20.7
16
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Final minimum state metric value bits. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Final maximum state metric value bits.
B-402
VCP Registers
B.20.8
17
16 YAM R-0 0
12 11 FMAXI R-0
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Yamamoto bit result.
0 1 0 0FFFh Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. State index for the state with the final maximum state metric.
Reserved FMAXI
OF(value)
B-403
VCP Registers
B.20.9
8 7 COMMAND W-0
symval
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. VCP command select bits. Reserved. Start. Pause. Reserved Unpause. Stop Reserved.
B-404
VCP Registers
B.20.10
1 SD R/W-0
0 BM R/W-0
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Soft-decisions memory format select bit.
0 1
32-bit-word packed. Native format (16 bits). Branch metrics memory format select bit.
0 1
B-405
VCP Registers
B.20.11
156 5
Reserved OFFUL
0 1
Not waiting for input configuration words. Waiting for input configuration words.
B-406
VCP Registers
B.20.12
16 15 NSYMIF R-0
Description Number of symbols in the output FIFO buffer. Number of symbols in the input FIFO buffer.
B-407
VCP Registers
B.20.13
3 2 ERROR R-0
symval
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. VCP error indicator bits. No error is detected. Traceback mode is not allowed. F too large for tailed traceback mode. R + C too large for mixed or convergent traceback modes. Reserved
B-408
Register Name VIC Control Register VIC Input Register VIC Clock Divider Register
The absolute address of the registers is device specific and is equal to the base address + offset address. See the device-specific datasheet to verify the register addresses.
16
4 3 PRECISION R/W-0
0 GO R/W-0
B-409
0 1 2h 3h 4h 5h 6h 7h
B-410
16
symval OF(value)
Value 0 0FFFFh
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. The DSP writes the input bits for VCXO interpolated control to the VIC input bits.
B-411
16
Value 0 0FFFFh 1
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. The VIC clock divider bits define the clock divider for the VIC interpolation frequency.
B-412
Register Name Video Port Control Register Video Port Status Register Video Port Interrupt Enable Register Video Port Interrupt Status Register
The absolute address of the registers is device/port specific and is equal to the base address + offset address. See the devicespecific datasheet to verify the register addresses.
B-413
Legend: R = Read only; R/W = Read/Write; WC = Write a 1 to clear; WS = Write 1 to set, write of 0 has no effect; -n = value after reset
B-414
Table B311. Video Port Control Register (VPCTL) Field Values (Continued)
Bit 14 field VPHLT symval Value Description Video port halt bit. This bit is set upon hardware or software reset. The other VPCTL bits (except VPRST) can only be changed when VPHLT is 1. VPHLT is cleared by writing a 1. Writing 0 has no effect. NONE CLEAR 136 Reserved 0 1 0 Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. VCLK1 pin polarity bit. Has no effect in capture mode. NONE REVERSE 6 VCT2P 0 1 Inverts the VCLK1 output clock polarity in display mode. VCTL2 pin polarity. Does not affect GPIO operation. If VCTL2 pin is used as a FLD input on the video capture side, then the VCTL2 polarity is not considered; the field inverse is controlled by the FINV bit in the video capture channel x control register (VCxCTL). NONE ACTIVELOW 0 1 Indicates the VCTL2 control signal (input or output) is active low. VCTL1 pin polarity bit. Does not affect GPIO operation. NONE ACTIVELOW 0 1 Indicates the VCTL1 control signal (input or output) is active low. VCTL0 pin polarity bit. Does not affect GPIO operation. NONE ACTIVELOW 0 1 Indicates the VCTL0 control signal (input or output) is active low. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect.
VCLK1P
VCT1P
VCT0P
Reserved
B-415
Table B311. Video Port Control Register (VPCTL) Field Values (Continued)
Bit 2 field TSI NONE CAPTURE 1 DISP CAPTURE DISPLAY 0 DCHNL SINGLE DUAL
symval
Value
0 1
TSI capture mode is disabled. TSI capture mode is enabled. Display mode select bit. VDATA pins are configured for output. VCLK1 pin is configured as VCLKOUT output.
0 1
Capture mode is enabled. Display mode is enabled. Dual channel operation select bit. If the DCDIS bit in VPSTAT is set, this bit is forced to 0.
0 1
B-416
Reserved
Legend: R = Read only; -n = value after reset; -x = value is determined by chip-level configuration
10
Reserved
B-417
Table B314. Video Port Interrupt Enable Register (VPIE) Field Values
Bit 3124 23 field Reserved LFDB DISABLE ENABLE 22 SFDB DISABLE ENABLE 21 VINTB2 DISABLE ENABLE
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Long field detected on channel B interrupt enable bit.
0 1
Interrupt is disabled. Interrupt is enabled. Short field detected on channel B interrupt enable bit.
0 1
Interrupt is disabled. Interrupt is enabled. Channel B field 2 vertical interrupt enable bit.
0 1
B-418
Table B314. Video Port Interrupt Enable Register (VPIE) Field Values (Continued)
Bit 20 field VINTB1 DISABLE ENABLE 19 SERRB DISABLE ENABLE 18 CCMPB DISABLE ENABLE 17 COVRB DISABLE ENABLE 16 GPIO DISABLE ENABLE 15 14 Reserved DCNA DISABLE ENABLE 13 DCMP DISABLE ENABLE 12 DUND DISABLE ENABLE 11 TICK DISABLE ENABLE
symval
Value 0 1
Description Channel B field 1 vertical interrupt enable bit. Interrupt is disabled. Interrupt is enabled. Channel B synchronization error interrupt enable bit.
0 1
Interrupt is disabled. Interrupt is enabled. Capture complete on channel B interrupt enable bit.
0 1
Interrupt is disabled. Interrupt is enabled. Capture overrun on channel B interrupt enable bit.
0 1
Interrupt is disabled. Interrupt is enabled. Video port general purpose I/O interrupt enable bit.
0 1 0
Interrupt is disabled. Interrupt is enabled. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Display complete not acknowledged bit.
0 1
0 1
0 1
Interrupt is disabled. Interrupt is enabled. System time clock tick interrupt enable bit.
0 1
B-419
Table B314. Video Port Interrupt Enable Register (VPIE) Field Values (Continued)
Bit 10 field STC DISABLE ENABLE 98 7 Reserved LFDA DISABLE ENABLE 6 SFDA DISABLE ENABLE 5 VINTA2 DISABLE ENABLE 4 VINTA1 DISABLE ENABLE 3 SERRA DISABLE ENABLE 2 CCMPA DISABLE ENABLE 1 COVRA DISABLE ENABLE 0 VIE DISABLE ENABLE
symval
Value 0 1 0
Description System time clock interrupt enable bit. Interrupt is disabled. Interrupt is enabled. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Long field detected on channel A interrupt enable bit.
0 1
Interrupt is disabled. Interrupt is enabled. Short field detected on channel A interrupt enable bit.
0 1
Interrupt is disabled. Interrupt is enabled. Channel A field 2 vertical interrupt enable bit.
0 1
Interrupt is disabled. Interrupt is enabled. Channel A field 1 vertical interrupt enable bit.
0 1
Interrupt is disabled. Interrupt is enabled. Channel A synchronization error interrupt enable bit.
0 1
Interrupt is disabled. Interrupt is enabled. Capture complete on channel A interrupt enable bit.
0 1
Interrupt is disabled. Interrupt is enabled. Capture overrun on channel A interrupt enable bit.
0 1
Interrupt is disabled. Interrupt is enabled. Video port global interrupt enable bit. Must be set for interrupt to be sent to DSP.
0 1
B-420
Legend: R = Read only; WC = Write 1 to clear, write of 0 has no effect; -n = value after reset
Table B315. Video Port Interrupt Status Register (VPIS) Field Values
Bit 3124 23 field Reserved LFDB symval Value 0 Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Long field detected on channel B interrupt detected bit. (A long field is only detected when the VRST bit in VCBCTL is cleared to 0; when VRST = 1, a long field is always detected.) BT.656 or Y/C capture mode LFDB is set when long field detection is enabled and VCOUNT is not reset before VCOUNT = YSTOP + 1. Raw data mode, or TSI capture mode or display mode Not used. NONE CLEAR
0 1
B-421
Table B315. Video Port Interrupt Status Register (VPIS) Field Values (Continued)
Bit 22 field SFDB symval Value Description Short field detected on channel B interrupt detected bit. BT.656 or Y/C capture mode SFDB is set when short field detection is enabled and VCOUNT is reset before VCOUNT = YSTOP. Raw data mode, or TSI capture mode or display mode Not used. NONE CLEAR 21 VINTB2 0 1 No interrupt is detected. Interrupt is detected. Bit is cleared. Channel B field 2 vertical interrupt detected bit. BT.656 or Y/C capture mode VINTB2 is set when a vertical interrupt occurred in field 2. Raw data mode or TSI capture mode Not used. NONE CLEAR 20 VINTB1 0 1 No interrupt is detected. Interrupt is detected. Bit is cleared. Channel B field 1 vertical interrupt detected bit. BT.656 or Y/C capture mode VINTB1 is set when a vertical interrupt occurred in field 1. Raw data mode or TSI capture mode Not used. NONE CLEAR 19 SERRB 0 1 No interrupt is detected. Interrupt is detected. Bit is cleared. Channel B synchronization error interrupt detected bit. BT.656 or Y/C capture mode Synchronization parity error on channel B. An SERRB typically requires resetting the channel (RSTCH) or the port (VPRST). Raw data mode or TSI capture mode Not used. NONE CLEAR
0 1
B-422
Table B315. Video Port Interrupt Status Register (VPIS) Field Values (Continued)
Bit 18 field CCMPB symval Value Description Capture complete on channel B interrupt detected bit. (Data is not in memory until the DMA transfer is complete.) BT.656 or Y/C capture mode CCMPB is set after capturing an entire field or frame (when F1C, F2C, or FRMC in VCBSTAT are set) depending on the CON, FRAME, CF1, and CF2 control bits in VCBCTL. Raw data mode RDFE is not set, CCMPB is set when FRMC in VCBSTAT is set (when the data counter = the combined VCYSTOP/VCXSTOP value). TSI capture mode CCMPB is set when FRMC in VCBSTAT is set (when the data counter = the combined VCYSTOP/VCXSTOP value). NONE CLEAR 17 COVRB 0 1 No interrupt is detected. Interrupt is detected. Bit is cleared. Capture overrun on channel B interrupt detected bit. COVRB is set when data in the FIFO was overwritten before being read out (by the DMA). NONE CLEAR 16 GPIO NONE CLEAR 15 14 Reserved DCNA 0 1 0 0 1 No interrupt is detected. Interrupt is detected. Bit is cleared. Video port general purpose I/O interrupt detected bit. No interrupt is detected. Interrupt is detected. Bit is cleared. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Display complete not acknowledged. Indicates that the F1D, F2D, or FRMD bit that caused the display complete interrupt was not cleared prior to the start of the next gating field or frame. NONE CLEAR
0 1
B-423
Table B315. Video Port Interrupt Status Register (VPIS) Field Values (Continued)
Bit 13 field DCMP symval Value Description Display complete. Indicates that the entire frame has been driven out of the port. The DMA complete interrupt can be used to determine when the last data has been transferred from memory to the FIFO. DCMP is set after displaying an entire field or frame (when F1D, F2D or FRMD in VDSTAT are set) depending on the CON, FRAME, DF1, and DF2 control bits in VDCTL. NONE CLEAR 12 DUND NONE CLEAR 11 TICK 0 1 0 1 No interrupt is detected. Interrupt is detected. Bit is cleared. Display underrun. Indicates that the display FIFO ran out of data. No interrupt is detected. Interrupt is detected. Bit is cleared. System time clock tick interrupt detected bit. BT.656, Y/C capture mode or raw data mode Not used. TSI capture mode TICK is set when the TCKEN bit in TSICTL is set and the desired number of system time clock ticks has occurred as programmed in TSITICKS. NONE CLEAR 10 STC 0 1 No interrupt is detected. Interrupt is detected. Bit is cleared. System time clock interrupt detected bit. BT.656, Y/C capture mode or raw data mode Not used. TSI capture mode STC is set when the system time clock reaches an absolute time as programmed in TSISTCMPL and TSISTCMPM registers and the STEN bit in TSICTL is set. NONE CLEAR 98
0 1 0
No interrupt is detected. Interrupt is detected. Bit is cleared. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect.
Reserved
B-424
Table B315. Video Port Interrupt Status Register (VPIS) Field Values (Continued)
Bit 7 field LFDA symval Value Description Long field detected on channel A interrupt detected bit. (A long field is only detected when the VRST bit in VCACTL is cleared to 0; when VRST = 1, a long field is always detected.) BT.656 or Y/C capture mode LFDA is set when long field detection is enabled and VCOUNT is not reset before VCOUNT = YSTOP + 1. Raw data mode, or TSI capture mode or display mode Not used. NONE CLEAR 6 SFDA 0 1 No interrupt is detected. Interrupt is detected. Bit is cleared. Short field detected on channel A interrupt detected bit. BT.656 or Y/C capture mode SFDA is set when short field detection is enabled and VCOUNT is reset before VCOUNT = YSTOP. Raw data mode, or TSI capture mode or display mode Not used. NONE CLEAR 5 VINTA2 0 1 No interrupt is detected. Interrupt is detected. Bit is cleared. Channel A field 2 vertical interrupt detected bit. BT.656, or Y/C capture mode or any display mode VINTA2 is set when a vertical interrupt occurred in field 2. Raw data mode or TSI capture mode Not used. NONE CLEAR 4 VINTA1 0 1 No interrupt is detected. Interrupt is detected. Bit is cleared. Channel A field 1 vertical interrupt detected bit. BT.656, or Y/C capture mode or any display mode VINTA1 is set when a vertical interrupt occurred in field 1. Raw data mode or TSI capture mode Not used. NONE CLEAR
0 1
B-425
Table B315. Video Port Interrupt Status Register (VPIS) Field Values (Continued)
Bit 3 field SERRA symval Value Description Channel A synchronization error interrupt detected bit. BT.656 or Y/C capture mode Synchronization parity error on channel A. An SERRA typically requires resetting the channel (RSTCH) or the port (VPRST). Raw data mode or TSI capture mode Not used. NONE CLEAR 2 CCMPA 0 1 No interrupt is detected. Interrupt is detected. Bit is cleared. Capture complete on channel A interrupt detected bit. (Data is not in memory until the DMA transfer is complete.) BT.656 or Y/C capture mode CCMPA is set after capturing an entire field or frame (when F1C, F2C, or FRMC in VCASTAT are set) depending on the CON, FRAME, CF1, and CF2 control bits in VCACTL. Raw data mode If RDFE bit is set, CCMPA is set when F1C, F2C, or FRMC in VCASTAT is set (when the data counter = the combined VCYSTOP/VCXSTOP value) depending on the CON, FRAME, CF1, and CF2 control bits in VCACTL. If RDFE bit is not set, CCMPA is set when FRMC in VCASTAT is set (when the data counter = the combined VCYSTOP/VCXSTOP value). TSI capture mode CCMPA is set when FRMC in VCASTAT is set (when the data counter = the combined VCYSTOP/VCXSTOP value). NONE CLEAR 1 COVRA 0 1 No interrupt is detected. Interrupt is detected. Bit is cleared. Capture overrun on channel A interrupt detected bit. COVRA is set when data in the FIFO was overwritten before being read out (by the DMA). NONE CLEAR 0
0 1 0
No interrupt is detected. Interrupt is detected. Bit is cleared. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect.
Reserved
B-426
Acronym VCASTAT VCACTL VCASTRT1 VCASTOP1 VCASTRT2 VCASTOP2 VCAVINT VCATHRLD VCAEVTCT VCBSTAT VCBCTL VCBSTRT1 VCBSTOP1 VCBSTRT2 VCBSTOP2 VCBVINT VCBTHRLD VCBEVTCT TSICTL TSICLKINITL TSICLKINITM
Register Name Video Capture Channel A Status Register Video Capture Channel A Control Register Video Capture Channel A Field 1 Start Register Video Capture Channel A Field 1 Stop Register Video Capture Channel A Field 2 Start Register Video Capture Channel A Field 2 Stop Register Video Capture Channel A Vertical Interrupt Register Video Capture Channel A Threshold Register Video Capture Channel A Event Count Register Video Capture Channel B Status Register Video Capture Channel B Control Register Video Capture Channel B Field 1 Start Register Video Capture Channel B Field 1 Stop Register Video Capture Channel B Field 2 Start Register Video Capture Channel B Field 2 Stop Register Video Capture Channel B Vertical Interrupt Register Video Capture Channel B Threshold Register Video Capture Channel B Event Count Register TSI Capture Control Register TSI Clock Initialization LSB Register TSI Clock Initialization MSB Register
Section B.23.1 B.23.2 B.23.3 B.23.4 B.23.5 B.23.6 B.23.7 B.23.8 B.23.9 B.23.1 B.23.10 B.23.3 B.23.4 B.23.5 B.23.6 B.23.7 B.23.8 B.23.9 B.23.11 B.23.12 B.23.13
The absolute address of the registers is device/port specific and is equal to the base address + offset address. See the devicespecific datasheet to verify the register addresses.
B-427
Register Name TSI System Time Clock LSB Register TSI System Time Clock MSB Register TSI System Time Clock Compare LSB Register TSI System Time Clock Compare MSB Register TSI System Time Clock Compare Mask LSB Register TSI System Time Clock Compare Mask MSB Register TSI System Time Clock Ticks Interrupt Register
The absolute address of the registers is device/port specific and is equal to the base address + offset address. See the devicespecific datasheet to verify the register addresses.
B-428
Legend: R = Read only; WC = Write 1 to clear, write of 0 has no effect; -n = value after reset
Table B317. Video Capture Channel x Status Register (VCxSTAT) Field Values
Description Bit 31 field FSYNC CLEARD 0 symval Value BT.656 or Y/C Mode Current frame sync bit. VCOUNT = VINT1 or VINT2, as selected by the FSCL2 bit in VCxVINT. VCOUNT = 1 in field 1. Not used. Not used. Raw Data Mode TSI Mode
Not used.
Not used.
Frame (data) captured bit. Write 1 to clear the bit, a write of 0 has no effect. 0 Complete frame has not been captured. Complete frame has been captured. Complete data block has not been captured. Complete data block has been captured. Entire data packet has not been captured. Entire data packet has been captured.
Field 2 captured bit. Write 1 to clear the bit, a write of 0 has no effect. 0 1 Field 2 has not been captured. Field 2 has been captured. Not used. Not used. Not used. Not used.
B-429
Table B317. Video Capture Channel x Status Register (VCxSTAT) Field Values (Continued)
Description Bit 28 field F1C NONE CAPTURED CLEAR 2716 VCYPOS OF(value) 0FFFh 0 1 symval Value BT.656 or Y/C Mode Raw Data Mode TSI Mode
Field 1 captured bit. Write 1 to clear the bit, a write of 0 has no effect. Field 1 has not been captured. Field 1 has been captured. Not used. Not used. Not used. Not used.
Current VCOUNT Upper 12 bits of value and the line the data counter. that is currently being received (within the current field).
1513 12
Reserved VCFLD
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. VCFLD bit indicates which field is currently being captured. The VCFLD bit is updated based on the field detection logic selected by the FLDD bit in VCACTL.
0 1 0FFFh
Field 1 is active. Field 2 is active. Current HCOUNT value. The pixel index of the last received pixel.
B-430
Legend: R = Read only; R/W = Read/Write; WS = Write 1 to reset, write of 0 has no effect; -n = value after reset
Table B318. Video Capture Channel A Control Register (VCACTL) Field Values
Description Bit 31 field RSTCH NONE RESET 0 1 symval Value BT.656 or Y/C Mode Raw Data Mode TSI Mode
Reset channel bit. Write 1 to reset the bit, a write of 0 has no effect. No effect. Resets the channel by blocking further DMA event generation and flushing the FIFO upon completion of any pending DMAs. Also clears the VCEN bit. All channel registers are set to their initial values. RSTCH is autocleared after channel reset is complete.
For CSL implementation, use the notation VP_VCACTL_field_symval For complete encoding of these bits, see TMS320C64x DSP Video Port/VCXO Interpolated Control (VIC) Port Reference Guide (SPRU629).
B-431
Table B318. Video Capture Channel A Control Register (VCACTL) Field Values (Continued)
Description Bit 30 field BLKCAP symval Value BT.656 or Y/C Mode Raw Data Mode TSI Mode
Block capture events bit. BLKCAP functions as a capture FIFO reset without affecting the current programmable register values. The F1C, F2C, and FRMC status bits, in VCASTAT, are not updated. Field or frame complete interrupts and vertical interrupts are also not generated. Clearing BLKCAP does not enable DMA events during the field where the bit is cleared. Whenever BLKCAP is set and then cleared, the software needs to clear the field and frame status bits (F1C, F2C, and FRMC) as part of the BLKCAP clear operation. CLEAR 0 Enables DMA events in the video frame that follows the video frame where the bit is cleared. (The capture logic must sync to the start of the next frame after BLKCAP is cleared.) Blocks DMA events and flushes the capture channel FIFOs. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Field identification enable bit. (Channel A only) DISABLE ENABLE 0 1 Not used. Not used. Detected field invert bit. FIELD1 FIELD2 0 1 Detected 0 is field 1. Detected 0 is field 2. Not used. Not used. Not used. Not used. Field identification is disabled. Field identification is enabled. Not used. Not used.
1 0
20
FINV
19
External control select bit. (Channel A only) Use EAV/SAV codes. Use external control signals. Not used. Not used. Not used. Not used.
For CSL implementation, use the notation VP_VCACTL_field_symval For complete encoding of these bits, see TMS320C64x DSP Video Port/VCXO Interpolated Control (VIC) Port Reference Guide (SPRU629).
B-432
Table B318. Video Capture Channel A Control Register (VCACTL) Field Values (Continued)
Description Bit 18 field FLDD EAVFID FDL 17 VRST V1EAV 0 0 1 symval Value BT.656 or Y/C Mode Raw Data Mode TSI Mode
Field detect method bit. (Channel A only) 1st line EAV or FID input. Field detect logic. Not used. Not used. Not used. Not used.
VCOUNT reset method bit. Start of vertical blank (1st V = 1 EAV or VCTL1 active edge) End of vertical blank (1st V = 0 EAV or VCTL1 inactive edge) Not used. Not used.
V0EAV
Not used.
Not used.
16
HCOUNT reset method bit. EAV or VCTL0 active edge. SAV or VCTL0 inactive edge. Not used. Not used. Not used. Not used.
15
Video capture enable bit. Other bits in VCACTL (except RSTCH and BLKCAP bits) may only be changed when VCEN = 0. Video capture is disabled. Video capture is enabled. 10-bit packing format select bit. Zero extend Sign extend Dense pack (zero extend) Reserved Zero extend Sign extend Dense pack (zero extend) Reserved Not used. Not used. Not used. Not used.
1413
PK10B
For CSL implementation, use the notation VP_VCACTL_field_symval For complete encoding of these bits, see TMS320C64x DSP Video Port/VCXO Interpolated Control (VIC) Port Reference Guide (SPRU629).
B-433
Table B318. Video Capture Channel A Control Register (VCACTL) Field Values (Continued)
Description Bit 12 field LFDE DISABLE ENABLE 11 SFDE DISABLE ENABLE 10 RESMPL DISABLE ENABLE 0 1 0 1 0 1 symval Value BT.656 or Y/C Mode Raw Data Mode TSI Mode
Long field detect enable bit. Long field detect is disabled. Long field detect is enabled. Not used. Not used. Not used. Not used.
Short field detect enable bit. Short field detect is disabled. Short field detect is enabled. Not used. Not used. Not used. Not used.
Chroma resampling enable bit. Chroma resampling is disabled. Chroma is horizontally resampled from 4:2:2 co-sited to 4:2:0 interspersed before saving to chroma buffers. Not used. Not used. Not used. Not used.
9 8
Reserved SCALE
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Scaling select bit.
0 1
No scaling scaling
Continuous capture enable bit. 0 1 Continuous capture is disabled. Continuous capture is enabled.
For CSL implementation, use the notation VP_VCACTL_field_symval For complete encoding of these bits, see TMS320C64x DSP Video Port/VCXO Interpolated Control (VIC) Port Reference Guide (SPRU629).
B-434
Table B318. Video Capture Channel A Control Register (VCACTL) Field Values (Continued)
Description Bit 6 field FRAME NONE FRMCAP 5 CF2 NONE FLDCAP 4 CF1 NONE FLDCAP 3 20 Reserved CMODE BT656B BT656D RAWB RAWD YCB YCD RAW16 RAW20
symval
Value
TSI Mode
0 1
Do not capture Do not capture single data block. single packet. Capture single data block. Capture single packet.
0 1
0 1 0 07h 0 1h 2h 3h 4h 5h 6h 7h
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Capture mode select bit. Enables 8-bit BT.656 mode. Enables 10-bit BT.656 mode. Enables 8-bit raw data mode. Enables 10-bit raw data mode. Enables 16-bit Y/C mode. Enables 20-bit Y/C mode. Enables 16-bit raw mode. Enables 20-bit raw mode. Not used. Not used. 8-bit TSI mode. Not used. Not used. Not used. Not used. Not used.
For CSL implementation, use the notation VP_VCACTL_field_symval For complete encoding of these bits, see TMS320C64x DSP Video Port/VCXO Interpolated Control (VIC) Port Reference Guide (SPRU629).
B-435
Figure B301. Video Capture Channel x Field 1 Start Register (VCASTRT1, VCBSTRT1)
31 Reserved R-0 15 SSE R/W-1 14 Reserved R-0 12 11 VCXSTART/VCVBLNKP R/W-0 28 27 VCYSTART R/W-0 0 16
B-436
Table B319. Video Capture Channel x Field 1 Start Register (VCxSTRT1) Field Values
Description Bit 3128 2716 15 field Reserved VCYSTART SSE DISABLE 0 symval OF(value) Value 0 0FFFh BT.656 or Y/C Mode Raw Data Mode TSI Mode
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Starting line number. Not used. Not used.
Startup synchronization enable bit. Not used. Startup synchronization is disabled. Startup synchronization is enabled. Not used.
ENABLE
Not used.
Not used.
1412 110
OF(value)
0 0FFFh
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. VCXSTART bits define the starting pixel number. Must be an even number (LSB is treated as 0). VCVBLNKP bits define the minimum CAPEN inactive time to be interpreted as a vertical blanking period. Not used.
B-437
Figure B302. Video Capture Channel x Field 1 Stop Register (VCASTOP1, VCBSTOP1)
31 Reserved R-0 15 Reserved R-0
Legend: R = Read only; R/W = Read/Write; -n = value after reset
16
Table B320. Video Capture Channel x Field 1 Stop Register (VCxSTOP1) Field Values
Description Bit 3128 2716 field Reserved VCYSTOP symval OF(value) Value 0 0FFFh BT.656 or Y/C Mode Raw Data Mode TSI Mode
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Last captured line. Upper 12 bits of the Upper 12 bits of data size (in data the data size (in samples). data samples).
1512 110
Reserved VCXSTOP
OF(value)
0 0FFFh
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Last captured pixel (VCXSTOP 1). Must be an even value (the LSB is treated as 0). Lower 12 bits of the Lower 12 bits of data size (in data the data size (in samples). data samples).
B-438
Figure B303. Video Capture Channel x Field 2 Start Register (VCASTRT2, VCBSTRT2)
31 Reserved R-0 15 Reserved R-0
Legend: R = Read only; R/W = Read/Write; -n = value after reset
16
Table B321. Video Capture Channel x Field 2 Start Register (VCxSTRT2) Field Values
Description Bit 3128 2716 1512 110 field Reserved VCYSTART Reserved VCXSTART symval OF(value) OF(value) Value 0 0FFFh 0 0FFFh BT.656 or Y/C Mode Raw Data Mode TSI Mode
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Starting line number. Not used. Not used.
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Starting pixel number. Not used. Must be an even number (LSB is treated as 0). Not used.
B-439
Figure B304. Video Capture Channel x Field 2 Stop Register (VCASTOP2, VCBSTOP2)
31 Reserved R-0 15 Reserved R-0
Legend: R = Read only; R/W = Read/Write; -n = value after reset
16
Table B322. Video Capture Channel x Field 2 Stop Register (VCxSTOP2) Field Values
Description Bit 3128 2716 1512 110 field Reserved VCYSTOP Reserved VCXSTOP symval OF(value) OF(value) Value 0 0FFFh 0 0FFFh BT.656 or Y/C Mode Raw Data Mode TSI Mode
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Last captured line. Not used. Not used.
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Last captured pixel (VCXSTOP 1). Must be an even value (the LSB is treated as 0). Not used. Not used.
B-440
Figure B305. Video Capture Channel x Vertical Interrupt Register (VCAVINT, VCBVINT)
31 VIF2 R/W-0 15 VIF1 R/W-0 30 FSCL2 R/W-0 14 Reserved R-0 29 R-0 12 11 VINT1 R/W-0 28 27 VINT2 R/W-0 0 16 Reserved
B-441
Table B323. Video Capture Channel x Vertical Interrupt Register (VCxVINT) Field Values
Description Bit 31 field VIF2 DISABLE ENABLE 30 FSCL2 NONE FIELD2 2928 2716 15 Reserved VINT2 VIF1 DISABLE ENABLE 1412 110
symval
Value
TSI Mode
Setting of VINT in field 2 enable bit. 0 1 Setting of VINT in field 2 is disabled. Setting of VINT in field 2 is enabled. Not used. Not used. Not used. Not used.
FSYNC bit cleared in field 2 enable bit. 0 1 0 0FFFh FSYNC bit is not cleared. FSYNC bit is cleared in field 2 instead of field 1. Not used. Not used. Not used. Not used.
OF(value)
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Line that vertical interrupt occurs if VIF2 bit is set. Not used. Not used.
Setting of VINT in field 1 enable bit. 0 1 0 0FFFh Setting of VINT in field 1 is disabled. Setting of VINT in field 1 is enabled. Not used. Not used. Not used. Not used.
Reserved VINT1
OF(value)
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Line that vertical interrupt occurs if VIF1 bit is set. Not used. Not used.
B-442
B-443
16
Table B324. Video Capture Channel x Threshold Register (VCxTHRLD) Field Values
Description Bit 3126 2516 field Reserved VCTHRLD2 symval OF(value) Value 0 03FFh BT.656 or Y/C Mode Raw Data Mode TSI Mode
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Number of field 2 doublewords required to generate DMA events. Not used. Not used.
1510 90
Reserved VCTHRLD1
OF(value)
0 03FFh
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Number of field 1 doublewords required to generate DMA events. Number of raw data doublewords required to generate a DMA event. Number of doublewords required to generate a DMA event.
B-444
Figure B307. Video Capture Channel x Event Count Register (VCAEVTCT, VCBEVTCT)
31 Reserved R-0 15 Reserved R-0
Legend: R = Read only; R/W = Read/Write; -n = value after reset
16
Table B325. Video Capture Channel x Event Count Register (VCxEVTCT) Field Values
Description Bit 3128 2716 field Reserved CAPEVTCT2 symval OF(value) Value 0 0FFFh BT.656 or Y/C Mode Raw Data Mode TSI Mode
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Number of DMA event Not used. sets (YEVT, CbEVT, CrEVT) to be generated for field 2 capture. Not used.
1512 110
Reserved CAPEVTCT1
OF(value)
0 0FFFh
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Number of DMA event Not used. sets (YEVT, CbEVT, CrEVT) to be generated for field 1 capture. Not used.
B-445
Legend: R = Read only; R/W = Read/Write; WS = Write 1 to reset, write of 0 has no effect; -n = value after reset
Table B326. Video Capture Channel B Control Register (VCBCTL) Field Values
Description Bit 31 field RSTCH NONE RESET 0 1 symval Value BT.656 or Y/C Mode Raw Data Mode TSI Mode
Reset channel bit. Write 1 to reset the bit, a write of 0 has no effect. No effect. Resets the channel by blocking further DMA event generation and flushing the FIFO upon completion of any pending DMAs. Also clears the VCEN bit. All channel registers are set to their initial values. RSTCH is autocleared after channel reset is complete.
For CSL implementation, use the notation VP_VCBCTL_field_symval For complete encoding of these bits, see TMS320C64x DSP Video Port/VCXO Interpolated Control (VIC) Port Reference Guide (SPRU629).
B-446
Table B326. Video Capture Channel B Control Register (VCBCTL) Field Values (Continued)
Description Bit 30 field BLKCAP symval Value BT.656 or Y/C Mode Raw Data Mode TSI Mode
Block capture events bit. BLKCAP functions as a capture FIFO reset without affecting the current programmable register values. The F1C, F2C, and FRMC status bits, in VCBSTAT, are not updated. Field or frame complete interrupts and vertical interrupts are also not generated. Clearing BLKCAP does not enable DMA events during the field where the bit is cleared. Whenever BLKCAP is set and then cleared, the software needs to clear the field and frame status bits (F1C, F2C, and FRMC) as part of the BLKCAP clear operation. CLEAR 0 Enables DMA events in the video frame that follows the video frame where the bit is cleared. (The capture logic must sync to the start of the next frame after BLKCAP is cleared.) Blocks DMA events and flushes the capture channel FIFOs. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Detected field invert bit. FIELD1 FIELD2 0 1 0 Detected 0 is field 1. Detected 0 is field 2. Not used. Not used. Not used. Not used.
1 0
1918 17
Reserved VRST
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. VCOUNT reset method bit.
V1EAV
Start of vertical blank (1st V = 1 EAV or VCTL1 active edge) End of vertical blank (1st V = 0 EAV or VCTL1 inactive edge)
Not used.
Not used.
V0EAV
Not used.
Not used.
For CSL implementation, use the notation VP_VCBCTL_field_symval For complete encoding of these bits, see TMS320C64x DSP Video Port/VCXO Interpolated Control (VIC) Port Reference Guide (SPRU629).
B-447
Table B326. Video Capture Channel B Control Register (VCBCTL) Field Values (Continued)
Description Bit 16 field HRST EAV SAV 15 VCEN DISABLE ENABLE 1413 PK10B ZERO SIGN DENSEPK 12 LFDE DISABLE ENABLE 11 SFDE DISABLE ENABLE
symval
Value
TSI Mode
HCOUNT reset method bit. 0 1 EAV or VCTL0 active edge. SAV or VCTL0 inactive edge. Not used. Not used. Not used. Not used.
Video capture enable bit. Other bits in VCBCTL (except RSTCH and BLKCAP bits) may only be changed when VCEN = 0. 0 1 03h 0 1h 2h 3h Video capture is disabled. Video capture is enabled. 10-bit packing format select bit. Zero extend Sign extend Dense pack (zero extend) Reserved Zero extend Sign extend Dense pack (zero extend) Reserved Not used. Not used. Not used. Not used.
Long field detect enable bit. 0 1 Long field detect is disabled. Long field detect is enabled. Not used. Not used. Not used. Not used.
Short field detect enable bit. 0 1 Short field detect is disabled. Short field detect is enabled. Not used. Not used. Not used. Not used.
For CSL implementation, use the notation VP_VCBCTL_field_symval For complete encoding of these bits, see TMS320C64x DSP Video Port/VCXO Interpolated Control (VIC) Port Reference Guide (SPRU629).
B-448
Table B326. Video Capture Channel B Control Register (VCBCTL) Field Values (Continued)
Description Bit 10 field RESMPL DISABLE ENABLE 0 1 symval Value BT.656 or Y/C Mode Raw Data Mode TSI Mode
Chroma resampling enable bit. Chroma resampling is disabled. Chroma is horizontally resampled from 4:2:2 co-sited to 4:2:0 interspersed before saving to chroma buffers. Not used. Not used. Not used. Not used.
9 8
Reserved SCALE
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Scaling select bit.
NONE HALF 7 CON DISABLE ENABLE 6 FRAME NONE FRMCAP 5 CF2 NONE FLDCAP
0 1
No scaling scaling
Continuous capture enable bit. 0 1 Continuous capture is disabled. Continuous capture is enabled. Capture frame (data) bit. 0 1 Do not capture frame. Capture frame. Capture field 2 bit. 0 1 Do not capture field 2. Capture field 2. Not used. Not used. Not used. Not used. Do not capture Do not capture single data block. single packet. Capture single data block. Capture single packet.
For CSL implementation, use the notation VP_VCBCTL_field_symval For complete encoding of these bits, see TMS320C64x DSP Video Port/VCXO Interpolated Control (VIC) Port Reference Guide (SPRU629).
B-449
Table B326. Video Capture Channel B Control Register (VCBCTL) Field Values (Continued)
Description Bit 4 field CF1 NONE FLDCAP 32 10 Reserved CMODE BT656B BT656D RAWB RAWD
symval
Value
TSI Mode
0 1 0 03h 0 1h 2h 3h
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Capture mode select bit. Enables 8-bit BT.656 mode. Enables 10-bit BT.656 mode. Enables 8-bit raw data mode. Enables 10-bit raw data mode. Not used. Not used. Not used. Not used.
For CSL implementation, use the notation VP_VCBCTL_field_symval For complete encoding of these bits, see TMS320C64x DSP Video Port/VCXO Interpolated Control (VIC) Port Reference Guide (SPRU629).
B-450
ENSTC TCKEN
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. System time clock enable bit. Not used. System time clock input is disabled (to save power). The system time clock counters and tick counter do not increment. System time input is enabled. The system time clock counters and tick counters are incremented by STCLK.
CLKED
Not used.
Tick count interrupt enable bit. Not used. Not used. Setting of the TICK bit is disabled. The TICK bit in VPIS is set whenever the tick count is reached.
B-451
Table B327. TSI Capture Control Register (TSICTL) Field Values (Continued)
Description Bit 3 field STEN DISABLE SET 2 CTMODE 90KHZ 0 0 1 symval Value BT.656, Y/C Mode, or Raw Data Mode TSI Mode
System time clock interrupt enable bit. Not used. Not used. Setting of the STC bit is disabled. A valid STC compare sets the STC bit in VPIS.
Counter mode select bit. Not used. The 33-bit PCR portion of the system time counter increments at 90 kHz (when PCRE rolls over from 299 to 0). The 33-bit PCR portion of the system time counter increments by the STCLK input.
Not used.
Error filtering enable bit. 0 Not used. Packets with errors are received and the PERR bit is set in the timestamp inserted at the end of the packet. Packets with errors are filtered out (not received in the FIFO).
REJECT 0
1 0
Not used.
Reserved
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect.
B-452
Table B328. TSI Clock Initialization LSB Register (TSICLKINITL) Field Values
Description Bit 310
Field INPCR
symval OF(value)
B-453
16
10 9 INPCRE R/W-0
0 INPCRM R/W-0
Table B329. TSI Clock Initialization MSB Register (TSICLKINITM) Field Values
Description Bit 3110 91 0
Value 0 01FFh 01
TSI Mode
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Not used. Not used. Initializes the extension portion of the system time clock. Initializes the MSB of the system time clock.
B-454
Table B330. TSI System Time Clock LSB Register (TSISTCLKL) Field Values
Description Bit 310
Field PCR
symval OF(value)
B-455
16
10 9 PCRE R/W-0
0 PCRM R/W-0
Table B331. TSI System Time Clock MSB Register (TSISTCLKM) Field Values
Description Bit 3110 91 0
Value 0 01FFh 01
TSI Mode
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Not used. Not used. Contains the extension portion of the program clock reference. Contains the MSB of the program clock reference.
B-456
Figure B314. TSI System Time Clock Compare LSB Register (TSISTCMPL)
31 ATC R/W-0
Legend: R/W = Read/Write; -n = value after reset
Table B332. TSI System Time Clock Compare LSB Register (TSISTCMPL) Field Values
Description Bit 310
Field ATC
symval OF(value)
B-457
Figure B315. TSI System Time Clock Compare MSB Register (TSISTCMPM)
31 Reserved R-0
Legend: R = Read only; R/W = Read/Write; -n = value after reset
0 ATC R/W-0
Table B333. TSI System Time Clock Compare MSB Register (TSISTCMPM) Field Values
Description Bit 311 0
symval OF(value)
Value 0 01
TSI Mode
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Not used. Contains the MSB of the absolute time compare.
B-458
B.23.18 TSI System Time Clock Compare Mask LSB Register (TSISTMSKL)
The transport stream interface system time clock compare mask LSB register (TSISTMSKL) holds the 32 least-significant bits (LSBs) of the absolute time compare mask (ATCM). This value is used with TSISTMSKM to mask out bits during the comparison of the ATC to the system time clock for absolute time. The bits that are set to one mask the corresponding ATC bits during the compare. TSISTMSKL is shown in Figure B316 and described in Table B334. To prevent inaccurate comparisons caused by changing register bits, the software should disable the system time clock interrupt (clear the STEN bit in TSICTL) prior to writing to TSISTMSKL.
Figure B316. TSI System Time Clock Compare Mask LSB Register (TSISTMSKL)
31 ATCM R/W-0
Legend: R/W = Read/Write; -n = value after reset
Table B334. TSI System Time Clock Compare Mask LSB Register (TSISTMSKL) Field Values
Description Bit 310
Field ATCM
symval OF(value)
TSI Mode Contains the 32 LSBs of the absolute time compare mask.
B-459
B.23.19 TSI System Time Clock Compare Mask MSB Register (TSISTMSKM)
The transport stream interface system time clock compare mask MSB register (TSISTMSKM) holds the most-significant bit (MSB) of the absolute time compare mask (ATCM). This value is used with TSISTMSKL to mask out bits during the comparison of the ATC to the system time clock for absolute time. The bits that are set to one mask the corresponding ATC bits during the compare. TSISTMSKM is shown in Figure B317 and described in Table B335. To prevent inaccurate comparisons caused by changing register bits, the software should disable the system time clock interrupt (clear the STEN bit in TSICTL) prior to writing to TSISTMSKM.
Figure B317. TSI System Time Clock Compare Mask MSB Register (TSISTMSKM)
31 Reserved R-0
Legend: R = Read only; R/W = Read/Write; -n = value after reset
0 ATCM R/W-0
Table B335. TSI System Time Clock Compare Mask MSB Register (TSISTMSKM) Field Values
Description Bit 311 0
symval OF(value)
Value 0 01
TSI Mode
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Not used. Contains the MSB of the absolute time compare mask.
B-460
Figure B318. TSI System Time Clock Ticks Interrupt Register (TSITICKS)
31 TICKCT R/W-0
Legend: R/W = Read/Write; -n = value after reset
Table B336. TSI System Time Clock Ticks Interrupt Register (TSITICKS) Field Values
Description Bit 310 Field TICKCT symval OF(value) Value 0FFFF FFFFh BT.656, Y/C Mode, or Raw Data Mode Not used. TSI Mode Contains the number of ticks of the 27-MHz system time clock required to generate a tick count interrupt.
B-461
Acronym VDSTAT VDCTL VDFRMSZ VDHBLNK VDVBLKS1 VDVBLKE1 VDVBLKS2 VDVBLKE2 VDIMGOFF1 VDIMGSZ1 VDIMGOFF2 VDIMGSZ2 VDFLDT1 VDFLDT2 VDTHRLD VDHSYNC VDVSYNS1 VDVSYNE1 VDVSYNS2 VDVSYNE2 VDRELOAD
Register Name Video Display Status Register Video Display Control Register Video Display Frame Size Register Video Display Horizontal Blanking Register Video Display Field 1 Vertical Blanking Start Register Video Display Field 1 Vertical Blanking End Register Video Display Field 2 Vertical Blanking Start Register Video Display Field 2 Vertical Blanking End Register Video Display Field 1 Image Offset Register Video Display Field 1 Image Size Register Video Display Field 2 Image Offset Register Video Display Field 2 Image Size Register Video Display Field 1 Timing Register Video Display Field 2 Timing Register Video Display Threshold Register Video Display Horizontal Synchronization Register Video Display Field 1 Vertical Synchronization Start Register Video Display Field 1 Vertical Synchronization End Register Video Display Field 2 Vertical Synchronization Start Register Video Display Field 2 Vertical Synchronization End Register Video Display Counter Reload Register
Section B.24.1 B.24.2 B.24.3 B.24.4 B.24.5 B.24.6 B.24.7 B.24.8 B.24.9 B.24.10 B.24.11 B.24.12 B.24.13 B.24.14 B.24.15 B.24.16 B.24.17 B.24.18 B.24.19 B.24.20 B.24.21
The absolute address of the registers is device/port specific and is equal to the base address + offset address. See the devicespecific datasheet to verify the register addresses.
B-462
Register Name Video Display Display Event Register Video Display Clipping Register Video Display Default Display Value Register Video Display Vertical Interrupt Register Video Display Field Bit Register Video Display Field 1 Vertical Blanking Bit Register Video Display Field 2 Vertical Blanking Bit Register
The absolute address of the registers is device/port specific and is equal to the base address + offset address. See the devicespecific datasheet to verify the register addresses.
Legend: R = Read only; WC = Write 1 to clear, write of 0 has no effect; -n = value after reset
B-463
1514 13
Reserved VBLNK
0 1 0FFFh
Field 1 is active. Field 2 is active. Current frame pixel counter (FPCOUNT) value. Index of the most recently output pixel.
VDXPOS
OF(value)
B-464
Legend: R = Read only; R/W = Read/Write; WS = Write 1 to reset, write of 0 has no effect; -n = value after reset
Reset channel bit. Write 1 to reset the bit, a write of 0 has no effect. No effect. Resets the video display module and sets its registers to their initial values. Also clears the VDEN bit. The video display module automatically clears RSTCH after software reset is completed.
For CSL implementation, use the notation VP_VDCTL_field_symval For complete encoding of these bits, see TMS320C64x DSP Video Port/VCXO Interpolated Control (VIC) Port Reference Guide (SPRU629).
B-465
Table B339. Video Display Control Register (VDCTL) Field Values (Continued)
Description Bit 30 field BLKDIS symval Value BT.656 and Y/C Mode Raw Data Mode
Block display events bit. BLKDIS functions as a display FIFO reset without affecting the current programmable register values. The video display module continues to function normally, the counters count, control outputs are generated, EAV/SAV codes are generated for BT.656 and Y/C modes, and default or blanking data is output during active display time. No data is moved to the display FIFOs because no events occur. The F1D, F2D, and FRMD bits in VDSTAT are still set when fields or frames are complete. CLEAR 0 Clearing BLKDIS does not enable DMA events during the field in which the bit is cleared. DMA events are enabled at the start of the next frame after the one in which the bit is cleared. This allows the DMA to always be synced to the proper field. Blocks DMA events and flushes the display FIFOs. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Previous video port synchronization enable bit. DISABLE ENABLE 0 1 Output timing is locked to preceding video port (VP2 is locked to VP1 or VP1 is locked to VP0. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Field external synchronization enable bit. OUTPUT FSINPUT 0 1 VCTL2 is an output. VCTL2 is an external field sync input. Vertical external synchronization enable bit. OUTPUT VSINPUT 0 1 VCTL1 is an output. VCTL1 is an external vertical sync input.
BLOCK 29 Reserved
1 0
28
PVPSYN
2724
Reserved
23
FXS
22
VXS
For CSL implementation, use the notation VP_VDCTL_field_symval For complete encoding of these bits, see TMS320C64x DSP Video Port/VCXO Interpolated Control (VIC) Port Reference Guide (SPRU629).
B-466
Table B339. Video Display Control Register (VDCTL) Field Values (Continued)
Description Bit 21 field HXS OUTPUT HSINPUT 20 VCTL2S CBLNK FLD 1918 VCTL1S VYSYNC VBLNK CSYNC FLD 1716 VCTL0S HYSYNC HBLNK AVID FLD 15 VDEN DISABLE ENABLE 14 DPK N10UNPK D10UNPK
symval
Value
Horizontal external synchronization enable bit. 0 1 VCTL0 is an output. VCTL0 is an external horizontal sync input. VCTL2 output select bit. 0 1 03h 0 1h 2h 3h 03h 0 1h 2h 3h Output CBLNK Output FLD VCTL1 output select bit. Output VSYNC Output VBLNK Output CSYNC Output FLD VCTL0 output select bit. Output HSYNC Output HBLNK Output AVID Output FLD Video display enable bit. Other bits in VDCTL (except RSTCH and BLKDIS bits) may only be changed when VDEN = 0. 0 1 Video display is disabled. Video display is enabled. 10-bit packing format select bit. 0 1 Normal 10-bit unpacking Dense 10-bit unpacking
For CSL implementation, use the notation VP_VDCTL_field_symval For complete encoding of these bits, see TMS320C64x DSP Video Port/VCXO Interpolated Control (VIC) Port Reference Guide (SPRU629).
B-467
Table B339. Video Display Control Register (VDCTL) Field Values (Continued)
Description Bit 13 field RGBX DISABLE ENABLE 12 RSYNC DISABLE ENABLE 11 DVEN BLANKING DV 10 RESMPL DISABLE ENABLE 0 1 0 1 0 1 0 1 symval Value BT.656 and Y/C Mode RGB extract enable bit. Not used. Not used. Perform FIFO unpacking. Raw Data Mode
Second, synchronized raw data channel enable bit. Not used. Not used. Default value enable bit. Blanking value is output during non-sourced active pixels. Default value is output during non-sourced active pixels. Chroma resampling enable bit. Chroma resampling is disabled. Chroma is horizontally resampled from 4:2:0 interspersed to 4:2:2 co-sited before output. Not used. Not used. Not used. Not used. Second, synchronized raw data channel is disabled. Second, synchronized raw data channel is enabled.
9 8
Reserved SCALE
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Scaling select bit.
0 1
0 1
For CSL implementation, use the notation VP_VDCTL_field_symval For complete encoding of these bits, see TMS320C64x DSP Video Port/VCXO Interpolated Control (VIC) Port Reference Guide (SPRU629).
B-468
Table B339. Video Display Control Register (VDCTL) Field Values (Continued)
Description Bit 6 field FRAME NONE FRMDIS 5 DF2 NONE FLDDIS 4 DF1 NONE FLDDIS 3 20 Reserved DMODE BT656B BT656D RAWB RAWD YC16 YC20 RAW16 RAW20
symval
Value
0 1
0 1
0 1 0 07h 0 1h 2h 3h 4h 5h 6h 7h
Do not display field 1. Display field 1. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Display mode select bit. Enables 8-bit BT.656 mode. Enables 10-bit BT.656 mode. Enables 8-bit raw data mode. Enables 10-bit raw data mode. Enables 8-bit Y/C mode. Enables 10-bit Y/C mode. Enables 16-bit raw data mode. Enables 20-bit raw data mode.
For CSL implementation, use the notation VP_VDCTL_field_symval For complete encoding of these bits, see TMS320C64x DSP Video Port/VCXO Interpolated Control (VIC) Port Reference Guide (SPRU629).
B-469
16
Table B340. Video Display Frame Size Register (VDFRMSZ) Field Values
Bit 3128 2716 field Reserved FRMHEIGHT symval OF(value) Value 0 0FFFh Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Defines the total number of lines per frame. The number is the ending value of the frame line counter (FLCOUNT). For BT.656 operation, the FRMHIGHT is set to 525 (525/60 operation) or 625 (625/50 operation). 1512 110 Reserved FRMWIDTH OF(value) 0 0FFFh Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Defines the total number of pixels per line including blanking. The number is the frame pixel counter (FPCOUNT) ending value + 1. For BT.656 operation, the FRMWIDTH is typically 858 or 864.
B-470
B-471
Table B341. Video Display Horizontal Blanking Register (VDHBLNK) Field Values
Description Bit 3128 2716 field Reserved HBLNKSTOP symval OF(value) Value 0 0FFFh BT.656 and Y/C Mode Raw Data Mode
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Location of SAV code and HBLNK inactive edge within the line. HBLNK inactive edge may be optionally delayed by 4 VCLKs. Ending pixel (FPCOUNT) of blanking video area (HBLNK inactive) within the line.
15
Horizontal blanking delay enable bit. Horizontal blanking delay is disabled. HBLNK inactive edge is delayed by 4 VCLKs. Not used. Not used.
1412 110
Reserved HBLNKSTART
OF(value)
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Location of EAV code and HBLNK active edge within the line. Starting pixel (FPCOUNT) of blanking video area (HBLNK active) within the line.
Figure B323. Video Display Field 1 Vertical Blanking Start Register (VDVBLKS1)
31 Reserved R-0 15 Reserved R-0
Legend: R = Read only; R/W = Read/Write; -n = value after reset
16
Table B342. Video Display Field 1 Vertical Blanking Start Register (VDVBLKS1) Field Values
Description Bit 3128 2716 field Reserved VBLNKYSTART1 symval OF(value) Value 0 0FFFh BT.656 and Y/C Mode Raw Data Mode
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the line (in FLCOUNT) where VBLNK active edge occurs for field 1. Does not affect EAV/SAV V bit operation. Specifies the line (in FLCOUNT) where vertical blanking begins (VBLNK active edge) for field 1.
1512 110
Reserved VBLNKXSTART1
OF(value)
0 0FFFh
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the pixel (in FPCOUNT) where VBLNK active edge occurs for field 1. Specifies the pixel (in FPCOUNT) where vertical blanking begins (VBLNK active edge) for field 1.
B-473
Figure B324. Video Display Field 1 Vertical Blanking End Register (VDVBLKE1)
31 Reserved R-0 15 Reserved R-0
Legend: R = Read only; R/W = Read/Write; -n = value after reset
16
B-474
Table B343. Video Display Field 1 Vertical Blanking End Register (VDVBLKE1) Field Values
Description Bit 3128 2716 field Reserved VBLNKYSTOP1 symval OF(value) Value 0 0FFFh BT.656 and Y/C Mode Raw Data Mode
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the line (in FLCOUNT) where VBLNK inactive edge occurs for field 1. Does not affect EAV/SAV V bit operation. Specifies the line (in FLCOUNT) where vertical blanking ends (VBLNK inactive edge) for field 1.
1512 110
Reserved VBLNKXSTOP1
OF(value)
0 0FFFh
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the pixel (in FPCOUNT) where VBLNK inactive edge occurs for field 1. Specifies the pixel (in FPCOUNT) where vertical blanking ends (VBLNK inactive edge) for field 1.
B-475
Figure B325. Video Display Field 2 Vertical Blanking Start Register (VDVBLKS2)
31 Reserved R-0 15 Reserved R-0
Legend: R = Read only; R/W = Read/Write; -n = value after reset
16
Table B344. Video Display Field 2 Vertical Blanking Start Register (VDVBLKS2) Field Values
Description Bit 3128 2716 field Reserved VBLNKYSTART2 symval OF(value) Value 0 0FFFh BT.656 and Y/C Mode Raw Data Mode
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the line (in FLCOUNT) where VBLNK active edge occurs for field 2. Does not affect EAV/SAV V bit operation. Specifies the line (in FLCOUNT) where vertical blanking begins (VBLNK active edge) for field 2.
1512 110
Reserved VBLNKXSTART2
OF(value)
0 0FFFh
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the pixel (in FPCOUNT) where VBLNK active edge occurs for field 2. Specifies the pixel (in FPCOUNT) where vertical blanking begins (VBLNK active edge) for field 2.
B-476
Figure B326. Video Display Field 2 Vertical Blanking End Register (VDVBLKE2)
31 Reserved R-0 15 Reserved R-0
Legend: R = Read only; R/W = Read/Write; -n = value after reset
16
B-477
Table B345. Video Display Field 2 Vertical Blanking End Register (VDVBLKE2) Field Values
Description Bit 3128 2716 field Reserved VBLNKYSTOP2 symval OF(value) Value 0 0FFFh BT.656 and Y/C Mode Raw Data Mode
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the line (in FLCOUNT) where VBLNK inactive edge occurs for field 2. Does not affect EAV/SAV V bit operation. Specifies the line (in FLCOUNT) where vertical blanking ends (VBLNK inactive edge) for field 2.
1512 110
Reserved VBLNKXSTOP2
OF(value)
0 0FFFh
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the pixel (in FPCOUNT) where VBLNK inactive edge occurs for field 2. Specifies the pixel (in FPCOUNT) where vertical blanking ends (VBLNK inactive edge) for field 2.
Table B346. Video Display Field 1 Image Offset Register (VDIMGOFF1) Field Values
Description Bit 31 field NV NONE NEGOFF 0 1 Display image window begins before the first active line of field 1. (Used for VBI data output.) symval Value BT.656 and Y/C Mode Raw Data Mode Negative vertical image offset enable bit. Not used. Not used.
3028 2716 15
Reserved IMGVOFF1 NH
OF(value)
0 0FFFh
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the display image vertical offset in lines from the first active line of field 1. Negative horizontal image offset.
NONE NEGOFF
0 1 Display image window begins before the start of active video. (Used for HANC data output.)
1412 110
Reserved IMGHOFF1
OF(value)
0 0FFFh
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the display image horizontal offset in pixels from the start of each line of active video in field 1. This must be an even number (the LSB is treated as 0). Specifies the display image horizontal offset in pixels from the start of each line of active video in field 1.
B-479
16
Table B347. Video Display Field 1 Image Size Register (VDIMGSZ1) Field Values
Description Bit 3128 2716 1512 110 field Reserved IMGVSIZE1 Reserved IMGHSIZE1 symval OF(value) OF(value) Value 0 0FFFh 0 0FFFh BT.656 and Y/C Mode Raw Data Mode
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the display image height in lines. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the display image width in pixels. This number must be even (the LSB is treated as 0) Specifies the display image width in pixels.
B-480
B-481
Table B348. Video Display Field 2 Image Offset Register (VDIMGOFF2) Field Values
Description Bit 31 field NV NONE NEGOFF 0 1 Display image window begins before the first active line of field 2. (Used for VBI data output.) symval Value BT.656 and Y/C Mode Raw Data Mode
Negative vertical image offset enable bit. Not used. Not used.
3028 2716 15
Reserved IMGVOFF2 NH
OF(value)
0 0FFFh
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the display image vertical offset in lines from the first active line of field 2. Negative horizontal image offset.
NONE NEGOFF
0 1 Display image window begins before the start of active video. (Used for HANC data output.)
1412 110
Reserved IMGHOFF2
OF(value)
0 0FFFh
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the display image horizontal offset in pixels from the start of each line of active video in field 2. This must be an even number (the LSB is treated as 0). Specifies the display image horizontal offset in pixels from the start of each line of active video in field 2.
B-482
16
Table B349. Video Display Field 2 Image Size Register (VDIMGSZ2) Field Values
Description Bit 3128 2716 1512 110 field Reserved IMGVSIZE2 Reserved IMGHSIZE2 symval OF(value) OF(value) Value 0 0FFFh 0 0FFFh BT.656 and Y/C Mode Raw Data Mode
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the display image height in lines. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the display image width in pixels. This number must be even (the LSB is treated as 0) Specifies the display image width in pixels.
B-483
16
Table B350. Video Display Field 1 Timing Register (VDFLDT1) Field Values
Bit 3128 2716 1512 110
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the first line of field 1. (The line where FLD is deasserted.) Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the pixel on the first line of field 1 where the FLD output is deasserted.
B-484
16
Table B351. Video Display Field 2 Timing Register (VDFLDT2) Field Values
Bit 3128 2716 1512 110
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the first line of field 2. (The line where FLD is asserted.) Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the pixel on the first line of field 2 where the FLD output is asserted.
B-485
Reserved
B-486
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Field 2 threshold. Whenever there are at least VDTHRLD doublewords of space in the Y display FIFO, a new Y DMA event may be generated. Whenever there are at least VDTHRLD doublewords of space in the Cb or Cr display FIFO, a new Cb or Cr DMA event may be generated. Not used. Field 2 threshold. Whenever there are at least VDTHRLD doublewords of space in the display FIFO, a new Y DMA event may be generated.
1512 1110 90
OF(value) OF(value)
0Fh 0 03FFh
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Field 1 threshold. Whenever there are at least VDTHRLD doublewords of space in the Y display FIFO, a new Y DMA event may be generated. Whenever there are at least VDTHRLD doublewords of space in the Cb or Cr display FIFO, a new Cb or Cr DMA event may be generated. Field 1 threshold. Whenever there are at least VDTHRLD doublewords of space in the display FIFO, a new Y DMA event may be generated.
B-487
16
Table B353. Video Display Horizontal Synchronization Register (VDHSYNC) Field Values
Bit 3128 2716 1512 110
symval OF(value)
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the pixel where HSYNC is deasserted. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the pixel where HSYNC is asserted.
HSYNCSTART OF(value)
B-488
Figure B335. Video Display Field 1 Vertical Synchronization Start Register (VDVSYNS1)
31 Reserved R-0 15 Reserved R-0
Legend: R = Read only; R/W = Read/Write; -n = value after reset
16
Table B354. Video Display Field 1 Vertical Synchronization Start Register (VDVSYNS1) Field Values
Bit 3128 2716 1512 110
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the line where VSYNC is asserted for field 1. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the pixel where VSYNC is asserted in field 1.
B-489
Figure B336. Video Display Field 1 Vertical Synchronization End Register (VDVSYNE1)
31 Reserved R-0 15 Reserved R-0
Legend: R = Read only; R/W = Read/Write; -n = value after reset
16
Table B355. Video Display Field 1 Vertical Synchronization End Register (VDVSYNE1) Field Values
Bit 3128 2716 1512 110
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the line where VSYNC is deasserted for field 1. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the pixel where VSYNC is deasserted in field 1.
B-490
Figure B337. Video Display Field 2 Vertical Synchronization Start Register (VDVSYNS2)
31 Reserved R-0 15 Reserved R-0
Legend: R = Read only; R/W = Read/Write; -n = value after reset
16
Table B356. Video Display Field 2 Vertical Synchronization Start Register (VDVSYNS2) Field Values
Bit 3128 2716 1512 110
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the line where VSYNC is asserted for field 2. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the pixel where VSYNC is asserted in field 2.
B-491
Figure B338. Video Display Field 2 Vertical Synchronization End Register (VDVSYNE2)
31 Reserved R-0 15 Reserved R-0
Legend: R = Read only; R/W = Read/Write; -n = value after reset
16
Table B357. Video Display Field 2 Vertical Synchronization End Register (VDVSYNE2) Field Values
Bit 3128 2716 1512 110
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the line where VSYNC is deasserted for field 2. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the pixel where VSYNC is deasserted in field 2.
B-492
16
Table B358. Video Display Counter Reload Register (VDRELOAD) Field Values
Bit 3128 2716 1512 110
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Value loaded into frame line counter (FLCOUNT) when external VSYNC occurs. Value loaded into video clock counter (VCCOUNT) when external HSYNC occurs. Value loaded into frame pixel counter (FPCOUNT) when external HSYNC occurs.
B-493
16
Table B359. Video Display Display Event Register (VDDISPEVT) Field Values
Description Bit 3128 2716 field Reserved DISPEVT2 symval OF(value) Value 0 0FFFh BT.656 and Y/C Mode Raw Data Mode
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the number of DMA Specifies the number of DMA event sets (YEVT, CbEVT, events (YEVT) to be CrEVT) to be generated for generated for field 2 output. field 2 output. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the number of DMA Specifies the number of DMA event sets (YEVT, CbEVT, events (YEVT) to be CrEVT) to be generated for generated for field 1 output. field 1 output.
1512 110
Reserved DISPEVT1
OF(value)
0 0FFFh
B-494
16
2316
CLIPCLOW
OF(value)
0FFh
Not used.
158 70
CLIPYHIGH CLIPYLOW
OF(value) OF(value)
0FFh 0FFh
B-495
16
B-496
Figure B343. Video Display Default Display Value Register (VDDEFVAL)Raw Data Mode
31 Reserved R/W-0 15 DEFVAL R/W-0
Legend: R/W = Read/Write; -n = value after reset
20 19 DEFVAL R/W-0
16
Table B361. Video Display Default Display Value Register (VDDEFVAL) Field Values
Description Bit 3124 3120 field CRDEFVAL Reserved symval OF(value) Value 0FFh 0 BT.656 and Y/C Mode Raw Data Mode
Specifies the 8 MSBs of the Not used. default Cr display value. Not used. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the default raw data display value.
OF(value) OF(value)
0FFFFFh 0FFh 0
Not used.
Specifies the 8 MSBs of the Not used. default Cb display value. Reserved. The reserved bit Not used. location is always read as 0. A value written to this field has no effect. Specifies the 8 MSBs of the Not used. default Y display value.
70
YDEFVAL
OF(value)
0FFh
For CSL implementation, use the notation VP_VDDEFVAL_field_symval Raw data mode only.
B-497
Table B362. Video Display Vertical Interrupt Register (VDVINT) Field Values
Bit 31 field VIF2 DISABLE ENABLE 3028 2716 15 Reserved VINT2 VIF1 DISABLE ENABLE 1412 110
symval
Value
0 1 0 0FFFh
Vertical interrupt (VINT) in field 2 is disabled. Vertical interrupt (VINT) in field 2 is enabled. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Line where vertical interrupt (VINT) occurs, if VIF2 bit is set. Vertical interrupt (VINT) in field 1 enable bit.
OF(value)
0 1 0 0FFFh
Vertical interrupt (VINT) in field 1 is disabled. Vertical interrupt (VINT) in field 1 is enabled. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Line where vertical interrupt (VINT) occurs, if VIF1 bit is set.
Reserved VINT1
OF(value)
B-498
16
B-499
Table B363. Video Display Field Bit Register (VDFBIT) Field Values
Description Bit 3128 2716 1512 110
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the first line with an EAV of F = 1 indicating field 2 display. Not used.
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the first line with an EAV of F = 0 indicating field 1 display. Not used.
B-500
Figure B346. Video Display Field 1 Vertical Blanking Bit Register (VDVBIT1)
31 Reserved R-0 15 Reserved R-0
Legend: R = Read only; R/W = Read/Write; -n = value after reset
16
Table B364. Video Display Field 1 Vertical Blanking Bit Register (VDVBIT1) Field Values
Description Bit 3128 2716 field Reserved VBITCLR1 symval OF(value) Value 0 0FFFh BT.656 and Y/C Mode Raw Data Mode
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the first line with an EAV of Not used. V = 0 indicating the start of field 1 active display. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the first line with an EAV of Not used. V = 1 indicating the start of field 1 vertical blanking.
1512 110
Reserved VBITSET1
OF(value)
0 0FFFh
B-501
Figure B347. Video Display Field 2 Vertical Blanking Bit Register (VDVBIT2)
31 Reserved R-0 15 Reserved R-0
Legend: R = Read only; R/W = Read/Write; -n = value after reset
16
B-502
Table B365. Video Display Field 2 Vertical Blanking Bit Register (VDVBIT2) Field Values
Description Bit 3128 2716 field Reserved VBITCLR2 symval OF(value) Value 0 0FFFh BT.656 and Y/C Mode Raw Data Mode
Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the first line with an EAV of Not used. V = 0 indicating the start of field 2 active display. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Specifies the first line with an EAV of Not used. V = 1 indicating the start of field 2 vertical blanking.
1512 110
Reserved VBITSET2
OF(value)
0 0FFFh
B-503
Acronym VPPID PCR PFUNC PDIR PDIN PDOUT PDSET PDCLR PIEN PIPOL PISTAT PICLR
Register Name Video Port Peripheral Identification Register Video Port Power Management Register Video Port Pin Function Register Video Port GPIO Direction Control Register 0 Video Port GPIO Data Input Register Video Port GPIO Data Output Register Video Port GPIO Data Set Register Video Port GPIO Data Clear Register Video Port GPIO Interrupt Enable Register Video Port GPIO Interrupt Polarity Register Video Port GPIO Interrupt Status Register Video Port GPIO Interrupt Clear Register
Section B.25.1 B.25.2 B.25.3 B.25.5 B.25.6 B.25.7 B.25.8 B.25.8 B.25.9 B.25.10 B.25.11 B.25.12
The absolute address of the registers is device/port specific and is equal to the base address + offset address. See the devicespecific datasheet to verify the register addresses.
B-504
16
Table B367. Video Port Peripheral Identification Register (VPPID) Field Values
Bit 3124 2316 field Reserved TYPE OF(value) 158 CLASS OF(value) 70 REVISION OF(value)
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Identifies type of peripheral.
01h
09h
B-505
16
2 PEREN R/W-0
1 SOFT R-0
0 FREE R/W-1
B-506
Table B368. Video Port Peripheral Control Register (PCR) Field Values
Bit 313 2 field Reserved PEREN DISABLE 0 symval Value 0 Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Peripheral enable bit. Video port is disabled. Port clock (VCLK0, VCLK1, STCLK) inputs are gated off to save power. DMA access to the video port is still acknowledged but indeterminate read data is returned and write data is discarded. Video port is enabled. Soft bit enable mode bit. This bit is used in conjunction with FREE bit to determine state of video port clock during emulation suspend. This bit has no effect if FREE = 1. STOP 0 The current field is completed upon emulation suspend. After completion, no new DMA events are generated. The port clocks and counters continue to run in order to maintain synchronization. No interrupts are generated. If the port is in display mode, video control signals continue to be output and the default data value is output during the active video window. Is not defined for this peripheral; the bit is hardwired to 0. Free-running enable mode bit. This bit is used in conjunction with SOFT bit to determine state of video port during emulation suspend. SOFT 0 1
ENABLE 1 SOFT
COMP 0 FREE
Free-running mode is disabled. During emulation suspend, SOFT bit determines operation of video port. Free-running mode is enabled. Video port ignores the emulation suspend signal and continues to function as normal.
B-507
Table B369. Video Port Pin Function Register (PFUNC) Field Values
Bit 3123 22 field Reserved PFUNC22 NORMAL VCTL2 21 PFUNC21 NORMAL VCTL1
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. PFUNC22 bit determines if VCTL2 pin functions as GPIO.
0 1
Pin functions normally. Pin functions as GPIO pin. PFUNC21 bit determines if VCTL1 pin functions as GPIO.
0 1
B-508
Table B369. Video Port Pin Function Register (PFUNC) Field Values (Continued)
Bit 20 field PFUNC20 NORMAL VCTL0 1911 10 Reserved PFUNC10 NORMAL VDATA10TO19 91 0 Reserved PFUNC0 NORMAL VDATA0TO9
symval
Value
0 1 0
Pin functions normally. Pin functions as GPIO pin. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. PFUNC10 bit determines if VDATA[1910] pins function as GPIO.
0 1 0
Pins function normally. Pins function as GPIO pin. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. PFUNC0 bit determines if VDATA[90] pins function as GPIO.
0 1
B-509
Table B370. Video Port Pin Direction Register (PDIR) Field Values
Bit 3123 22 field Reserved PDIR22 VCTL2IN VCTL2OUT
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. PDIR22 bit controls the direction of the VCTL2 pin.
0 1
B-510
Table B370. Video Port Pin Direction Register (PDIR) Field Values (Continued)
Bit 21 field PDIR21 VCTL1IN VCTL1OUT 20 PDIR20 VCTL0IN VCTL0OUT 1917 16 Reserved PDIR16 VDATA16TO19IN VDATA16TO19OUT 1513 12 Reserved PDIR12 VDATA12TO15IN VDATA12TO15OUT 11 10 Reserved PDIR10 VDATA10TO11IN VDATA10TO11OUT 9
symval
Value
0 1
Pin functions as input. Pin functions as output. PDIR20 bit controls the direction of the VCTL0 pin.
0 1 0
Pin functions as input. Pin functions as output. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. PDIR16 bit controls the direction of the VDATA[1916] pins.
0 1 0
Pins function as input. Pins function as output. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. PDIR12 bit controls the direction of the VDATA[1512] pins.
0 1 0
Pins function as input. Pins function as output. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. PDIR10 bit controls the direction of the VDATA[1110] pins.
0 1 0
Pins function as input. Pins function as output. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect.
Reserved
B-511
Table B370. Video Port Pin Direction Register (PDIR) Field Values (Continued)
Bit 8 field PDIR8 VDATA8TO9IN VDATA8TO9OUT 75 4 Reserved PDIR4 VDATA4TO7IN VDATA4TO7OUT 31 0 Reserved PDIR0 VDATA0TO3IN VDATA0TO3OUT
symval
Value
0 1 0
Pins function as input. Pins function as output. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. PDIR4 bit controls the direction of the VDATA[74] pins.
0 1 0
Pins function as input. Pins function as output. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. PDIR0 bit controls the direction of the VDATA[30] pins.
0 1
B-512
B-513
Table B371. Video Port Pin Data Input Register (PDIN) Field Values
Bit 3123 22 field Reserved PDIN22 VCTL2LO VCTL2HI 21 PDIN21 VCTL1LO VCTL1HI 20 PDIN20 VCTL0LO VCTL0HI 190 PDIN[190] VDATAnLO VDATAnHI
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. PDIN22 bit returns the logic level of the VCTL2 pin.
0 1
Pin is logic low. Pin is logic high. PDIN21 bit returns the logic level of the VCTL1 pin.
0 1
Pin is logic low. Pin is logic high. PDIN20 bit returns the logic level of the VCTL0 pin.
0 1
Pin is logic low. Pin is logic high. PDIN[190] bit returns the logic level of the corresponding VDATA[n] pin.
0 1
B-514
PDOUT to 1; writing a 0 has no effect and keeps the bits in PDOUT unchanged.
- PDCLR writing a 1 to a bit in PDCLR clears the corresponding bit in
PDOUT to 0; writing a 0 has no effect and keeps the bits in PDOUT unchanged.
B-515
Table B372. Video Port Pin Data Out Register (PDOUT) Field Values
Bit 3123 22 field Reserved PDOUT22 symval Value 0 Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. PDOUT22 bit drives the VCTL2 pin only when the GPIO is configured as output. When reading data, returns the bit value in PDOUT22, does not return input from pin. When writing data, writes to PDOUT22 bit. VCTL2LO VCTL2HI 21 PDOUT21 0 1 Pin drives low. Pin drives high. PDOUT21 bit drives the VCTL1 pin only when the GPIO is configured as output. When reading data, returns the bit value in PDOUT21, does not return input from pin. When writing data, writes to PDOUT21 bit. VCTL1LO VCTL1HI 20 PDOUT20 0 1 Pin drives low. Pin drives high. PDOUT20 bit drives the VCTL0 pin only when the GPIO is configured as output. When reading data, returns the bit value in PDOUT20, does not return input from pin. When writing data, writes to PDOUT20 bit. VCTL0LO VCTL0HI 190 PDOUT[190] 0 1 Pin drives low. Pin drives high. PDOUT[190] bit drives the corresponding VDATA[190] pin only when the GPIO is configured as output. When reading data, returns the bit value in PDOUT[n], does not return input from pin. When writing data, writes to PDOUT[n] bit. VDATAnLO VDATAnHI
0 1
B-516
B-517
Table B373. Video Port Pin Data Set Register (PDSET) Field Values
Bit 3123 22 field Reserved PDSET22 NONE VCTL2HI 21 PDSET21 NONE VCTL1HI 20 PDSET20 NONE VCTL0HI 190 PDSET[190] NONE VDATAnHI
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Allows PDOUT22 bit to be set to a logic high without affecting other I/O pins controlled by the same port.
0 1
No effect. Sets PDOUT22 (VCTL2) bit to 1. Allows PDOUT21 bit to be set to a logic high without affecting other I/O pins controlled by the same port.
0 1
No effect. Sets PDOUT21 (1) bit to 1. Allows PDOUT20 bit to be set to a logic high without affecting other I/O pins controlled by the same port.
0 1
No effect. Sets PDOUT20 (VCTL0) bit to 1. Allows PDOUT[190] bit to be set to a logic high without affecting other I/O pins controlled by the same port.
0 1
B-518
B-519
Table B374. Video Port Pin Data Clear Register (PDCLR) Field Values
Bit 3123 22 field Reserved PDCLR22 NONE VCTL2CLR 21 PDCLR21 NONE VCTL1CLR 20 PDCLR20 NONE VCTL0CLR 190 PDCLR[190] NONE VDATAnCLR
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Allows PDOUT22 bit to be cleared to a logic low without affecting other I/O pins controlled by the same port.
0 1
No effect. Clears PDOUT22 (VCTL2) bit to 0. Allows PDOUT21 bit to be cleared to a logic low without affecting other I/O pins controlled by the same port.
0 1
No effect. Clears PDOUT21 (VCTL1) bit to 0. Allows PDOUT20 bit to be cleared to a logic low without affecting other I/O pins controlled by the same port.
0 1
No effect. Clears PDOUT20 (VCTL0) bit to 0. Allows PDOUT[190] bit to be cleared to a logic low without affecting other I/O pins controlled by the same port.
0 1
B-520
B-521
Table B375. Video Port Pin Interrupt Enable Register (PIEN) Field Values
Bit 3123 22 field Reserved PIEN22 VCTL2LO VCTL2HI 21 PIEN21 VCTL1LO VCTL1HI 20 PIEN20 VCTL0LO VCTL0HI 190 PIEN[190] VDATAnLO VDATAnHI
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. PIEN22 bit enables the interrupt on the VCTL2 pin.
0 1
Interrupt is disabled. Pin enables the interrupt. PIEN21 bit enables the interrupt on the VCTL1 pin.
0 1
Interrupt is disabled. Pin enables the interrupt. PIEN20 bit enables the interrupt on the VCTL0 pin.
0 1
Interrupt is disabled. Pin enables the interrupt. PIEN[190] bits enable the interrupt on the corresponding VDATA[n] pin.
0 1
B-522
B-523
Table B376. Video Port Pin Interrupt Polarity Register (PIPOL) Field Values
Bit 3123 22 field Reserved PIPOL22 VCTL2ACTHI VCTL2ACTLO 21 PIPOL21 VCTL1ACTHI VCTL1ACTLO 20 PIPOL20 VCTL0ACTHI VCTL0ACTLO 190 PIPOL[190] VDATAnACTHI VDATAnACTLO
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. PIPOL22 bit determines the VCTL2 pin signal polarity that generates an interrupt.
0 1
0 1
0 1
0 1
B-524
B-525
Table B377. Video Port Pin Interrupt Status Register (PISTAT) Field Values
Bit 3123 22 field Reserved PISTAT22 NONE VCTL2INT 21 PISTAT21 NONE VCTL1INT 20 PISTAT20 NONE VCTL0INT 190 PISTAT[190] NONE VDATAnINT
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. PISTAT22 bit indicates if there is a pending interrupt on the VCTL2 pin.
0 1
No pending interrupt on the VCTL2 pin. Pending interrupt on the VCTL2 pin. PISTAT21 bit indicates if there is a pending interrupt on the VCTL1 pin.
0 1
No pending interrupt on the VCTL1 pin. Pending interrupt on the VCTL1 pin. PISTAT20 bit indicates if there is a pending interrupt on the VCTL0 pin.
0 1
No pending interrupt on the VCTL0 pin. Pending interrupt on the VCTL0 pin. PISTAT[190] bit indicates if there is a pending interrupt on the corresponding VDATA[n] pin.
0 1
No pending interrupt on the VDATA[n] pin. Pending interrupt on the VDATA[n] pin.
B-526
B-527
Table B378. Video Port Pin Interrupt Clear Register (PICLR) Field Values
Bit 3123 22 field Reserved PICLR22 NONE VCTL2CLR 21 PICLR21 NONE VCTL1CLR 20 PICLR20 NONE VCTL0CLR 190 PICLR[190] NONE VDATAnCLR
symval
Value 0
Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Allows PISTAT22 bit to be cleared to a logic low.
0 1
No effect. Clears PISTAT22 (VCTL2) bit to 0. Allows PISTAT21 bit to be cleared to a logic low.
0 1
No effect. Clears PISTAT21 (VCTL1) bit to 0. Allows PISTAT20 bit to be cleared to a logic low.
0 1
No effect. Clears PISTAT20 (VCTL0) bit to 0. Allows PISTAT[190] bit to be cleared to a logic low.
0 1
B-528
B.26.1 Expansion Bus Global Control Register (XBGC) Figure B360. Expansion Bus Global Control Register (XBGC)
31 Reserved R-0 15 FMOD R-0 14 XFCEN R/W-0 13 R/W-0 12 11 XARB R-0 10 Reserved R-0 0 16
XFRAT
B-529
Table B380. Expansion Bus Global Control Register (XBGC) Field Values
Bit 3116 15 field Reserved FMOD GLUE GLUELESS 0 1 symval Value 0 Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. FIFO boot-mode selection bit. Glue logic is used for FIFO read interface in all XCE spaces operating in FIFO mode. Glueless read FIFO interface. If XCE3 is selected for FIFO mode, then XOE acts as FIFO output enable and XCE3 acts as FIFO read enable. XOE is disabled in all other XCE spaces regardless of MTYPE setting in XCECTL. FIFO clock enable bit. The FIFO clock enable cannot be changed while a DMA request to XCE space is active. DISABLE ENABLE 1312 XFRAT 0 1 03h XFCLK is held high. XFCLK is enabled to clock. FIFO clock rate bits. The FIFO clock setting cannot be changed while a DMA request to XCE space is active. The XFCLK should be disabled before changing the XFRAT bits. There is no delay required between enabling/disabling XFCLK and changing the XFRAT bits. XFCLK = 1/8 CPU clock rate XFCLK = 1/6 CPU clock rate XFCLK = 1/4 CPU clock rate XFCLK = 1/2 CPU clock rate Arbitration mode select bit. DISABLE ENABLE 100
14
XFCEN
0 1h 2h 3h
0 1 0
Internal arbiter is disabled. DSP wakes up from reset as the bus slave. Internal arbiter is enabled. DSP wakes up from reset as the bus master. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect.
Reserved
B-530
Reserved
Reserved
Table B381. Expansion Bus XCE Space Control Register (XCECTL) Field Values
Bit 3128 field WRSETUP symval OF(value) Value 0Fh Description Write setup width. Number of CLKOUT1 cycles of setup time for byte-enable/address (XBE/XA) and chip enable (XCE) before write strobe falls. For asynchronous read accesses, this is also the setup time of XOE before XRE falls. Write setup width is15 CLKOUT1 cycles. Write strobe width. The width of write strobe (XWE) in CLKOUT1 cycles. Width of write strobe (XWE) is 63 CLKOUT1 cycles Write hold width. Number of CLKOUT1 cycles that byte-enable/address (XBE/XA) and chip enable (XCE) are held after write strobe rises. For asynchronous read accesses, this is also the hold time of XCE after XRE rising. Write hold width is 3 CLKOUT1 cycles. Read setup width. Number of CLKOUT1 cycles of setup time for byte-enable/address (XBE/XA) and chip enable (XCE) before read strobe falls. For asynchronous read accesses, this is also the setup time of XOE before XRE falls. Read setup width is15 CLKOUT1 cycles.
3h 0Fh
DEFAULT
Fh
B-531
Table B381. Expansion Bus XCE Space Control Register (XCECTL) Field Values (Continued)
Bit 1514 138 field Reserved RDSTRB symval OF(value) DEFAULT 7 64 Reserved MTYPE 32BITASYN 32BITFIFO 32 10 Reserved RDHLD OF(value) Value 0 03Fh 3Fh 0 07h 01h 2h 3h4h 5h 6h7h 0 03h Description Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Read strobe width. The width of read strobe (XRE) in CLKOUT1 cycles. Width of read strobe (XRE) is 63 CLKOUT1 cycles Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Memory type is configured during boot using pull-up or pull-down resistors on the expansion bus. Reserved 32-bit wide asynchronous interface Reserved 32-bit wide FIFO interface Reserved Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. Read hold width. Number of CLKOUT1 cycles that byte-enable/address (XBE/XA) and chip enable (XCE) are held after read strobe rises. For asynchronous read accesses, this is also the hold time of XCE after XRE rising. Read hold width is 3 CLKOUT1 cycles.
DEFAULT
3h
B-532
Figure B362. Expansion Bus Host Port Interface Control Register (XBHC)
31 XFRCT R/W-0 15 Reserved R-0
Legend: R = Read only; R/W = Read/Write; -n = value after reset
16
5 INTSRC R/W-0
4 START R/W-0
2 Rsvd R-0
1 DSPINT R/W-0
0 Rsvd R-0
Table B382. Expansion Bus Host Port Interface Control Register (XBHC) Field Values
Bit 3116 field XFRCT symval OF(value) Value Description
0 Transfer counter bits control the number of 32-bit words transferred FFFFh between the expansion bus and an external slave when the CPU is mastering the bus (range of up to 64k). 0 Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. The interrupt source bit selects between the DSPINT bit of the expansion bus internal slave address register (XBISA) and the XFRCT counter. An XBUS host port interrupt can be caused either by the DSPINT bit or by the XFRCT counter.
156 5
Reserved INTSRC
INTSRC
Interrupt source is the DSPINT bit of XBISA. When a zero is written to the INTSRC bit, the DSPINT bit of XBISA is copied to the DSPINT bit of XBHC. Interrupt is generated at the completion of the master transfer initiated by writing to the START bits.
INTSRC
B-533
Table B382. Expansion Bus Host Port Interface Control Register (XBHC) Field Values (Continued)
Bit 43 field START ABORT symval Value 03h 0 Description Start bus master transaction bit. Writing 00 to the the START field while an active transfer is stalled by XRDY high, aborts the transfer. When a transfer is aborted, the XBUS registers reflect the state of the aborted transfer. Using this state information, you can restart the transfer. Starts a burst write transaction from the address pointed to by the expansion bus internal master address register (XBIMA) to the address pointed to by the expansion bus external address register (XBEA). Starts a burst read transaction from the address pointed to by the expansion bus external address register (XBEA) to the address pointed to by the expansion bus internal master address register (XBIMA). Reserved Reserved. The reserved bit location is always read as 0. A value written to this field has no effect. The expansion bus to DSP interrupt (set either by the external host or the completion of a master transfer) is cleared when this bit is set. The DSPINT bit must be manually cleared before another one can be set. NONE CLR 0
WRITE
1h
READ
2h
2 1 Reserved DSPINT
3h 0
0 1 0
DSP interrupt bit is not cleared. DSP interrupt bit is cleared. Reserved. The reserved bit location is always read as 0. A value written to this field has no effect.
Reserved
B-534
Table B383. Expansion Bus Internal Master Address Register (XBIMA) Field Values
Bit 310
Field XBIMA
symval OF(value)
Description Specifies the source or destination address in the DSP memory map where the transaction starts.
Table B384. Expansion Bus External Address Register (XBEA) Field Values
Bit 310
Field XBEA
symval OF(value)
Description Specifies the source or destination address in the external slave memory map where the data is accessed.
B-535
B.26.6 Expansion Bus Data Register (XBD) Figure B365. Expansion Bus Data Register (XBD)
31 XBD HR/W-0
Legend: H = Host access; R/W = Read/Write; -n = value after reset
B.26.7 Expansion Bus Internal Slave Address Register (XBISA) Figure B366. Expansion Bus Internal Slave Address Register (XBISA)
31 XBSA HR/W-0
Legend: H = Host access; R/W = Read/Write; -n = value after reset
1 AINC HR/W-0
0 DSPINT HR/W-0
Table B386. Expansion Bus Internal Slave Address Register (XBISA) Field Values
Bit 312 1 Field XBSA AINC 0 1 0 DSPINT 01 Value 03FFF FFFFh Description This 30-bit word address specifies the memory location in the DSP memory map being accessed by the host. Autoincrement mode enable bit. (Asynchronous mode only) The expansion bus data register (XBD) is accessed with autoincrement of XBSA bits. The expansion bus data register (XBD) is accessed without autoincrement of XBSA bits. The external master to DSP interrupt bit. Used to wake up the DSP from reset. The DSPINT bit is cleared by the corresponding DSPINT bit in the expansion bus host port interface control register (XBHC).
B-536
Appendix C Appendix A
The L2 cache register names and the CSL cache coherence APIs have been renamed to better reflect the actual operation. All users are encouraged to switch from the old APIs to the new ones. The old APIs will still work, but will no longer be updated. Also, the old CSL version does not support some new C64x cache operations. Table C1 and Table C2 show the correct function calls for the new APIs, to replace the old ones. Table C3 shows the mapping of the old L2 register names to the new L2 register names. Table C4 shows the mapping of the new L2ALLOCx bit field names to the old bit field names (C64x only).
L2 CACHE_clean(CACHE_L2, start WritebackInval address, word count) idate All L2 Cache L2 Writeback All CACHE_flush(CACHE_L2ALL, [ignored], [ignored])
C-1
C-2
Table C4. Mapping of New L2ALLOCx Bit Field Names to Old Bit Field Names (C64x only)
Register L2ALLOC1 L2ALLOC2 L2ALLOC3 L2ALLOC4 Old Bit Field Names L2ALLOC L2ALLOC L2ALLOC L2ALLOC New Bit Field Names Q1CNT Q2CNT Q3CNT Q4CNT Description L2 allocation priority queue 1 L2 allocation priority queue 2 L2 allocation priority queue 3 L2 allocation priority queue 4
C-3
Appendix D Appendix A
Glossary
A
address: The location of program code or data stored; an individually accessible memory location. A-law companding: See compress and expand (compand). API: See application programming interface. API module: A set of API functions designed for a specific purpose. application programming interface (API): Used for proprietary application programs to interact with communications software or to conform to protocols from another vendors product. assembler: A software program that creates a machine language program from a source file that contains assembly language instructions, directives, and macros. The assembler substitutes absolute operation codes for symbolic operation codes and absolute or relocatable addresses for symbolic addresses. assert: To make a digital logic device pin active. If the pin is active low, then a low voltage on the pin asserts it. If the pin is active high, then a high voltage asserts it.
B
bit: A binary digit, either a 0 or 1. big endian: An addressing protocol in which bytes are numbered from left to right within a word. More significant bytes in a word have lower numbered addresses. Endian ordering is specific to hardware and is determined at reset. See also little endian. block: The three least significant bits of the program address. These correspond to the address within a fetch packet of the first instruction being addressed.
D-1
Glossary
board support library (BSL): The BSL is a set of application programming interfaces (APIs) consisting of target side DSP code used to configure and control board level peripherals. boot: The process of loading a program into program memory.
boot mode: The method of loading a program into program memory. The C6000 DSP supports booting from external ROM or the host port interface (HPI). BSL: See board support library. byte: A sequence of eight adjacent bits operated upon as a unit.
C
cache: A fast storage buffer in the central processing unit of a computer. cache module: CACHE is an API module containing a set of functions for managing data and program cache. cache controller: System component that coordinates program accesses between CPU program fetch mechanism, cache, and external memory. CCS: Code Composer Studio. central processing unit (CPU): The portion of the processor involved in arithmetic, shifting, and Boolean logic operations, as well as the generation of data- and program-memory addresses. The CPU includes the central arithmetic logic unit (CALU), the multiplier, and the auxiliary register arithmetic unit (ARAU). CHIP: See CHIP module.
CHIP module: The CHIP module is an API module where chip-specific and device-related code resides. CHIP has some API functions for obtaining device endianess, memory map mode if applicable, CPU and REV IDs, and clock speed. chip support library (CSL): The CSL is a set of application programming interfaces (APIs) consisting of target side DSP code used to configure and control all on-chip peripherals. clock cycle: A periodic or sequence of events based on the input from the external clock. clock modes: Options used by the clock generator to change the internal CPU clock frequency to a fraction or multiple of the frequency of the input clock signal.
D-2
Glossary
code: A set of instructions written to perform a task; a computer program or part of a program. coder-decoder or compression/decompression (codec): A device that codes in one direction of transmission and decodes in another direction of transmission. compiler: A computer program that translates programs in a high-level language into their assembly-language equivalents. compress and expand (compand): A quantization scheme for audio signals in which the input signal is compressed and then, after processing, is reconstructed at the output by expansion. There are two distinct companding schemes: A-law (used in Europe) and -law (used in the United States). control register: A register that contains bit fields that define the way a device operates. control register file: A set of control registers. CSL: See chip support library. CSL module: The CSL module is the top-level CSL API module.It interfaces to all other modules and its main purpose is to initialize the CSL library.
D
DAT: Data; see DAT module. DAT module: The DAT is an API module that is used to move data around by means of DMA/EDMA hardware. This module serves as a level of abstraction that works the same for devices that have the DMA or EDMA peripheral. device ID: Configuration register that identifies each peripheral component interconnect (PCI). digital signal processor (DSP): A semiconductor that turns analog signals such as sound or light into digital signals (discrete or discontinuous electrical impulses) so that they can be manipulated. direct memory access (DMA): A mechanism whereby a device other than the host processor contends for and receives mastery of the memory bus so that data transfers can take place independent of the host. DMA : See direct memory access.
Glossary D-3
Glossary
DMA module: DMA is an API module that currently has two architectures used on C6x devices: DMA and EDMA (enhanced DMA). Devices such as the 6201 have the DMA peripheral, whereas the 6211 has the EDMA peripheral. DMA source: The module where the DMA data originates. DMA data is read from the DMA source. DMA transfer: The process of transferring data from one part of memory to another. Each DMA transfer consists of a read bus cycle (source to DMA holding register) and a write bus cycle (DMA holding register to destination).
E
EDMA: Enhanced direct memory access; see EDMA module. EDMA module: EDMA is an API module that currently has two architectures used on C6x devices: DMA and EDMA (enhanced DMA). Devices such as the 6201 have the DMA peripheral, whereas the 6211 has the EDMA peripheral. :EMAC:EMAC is an API module for the Ethernet Media Access Control Module of the DM64x devices. EMIF: See external memory interface; see also EMIF module. EMIF module: EMIF is an API module that is used for configuring the EMIF registers. evaluation module (EVM): Board and software tools that allow the user to evaluate a specific device. external interrupt: A hardware interrupt triggered by a specific value on a pin. external memory interface (EMIF): Microprocessor hardware that is used to read to and write from off-chip memory.
F
fetch packet: A contiguous 8-word series of instructions fetched by the CPU and aligned on an 8-word boundary. flag: A binary status indicator whose state indicates whether a particular condition has occurred or is in effect.
D-4
Glossary
frame: An 8-word space in the cache RAMs. Each fetch packet in the cache resides in only one frame. A cache update loads a frame with the requested fetch packet. The cache contains 512 frames.
G
global interrupt enable bit (GIE): A bit in the control status register (CSR) that is used to enable or disable maskable interrupts.
H
host: A device to which other devices (peripherals) are connected and that generally controls those devices. host port interface (HPI): A parallel interface that the CPU uses to communicate with a host processor. HPI: See host port interface; see also HPI module. HPI module: HPI is an API module used for configuring the HPI registers. Functions are provided for reading HPI status bits and setting interrupt events.
I
index: A relative offset in the program address that specifies which of the 512 frames in the cache into which the current access is mapped. indirect addressing: An addressing mode in which an address points to another pointer rather than to the actual data; this mode is prohibited in RISC architecture. instruction fetch packet: A group of up to eight instructions held in memory for execution by the CPU. internal interrupt: A hardware interrupt caused by an on-chip peripheral. interrupt: A signal sent by hardware or software to a processor requesting attention. An interrupt tells the processor to suspend its current operation, save the current task status, and perform a particular set of instructions. Interrupts communicate with the operating system and prioritize tasks to be performed. interrupt service fetch packet (ISFP): A fetch packet used to service interrupts. If eight instructions are insufficient, the user must branch out of this block for additional interrupt service. If the delay slots of the branch do not reside within the ISFP, execution continues from execute packets in the next fetch packet (the next ISFP).
Glossary D-5
Glossary
interrupt service routine (ISR): A module of code that is executed in response to a hardware or software interrupt. interrupt service table (IST) A table containing a corresponding entry for each of the 16 physical interrupts. Each entry is a single-fetch packet and has a label associated with it. Internal peripherals: Devices connected to and controlled by a host device. The C6x internal peripherals include the direct memory access (DMA) controller, multichannel buffered serial ports (McBSPs), host port interface (HPI), external memory-interface (EMIF), and runtime support timers. IRQ: Interrupt request; see IRQ module. IRQ module: IRQ is an API module that manages CPU interrupts. IST: See interrupt service table.
L
least significant bit (LSB): The lowest-order bit in a word. linker: A software tool that combines object files to form an object module, which can be loaded into memory and executed. little endian: An addressing protocol in which bytes are numbered from right to left within a word. More significant bytes in a word have higher-numbered addresses. Endian ordering is specific to hardware and is determined at reset. See also big endian.
M
-law companding: See compress and expand (compand). maskable interrupt: A hardware interrupt that can be enabled or disabled through software. MCBSP: See multichannel buffered serial port; see also MCBSP module. MCBSP module: MCBSP is an API module that contains a set of functions for configuring the McBSP registers. :MDIO MDIO is an API module for the Management of Data I/O module of the DM642, DM641, and DM640 devices. memory map: A graphical representation of a computer systems memory, showing the locations of program space, data space, reserved space, and other memory-resident elements.
D-6
Glossary
memory-mapped register: An on-chip register mapped to an address in memory. Some memory-mapped registers are mapped to data memory, and some are mapped to input/output memory. most significant bit (MSB): The highest order bit in a word. multichannel buffered serial port (McBSP): An on-chip full-duplex circuit that provides direct serial communication through several channels to external serial devices. multiplexer: A device for selecting one of several available signals.
N
nonmaskable interrupt (NMI): An interrupt that can be neither masked nor disabled.
O
object file: A file that has been assembled or linked and contains machine language object code. off chip: A state of being external to a device. on chip: A state of being internal to a device.
P
PCI: Peripheral component interconnect interface; see PCI module. PCI module: PCI is an API module that includes APIs which are dedicated to DSP-PCI Master transfers, EEPROM operations, and power management peripheral: A device connected to and usually controlled by a host device. program cache: A fast memory cache for storing program instructions allowing for quick execution. program memory: Memory accessed through the C6xs program fetch interface. PWR: Power; see PWR module. PWR module: PWR is an API module that is used to configure the powerdown control registers, if applicable, and to invoke various power-down modes.
Glossary D-7
Glossary
R
random-access memory (RAM): A type of memory device in which the individual locations can be accessed in any order. register: A small area of high speed memory located within a processor or electronic device that is used for temporarily storing data or instructions. Each register is given a name, contains a few bytes of information, and is referenced by programs. reduced-instruction-set computer (RISC): A computer whose instruction set and related decode mechanism are much simpler than those of microprogrammed complex instruction set computers. The result is a higher instruction throughput and a faster real-time interrupt service response from a smaller, cost-effective chip. reset: A means of bringing the CPU to a known state by setting the registers and control bits to predetermined values and signaling execution to start at a specified address. RTOS Real-time operating system.
S
synchronous-burst static random-access memory (SBSRAM): RAM whose contents does not have to be refreshed periodically. Transfer of data is at a fixed rate relative to the clock speed of the device, but the speed is increased. synchronous dynamic random-access memory (SDRAM): RAM whose contents is refreshed periodically so the data is not lost. Transfer of data is at a fixed rate relative to the clock speed of the device. syntax: The grammatical and structural rules of a language. All higher-level programming languages possess a formal syntax. system software: The blanketing term used to denote collectively the chip support libraries and board support libraries.
D-8
Glossary
T
tag: The 18 most significant bits of the program address. This value corresponds to the physical address of the fetch packet that is in that frame. timer: A programmable peripheral used to generate pulses or to time events. TIMER module: TIMER is an API module used for configuring the timer registers.
V
:VCP: VCP is an API module for the Viterbi co-processor peripheral on the TMS320C6416 device. :VIC: VIC is an API module for the VCXO interpolated control peripheral. :VP: VP is an API module for the video port peripheral.
W
word: A multiple of eight bits that is operated upon as a unit. For the C6000, a word is 32 bits in length.
X
xbus: Expansion bus. XBUS module: The XBUS module is an API module used for configuring the tXBUS registers.
Glossary
D-9
Index
Index
A
Alaw companding, defined D-1 address, defined D-1 API, defined D-1 API module, defined D-1 API reference, DAT API reference, DAT_wait 5-13 DMA configuration structure DMA_Config 6-7 DMA_GlobalConfig 6-8 application programming interface (API) defined D-1 module architecture 1-3 module introduction module support, TMS320C6000 devices 1-15, 1-16 using CSL APIs, without using DSP/BIOS A-2 architecture, chip support library 1-2 assembler, defined D-1 assert, defined D-1
C
CACHE functions CACHE_clean 2-6 CACHE_enableCaching 2-7 CACHE_flush 2-9 CACHE_getL2Mode 2-19 CACHE_getL2SramSize 2-10 CACHE_invalidate 2-10 CACHE_invAllL1p 2-11 CACHE_invL1d 2-11 CACHE_invL1p 2-12 CACHE_invL2 2-13 CACHE_L1D_LINESIZE 2-14 CACHE_L2_LINESIZE 2-15 CACHE_reset 2-15 CACHE_resetEMIFA 2-15 CACHE_resetEMIFB 2-15 CACHE_resetL2Queue 2-16 CACHE_ROUND_TO_LINESIZE 2-16 CACHE_setL2Mode 2-17 CACHE_setL2PriReq 2-20 CACHE_setL2Queue 2-20 CACHE_setPccMode 2-21 CACHE_SUPPORT 2-21 CACHE_wait 2-21 CACHE_wbAllL2 2-22 CACHE_wbInvAllL2 2-24 CACHE_wbInvL1d 2-23 CACHE_wbInvL2 2-25 CACHE_wbL2 2-26 CACHE module 2-1 API table 2-2 cache, defined D-2 CACHE functions 2-6 cache module, defined D-2 macros 2-4 overview 2-2 cache module, cache controller, defined D-2 Index-1
B
big endian, defined D-1 bit, defined D-1 block, defined D-1 board support library, defined D-2 boot, defined D-2 boot mode, defined D-2 BSL, defined D-2 build options dialog box, defining the target device, without using DSP/BIOS A-8 byte, defined D-2
Index
CCS, defined D-2 central processing unit (CPU), defined D-2 CHIP functions CHIP_getCpuId 3-5 CHIP_getEndian 3-5 CHIP_getMapMode 3-6 CHIP_getRevId 3-6 CHIP module 3-1 API table 3-2 CHIP , defined D-2 CHIP functions 3-4 CHIP module, defined D-2 macros 3-3 overview 3-2 chip support library, defined D-2 chip support library (CSL) API module architecture, figure 1-3 API module support for 6000 devices, table 1-15, 1-16 API modules 1-3 API table 4-2 architecture 1-2 benefits 1-2 build options dialog box, defining the target device, without using DSP/BIOS A-8 compiling and linking with CSL, using Code Composer Studio, without using DSP/BIOS A-7 configuring the Code Composer Studio project environment, without using DSP/BIOS A-7 CSL, defined D-3 data types 1-6 device support library, name and symbol conventions 1-17 directory structure, without using DSP/BIOS A-7 generic CSL functions 1-7 generic CSL handlebased macros, table 1-11 generic CSL macros, table 1-10 generic CSL symbolic constants 1-12 initializing registers 1-8 introduction 1-2 macros, generic descriptions 1-9 module interdependencies 1-4 module introduction 4-2 modules and include files 1-3 naming conventions 1-5 overview 1-1 resource management 1-13 using CSL APIs, without using DSP/BIOS A-2 using CSL handles 1-13 Index-2
using CSL without DSP/BIOS A-1 clock cycle, defined D-2 clock modes, defined D-2 code, defined D-3 Code Composer Studio compiling and linking with CSL, without using DSP/BIOS A-7 configuring the project environment, without using DSP/BIOS A-7 coderdecoder, defined D-3 compiler, defined D-3 compress and expand (compand), defined D-3 constants, generic CSL symbolic constants 1-12 control register, defined D-3 control register file, defined D-3 CSL Module 4-1 functions 4-3 CSL module 4-1 CSL functions 4-3 defined D-3
D
DAT functions DAT_busy 5-4 DAT_close 5-4 DAT_copy 5-5 DAT_copy2d 5-6 DAT_fill 5-8 DAT_open 5-10 DAT_setPriority 5-11 DAT module 5-1 API table 5-2 DAT, defined D-3 DAT functions 5-4 DAT module, defined D-3 macros 5-3 module introduction 5-2 DAT_wait, API reference 5-13 data types, CSL data types 1-6 device ID, defined D-3 digital signal processor (DSP), defined D-3 direct memory access (DMA) defined D-3 source, defined D-4 transfer, defined D-4 directory structure, chip support library (CSL), without using DSP/BIOS A-7
Index
DMA functions DMA_allocGlobalReg 6-14 DMA_autoStart 6-23 DMA_close 6-9 DMA_config 6-9 DMA_configArgs 6-10 DMA_freeGlobalReg 6-16 DMA_getConfig 6-26 DMA_getEventId 6-27 DMA_getGlobalReg 6-16 DMA_getGlobalRegAddr 6-17 DMA_getStatus 6-27 DMA_globalAlloc 6-18 DMA_globalConfig 6-19 DMA_globalConfigArgs 6-20 DMA_globalFree 6-22 DMA_globalGetConfig 6-22 DMA_open 6-11 DMA_pause 6-12 DMA_reset 6-12 DMA_restoreStatus 6-27 DMA_setAuxCtl 6-28 DMA_setGlobalReg 6-23 DMA_start 6-13 DMA_stop 6-13 DMA_wait 6-29 DMA module 6-1 API table 6-2 channel configuration structure 6-7 configuration structures 6-2 devices with DMA 5-3 DMA, defined D-3 DMA functions 6-9 DMA module, defined D-4 introduction 6-2 macros 6-5 DMA/EDMA management 5-3 DMA_Config 6-7 DMA_config(), example using without DSP/ BIOS A-2 DMA_configArgs(), example using without using DSP/BIOS A-5 DMA_GlobalConfig 6-8
E
EDMA configuration structure, EDMA_Config 7-7 EDMA functions EDMA_allocTable 7-16 EDMA_allocTableEx 7-17 EDMA_chain 7-18 EDMA_clearChannel 7-19 EDMA_clearPram 7-20 EDMA_close 7-8 EDMA_config 7-8 EDMA_configArgs 7-9 EDMA_disableChaining 7-20 EDMA_disableChannel 7-21 EDMA_enableChaining 7-20 EDMA_enableChannel 7-21 EDMA_freeTable 7-22 EDMA_freeTableEx 7-22 EDMA_getChannel 7-23 EDMA_getConfig 7-23 EDMA_getPriQStatus 7-24 EDMA_getScratchAddr 7-24 EDMA_getScratchSize 7-24 EDMA_getTableAddress 7-25 EDMA_intAlloc 7-25 EDMA_intClear 7-25 EDMA_intDefaultHandler 7-26 EDMA_intDisable 7-26 EDMA_intDispatcher 7-26 EDMA_intEnable 7-27 EDMA_intFree 7-27 EDMA_intHook 7-28 EDMA_intTest 7-29 EDMA_link 7-29 EDMA_open 7-10 EDMA_qdmaConfig 7-30 EDMA_qdmaConfigArgs 7-31 EDMA_reset 7-15 EDMA_resetAll 7-32 EDMA_resetPriQLength 7-32 EDMA_setChannel 7-32 EDMA_setEvtPolarity 7-33 EDMA_setPriQLength 7-33 EDMA module 7-1 API table 7-2 configuration structure 7-2, 7-7 defined D-4 devices with EDMA 5-3 EDMA, defined D-4 EDMA functions 7-8
Index-3
Index
introduction, using an EDMA channel 7-4 macros 7-5 module introduction 7-2 EDMA_Config 7-7 EMAC Module 8-1 APIs 8-2 Configuration structure 8-2, 8-6 EMIF configuration structure, EMIF_Config 9-5 EMIF functions EMIF_config 9-6 EMIF_configArgs 9-7 EMIF_getConfig 9-8 EMIF module 9-1 API table 9-2 configuration structure 9-2, 9-5 EMIF, defined D-4 EMIF functions 9-6 EMIF module, defined D-4 introduction 9-2 macros 9-3 EMIF_Config 9-5 EMIFA module 10-1 EMIFA/B configuration structure EMIFA_Config 10-5 EMIFB_Config 10-5 EMIFA/B functions EMIFA_config 10-7 EMIFA_configArgs 10-9 EMIFA_getConfig 10-11 EMIFB_config 10-7 EMIFB_configArgs 10-9 EMIFB_getConfig 10-11 EMIFA/B module configuration structure 10-5 EMIFA/B functions 10-7 EMIFA/EMIFB modules API table 10-2 configuration structure 10-2 introduction 10-2 macros 10-3 EMIFA_Config 10-5 EMIFB module 10-1 EMIFB_Config 10-5 endianess, chip support library 1-17 evaluation module, defined D-4 external interrupt, defined D-4 external memory interface (EMIF), defined D-4 Index-4
F
fetch packet, defined D-4 flag, defined D-4 frame, defined D-5 functions, generic CSL functions 1-7
G
GIE bit, defined D-5 GPIO configuration structure, GPIO_Config 11-7 GPIO functions GPIO_clear 11-11 GPIO_close 11-8 GPIO_config 11-8 GPIO_configArgs 11-9 GPIO_deltaHighClear 11-12 GPIO_deltaHighGet 11-13 GPIO_deltaLowClear 11-11 GPIO_deltaLowGet 11-12 GPIO_getConfig 11-13 GPIO_intPolarity 11-14 GPIO_maskHighClear 11-16 GPIO_maskHighSet 11-16 GPIO_maskLowClear 11-15 GPIO_maskLowSet 11-15 GPIO_open 11-10 GPIO_pinDirection 11-17 GPIO_pinDisable 11-17 GPIO_pinEnable 11-18 GPIO_pinRead 11-18 GPIO_pinWrite 11-19 GPIO_read 11-20 GPIO_reset 11-10 GPIO_write 11-20 GPIO module 11-1 API table 11-2 configuration structure 11-2, 11-7 introduction 11-2 macros 11-5 module introduction, using a GPIO device 11-4 GPIO_Config 11-7
H
HAL macro reference 28-12 PER_ADDR 28-12 PER_ADDRH 28-12 PER_CRGET 28-12
Index
PER_CRSET 28-13 PER_FGET 28-13 PER_FGETA 28-14 PER_FGETH 28-14 PER_FMK 28-14 PER_FMKS 28-15 PER_FSET 28-15 PER_FSETA 28-16 PER_FSETH 28-16 PER_FSETS 28-17 PER_FSETSA 28-17 PER_FSETSH 28-18 PER_REG_DEFAULT 28-21 PER_REG_FIELD_DEFAULT 28-24 PER_REG_FIELD_OF 28-24 PER_REG_FIELD_SYM 28-24 PER_REG_OF 28-22 PER_REG_RMK 28-23 PER_RGET 28-18 PER_RGETA 28-19 PER_RGETH 28-19 PER_RSET 28-20 PER_RSETA 28-20 PER_RSETH 28-21 HAL macros 28-1 generic comments regarding HAL macros 28-6 generic macro notation 28-4 introduction 28-2 table 28-5 handles, using CSL handles 1-13 host, defined D-5 host port interface (HPI), defined D-5 HPI functions HPI_getDspint 12-5 HPI_getEventId 12-5 HPI_getFetch 12-5 HPI_getHint 12-6 HPI_getHrdy 12-6 HPI_getHwob 12-6 HPI_getReadAddr 12-6 HPI_getWriteAddr 12-7 HPI_setDspint 12-7 HPI_setHint 12-7 HPI_setReadAddr 12-8 HPI_setWriteAddr 12-8 HPI module 12-1 API table 12-2 HPI, defined D-5 HPI functions 12-5
I
I2C configuration structure, I2C_Config 13-7 I2C functions I2C_bb 13-13 I2C_clear 13-8 I2C_config 13-8 I2C_configArgs 13-9, 13-10 I2C_getConfig 13-14 I2C_getEventId 13-14 I2C_getRcvAddr 13-15 I2C_getXmtAddr 13-15 I2C_intClear 13-16 I2C_intClearAll 13-16 I2C_intEvtDisable 13-17 I2C_intEvtEnable 13-18 I2C_open 13-10 I2C_OPEN_RESET 13-18 I2C_outOfReset 13-19 I2C_readByte 13-19 I2C_reset 13-11 I2C_resetAll 13-12 I2C_rfull 13-20 I2C_rrdy 13-20 I2C_sendStop 13-12 I2C_start 13-13 I2C_writeByte 13-21 I2C_xempty 13-21 I2C_xrdy 13-22 I2C module 13-1 API table 13-2 configuration structure 13-7 configuration structures 13-2 I2C functions 13-8 introduction 13-2 macros 13-5 I2C_Config 13-7 index, defined D-5 indirect addressing, defined D-5 initializing a DMA channel with DMA_config(), without using DSP/BIOS A-2 initializing a DMA channel with DMA_configArgs(), without using DSP/BIOS A-5 initializing registers 1-8 instruction fetch packet, defined D-5 Index-5
Index
internal interrupt, defined D-5 internal peripherals, defined D-6 interrupt, defined D-5 interrupt service fetch packet (ISFP), defined D-5 interrupt service routine (ISR), defined D-6 interrupt service table (IST), defined D-6 IRQ configuration structure, IRQ_Config 14-6 IRQ functions IRQ_clear 14-9 IRQ_config 14-9 IRQ_configArgs 14-10 IRQ_disable 14-11 IRQ_enable 14-11 IRQ_getArg 14-17 IRQ_getConfig 14-18 IRQ_globalDisable 14-12 IRQ_globalEnable 14-12 IRQ_globalRestore 14-12 IRQ_map 14-19 IRQ_nmiDisable 14-19 IRQ_nmiEnable 14-19 IRQ_reset 14-13 IRQ_resetAll 14-20 IRQ_restore 14-13 IRQ_set 14-20 IRQ_setArg 14-21 IRQ_setVecs 14-14 IRQ_test 14-14 IRQ module 14-1 API table 14-2 configuration structure 14-2, 14-6 introduction 14-2 IRQ, defined D-6 IRQ functions 14-9 IRQ module, defined D-6 macros 14-4 IRQ_Config 14-6 IST, defined D-6
M
mlaw companding, defined D-6 macro reference, HAL macro reference 28-12 PER_ADDR 28-12 PER_ADDRH 28-12 PER_CRGET 28-12 PER_CRSET 28-13 PER_FGET 28-13 PER_FGETA 28-14 PER_FGETH 28-14 PER_FMK 28-14 PER_FMKS 28-15 PER_FSET 28-15 PER_FSETA 28-16 PER_FSETH 28-16 PER_FSETS 28-17 PER_FSETSA 28-17 PER_FSETSH 28-18 PER_REG_DEFAULT 28-21 PER_REG_FIELD_DEFAULT 28-24 PER_REG_FIELD_OF 28-24 PER_REG_FIELD_SYM 28-24 PER_REG_OF 28-22 PER_REG_RMK 28-23 PER_RGET 28-18 PER_RGETA 28-19 PER_RGETH 28-19 PER_RSET 28-20 PER_RSETA 28-20 PER_RSETH 28-21 Macros, MDIO 17-3 macros CACHE 2-4 CHIP 3-3 chip support library, generic descriptions 1-9 DAT 5-3 DMA 6-5 EDMA 7-5 EMIF 9-3 EMIFA/EMIFB 10-3 generic CSL handlebased macros, table 1-11 generic CSL macros, table 1-10
L
least significant bit (LSB), defined D-6 linker, defined D-6 Index-6
Index
GPIO 11-5 HPI 12-3 I2C 13-5 IRQ 14-4 MCASP 15-5 MCBSP 16-5 PCI 18-4 PLL 19-4 PWR 20-3 TCP 21-6 TIMER 22-4 UTOP UTOPIA 23-4 VCP 24-5 maskable interrupt, defined D-6 McASP configuration structure MCASP_Config 15-7 MCASP_ConfigGbl 15-7 MCASP_ConfigRcv 15-8 MCASP_ConfigSrctl 15-8 MCASP_ConfigXmt 15-9 McASP functions MCASP_close 15-10 MCASP_config 15-10 MCASP_configDit 15-18 MCASP_configGbl 15-18 MCASP_configRcv 15-19 MCASP_configSrctl 15-19 MCASP_configXmt 15-20 MCASP_enableClk 15-20 MCASP_enableFsync 15-21 MCASP_enableHclk 15-22 MCASP_enablePins 15-17 MCASP_enableSers 15-23 MCASP_enableSm 15-24 MCASP_getConfig 15-25 MCASP_getGblctl 15-25 MCASP_getRcvEventId 15-30 MCASP_getXmtEventId 15-31 MCASP_open 15-11 MCASP_read32 15-12 MCASP_read32Cfg 15-26 MCASP_reset 15-12 MCASP_resetRcv 15-26 MCASP_resetXmt 15-27 MCASP_setPins 15-27 MCASP_setupClk 15-28 MCASP_setupFormat 15-28 MCASP_setupFsync 15-29
MCASP_write32 15-13 MCASP_write32Cfg 15-30 McASP module 15-1 API table 15-2 configuration structures 15-2 introduction 15-2 macros 15-5 MCASP_Config 15-7 MCASP_ConfigGbl 15-7 MCASP_ConfigRcv 15-8 MCASP_ConfigSrctl 15-8 MCASP_ConfigXmt 15-9 MCASP_SetupClk 15-14 MCASP_SetupFormat 15-15 MCASP_SetupFsync 15-16 MCASP_SetupHclk 15-16 MCASP_SUPPORT 15-17 McBSP configuration structure, MCBSP_Config 16-7 McBSP functions MCBSP_close 16-9 MCBSP_config 16-9 MCBSP_configArgs 16-11 MCBSP_enableFsync 16-15 MCBSP_enableRcv 16-15 MCBSP_enableSrgr 16-16 MCBSP_enableXmt 16-16 MCBSP_getConfig 16-16 MCBSP_getPins 16-17 MCBSP_getRcvAddr 16-17 MCBSP_getRcvEventId 16-23 MCBSP_getXmtAddr 16-18 MCBSP_getXmtEventId 16-24 MCBSP_open 16-13 MCBSP_read 16-18 MCBSP_reset 16-19 MCBSP_resetAll 16-19 MCBSP_rfull 16-19 MCBSP_rrdy 16-20 MCBSP_rsyncerr 16-20 MCBSP_setPins 16-21 MCBSP_start 16-14 MCBSP_write 16-22 MCBSP_xempty 16-22 MCBSP_xrdy 16-22 MCBSP_xsyncerr 16-23 MCBSP module configuration structure 16-7 Index-7
Index
macros 16-5 MCBSP, defined D-6 MCBSP module, defined D-6 McASP module configuration structure 15-7 functions 15-10 McBSP module 16-1 API table 16-2 configuration structure 16-2 functions 16-9 introduction 16-2 MCBSP_Config 16-7 MDIO functions MDIO_close 17-4 MDIO_getStatus 17-4 MDIO_initPHY 17-5 MDIO_open 17-5 MDIO_phyRegRead 17-6 MDIO_phyRegWrite 17-6 MDIO_SUPPORT 17-7 MDIO_timerTick 17-7 MDIO module 17-1 memory map, defined D-6 memorymapped register, defined D-7 most significant bit (MSB), defined D-7 multichannel buffered serial port (McBSP), defined D-7 multiplexer, defined D-7
N
naming conventions, chip support library 1-5 nonmaskable interrupt (NMI), defined D-7
O
object file, defined D-7 off chip, defined D-7 on chip, defined D-7
P
PCI configuration structure, PCI_ConfigXfr 18-6 PCI functions PCI_curByteCntGet 18-7 PCI_curDSPAddrGet 18-7 PCI_curPciAddrGet 18-7 Index-8
PCI_dspIntReqClear 18-8 PCI_dspIntReqSet 18-8 PCI_eepromErase 18-8 PCI_eepromEraseAll 18-9 PCI_eepromIsAutoCfg 18-9 PCI_eepromRead 18-9 PCI_eepromSize 18-10 PCI_eepromTest 18-10 PCI_eepromWrite 18-10 PCI_eepromWriteAll 18-11 PCI_intClear 18-11 PCI_intDisable 18-12 PCI_intEnable 18-12 PCI_intTest 18-12 PCI_pwrStatTest 18-13 PCI_pwrStatUpdate 18-13 PCI_xfrByteCntSet 18-14 PCI_xfrConfig 18-14 PCI_xfrConfigArgs 18-15 PCI_xfrEnable 18-15 PCI_xfrFlush 18-16 PCI_xfrGetConfig 18-16 PCI_xfrHalt 18-16 PCI_xfrStart 18-17 PCI_xfrTest 18-17 PCI module 18-1 API table 18-2 configuration structure 18-2, 18-6 introduction 18-2 macros 18-4 PCI, defined D-7 PCI functions 18-7 PCI module, defined D-7 PCI_ConfigXfr 18-6 PER_Config, example using 1-8 PER_config(), example using 1-8 PER_configArgs, example using 1-8 peripheral, defined D-7 PLL functions PLL_bypass 19-7 PLL_clkTest 19-7 PLL_config 19-8 PLL_configArgs 19-8 PLL_deassert 19-9 PLL_disableOscDiv 19-9 PLL_disablePllDiv 19-9 PLL_enable 19-10 PLL_enableOscDiv 19-10 PLL_enablePllDiv 19-11 PLL_getConfig 19-11
Index
PLL_getMultiplier 19-11 PLL_getOscRatio 19-12 PLL_getPllRatio 19-12 PLL_init 19-12 PLL_operational 19-13 PLL_pwrdwn 19-13 PLL_reset 19-14 PLL_setMultiplier 19-14 PLL_setOscRatio 19-14 PLL_setPllRatio 19-15 PLL module 19-1 API table 19-2 configuration structure 19-2 introduction 19-2 macros 19-4 PLL functions 19-7 PLL structures 19-6 PLL structures, PLL_Config 19-6 PLL_Config 19-6 program cache, defined D-7 program memory, defined D-7 protocol-to-program peripherals 1-2 PWR configuration structure, PWR_Config 20-5 PWR functions PWR_config 20-6 PWR_configArgs 20-6 PWR_getConfig 20-7 PWR_powerDown 20-7 PWR module 20-1 API table 20-2 configuration structure 20-2, 20-5 introduction 20-2 macros 20-3 PWR, defined D-7 PWR functions 20-6 PWR module, defined D-7 PWR_Config 20-5
registers CACHE B-2 DMA B-17 EDMA B-31 EMAC control module B-60 EMAC module B-64 EMIF B-122 GPIO B-149 HPI B-159 I2C B-168 initializing registers 1-8 IRQ B-203 McASP B-207 McBSP B-284 MDIO module B-311 PCI B-328 PLL B-353 power-down logic, power-down control register (PDCTL) B-359 TCP B-360 TIMER B-382 UTOPIA B-386 VCP B-396 VIC port B-409 video capture B-427 video display B-462 video port B-413 video port GPIO B-504 XBUS B-529 reset, defined D-8 resource management 1-2 chip support library 1-13 RTOS, defined D-8
S
STDINC module, defined D-8 symbolic peripheral descriptions 1-2 synchronous dynamic randomaccess memory (SDRAM), defined D-8 synchronousburst static randomaccess memory (SBSRAM), defined D-8 syntax, defined D-8 system software, defined D-8
R
randomaccess memory (RAM), defined D-8 reducedinstructionset computer (RISC), defined D-8 register, defined D-8
T
tag, defined D-9 target device, defining in the build options dialog box, without using DSP/BIOS A-8 Index-9
Index
TCP configuration structures TCP_BaseParams 21-8 TCP_ConfigIc 21-9 TCP_Params 21-10 TCP functions TCP_accessErrGet 21-18 TCP_calcCountsSA 21-13 TCP_calcCountsSP 21-13 TCP_calcSubBlocksSA 21-13 TCP_calcSubBlocksSP 21-13 TCP_calculateHd 21-14 TCP_ceil 21-14 TCP_deinterleaveExt 21-15 TCP_demuxInput 21-15 TCP_errTest 21-16 TCP_genParams 21-17 TCP_getAprioriEndian 21-18 TCP_getExtEndian 21-19 TCP_getFrameLenErr 21-19 TCP_getIc 21-17 TCP_getIcConfig 21-19 TCP_getInterEndian 21-20 TCP_getInterleaveErr 21-20 TCP_getLastRelLenErr 21-21 TCP_getModeErr 21-21 TCP_getNumIt 21-22 TCP_getOutParmErr 21-22 TCP_getProlLenErr 21-22 TCP_getRateErr 21-23 TCP_getRelLenErr 21-23 TCP_getSubFrameErr 21-23 TCP_getSysParEndian 21-24 TCP_icConfig 21-24 TCP_icConfigArgs 21-25 TCP_interleaveExt 21-26 TCP_makeTailArgs 21-27 TCP_normalCeil 21-28 TCP_pause 21-28 TCP_setAprioriEndian 21-29 TCP_setExtEndian 21-30 TCP_setInterEndian 21-30 TCP_setNativeEndian 21-31 TCP_setPacked32Endian 21-31 TCP_setParams 21-31 TCP_setSysParEndian 21-32 TCP_start 21-33 TCP_statError 21-33 TCP_statPause 21-33 TCP_statRun 21-34 TCP_statWaitApriori 21-34 Index-10
TCP_statWaitExt 21-34 TCP_statWaitHardDec 21-35 TCP_statWaitIc 21-35 TCP_statWaitInter 21-35 TCP_statWaitOutParm 21-36 TCP_statWaitSysPar 21-36 TCP_tailConfig 21-37 TCP_tailConfig3GPP 21-38 TCP_tailConfigIs2000 21-39 TCP_unpause 21-40 TCP module 21-1 API table 21-2 configuration structures 21-8 introduction 21-2 macros 21-6 module introduction, using a TCP device 21-5 TCP functions 21-13 TCP_BaseParams 21-8 TCP_ConfigIc 21-9 TCP_Params 21-10 timer, defined D-9 TIMER configuration structure, TIMER_Config 22-6 TIMER functions TIMER_close 22-7 TIMER_config 22-7 TIMER_configArgs 22-8 TIMER_getConfig 22-11 TIMER_getCount 22-11 TIMER_getDatIn 22-12 TIMER_getEventId 22-12 TIMER_getPeriod 22-12 TIMER_getTstat 22-13 TIMER_open 22-9 TIMER_pause 22-9 TIMER_reset 22-10 TIMER_resetAll 22-13 TIMER_resume 22-10 TIMER_setCount 22-13 TIMER_setDataOut 22-14 TIMER_setPeriod 22-14 TIMER_start 22-10 TIMER module 22-1 API table 22-2 configuration structure 22-2, 22-6 defined D-9 functions 22-7 introduction 22-2
Index
macros 22-4 module introduction, using a TIMER device 22-3 TIMER_Config 22-6
U
UTOP_Config 23-6 UTOPIA configuration structure, UTOPIA_Config 23-6 UTOPIA functions UTOP_config 23-7 UTOP_configArgs 23-7 UTOP_enableRcv 23-8 UTOP_enableXmt 23-8 UTOP_errClear 23-8 UTOP_errDisable 23-9 UTOP_errEnable 23-9 UTOP_errReset 23-10 UTOP_errTest 23-10 UTOP_getConfig 23-11 UTOP_getEventId 23-11 UTOP_getRcvAddr 23-11 UTOP_getXmtAddr 23-12 UTOP_intClear 23-12 UTOP_intDisable 23-12 UTOP_intEnable 23-13 UTOP_intReset 23-13 UTOP_intTest 23-14 UTOP_read 23-14 UTOP_write 23-15 UTOPIA module 23-1 API table 23-2 configuration structure 23-2, 23-6 functions 23-7 macros 23-4 module introduction 23-2
V
VCP, defined D-9 VCP configuration structures VCP_BaseParams 24-7 VCP_ConfigIc 24-8 VCP_Params 24-9 VCP_statRun 24-23 VCP functions VCP_ceil 24-11
VCP_errTest 24-12 VCP_genIc 24-12 VCP_genParams 24-13 VCP_getBmEndian 24-14 VCP_getIcConfig 24-14 VCP_getMaxSm 24-15 VCP_getMinSm 24-15 VCP_getNumInFifo 24-15 VCP_getNumOutFifo 24-16 VCP_getSdEndian 24-16 VCP_getYamBit 24-16 VCP_icConfig 24-17 VCP_icConfigArgs 24-18 VCP_normalCeil 24-18 VCP_pause 24-19 VCP_reset 24-19 VCP_setBmEndian 24-20 VCP_setNativeEndian 24-20 VCP_setPacked32Endian 24-21 VCP_setSdEndian 24-21 VCP_start 24-21 VCP_statError 24-22 VCP_statInFifo 24-22 VCP_statOutFifo 24-22 VCP_statPause 24-23 VCP_statSymProc 24-23 VCP_statWaitIc 24-24 VCP_stop 24-24 VCP_unpause 24-25 VCP module 24-1 API table 24-2 configuration structure 24-7 configuration structures 24-2 functions 24-11 introduction 24-2 macros 24-5 module introduction, using the VCP 24-4 VCP_BaseParams 24-7 VCP_ConfigIc 24-8 VCP_Params 24-9 VIC, defined D-9 VIC functions VIC_getClkDivider 25-5 VIC_getGo 25-4 VIC_getInputBits 25-5 VIC_getPrecision 25-4 VIC_setClkDivider 25-7 VIC_setGo 25-6 VIC_setInputBits 25-7 VIC_setPrecision 25-6 Index-11
Index
VIC module 25-1 Functions 25-2 Macros 25-3 Overview 25-2 video port, operating mode selection B-416 VP, defined D-9 VP functions 26-9 VP module 26-1 configuration structures functions 26-2 macros 26-2 overview 26-2
W
word, defined D-9
X
XBUS module, defined D-9 XBUS module 27-1 APIs 27-2 configuration structure 27-2 functions 27-5 macros 27-2 overview 27-2
Index-12