CS4953xx 32-bit Audio DSP Family CS4953xx H ardwa re Us er ’s Manual Preliminary Product Information This document contains information for a new product. Cirrus Logic reserves the right to modify this product without notice. Copyright 2010 Cirrus Logic, Inc. http://www.cirrus.com FEB ’10 DS732UM10 CS4953xx Hardware User’s Manual Contacting Cirrus Logic Support For all product questions and inquiries contact a Cirrus Logic Sales Representative. To find the one nearest to you go to www.cirrus.com IMPORTANT NOTICE “Preliminary” product information describes products that are in production, but for which full characterization data is not yet available. Cirrus Logic, Inc. and its subsidiaries (“Cirrus”) believe that the information contained in this document is accurate and reliable. However, the information is subject to change without notice and is provided “AS IS” without warranty of any kind (express or implied). Customers are advised to obtain the latest version of relevant information to verify, before placing orders, that information being relied on is current and complete. All products are sold subject to the terms and conditions of sale supplied at the time of order acknowledgment, including those pertaining to warranty, indemnification, and limitation of liability. No responsibility is assumed by Cirrus for the use of this information, including use of this information as the basis for manufacture or sale of any items, or for infringement of patents or other rights of third parties. This document is the property of Cirrus and by furnishing this information, Cirrus grants no license, express or implied under any patents, mask work rights, copyrights, trademarks, trade secrets or other intellectual property rights. Cirrus owns the copyrights associated with the information contained herein and gives consent for copies to be made of the information only for use within your organization with respect to Cirrus integrated circuits or other products of Cirrus. This consent does not extend to other copying such as copying for general distribution, advertising or promotional purposes, or for creating any work for resale. CERTAIN APPLICATIONS USING SEMICONDUCTOR PRODUCTS MAY INVOLVE POTENTIAL RISKS OF DEATH, PERSONAL INJURY, OR SEVERE PROPERTY OR ENVIRONMENTAL DAMAGE (“CRITICAL APPLICATIONS”). CIRRUS PRODUCTS ARE NOT DESIGNED, AUTHORIZED OR WARRANTED FOR USE IN PRODUCTS SURGICALLY IMPLANTED INTO THE BODY, AUTOMOTIVE SAFETY OR SECURITY DEVICES, LIFE SUPPORT PRODUCTS OR OTHER CRITICAL APPLICATIONS. INCLUSION OF CIRRUS PRODUCTS IN SUCH APPLICATIONS IS UNDERSTOOD TO BE FULLY AT THE CUSTOMER'S RISK AND CIRRUS DISCLAIMS AND MAKES NO WARRANTY, EXPRESS, STATUTORY OR IMPLIED, INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR PARTICULAR PURPOSE, WITH REGARD TO ANY CIRRUS PRODUCT THAT IS USED IN SUCH A MANNER. IF THE CUSTOMER OR CUSTOMER'S CUSTOMER USES OR PERMITS THE USE OF CIRRUS PRODUCTS IN CRITICAL APPLICATIONS, CUSTOMER AGREES, BY SUCH USE, TO FULLY INDEMNIFY CIRRUS, ITS OFFICERS, DIRECTORS, EMPLOYEES, DISTRIBUTORS AND OTHER AGENTS FROM ANY AND ALL LIABILITY, INCLUDING ATTORNEYS' FEES AND COSTS, THAT MAY RESULT FROM OR ARISE IN CONNECTION WITH THESE USES. Cirrus Logic, Cirrus, the Cirrus Logic logo designs, DSP Composer, Cirrus Extra Surround, Cirrus Original Multichannel Surround, and Cirrus Original Surround are trademarks of Cirrus Logic, Inc. All other brand and product names in this document may be trademarks or service marks of their respective owners. Dolby, Dolby Digital, Dolby Headphone, Dolby Virtual Speaker, AC-3, and Pro Logic are registered trademarks of Dolby Laboratories, Inc. AAC, Dolby Headphone2, Dolby Virtual Speaker2, and Dolby Digital Surround EX are trademarks of Dolby Laboratories, Inc. Supply of an implementation of Dolby technology does not convey a license nor imply a right under any patent, or any other industrial or intellectual property right of Dolby Laboratories, to use the implementation in any finished end-user or ready-to-use final product. It is hereby notified that a license for such use is required from Dolby Laboratories. DTS and DTS Digital Surround are registered trademarks of the Digital Theater Systems, Inc. DTS-ES, DTS-ES 96/24, DTS Neo:6, DTS 96/24 are trademarks of the Digital Theater Systems, Inc. It is hereby notified that a third-party license from DTS is necessary to distribute software of DTS in any finished end-user or ready-to-use final product. THX® is a registered trademark of THX Ltd. THx Ultra2 and THx Select2 are trademarks of THx Ltd. Re-equalization is a trademark of Lucasfilm, Ltd. SRS, Circle Surround, and Trusurround XT are registered trademarks of SRS Labs, Inc. Circle Surround II is a trademark of SRS Labs, Inc. The Circle Surround technology rights incorporated in the Cirrus Logic chip are owned by SRS Labs, Inc. and by Valence Technology, Ltd., and licensed to Cirrus Logic, Inc. Users of any Cirrus Logic chip containing enabled Circle Surround® technology (i.e., Circle Surround® licensees) must first sign a license to purchase production quantities for consumer electronics applications which may be granted upon submission of a preproduction sample to, and the satisfactory passing of performance verification tests performed by SRS Labs, Inc., or Valence Technology, Ltd. E-mail requests for performance specifications and testing rate schedule may be made to [email protected]. SRS Labs, Inc. and Valence Technology, Ltd., reserve the right to decline a use license for any submission that does not pass performance specifications or is not in the consumer electronics classification. All equipment manufactured using any Cirrus Logic chip containing enabled Circle Surround® technology must carry the Circle Surround® logo on the front panel in a manner approved in writing by SRS Labs, Inc., or Valence Technology, Ltd. If the Circle Surround logo is printed in user manuals, service manuals, or advertisements, it must appear in a form approved in writing by SRS Labs, Inc. or Valence Technology, Ltd. The rear panel of products containing Circle Surround technology and user manuals, service manuals, and advertising for those products must all carry the legends as described in Licensor’s most current version of the Circle Surround Trademark Usage Manual. Intel is a registered trademark of Intel Corporation. Motorola and SPI are trademarks or registered trademarks of Motorola, Inc. I2C is a trademark of Philips Semiconductor Corp. Philips is a registered trademark of Koninklijke Philips Electronics N.V. Corp. Sony and Direct Stream Digital are registered trademark of Sony Kabushiki Kaisha T.A. Sony Corporation. DS732UM10 Copyright 2010 Cirrus Logic, Inc. ii Contents CS4953xx Hardware User’s Manual Contents Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii Chapter 1. Introduction ......................................................................................... 1-1 1.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-1 1.1.1 Chip Features .................................................................................................................1-1 1.2 Functional Overview of the CS4953xx Chip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-3 1.2.1 DSP Core .......................................................................................................................1-3 1.2.2 Security Extension module .............................................................................................1-3 1.2.3 Debug Controller (DBC) .................................................................................................1-3 1.2.4 Digital Audio Output (DAO1, DAO2) Controller ..............................................................1-3 1.2.5 Digital Audio Input (DAI1) Controller ..............................................................................1-3 1.2.6 Compressed Data Input / Digital Audio Input (DAI2) Controller .....................................1-4 1.2.7 Direct Stream Digital® (DSD) Controller .........................................................................1-4 1.2.8 General Purpose I/O.......................................................................................................1-4 1.2.9 Parallel Control Port (Motorola® /Intel® Standards) (Optional Feature) .........................1-4 1.2.10 Serial Control Ports (SPI™ or I2C™ Standards)............................................................1-4 1.2.11 SDRAM Controller ........................................................................................................1-5 1.2.12 Flash Controller ............................................................................................................1-5 1.2.13 DMA Controller .............................................................................................................1-5 1.2.14 Timers...........................................................................................................................1-5 1.2.15 Clock Manager and PLL ...............................................................................................1-6 1.2.16 Programmable Interrupt Controller ...............................................................................1-6 Chapter 2. Operational Modes.............................................................................. 2-1 2.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-1 2.2 Operational Mode Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-3 2.3 Slave Boot Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-4 2.3.1 Host Controlled Master Boot ..........................................................................................2-4 2.3.1.1 Performing a Host Controlled Master Boot (HCMB) ......................................2-5 2.3.2 Slave Boot ......................................................................................................................2-7 2.3.2.1 Performing a Slave Boot................................................................................2-8 2.3.3 Boot Messages.............................................................................................................2-10 2.3.3.1 Slave Boot ..................................................................................................2-10 2.3.3.2 Host-Controlled Master Boot from Parallel ROMthe....................................2-10 2.3.3.3 Host-Controlled Master Boot from I2C ROM................................................2-11 2.3.3.4 Host-Controlled Master Boot from SPI ROM ...............................................2-11 2.3.3.5 Soft Reset ...................................................................................................2-12 2.3.3.6 Messages Read from CS4953xx .................................................................2-12 2.4 Master Boot Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-13 2.5 Softboot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-14 2.5.1 Softboot Messaging......................................................................................................2-14 2.5.2 Softboot Procedure.......................................................................................................2-15 2.5.2.1 Softboot Procedure......................................................................................2-15 2.5.2.2 Softboot Example ........................................................................................2-16 2.5.2.3 Softboot Example Steps ..............................................................................2-17 Chapter 3. Serial Control Port .............................................................................. 3-1 3.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-1 DS732UM10 Copyright 2010 Cirrus Logic, Inc. iii Contents CS4953xx Hardware User’s Manual 3.2 Serial Control Port Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-1 3.3 I2C Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-2 3.3.1 I2C System Bus Description ...........................................................................................3-2 3.3.2 I2C Bus Dynamics ..........................................................................................................3-4 3.3.3 I2C Messaging ................................................................................................................3-7 3.3.3.1 SCP1_BSY Behavior .....................................................................................3-7 3.3.3.2 Performing a Serial I2C Write ........................................................................3-8 3.3.3.3 I2C Write Protocol ..........................................................................................3-9 3.3.3.4 Performing a Serial I2C Read ........................................................................3-9 3.3.3.5 I2C Read Procedure ....................................................................................3-11 3.3.3.6 SCP1_IRQ Behavior ....................................................................................3-13 3.4 SPI Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-13 3.4.1 SPI System Bus Description.........................................................................................3-15 3.4.2 SPI Bus Dynamics........................................................................................................3-15 3.4.2.1 SCP1_BSY Behavior ...................................................................................3-16 3.4.3 SPI Messaging .............................................................................................................3-16 3.4.3.1 Performing a Serial SPI Write......................................................................3-17 3.4.3.2 SPI Write Protocol .......................................................................................3-17 3.4.3.3 Performing a Serial SPI Read......................................................................3-18 3.4.3.4 SPI Read Protocol .......................................................................................3-19 3.4.3.5 SCP1_IRQ Behavior ....................................................................................3-21 Chapter 4. Parallel Control Port ........................................................................... 4-1 4.1 Parallel Control Availability. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-1 Chapter 5. Digital Audio Input Interface .............................................................. 5-1 5.1 Digital Audio Input Port Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-1 5.1.1 DAI Pin Description ........................................................................................................5-1 5.1.2 Supported DAI Functional Blocks...................................................................................5-2 5.1.3 BDI Port ..........................................................................................................................5-3 5.1.4 Digital Audio Formats .....................................................................................................5-4 5.1.4.1 I2S Format .....................................................................................................5-4 5.1.4.2 Left-Justified Format ......................................................................................5-5 5.2 DAI Hardware Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-5 5.2.1 DAI Hardware Naming Convention ................................................................................5-5 Chapter 6. Direct Stream Data (DSD) Input Interface ......................................... 6-1 6.1 Description of Digital Audio Input Port when Configured for DSD Input . . . . . . . . . . . . . . .6-1 6.1.1 DSD Pin Description.......................................................................................................6-1 6.1.2 Supported DSD Functional Blocks .................................................................................6-1 Chapter 7. Digital Audio Output Interface ........................................................... 7-1 7.1 Digital Audio Output Port Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7-1 7.1.1 DAO Pin Description.......................................................................................................7-1 7.1.2 Supported DAO Functional Blocks .................................................................................7-3 7.1.3 DAO Interface Formats...................................................................................................7-3 7.1.3.1 I2S Format .....................................................................................................7-3 7.1.3.2 Left-Justified Format ......................................................................................7-3 7.1.3.3 One-line Data Mode Format (Multichannel)...................................................7-4 7.1.4 DAO Hardware Configuration.........................................................................................7-4 7.1.5 S/PDIF Transmitter.......................................................................................................7-11 iv Copyright 2010 Cirrus Logic, Inc. DS732UM10 Figures CS4953xx Hardware User’s Manual Chapter 8. External Memory Interfaces ............................................................... 8-1 8.1 SDRAM Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-1 8.2 Flash Memory Controller. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-2 8.2.1 Flash Controller Interface ...............................................................................................8-2 8.3 SDRAM/Flash Controller Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-2 8.3.1 SDRAM/Flash Interface Signals .....................................................................................8-2 8.3.2 Configuring SDRAM/Flash Parameters..........................................................................8-4 Chapter 9. System Integration.............................................................................. 9-1 9.1 Typical Connection Diagrams. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9-1 9.2 Pin Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9-10 9.2.1 Power and Ground .......................................................................................................9-10 9.2.1.1 Power...........................................................................................................9-10 9.2.1.2 Ground.........................................................................................................9-10 9.2.1.3 Decoupling...................................................................................................9-11 9.2.2 PLL Filter ......................................................................................................................9-11 9.2.2.1 Analog Power Conditioning .........................................................................9-11 9.2.3 PLL ...............................................................................................................................9-12 9.3 Clocking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9-12 9.4 Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9-13 9.4.1 Operational Mode .........................................................................................................9-13 9.5 144-Pin LQFP Pin Assigments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9-15 9.6 128-Pin LQFP Pin Assigments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9-16 9.7 Pin Assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9-17 Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9-29 Figures Figure 1-1. CS4953xx Chip Functional Block Diagram .................................................................................1-2 Figure 2-1. Operation Mode Block Diagrams ................................................................................................2-2 Figure 2-2. Host Controlled Master Boot .......................................................................................................2-5 Figure 2-3. Slave Boot Sequence .................................................................................................................2-8 Figure 2-4. Master Boot Sequence Flowchart.............................................................................................2-13 Figure 2-5. Soft Boot Sequence Flowchart .................................................................................................2-15 Figure 2-6. Soft Boot Example Flowchart....................................................................................................2-16 Figure 3-1. Serial Control Port Internal Block Diagram .................................................................................3-2 Figure 3-2. Block Diagram of I2C System Bus ..............................................................................................3-3 Figure 3-3. I2C Start and Stop Conditions .....................................................................................................3-4 Figure 3-4. I2C Address with ACK and NACK...............................................................................................3-5 Figure 3-5. Data Byte with ACK and NACK ..................................................................................................3-6 Figure 3-6. Repeated Start Condition with ACK and NACK ..........................................................................3-6 Figure 3-7. Stop Condition with ACK and NACK...........................................................................................3-7 DS732UM10 Copyright 2010 Cirrus Logic, Inc. v Figures CS4953xx Hardware User’s Manual Figure 3-8. I2C Write Flow Diagram ..............................................................................................................3-8 Figure 3-9. I2C Read Flow Diagram ............................................................................................................3-10 Figure 3-10. Sample Waveform for I2C Write Functional TIming ................................................................3-12 Figure 3-11. Sample Waveform for I2C Read Functional TIming ................................................................3-12 Figure 3-12. SPI Serial Control Port Internal Block Diagram ......................................................................3-13 Figure 3-13. Block Diagram of SPI System Bus..........................................................................................3-15 Figure 3-14. Address and Data Bytes .........................................................................................................3-16 Figure 3-15. SPI Write Flow Diagram..........................................................................................................3-17 Figure 3-16. SPI Read Flow Diagram .........................................................................................................3-18 Figure 3-17. Sample Waveform for SPI Write Functional Timing................................................................3-20 Figure 3-18. Sample Waveform for SPI Read Functional Timing ...............................................................3-20 Figure 5-1. DAI Port Block Diagram ..............................................................................................................5-3 Figure 5-2. I2S format (Rising Edge Valid SCLK)..........................................................................................5-4 Figure 5-3. Left-justified Format (Rising Edge Valid SCLK) ..........................................................................5-5 Figure 6-1. DSD Port Block Diagram ............................................................................................................6-2 Figure 7-1. DAO Block Diagram ....................................................................................................................7-2 Figure 7-2. I2S Compatible Serial Audio Formats (Rising Edge Valid) .........................................................7-3 Figure 7-3. Left-justified Digital Audio Formats (Rising Edge Valid DAO_SCLK) .........................................7-3 Figure 7-4. One-line Data Mode Digital Audio Formats ................................................................................7-4 Figure 8-1. SDRAM Interface Block Diagram................................................................................................8-1 Figure 9-1. LQFP-144, I2C Control, Serial FLASH, SDRAM, 7 DACs ..........................................................9-2 Figure 9-2. LQFP-144, SPI Control, Serial FLASH, SDRAM, 7 DACs ..........................................................9-3 Figure 9-3. LQFP-144, SPI Control, Serial FLASH, SDRAM, 8 DACs ..........................................................9-4 Figure 9-4. LQFP-144, I2C Control, Parallel Flash, SDRAM, 8 DACs ..........................................................9-5 Figure 9-5. LQFP-128, SPI Control, Parallel Flash, SDRAM, 8 DACs ..........................................................9-6 Figure 9-6. LQFP-128, I2C Control, Serial FLASH, DSD Audio Input, SDRAM, 7 DACs..............................9-7 Figure 9-7. LQFP-144, SPI Control, Serial FLASH, DSD Audio Input, SDRAM, 7 DACs .............................9-8 Figure 9-8. LQFP-144, SPI Control, Serial FLASH, DSD Audio Input, SDRAM, 7 DACs .............................9-9 Figure 9-9. PLL Filter Topology ...................................................................................................................9-12 Figure 9-10. Crystal Oscillator Circuit Diagram ...........................................................................................9-13 Figure 9-11. 144-Pin LQFP Pin Layout .......................................................................................................9-15 Figure 9-12. 128-Pin LQFP Pin Layout .......................................................................................................9-16 vi Copyright 2010 Cirrus Logic, Inc. DS732UM10 Tables CS4953xx Hardware User’s Manual Tables Table 2-1. Operation Modes..........................................................................................................................2-3 Table 2-2. SLAVE_BOOT message for CS4953xx .....................................................................................2-10 Table 2-3. HCMB_PARALLEL Message for CS4953xx ..............................................................................2-10 Table 2-4. HCMB_I2C message for the CS4953xx.....................................................................................2-11 Table 2-5. HCMB_SPI message for CS4953xx ..........................................................................................2-11 Table 2-6. GPIO Pins Available as EE_CS in HCMB..................................................................................2-12 Table 2-7. SOFT_RESET message for CS4953xx .....................................................................................2-12 Table 2-8. Boot Read Messages from CS4953xx .......................................................................................2-12 Table 2-9. Boot Command Messages for CS4953xx ..................................................................................2-13 Table 2-10. SOFTBOOT Message..............................................................................................................2-14 Table 2-11. SOFTBOOT_ACK Message ....................................................................................................2-14 Table 3-1. Serial Control Port 1 I2C Signals..................................................................................................3-3 Table 3-2. Serial Control Port SPI Signals ..................................................................................................3-14 Table 5-1. Digital Audio Input Port ................................................................................................................5-1 Table 5-2. Bursty Data Input (BDI) Pins ........................................................................................................5-4 Table 5-3. Input Data Format Configuration (Input Parameter A) .................................................................5-6 Table 5-4. Input SCLK Polarity Configuration (Input Parameter B)...............................................................5-7 Table 5-5. Input LRCLK Polarity Configuration (Input Parameter C) ............................................................5-8 Table 5-6. Input DAI Mode Configuration (Input Parameter D) .....................................................................5-8 Table 6-1. DSDl Audio Input Port ..................................................................................................................6-1 Table 7-1. Digital Audio Output (DAO1 & DAO2) Pins..................................................................................7-1 Table 7-2. Output Clock Mode Configuration (Parameter A) ........................................................................7-5 Table 7-3. DAO1 & DAO2 Clocking Relationship Configuration (Parameter B)............................................7-5 Table 7-4. Output DAO_SCLK/LRCLK Configuration (Parameter C) ...........................................................7-6 Table 7-5. Output Data Format Configuration (Parameter D) .......................................................................7-9 Table 7-6. Output DAO_LRCLK Polarity Configuration (Parameter E) .......................................................7-10 Table 7-7. Output DAO_SCLK Polarity Configuration (Parameter F) .........................................................7-10 Table 7-8. Output Channel Configuration (Parameter G)............................................................................7-11 Table 7-9. S/PDIF Transmitter Pins ............................................................................................................7-11 Table 7-10. S/PDIF Transmitter Configuration ............................................................................................7-12 Table 7-11. DSP Bypass Configuration.......................................................................................................7-12 Table 8-1. SDRAM Interface Signals ............................................................................................................8-2 Table 8-2. SDRAM/Flash Controller Parameters ..........................................................................................8-5 Table 9-1. Core Supply Pins .......................................................................................................................9-10 Table 9-2. I/O Supply Pins ..........................................................................................................................9-10 Table 9-3. Core and I/O Ground Pins..........................................................................................................9-11 DS732UM10 Copyright 2010 Cirrus Logic, Inc. vii CS4953xx Hardware User’s Manual Table 9-4. PLL Supply Pins.........................................................................................................................9-11 Table 9-5. PLL Filter Pins............................................................................................................................9-12 Table 9-6. Reference PLL Component Values............................................................................................9-12 Table 9-7. DSP Core Clock Pins .................................................................................................................9-13 Table 9-8. Reset Pin....................................................................................................................................9-14 Table 9-9. Hardware Strap Pins ..................................................................................................................9-14 Table 9-10. Pin Assignments ......................................................................................................................9-17 viii Copyright 2010 Cirrus Logic, Inc. DS732UM10 Overview CS4953xx Hardware User’s Manual Chapter 1 Introduction 1.1 Overview The CS4953xx is a programmable audio DSP that combines a programmable, 32-bit fixed-point general purpose DSP with dedicated audio peripherals. Its audio-centric interfaces facilitate the coding of highprecision audio applications and provide a seamless connection to external audio peripheral ICs. The CS4953xx is a 32-bit RAM-based processor that provides up to 150 MIPS of processing power and includes all standard codes in ROM. It has been designed with a generous amount of on-chip program and data RAM, and has all necessary peripherals required to support the latest standards in consumer entertainment products. In addition, external SDRAM and Flash memory interfaces can be used to expand the data memory. This device is suitable for a variety of high-performance audio applications. These include: • Audio/Video Receivers • DVD Receivers • Stereo TVs • Mini Systems • Shelf Systems • Digital Speakers • Car Audio Head Units and Amplifiers • Set-top Boxes 1.1.1 Chip Features The CS4953xx includes the following features: 1-1 • Various Decoding/processing Standards • Customer Software Security Keys • 12-channel Serial Audio Inputs • 16-channel PCM Output • Dual 32-bit Audio DSP with Dual MAC • Dual S/PDIF Transmitters • Large On-chip X,Y, and Program RAM • Two Serial Control Ports Using SPI™ or I2C™ Standards • Supports SDRAM & Flash Memories • Digital Audio Input (DAI) Port for Audio Data Delivery in I2S or LJ Format • Parallel Control Using Motorola® or Intel® Communication Standards • GPIO Support for All Common Sub-circuits Copyright 2010 Cirrus Logic, Inc. DS732UM10 Overview CS4953xx Hardware User’s Manual Figure 1-1 illustrates the functional block diagram for the CS4953xx chip. DSPB DSPA Arbiter SRAM / FLASH Controller CS4953xx Debug Controller Peripheral Bus Controller Stereo Audio Input/DSD DAI Controller Stereo Audio Input/DSD Stereo Audio Input/DSD X Stereo Audio Input/DSD SRAM Ext (64 bit) ROM Y ROM SRAM Memory Controller Arbiter SRAM Security P Y ROM 32-bit Dual Datapath DSP with 72-bit Accumulators Decryptor P Stereo Audio Input / Bursty Data Input/DSD Stereo Audio Output DAO1 64 bit X DAI2 DAI Controller Log/Exp SDRAM Controller Stereo Audio Input/DSD DAI1 DAO Controller Stereo Audio Output Stereo Audio Output Stereo Audio Output or SPDIF Transmitter Stereo Audio Output DAO2 DAO Controller Stereo Audio Output Stereo Audio Output Stereo Audio Output or SPDIF Transmitter Programmable Interrupt Controller Parallel Control Port Serial Control Port DMA Controller with 11 Stereo Channels DMA Bus Timers GPIOs Peripheral Bus Clock Manager and PLL Figure 1-1. CS4953xx Chip Functional Block Diagram See AN288, “CS4953xx/CS497xxx for a list of audio decoding/processing algorithms that are supported by the CS4953xx: These firmwware modules and their associated application notes are available through the Cirrus Logic Software Licensing Program. . The CS4953xx contains sufficient on-chip memory to support decoding of all major audio decoding algorithms available today. The CS4953xx supports a glueless SDRAM/Flash interface for increased allchannel delays. The memory interface also supports connection to an external 8- or 16-bit-wide EPROM or Flash memory for code storage, thus allowing products to be field upgraded as new audio algorithms are developed. This chip, teamed with the Cirrus certified decoder library, Cirrus digital interface products, and mixedsignal data converters, enables the design of next-generation digital entertainment products. DS732UM10 Copyright 2010 Cirrus Logic, Inc 1-2 Functional Overview of the CS4953xx Chip CS4953xx Hardware User’s Manual 1.2 Functional Overview of the CS4953xx Chip The CS4953xx chip supports a maximum clock speed of 150 MHz in a 144-pin LQFP or 128-pin LQFP package. A high-level functional description of the CS4953xx chip is provided in this section. 1.2.1 DSP Core The CS4953xx DSP core is a pair of general purpose, 32-bit, fixed-point, fully programmable digital signal processors that achieve high performance through an efficient instruction set and highly parallel architecture. The device uses two’s complement fractional number representation, and employs busses for two data memory spaces and one program memory space. CS4953xx core enhancements include portability of the design, speed improvement, and improvements for synthesis, verification, and testability. Each member of the CS4953xx family has different SRAM and ROM sizes. Please refer to the CS4953xx data sheet for details. 1.2.2 Security Extension module This module is a 64-bit extension module that allows the CS4953xx device to be placed in a secure mode where decryption is activated via a 128-bit key. This key is written to the security extension in two 64-bit move instructions. Secure mode is disabled by default, and must be explicitly enabled. 1.2.3 Debug Controller (DBC) An I2C slave debug controller (DBC) is integrated within the CS4953xx DSP core. Two pins are reserved for connecting a PC host to the debug ports on either DSP. The debug port consists of two modules, an I2C slave and a debug master. The DBC master sends dedicated signals into the DSP core to initiate debug actions and it receives acknowledge signals from the core to indicate the requested action has been taken. Basically, this interface allows the DBC to insert instructions into the pipeline. The core will acknowledge the action when it determines the pipeline is in the appropriate state for the inserted action to be taken. 1.2.4 Digital Audio Output (DAO1, DAO2) Controller The CS4953xx has two Digital Audio Output (DAO) controllers, each of which contains 4 stereo output ports. One port on each DAO can be used as a S/PDIF transmitter. The DAO ports can transmit up to 16 channels of audio sample data in I2S-compatible format. The audio samples are stored in 16 channel buffers which are 32 bits wide. Four of the channels can also serve as output buffers for the two S/PDIF transmitters. The O/S can dedicate DMA channels to fill the DAO data buffers from memory. DAO control is handled through the peripheral bus. 1.2.5 Digital Audio Input (DAI1) Controller The CS4953xx Digital Audio Input (DAI) controller has four stereo input ports and DAI control is handled through the peripheral bus. Each DAI pin can be configured to load audio samples in a variety of formats. In addition to accepting multiple formats, the DAI controller has the ability to accept multiple stereo channels on a single DAI1_DATAx pin. All four DAI pins are slaves and normally share the same serial input clock pins (DAI1_SCLK and DAI1_LRCLK). Pins DAI1_DATA[3:0] may also be reconfigured to use the DAO serial input clock pins (DAOx_SCLK and DAOx_LRCLK). A single global configuration register provides a set of enable bits to ensure that ports may be started synchronously. 1-3 Copyright 2010 Cirrus Logic, Inc. DS732UM10 Functional Overview of the CS4953xx Chip CS4953xx Hardware User’s Manual 1.2.6 Compressed Data Input / Digital Audio Input (DAI2) Controller The DAI2 controller has one input port and its own SCLK and LRCLK and can be used for accepting PCM data in the same way as DAI1, but is used primarily for the delivery of compressed data. When configured for compressed data input, custom internal hardware is enabled that off-loads some pre-processing of the incoming stream to help maximize the MIPS available in the DSP core for user-customized applications. 1.2.7 Direct Stream Digital® (DSD) Controller The CS4953xx also has a DSD controller which allows the DSP to be integrated into a system that supports SACD audio. The DSD controller pins are shared with the DAI1 and DAI2 ports. The DSD port consists of a bit clock (DSD_CLK) and six DSD data inputs (DSD[5:0]). 1.2.8 General Purpose I/O A 32-bit general-purpose I/O (GPIO) port is provided on the CS4953xx chip to enhance system flexibility. Many of the functional pins can be used for either GPIO or peripherals. Each GPIO pin can be individually configured as an output, an input, or an input with interrupt. A GPIO interrupt can be triggered on a rising edge (0-to-1 transition), falling edge (1-to-0 transition), or logic level (either 0 or 1). Each pin configured as an input with interrupt can be assigned its own interrupt trigger condition. All GPIOs share a common interrupt vector. 1.2.9 Parallel Control Port (Motorola®/Intel® Standards) (Optional Feature) The CS4953xx parallel control port allows an external device such as a microcontroller to communicate with the CS4953xx chip using either a Motorola®-type or Intel®-type parallel communication standard. Only one of the two communication modes can be selected at a time. For external device-control purposes, the CS4953xx is in slave mode for all communication protocols, although it can request the external device to perform a read. The parallel control port supports direct memory access (DMA) and can be used simultaneously with the CS4953xx serial control port. The parallel control port communication mode selection occurs as the CS4953xx exits a reset condition. The rising edge of the RESET pin samples the HS[4:0] pins to determine the communication mode and boot style. Configuration of the three address input pins A[2:0] allows one of the parallel configuration registers to be selected and accessed. 1.2.10 Serial Control Ports (SPI™ or I2C™ Standards) The CS4953xx has two serial control ports (SCP) that support SPI™ and I2C™ Master/Slave communication modes. The serial control port allows external devices such as microcontrollers to communicate with the CS4953xx chip through either I2C or SPI serial communication standards and can be configured as either a master or a slave. The CS4953xx SPI and I2C serial communication modes are identical from a functional standpoint. The main difference between the two is the protocol being implemented between the CS4953xx and the external device. In addition, the I2C slave has a true I2C mode that utilizes data flow mechanisms inherent to the I2C protocol. If this mode is enabled, the I2C slave will hold SCP1_CLK low to delay a transfer as needed. By default, SCP1 is configured as a slave for external device-controlled data transfers. As a slave, it cannot drive the clock signal nor initiate data transfers. DS732UM10 Copyright 2010 Cirrus Logic, Inc 1-4 Functional Overview of the CS4953xx Chip CS4953xx Hardware User’s Manual By default, SCP2 is configured as a master to access a serial FLASH/EEPROM for either booting the DSP or retrieving configuration information. As a master, it can drive the clock signal at up to 1/2 of the DSP’s core clock speed. The CS4953xx has two additional serial communication pins not specified in either the I2C or SPI specification. The port uses the SCP1_IRQ pin to indicate that a read message is ready for the host. The port uses the SCP1_BSY pin to warn the host to pause communication. A serial control port can be operated simultaneously with the CS4953xx parallel control port. 1.2.11 SDRAM Controller The CS4953xx supports a glueless external SDRAM interface to extend the data memory of the DSP during runtime. The SDRAM controller provides 2-port access to X and Y memory space, a quad-word read buffer, and a double-buffered quad-word write buffer. One SDRAM controller port is dedicated to P memory space and the second port is shared by X and Y memories. The X/Y port has dual write buffers and a single read buffer, and the P memory port has a single read buffer. One of these buffers is four 32bit words (128 bits). Every “miss” to the read buffer will cause the SDRAM controller to burst eight 16-bit reads on the SDRAM interface. The SDRAM controller supports SDRAMs from 2 MB to 64 MB with various row, bank, and column configurations. The SDRAM controller runs synchronous to HCLK, the global chip clock. 1.2.12 Flash Controller The CS4953xx supports a glueless external Flash interface that allows autoboot from a parallel Flash or EEPROM device extending data memory and/or program memory during DSP runtime. Flash can be accessed using 8-bit, 16-bit, and 32-bit data modes (1-byte, 2-byte, and 4-byte words) and using an 8-bit or 16-bit data bus, where the word width is the number of bytes per transfer, and the data bus size is the width of the physical interface to Flash. Separate chip select pins allow Flash devices to be connected without additional chip select logic. Thus, the interface supports up to 512k x 16 bits of Flash. The external Flash interface serially accesses the X, Y, and P memory spaces on the CS4953xx chip. 1.2.13 DMA Controller The DMA controller contains 12 stereo channels. The O/S uses 11 stereo channels, 6 for the DAO (2 are for the S/PDIF transmitters), 4 for the DAI, and one for the parallel control port. The addition of the DMA channel for the parallel control port allows compressed audio data to be input over this port. The DMA block is able to move data to/from X or Y memory, or alternate between both X and Y memory. The DMA controller moves data to/from X and/or Y memory opportunistically (if the core is not currently accessing that particular memory space during the current cycle). The DMA controller has a “Dead Man’s” timer so that if the core is running an inner loop and accessing memory every cycle, the DMA controller can interrupt the core to run a DMA cycle. 1.2.14 Timers A 32-bit timer block runs off the CS4953xx DSP clock. The timer count decrements with each clock tick of the DSP clock when the timer is enabled. When the timer count reaches zero, it is re-initialized, and may be programmed to generate an interrupt to the DSP. 1-5 Copyright 2010 Cirrus Logic, Inc. DS732UM10 Functional Overview of the CS4953xx Chip CS4953xx Hardware User’s Manual 1.2.15 Clock Manager and PLL The CS4953xx Clock Manager and PLL module contains an Analog PLL, RTL Clock Synthesizer, and Clock Manager. The Analog PLL is a customized analog hard macro that contains the Phase Detector (PD), Charge Pump, Loop Filter, VCO, and other non-digital PLL logic. The Clock Synthesizer is a digital design wrapper around the analog PLL that allows clock frequency ranges to be programmed. The Clock Manager is a digital design wrapper for the Clock Synthesizer that provides the logic (control registers) necessary to meet chip clocking requirements. The Clock Manager and PLL module generates two master clocks: • HCLK - global chip clock (clocks the DSP core, internal memories, SDRAM, Flash, and all peripherals) • OVFS - oversampled audio clock. This clock feeds the DAO block which has dividers to generate the DAO_MCLK, DAO_SCLK, and DAO_LRCLK. The Clock Manager has the ability to bypass the PLL so that the HCLK will run directly off the PLL Reference Clock (REFCLK). While operating in this mode, the OVFS clock can still be divided off the VCO so the PLL can be tested. 1.2.16 Programmable Interrupt Controller The Programmable Interrupt Controller (PIC) forces all incoming interrupts to be synchronized to the global clock, HCLK. The PIC provides up to 16 interrupts to the DSP Core. The interrupts are prioritized with interrupt 0 as the highest priority and interrupt 15 as the lowest priority. Each interrupt has a corresponding interrupt address that is also supplied to the DSP core. The interrupt address is the same as the IRQ number (interrupt 0 uses interrupt address 0 and interrupt 15 uses interrupt address 15). Both an enable mask and a run mask are provided for each interrupt. The enable mask allows the enabled interrupts to generate a PIC_REQ signal to the DSP core, and the run mask allows the enabled interrupts to generate a PIC_CLR, thereby bringing the core out of its halt state when it accepts the interrupt. §§1 1. The “§§” symbol is used throughout this manual to indicate the end of the text flow in a chapter. DS732UM10 Copyright 2010 Cirrus Logic, Inc 1-6 Overview CS4953xx Hardware User’s Manual Chapter 2 Operational Modes 2.1 Overview The CS4953xx has several operational modes that can be used to conform to many system configurations. The operational modes for the CS4953xx specify both the communication mode and boot mode. This chapter discusses the selection of operational modes, booting procedures and performing a soft reset. The CS4953xx can be either a slave device or a master device for the boot procedure. In Master Boot Mode, the CS4953xx is the master boot device and can automatically boot the application code from either serial or parallel external ROM (the slave boot device). In Slave Boot Mode, the CS4953xx is the slave boot device and requires the system host controller (the master boot device) to determine how to boot the application code. The system host controller can either load the application code or the host can direct the CS4953xx to boot application code from serial or parallel external ROM. See Figure 2-1 on page 2-2. Thus, there are three boot modes for the CS4953xx: • Master Boot (From serial or parallel external ROM) • Slave Boot (Using SPI, I2C, Intel, Motorola, or Multiplexed Intel protocols.) • Host Controlled Master Boot (serial or parallel external ROM) When the CS4953xx is configured for an operational mode where it is the slave boot device, one of the below communication modes must be specified by the host controller (that is, the master boot device). These communication modes are described in detail in Chapter 3, "", Chapter 3, "Serial Control Port" and Chapter 4, "", Chapter 4, "Parallel Control Port". Please see these chapters for block diagrams and flowcharts depicting each of the CS4963x boot modes. 2-1 Copyright 2010 Cirrus Logic, Inc. DS732UM10 Overview CS4953xx Hardware User’s Manual P a ra lle l M e m o ry B u s / SCP2 C o n tro l B u s S y s te m H o s t C o n tro lle r (M a s te r) E x te rn a l R O M / E x t. S e ria l F la s h C S4953xx (S la v e ) H o s t C o n tro lle d M a s te r B o o t (R e c o m m e n d e d fo r m o s t s y s te m s ) C o n tro l B us S yste m H o st C on tro lle r (M aster) C S 4 9 5 3x x (S lave) S lave B o o t E x te rn a l M e m o ry B u s E x te rn a l R O M (S la v e ) C S4953xx (M a s te r) M a s te r B o o t (N o t c u rre n tly s u p p o rte d b y O /S ) Figure 2-1. Operation Mode Block Diagrams DS732UM10 Copyright 2010 Cirrus Logic, Inc 2-2 Operational Mode Selection CS4953xx Hardware User’s Manual 2.2 Operational Mode Selection The operational mode for the CS4953xx is selected by the values of the HS[4:0] pins on the rising edge of RESET. This value determines the communication mode used until the part is reset again. This value also determines the method for loading application code. The table below shows the different operational modes and the HS[4:0] values for each mode. Table 2-1. Operation Modes HS[4:0] Mode Boot Master Device Boot Slave Device X 0 0 0 0 Master SCP1 I2C CS4953xx I2C External ROM1,8 X 1 0 0 0 Master SCP1 SPI1 CS4953xx SPI (Mode 1) External ROM2, 5, 7, 8 X 0 0 0 1 Master SCP1 SPI2 CS4953xx SPI (Mode 2) External ROM3, 5, 7, 8 X 1 0 0 1 Master SCP1 SPI3 CS4953xx SPI (Mode 3) External ROM4, 5, 7, 8 X 0 0 1 0 Master 8-bit Flash CS4953xx 8-bit External ROM6 X 1 0 1 0 Master 16-bit Flash CS4953xx 16-bit External ROM6 X X 1 0 0 Slave/HCMB SCP1 I2C System Host CS4953xx X X 1 0 1 Slave/HCMB SCP1 SPI System Host CS4953xx X X 1 1 0 Slave/HCMB PCP Intel System Host CS4953xx X X 1 1 1 Slave/HCMB PCP Motorola System Host CS4953xx X X 0 1 1 Slave/HCMB PCP Mux System Host CS4953xx 1. In I2C master mode, the Image Start address (0x0) is sent as a 16-bit value, with the default I2C address of 0x50, I2C clock frequency = Fdclk / 72. 2. SPI master mode 1 is to support the legacy 16-bit SPI EEPROM. The following defaults are used: SPI Command Byte 0x03, Image Start address 0x0 is sent as a 16-bit value, no dummy bytes, SPI clock frequency = Fdclk / 4. 3. In SPI Master mode 2, the following defaults are used: SPI Command Byte 0x68, Image Start address 0x0 is sent as a 24-bit value, 4 dummy bytes sent following the address (and before reading image data), SPI clock frequency = Fdclk / 2. This mode supports the Atmel SPI Flash memory. 4. In SPI Master mode 3, the following defaults are used: SPI command byte 0x03, Image Start address 0x0 is sent as a 24-bit value, no dummy bytes, SPI clock frequency = Fdclk / 2. This mode supports the ST SPI EEPROM devices. 5. For all SPI Master boot modes, by default GPIO20 is used as EE_CS, but the HCMB message can be configured to select an alternate pin for EE_CS. 6. For Flash Master modes, the following defaults are used: clock ratio=1:1, Endian Mode = little-endian, Chip Select polarity = active-low, 0-cycle delay from CS/Address Change to Output Enable, 4-cycle delay from CS to Read Access. 7. Master Boot Modes are currently not supported by the O/S. 8. Fdclk is specified in the CS4953xx data sheet. 2-3 Copyright 2010 Cirrus Logic, Inc. DS732UM10 Slave Boot Procedures CS4953xx Hardware User’s Manual 2.3 Slave Boot Procedures When the CS4953xx is the slave boot device, the system host controller (as the master boot device) must follow an outlined procedure for correctly loading application code. The two methods of slave boot for the CS4953xx, slave boot and host-controlled master boot are described in this section. Each of these methods requires the system host controller to send messages to, and read back messages from, the CS4953xx. These messages have been outlined in Section 2.3.3 "Boot Messages" on page 2-10. The CS4953xx has different .uld files (overlays) for certain processing tasks. Slave booting the CS4953xx requires loading multiple overlays - differing from previous Cirrus Logic Audio DSP families (this is, CS493xx, CS494xxx). Please refer to AN288, “CS4953xx Firmware User’s Manual” regarding more information on the breakdown of processing tasks for each overlay. Pseudocode and flowcharts will be used to describe each of these boot procedures in detail. The flow charts use the following messages: • Write_* – Write to CS4953xx • Read_* – Read from CS4953xx Please note that * above can be replaced by SPI, I2C, Intel®, Multiplexed Intel, or Motorola® depending on the mode of host communication. For each case, the general download algorithm is the same. The system designer should also refer to the control port sections of this document in Chapter 3, "", Chapter 3, "Serial Control Port"and Chapter 4, "", Chapter 4, "Parallel Control Port" for the details of when writing to and reading from the CS4953xx is valid. One feature that is of special note – the entire boot procedure for the CS4953xx can be made of a combination of slave boot and host-controlled master boot procedures. An example can be seen in Figure 2-3 on page 8. After completing the full download to the CS4953xx, a KICK START message is sent to cause the application code begin execution. Please note that it takes time to lock the PLL and initialize the SDRAM interface when initially booting the DSP. Typically this time is less than 200 ms. If a message is sent to the DSP during this time, the SCP1_BSY pin will go low to indicate that the DSP is busy. Any messages sent when the SCP1_BSY pin is LOW will be lost. If the SCP1_BSY pin stays LOW longer than 200 ms the host must reboot the DSP. 2.3.1 Host Controlled Master Boot The Host Controlled Master Boot (HCMB) procedure is a sequence where the system host controller instructs the CS4953xx to boot application code from either the external memory interface (ROM or Flash), or the serial control interface (serial SPI Flash/EEPROM or I2C EEPROM). The system host controller can communicate with the CS4953xx via SPI, I2C, or one of the three parallel formats (Intel, Multiplexed Intel, or Motorola). The external memory start address of the code image, as well as the data rate, are specified by the host by the HCMB_<MODE> message. These messages are defined in Section 2.3.3 "Boot Messages" on page 2-10. DS732UM10 Copyright 2010 Cirrus Logic, Inc 2-4 Slave Boot Procedures CS4953xx Hardware User’s Manual 2.3.1.1 Performing a Host Controlled Master Boot (HCMB) Figure 2-2 shows the steps taken during a Host Controlled Master Boot (HCMB). The procedure is discussed in Section 2.3.1.1.1. START RESET (LOW) WRITE_* (HCMB_<MODE>) SET HS[3:0] PINS FOR OPERATIONAL MODE READ_* (MSG)NOTE 2 RESET (HIGH) MSG ==BOOT_START N EXIT(ERROR) Y WAIT 50 μS READ_* (MSG) WRITE_* (SLAVE_BOOT) MSG== BOOT_SUCCESS WAIT 10 μS N EXIT (ERROR) Y READ_* (MSG)NOTE 1 Y MORE .ULD FILES? N MSG ==BOOT_START N EXIT(ERROR) WRITE_* (SOFT_RESET) Y WRITE_* (BOOT_ ASSIST_A.ULD FILE) Or (boot_assist_xtal_div2_a*.uld) READ_* (MSG) WAIT 10 μS MSG ==APP_START READ_* (MSG)NOTE 1 N EXIT (ERROR) Y SEND HARDWARE CONFIGURATIONS MSG== BOOT_SUCCESS N EXIT(ERROR) SEND FIRMWARE CONFIGURATIONS Y * is replaced with SPI, I2C, etc. depending on the communication protocol used. WRITE_* (SOFT_RESET_DSP_A) WRITE_* (KICKSTART) NOTE 1. Read four bytes from the DSP. IRQ will not drop for this read sequence. NOTE 2. Obey IRQ for all reads from this point forward. DONE Figure 2-2. Host Controlled Master Boot 2.3.1.1.1 Host Controlled Master Boot (HCMB) Procedure 1. Toggle RESET. A download sequence is started when the host holds the RESET pin low for the required time. The mode pins, HS[4:0] must be in the appropriate state to set the host communication mode before and immediately after the rising edge of RESET. Pull-up and pull-down resistors are typically used to set the default state of the HS[4:0] pins. 2. Send the SLAVE_BOOT message. The host sends the appropriate SLAVE_BOOT message to the CS4953xx using the control port specified (serial port/parallel port) and format specified (I2C, SPI, Intel, etc.) by the HS[4:0] pins at reset. 2-5 Copyright 2010 Cirrus Logic, Inc. DS732UM10 Slave Boot Procedures CS4953xx Hardware User’s Manual 3. Wait for 10 μS. 4. Read the BOOT_START message (See NOTE 1 in Figure 2-2). If the initialization is successful, CS4953xx sends out the BOOT_START message and the host proceeds to Step 6. If initialization fails, the host must return to Step 1, and if failure is met again, the communication timing and protocol should be inspected. 5. The host sends the boot assist BOOT_ASSIST_A.uld file or boot_assist_xtal_div2_a*.uld (sets XTAL_OUT =XTAL/2) to the CS4953xx DSP. 6. Wait 10 μS 7. Read the BOOT_SUCCESS message (See NOTE 1 in Figure 2-2). The host then reads a message from the appropriate communications port. Each.ULD file contains a checksum that is compared at the end of the boot process. CS4953xx sends a BOOT_SUCCESS message to the host if the checksum is correct after the download. If the checksum was incorrect, CS4953xx responds with a BOOT_ERROR_CHECKSUM message. This indicates that the image read by the DSP is corrupted. The communications interface hardware and code image integrity should be checked if this occurs. 8. Send the SOFT_RESET_DSP_A command: After reading the BOOT_SUCCESS message on the boot assist code image/overlay, the host must send this message. If boot_assist_xtal_div2_a*.uld was sent in Step 5, the XTAL_OUT frequency will change to XTAL/2 after the soft reset has taken place. 9. Send the correct HCMB_<MODE> message. The host sends to the CS4953xx the appropriate HCMB_<MODE> message, where <MODE> indicates the type of external ROM: PARALLEL, SPI, or I2C. This message tells CS4953xx the start address of the downloadable image (.ULD file) and identifies which port will be used to access FLASH memory. 10. Wait for IRQ low. The host then waits for SCP1_IRQ (or PCP_IRQ) to go low. (See NOTE 2 in Figure 2-2) 11. Read the BOOT_START message. If the initialization is successful, CS4953xx will send the BOOT_START message to the host. If initialization fails, the host must return to Step 1, and if failure is met again, the communication timing and protocol should be inspected. 12. Wait for IRQ low. After receiving the BOOT_START message, the host then waits for SCP1_IRQ (or PCP_IRQ) to go low. This indicates that the DSP has written a message to the output buffer and the boot process is complete. 13. Read the BOOT_SUCCESS message. The host then reads a message from the appropriate communications port. Each.ULD file contains a checksum that is compared at the end of the boot process. The CS4953xx sends a BOOT_SUCCESS message to the host if the checksum is correct after the download. If the checksum was incorrect, CS4953xx responds with a BOOT_ERROR_CHECKSUM message. This indicates that the image read by the DSP is corrupted. The communications interface hardware and code image integrity should be checked if this occurs. 14. Repeat Steps 9-13 for all code images/Overlays. The host repeats these steps until all overlays for the application have been successfully loaded. See the application note for more information on the overlays necessary at start-up. 15. Send the SOFT_RESET message. After reading the BOOT_SUCCESS message on the last code image/overlay, the host must send a SOFT_RESET message which will cause the application code to begin executing. 16. Wait for IRQ low. The host then waits for SCP1_IRQ (or PCP_IRQ) to go low. DS732UM10 Copyright 2010 Cirrus Logic, Inc 2-6 Slave Boot Procedures CS4953xx Hardware User’s Manual 17. Read the APP_START message. If code execution is successful, the CS4953xx sends out an APP_START message. This indicates that the code has been initialized and can accept further configuration messages. The host should not attempt further communication with the CS4953xx until the APP_START message has been read. If the CS4953xx does not send an application start message, the host must return to Step 1. 18. Send Hardware Configuration messages. The master boot procedure is completed. The operating system on the CS4953xx is now ready for host configuration of hardware and software. Hardware configuration messages are used to define the behavior of the CS4953xx’s audio ports. 19. Send Software Configuration messages.The software configuration messages are specific to each application. The application code User’s Guide for each application provides a list of all pertinent configuration messages. 20. Send the KICKSTART message. The CS4953xx application locks the PLL and begins processing audio after receiving this message. 2.3.2 Slave Boot The Slave Boot procedure is a sequence in which the external host is the bus master and directly loads the CS4953xx application code. The system host controller has each of the five communication modes available, as specified in Table 2-1. from either the serial control interface (SPI or I2C) or the parallel control interface (Intel, multiplexed Intel, or Motorola modes). The boot messages used can be found in Section 2.3.3 "Boot Messages" on page 2-10. For information on how to configure the CS4953xx overlays, such as hardware configuration messages, software configuration messages, and the kick-start message, please refer to AN288, “CS4953xx/CS497xxx Firmware User’s Manual.” 2-7 Copyright 2010 Cirrus Logic, Inc. DS732UM10 Slave Boot Procedures CS4953xx Hardware User’s Manual 2.3.2.1 Performing a Slave Boot Figure 2-3 shows the steps taken during a Slave boot. The procedure is discussed in Section 2.3.2.1.1.. START WRITE_*(SLAVE_BOOT) RESET# (LOW) READ_*(MSG)NOTE 2 SET HS[3:0] PINS FOR OPERATIONAL MODE MSG ==BOOT_START RESET# (HIGH) N EXIT (ERROR) Y WAIT 50 μS WRITE_*(.ULD FILE) WRITE_* (SLAVE_BOOT) READ_* (MSG) WAIT 10 μS MSG== BOOT_SUCCESS EXIT(ERROR) Y READ_* (MSG)NOTE 1 Y MSG ==BOOT_START N N EXIT(ERROR) Y MORE .ULD FILES? N WRITE_* (SOFT_RESET) WRITE_* (BOOT_ ASSIST_A.ULD FILE) Or (boot_assist_xtal_div2_a*.uld) READ_* (MSG) WAIT 10 μS MSG ==APP_START READ_* (MSG) N EXIT (ERROR) NOTE 1 Y MSG== BOOT_SUCCESS N SEND HARDWARE CONFIGURATIONS EXIT(ERROR) SEND FIRMWARE CONFIGURATIONS Y WRITE_* (SOFT_RESET_DSP_A) WRITE_* (KICKSTART) NOTE 1. Read four bytes from the DSP. IRQ will not drop for this read sequence. NOTE 2. Obey IRQ for all reads from this point forward. * is replaced with SCP, I2C, etc. depending on the communication protocol used. DONE Figure 2-3. Slave Boot Sequence 2.3.2.1.1 Slave Boot Procedure 1. Toggle RESET. A download sequence is started when the host holds the RESET pin low for the required time. The mode pins (HS[4:0]) must be in the appropriate state to set the host communication mode before and immediately after the rising edge of RESET. Pull-up and pull-down resistors are typically used to set the default state of the HS[4:0] pins. 2. Wait for 50 μs. DS732UM10 Copyright 2010 Cirrus Logic, Inc 2-8 Slave Boot Procedures CS4953xx Hardware User’s Manual 3. Send the SLAVE_BOOT message. The host sends the appropriate SLAVE_BOOT message to the CS4953xx using the control port specified (serial port/parallel port) and format specified (I2C, SPI, Intel, etc.) by the HS[4:0] pins at reset. 4. Wait for 10 μS. 5. Read the BOOT_START message (See NOTE 1 in Figure 2-3). If the initialization is successful, CS4953xx sends out the BOOT_START message and the host proceeds to Step 6. If initialization fails, the host must return to Step 1, and if failure is met again, the communication timing and protocol should be inspected. 6. The host sends the boot assist BOOT_ASSIST_A.uld file or boot_assist_xtal_div2_a*.uld (sets XTAL_OUT =XTAL/2) to the CS4953xx DSP. 7. Wait 10 μS 8. Read the BOOT_SUCCESS message (See NOTE 1 in Figure 2-3). The host then reads a message from the appropriate communications port. Each.ULD file contains a checksum that is compared at the end of the boot process. CS4953xx sends a BOOT_SUCCESS message to the host if the checksum is correct after the download. If the checksum was incorrect, CS4953xx responds with a BOOT_ERROR_CHECKSUM message. This indicates that the image read by the DSP is corrupted. The communications interface hardware and code image integrity should be checked if this occurs. 9. Send the SOFT_RESET_DSP_A command: After reading the BOOT_SUCCESS message on the boot assist code image/overlay, the host must send this message. If boot_assist_xtal_div2_a*.uld was sent in Step 6, the XTAL_OUT frequency will change to XTAL/2 after the soft reset has taken place. 10. Send the SLAVE_BOOT message. The host sends the appropriate SLAVE_BOOT message to the CS4953xx using the control port specified (serial port/parallel port) and format specified (I2C, SPI, Intel, etc.) by the HS[4:0] pins at reset. 11. Wait for IRQ low. The host then waits for SCP1_IRQ (or PCP_IRQ) to go low. (See NOTE 2 in Figure 2-3) 12. Read the BOOT_START message. If the initialization is successful, CS4953xx sends out the BOOT_START message and the host proceeds to Step 6. 13. Send the ULD File. The host sends a.uld file to the CS4953xxx. 14. Wait for IRQ low. The host then waits for SCP1_IRQ (or PCP_IRQ) to go low. 15. Read the BOOT_SUCCESS message. The host then reads a message from the appropriate communications port. Each.ULD file contains a checksum that is compared at the end of the boot process. CS4953xx sends a BOOT_SUCCESS message to the host if the checksum is correct after the download. If the checksum was incorrect, CS4953xx responds with a BOOT_ERROR_CHECKSUM message. This indicates that the image read by the DSP is corrupted. The communications interface hardware and code image integrity should be checked if this occurs. 16. Repeat Steps 10-15 for all code images/overlays. The host repeats these steps until all overlays for the application have been successfully loaded. See the application note for more information on the overlays necessary at start-up. 17. Send the SOFT_RESET message. After reading the BOOT_SUCCESS message on the last code image/overlay, the host must send a SOFT_RESET message which will cause the application code to begin executing. 18. Wait for IRQ low. The host then waits for SCP1_IRQ (or PCP_IRQ) to go low. 19. Read the APP_START message. If code execution is successful, the CS4953xx sends out a 2-9 Copyright 2010 Cirrus Logic, Inc. DS732UM10 Slave Boot Procedures CS4953xx Hardware User’s Manual APP_START message. This indicates that the code has been initialized and can accept further configuration messages. The host should not attempt further communication with the CS4953xx until the APP_START message has been read. If the CS4953xx does not send an application start message, the host must return to Step 1. 20. Send Hardware Configuration messages. The slave boot procedure is completed. The operating system on the CS4953xx is now ready for host configuration of hardware and software. Hardware configuration messages are used to define the behavior of the CS4953xx’s audio ports. A more detailed description of the hardware configurations can be found in Section x of this manual. 21. Send Software Configuration messages.The software configuration messages are specific to each application. The application code user’s guide for each application provides a list of all pertinent configuration messages. 22. Send the KICKSTART message(s). The CS4953xx application locks the PLL and begins processing audio after receiving this message. 2.3.3 Boot Messages The Slave Boot and Host-Controlled Master Boot procedures use a number of messages to configure and synchronize the boot process. Please use the messages listed below when implementing the boot process as a part of the system host controller firmware. 2.3.3.1 Slave Boot Table 2-2. SLAVE_BOOT message for CS4953xx MNEMONIC VALUE SLAVE_BOOT 0x8000 0000 The SLAVE_BOOT message is used when the system host controller will send each .uld file directly to the CS4953xx. The SLAVE_BOOT message must be issued for each overlay image (.uld file) that is downloaded to the CS4953xx. Please see Section 2-3 "Slave Boot Sequence" on page 2-8 for more details. 2.3.3.2 Host-Controlled Master Boot from Parallel ROM Table 2-3. HCMB_PARALLEL Message for CS4953xx MNEMONIC VALUE 1110 0000 0000 0000 0000 0xxx xxyy yyMM 0000 0000 0000 AAAA AAAA AAAA AAAA AAAA HCMB_PARALLEL DS732UM10 Where: x = number of CS4953xx clocks from CS or Address change to Output Enable y = number of CS4953xx clocks from CS to Output Enable M = memory width of parllel ROM = 0 for 8-bit, 1 for 16-bit A = 20-bit external memory start address/2 for 16 bit flash. A = 20-bit external memory start address/4 for 8 bit flash. Copyright 2010 Cirrus Logic, Inc 2-10 Slave Boot Procedures CS4953xx Hardware User’s Manual HCMB_PARALLEL is used when the application code is stored in external parallel ROM, such as an external 8-bit or 16-bit EEPROM or Flash. The external data bus width is specified by the ‘M’ variable in the first control word. Also, the 20-bit start address is specified in the second control word with the ‘A’ variable. Read cycle parameters can also be configured by the ‘x’ and ‘y’ variables. The HCMB_PARALLEL message should be substituted for the HCMB_<MODE> message in Figure 2-2. 2.3.3.3 Host-Controlled Master Boot from I2C ROM Table 2-4. HCMB_I2C message for the CS4953xx MNEMONIC VALUE 1100 0000 000p cccc cccc cccc 0sss ssss 0000 0000 0000 0000 0000 0000 AAAA AAAA HCMB_I2C Where p = Serial Control Port Selection =1 for SCP2 (Normal Operation) 0 for SCP1 (Not Supported by O/S) c = clock divider for I2C clock signal s = 8-bit I2C command A = 16-bit external memory start address HCMB_I2C is used when the application code is stored in external I2C ROM, such as an I2C EEPROM. The HCMB_I2C message should be substituted for the HCMB_<MODE> message in Figure 2-2. This boot mode can be configured to interface with many types of I2C ROMs. The 16-bit start address is specified by the ‘A’ variable. The I2C clock is derived from the internal core clock. This clock can be divided down with the ‘c’ 12-bit divider variable. The command byte (the first byte to the I2C ROM) can be defined by the ‘s’ variable. The CS4953xx control port used for the HCMB_I2C can be configured by the ‘p’ variable. 2.3.3.4 Host-Controlled Master Boot from SPI ROM Table 2-5. HCMB_SPI message for CS4953xx MNEMONIC VALUE 1101 BBB0 0SSp cccc cccc cccc ssss ssss L000 0000 AAAA AAAA AAAA AAAA AAAA AAAA HCMB_SPI Where B = number of dummy bytes sent after Address, before read S = Chip Select p = Serial Control Port Selection = 1 for SCP2 0 for SCP1, c = SPI clock speed = DSP Core Clock/(c+2) s = 8-bit SPI command L = Address Length = 0 for 16-bit Address, 1 for 24-bit Address A = 24/16-bit external memory start address HCMB_SPI is used when the application code is stored in external SPI ROM, either SPI EEPROM or SPI Flash. The HCMB_SPI message should be substituted for the HCMB_<MODE> message in Figure 2-2. This boot mode can be configured to interface with many types of SPI ROMs. The start address “A” variable can be either 24-bit or 16-bit, configured by the “L” variable. Some SPI ROMs require some ‘dummy’ bytes after the address byte, before reading from the part, configurable by the ‘B’ variable. 2-11 Copyright 2010 Cirrus Logic, Inc. DS732UM10 Slave Boot Procedures CS4953xx Hardware User’s Manual The SPI clock is derived from the internal core clock. This clock can be divided down with the “c” 12-bit divider variable. The command byte (the first byte to the SPI ROM) can be defined by the “s” variable. The CS4953xx control port used for the HCMB_SPI can be configured by the ‘p’ variable. Finally, the “S” variable configures the chip select used, according to Table 2-6 below. Table 2-6. GPIO Pins Available as EE_CS in HCMB ‘S’ Value Pin Name LQFP-144 Pin # LQFP-128 Pin # 0 GPIO20 6 38 1 GPIO23 14 46 2 GPIO25 25 - 3 GPIO01 121 - 1.GPIO0 as EE_CS can be used to load only one .uld in HCMB mode. If multiple .uld files are to be loaded, do not use GPIO0 as EE_CS in HCMB Mode.. 2.3.3.5 Soft Reset Table 2-7. SOFT_RESET message for CS4953xx MNEMONIC VALUE SOFT_RESET 0x4000 0000 SOFT_RESET_DSP_A 0x5000 0000 The SOFT_RESET message is the message sent to the CS4953xx after all of the overlays have been successfully booted. The SOFT_RESET leaves execution of the bootloader and begins execution of the loaded overlays. The overlays can be configured once the SOFT_RESET message has been sent. 2.3.3.6 Messages Read from CS4953xx Table 2-8 defines the boot read messages, in mnemonic and actual hex value, used in CS4953xx boot sequences. Table 2-8. Boot Read Messages from CS4953xx MNEMONIC VALUE BOOT_START 0x0000 0001 BOOT_SUCCESS 0x0000 0002 APP_START 0x0000 0004 BOOT_ERROR_CHECKSUM 0x0000 00FF INVALID_BOOT_TYPE 0x0000 00FE BOOT_FAILURE 0x0000 00F8 APPLICATION_FAILURE 0xF0{ID} 0000 Note: There is a unique {ID} for every .uld file. DS732UM10 Copyright 2010 Cirrus Logic, Inc 2-12 Master Boot Procedure CS4953xx Hardware User’s Manual Table 2-9 is a quick reference showing the different boot commands understood by the CS4953xx, in mnemonic and actual hex value, used in CS4953xx boot sequences. Table 2-9. Boot Command Messages for CS4953xx MNEMONIC VALUE DETAILED TABLE SLAVE_BOOT 0x8000 0000 Table 2-2 HCMB_PARALLEL 0xE0== ==== Table 2-3 HCMB_I2C 0xC0== ==== Table 2-4 HCMB_SPI 0xD=== ==== Table 2-5 SOFT_RESET 0x40 00 00 00 Table 2-7 2.4 Master Boot Procedure Note: Master Boot is currently not supported in the O/S A master boot sequence is initiated immediately after the rising edge of RESET. The location of the overlay to boot is outlined in Table 2-1. Once the rising edge of RESET has occurred, the CS4953xx will load a single overlay from address 0x0. It should be noted that the loaded overlay must reconfigure one of the control ports to be slave to the bus for a system host controller to configure the part. Thus, this type of boot process will be useful in systems without a system host controller or with a simple controller that only performs a monitoring task. Currently this mode is not used for any applications. Start RESET (Low) Set HS[4:0] Pins For Operational Mode RESET (High) Done Figure 2-4. Master Boot Sequence Flowchart 2-13 Copyright 2010 Cirrus Logic, Inc. DS732UM10 Softboot CS4953xx Hardware User’s Manual 2.5 Softboot The O/S application code for the CS4953xx allows users to swap out one or more overlays during run time, without the need for re-download of the entire overlay stack. This is helpful for reducing the time required for switching between different types of incoming audio data streams. The Softboot procedure includes initial messaging that sends the CS4953xx into a boot state where the host can boot the CS4953xx with different overlays according to the boot methods outlined in this chapter. This includes a soft reset of the CS4953xx, which then requires that the host send or re-send the hardware and software configuration messages. 2.5.1 Softboot Messaging Two messages are relevant to the softboot procedure for the CS4953xx. These messages are: SOFTBOOT and SOFTBOOT_ACK. The SOFTBOOT message is sent from the host controller to the CS4953xx to indicate to the CS4953xx that the system requires swapping of overlays. Table 2-10. SOFTBOOT Message Mnemonic Value SOFTBOOT 0x81000009 0x00000001 The SOFTBOOT_ACK is sent from the CS4953xx to the host controller to indicate that the host can now boot the CS4953xx with the new overlays. Table 2-11. SOFTBOOT_ACK Message DS732UM10 Mnemonic Value SOFTBOOT_ACK 0x00000005 Copyright 2010 Cirrus Logic, Inc 2-14 Softboot CS4953xx Hardware User’s Manual 2.5.2 Softboot Procedure Figure 2-5 contains a flow diagram and description of the Softboot procedure. This is a step-by-step guideline that can be used as an aid in developing the system controller code required to drive the CS4953xx. START WRITE_* (SOFTBOOT) N IRQ == LOW? Y READ_* (MSG) N N TIMEOUT? Y EXIT(ERROR) MSG == SOFTBOOT_ACK? GO TO STEP 10, Section 2.5.2.3. Y LOAD OVERLAYS DONE Figure 2-5. Soft Boot Sequence Flowchart 2.5.2.1 Softboot Procedure 1. Send the SOFTBOOT message. The host sends the SOFTBOOT message to the CS4953xx to begin overlay swap. 2. Wait for IRQ low. The host then waits for SCP1_IRQ (or PCP_IRQ) to go low. If the TIMEOUT period has been reached, the host should exit. If the IRQ pin is LOW, proceed to Step 3. 3. Read the SOFTBOOT_ACK message. If the message is the SOFTBOOT_ACK message (0x00000005), then the host should proceed to Step 4. If the message is not the SOFTBOOT_ACK message, the host should return to Step 2. 4. Load Overlays. Repeat the boot procedure used to originally load the overlays into the CS4953xx (for example, SLAVE_BOOT, HCMB_<MODE>), but only the overlays that need to be swapped should be loaded. Skip the hard reset sequence, starting the boot procedure from Step 2. Please note that this includes re-downloading all hardware and software configurations for the CS4953xx overlays. If no overlay, change as required, and go to Step 10, Section 2.5.2.3.. 2-15 Copyright 2010 Cirrus Logic, Inc. DS732UM10 Softboot CS4953xx Hardware User’s Manual 2.5.2.2 Softboot Example Figure 2-6 contains an example softboot flow diagram. Section 2.5.2.3.provides a step-by-step description of the Softboot procedure using the Host Control Master Boot (HCMB) procedure that is most commonly used CS4593x systems. START WRITE_* (SOFTBOOT) N IRQ == LOW? N TIMEOUT? Y Y READ_* (MSG) N EXIT(ERROR) MSG == SOFTBOOT_ACK? Y WRITE_* (HCMB_<MODE>) READ_* (MSG) MSG ==BOOT_START N EXIT(ERROR) Y READ_* (MSG) MSG== BOOT_SUCCESS N EXIT(ERROR) Y Y MORE .ULD FILES? N WRITE_* (SOFT_RESET) READ_* (MSG) MSG ==APP_START N EXIT(ERROR) Y SEND HARDWARE CONFIGURATIONS SEND FIRMWARE CONFIGURATIONS * is replaced with SPI, I2C, etc. depending on the communication protocol used. WRITE_* (KICKSTART) DONE Figure 2-6. Soft Boot Example Flowchart DS732UM10 Copyright 2010 Cirrus Logic, Inc 2-16 Softboot CS4953xx Hardware User’s Manual 2.5.2.3 Softboot Example Steps 1. Send the SOFTBOOT message. The host sends the SOFTBOOT message to the CS4953xx to begin overlay swap. 2. Wait for IRQ low. The host then waits for SCP1_IRQ (or PCP_IRQ) to go low. If the TIMEOUT period has been reached, the host should exit. If the IRQ pin is LOW, proceed to Step 3. 3. Read the SOFTBOOT_ACK message. If the message is the SOFTBOOT_ACK message (0x00000005), then the host should proceed to Step 4. If the message is not the SOFTBOOT_ACK message, the host should return to Step 2. 4. Send the correct HCMB_<MODE> message. The host sends to the CS4953xx the appropriate HCMB_<MODE> message, where <MODE> indicates the type of external ROM: PARALLEL, SPI, or I2C. This message tells CS4953xx the start address of the downloadable image (.ULD file) and identifies which port will be used to access FLASH memory. 5. Wait for IRQ low. The host then waits for SCP1_IRQ (or PCP_IRQ) to go low. 6. Read the BOOT_START message. If the initialization is successful, CS4953xx will send the BOOT_START message to the host. If the message is any other value, then the host should abort. 7. Wait for IRQ low. After receiving the BOOT_START message, the host then waits for SCP1_IRQ (or PCP_IRQ) to go low. This indicates that the DSP has written a message to the output buffer and the boot process is complete. 8. Read the BOOT_SUCCESS message. The host then reads another message from the appropriate communications port. Each.ULD file contains a checksum that is compared at the end of the boot process. The CS4953xx sends a BOOT_SUCCESS message to the host if the checksum is correct after the download. If the checksum was incorrect, CS4953xx responds with a BOOT_ERROR_CHECKSUM message. This indicates that the image read by the DSP is corrupted. The communications interface hardware and code image integrity should be checked if this occurs. 9. Repeat Steps 4-8 for all code images/Overlays. The host repeats these steps until all overlays for the application have been successfully loaded. See the application note for more information on the overlays necessary at start-up. 10. Send the SOFT_RESET message. After reading the BOOT_SUCCESS message on the last code image/overlay, the host must send a SOFT_RESET message which will cause the application code to begin executing. 11. Wait for IRQ low. The host then waits for SCP1_IRQ (or PCP_IRQ) to go low. 12. Read the APP_START message. If code execution is successful, the CS4953xx sends out an APP_START message. This indicates that the code has been initialized and can accept further configuration messages. The host should not attempt further communication with the CS4953xx until the APP_START message has been read. If the CS4953xx does not send an application start message, the host must return to Step 1. If the message read is any value other than APP_START, the system controller should abort. 13. Send Hardware Configuration messages. The master boot procedure is completed. The operating system on the CS4953xx is now ready for host configuration of hardware and software. Hardware configuration messages are used to define the behavior of the CS4953xx’s audio ports. 14. Send Software Configuration messages.The software configuration messages are specific to each application. The application code User’s Guide for each application provides a list of all pertinent configuration messages. 15. Send the KICKSTART message. The CS4953xx begins processing audio after receiving this message. 2-17 Copyright 2010 Cirrus Logic, Inc. DS732UM10 Softboot CS4953xx Hardware User’s Manual §§ DS732UM10 Copyright 2010 Cirrus Logic, Inc 2-18 Overview CS4953xx Hardware User’s Manual Chapter 3 Serial Control Port 3.1 Overview The CS4953xx uses the Serial Control Port (SCP) to communicate with external devices such as host microprocessors using either I2C or SPI serial communication formats. Each port can be configured as either a master or slave. The CS4953xx DSP serial port communicates using the SCP_CLK, SCP_MOSI, and SCP_MISO (SPI serial master and slave modes), and SCP_SDA (for I2C serial master and slave modes) pins. In both SPI and I2C modes, the serial control port performs 8-bit transfers and is always configured as a slave for external device-controlled data transfers. As a slave, it cannot drive the clock signal nor initiate data transfers. The port can request a read from the host by activating the SCP1_IRQ pin. The port can also indicate that the host should stop sending data by activating the SCP1_BSY pin. It is very important for the host to obey the SCP1_BSY pin status. Messages sent to the DSP’s host control port (SCP1) when SCP1_BSY pin is low will be lost. The serial control port can be operated simultaneously with the CS4953xx parallel control port. The CS4953xx SPI and I2C serial communication modes are identical from a functional standpoint. The main difference between the two is the actual protocol being implemented between the CS4953xx and the host. In addition, the I2C slave has a true I2C mode that utilizes data flow mechanisms inherent to the I2C protocol. If this mode is enabled, the I2C slave will hold SCP1_CLK low to delay a transfer as needed -this is in addition to activating SCP1_BSY. The CS4953xx has two serial ports. However, the O/S currently supports only slave mode host communication on SCP1, and master mode communication on SCP2 for booting from a serial EEPROM/ FLASH. 3.2 Serial Control Port Configuration The serial control port configuration for an operating mode is determined by the state of special boot mode pins as the CS4953xx exits reset. The rising edge of the RESET pin samples the HS[4:0] pins to determine the communication mode and boot style. The CS4953xx O/S currently supports two serial control port configurations for host control: • I2C Slave (Write Address = 0x80, Read Address = 0x81) • SPI Slave (Write Address = 0x80, Read Address = 0x81) The HS[4:0] signals latched by RESET are read by the boot ROM code to determine the format (SPI slave or I2C slave). The ROM code then configures the serial control port into slave mode and looks for the BOOT_START message. Please see Chapter 2, "Operational Modes" for additional details on configuring CS4953xx ports and communication modes. Procedures for configuring the serial control port for SPI and I2C communication modes are provided in this chapter. 3-1 Copyright 2010 Cirrus Logic, Inc. DS732UM10 I2C Port CS4953xx Hardware User’s Manual 3.3 I2C Port The CS4953xx I2C bus has been developed for 8-bit digital control applications, such as those requiring microcontrollers. The I2C bus interface is a bidirectional serial port that uses 2 lines (data and clock) for data transmission and reception with software-addressable external devices. Each external device interfaced to the CS4953xx I2C port has the ability to communicate directly with the other devices and is assigned a unique address whether it is a CPU, memory, or some other device. A block diagram of the CS4953xx I2C Serial Control Port is provided in Figure 3-1. Internal Bus SCP1_IRQ SCP1_BSY MSB (Byte 3) Byte2 Byte 1 LSB (Byte 0) MSB (Byte 3) Byte2 Byte 1 LSB (Byte 0) LSB (Byte 0) Byte1 Byte 2 MSB (Byte 3) LSB (Byte 0) Byte1 Byte 2 MSB (Byte 3) I2C Control / Clocking SCP1_CLK EN 7 6 5 4 3 2 1 0 SCP1_SDA EN Figure 3-1. Serial Control Port Internal Block Diagram 3.3.1 I2C System Bus Description Devices can be considered masters or slaves when performing data transfers. A master is the device which initiates a data transfer on the bus and generates the clock signals to permit that transfer. Any device addressed by the initiator is considered a slave. The CS4953xx has two serial ports. However, the O/S currently supports only slave mode host communication on SCP1, and master mode communication on SCP2 for booting from a serial EEPROM/ FLASH. The I2C-bus is a multi-master bus. This means that more than one device capable of controlling the bus can be connected to it. The master-slave relationships found on the I2C bus are not permanent and only depend on the direction of data transfer at that time. Generation of clock signals on the I2C bus is always the responsibility of master devices; each master generates its own clock signals when transferring data on the bus. Bus clock signals from a master can only be altered when they are stretched by a slow slave device holding down SCP1_CLK. Both SCP1_SDA and SCP1_CLK are bidirectional lines. When the bus is free, both lines are pulled high by resistors. The output stages of devices connected to the bus must have an open-drain or opencollector to perform the wired-AND function. DS732UM10 Copyright 2010 Cirrus Logic, Inc 3-2 I2C Port CS4953xx Hardware User’s Manual As seen in Figure 3-2, two serial ports are available on the CS4953xx. Each can be configured as either master or slave. For Audio applications, SCP1 is configured as a slave port and SCP2 is configured as a master port. SCP2 is used only in systems that are booting from serial EEPROM. 3.3V 3.3k 3.3k 3.3k CS4953xx RESET SCP1_CLK SCP1_SDA SCP1_IRQ SCP1_BSY System Microcontroller SLAVE ONLY 3.3k 3.3V 3.3k EEPROM Serial Clock Serial Data 3.3k SCP2_CLK SCP2_SDA MASTER ONLY RESET Figure 3-2. Block Diagram of I2C System Bus Table 3-1 shows the signal names, descriptions, and pin number of the signals associated with the I2C Serial Control Port on the CS4953xx. Table 3-1. Serial Control Port 1 I2C Signals 3-3 Pin Name Pin Description LQFP-144 Pin # LQFP-128 Pin # Pin Type SCP1_CLK I2C Control Port Bit Clock. In master mode, this pin serves as the serial control clock output (open drain in I2C mode / output in SPI mode). In serial slave mode, this pin serves as the serial control clock input. In I2C slave mode the clock can be pulled low by the port to stall the master. 99 126 Open Drain SCP1_SDA Bidirectional Data I2C Mode Master/Slave Data IO. In I2C master and slave mode, this open drain pin serves as the data input and output. 97 124 Open Drain SCP1_IRQ Control Port Data Ready Interrupt Request, Output, Active Low This pin is driven low when the DSP has a message for the host to read. The pin will go high when the host has read the message and the DSP has no further messages. 100 4 Open Drain SCP1_BSY Serial Control Port 1 Input Busy, Output, Active Low This pin is driven low when the control port’s receive buffer is full. Internal Buffer is 4 bytes (1 DSP Word) deep. 102 128 Open Drain Copyright 2010 Cirrus Logic, Inc. DS732UM10 I2C Port CS4953xx Hardware User’s Manual Table 3-1. Serial Control Port 1 I2C Signals (Continued) Pin Name Pin Description LQFP-144 Pin # LQFP-128 Pin # Pin Type SCP2_CLK I2C Control Port Bit Clock. In master mode, this pin serves as the serial control clock output (open drain in I2C mode / output in SPI mode). In serial slave mode, this pin serves as the serial control clock input. In I2C slave mode the clock can be pulled low by the port to stall the master. 103 1 Open Drain SCP2_SDA Bidirectional Data I2C Mode Master/Slave Data IO. In I2C master and slave mode, this open drain pin serves as the data input and output. 105 2 Open Drain SCP2_IRQ Serial Control Port Data Ready Interrupt Request, Output, Active Low. This pin is driven low when the DSP has a message for the host to read. The pin will go high when the host has read the message and the DSP has no further messages. 108 5 Open Drain 3.3.2 I2C Bus Dynamics The Start condition for an I2C transaction is defined as the first falling edge on the SCP1_SDA line while SCP1_CLK is high. An I2C Stop condition is defined as the first rising edge on the SCP1_SDA line while SCP1_CLK is high. Hence for valid data transfer, SCP1_SDA must remain stable during the high period of the clock pulse. Start and Stop conditions are always generated by the master. The bus is considered to be busy after the Start condition. The bus is considered to be free again following the Stop condition. The bus stays busy if a repeated Start condition is generated instead of a Stop condition. In this respect, the Start and repeated Start conditions are functionally identical. Start Stop SCP1_CLK SCP1_CLK SCP1_SDA SCP1_SDA Figure 3-3. I2C Start and Stop Conditions DS732UM10 Copyright 2010 Cirrus Logic, Inc 3-4 I2C Port CS4953xx Hardware User’s Manual The number of bytes that can be transmitted per transfer is unrestricted. Data is transferred with the mostsignificant bit (MSB) first. The first byte is an address byte that is always sent by the master after a Start or repeated Start condition. This byte must be a 7-bit I2C slave address + R/W bit. The 7-bit I2C address for the CS4953xx is 1000000b (0x80). The R/W bit is used to notify the slave if the current transaction is for the master to write data to the slave (R/W = 0) or read data from the slave (R/W = 1). After the master has sent the address byte, the master releases the SCP1_SDA line. If the slave received the address byte, it will drive the SCP1_SDA line low to acknowledge (ACK) to the master that the byte was received. The SCP1_SDA line must remain stable and low during the high period of the next clock pulse. When a slave does not acknowledge the slave address, the data line must be left high by the slave (NACK). Start SCP1_CLK SCP1_SDA A[6] A[5] A[4] A[3] A[2] A[1] A[0] M R/W ACK S Start SCP1_CLK SCP1_SDA A[6] A[5] A[4] A[3] A[2] A[1] A[0] M R/W NACK S M = Master Drives SDA S = Slave Drives SDA Figure 3-4. I2C Address with ACK and NACK For write operations, the R/W bit must be set to zero (R/W = 0, Address = 0x80). After the 8-bit data byte has been clocked, the master will release the SCP1_SDA line. If the slave received the byte correctly, it will drive the SCP1_SDA line low for the next bit clock to acknowledge (ACK) that the data was received. If the data was not received correctly, the slave can communicate this by leaving the SCP1_SDA line high (NACK). For read operations, the R/W bit must be set to one (R/W = 1, Address = 0x81), then the master will read a data byte from the slave. After the 8-bit data byte has been clocked, the master will release the SCP1_SDA line. If the master received the byte correctly, it will drive the SCP1_SDA line low for the next bit clock to acknowledge (ACK) that the data was received. If the data was not received correctly, the master can communicate this by leaving the SCP1_SDA line high (NACK). The protocol on the last byte, however, is different. When the master receives the last byte, it signals the end of the data to the slave by allowing SCP1_SDA to float high (NACK). 3-5 Copyright 2010 Cirrus Logic, Inc. DS732UM10 I2C Port CS4953xx Hardware User’s Manual Start SCP1_CLK SCP1_SDA A[6] A[5] A[4] A[3] A[2] A[1] A[0] R/W ACK Data Byte ACK Write M S M S Read M S S M Data Byte NACK Start SCP1_CLK SCP1_SDA A[6] A[5] A[4] A[3] A[2] A[1] A[0] R/W ACK Write M S M S Read M S S M M = Master Drives SDA S = Slave Drives SDA Figure 3-5. Data Byte with ACK and NACK After an ACK or NACK from the master or slave, the slave must leave the SCP1_SDA line high so the master can then generate either another Start condition as shown in Figure 3-6 to start a new transfer or a Stop condition as shown in Figure 3-7 to abort the transfer. Start SCP1_CLK Data Byte ACK Write M S M S Read S M M S SCP1_SDA A[6] A[5] A[4] A[3] A[2] A[1] A[0] R/W ACK S ta r t SCP1_CLK SC P1_SD A D a ta B y te NACK A [6 ] A [5 ] A [4 ] A [3 ] A [2 ] A [1 ] A [0 ] R /W W r ite M S M S R ead S M M S ACK M = M a s te r D r iv e s S D A S = S la v e D r iv e s S D A Figure 3-6. Repeated Start Condition with ACK and NACK DS732UM10 Copyright 2010 Cirrus Logic, Inc 3-6 I2C Port CS4953xx Hardware User’s Manual Stop SCP1_CLK SCP1_SDA Data Byte ACK Write M S M Read S M M Stop SCP1_CLK SCP1_SDA Data Byte NACK Write M S M M M S M = Master Drives SDA S = Slave Drives SDA Read Figure 3-7. Stop Condition with ACK and NACK If a slave cannot receive or transmit another complete byte of data until it has performed some other function, for example servicing an internal interrupt, it can hold the SCP1_CLK line low to force the master into a wait state. Data transfer then continues when the slave is ready for another byte of data and releases SCP1_CLK. 3.3.3 I2C Messaging Messaging to the CS4953xx using the I2C bus requires usage of all the information provided in the above I2C Section 3.3.1 “I2C System Bus Description” on page 2 and Section 3.3.2 “I2C Bus Dynamics” on page 4. Every I2C transaction to the CS4953xx will involve 4-byte words used for control and application image download. A detailed description of the serial SPI communication mode is provided in this section. This includes: • A flow diagram and description for a serial I2C write • A flow diagram and description for a serial I2C read 3.3.3.1 SCP1_BSY Behavior The SCP1_BSY signal is not part of the I2C protocol, but it is provided so that the slave can signal to the master that it cannot receive any more data. It performs the same function as that of holding SCP1_CLK low to halt transmission. A falling edge of the SCP1_BSY signal indicates the master must halt transmission. Once the SCP1_BSY signal goes high, the suspended transaction may continue. It is important for the host to obey the SCP1_BSY pin status for proper communication with the DSP. 3-7 Copyright 2010 Cirrus Logic, Inc. DS732UM10 I2C Port CS4953xx Hardware User’s Manual 3.3.3.2 Performing a Serial I2C Write Information provided in this section is intended as a functional description indicating how to use the configured serial control port to perform a I2C write from an external device (master) to the CS4953xx DSP (slave). The system designer must ensure that all timing constraints of the I2C write cycle are met (see the CS4953xx datasheet for timing specifications). When writing to the CS4953xx, the same protocol described in this section will be used when writing single-word messages to the boot firmware, writing multiple-word overlay images to the boot firmware, and writing multiple-word messages to application firmware. The examples given can therefor be expanded to fit any I2C writing situation. The flow diagram shown in Figure 3-8 illustrates the sequence of events that define the I2C write protocol for SCP1. Section 3.4.3.2..describes the Serial I2C Write protocol. SEND I2C START: DRIVE SCP1_SDA LOW WHILE SCP1_CLK IS HIGH WRITE ADDRESS BYTE 0x80 N EXIT (ERROR) SCP1_SDA == ACK? Y SEND DATABYTE N EXIT (ERROR) SCP1_SDA == ACK? Y N 4 BYTES SENT? Y N Y MORE DATA? N SCP1_BSY (LOW)? Y I2C STOP: DRIVE SCP1_SDA HIGH WHILE SCP1_CLK IS HIGH Figure 3-8. I2C Write Flow Diagram DS732UM10 Copyright 2010 Cirrus Logic, Inc 3-8 I2C Port CS4953xx Hardware User’s Manual 3.3.3.3 I2C Write Protocol 1. An I2C transfer is initiated with an I2C start condition which is defined as the data (SCP1_SDA) line falling while the clock (SCP1_CLK) is held high. 2. This is followed by a 7-bit address and the read/write bit held low for a write. So, the master should send 0x80. The 0x80 byte represents the 7-bit I2C address 1000000b, and the least significant bit set to ‘0’, designates a write. 3. After each byte (including the address and each data byte) the master must release the data line and provide a ninth clock for the CS4953xx DSP (slave) to acknowledge (ACK) receipt of the byte. The CS4953xx will drive the data line low during the ninth clock to acknowledge. If for some reason CS4953xx does not acknowledge (NACK), it means that the communications channel has been corrupted and the CS4953xx should be re-booted. A NACK should never happen here. 4. The master should then clock one data byte into the device, most-significant bit first. 5. The CS4953xx (slave) will (and must) acknowledge (ACK) each byte that it receives which means that after each byte, the master must provide an acknowledge clock pulse on SCP1_CLK and release the data line, SCP1_SDA. 6. If the master has no more data words to write to the CS4953xx, then proceed to Step 8. If the master has more data words to write to the CS4953xx, then proceed to Step 7. 7. The master should poll the SCP1_BSY signal until it goes high. If the SCP1_BSY signal is low, it indicates that the CS4953xx is busy performing some task that requires pausing the serial control port. Once the CS4953xx is able to receive more data words, the SCP1_BSY signal will go high. Once the SCP1_BSY signal is high, proceed to Step 4. Note: The DSP’s I2C port also implements clock stretching to indicate that the host should pause communication. So the host has the option of checking for SCP1_CLK held low rather than SCP1_BSY low. 8. At the end of a data transfer, a stop condition must be sent. The stop condition is defined as the rising edge of SCP1_SDA while SCP1_CLK is high. 3.3.3.4 Performing a Serial I2C Read Information provided in this section is intended as a functional description indicating how to use the configured serial control port to perform an I2C read from an external device (master) to the CS4953xx DSP (slave). The system designer must ensure that all timing constraints of the I2C Read Cycle are met (see the CS4953xx Data Sheet for timing specifications). I2C read transactions from the CS4953xx will always involve reading 4-byte words. Figure 3-9 illustrates the sequence of events that define the I2C read protocol for SCP1. This protocol is discussed in the high-level procedure found in Section 3.3.3.5. 3-9 Copyright 2010 Cirrus Logic, Inc. DS732UM10 I2C Port CS4953xx Hardware User’s Manual START N SCP1_IRQ (LOW)? Y SEND I2C START: DRIVE SCP1_SDA LOW WHILE SCP1_CLK IS HIGH WRITE ADDRESS BYTE 0x81 N EXIT (ERROR) SCP1_SDA == ACK? Y READ DATA BYTE SEND ACK BYTES READ = 4? N Y SCP1_IRQ LOW? Y N SEND NACK SEND I2C STOP: DRIVE SCP1_SDA HIGH WHILE SCP1_CLK IS HIGH Figure 3-9. I2C Read Flow Diagram DS732UM10 Copyright 2010 Cirrus Logic, Inc 3-10 I2C Port CS4953xx Hardware User’s Manual 3.3.3.5 I2C Read Procedure 1. An I2C read transaction is initiated by CS4953xx driving SCP1_IRQ low, signaling that it has data to be read. 2. The master responds by sending an I2C Start condition which is SCP1_SDA going low while SCP1_CLK is held high. 3. This is followed by a 7-bit address and the read/write bit set high for a read. So, the master should send 0x81. The 0x81 byte represents the 7-bit I2C address 1000000b, and the least significant bit set to ‘1’, designates a read. 4. After the address byte, the master must release the data line and provide a ninth clock for the CS4953xx DSP (slave) to acknowledge (ACK) receipt of the byte. The CS4953xx will drive the data line low during the ninth clock to acknowledge. If for some reason CS4953xx does not acknowledge (NACK), it means that the communications channel has been corrupted and the CS4953xx should be re-booted. A NACK should never happen here. 5. The data is ready to be clocked out on the SCP1_SDA line at this point. Data clocked out by the host is valid on the rising edge of SCP1_CLK and data transitions occur just after the falling edge of SCP1_CLK. 6. After the CS4953xx has written the byte to the master on the SCP1_SDA line, it will release the SCP1_SDA line. If the master has more bytes in the 4-byte word to read, then proceed to Step 7. If the master is finished reading all bytes of the 4-byte word, then proceed to Step 8. 7. The master should drive the SCP1_SDA line low for the 9th SCP1_CLK clock to acknowledge (ACK) that the byte was received from the CS4953xx. The master should then return to Step 5 to read another byte of the 4-byte word. 8. If SCP1_IRQ is still low after reading a 4-byte word, proceed to Step 7. If SCP1_IRQ has risen, proceed to Step 9. See Section 3.4.3.5 on page 3-21 for an in-depth explanation of SCP1_IRQ. 9. The master should let the SCP1_SDA line stay high for the 9th SCP1_CLK clock as a noacknowledge (NACK) to CS4953xx. This, followed by an I2C stop condition (SCP1_SDA driven high, while SCP1_CLK is high) signals an end of read to CS4953xx. 3-11 Copyright 2010 Cirrus Logic, Inc. DS732UM10 Stop M S M S M S M S M K Data Byte 0 (LSB) AC K Data Byte 1 AC Data Byte 2 AC Data Byte 3 (MSB) K 7-bit Address AC SCP1_SDA K SCP1_CLK R /W AC K DS732UM10 Start S M 1. The I2C slave is always responsible for driving the ACK for the address byte. Notes: 2. The I2C slave is responsible for driving the ACK during I2C writes. Figure 3-10. Sample Waveform for I2C Write Functional TIming Start Stop K Data Byte 0 (LSB) NA C K Data Byte 1 AC K Data Byte 2 AC Data Byte 3 (MSB) K 7-bit Address AC SCP1_SDA /W AC K SCP1_CLK R Copyright 2010 Cirrus Logic, Inc Note: The I2C slave is always responsible for driving the ACK for the address byte. SCP1_IRQ# M S S M S M S M S M M M = Master Drives SDA S = Slave Drives SDA Figure 3-11. Sample Waveform for I2C Read Functional TIming 1. The I2C slave is drives the ACK for the address byte. 2. The I2C master is responsible for controlling ACK during I2C reads. In general, the receiver in an I2C transaction is responsible for providing ACK. 3. SCP1_IRQ remains low until the rising edge of the clock for the last bit of the last byte read from the I2C slave. 4. A NACK is sent by the master after the last byte to indicate the end of the read cycle. This must be followed with an I2C Stop condition or I2C Repeated-Start condition. 3-12 5. If there are more data words to read, IRQ will fall at the rising edge of CLK for the NACK. Otherwise, IRQ remains high until an I2C Stop condition or an I2C Repeated-Start condition occurs. I2C Port CS4953xx Hardware User’s Manual Notes: SPI Port CS4953xx Hardware User’s Manual 3.3.3.6 SCP1_IRQ Behavior Once the BOOT_ASSIST_A (.ULD file) has been downloaded in accordance to Steps 1 through 8 in Section 2.3.1 “Host Controlled Master Boot” on page 4 or Steps 1 through 8 in Section 2.3.2 “Slave Boot” on page 7, the SCP1_IRQ pin is functionally enabled. The SCP1_IRQ signal is not part of the I2C protocol, but is provided so that the slave can signal that it has data to be read. A high-to-low transition on SCP1_IRQ indicates to the master that the slave has data to be read. When a master detects a high-to-low transition on SCP1_IRQ, it should send a Start condition and begin reading data from the slave. SCP1_IRQ is guaranteed to remain low (once it has gone low), until the falling edge of SCP1_CLK for the last bit of the last byte to be transferred out of CS4953xx (that is, the rising edge of SCP1_CLK before the ACK). If there is no more data to be transferred, SCP1_IRQ will go high at this point. After going high, SCP1_IRQ is guaranteed to stay high until the next rising edge of SCP1_CLK (that is, it will stay high until the rising edge of SCP1_CLK for the ACK/NACK bit). This end-of-transfer condition signals the master to end the read transaction by clocking the last data bit out of CS4953xx and then sending a NACK to CS4953xx to signal that the read sequence is over. At this point, the master should send an I2C stop condition to complete the read sequence. If SCP1_IRQ is still low after the rising edge of SCP1_CLK on the last data bit of the current byte, the master should send an acknowledge and continue reading data from the serial control port. It should be noted that all data should be read out of the serial control port during one cycle or a loss of data will occur. In other words, all data should be read out of the chip until SCP1_IRQ signals the last byte by going high as described above. 3.4 SPI Port The CS4953xx Serial Peripheral Interface (SPI) bus has been developed for 8-bit digital control applications, such as those requiring microcontrollers. SPI communication is accomplished with 5 lines: Serial Chip Select (SCP1_CS), Serial Control Clock (SCP1_CLK), Master Out/Slave In data (SCP1_MOSI), and a Master In/Slave Out data (SCP1_MISO). Although the separate data I/O lines provide full-duplex capabilities, the CS4953xx chip only uses a half-duplex SPI-bus. Each device on the bus may respond to one or more unique commands, and can operate as either a transmitter or receiver. A device is considered the master in a transaction if it drives the CS pin of another device, and is also mastering the SCP1_CLK line. A block diagram of the CS4953xx SPI Serial Control Port is provided in Figure 3-12. Internal Bus SCP1_CS SCP1_IRQ MSB (Byte 3) Byte2 Byte 1 LSB (Byte 0) MSB (Byte 3) Byte2 Byte 1 LSB (Byte 0) LSB (Byte 0) Byte1 Byte 2 MSB (Byte 3) LSB (Byte 0) Byte1 Byte 2 MSB (Byte 3) SCP1_BSY SCP1_CLK SCP1_MOSI SPI Control / Clocking SCP1_MISO 7 6 5 4 3 2 1 0 Figure 3-12. SPI Serial Control Port Internal Block Diagram 3-13 Copyright 2010 Cirrus Logic, Inc. DS732UM10 SPI Port CS4953xx Hardware User’s Manual Table 3-2 shows the signal names, descriptions, and pin number of the signals associated with the SPI Serial Control Port on the CS4953xx. Table 3-2. Serial Control Port SPI Signals Pin Name Pin Description LQFP-144 Pin # LQFP-128 Pin # Pin Type SCP1_CS SPI Chip Select, Active Low In serial SPI slave mode, this pin is used as the active-low chipselect input signal. In SPI serial master mode, if this pin is driven low by another master device on the bus, it will cause a mode fault to occur. 96 6 Input SCP1_CLK SPI Control Port Bit Clock In master mode, this pin serves as the serial control clock output. In serial slave mode, this pin serves as the serial control clock input. 99 126 I/O SCP1_MOSI SPI Mode Master Data Output/Slave Data Input SCP1_MOSI in SPI slave mode this pin serves an the data input, in SPI master mode this pin serves as the data output. 95 3 I/O SCP1_MISO SPI Mode Master Data Input/Slave Data Output In SPI slave mode this pin serves as the data input. In SPI master mode this pin serves as the data output. 97 2 I/O SCP1_IRQ Serial Control Port Data Ready Interrupt Request Output, Active Low This pin is driven low when the DSP has a message for the host to read. The pin will go high when the host has read the message and the DSP has no further messages. This pin reflects the state of the SCP1 port Transmit Buffer Empty Flag. 100 4 Open Drain SCP1_BSY Serial Control Port 1 Input Busy, Output, Active Low This pin is driven low when the control port’s receive buffer is full. This pin reflects the state of the SCP1 or PCP Receive Buffer Full Fag. 102 128 Open Drain SCP2_CS SPI Chip Select, Active Low In serial SPI slave mode, this pin is used as the active-low chipselect input signal. In SPI serial master mode, if this pin is driven low by another master device on the bus, it will cause a mode fault to occur. 104 7 Input SCP2_CLK SPI Control Port Bit Clock In master mode, this pin serves as the serial control clock output. In serial slave mode, this pin serves as the serial control clock input. 103 1 I/O SCP2_MISO SPI Mode Master Data Input/Slave Data Output In SPI slave mode this pin serves as the data input. In SPI master mode this pin serves as the data output. 105 2 I/O SCP2_MOSI SPI Mode Master Data Output/Slave Data Input SCP2_MOSI in SPI slave mode this pin serves as the data input, in SPI master mode this pin serves as the data output. 106 3 I/O EE_CS DS732UM10 Master Mode Serial EPROM Chip Select, Active Low Copyright 2010 Cirrus Logic, Inc 6, 14, 25, 38, 46, or or 121 14 Output 3-14 SPI Port CS4953xx Hardware User’s Manual Table 3-2. Serial Control Port SPI Signals (Continued) Pin Name Pin Description LQFP-144 Pin # LQFP-128 Pin # Pin Type SCP2_IRQ Serial Control Port Data Ready Interrupt Request Output, Active Low This pin is driven low when the DSP has a message for the host to read. The pin will go high when the host has read the message and the DSP has no further messages. This pin reflects the state of the SCP1 port Transmit Buffer Empty Flag. 108 5 Open Drain 3.4.1 SPI System Bus Description The SPI bus is a multi-master bus. This means that more than one device capable of controlling the bus can be connected to it. Generation of clock signals on the SPI bus is always the responsibility of master devices; each master generates its own clock signals when transferring data on the bus. Bus clock signals from a master cannot be altered by any other device on the bus, otherwise a collision will occur. The slave chip-select signals can only be controlled by master devices. The CS4953xx has two serial ports. However, the O/S currently supports only slave mode host communication on SCP1, and master mode communication on SCP2 for booting from a serial EEPROM/ FLASH. SCP1_MOSI (Master Out/Slave In) and SCP1_MISO (Master In/Slave Out) are bidirectional lines that change their behavior depending on whether the device is operating in master or slave mode. Only the master can drive the MOSI signal while only the slave can drive the MISO signal. 3.3V System M icrocontroller M O SI M ISO 3.3k C S4953xx RE SE T SC P 1_C S SC P 1_C LK SC P 1_M O SI SC P 1_M ISO SC P 1_IR Q SLAVE ONLY 3.3k SC P 1_B S Y RE SE T M O SI M ISO CS CLK SC P 2_M O SI SC P 2_M ISO EE _CS SC P 2_C LK MASTER ONLY SPI EEPRO M Figure 3-13. Block Diagram of SPI System Bus As seen in Figure 3-12, two serial ports are available on the CS4953xx. Each can be configured to either a master or slave. For audio applications, SCP1 is configured as a slave port and SCP2 is configured as a master port. SCP2 is used only in systems that are booting from serial EEPROM. 3.4.2 SPI Bus Dynamics A SPI transaction begins by the master driving the slave chip select SCP1_CS low. SPI transactions end by the master driving the SCP1_CS high. This SPI bus is considered busy while any device’s SCP1_CS signal is low. The bus is free only when all slave SCP1_CS signals are high. A high-to-low transition on the SCP1_CS line defines an SPI Start condition. A low-to-high transition on the SCP1_CS line defines an SPI Stop condition. Start and Stop conditions are always generated by the master. The bus is considered to be busy after the Start condition. The bus is considered to be free again following the Stop condition. 3-15 Copyright 2010 Cirrus Logic, Inc. DS732UM10 SPI Port CS4953xx Hardware User’s Manual The data bits of the SCP1_MOSI and SCP1_MISO line are valid on the rising edge of SCP1_CLK. It is the slave’s responsibility to accept or supply bytes on the bus at the rate at which the master is driving SCP1_CLK. All data put on the SCP1_MOSI and SCP1_MISO lines must be in 8-bit bytes. The number of bytes that can be transmitted per transfer is unrestricted. Data is transferred with the most-significant bit (MSB) first. For the CS4953xx slave SPI port, the first byte is an address byte that is always sent by the master after a Start condition. This address byte is an “I2C-type” command of a 7-bit address + a R/W bit. The 7-bit SPI address is 1000000b (0x80). If the SPI transaction is a write from master to the CS4953xx (R/W = 0, Address = 0x80), then the master will clock the SCP1_CLK signal and drive the SCP1_MOSI signal with data bytes for the CS4953xx to read. If the SPI transaction is a read to the master from the CS4953xx (R/W = 1, Address = 0x81), then the master will drive the SCP1_CLK signal and read the SCP1_MISO signal with the data bytes from the CS4953xx. SCP1_CS SCP1_CLK SCP1_MOSI 7-bit SPI Address R/W 7-bit SPI Address R/W Data Byte SCP1_CS SCP1_CLK SCP1_MOSI SCP1_MISO Data Byte Figure 3-14. Address and Data Bytes 3.4.2.1 SCP1_BSY Behavior The SCP1_BSY signal is not part of the SPI protocol, but it is provided so that the slave can signal to the master that it cannot receive any more data. A falling edge of the SCP1_BSY signal indicates the master must halt transmission. Once the SCP1_BSY signal goes high, the suspended transaction may continue. The host must obey the SCP1_BSY pin or control data will be lost. 3.4.3 SPI Messaging Messaging to the CS4953xx using the SPI bus requires usage of all the information provided in the SPI Bus Description and Bus Dynamics above. For control and application image downloading, SPI transactions to the CS4953xx will involve 4-byte words. A detailed description of the serial SPI communication mode is provided in this section. This includes: • A flow diagram and description for a serial SPI write • A flow diagram and description for a serial SPI read DS732UM10 Copyright 2010 Cirrus Logic, Inc 3-16 SPI Port CS4953xx Hardware User’s Manual 3.4.3.1 Performing a Serial SPI Write Information provided in this section is intended as a functional description indicating how to perform an SPI write from an external device (master) to the CS4953xx DSP (slave). The system designer must ensure that all timing constraints of the SPI Write Cycle are met (see the CS4953xx datasheet for timing specifications). When performing an SPI write, the same protocol is used whether writing single-word messages to the boot firmware, writing multiple-word overlay images to the boot firmware, or writing multiple-word messages to the application firmware. The example shown in this section can be generalized to fit any SPI write situation. The flow diagram shown in Figure 3-15 illustrates the sequence of events that define the SPI write protocol. Section 3.4.3.2. describes the Serial SPI Write protocol. SPI START: SCP1_CS (LOW) WRITE ADDRESS BYTE 0x80 WRITE 4 DATA BYTES Y MORE DATA? SCP1_BSY (LOW)? N N Y SPI STOP: SCP1_CS (HIGH) Figure 3-15. SPI Write Flow Diagram 3.4.3.2 SPI Write Protocol 1. An SPI transfer is initiated when the chip select SCP1_CS is driven low. SCP1_CS driven low indicates that CS4953xx is in SPI slave mode. 2. This is followed by a 7-bit address and the read/write bit set low for a write. So, the master should send 0x80. The 0x80 byte represents the 7-bit SPI address 1000000b, and the least significant bit set to ‘0’, designates a write. 3. The master should then clock the 4-byte data word into the slave device, most-significant bit first, one byte at a time. The data byte is transferred to the CS4953xx DSP (slave) on the falling edge of the eighth serial clock. For this reason, the serial clock should be held low so that eight transitions from low-to-high-to-low will occur for each byte. 4. If the master has no more data words to write to the CS4953xx, then proceed to Step 6. If the master has more data words to write to the CS4953xx, then proceed to Step 5. 3-17 Copyright 2010 Cirrus Logic, Inc. DS732UM10 SPI Port CS4953xx Hardware User’s Manual 5. The master should poll the SCP1_BSY signal until it goes high. If the SCP1_BSY signal is low, it indicates that the CS4953xx is busy performing some task that requires halting the serial control port. Once the CS4953xx is able to receive more data words, the SCP1_BSY signal will go high. Once the SCP1_BSY signal is high, proceed to Step 3. 6. The master finishes the SPI write transaction by driving the CS4953xx SCP1_CS signal high. 3.4.3.3 Performing a Serial SPI Read Information provided in this section is intended as a functional description indicating how an external device (Master) performs an SPI read from the CS4953xx (slave). The system designer must ensure that all timing constraints of the SPI read cycle are met (see the CS4953xx datasheet for timing specifications). When performing a SPI read, the same protocol is used whether reading a single byte or multiple bytes. From a hardware perspective, it makes no difference whether communication is a single byte or multiple bytes of any message length, so long as the correct hardware protocol is followed. The example shown in this section can be generalized to fit any SPI read situation. The flow diagram shown in Figure 3-16, illustrates the sequence of events that define the SPI read protocol. The Serial SPI read protocol is described in Section 3.4.3.4.. START SCP1_IRQ (LOW)? N Y SCP1_CS LOW WRITE ADDRESS BYTE 0x81 READ 4 DATA BYTES SCP1_IRQ STILL LOW? Y N SCP1_CS HIGH Figure 3-16. SPI Read Flow Diagram DS732UM10 Copyright 2010 Cirrus Logic, Inc 3-18 SPI Port CS4953xx Hardware User’s Manual 3.4.3.4 SPI Read Protocol 1. An SPI read transaction is initiated by the CS4953xx slave driving SCP1_IRQ low to indicate that it has data to be read. 2. The master begins a SPI transaction driving chip select (SCP1_CS) low. 3. This is followed by a 7-bit address and the read/write bit set high for a read. So, the master should send 0x81. The 0x81 byte represents the 7-bit SPI address 1000000b, and the least significant bit set to ‘1’, designates a read. 4. After the falling edge of the serial control clock (SCP1_CLK) for the read/write bit, the master can begin clocking out the 4-byte word from the CS4953xx on the MISO pin. Data clocked out of the CS4953xx by the master is valid on the rising edge of SCP1_CLK and data transitions occur on the falling edge of SCP1_CLK. The serial clock should be held low so that eight transitions from low-tohigh-to-low will occur for each byte. 5. If SCP1_IRQ is still low after 4 bytes, then proceed to Step 4 and read another 4 bytes out of the CS4953xx slave. 6. If SCP1_IRQ is high, the SCP1_CS line of CS4953xx should be driven high to end the read transaction. 3-19 Copyright 2010 Cirrus Logic, Inc. DS732UM10 DS732UM10 SCP1_CS SCP1_MOSI 7-bit Address R/ W SCP1_CLK Data Byte 3 (MSB) Data Byte 2 Data Byte 1 Data Byte 0 (LSB) Figure 3-17. Sample Waveform for SPI Write Functional Timing Copyright 2010 Cirrus Logic, Inc SCP1_CS SCP1_MOSI SCP1_MISO 7-bit Address R /W SCP1_CLK Data Byte 3 (MSB) Data Byte 2 Data Byte 1 Data Byte 0 (LS SCP1_IRQ Figure 3-18. Sample Waveform for SPI Read Functional Timing Notes: 2. After going high, IRQ remains high until the CS signal is raised to end the SPI transaction. If there are more bytes to read, IRQ will fall after CS has gone high. 3-20 SPI Port CS4953xx Hardware User’s Manual 1. IRQ remains low until the rising edge of the clock for the last bit of the last byte to be read from the SPI slave. SPI Port CS4953xx Hardware User’s Manual 3.4.3.5 SCP1_IRQ Behavior The SCP1_IRQ signal is not part of the SPI protocol, but is provided so that the slave can signal that it has data to be read. A high-to-low transition on SCP1_IRQ indicates to the master that the slave has data to be read. When a master detects a high-to-low transition on SCP1_IRQ, it should send a Start condition and begin reading data from the slave. SCP1_IRQ is guaranteed to remain low (once it has gone low), until the rising edge of SCP1_CLK for the last bit of the last byte to be transferred out of CS4953xx. If there is no more data to be transferred, SCP1_IRQ will go high at this point. After going high, SCP1_IRQ is guaranteed to stay high until the rising edge of SCP1_CS. This end-of-transfer condition signals the master to end the read transaction by clocking the last data bit out of CS4953xx and then driving the CS4953xx SCP1_CS line high to signal that the read sequence is over. If SCP1_IRQ is still low after the rising edge of SCP1_CLK on the last data bit of the current byte, the master should continue reading data from the serial control port. It should be noted that all data should be read out of the serial control port during one cycle or a loss of data will occur. In other words, all data should be read out of the chip until SCP1_IRQ signals the last byte by going high as described above. §§ 3-21 Copyright 2010 Cirrus Logic, Inc. DS732UM10 SPI Port CS4953xx Hardware User’s Manual DS732UM10 Copyright 2010 Cirrus Logic, Inc 3-22 Parallel Control Availability CS4953xx Hardware User’s Manual Chapter 4 Parallel Control Port 4.1 Parallel Control Availability Note: The Parallel Control Port is currently not supported in the O/S. Please contact your sales representative if you need to use this port. The CS4953xx is equipped with an 8-bit Parallel Control Port that can be used for host communication, providing faster control throughput for the system. The Parallel Control Port is capable of Intel, Motorola, and Multiplexed Intel communication modes. Note: The Parallel Control Port is not available on CS4953xx products using the 128-Pin LQFP package §§ 4-1 Copyright 2010 Cirrus Logic, Inc. DS732UM10 Parallel Control Availability CS4953xx Hardware User’s Manual DS732UM10 Copyright 2010 Cirrus Logic, Inc 4-2 Digital Audio Input Port Description CS4953xx Hardware User’s Manual Chapter 5 Digital Audio Input Interface CS4953xx supports a wide variety of audio data formats through various input and output ports. Hardware availability is entirely dependent on whether the software application code being used supports the required mode. This data sheet presents most of the modes available with the CS4953xx hardware. However, not all of the modes are available with any particular piece of application code. The Application Code User’s Guide for the particular code being used should be referenced to determine if a particular mode is supported. In addition, if a particular mode is desired that is not presented, please contact your sales representative regarding its availability. 5.1 Digital Audio Input Port Description The CS4953xx Digital Audio Input ports (DAI1 and DAI2) are designed to provide five digital audio input pins (10 channels total) that can be configured to load audio samples in a number of formats, or accept multiple stereo channels on a single input port. DAI features include: • Five digital audio input pins capable of supporting many audio formats • Two independent input clock domains (DAI1_SCLK/DAI1_LRCLK or DAI2_SCLK/DAI2_LRCLK) • Up to 32-bit data widths • Sample rates up to 192 kHz • Two simultaneous serial compressed audio data inputs in IEC61937 format for dual-decode support • 2, 4, or 6 channels on a single pin (DAI_DATAx) • Simultaneous 8-channel PCM for multichannel DVD audio and compressed audio 5.1.1 DAI Pin Description The digital audio input port (DAI) on CS4953xx, is used for both compressed and PCM digital audio data input. Table 5-1 shows the mnemonic and pin description of the pins associated with the DAI port on CS4953xx. Table 5-1. Digital Audio Input Port 5-1 Pin Name Pin Description LQFP-144 Pin # LQFP-128 Pin # Pin Type DAI1_LRCLK Sample Rate Clock 1 PCM Audio Input Sample Rate (LeftRight) Clock DAI1_LRCLK is the sample rate input clock for the serial PCM audio data on DAI_DATA[3:0]. 138 30 Input DAI1_SCLK Bit Clock 1 PCM Audio Input Bit Clock DAI1_SCLK is the bit clock input for the serial PCM audio data on DAI_DATA[3:0].. 137 29 Input Copyright 2010 Cirrus Logic, Inc. DS732UM10 Digital Audio Input Port Description CS4953xx Hardware User’s Manual Table 5-1. Digital Audio Input Port (Continued) Pin Name Pin Description LQFP-144 Pin # LQFP-128 Pin # Pin Type DAI1_DATA0 PCM or Compressed Audio Input Data 0 PCM Audio Input Data 0 Serial data input that can accept PCM audio data that is synchronous to DAI_SCLK1/DAI_LRCLK1 or DAO1_SCLK/DAO1_LRCLK.. 135 27 Input DAI1_DATA1 PCM Audio Input Data 1 134 26 Input DAI1_DATA2 PCM Audio Input Data 2 132 24 Input DAI1_DATA3 PCM Audio Input Data 3 131 23 Input DAI2_LRCLK Sample Rate Clock 2 PCM Audio Input Sample Rate (LeftRight) Clock DAI2_LRCLK is the sample rate input clock for the serial PCM audio data on DAI2_DATA. 140 32 Input DAI2_SCLK Bit Clock 2 PCM Audio Input Bit Clock DAI2_SCLK is the bit clock input for the serial PCM audio data on DAI2_DATA. 141 33 Input DAI2_DATA or DAI1_DATA4 PCM or Compressed Audio Input Data PCM Audio Input Data DAI2_DATA is the PCM audio data input synchronous to DAI2_SCLK/ DAI2_LRCLK 142 34 Input 5.1.2 Supported DAI Functional Blocks The CS4953xx DAI has many functional blocks for realizing various audio system configurations. The use of these functions is dependent on the firmware currently available on the CS4953xx. Figure 5-1 shows the functional block diagram of the features currently supported with the CS4953xx DAI. DS732UM10 Copyright 2010 Cirrus Logic, Inc 5-2 Digital Audio Input Port Description CS4953xx Hardware User’s Manual DAI_DATA0 DAI1_DATA0 DAI_DATA1 DMA to Peripheral Bus DAI1_DATA1 DAI_DATA2 DAI1_DATA2 DAI_DATA3 DAI_LRCLK1 DAI_SCLK1 DAI_DATA4 DAI_LRCLK2 DAI_SCLK2 DAI1_DATA3 DAI2_DATA or DAI1_DATA4 Compressed Data Unit Figure 5-1. DAI Port Block Diagram Currently supported are 4 lines of linear PCM input (DAI_DATA[3:0]) and 1 line of compressed audio or linear PCM (DAI_DATA4). These two inputs can have their own clock domains. The firmware currently available can operate on only one of these inputs at a time, providing for compressed data decode, stereo PCM processing, or multichannel PCM processing. Please see AN288, “CS4953xx Firmware User’s Manual” for details about configuring the firmware to select these different inputs to process. 5.1.3 BDI Port Note: Currently not supported in the O/S. The Bursty Data Input (BDI) port on the CS4953xx shares pins with the DAI port pins, and is used for input of bursty compressed audio data. The compressed data is clocked in with a bit clock (BDI_CLK). Bursty compressed audio data input requires the use of a “throttle” signal, BDI_REQ to signal to the host that the CS4953xx is capable of accepting data. Table 5-1 shows the mnemonic and pin description of the pins associated with the Bursty Data Input (BDI) port on CS4953xx. 5-3 Copyright 2010 Cirrus Logic, Inc. DS732UM10 Digital Audio Input Port Description CS4953xx Hardware User’s Manual Table 5-2. Bursty Data Input (BDI) Pins Pin Name Pin Description LQFP-144 Pin # LQFP-128 Pin # Pin Type 140 32 Output 141 33 Input 142 34 Input Data Request, Active Low BDI_REQ BDI_CLK BDI_REQ is the bursty delivery flow control output for bursty audio data. It indicates whether the DSP can accept more data. Bit Clock 2 Bursty Audio Input Bit Clock BDI_CLK is the bit clock input for the bursty serial audio data on BDI_DATA. Compressed Audio Bursty Input Data BDI_DATA BDI_DATA is the serial bursty audio data input that corresponds to the BDI_CLK serial bit clock.. 5.1.4 Digital Audio Formats The DAI has 5 stereo data input pins that are fully configurable including support for I2S, and left-justified formats. DAI ports are programmed for slave operation, where DAIn_LRCLK and DAIn_SCLK are inputs only. This subsection describes some common audio formats that CS4953xx supports. It should be noted that the input ports use up to 32-bit PCM resolution and 16-bit compressed data word lengths. 5.1.4.1 I2S Format Figure 5-2 illustrates the I2S format. For I2S, data is presented most-significant bit (MSB) first, one SCLK delay after the transition of DAIn_LRCLK, and is valid on the rising edge of DAIn_SCLK. For the I2S format, the left subframe is presented when DAIn_LRCLK is low, and the right subframe is presented when DAIn_LRCLK is high. DAO_LRCLK Left Channel Right Channel DAO_SCLK DAO_DATA MSB-1 -2 -3 -4 -5 +5 +4 +3 +2 +1 LSB MSB-1 -2 -3 -4 +5 +4 +3 +2 +1 LSB Figure 5-2. I2S format (Rising Edge Valid SCLK) DS732UM10 Copyright 2010 Cirrus Logic, Inc 5-4 DAI Hardware Configuration CS4953xx Hardware User’s Manual 5.1.4.2 Left-Justified Format Figure 5-3 illustrates the left-justified format with a rising-edge DAIn_SCLK. Data is presented mostsignificant bit first on the first DAIn_SCLK after a DAIn_LRCLK transition and is valid on the rising edge of DAIn_SCLK. For the left-justified format, the left subframe is presented when DAIn_LRCLK is high and the right subframe is presented when DAIn_LRCLK is low. The left-justified format can also be programmed for data to be valid on the falling edge of DAIn_SCLK. L e ft C h a n n e l DAIn_LRCLK R ig ht C h a n n el DAIn_SCLK DAIn_DATA MSB -1 -2 -3 -4 -5 +5 +4 +3 +2 +1 LSB MSB -1 -2 -3 -4 +5 +4 +3 +2 +1 LSB Figure 5-3. Left-justified Format (Rising Edge Valid SCLK) 5.2 DAI Hardware Configuration After code download or soft reset, and before kickstarting the application, the host has the option of changing the default hardware configuration. (Please see AN288, “CS4953xx/CS497xxx Firmware User’s Manual” for more information on kickstarting). In general, the hardware configuration can only be changed immediately after download or after soft reset. Hardware configuration messages are used to physically reconfigure the hardware of the audio decoder, as when enabling or disabling address checking for the serial communication port. Hardware configuration messages are also used to initialize the format (for example, I2S, left justified, and others) for digital data inputs, as well as the data format and clocking options for the digital output port. 5.2.1 DAI Hardware Naming Convention The naming convention of the input hardware configuration is as follows: INPUT A B C D Where A, B, C, and D are the parameters used to fully define the input port. The parameters are defined as follows: 5-5 • A - Data Format • B - SCLK Polarity • C - LRCLK Polarity. • D - DAI Mode Copyright 2010 Cirrus Logic, Inc. DS732UM10 DAI Hardware Configuration CS4953xx Hardware User’s Manual Table 5-3, Table 5-4, Table 5-5, and Table 5-6 show the different values for each parameter as well as the hex message that needs to be sent to configure the port. When creating the hardware configuration message, only one hex message should be sent per parameter. . Table 5-3. Input Data Format Configuration (Input Parameter A) A Value 0 (default) 1 DS732UM10 Data Format Hex Message I2S 24-bit Starting from DAI_D0 to DAI_D4: 0x81800020 0xFFFF0000 0x81400020 0x01001F00 0x81800021 0xFFFF0000 0x81400021 0x01001F00 0x81800022 0xFFFF0000 0x81400022 0x01001F00 0x81800023 0xFFFF0000 0x81400023 0x01001F00 0x81800024 0xFFFF0000 0x81400024 0x01001F00 Left Justified 24-bit Starting from DAI_D0 to DAI_D4: 81800020 FEEF0000 81400020 00001F00 81800021 FEEF0000 81400021 00001F00 81800022 FEEF0000 81400022 00001F00 81800023 FEEF0000 81400023 00001F00 81800024 FEEF0000 81400024 00001F00 Copyright 2010 Cirrus Logic, Inc 5-6 DAI Hardware Configuration CS4953xx Hardware User’s Manual Table 5-3. Input Data Format Configuration (Input Parameter A) (Continued) A Value 2 Data Format DSD Normal Mode Hex Message Starting from DAI_D0 to DAI_D4: 0x81000020 0x00001F00 0x81000021 0x00001F00 0x81000022 0x00001F00 0x81000023 0x00001F00 0x81000024 0x00001F00 0x81000012 0x00001F00 0x81000014 0x00000000 0x81000013 0x83F01F0B 0x81000025 0x1008D11F Table 5-4. Input SCLK Polarity Configuration (Input Parameter B) B Value 0 (default) 1 5-7 SCLK Polarity (Both DAI and CDI Port) Hex Message Data Clocked in on SCLK Rising Edge Starting from DAI_D0 to DAI_D4: 0x81800020 0xFFDFFFFF 0x81800021 0xFFDFFFFF 0x81800022 0xFFDFFFFF 0x81800023 0xFFDFFFFF 0x81800024 0xFFDFFFFF Data Clocked in on SCLK Falling Edge Starting from DAI_D0 to DAI_D4: 0x81400020 0x00200000 0x81400021 0x00200000 0x81400022 0x00200000 0x81400023 0x00200000 0x81400024 0x00200000 Copyright 2010 Cirrus Logic, Inc. DS732UM10 DAI Hardware Configuration CS4953xx Hardware User’s Manual .. Table 5-5. Input LRCLK Polarity Configuration (Input Parameter C) C Value 0 1(default) LRCLK Polarity (Both DAI and CDI Port) HEX Message LRCLK=High indicates Channel 0 (i.e. Left) Starting from DAI_D0 to DAI_D4: 0x81800020 0xFFEFFFFF 0x81800021 0xFFEFFFFF 0x81800022 0xFFEFFFFF 0x81800023 0xFFEFFFFF 0x81800024** 0xFFEFFFFF LRCLK=Low indicates Channel 1 (i.e. Left) Starting from DAI_D0 to DAI_D4: 0x81400020 0x00100000 0x81400021 0x00100000 0x81400022 0x00100000 0x81400023 0x00100000 0x81400024 0x00100000 ** Required for 1-line software header finder in I2S format. For more information about the software header finder, see index 0x0001 in Table 7 of AN288, CS4953xx/CS497xxx Firmware User’s Manual. Table 5-6. Input DAI Mode Configuration (Input Parameter D) D Value Description HEX Message 0 (default) DAI2_LRCLK/SCLK – Slave Compressed Data Input on DAI_D4 0x81000025 0X1008D110 1 DAI1_LRCLK/SCLK - Slave Compressed Data Input on DAI_D0 with only DAI_D4 enabled 0x81000025 0X0000D190 2 DAI2_LRCLK/SCLK - Slave PCM Data Input on DAI_D4 Routed to Center and LFE 0x81000025 0X1558E11F 3 DAI1_LRCLK/SCLK - Slave PCM Data Input on DAI_D0 Routed to Center and LFE 0x81000025 0X1008C10F 4 DAI1_LRCLK/SCLK - Slave Compressed Data on DAI_D0 and DAI_D0 to DAI_D4 enabled 0x81000025 0X0000D11F §§ DS732UM10 Copyright 2010 Cirrus Logic, Inc 5-8 Description of Digital Audio Input Port when Configured for DSD Input CS4953xx Hardware User’s Manual Chapter 6 Direct Stream Data (DSD) Input Interface CS4953xx is capable of accepting Direct Stream Data (DSD) audio data directly. DSD data differs from PCM in that audio is provided as a contiguous stream of 1’s and 0’s on a single line. There is no framing clock (LRCLK), and there is only one channel per line. The CS4953xx supports internal conversion of DSD data to PCM which can then be processed by the DSP. 6.1 Description of Digital Audio Input Port when Configured for DSD Input The CS4953xx DSD port is designed to accept DSD audio data from up to 6 pins simultaneously (6 channels total) DSD features include: • Six DSD Input Pins • One Shared DSD_CLK for All Data Pins • Supports 44.1 kHz (1 Fs), 88.2 kHz (2 Fs), and 176.4 kHz (4 Fs) Sample Rates 6.1.1 DSD Pin Description Table 6-1 shows the mnemonic and pin description of the pins associated with the DSD port on CS4953xx. Table 6-1. DSDl Audio Input Port Pin Name Pin Description LQFP-144 LQFP-128 Pin Type Pin # Pin # Bit clock used for latching the DSD audio data. This clock is shared by DSD[5:0]. 137 29 Input DSD0 DSD Audio Input 0 135 27 Input DSD1 DSD Audio Input 1 134 26 Input DSD2 DSD Audio Input 2 132 24 Input DSD3 DSD Audio Input 3 131 23 Input DSD4 DSD Audio Input 4 142 34 Input DSD5 DSD Audio Input 5 138 30 Input DSD_CLK 6.1.2 Supported DSD Functional Blocks Figure 6-1 below shows the functional block diagram of the features currently supported with the CS4953xx DSD Port. 6-1 Copyright 2010 Cirrus Logic, Inc. DS732UM10 Description of Digital Audio Input Port when Configured for DSD Input CS4953xx Hardware User’s Manual DSD0 DSD_DATA0 DSD1 DMA to Peripheral Bus DSD_DATA1 DSD2 DSD_DATA2 DSD3 DSD_CLK DSD_DATA3 DSD4 DSD_DATA4 DSD5 DSD_DATA5 Figure 6-1. DSD Port Block Diagram §§ DS732UM10 Copyright 2010 Cirrus Logic, Inc 6-2 Digital Audio Output Port Description CS4953xx Hardware User’s Manual Chapter 7 Digital Audio Output Interface The CS4953xx has two output ports - Digital Audio Output port 1 & 2 (DAO1 & DAO2). Each port can output 8 channels of up to 32-bit PCM data. The Digital Audio Output ports are both implemented with a modified 3-wire Inter-IC Sound (I2S) interface along with an oversampling master clock (MCLK). The I2S interface includes a frame clock at the current sampling frequency (LRCLK), a bit clock for clocking the bits of the audio word (SCLK), and 4 audio data output signals (DATA[3:0]). Each of the output data signals can be connected to the digital stereo input of an audio digital-to-analog converter (DAC) for up to 8 channels of stereo PCM output per DAO port for a total of 16 digital audio output channels. Each DAO port may slave to an externally generated SCLK and LRCLK or it may master these clocks if MCLK is provided. Each port can be configured as having an independent clock domain in slave mode, or the ratio of the two clocks can be set to even multiples of each other in master mode. Additionally, the two ports can be ganged together into a single clock domain. The port supports data rates from 32 kHz to 192 kHz. Each port can also be configured to provide a 32-kHz to 192-kHz S/PDIF transmitter (XMTA and XMTB) as an output. Figure 7-1 illustrates the DAO block diagram. 7.1 Digital Audio Output Port Description 7.1.1 DAO Pin Description Figure 7-1 identifies the pins associated with the Digital Audio Output Ports (DAO1 and DAO2). Table 7-1. Digital Audio Output (DAO1 & DAO2) Pins LQFP-144 LQFP-128 Pin # Pin # Pin Type Pin Name Pin Description DAO1_LRCLK Sample Rate Clock 22 54 I/O DAO1_SCLK Bit Clock 20 52 I/O DAO1_DATA0 Digital Audio Output 19 51 Output DAO1_DATA1 Digital Audio Output 17 49 Output DAO1_DATA2 Digital Audio Output 16 48 Output DAO1_DATA3/XMTA Digital Audio Output 15 47 Output DAO2_LRCLK Sample Rate Clock 14 46 I/O DAO2_SCLK Bit Clock 12 44 I/O DAO2_DATA0 Digital Audio Output 11 43 Output DAO2_DATA1 Digital Audio Output 7 39 Output DAO2_DATA2 Digital Audio Output 6 38 Output DAO2_DATA3/XMTB Digital Audio Output 5 35 Output DAO_MCLK Master Clock 8 40 I/O DAO_MCLK is the master clock and is firmware configurable to be either an input (slave) or an output (master). If MCLK is to be used as an output, the internal PLL must be used. As an output MCLK can be configured to provide a 128Fs, 256Fs, or 512Fs clock, where Fs is the output sample rate. 7-1 Copyright 2010 Cirrus Logic, Inc. DS732UM10 Digital Audio Output Port Description CS4953xx Hardware User’s Manual DAO1_SCLK is the bit clock used to clock data out on DAO1_DATA[3:0]. DAO1_LRCLK is the data framing clock whose frequency is equal to the sampling frequency for the DAO1 data outputs. DAO1_DATA[3:0] are the data outputs and are typically configured for outputting two channels of I2S or left-justified PCM data. DAO1_DATA0 may also be configured to provide output for four or six channels of PCM data. The DAO1_DATA3 (XMTA) pin can alternatively serve as an S/PDIF transmitter output. DAO2_SCLK is the bit clock used to clock data out on DAO2_DATA[3:0]. DAO2_LRCLK is the data framing clock which has a frequency equal to the sampling frequency for the DAO2 data outputs. DAO2_DATA[3:0] are the data outputs and are typically configured for outputting two channels of I2S or left-justified PCM data. DAO2_DATA0 may also be configured to provide output for four or six channels of PCM data. The DAO2_DATA3 (XMTB) pin can alternatively serve as an S/PDIF transmitter output.. DAO1_DATA0 DAO1_DATA0 DAO1_DATA1 DAO1_DATA1 DAO1_DATA2 Peripheral Bus to DMA DAO1_DATA2 DAO1_DATA3, XMTA DAO1_DATA3 SPDIF ENCODER DAO2_DATA0 DAO2_DATA0 DAO2_DATA1 DAO2_DATA1 DAO2_DATA2 DAO2_DATA2 DAO2_DATA3, XMTB DAO2_DATA3 SPDIF ENCODER Clock Manager DAO_MCLK DAO1_SCLK_LRCLK DAO2_SCLK_LRCLK Figure 7-1. DAO Block Diagram DS732UM10 Copyright 2010 Cirrus Logic, Inc 7-2 Digital Audio Output Port Description CS4953xx Hardware User’s Manual 7.1.2 Supported DAO Functional Blocks As mentioned earlier in the previous section, two DAO ports, DAO1_DATA3 and DAO2_DATA3, are unique in that they are designed to serve as either an output for I2S or left-justified PCM data or as S/PDIF transmitters (XMTA and XMTB). When configured as S/PDIF transmitters, the ports encode digital audio data according to the Sony®/Philips® Digital Interface Format (S/PDIF), also known as IEC60958, or the AES/EBU interface format. Please see Figure 7-1 for a block diagram of the supported functional blocks for the DAO on the CS4953xx 7.1.3 DAO Interface Formats The DAO interface has 8 stereo data outputs that are fully configurable including support for I2S, leftjustified, and multichannel (one-line data mode) formats. This section describes some common audio formats that the CS4953xx DAO interface supports. It should be noted that the digital output ports provide up to 32-bit PCM resolution. Note: DAO1_DATAx is valid with respect to DAO1_SCLK/DAO1_LRCK and DAO2_DATAx is valid with respect to DAO2_SCLK/DAO2_LRCK 7.1.3.1 I2S Format In this format, data is presented most-significant bit (MSB) first, one DAO_SCLK delay after the transition of DAO_LRCLK, and is valid on the rising edge of DAO_SCLK. The left subframe is presented when DAO_LRCLK is low, and the right subframe is presented when DAO_LRCLK is high. Figure 7-2 provides details on I2S compatible (maximum of 32 bits) serial audio formats. DAO_LRCLK Left Channel Right Channel DAO_SCLK DAO_DATA MSB-1 -2 -3 -4 -5 +5 +4 +3 +2 +1 LSB MSB-1 -2 -3 -4 +5 +4 +3 +2 +1 LSB Figure 7-2. I2S Compatible Serial Audio Formats (Rising Edge Valid) 7.1.3.2 Left-Justified Format Figure 7-3 illustrates the left-justified (LJ) format with a rising edge DAO_SCLK. Data is presented mostsignificant bit first on the first DAO_SCLK after a DAO_LRCLK transition and is valid on the rising edge of DAO_SCLK. The left subframe is presented when DAO_LRCLK is high and the right subframe is presented when DAO_LRCLK is low. This format can also be programmed for data to be valid on the falling edge of DAO_SCLK. L e ft C h a n n e l DAO_LRCLK R ig ht C h a n n el DAO_SCLK DAO_DATA MSB -1 -2 -3 -4 -5 +5 +4 +3 +2 +1 LSB MSB -1 -2 -3 -4 +5 +4 +3 +2 +1 LSB Figure 7-3. Left-justified Digital Audio Formats (Rising Edge Valid DAO_SCLK) 7-3 Copyright 2010 Cirrus Logic, Inc. DS732UM10 Digital Audio Output Port Description CS4953xx Hardware User’s Manual 7.1.3.3 One-line Data Mode Format (Multichannel) The CS4953xx is capable of multiplexing all digital audio outputs on one line, as illustrated in Figure 7-4. This mode is available only through special request. Please contact your local Cirrus representative for further details. DA O _LRC LK DA O _SC LK DA O _DATA M SB L SB M C lo c k s Pe r C ha n ne l M SB LSB M SB M C lo c k s P e r C h a n ne l LSB M C lo c k s P e r C ha n ne l MSB LSB M SB M C lo c k s Pe r C ha nn e l L SB M C lo c k s Pe r C h a n ne l M SB LSB MSB M C lo c k s Pe r C ha n nel Figure 7-4. One-line Data Mode Digital Audio Formats 7.1.4 DAO Hardware Configuration The DAO naming convention is as follows: OUTPUT A B C D E F where the parameters are defined as: • A - DAO Clock Mode (Master/Slave for DAO_LRCLK and DAO_SCLK) • B - DAO1/DAO2 Clock Relationship • C - DAO_MCLK, DAO_SCLK, DAO_LRCLK Frequency Ratio • D - Data Format (I2S, Left Justified) • E - DAO_LRCLK Polarity • F - DAO_SCLK Polarity • G - Output Channel Configuration Table 7-2, Table 7-3, Table 7-4, Table 7-5, Table 7-6, and Table 7-7 show the different values for each parameter as well as the hex message that needs to be sent to configure the port. When creating the hardware configuration message, only one hex message should be sent per parameter. Note: All DAO hardware config messages must be sent to DSPB. For more details on sending messages to DSP B refer to AN288, section 2.1.4 DS732UM10 Copyright 2010 Cirrus Logic, Inc 7-4 Digital Audio Output Port Description CS4953xx Hardware User’s Manual Table 7-2 shows values and messages for DAO output clock mode configuration parameters. Table 7-2. Output Clock Mode Configuration (Parameter A) DAO 1 & 2 Modes (MCLK, LRCLK and SCLK)a DAO_MCLK - Slave 0 DAO1_LRCLK - Slave (default) DAO1_SCLK - Slave DAO2_LRCLK - Slave DAO2_SCLK - Slave DAO_MCLK - Slave 1 DAO1_LRCLK - Master DAO1_SCLK - Master DAO2_LRCLK - Master DAO2_SCLK - Master DAO_MCLK - Slave DAO1_LRCLK - Slave 2 DAO1_SCLK - Slave DAO2_LRCLK - Master DAO2_SCLK - Master A Value Hex Message 0x8140002C 0x00002000 0x8100002D 0x00002000 0x8180002C 0xFFFFDFFF 0x8180002D 0xFFFFDFFF 0x8140002C 0x00002000 0x8180002D 0xFFFFDFFF a. A0 always goes with parameter B0. B0 is located in Table 7-3.. Please refer to the Table 7-3, Table 7-4, Table 7-5, Table 7-6, and Table 7-7 for a visual example of the clocking directions for the settings in Table 7-2. Table 7-3 shows values and messages for the data format configuration parameters. Table 7-3. DAO1 & DAO2 Clocking Relationship Configuration (Parameter B) B Value DAO1 & DAO2 Clocking Relationship Hex Message DAO2 dependent on DAO1 clocks 0 Note:: DA02_LRCLK & DA02_SCLK are driven by DA01_LRCLK & DA01_SCLK 1 DAO2 independent of DAO1 clocks (default) 7-5 Copyright 2010 Cirrus Logic, Inc. 0x8140002B 0x00002000 0x8180002B 0xFFFFDFFF DS732UM10 Digital Audio Output Port Description CS4953xx Hardware User’s Manual Table 7-4 shows values and messages for the output DAO_SCLK/LRCLK frequency configuration parameter. Table 7-4. Output DAO_SCLK/LRCLK Configuration (Parameter C) C Value DAO_SCLK Frequency DAO_MCLK = 256 FS DAO1_SCLK = DAO_MCLK / 4 = 64 FS 0 DAO1_LRCLK = DAO1_SCLK / 64 = FS (default) DAO2_SCLK = DAO_MCLK / 4 = 64 FS DAO2_LRCLK = DAO2_SCLK / 64 = FS DAO_MCLK = 256 FS 1 DAO1_SCLK = DAO_MCLK / 2 = 128 FS DAO1_LRCLK = DAO1_SCLK / 128 = FS DAO2_SCLK = DAO_MCLK / 2= 128 FS DAO2_LRCLK = DAO2_SCLK / 128 = FS DAO_MCLK = 256 FS 2 DAO1_SCLK = DAO_MCLK / 1 = 256 FS DAO1_LRCLK = DAO1_SCLK / 256 = FS DAO2_SCLK = DAO_MCLK / 1= 256 FS DAO2_LRCLK = DAO2_SCLK / 256 = FS DAO_MCLK = 128 FS 3 DAO1_SCLK = DAO_MCLK / 2 = 64 FS DAO1_LRCLK = DAO1_SCLK / 64 = FS DAO2_SCLK = DAO_MCLK / 2= 64 FS DAO2_LRCLK = DAO2_SCLK / 64 = FS DAO_MCLK = 128 FS 4 DAO1_SCLK = DAO_MCLK / 1 = 128 FS DAO1_LRCLK = DAO1_SCLK / 128 = FS DAO2_SCLK = DAO_MCLK / 1 = 128 FS DAO2_LRCLK = DAO2_SCLK / 128 = FS DAO_MCLK = 512 FS 5 DAO1_SCLK = DAO_MCLK / 8 = 64 FS DAO1_LRCLK = DAO1_SCLK / 64 = FS DAO2_SCLK = DAO_MCLK / 8= 64 FS DAO2_LRCLK = DAO2_SCLK / 64 = FS DS732UM10 Copyright 2010 Cirrus Logic, Inc Hex Message 0x8100003D 0x00007711 0x8100003E 0x00007711 0x8180002C 0xFFFFFF8F 0x8140002C 0x00000020 0x8100003D 0x00017701 0x8100003E 0x00017701 0x8180002C 0xFFFFFF8F 0x8140002C 0x00000040 0x8100003D 0x00037700 0x8100003E 0x00037700 0x8180002C 0xFFFFFF8F 0x8140002C 0x00000060 0x8100003D 0x00007701 0x8100003E 0x00007701 0x8180002C 0xFFFFFF8F 0x8140002C 0x00000020 0x8100003D 0x00017700 0x8100003E 0x00017700 0x8180002C 0xFFFFFF8F 0x8140002C 0x00000040 0x8100003D 0x00007713 0x8100003E 0x00007713 0x8180002C 0xFFFFFF8F 0x8140002C 0x00000020 7-6 Digital Audio Output Port Description CS4953xx Hardware User’s Manual Table 7-4. Output DAO_SCLK/LRCLK Configuration (Parameter C) (Continued) C Value DAO_SCLK Frequency DAO_MCLK = 512 FS 6 DAO1_SCLK = DAO_MCLK / 4 = 128 FS DAO1_LRCLK = DAO1_SCLK / 128 = FS DAO2_SCLK = DAO_MCLK / 4 = 128 FS DAO2_LRCLK = DAO2_SCLK / 128 = FS DAO_MCLK = 512 FS 7 DAO1_SCLK = DAO_MCLK / 2 = 256 FS DAO1_LRCLK = DAO1_SCLK / 256 = FS DAO2_SCLK = DAO_MCLK / 2 = 256 FS DAO2_LRCLK = DAO2_SCLK / 256 = FS DAO_MCLK = 384 FS 8 DAO1_SCLK = DAO_MCLK / 4 = 96 FS DAO1_LRCLK = DAO1_SCLK / 96 = FS DAO2_SCLK = DAO_MCLK / 4 = 96 FS DAO2_LRCLK = DAO2_SCLK / 96 = FS DAO_MCLK = 384 FS 9 DAO1_SCLK = DAO_MCLK / 2 = 192 FS DAO1_LRCLK = DAO1_SCLK / 192 = FS DAO2_SCLK = DAO_MCLK / 2 = 192 FS DAO2_LRCLK = DAO2_SCLK / 192 = FS DAO_MCLK = 1024 Fs 10 DAO1_SCLK = DAO_MCLK/16 = 64 Fs DAO1_LRCLK = DAOn_SCLK/64 = Fs DAO2_SCLK = DAO_MCLK/16 = 64 Fs DAO2_LRCLK = DAOn_SCLK/64 = Fs DAO_MCLK = 64 Fs 11 DAO1_SCLK = DAO_MCLK/1 = 64 Fs DAO1_LRCLK = DAOn_SCLK/64 = Fs DAO2_SCLK = DAO_MCLK/1 = 64 Fs DAO2_LRCLK = DAOn_SCLK/64 = Fs 7-7 Copyright 2010 Cirrus Logic, Inc. Hex Message 0x8100003D 0x00017711 0x8100003E 0x00017711 0x8180002C 0xFFFFFF8F 0x8140002C 0x00000040 0x8100003D 0x00037701 0x8100003E 0x00037701 0x8180002C 0xFFFFFF8F 0x8140002C 0x00000060 0x8100003D 0x00037211 0x8100003E 0x00037211 0x8180002C 0xFFFFFF8F 0x8140002C 0x00000030 0x8100003D 0x00077201 0x8100003E 0x00077201 0x8180002C 0xFFFFFF8F 0x8140002C 0x00000050 0x8100003D 0x00007717 0x8100003E 0x00007717 0x8180002C 0xFFFFFF8F 0x8140002C 0x00000020 0x8100003D 0x00007700 0x8100003E 0x00007700 0x8180002C 0xFFFFFF8F 0x8140002C 0x00000020 DS732UM10 Digital Audio Output Port Description CS4953xx Hardware User’s Manual Table 7-4. Output DAO_SCLK/LRCLK Configuration (Parameter C) (Continued) C Value DAO_SCLK Frequency DAO_MCLK = 384 Fs 12 DAO1_SCLK = DAO_MCLK/6 = 64 Fs DAO1_LRCLK = DAOn_SCLK/64 = Fs DAO2_SCLK = DAO_MCLK/6 = 64 Fs DAO2_LRCLK = DAOn_SCLK/64 = Fs DAO_MCLK = 768 Fs 13 DAO1_SCLK = DAO_MCLK/12 = 64 Fs DAO1_LRCLK = DAOn_SCLK/64 = Fs DAO2_SCLK = DAO_MCLK/12 = 64 Fs DAO2_LRCLK = DAOn_SCLK/64 = Fs DAO_MCLK = 1152 Fs 14 DAO1_SCLK = DAO_MCLK/18 = 64 Fs DAO1_LRCLK = DAOn_SCLK/64 = Fs DAO2_SCLK = DAO_MCLK/18 = 64 Fs DAO2_LRCLK = DAOn_SCLK/64 = Fs DAO_MCLK = 192 Fs 15 DAO1_SCLK = DAO_MCLK/3 = 64 Fs DAO1_LRCLK = DAOn_SCLK/64 = Fs DAO2_SCLK = DAO_MCLK/3 = 64 Fs DAO2_LRCLK = DAOn_SCLK/64 = Fs [DAO_MCLK = 576 Fs 16 DAO1_SCLK = DAO_MCLK/9 = 64 Fs DAO1_LRCLK = DAOn_SCLK/64 = Fs DAO2_SCLK = DAO_MCLK/9 = 64 Fs DAO2_LRCLK = DAOn_SCLK/64 = Fs DS732UM10 Copyright 2010 Cirrus Logic, Inc Hex Message 0x8100003D 0x00007712 0x8100003E 0x00007712 0x8180002C 0xFFFFFF8F 0x8140002C 0x00000020 0x8100003D 0x00007732 0x8100003E 0x00007732 0x8180002C 0xFFFFFF8F 0x8140002C 0x00000020 0x8100003D 0x00007752 0x8100003E 0x00007752 0x8180002C 0xFFFFFF8F 0x8140002C 0x00000020 0x8100003D 0x00007702 0x8100003E 0x00007702 0x8180002C 0xFFFFFF8F 0x8140002C 0x00000020 0x8100003D 0x00007722 0x8100003E 0x00007722 0x8180002C 0xFFFFFF8F 0x8140002C 0x00000020 7-8 Digital Audio Output Port Description CS4953xx Hardware User’s Manual Table 7-5 shows values and messages for the data format configuration parameters. Table 7-5. Output Data Format Configuration (Parameter D) D Value 0 (default) 1 7-9 DAO Data Format Of DAO_DATA0, 1, 2 (or DAO_DATA0 for Multichannel Modes) Hex Message I2S 32-bit 0x81000030 0x00000001 0x81000031 0x00000001 0x81000032 0x00000001 0x81000033 0x00000001 0x81000034 0x00000001 0x81000035 0x00000001 0x81000036 0x00000001 0x81000037 0x00000001 Left Justified 32-bit 0x81000030 0x00000000 0x81000031 0x00000000 0x81000032 0x00000000 0x81000033 0x00000000 0x81000034 0x00000000 0x81000035 0x00000000 0x81000036 0x00000000 0x81000037 0x00000000 0x8180002C 0xFFFFFBFF 0x8180002D 0xFFFFFBFF Copyright 2010 Cirrus Logic, Inc. DS732UM10 Digital Audio Output Port Description CS4953xx Hardware User’s Manual Table 7-5. Output Data Format Configuration (Parameter D) (Continued) D Value 2 DAO Data Format Of DAO_DATA0, 1, 2 (or DAO_DATA0 for Multichannel Modes) Hex Message TDM on DAO1_D0 0x81000030 0x00011701 0x81000031 0x00000001 0x81000032 0x00000001 0x81000033 0x00000001 0x81000034 0x00000001 0x81000035 0x00000001 0x81000036 0x00000001 0x81000037 0x00000001 Table 7-6 shows values and messages for the DAO_LRCLK polarity configuration parameter. Table 7-6. Output DAO_LRCLK Polarity Configuration (Parameter E) E Value DAO_LRCLK Polarity 0 LRCLK=Low indicates Left Subchannel (default) 1 LRCLK=Low indicates Right Subchannel Hex Message 0x8140002C 0x00000700 0x8140002D 0x00000700 0x8180002C 0xFFFFFBFF 0x8140002C 0x00000300 0x8180002D 0xFFFFFBFF 0x8180002D 0x00000300 Table 7-7 shows values and messages for the DAO_SCLK polarity configuration parameter. Table 7-7. Output DAO_SCLK Polarity Configuration (Parameter F) F Value DAO_SCLK Polarity 0 Data Valid on Rising Edge (clocked out (default) on falling) 1 DS732UM10 Data Valid on Falling Edge (clocked out on rising) Copyright 2010 Cirrus Logic, Inc Hex Message 0x8180002C 0xFFFFEFFF 0x8180002D 0xFFFFEFFF 0x8140002C 0x00001000 0x8140002D 0x00001000 7-10 Digital Audio Output Port Description CS4953xx Hardware User’s Manual Table 7-8 shows values and messages for the output channel configuration parameter. Table 7-8. Output Channel Configuration (Parameter G) G Value Channel Configuration 0 (default) 2 Channels 1 6 Channels Hex Message 0x8180002C 0xFFFFF8FF 0x8140002C 0x00000700 0x8180002C 0xFFFFF8FF 0x8140002C 0x00000400 7.1.5 S/PDIF Transmitter Two S/PDIF transmitters are provided on the XMTA and XMTB pins that can output an IEC60958compliant S/PDIF stream. The modulation clock source for the S/PDIF transmitter is the clock present on the DAO_MCLK pin. The sample rate of the transmitter will be the same setting as for the respective DAO port. The DSP has an internal multiplexer that can be used to route an external S/PDIF signal from the XMTA_IN or XMTB_IN pin directly to the respective XMTA/XMITB S/PDIF output pin instead of the internally generated S/PDIF signal. To summarize the XMTA/XMITB S/PDIF output pins can be configured as: • I2S output - Default • S/PDIF Transmitter - Sent config from Table 7-10 • DSP Bypass - Send config from Table 7-11 The DSP Bypass config is typically used to route a S/PDIF stream from input to the output for recording applications or as a PCM bypass for dual-zone applications. A soft reset is required when switching between any of the above modes. Table 7-9. S/PDIF Transmitter Pins 7-11 LQFPLQFP144 Pin # 128 Pin # Pin Type Pin Name Pin Description XMTA_IN S/PDIF Input for XMTA mux The XMTA_IN S/PDIF inputs is muxed with XMTA to allow switching the S/PDIF output between the internal and external sources 2 - Input XMTB_IN S/PDIF Input for XMTB mux The XMTB_IN S/PDIF inputs is muxed with XMTB to allow switching the S/PDIF output between the internal and external sources 92 - Input DAO1_DATA3/XMTA S/PDIF Audio Output A 15 47 Output DAO2_DATA3/XMTB S/PDIF Audio Output B 5 35 Output Copyright 2010 Cirrus Logic, Inc. DS732UM10 Digital Audio Output Port Description CS4953xx Hardware User’s Manual Table 7-10. S/PDIF Transmitter Configuration Description Enable SPDIF on Output A on DAO1_DATA3/XMTA (MCLK=256 Fs) Enable SPDIF on Output A on DAO1_DATA3/XMTA (MCLK=512 Fs) Enable SPDIF on Output A on DAO1_DATA3/XMTA (MCLK=1024 Fs) Enable SPDIF on Output B on DAO2_DATA3/XMTB (MCLK=256 Fs) Enable SPDIF on Output B on DAO2_DATA3/XMTB (MCLK=512 Fs) Enable SPDIF on Output B on DAO2_DATA3/XMTB (MCLK=1024 Fs) Hex Message 0x8100002e 0x00005080 0x8100002e 0x00005080 0x8180003C 0xFFFFFF8F 0x8140003C 0x00000010 0x8100002e 0x00005080 0x8180003C 0xFFFFFF8F 0x8140003C 0x00000030 0x8100002f 0x00005080 0x8100002f 0x00005080 0x8180003C 0xFFFFFF8F 0x8140003C 0x00000010 0x8100002f 0x00005080 0x8180003C 0xFFFFFF8F 0x8140003C 0x00000030 Table 7-11. DSP Bypass Configuration DAO_SCLK Polarity Route XMTA_IN to DAO1_DATA3/XMTA and XMTB_IN to DAO2_DATA3/XMTB Hex Message 0x81000052 0x0000001B 0x81000052 Route XMTA_IN to DAO1_DATA3/XMTA 0x00000013 0x81000052 Route XMTB_IN to DAO2_DATA3/XMTB 0x0000000b 0x81000052 Disable DSP Bypass 0x00000003 §§ DS732UM10 Copyright 2010 Cirrus Logic, Inc 7-12 SDRAM Controller CS4953xx Hardware User’s Manual Chapter 8 External Memory Interfaces 8.1 SDRAM Controller The CS4953xx supports a glueless external SDRAM interface to extend the data and/or program memory of the DSP during runtime. The CS4953xx SDRAM controller provides two-port access to X, Y, and P memory space, a four-word read buffer, and a double-buffered four-word write buffer. One SDRAM controller port is dedicated to P memory space and the second port is shared by X and Y memories. An arbiter is wrapped around the first port to provide external SDRAM access through both X and Y memory space from 8000H-FFFFH. The second port is connected to provide external SDRAM access through P memory space from 8000H-FFFFH. The X/Y port has dual write buffers and a single read buffer. The P memory port has a single read buffer. One of these buffers contains four 32-bit words (128 bits). Every miss to the read buffer will cause the SDRAM controller to burst eight 16-bit reads on the SDRAM interface. Figure 8-1 shows a block diagram of the SDRAM external memory control interface for the CS4953xx chip. X BA[1:0] X RAM SD_ADDR[12:0] SD_CLKIN SD_CAS SD_RAS SD_CS ARBITER SDRAM INTERFACE SD_DATA[15:0] Y RAM Y Y ROM SD_CLKEN SD_CLKOUT P RAM MEMORY CONTROLLER X ROM SD_WE P SD_DQM0 SD_DQM1 P ROM Figure 8-1. SDRAM Interface Block Diagram 8-1 Copyright 2010 Cirrus Logic, Inc. DS732UM10 Flash Memory Controller CS4953xx Hardware User’s Manual 8.2 Flash Memory Controller The CS4953xx provides a glueless external Flash interface that supports connection to an external Flash or EEPROM for code storage. This allows for products to be field-upgraded as new audio algorithms are developed. The Flash controller allows autobooting to occur from a parallel Flash or EEPROM device. Coefficients for filters may also be stored and recalled from parallel Flash or EEPROM. 8.2.1 Flash Controller Interface The Flash controller allows the CS4953xx DSP to autoboot from a parallel Flash or EEPROM device. Both Flash and EEPROM can be accessed using 8-bit, 16-bit, and 32-bit data modes (1-byte, 2-byte, and 4-byte words) and using an 8-bit or 16-bit data bus, where the word width is the number of bytes per transfer, and the data bus size is the width of the physical interface to Flash. For example, an 8-bit data bus setting uses only 8 data pins EXT_D[7:0] whereas the 16-bit data bus setting uses 16 data pins (EXT_D[15:0]). 8.3 SDRAM/Flash Controller Interface The physical interface of the SDRAM controller consists of 16 data pins (SD_DATA[15:0]), 13 address pins (SD_ADDR[12:0]), 2 bank address pins (SD_BA[1:0]), and 9 control pins (SD_CS, SD_WE, SD_DQM1, SD_DQM0, SD_CAS, SD_RAS, SD_CLKOUT, SD_CLKIN, SD_CLKEN). SD_CS is the SDRAM chip select pin. The address and data pins are shared with the Flash interface. The CS4953xx supports SDRAMs from 2 Mbytes to 64 Mbytes with various row, bank, and column configurations. The size can be configured in the DynamicConfig0 register listed in Table 8-2. Timing parameters of the SDRAM port can be configured to meet various SDRAM requirements as described in Table 8-2. The default timing parameters have been chosen and tested to meet the requirements of Hynix HY57V641620HG-H. By default, the SDRAM port is configured for 64 Mbits with 4 banks, 12 rows, and 8 columns with a RAS and CAS latency of 3. The physical interface of the Flash controller consists of 16 data pins (EXT_D[15:0]), 20 address pins (EXT_A[19:0]), and 4 control pins (EXT_CS1, EXT_CS2, EXT_OE, EXT_WE). The address and data pins are shared with the SDRAM interface. EXT_CS1 is the Flash or EEPROM chip select pin. EXT_CS2 is not supported. The Flash interface supports up to 1M x 8 addressable space (512k x 16 bits of Flash). Data in Flash is stored big-endian, i.e. more significant bytes in a multi-byte word have lower addresses. Note: When connected to a 16 Mbit SDRAM, the CS4953xx uses only SD_BA1 for bank selection. 8.3.1 SDRAM/Flash Interface Signals Table 8-1 shows the signal names, descriptions, and pin number of the signals associated with the external SDRAM/Flash memory control port on the CS4953xx chip. Table 8-1. SDRAM Interface Signals Signal Name Signal Description LQFP-144 Pin # LQFP-128 Pin # Pin Type SD_CLKOUT SDRAM clock output. This output is tristated when SDRAM interface is not used. 51 80 Output SD_CLKIN SDRAM Clock input Connects to trace from SDRAM device CLKIN pin. 52 81 Input SD_CLKEN SDRAM Clock Enable Output 53 82 Output DS732UM10 Copyright 2010 Cirrus Logic, Inc 8-2 SDRAM/Flash Controller Interface CS4953xx Hardware User’s Manual Table 8-1. SDRAM Interface Signals (Continued) Signal Name 8-3 Signal Description LQFP-144 Pin # LQFP-128 Pin # Pin Type SD_RAS SDRAM Row Address Strobe 80 109 Output SD_CAS SDRAM Column Address Strobe 79 108 Output SD_CS SDRAM Chip Select 81 110 Output SD_DQM0 SDRAM Data Mask 0 28 57 Output SD_DQM1 SDRAM Data Mask 1 50 79 Output SD_WE SDRAM Write Enable 78 107 Output SD_A0/EXT_A0 SDRAM/Flash Address 0 72 102 Output SD_A1/EXT_A1 SDRAM/Flash Address 1 71 101 Output SD_A2/EXT_A2 SDRAM/Flash Address 2 70 99 Output SD_A3/EXT_A3 SDRAM/Flash Address 3 68 97 Output SD_A4/EXT_A4 SDRAM/Flash Address 4 67 96 Output SD_A5/EXT_A5 SDRAM/Flash Address 5 64 93 Output SD_A6//EXT_A6 SDRAM/Flash Address 6 62 91 Output SD_A7/EXT_A7 SDRAM/Flash Address 7 61 90 Output SD_A8/EXT_A8 SDRAM/Flash Address 8 59 88 Output SD_A9/EXT_A9 SDRAM/Flash Address 9 58 87 Output SD_A10/EXT_A10 SDRAM/Flash Address 10 74 103 Output SD_A11/EXT_A11 SDRAM/Flash Address 11 56 85 Output SD_A12/EXT_A12 SDRAM/Flash Address 12 55 84 Output SD_BA0/EXT_A13a SDRAM Bank Address 0/Flash Address 13 75 104 Input SD_BA1/EXT_A141 SDRAM Bank Address 1/Flash Address 14 77 106 Input EXT_A15 Flash Address 15 82 111 Output EXT_A16 Flash Address 16 84 113 Output EXT_A17 Flash Address 17 85 114 Output EXT_A18 Flash Address 18 87 116 Output EXT_A19 Flash Address 19 88 117 Output SD_D0/EXT_D0 SDRAM/Flash Bidirectional Data Bit 0 39 68 BiDir SD_D1/EXT_D1 SDRAM/Flash Bidirectional Data Bit 1 37 65 BiDir SD_D2/EXT_D2 SDRAM/Flash Bidirectional Data Bit 2 35 64 BiDir Copyright 2010 Cirrus Logic, Inc. DS732UM10 SDRAM/Flash Controller Interface CS4953xx Hardware User’s Manual Table 8-1. SDRAM Interface Signals (Continued) Signal Name Signal Description LQFP-144 Pin # LQFP-128 Pin # Pin Type SD_D3/EXT_D3 SDRAM/Flash Bidirectional Data Bit 3 34 63 BiDir SD_D4/EXT_D4 SDRAM/Flash Bidirectional Data Bit 4 32 61 BiDir SD_D5/EXT_D5 SDRAM/Flash Bidirectional Data Bit 5 31 60 BiDir SD_D6/EXT_D6 SDRAM/Flash Bidirectional Data Bit 6 30 59 BiDir SD_D7/EXT_D7 SDRAM/Flash Bidirectional Data Bit 7 29 58 BiDir SD_D8/EXT_D8 SDRAM/Flash Bidirectional Data Bit 8 49 78 BiDir SD_D9/EXT_D9 SDRAM/Flash Bidirectional Data Bit 9 48 77 BiDir SD_D10/EXT_D10 SDRAM/Flash Bidirectional Data Bit 10 46 75 BiDir SD_D11/EXT_D11 SDRAM/Flash Bidirectional Data Bit 11 45 74 BiDir SD_D12/EXT_D12 SDRAM/Flash Bidirectional Data Bit 12 43 72 BiDir SD_D13/EXT_D13 SDRAM/Flash Bidirectional Data Bit 13 42 71 BiDir SD_D14/EXT_D14 SDRAM/Flash Bidirectional Data Bit 14 41 70 BiDir SD_D15/EXT_D15 SDRAM/Flash Bidirectional Data Bit 15 40 69 BiDir EXT_CS1 Flash Chip Select (active low) 90 119 Output EXT_OE Flash Output Enable (active low) 89 118 Output EXT_WE Flash Write Enable (active low) 38 66 Output EXT_CS2 SRAM Chip Select (active low) (CURRENTLY NOT SUPPORTED) 65 94 Output a. For 16-Mbit parts, SD_BA0 is used as a bank select. For 64-Mbit and 128-Mbit parts SD_BA[1:0] is the 2bit bank select. 8.3.2 Configuring SDRAM/Flash Parameters IMPORTANT NOTICE: External memory is enabled by default. On systems that do not use external memory, the command, 0x8100005c 0x00000000 must be sent to the DSP before kickstart to disable external memory. Not all Flash and EEPROM manufacturers conform to the same timing specifications. Therefore, the CS4953xx DSP must be configured to match the timing specifications for the Flash and EEPROM being used. The messages shown in Table 8-2 must be sent prior to kickstarting downloaded application code. Note: All External Memory Interface config messages must be sent to DSPB. For more details on sending messages to DSP B refer to AN288, section 2.1.4 DS732UM10 Copyright 2010 Cirrus Logic, Inc 8-4 SDRAM/Flash Controller Interface CS4953xx Hardware User’s Manual Refer to External Memory Interface in the CS4953xx data sheet for timing parameters that are summarized inTable 8-2. Table 8-2. SDRAM/Flash Controller Parameters Mnemonic Extmem_Setup_Control Bit 31:5 = 0 = Reserved Bit 4 = 0/1 = Disable/Enable Flash port Bit 3:1 = 0 = Reserved Bit 0 = 0/1 = Disable/Enable SDRAM port CRUSConfig Bit 31:9 = 0 = Reserved Bit 8 = Pin Mapping, where: 0 = Enable Flash and SDRAM Mapping 1 = Enable Flash and SRAM Mapping Hex Message 0x8100005C 0xHHHHHHHH Default: 0x00000011 0x8100005D 0xHHHHHHHH Default: 0x00000000 Bit 7:0 = 0 = Reserved DynamicRefresh Configure the refresh period Bit 31:11 = 0 = Reserved Bit 10:0 = REFRESH, where: 0x0 = refresh disabled. 0x1 = 1x16 = 16 HCLK ticks between refresh cycles 0x8 = 8x16 = 128 HCLK ticks between refresh cycles 0x1 to 0x7FF = REFRESH*16 HCLK ticks between refresh cycles Example: Refresh Period = 15.625μS, HCLK = 120Mhz REFRESH = (15.625μS*120Mhz)/16 = 117 = 0x75 DynamictRP Configure the precharge command period Bit 31:4 = 0 = Reserved Bit 3:0 = Trp, where: 0x0 to 0xE = (n + 1) DSP clk cycles. 0xF = 16 DSP clk cycles. Example: Trp = 20nS, HCLK = 120Mhz Trp =20nS*120Mhz - 1 = 1.4 = 0x2 DynamictRAS Configure the active to precharge command period Bit 31:4 = 0 = Reserved Bit 3:0 = Tras, where: 0x0 to 0xE = (n + 1) DSP clk cycles. 0xF = 16 DSP clk cycles. Example: Tras = 45nS, HCLK = 120Mhz Tras =45nS*120Mhz - 1 = 3.8 = 0x4 8-5 Copyright 2010 Cirrus Logic, Inc. 0x81000061 0xHHHHHHHH Default 0x00000075 0x81000062 0xHHHHHHHH Default 0x00000002 0x81000063 0xHHHHHHHH Default 0x00000004 DS732UM10 SDRAM/Flash Controller Interface CS4953xx Hardware User’s Manual Table 8-2. SDRAM/Flash Controller Parameters (Continued) Mnemonic DynamictREX Configure the self refres exit time. Also known as Tsre Bit 31:4 = 0 = Reserved Bit 3:0 = Trex, where: 0x0 to 0xE = (n + 1) DSP clk cycles. 0xF = 16 DSP clk cycles. Example: Trex = 83 nS, HCLK = 120Mhz Trex = 83 nS * 120 Mhz - 1 =10-1 = 0x9 DynamictAPR Configure the last data out to active command time. Bit 31:4 = 0 = Reserved Bit 3:0 = Tapr, where: 0x0 to 0xE = (n + 1) DSP clk cycles. 0xF = 16 DSP clk cycles. DynamictDAL Configure the data-in to active command time. Bit 31:4 = 0 = Reserved Bit 3:0 = Tdal, where: 0x0 to 0xE = (n + 1) DSP clk cycles. 0xF = 16 DSP clk cycles. Example: Tdal = 6 CLKs, HCLK = 120Mhz Tdal = 6-1 = 0x5 DynamictWR Configure the write recovery time. Also known as Tdpl, Trwl Bit 31:4 = 0 = Reserved Bit 3:0 = Tdal, where: 0x0 to 0xE = (n + 1) DSP clk cycles. 0xF= 16 DSP clk cycles. Example: Twr = 2 CLKs, HCLK = 120Mhz Twr = 2-1 = 0x1 DynamictRC Configure the active to active command time. Bit 31:5 = 0 = Reserved Bit 4:0 = Trc, where: 0x0 to 0x1E = (n + 1) DSP clk cycles. 0x1F = 16 DSP clk cycles. Example: Trc = 65 nS, HCLK = 120Mhz Trc = 65 nS * 120 Mhz -1 =7.8-1 = 0x7 DS732UM10 Copyright 2010 Cirrus Logic, Inc Hex Message 0x81000064 0xHHHHHHHH Default 0x00000009 0x81000065 0xHHHHHHHH Default 0x00000000 0x81000066 0xhHHHHHHH Default 0x00000005 0x81000067 0xHHHHHHHH Default 0x00000001 0x81000068 0xHHHHHHHH Default 0x00000007 8-6 SDRAM/Flash Controller Interface CS4953xx Hardware User’s Manual Table 8-2. SDRAM/Flash Controller Parameters (Continued) Mnemonic DynamictRFC Configure the auto refresh period and auto refresh to active command time. Also known as Trrc Bit 31:5 = 0 = Reserved Bit 4:0 = Trc, where: 0x0 to 0xE = (n + 1) DSP clk cycles. 0x1F = 32 DSP clk cycles. Example: Trc = 65 nS, HCLK = 120Mhz Trc = 65 nS * 120 Mhz -1=7.8-1 = 0x7 DynamictXSR Configure the exit self refresh to active command time. Bit 31:5 = 0 = Reserved Bit 4:0 = Txsr, where: 0x0 to 0x1E = (n + 1) DSP clk cycles. 0x1F = 32DSP clk cycles. Example: Txsr = 83 nS, HCLK = 120Mhz Txsr = 83 nS * 120 Mhz-1 =10-1 = 0x9 DynamictRRD Configure the active bank A to active bank B latency Bit 31:4 = 0 = Reserved Bit 3:0 = Trrd, where: 0x0 to 0xE = (n + 1) DSP clk cycles. 0xF= 16 DSP clk cycles. Example: Trrd = 15 nS, HCLK = 120Mhz Trrd = 15 nS * 120 Mhz - 1= 1.8 - 1 = 0x1 DynamictMRD Configure the load mode register to active command time. Also known as Trsa Bit 31:4 = 0 = Reserved Bit 3:0 = Tmrd, where: 0x0 to 0xE = (n + 1) DSP clk cycles. 0xF= 16 DSP clk cycles. Example: Tmrd = 1CLKs, HCLK = 120Mhz Tmrd = 1-1 = 0x0 DynamicConfig0 Configure the active bank A to active bank B latency Bit 31:12 = 0 = Reserved Bit 11:7 = External bus address mapping (Row, Bank, Column),where: 00001 = 16Mb (1Mx16), 2 banks, row length = 11, column length = 8 00101 = 64Mb (4Mx16), 4 banks, row length = 12, column length = 8 01001 = 128Mb (8Mx16), 4 banks, row length = 12, column length = 9 Hex Message 0x81000069 0xHHHHHHHH Default 0x00000007 0x8100006A 0xHHHHHHHH Default 0x00000009 0x8100006B 0xHHHHHHHH Default 0x00000001 0x8100006C 0xHHHHHHHH Default 0x00000000 0x8100006E 0xHHHHHHHH Default 0x00000280 Bit 6:0 = 0 = Reserved 8-7 Copyright 2010 Cirrus Logic, Inc. DS732UM10 SDRAM/Flash Controller Interface CS4953xx Hardware User’s Manual Table 8-2. SDRAM/Flash Controller Parameters (Continued) Mnemonic Hex Message DynamicRasCas0 Configure the active bank A to active bank B latency Bit 31:10 = 0 = Reserved Bit 9:8 = CAS latency (CAS),where: 00 = reserved 01 = one clock cycle 10 = two clock cycles 11 = three clock cycles Bit 7:2 = 0 = Reserved, rCAS latency (CAS),where: Bit 1:0 = RAS latency (RAS),where: 0x8100006F 0xHHHHHHHH Default 0x00000303 00 = reserved 01 = one clock cycle 10 = two clock cycles 11 = three clock cycles StaticConfig0 (Not Supported) Bit 31:2 = 0 = Reserved Bit 1:0 = Memory Bus Width, where: 00 = SRAM Memory bus 8 bits wide. 01 = SRAM Memory bus 16 bits wide. 10 = Reserved 11 = Reserved StaticWaitWen0 (Not Supported) EXT_CS falling to EXT_WE falling (txmcswe) Bit 31:4 = 0 = Reserved Bit 3:0 =SRAM_WEN_CYCLE, where: 0000 = one DSP clk cycle between the assertion of chip select and write enable. 0001 to 1111 = (n+1) cycle delay. txmcswe =(SRAM_WEN_CYCLE + 1 )*HCLK StaticWaitOen0 (Not Supported) EXT_CS falling to EXT_OE falling (txmcsoe) Bit 31:4 = 0 = Reserved Bit 3:0 =SRAM_OEN_CYCLE, where: 0000 = no delay between the assertion of chip select and output enable. 0001 to 1111 = (n) cycle delay. txmcsoe =(SRAM_OEN_CYCLE )*HCLK StaticWaitRd0 (Not Supported) Single Word Read Cycle (txmrdc) Bit 31:5 = 0 = Reserved Bit 4:0 =SRAM_RD_CYCLE, where: 00000 to 11110 = (n+1) HCLK cycle for Read Cycle. txmrdc =(SRAM_RD_CYCLE + 1 )*HCLK - 6.87ns StaticWaitWr0 (Not Supported) EXT_CS falling to EXT_WE rising (txmcswa ) Bit 31:5 = 0 = Reserved Bit 4:0 =SRAM_WR_CYCLE, where: 00000 to 11110 = (n+2) HCLK cycle for Write access time. txmcswa =(SRAM_WR_CYCLE + 2)*HCLK DS732UM10 Copyright 2010 Cirrus Logic, Inc 0x81000070 0xHHHHHHHH Default 0x00000000 0x81000071 0xHHHHHHHH Default 0x00000000 0x81000072 0xHHHHHHHH Default 0x00000000 0x81000073 0xHHHHHHHH Default 0x0000001F 0x81000075 0xHHHHHHHH Default 0x0000001F 8-8 SDRAM/Flash Controller Interface CS4953xx Hardware User’s Manual Table 8-2. SDRAM/Flash Controller Parameters (Continued) Mnemonic Hex Message StaticWaitTurn0 (Not Supported) Bus Turnaround Cycle Delay (txmturn ) Bit 31:4 = 0 = Reserved Bit 3:0 =SRAM_TURN_CYCLE, where: 0000 to 1110 = (n+1) HCLK cycle for bus Turnaround time. txmturn =(SRAM_TURN_CYCLE + 1)*HCLK StaticConfig1 Bit 31:2 = 0 = Reserved Bit 1:0 = Memory Bus Width, where: 0x81000076 0xHHHHHHHH Default 0x0000000F 0x81000077 0xhHHHHHHH Default 0x00000001 00 = Flash Memory bus 8 bits wide. 01 = Flash Memory bus 16 bits wide. 10 = Reserved 11 = Reserved StaticWaitWen1 EXT_CS falling to EXT_WE falling (txmcswe) Bit 31:4 = 0 = Reserved Bit 3:0 = Flash_WEN_CYCLE, where: 0000 = one DSP clk cycle between the assertion of chip select and write enable. 0001 to 1111 = (n+1) cycle delay. txmcswe =(Flash_WEN_CYCLE + 1 )*HCLK StaticWaitOen1 EXT_CS falling to EXT_OE falling (txmcsoe) Bit 31:4 = 0 = Reserved Bit 3:0 =Flash_OEN_CYCLE, where: 0000 = no delay between the assertion of chip select and output enable. 0001 to 1111 = (n) cycle delay. txmcsoe =(Flash_OEN_CYCLE )*HCLK StaticWaitRd1 Single Word Read Cycle (txmrdc) Bit 31:5 = 0 = Reserved Bit 4:0 =Flash_RD_CYCLE, where: 0x81000078 0XHHHHHHHH Default 0x00000000 0x81000079 0xHHHHHHHH Default 0x00000000 0x8100007A 0xHHHHHHHH Default 0x0000000A 00000 to 11110 = (n+1) HCLK cycle for Read Cycle. txmrdc =(Flash_RD_CYCLE + 1 )*HCLK - 6.87ns StaticWaitWr1 EXT_CS falling to EXT_WE rising (txmcswa ) Bit 31:5 = 0 = Reserved Bit 4:0 =Flash_WR_CYCLE, where: 00000 to 11110 = (n+2) HCLK cycle for Write access time. txmcswa =(Flash_WR_CYCLE + 2)*HCLK StaticWaitTurn1 Bus Turnaround Cycle Delay (txmturn ) Bit 31:4 = 0 = Reserved Bit 3:0 =Flash_TURN_CYCLE, where: 0000 to 1110 = (n+1) HCLK cycle for bus Turnaround time. txmturn =(Flash_TURN_CYCLE + 1)*HCLK 0x8100007C 0xHHHHHHHH Default 0x00000007 0x8100007D 0xHHHHHHHH Default 0x00000002 §§ 8-9 Copyright 2010 Cirrus Logic, Inc. DS732UM10 SDRAM/Flash Controller Interface CS4953xx Hardware User’s Manual DS732UM10 Copyright 2010 Cirrus Logic, Inc 8-10 Typical Connection Diagrams CS4953xx Hardware User’s Manual Chapter 9 System Integration 9.1 Typical Connection Diagrams Figure 9-1 is a typical connection diagram (LQFP-144) showing I2C control with a serial FLASH, SDRAM and up to 7 DACs. Serial FLASH is recommended over parallel flash because it makes SDRAM layout much easier. This configuration uses the default settings for serial FLASH chip select (pin 6). Figure 9-2 is a typical connection diagram (LQFP-144) showing SPI control with a serial FLASH, SDRAM and up to 7 DACs. This configuration uses the default settings for serial FLASH chip select (pin 6). Figure 9-3 is a typical connection diagram (LQFP-144) showing SPI control with a serial FLASH, SDRAM and up to 8 DACs. This configuration allows the system to connect the maximum number of DACs to the DSP by using an alternate chip select for the serial FLASH (pin 121). Figure 9-4 is a typical connection diagram (LQFP-144) showing I2C control with parallel FLASH, SDRAM and up to 8 DACs. This configuration is not preferred because the SDRAM and FLASH share a bus, making routing more difficult. Figure 9-5 is a typical connection diagram (LQFP-128) showing SPI control with parallel FLASH, SDRAM and up to 8 DACs. This configuration is not preferred because the SDRAM and FLASH share a bus, making routing more difficult. Figure 9-6 is a typical connection diagram (LQFP-128) showing I2C control with parallel FLASH, SDRAM and up to 8 DACs. This configuration is not preferred because the SDRAM and FLASH share a bus, making routing more difficult. Figure 9-7 is a typical connection diagram (LQFP-144) showing SPI control with a serial FLASH, SDRAM and up to 7 DACs. This configuration uses the default settings for serial FLASH chip select (pin 6). Figure 9-8 is a typical connection diagram (LQFP-144) showing SPI control with a serial FLASH, DSD Audio Input, SDRAM and up to 7 DACs. Place PLL filter components as close as possible to the DSP. A unified, solid ground plane is recommended for optimal performance. Pay close attention to the direction of all clock signals shown in the diagram. These designs are configured to slave to clocks on the input side. On the output side, the DSP slaves to MCLK from the S/PDIF receiver and masters SCLK and LRCLK for the DACs. This is the recommended clocking for AVR applications. Series Termination resistor values depend on the transmission line impedances of the actual PCB used. The design engineer should calculate the transmission line impedance of the traces and size the series R such that R = (Z – 15), where 15 represents the source impedance of the CS4953xx drivers. The typical connection diagrams show “0.1uF x 8” to indicate that 1 decoupling capacitor should be placed next to each power pin. The SDCLK termination used in the typical connection diagrams, and on the CRD49530, is an AC parallel terminator. The proper board layout for this kind of termination is to route the SDRAM Clock signal to the SD_CLKIN pin and then beyond the pin a short distance before connecting to the parallel termination. The resistor and capacitor should be the last components on that trace (terminating the trace). DS732UM10 Copyright 2010 Cirrus Logic, Inc 9-1 DS732UM10 Copyright 2010 Cirrus Logic, Inc For 16-Mbit parts, SD_BA0 is used as a bank select. For 64-Mbit and 128-Mbit parts SD_BA[1:0] is the 2-bit bank select. 9-2 Figure 9-1. LQFP-144, I2C Control, Serial FLASH, SDRAM, 7 DACs Typical Connection Diagrams CS4953xx Hardware User’s Manual Note: DS732UM10 Copyright 2010 Cirrus Logic, Inc For 16-Mbit parts, SD_BA0 is used as a bank select. For 64-Mbit and 128-Mbit parts SD_BA[1:0] is the 2-bit bank select. 9-3 Figure 9-2. LQFP-144, SPI Control, Serial FLASH, SDRAM, 7 DACs Typical Connection Diagrams CS4953xx Hardware User’s Manual Note: DS732UM10 Copyright 2010 Cirrus Logic, Inc For 16-Mbit parts, SD_BA0 is used as a bank select. For 64-Mbit and 128-Mbit parts SD_BA[1:0] is the 2-bit bank select. 9-4 Figure 9-3. LQFP-144, SPI Control, Serial FLASH, SDRAM, 8 DACs Typical Connection Diagrams CS4953xx Hardware User’s Manual Note: DS732UM10 Copyright 2010 Cirrus Logic, Inc For 16-Mbit parts, SD_BA0 is used as a bank select. For 64-Mbit and 128-Mbit parts SD_BA[1:0] is the 2-bit bank select. 9-5 Figure 9-4. LQFP-144, I2C Control, Parallel Flash, SDRAM, 8 DACs Typical Connection Diagrams CS4953xx Hardware User’s Manual Note: DS732UM10 Copyright 2010 Cirrus Logic, Inc For 16-Mbit parts, SD_BA0 is used as a bank select. For 64-Mbit and 128-Mbit parts SD_BA[1:0] is the 2-bit bank select. 9-6 Figure 9-5. LQFP-128, SPI Control, Parallel Flash, SDRAM, 8 DACs Typical Connection Diagrams CS4953xx Hardware User’s Manual Note: DS732UM10 Copyright 2010 Cirrus Logic, Inc For 16-Mbit parts, SD_BA0 is used as a bank select. For 64-Mbit and 128-Mbit parts SD_BA[1:0] is the 2-bit bank select. 9-7 Figure 9-6. LQFP-128, I2C Control, Serial FLASH, DSD Audio Input, SDRAM, 7 DACs Typical Connection Diagrams CS4953xx Hardware User’s Manual Note: DS732UM10 Copyright 2010 Cirrus Logic, Inc For 16-Mbit parts, SD_BA0 is used as a bank select. For 64-Mbit and 128-Mbit parts SD_BA[1:0] is the 2-bit bank select. Figure 9-7. LQFP-144, SPI Control, Serial FLASH, DSD Audio Input, SDRAM, 7 DACs 9-8 Typical Connection Diagrams CS4953xx Hardware User’s Manual Note: DS732UM10 Copyright 2010 Cirrus Logic, Inc For 16-Mbit parts, SD_BA0 is used as a bank select. For 64-Mbit and 128-Mbit parts SD_BA[1:0] is the 2-bit bank select. 9-9 Figure 9-8. LQFP-144, SPI Control, Serial FLASH, DSD Audio Input, SDRAM, 7 DACs Typical Connection Diagrams CS4953xx Hardware User’s Manual Note: Pin Description CS4953xx Hardware User’s Manual 9.2 Pin Description 9.2.1 Power and Ground The following sections describe the CS4953xx power and ground pins. Decoupling and conditioning of the power supplies is also discussed. Following the recommendations for decoupling and power conditioning will help to ensure reliable performance. 9.2.1.1 Power The CS4953xx Family of DSPs take two supply voltages — the core supply voltage (VDD) and the I/O supply voltage (VDDIO). There is also a separate analog supply voltage required for the internal PLL (VDDA). These pins are described in the following tables and descriptions. The DSP Core supply voltage pins require a nominal 1.8V. The DSP I/O supply voltage pins require a nominal 3.3V. Table 9-1. Core Supply Pins LQFP-144 Pin # LQFP-128 Pin # Pin Name 10 42 VDD1 24 55 VDD2 54 83 VDD3 66 95 VDD4 83 112 VDD5 98 125 VDD6 119 12 VDD7 130 22 VDD8 Pin Type Input Pin Description 1.8V DSP Core supply. This powers all internal logic and the on-chip SRAMs and ROMs Table 9-2. I/O Supply Pins LQFP-144 Pin # LQFP-128 Pin # Pin Name 18 50 VDDIO1 33 62 VDDIO2 44 73 VDDIO3 60 89 VDDIO4 73 100 VDDIO5 91 120 VDDIO6 113 8 VDDIO7 136 28 VDDIO8 Pin Type Pin Description Input 3.3V I/O supply 9.2.1.2 Ground For two-layer circuit boards, care should be taken to have sufficient grounding between the DSP and parts in which it will be interfacing (DACs, ADCs, S/PDIF Receivers, microcontrollers, and especially external DS732UM10 Copyright 2010 Cirrus Logic, Inc 9-10 Pin Description CS4953xx Hardware User’s Manual memory). Insufficient grounding can degrade noise margins between devices resulting in data integrity problems. Table 9-3. Core and I/O Ground Pins LQFP-144 Pin LQFP-128 Pin # # Pin Name 13 45 GND1 27 56 GND2 57 86 GND3 69 98 GND4 86 115 GND5 101 127 GND6 122 15 GND7 133 25 GND8 21 53 GNDIO1 36 67 GNDIO2 47 76 GNDIO3 63 92 GNDIO4 76 105 GNDIO5 94 122 GNDIO6 116 9 GNDIO7 139 31 GNDIO8 Pin Type Pin Description Core Ground. Input I/O Ground 9.2.1.3 Decoupling It is necessary to decouple the power supply by placing capacitors directly between the power and ground of the CS4953xx. Each pair of power/ground pins (VDD1/GND1, etc.) should have its own decoupling capacitor. The recommended procedure is to place a 0.1 uF capacitor as close as physically possible to each power pin connected with a wide, low-inductance trace. A bulk capacitor of at least 10 uF is recommended for each power plane. 9.2.2 PLL Filter 9.2.2.1 Analog Power Conditioning In order to obtain the best performance from the CS4953xx’s internal PLL, the analog power supply VDDA must be as noise free as possible. A ferrite bead and two capacitors should be used to filter the VDDIO to generate VDDA. This power scheme is shown in the Typical Connection diagrams. Table 9-4. PLL Supply Pins LQFP-144 Pin LQFP-128 Pin # # Pin Name Pin Type Pin Description 129 21 VDDA Input PLL supply. This voltage must be 3.3V. This must be clean, noise-free analog power. 126 19 GNDA Input PLL ground. This ground should be as noise free as possible. DS732UM10 Copyright 2010 Cirrus Logic, Inc 9-11 Clocking CS4953xx Hardware User’s Manual 9.2.3 PLL The internal phase locked loop (PLL) of the CS4953xx requires an external current reference resistor. The resistor is used to calibrate the PLL and must meet the tolerances specified below. The layout topology is shown in the typical connection diagrams. Care should be taken when laying out the current sense circuitry to minimize trace lengths between the DSP and resistor, and to keep high-frequency signals away from the resistor. Any noise coupled onto the these traces will be directly coupled into the PLL, which could affect performance. Please see tables below for pin numbers and external component values. Table 9-5. PLL Filter Pins LQFP-144 Pin # LQFP-128 Pin # Pin Name Pin Type Pin Description 128 20 PLL_REF_RES Input Current Reference Resistor for PLL filter CS497xx 3.3V Bead 10u VDDA 0.1u PLL_REF_RES R1 GNDA Figure 9-9. PLL Filter Topology Table 9-6. Reference PLL Component Values Symbol Reference Value R1 5.1 kΩ, 1% 9.3 Clocking The CS4953xx incorporates a programmable phase locked loop (PLL) clock synthesizer. The PLL takes an input reference clock and produces all the clocks required to run the DSP and peripherals. In A/V Receiver designs that require low-jitter clocks, the XTI pin is typically connected to an external 12.288 MHz or 24.576 Mhz oscillator that is used throughout the system. The CS4953xx has a built-in crystal oscillator circuit. A parallel resonant-type crystal is connected between the XTI and XTO pins as shown in Figure 9-10. The value of C1 is specific to each crystal. The CS4953xx data sheet specifies acceptable crystal parameters (including CL and ESR). When a crystal is used, XTAL_OUT is used to clock other devices in the system such as the S/PDIF receiver. The PLL is controlled by the clock manager in the DSP O/S application software. AN288, “CS4953xx Firmware User’s Manual” should be referenced regarding what CLKIN input frequency and PLL multiplier values are supported. DS732UM10 Copyright 2010 Cirrus Logic, Inc 9-12 Control CS4953xx Hardware User’s Manual Table 9-7. DSP Core Clock Pins LQFP-144 Pin LQFP-128 Pin # # 123 124 125 16 17 Pin Name Pin Type XTAL_OUT Output XTI 18 XTO Pin Description Buffered version of XTI. Input Reference Clock Input/Crystal Oscillator Input. An external clock may be input directly to this pin or one end of a crystal may be connected to this pin. Output Crystal Oscillator Output. One end of a crystal oscillator is connected to this pin. This pin cannot be used to drive external circuitry. XTAL_OUT To System XTO 1 Meg X1 XTI C1 C1 CS4953xx Figure 9-10. Crystal Oscillator Circuit Diagram 9.4 Control The CS4953xx supports 5 control interface protocols: SPI, I2C, Motorola parallel, Intel parallel, and Multiplexed Intel parallel mode. All slave serial control modes between the DSP and the host microcontroller use the Serial Control Port 1 (SCP1) pins. Parallel slave control modes are implemented on the Parallel Control Port (PCP) pins. A second serial control port (SCP2) is available for master mode applications. 9.4.1 Operational Mode The control interface protocol used is determined by the state of the Hardware Strap pins, HS[4:0] which are sampled at the rising edge of RESET. The HS[4:0] pins should be pulled to VDD or GND using 10 kΩ resistors according to the specific control mode desired as shown in Table 2-1, "Operation Modes" on page 2-3. The following sections describe the pins used for the 5 control modes. For example diagrams of system connection, please see Section 9.1, "Typical Connection Diagrams" on page 9-1. For information on timing diagrams and messaging protocol to the CS4953xx, see Chapter 2, "Operational Modes". DS732UM10 Copyright 2010 Cirrus Logic, Inc 9-13 Control CS4953xx Hardware User’s Manual Configuration and control of the CS4953xx decoder and its peripherals are indirectly executed through a messaging protocol supported by the operating system (O/S) running on the DSP. In other words, successful communication can only be accomplished by following the low-level hardware communication format and high-level messaging protocol. The specifications of the messaging protocol used by the O/S can be found in AN288, “CS4953xx/Cs497xxx Firmware User’s Manual”. The system designer only needs to read the subsection describing the communication mode being used. The CS4953xx Hardware User’s Manual explains each communication mode in more detail. Table 9-8. Reset Pin LQFP-144 Pin # LQFP-128 Pin # Pin Name Pin Type Pin Description Reset, async. active-low Chip Reset 93 121 RESET Input Reset should be low at power-up to initialize the DSP and to guarantee that the device is not active during initial power-on stabilization periods. Table 9-9. Hardware Strap Pins LQFP-144 Pin # LQFP-128 Pin # Pin Name 7 39 DAO2_DATA1, HS4, GPIO19 11 43 DAO2_DATA0, HS3, GPIO18 16 48 DAO1_DATA2, HS2, GPIO16 17 49 DAO1_DATA1, HS1, GPIO15 19 51 DAO1_DATA0, HS0 DS732UM10 Pin Type Pin Description Operational Mode Select Input Pull-up or Pull-down resistors on these pins set the DSP operational mode at reset. Hardware Strap Mode Select The state of these pins is latched at the rising edge of RESET. The boot ROM uses the state of these pins to select the boot mode. Copyright 2010 Cirrus Logic, Inc 9-14 144-Pin LQFP Pin Assigments CS4953xx Hardware User’s Manual 9.5 144-Pin LQFP Pin Assigments SD_A10, EXT_A10 73 VDDIO5 75 SD_BA0, EXT_A13 76 GNDIO5 SD_WE SD_BA1, EXT_A14 SD_CAS 80 SD_RAS EXT_A15 SD_CS EXT_A16 83 VDD5 85 EXT_A17 EXT_A18 86 GND5 EXT_A19 EXT_OE 90 EXT_CS1 GPIO30, XMTB_IN 91 VDDIO6 RESET 94 GNDIO6 95 GPIO33, SCP1_MOSI GPIO34, SCP1__MISO / SDA GPIO32, SCP1_CS, IOWAIT GPIO35, SCP1_CLK 98 VDD6 100 GPOI36, SCP1_IRQ GPIO37, SCP1_BSY, PCP_BSY 101 GND6 GPIO38, PCP_WR / DS, SCP2_CLK GPIO39, PCP_CS, SCP2_CS GPIO10, PCP_A2 / A10, SCP2_MOSI 105 GPIO11, PCP_A3, AS, SCP2_MISO / SDA GPIO40, PCP_RD / RW 108 GPIO41, PCP_IRQ, SCP2_IRQ Figure 9-11 shows the 144-Pin LQFP Pin Layout. 72 SD_A0, EXT_A0 GPIO9, PCP_A1 / A9 109 SD_A1, EXT_A1 GPIO8, PCP_A0 / A8 110 GPIO7, PCP_AD7 / D7 70 SD_A2, EXT_A2 GPIO6, PCP_AD6 / D6 69 GND4 SD_A3, EXT_A3 VDDIO7 113 SD_A4, EXT_A4 GPIO5, PCP_AD5 / D5 66 VDD4 GPIO4, PCP_AD4 / D4 115 65 EXT_CS2 GNDIO7 116 SD_A5, EXT_A5 GPIO3, PCP_AD3 / D3 63 GNDIO4 GPIO2, PCP_AD2 / D2 SD_A6, EXT_A6 VDD7 119 SD_A7, EXT_A7 GPIO1, PCP_AD1 / D1 120 60 VDDIO4 GPIO0, PCP_AD0 / D0 SD_A8, EXT_A8 GND7 122 SD_A9, EXT_A9 XTAL_OUT 57 GND3 XTI XTO 125 SD_A11, EXT_A11 CS4953xx GNDA 126 NC 55 SD_A12, EXT_A12 54 VDD3 144 LQFP PLL_REF_RES SD_CLKEN SD_CLKIN VDDA (3.3V) 129 SD_CLKOUT VDD8 130 50 SD_DQM1 GPIO14, DAI1_DATA3, TM3, DSD3 SD_D8, EXT_D8 GPIO13, DAI1_DATA2, TM2, DSD2 SD_D9, EXT_D9 GND8 133 47 GNDIO3 GPIO12, DAI1_DATA1, TM1, DSD1 DAI1_DATA0, TM0, DSD0 135 SD_D10, EXT_D10 VDDIO8 136 45 SD_D11, EXT_D11 44 VDDIO3 DAI1_SCLK, DSD_CLK SD_D12, EXT_D12 DAI1_LRCLK, DSD5 SD_D13, EXT_D13 GNDIO8 139 SD_D14, EXT_D14 GPIO42, BDI_REQ , DAI2_LRCLK, PCP_IRQ / BSY 140 40 SD_D15, EXT_D15 GPIO43, BDI_CLK, DAI2_SCLK SD_D0, EXT_D0 DAI1_DATA4, BDI_DATA, DAI2_DATA, DSD4 GPIO27 EXT_WE GPIO26 144 GNDIO2 36 SD_D2, EXT_D2 35 VDDIO2 33 SD_D3, EXT_D3 SD_D4, EXT_D4 SD_D5, EXT_D5 SD_D6, EXT_D6 30 GND2 27 SD_DQM0 SD_D7, EXT_D7 GPIO24, UART_RXD VDD2 24 GPIO25, UART_TXD 25 GPIO31, UART_CLK DAO1_LRCLK GNDIO1 21 DAO1_SCLK DAO1_DATA0, HS0 VDDIO1 18 GPIO15, DAO1_DATA1, HS1 GPIO16, DAO1_DATA2, HS2 GPIO23, DAO2_LRCLK GPIO17, DAO1_DATA3 / XMTA 15 GND1 13 GPIO22, DAO2_SCLK GPIO18, DAO2_DATA0, HS3 9 TEST VDD1 10 DAO_MCLK GPIO19, DAO2_DATA1, HS4 5 GPIO20, DAO2_DATA2, EE_CS ATA3 / XMTB, UART_TX_ENABLE DBCK DBDA GPIO28, DDAC GPIO29, XMTA_IN 1 37 SD_D1, EXT_D1 Figure 9-11. 144-Pin LQFP Pin Layout DS732UM10 Copyright 2010 Cirrus Logic, Inc 9-15 128-Pin LQFP Pin Assigments CS4953xx Hardware User’s Manual 9.6 128-Pin LQFP Pin Assigments GPIO38, SCP2_CLK SD_A10, EXT_A10 SD_BA0, EXT_A13 SD_BA1, EXT_A14 105 GNDIO5 SD_WE SD_CAS SD_RAS EXT_A15 110 SD_CS VDD5 EXT_A16 EXT_A17 EXT_A18 115 GND5 EXT_A19 EXT_OE EXT_CS1 RESET 120 VDDIO6 GNDIO6 GPIO33, SCP1_MOSI GPIO34, SCP1__MISO / SDA GPIO35, SCP1_CLK 125 VDD6 GND6 GPIO37, SCP1_BSY Figure 9-12 shows the 128-Pin LQFP Pin Layout. SD_A0, EXT_A0 1 GPIO11, SCP2_MISO / SDA SD_A1, EXT_A1 100 VDDIO5 GPIO10, SCP2_MOSI SD_A2, EXT_A2 GPOI9, SCP1_IRQ GPIO8, SCP2_IRQ GND4 5 SD_A3, EXT_A3 GPIO7, SCP1_CS, IOWAIT SD_A4, EXT_A4 GPIO6, SCP2_CS 95 VDD4 VDDIO7 EXT_CS2 GNDIO7 SD_A5, EXT_A5 GPIO3, DDAC 10 GNDIO4 GPIO2, UART_TXD VDD7 SD_A6, EXT_A6 GPIO1, UART_RXD 90 SD_A7, EXT_A7 VDDIO4 GPIO0, UART_CLK SD_A8, EXT_A8 GND7 15 SD_A9, EXT_A9 XTAL_OUT GND3 XTI XTO 85 SD_A11, EXT_A11 CS495xx3 GNDA SD_A12, EXT_A12 VDD3 128 LQFP PLL_REF_RES 20 SD_CLKEN VDDA (3.3V) SD_CLKIN VDD8 80 SD_CLKOUT GPIO14, DAI1_DATA3, TM3, DSD3 SD_DQM1 GPIO13, DAI1_DATA2, TM2, DSD2 SD_D8, EXT_D8 GND8 25 SD_D9, EXT_D9 GPIO12, DAI1_DATA1, TM1, DSD1 GNDIO3 DAI1_DATA0, TM0, DSD0 75 SD_D10, EXT_D10 VDDIO8 SD_D11, EXT_D11 DAI1_SCLK, DSD_CLK VDDIO3 DAI1_LRCLK, DSD5 30 SD_D12, EXT_D12 GNDIO8 SD_D13, EXT_D13 GPIO42, BDI_REQ , DAI2_LRCLK 70 SD_D14, EXT_D14 GPIO43, BDI_CLK, DAI2_SCLK SD_D15, EXT_D15 DAI1_DATA4, BDI_DATA, DAI2_DATA, DSD4 SD_D0, EXT_D0 GPIO26, DAO2_DATA3 / XMTB/UART_TX_EN 35 GNDIO2 DBDA EXT_WE DBCK 65 SD_D1, EXT_D1 SD_D2, EXT_D2 SD_D3, EXT_D3 VDDIO2 SD_D4, EXT_D4 SD_D5, EXT_D5 60 SD_D6, EXT_D6 SD_D7, EXT_D7 SD_DQM0 GND2 VDD2 55 GNDIO1 DAO1_LRCLK DAO1_SCLK DAO1_DATA0, HS0 VDDIO1 50 GPIO15, DAO1_DATA1, HS1 GPIO16, DAO1_DATA2, HS2 GPIO17, DAO1_DATA3 / XMTA GPIO23, DAO2_LRCLK GND1 45 GPIO22, DAO2_SCLK GPIO18, DAO2_DATA0, HS3 VDD1 TEST DAO_MCLK 40 GPIO19, DAO2_DATA1, HS4 GPIO20, DAO2_DATA2, EE_CS Figure 9-12. 128-Pin LQFP Pin Layout DS732UM10 Copyright 2010 Cirrus Logic, Inc 9-16 DS732UM10 9.7 Pin Assignments Table 9-10 shows the names and functions for each pin. Table 9-10. Pin Assignments Copyright 2010 Cirrus Logic, Inc LQFP144 Pin # LQFP128 Pin # 1 - GPIO28 General Purpose Input/Output 2 - GPIO29 General Purpose Input/Output 3 36 DBDA 4 37 DBCK Function 1 (Default) Reset State Pullup at Reset 3.3V BiDir (5V tol) IN Y 3.3V BiDir (5V tol) IN Y Debug Data 3.3V In/OD (5V tol) IN Y Debug Clock 3.3V In/OD (5V tol) IN Y Description of Default Function Secondary Functions 1. XMTA_IN Description of Secondary Functions 1. S/PDIF Pass-thru Input. Pwr Type - GPIO21 General Purpose Input/Output 6 38 GPIO20 General Purpose Input/Output 1. DAO2_DATA2 2. EE_CS 1.Digital Audio Output 2. 3.3V 2. EEPROM Boot Chip Select. (5V tol 7 39 GPIO19 General Purpose Input/Output 1. DAO2_DATA1 2. HS4 1. Digital Audio Output 1. 2. Hardware Strap Mode Select. 8 40 DAO_MCLK Audio Master Clock 3.3V BiDir (5V tol) 9 41 TEST Test 3.3V In (5V tol) 10 42 VDD1 Core power supply voltage 1.8V 11 43 GPIO18 General Purpose Input/Output 1. DAO2_DATA0 2. HS3 1. Digital Audio Output 0. 2. Hardware Strap Mode Select. 3.3V BiDir (5V tol) IN Y 12 44 GPIO22 General Purpose Input/Output DAO2_SCLK PCM Audio Bit Clock. 3.3V BiDir (5V tol) IN Y 13 45 GNDD1 Core ground BiDir IN Y BiDir IN Y 3.3V BiDir (5V tol) IN Y IN Y 0V PWR PWR Pin Assignments CS4953xx Hardware User’s Manual 9-17 5 1. Digital Audio Output 3. 2. Outputs IEC60958/61937 1. DAO2_DATA3 3.3V format bi-phase mark encoded 2. XMTB (5V tol 3. UART_TX_ENABLE S/PDIF data. 3. Enable the UART_TX pin. DS732UM10 Table 9-10. Pin Assignments (Continued) LQFP144 Pin # LQFP128 Pin # Function 1 (Default) Description of Default Function Secondary Functions Description of Secondary Functions Pwr Type Reset State Pullup at Reset IN Y Copyright 2010 Cirrus Logic, Inc 14 46 GPIO23 General Purpose Input/Output DAO2_LRCLK Serial PCM Audio Sample Rate Clock for the serial data 3.3V pins: (DAO2_DATA0, BiDir (5V tol) DAO2_DATA1, DAO2_DATA2, DAO2_DATA3). 15 47 GPIO17 General Purpose Input/Output 1. DAO1_DATA3 2. XMTA 1. Digital Audio Output 3. 2. S/PDIF Audio Output A. 3.3V BiDir (5V tol) IN Y 16 48 GPIO16 General Purpose Input/Output 1. DAO1_DATA2 2. HS2 1. Digital Audio Output 2. 2. Hardware Strap Mode Select. 3.3V BiDir (5V tol) IN Y 17 49 GPIO15 General Purpose Input/Output 1. DAO1_DATA1 2. HS1 1. Digital Audio Output 1. 2. Hardware Strap Mode Select. 3.3V BiDir (5V tol) IN Y 18 50 VDDIO1 I/O power supply voltage 19 51 DAO1_DATA0 Digital Audio Output 0 HS0 20 52 DAO1_SCLK 21 53 22 54 23 - 24 55 25 3.3V PWR IN PCM Audio Bit Clock 3.3V BiDir (5V tol) IN Y GNDIO1 I/O ground 0V DAO1_LRCLK PCM Audio Sample Rate Clock 3.3V BiDir (5V tol) IN Y GPIO31 General Purpose Input/Output 3.3V BiDir (5V tol) IN Y VDD2 Core power supply voltage - GPIO25 General Purpose Input/Output UART_TXD UART Output. 3.3V BiDir (5V tol) IN Y 26 - GPIO24 General Purpose Input/Output UART_RXD UART Input. 3.3V BiDir (5V tol) IN Y 27 56 GNDD2 Core ground 0V 28 57 SD_DQM0 SDRAM Data Mask 0 3.3V OUT (5V tol) UART_CLK UART Clock. 1.8V PWR PWR PWR Pin Assignments CS4953xx Hardware User’s Manual 9-18 3.3V BiDir (5V tol) Hardware Strap Mode Select. DS732UM10 Table 9-10. Pin Assignments (Continued) Copyright 2010 Cirrus Logic, Inc Reset State Pullup at Reset 3.3V BiDir (5V tol) IN Y Flash Data Bit 6. 3.3V BiDir (5V tol) IN Y EXT_D5 Flash Data Bit 5. 3.3V BiDir (5V tol) IN Y EXT_D4 Flash Data Bit 4. 3.3V BiDir (5V tol) IN Y 3.3V BiDir (5V tol) IN Y 3.3V BiDir (5V tol) IN Y IN Y 3.3V BiDir (5V tol) IN Y Flash Data Bit 15 3.3V BiDir (5V tol) IN Y EXT_D14 Flash Data Bit 14 3.3V BiDir (5V tol) IN Y SDRAM Data Bit 13 EXT_D13 Flash Data Bit 13 3.3V BiDir (5V tol) IN Y SD_D12 SDRAM Data Bit 12 EXT_D12 Flash Data Bit 12 3.3V BiDir (5V tol) IN Y VDDIO3 I/O power supply voltage LQFP144 Pin # LQFP128 Pin # 29 58 SD_D7 SDRAM Data Bit 7 EXT_D7 Flash Data Bit 7. 30 59 SD_D6 SDRAM Data Bit 6 EXT_D6 31 60 SD_D5 SDRAM Data Bit 5 32 61 SD_D4 SDRAM Data Bit 4 33 62 VDDIO2 I/O power supply voltage 34 63 SD_D3 SDRAM Data Bit 3 EXT_D3 Flash Data Bit 3. 35 64 SD_D2 SDRAM Data Bit 2 EXT_D2 Flash Data Bit 2. 36 67 GNDIO2 I/O ground 37 65 SD_D1 SDRAM Data Bit 1 38 66 EXT_WE Flash Write Enable 39 68 SD_D0 SDRAM Data Bit 0 EXT_D0 Flash Data Bit 0 40 69 SD_D15 SDRAM Data Bit 15 EXT_D15 41 70 SD_D14 SDRAM Data Bit 14 42 71 SD_D13 43 72 44 73 Function 1 (Default) Description of Default Function Secondary Functions Description of Secondary Functions Pwr 3.3V 0V EXT_D1 Flash Data Bit 1. Type PWR PWR 3.3V BiDir (5V tol) 3.3V OUT (5V tol) PWR 9-19 Pin Assignments CS4953xx Hardware User’s Manual 3.3V DS732UM10 Table 9-10. Pin Assignments (Continued) Reset State Pullup at Reset 3.3V BiDir (5V tol) IN Y 3.3V BiDir (5V tol) IN Y 3.3V BiDir (5V tol) IN Y 3.3V BiDir (5V tol) IN Y Copyright 2010 Cirrus Logic, Inc LQFP128 Pin # 45 74 SD_D11 SDRAM Data Bit 11 EXT_D11 Flash Data Bit 11 46 75 SD_D10 SDRAM Data Bit 10 EXT_D10 Flash Data Bit 10 47 76 GNDIO3 I/O ground 48 77 SD_D9 SDRAM Data Bit 9 EXT_D9 Flash Data Bit 9 49 78 SD_D8 SDRAM Data Bit 8 EXT_D8 Flash Data Bit 8 50 79 SD_DQM1 SDRAM Data Mask 1 3.3V OUT (5V tol) 51 80 SD_CLKOUT SDRAM Clock Output 3.3V OUT (5V tol) 52 81 SD_CLKIN SDRAM Clock Input 3.3V In (5V tol) 53 82 SD_CLKEN SDRAM Clock Enable 3.3V OUT (5V tol) 54 83 VDD3 Core power supply voltage 1.8V 55 84 SD_A12 SDRAM Address Bit 12 EXT_A12 Flash Address Bit 12 3.3V OUT (5V tol) 56 85 SD_A11 SDRAM Address Bit 11 EXT_A11 Flash Address Bit 11 3.3V OUT (5V tol) 57 86 GNDD3 Core ground 58 87 SD_A9 SDRAM Address Bit 9 EXT_A9 Flash Address Bit 9 3.3V OUT (5V tol) 59 88 SD_A8 SDRAM Address Bit 8 EXT_A8 Flash Address Bit 8 3.3V OUT (5V tol) 60 89 VDDIO4 I/O power supply voltage 61 90 SD_A7 SDRAM Address Bit 7 EXT_A7 Function 1 (Default) Description of Default Function Secondary Functions Description of Secondary Functions Pwr 0V 0V 3.3V Flash Address Bit 7 Type PWR Y PWR PWR PWR 3.3V OUT (5V tol) Pin Assignments CS4953xx Hardware User’s Manual 9-20 LQFP144 Pin # DS732UM10 Table 9-10. Pin Assignments (Continued) Copyright 2010 Cirrus Logic, Inc LQFP144 Pin # LQFP128 Pin # 62 91 SD_A6 SDRAM Address Bit 6 EXT_A6 63 92 GNDIO4 I/O ground 64 93 SD_A5 SDRAM Address Bit 5 EXT_A5 65 94 EXT_CS2 Chip Select 2 3.3V OUT (5V tol) 66 95 VDD4 Core power supply voltage 1.8V 67 96 SD_A4 SDRAM Address Bit 4 EXT_A4 Flash Address Bit 4 3.3V OUT (5V tol) 68 97 SD_A3 SDRAM Address Bit 3 EXT_A3 Flash Address Bit 3 3.3V OUT (5V tol) 69 98 GNDD4 Core ground 70 99 SD_A2 SDRAM Address Bit 2 EXT_A2 Flash Address Bit 2 3.3V OUT (5V tol) 71 101 SD_A1 SDRAM Address Bit 1 EXT_A1 Flash Address Bit 1 3.3V OUT (5V tol) 72 102 SD_A0 SDRAM Address Bit 0 EXT_A0 Flash Address Bit 0 3.3V OUT (5V tol) 73 100 VDDIO5 I/O power supply voltage 74 103 SD_A10 SDRAM Address Bit 10 EXT_A10 Flash Address Bit 10 3.3V OUT (5V tol) 75 104 SD_BA0 SDRAM Bank Address EXT_A13 0 Flash Address Bit 13 3.3V OUT (5V tol) 76 105 GNDIO5 I/O ground 77 106 SD_BA1 SDRAM Bank Address EXT_A14 1 78 107 SD_WE SDRAM Write Enable Function 1 (Default) Description of Default Function Secondary Functions Description of Secondary Functions Flash Address Bit 6 Pwr PWR 3.3V OUT (5V tol) 0V 3.3V PWR PWR PWR PWR 3.3V OUT (5V tol) 9-21 3.3V OUT (5V tol) Pin Assignments CS4953xx Hardware User’s Manual 0V Flash Address Bit 14 Pullup at Reset 3.3V OUT (5V tol) 0V Flash Address Bit 5 Type Reset State DS732UM10 Table 9-10. Pin Assignments (Continued) Copyright 2010 Cirrus Logic, Inc LQFP144 Pin # LQFP128 Pin # 79 108 SD_CAS SDRAM Column Address Strobe 3.3V OUT (5V tol) 80 109 SD_RAS SDRAM Row Address Strobe 3.3V OUT (5V tol) 81 110 SD_CS SDRAM Chip Select 3.3V OUT (5V tol) 82 111 EXT_A15 Flash Address Bit 15 3.3V OUT (5V tol) 83 112 VDD5 Core power supply voltage 1.8V 84 113 EXT_A16 Flash Address Bit 16 3.3V OUT (5V tol) 85 114 EXT_A17 Flash Address Bit 17 3.3V OUT (5V tol) 86 115 GNDD5 Core ground 0V 87 116 EXT_A18 Flash Address Bit 18 3.3V OUT (5V tol) 88 117 EXT_A19 Flash Address Bit 19 3.3V OUT (5V tol) 89 118 EXT_OE Flash Output Enable 3.3V OUT (5V tol) 90 119 EXT_CS1 Active-low Flash chip select 3.3V OUT (5V tol) 91 120 VDDIO6 I/O power supply voltage 3.3V 92 - GPIO30 General Purpose Input/Output 93 121 RESET Chip Reset 3.3V In (5V tol) 94 122 GNDIO6 I/O ground 0V Function 1 (Default) Description of Default Function Secondary Functions 1. Channel status user data input 2. S/PDIF Pass-thru Input Pwr Type Pullup at Reset IN Y PWR PWR PWR 3.3V BiDir (5V tol) PWR 9-22 Pin Assignments CS4953xx Hardware User’s Manual 1. CSW_U 2. XMTB_IN Description of Secondary Functions Reset State DS732UM10 Table 9-10. Pin Assignments (Continued) LQFP144 Pin # LQFP128 Pin # 95 123 GPIO33 General Purpose Input/Output 96 - GPIO32 General Purpose Input/Output Function 1 (Default) Description of Default Function Secondary Functions SCP1_MOSI 1. SCP1_CS 2. IOWAIT Pullup at Reset 3.3V BiDir (5V tol) IN Y 1. SPI Chip Select 3.3V BiDir 2. SRAM Hold-Off Handshake (5V tol) IN Y 1. SPI Mode Master Data Input/Slave Data Output 2. I2C Mode Master/Slave Data IO IN Y Description of Secondary Functions SPI Mode Master Data Output/Slave Data Input Pwr Type 3.3V BiDir/ (5V tol) OD Copyright 2010 Cirrus Logic, Inc 97 124 GPIO34 General Purpose Input/Output 98 125 VDD6 Core power supply voltage 99 126 GPIO35 General Purpose Input/Output SCP1_CLK SPI/I2C Control Port Clock 3.3V BiDir/ (5V tol) OD IN Y 100 - GPIO36 General Purpose Input/Output SCP1_IRQ Serial Control Port Data Ready Interrupt Request 3.3V BiDir/ (5V tol) OD IN Y 101 127 GNDD6 Core ground 1. SCP1_BSY 2. PCP_BSY 1. Serial Control Port 1 Input Busy 2. Parallel Control Port Input Busy 3.3V BiDir/ (5V tol) OD IN Y 1. SCP1_BSY 1. Serial Control Port 1 Input Busy 3.3V BiDir/ (5V tol) OD IN Y 3.3V BiDir/ (5V tol) OD IN Y 3.3V BiDir/ (5V tol) OD IN Y 102 - GPIO37 General Purpose Input/Output - 128 GPIO37 General Purpose Input/Output 1. SCP1_MISO 2. SCP1_SDA Reset State 1.8V 0V - GPIO38 General Purpose Input/Output 1. PCP_WR 2. PCP_DS 3. SCP2_CLK - 1 GPIO38 General Purpose Input/Output 1. SCP2_CLK 1. SPI/I2C Control Port Clock PWR 9-23 Pin Assignments CS4953xx Hardware User’s Manual 103 1. Parallel Port Write Select (Intel Mode) 2. Parallel Port Data Strobe (Motorola and Multiplexed Mode) 3. SPI/I2C Control Port Clock PWR DS732UM10 Table 9-10. Pin Assignments (Continued) LQFP144 Pin # 104 105 Copyright 2010 Cirrus Logic, Inc - LQFP128 Pin # - - 2 Function 1 (Default) Description of Default Function Secondary Functions Description of Secondary Functions Pwr Type Reset State Pullup at Reset 1. PCP_CS 2. SCP2_CS 1. Parallel Port Chip Select (Intel/Motorola/Multiplexed Mode) 2. SPI Chip Select 3.3V BiDir (5V tol) IN Y GPIO11 General Purpose Input/Output 1. PCP_A3 2. PCP_AS 3. SCP2_MISO 4. SCP2_SDA 1. Parallel Control Port Address Bit 3 2. Parallel Control Port Address Strobe 3. SPI Mode Master Data Input/Slave Data Output 4. I2C Mode Master/Slave Data IO 3.3V BiDir/ (5V tol) OD IN Y GPIO11 General Purpose Input/Output 1. SCP2_MISO 2. SCP2_SDA 1. SPI Mode Master Data Input/Slave Data Output 2. I2C Mode Master/Slave Data IO 3.3V BiDir/ (5V tol) OD IN Y 3.3V BiDir (5V tol) IN Y GPIO39 General Purpose Input/Output - GPIO10 General Purpose Input/Output 1. PCP_A2 2. PCP_A10 3. SCP2_MOSI - 3 GPIO10 General Purpose Input/Output 1. SCP2_MOSI 1. SPI Mode Master Data Output/Slave Data Input 3.3V BiDir (5V tol) IN Y 3.3V BiDir (5V tol) IN Y 3.3V BiDir/ (5V tol) OD IN Y 107 108 - - GPIO40 General Purpose Input/Output 1. PCP_RD 2. PCP_R/W 1. Parallel Read Select (Intel Mode) 2. Parallel Read/Write Select (Motorola and Multiplexed Mode) GPIO41 General Purpose Input/Output 1. PCP_IRQ 2. SCP2_IRQ 1. Parallel Control Port Data Ready Interrupt Request 2. Serial Control Port Data Ready Interrupt Request 9-24 Pin Assignments CS4953xx Hardware User’s Manual 106 1. Parallel Control Port Address Bit 2 2. Parallel Control Port Address Bit 10 3. SPI Mode Master Data Output/Slave Data Input DS732UM10 Table 9-10. Pin Assignments (Continued) LQFP144 Pin # LQFP128 Pin # Function 1 (Default) Description of Default Function Secondary Functions Description of Secondary Functions Pwr Type Reset State Pullup at Reset 1. PCP_A1 2. PCP_A9 1. Parallel Control Port Address Bit 1 2. Parallel Control Port Address Bit 9 3.3V BiDir (5V tol) IN Y Copyright 2010 Cirrus Logic, Inc 109 - GPIO9 General Purpose Input/Output - 4 GPIO9 General Purpose Input/Output 1. SCP1_IRQ 1. Serial Control Port Data Ready Interrupt Request 3.3V BiDir (5V tol) IN Y 1. PCP_A0 2. PCP_A8 1. Parallel Control Port Address Bit 0 2. Parallel Control Port Address Bit 8 3.3V BiDir (5V tol) IN Y 1. SCP2_IRQ 1. Serial Control Port Data Ready Interrupt Request 3.3V BiDir (5V tol) IN Y IN Y 110 - GPIO8 General Purpose Input/Output - 5 GPIO8 General Purpose Input/Output - GPIO7 General Purpose Input/Output 1. PCP_D7 2. PCP_AD7 - 6 GPIO7 General Purpose Input/Output 1. SCP1_CS 2. IOWAIT 1. SPI Chip Select 3.3V BiDir 2. SRAM Hold-Off Handshake (5V tol) IN Y IN Y 3.3V BiDir (5V tol) IN Y IN Y 112 - GPIO6 General Purpose Input/Output 1. PCP_D6 2. PCP_AD6 1. Parallel Control Port Data Bus 3.3V BiDir 2. Parallel Control Port (5V tol) Multiplexed Address and Data Bus - 7 GPIO6 General Purpose Input/Output 1. SCP2_CS 1. SPI Chip Select 113 8 VDDIO7 I/O power supply voltage 114 - GPIO5 General Purpose Input/Output 3.3V 1. PCP_D5 2. PCP_AD5 PWR 1. Parallel Control Port Data Bus 3.3V 2. Parallel Control Port BiDir (5V tol) Multiplexed Address and Data Bus 9-25 Pin Assignments CS4953xx Hardware User’s Manual 111 1. Parallel Control Port Data Bus 3.3V 2. Parallel Control Port BiDir (5V tol) Multiplexed Address and Data Bus DS732UM10 Table 9-10. Pin Assignments (Continued) LQFP144 Pin # LQFP128 Pin # Function 1 (Default) Description of Default Function 115 - GPIO4 General Purpose Input/Output 116 9 GNDIO7 I/O ground Secondary Functions 1. PCP_D4 2. PCP_AD4 Copyright 2010 Cirrus Logic, Inc Reset State Pullup at Reset IN Y 1. Parallel Control Port Data Bus 3.3V 2. Parallel Control Port BiDir (5V tol) Multiplexed Address and Data Bus IN Y Description of Secondary Functions Pwr 1. Parallel Control Port Data Bus 3.3V 2. Parallel Control Port BiDir (5V tol) Multiplexed Address and Data Bus 0V 1. PCP_D3 2. PCP_AD3 Type PWR 117 - GPIO3 General Purpose Input/Output - 10 GPIO3 General Purpose Input/Output 3.3V BiDir (5V tol) IN Y IN Y 3.3V BiDir (5V tol) IN Y IN Y 118 - GPIO2 General Purpose Input/Output 1. PCP_D2 2. PCP_AD2 1. Parallel Control Port Data Bus 3.3V BiDir 2. Parallel Control Port (5V tol) Multiplexed Address and Data Bus - 11 GPIO2 General Purpose Input/Output 1. UART_TXD 1. UART Output 119 12 VDD7 Core power supply voltage 121 PWR 9-26 - GPIO1 General Purpose Input/Output 1. PCP_D1 2. PCP_AD1 1. Parallel Control Port Data Bus 3.3V 2. Parallel Control Port BiDir (5V tol) Multiplexed Address and Data Bus 13 GPIO1 General Purpose Input/Output 1. UART_RXD 1. UART Input 3.3V BiDir (5V tol) IN Y 1. PCP_D0 2. PCP_AD0 1. Parallel Control Port Data Bus 3.3V 2. Parallel Control Port BiDir (5V tol) Multiplexed Address and Data Bus IN Y - GPIO0 General Purpose Input/Output Pin Assignments CS4953xx Hardware User’s Manual 120 1.8V DS732UM10 Table 9-10. Pin Assignments (Continued) LQFP144 Pin # LQFP128 Pin # Function 1 (Default) Description of Default Function Secondary Functions Description of Secondary Functions Pwr Type Pullup at Reset IN Y Copyright 2010 Cirrus Logic, Inc 14 GPIO0 General Purpose Input/Output 122 15 GNDD7 Core ground 0V 123 16 XTAL_OUT Buffered Reference Clock Input/Crystal Oscillator Input 3.3V OUT (5V tol) 124 17 XTI Reference Clock Input/Crystal Oscillator Input 3.3V ANA (5V tol) 125 18 XTO Crystal Oscillator Output 1 3.3V ANA 126 19 GNDA PLL ground 1.8V PWR 127 - NC Do Not Connect on PCB 1.8V ANA 128 20 Current Reference PLL_REF_RE Output for PLL. S Connect to resistor. 3.3V ANA 129 21 VDDA PLL power. 3.3V PWR 130 22 VDD8 Core power supply voltage 1.8V PWR 131 23 GPIO14 General Purpose Input/Output 1. DAI1_DATA3 2. DSD3 1. PCM Audio Input Data 3 2. DSD Audio Input Data 3 3.3V BiDir (5V tol) IN Y 132 24 GPIO13 General Purpose Input/Output 1. DAI1_DATA2 2. DSD2 1. PCM Audio Input Data 2 2. DSD Audio Input Data 2 3.3V BiDir (5V tol) IN Y 133 25 GNDD8 Core ground 134 26 GPIO12 General Purpose Input/Output IN Y 135 27 DAI1_DATA0 PCM Audio Input Data DSD0 0 136 28 VDDIO8 I/O power supply voltage 1. UART_CLK 1. UART Clock 3.3V BiDir (5V tol) Reset State 1. DAI1_DATA1 2. DSD1 PWR 1. PCM Audio Input Data 1 2. DSD Audio Input Data 1 3.3V BiDir (5V tol) DSD Audio Input Data 0 3.3V In (5V tol) 3.3V PWR Y 9-27 Pin Assignments CS4953xx Hardware User’s Manual 0V PWR DS732UM10 Table 9-10. Pin Assignments (Continued) LQFP144 Pin # LQFP128 Pin # 137 Function 1 (Default) Description of Default Function 29 DAI1_SCLK PCM Audio Input Bit Clock 138 30 PCM Audio Input DAI1_LRCLK Sample Rate (Left/ Right) Clock 139 31 GNDIO8 Secondary Functions Description of Secondary Functions Pwr Type Reset State Pullup at Reset DSD_CLK DSD Audio Input Clock 3.3V In (5V tol) Y DSD4 DSD Audio Input Data 4 3.3V In (5V tol) Y I/O ground 0V Copyright 2010 Cirrus Logic, Inc 1. DAI2_LRCLK 2. BDI_REQ 3. PCP_IRQ 4. PCP_BSY 1.PCM Audio Input Sample Rate Clock 2. Bursty Data Input Request 3. Parallel Control Port Data Ready Interrupt Request 4. Parallel Control Port Input Busy PWR 3.3V BiDir/ (5V tol) OD IN Y 140 - GPIO42 General Purpose Input/Output - 32 GPIO42 General Purpose Input/Output 1. DAI2_LRCLK 2. BDI_REQ 1.PCM Audio Input Sample Rate Clock 2. Bursty Data Input Request 3.3V BiDir/ (5V tol) OD IN Y 141 33 GPIO43 General Purpose Input/Output 1. DAI2_SCLK 2. BDI_CLK 1.PCM Audio Input Bit Clock 3.3V BiDir 2. Bursty Data Input Bit Clock (5V tol) IN Y 142 34 DAI2_DATA 1. DAI1_DATA4 PCM Audio Input Data 2. DSD5 3. BDI_DATA 143 - GPIO27 General Purpose Input/Output 3.3V BiDir (5V tol) IN Y 144 - GPIO26 General Purpose Input/Output 3.3V BiDir (5V tol) IN Y General Purpose Input/Output 1. Digital Audio Output 3. 2. Outputs IEC60958/61937 1. DAO2_DATA3 3.3V BiDir format bi-phase mark encoded 2. XMTB (5V tol) 3. UART_TX_ENABLE S/PDIF data 3. Enable the UART_TX pin IN Y 35 GPIO26 3.3V In (5V tol) Y 9-28 Pin Assignments CS4953xx Hardware User’s Manual - 1. PCM Audio Input Data 4 2. DSD Audio Input Data 5 3. Bursty Data Input Data Revision History CS4953xx Hardware User’s Manual Revision History Revision Date Changes UM1 UM2 MAY 17, 2006 AUG 24, 2006 UM3 OCT 11, 2007 UM4 NOV 21, 2007 UM5 NOV 28, 2007 UM6 May 7, 2008 UM7 July 10, 2008 UM8 April 23, 2009 UM9 June 5, 2009 Preliminary Release Updated Boot Procedure Updated CrusConfig register and corrected Output D1 and Input D2 messages. Update Section 2.5.2, "Softboot Procedure" on page 2-15. Added Bank Addressing note to Table 8-1 for SD_BA0/ EXT_A13 and SD_BA1/EXT_A14 signals. Added same note with each schematic in Chapter 9. Modified Note directly above Section 8.3.1, "SDRAM/Flash Interface Signals" on page 8-2 Changed definition for secondary functions in Section 910 “Pin Assignments” on page 9-17 for pins 138 and 142. Made same changes in Figure 9-11 for the 144-Pin LQFP pin layout drawing. Changed text in Figure Titles for Figure 9-1, Figure 9-2, Figure 9-4, and Figure 9-5. Modified Note 1 under Table 8-1. Change note regarding bank selection, in Figures 9-1 to 9-7. Added new typical connection diagram in Figure 9-6, “LQFP-128, I2C Control, Serial FLASH, DSD Audio Input, SDRAM, 7 DACs.” Modified description of firmware modules offered on the CS4953xx platform on page 1-3. Updated list of sample rates supported for the Digital Audio Port in Section 6.1, "Description of Digital Audio Input Port when Configured for DSD Input" on page 6-1. Clarified availability of parallel control port in Chapter 4, "Parallel Control Port". Added important notice a beginning of Section 8.3.2, "Configuring SDRAM/Flash Parameters" on page 8-4. Updated Figure 3-6, adding missing ACK timing diagram. Updated Table 5-3, Table 5-4, Table 5-5. Table 5-6, and Table 7-4. Reformatted manual to current Cirrus Logic style practices. Updated Table 3-1, Table 3-2, Table 8-1 and Table 9-8, noting signals that are active low with a line over the signal. Added XTAL/2 frequency capability for Master and Slave boot in Section 2.3.1.1.1.(Steps 5 and 8) and in Section 2.3.2.1.1.(Steps 6 and 9). Updated Master and Slave boot flow charts in Figure 2-2 and Figure 2-3 to show where XTAL/2 frequency can be implemented if desired. Updated values for A1, Left Justified 24-bit, in Table 5-3. Removed overline which had designed Pins SD_DQM0 and SD_DQM1 to be Active Low in Table 910 and in Chapter 8, "External Memory Interfaces". DS732UM10 Copyright 2010 Cirrus Logic, Inc 9-29 Revision History CS4953xx Hardware User’s Manual Revision UM10 Date Changes February 12, 2010 Updated Table 2-6, GPIO Pins Available as EE_CS in HCMB. Added A2 parameter configuration and changed default value to Table 7-2, Output Clock Mode Configuration (Parameter A). Changed default value amd added note that was previously in the A1 table cell of Table 7-2 to the B0 table cell in Table 7-3, DAO1 & DAO2 Clocking Relationship Configuration (Parameter B). Added C Value, 16 to Table 7-4, Output DAO_SCLK/ LRCLK Configuration (Parameter C). Updated Table 710, S/PDIF Transmitter Configuration. Added Table 7-8. Added note at the end of Section 7.1.3 “DAO Interface Formats” on page 7-3 §§ DS732UM10 Copyright 2010 Cirrus Logic, Inc 9-30