TAS1020PFB [TI]

USB Streaming Controller; USB流控制器
TAS1020PFB
型号: TAS1020PFB
厂家: TEXAS INSTRUMENTS    TEXAS INSTRUMENTS
描述:

USB Streaming Controller
USB流控制器

总线控制器 微控制器和处理器 外围集成电路 可编程只读存储器 时钟
文件: 总93页 (文件大小:376K)
中文:  中文翻译
下载:  下载PDF数据表文档文件
Data Manual  
February 2001  
DAV Digital Audio - Digital Speakers  
SLAS263A  
IMPORTANT NOTICE  
Texas Instruments and its subsidiaries (TI) reserve the right to make changes to their products or to discontinue  
any product or service without notice, and advise customers 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, patent infringement, and limitation of liability.  
TI warrants performance of its products to the specifications applicable at the time of sale in accordance with  
TI’sstandardwarranty. TestingandotherqualitycontroltechniquesareutilizedtotheextentTIdeemsnecessary  
to support this warranty. Specific testing of all parameters of each device is not necessarily performed, except  
those mandated by government requirements.  
Customers are responsible for their applications using TI components.  
In order to minimize risks associated with the customer’s applications, adequate design and operating  
safeguards must be provided by the customer to minimize inherent or procedural hazards.  
TI assumes no liability for applications assistance or customer product design. TI does not warrant or represent  
that any license, either express or implied, is granted under any patent right, copyright, mask work right, or other  
intellectual property right of TI covering or relating to any combination, machine, or process in which such  
products or services might be or are used. TI’s publication of information regarding any third party’s products  
or services does not constitute TI’s approval, license, warranty or endorsement thereof.  
Reproduction of information in TI data books or data sheets is permissible only if reproduction is without  
alteration and is accompanied by all associated warranties, conditions, limitations and notices. Representation  
or reproduction of this information with alteration voids all warranties provided for an associated TI product or  
service, is an unfair and deceptive business practice, and TI is not responsible nor liable for any such use.  
Resale of TI’s products or services with statements different from or beyond the parameters stated by TI for  
that product or service voids all express and any implied warranties for the associated TI product or service,  
is an unfair and deceptive business practice, and TI is not responsible nor liable for any such use.  
Also see: Standard Terms and Conditions of Sale for Semiconductor Products. www.ti.com/sc/docs/stdterms.htm  
Mailing Address:  
Texas Instruments  
Post Office Box 655303  
Dallas, Texas 75265  
Copyright 2001, Texas Instruments Incorporated  
Contents  
Section  
1
Title  
Page  
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–1  
1.1  
1.2  
1.3  
1.4  
1.5  
1.6  
1.7  
1.8  
1.9  
Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11  
Functional Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13  
Terminal Assignments Normal Mode . . . . . . . . . . . . . . . . . . . . . . . . . 13  
Terminal Assignments External MCU Mode . . . . . . . . . . . . . . . . . . . 14  
Ordering Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14  
Terminal Functions Normal Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15  
Terminal Functions External MCU Mode . . . . . . . . . . . . . . . . . . . . . . 16  
Device Operation Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17  
Terminal Assignments for Codec Port Interface Modes . . . . . . . . . . . 17  
2
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2–1  
2.1 Architectural Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21  
2.1.1  
2.1.2  
2.1.3  
2.1.4  
2.1.5  
2.1.6  
2.1.7  
2.1.8  
2.1.9  
2.1.10  
2.1.11  
Oscillator and PLL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21  
Clock Generator and Sequencer Logic . . . . . . . . . . . . . . . . 21  
Adaptive Clock Generator (ACG) . . . . . . . . . . . . . . . . . . . . . 21  
USB Transceiver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21  
USB Serial Interface Engine (SIE) . . . . . . . . . . . . . . . . . . . . 21  
USB Buffer Manager (UBM) . . . . . . . . . . . . . . . . . . . . . . . . . . 22  
USB Frame Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22  
USB Suspend and Resume Logic . . . . . . . . . . . . . . . . . . . . . 22  
MCU Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22  
MCU Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22  
USB End-Point Configuration Blocks and  
End-Point Buffer Space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22  
2.1.12  
2.1.13  
2.1.14  
2.1.15  
2.1.16  
2.1.17  
DMA Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22  
Codec Port Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23  
I2C Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23  
General-Purpose IO Ports (GPIO) . . . . . . . . . . . . . . . . . . . . 23  
Interrupt Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23  
Reset Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23  
2.2  
Device Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23  
2.2.1  
2.2.2  
2.2.3  
2.2.4  
2.2.5  
2.2.6  
Clock Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23  
Device Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23  
USB Enumeration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25  
USB Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25  
USB Suspend and Resume Modes . . . . . . . . . . . . . . . . . . . 26  
Adaptive Clock Generator (ACG) . . . . . . . . . . . . . . . . . . . . . 26  
iii  
2.2.7  
2.2.8  
2.2.9  
2.2.10  
2.2.11  
2.2.12  
2.2.13  
USB Transfers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29  
Microcontroller Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217  
External MCU Mode Operation . . . . . . . . . . . . . . . . . . . . . . . 217  
Interrupt Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217  
DMA Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218  
Codec Port Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218  
I2C Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223  
3
Electrical Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31  
3.1  
3.2  
3.3  
Absolute Maximum Ratings Over Operating Temperature Ranges . 31  
Recommended Operating Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . 31  
Electrical Characteristics Over Recommended Operating  
Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31  
3.4  
Timing Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32  
3.4.1  
3.4.2  
3.4.3  
3.4.4  
3.4.5  
3.4.6  
Clock and Control Signals Over Recommended Operating  
Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32  
USB Transceiver Signals Over Recommended Operating  
Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32  
Codec Port Interface Signals (AC 97 Modes), T = 25°C, DV  
A
DD  
= 3.3 V, AV  
= 3.3 V . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33  
DD  
Codec Port Interface Signals (I2S Modes) Over  
Recommended Operating Conditions . . . . . . . . . . . . . . . . . . 34  
Codec Port Interface Signals (General-Purpose Mode)  
Over Recommended Operating . . . . . . . . . . . . . . . . . . . . . . . 34  
I2C Interface Signals Over Recommended Operating  
Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35  
4
Application Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  
1  
A MCU Memory and Memory Mapped Registers . . . . . . . . . . . . . . . . . . . . . . . A1  
B Mechanical Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B1  
iv  
List of Illustrations  
Figure  
Title  
Page  
21 Adaptive Clock Generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27  
22 Connection of the TAS1020 to an AC 97 Codec . . . . . . . . . . . . . . . . . . . . . . 220  
23 Connection of the TAS1020 to Multiple AC 97 Codecs . . . . . . . . . . . . . . . . . 221  
24 Single Byte Write Transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224  
25 Multiple Byte Write Transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224  
26 Single Byte Read Transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225  
27 Multiple Byte Read Transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225  
31 External Interrupt Timing Waveform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32  
32 USB Differential Driver Timing Waveform . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32  
33 BIT_CLK and SYNC Timing Waveforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33  
34 SYNC, SD_IN, and SD_OUT Timing Waveforms . . . . . . . . . . . . . . . . . . . . . . 33  
35 I2S Mode Timing Waveforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34  
36 General-Purpose Mode Timing Waveforms . . . . . . . . . . . . . . . . . . . . . . . . . . . 34  
37 SCL and SDA Timing Waveforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35  
38 Start and Stop Conditions Timing Waveforms . . . . . . . . . . . . . . . . . . . . . . . . . 35  
39 Acknowledge Timing Waveform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35  
41 Typical TAS1020 Device Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  
1  
List of Tables  
Table  
Title  
Page  
21 EEPROM Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24  
22 ACG Frequency Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28  
23 Terminal Assignments for Codec Port Interface AC 97 10 Mode . . . . . . . . 219  
24 Terminal Assignments for Codec Port Interface AC 97 20 Mode . . . . . . . . 220  
2
25 Terminal Assignments for Codec Port Interface I S Modes . . . . . . . . . . . . . 221  
2
26 SLOT Assignments for Codec Port Interface I S Mode 4 . . . . . . . . . . . . . . . 222  
2
27 SLOT Assignments for Codec Port Interface I S Mode 5 . . . . . . . . . . . . . . . 222  
28 Terminal Assignments for Codec Port Interface General-Purpose Mode . . 222  
v
vi  
1 Introduction  
The TAS1020 integrated circuit (IC) is a universal serial bus (USB) peripheral interface device designed specifically  
for applications that require isochronous data streaming. Applications include digital speakers, which require the  
streaming of digital audio data between the host PC and the speaker system via the USB connection. The TAS1020  
device is fully compatible with the USB Specification Version 1.1 and the USB Audio Class Specification.  
The TAS1020 uses a standard 8052 microcontroller unit (MCU) core with on-chip memory. The MCU memory  
includes 8K bytes of program memory ROM that contains a boot loader program. At initialization, the boot loader  
program downloads the application program code to a 6K RAM from either the host PC or a nonvolatile memory on  
the printed-circuit board (PCB). The MCU handles all USB control, interrupt and bulk end-point transactions. In  
addition, the MCU can handle USB isochronous end-point transactions.  
The USB interface includes an integrated transceiver that supports 12 Mb/s (full speed) data transfers. In addition  
to the USB control end-point, support is provided for up to seven in end-points and seven out end-points. The USB  
end-points are fully configurable by the MCU application code using a set of end-point configuration blocks that reside  
in on-chip RAM. All USB data transfer types are supported.  
The TAS1020 device also includes a codec port interface (C-Port) that can be configured to support several industry  
standard serial interface protocols. These protocols include the audio codec (AC) 97 Revision 1.X, the audio codec  
2
(AC) 97 Revision 2.X and several inter-IC sound (I S) modes.  
A direct memory access (DMA) controller with two channels is provided for streaming the USB isochronous data  
packets to/from the codec port interface. Each DMA channel can support one USB isochronous end-point.  
An on-chip phase lock loop (PLL) and adaptive clock generator (ACG) provide support for the USB synchronization  
modes, which include asynchronous, synchronous and adaptive.  
2
Other on-chip MCU peripherals include an inter-IC control (I C) serial interface, and two 8-bit general-purpose  
input/output (GPIO) ports.  
The TAS1020 device is implemented in a 3.3-V 0.25 µm CMOS technology.  
1.1 Features  
Universal Serial Bus (USB)  
USB specification version 1.1 compatible  
USB audio class specification 1.0 compatible  
Integrated USB transceiver  
Supports 12 Mb/s data rate (full speed)  
Supports suspend/resume and remote wake-up  
Supports control, interrupt, bulk, and isochronous data transfer types  
Supports up to a total of seven in end-points and seven out end-points in addition to the control  
end-point  
Data transfer type, data buffer size, single or double buffering is programmable for each end-point  
On-chip adaptive clock generator (ACG) supports asynchronous, synchronous and adaptive  
synchronization modes for isochronous end-points  
To support synchronization for streaming USB audio data, the ACG can be used to generate the master  
clock for the codec  
11  
Micro-Controller Unit (MCU)  
Standard 8052 8-bit core  
8K bytes of program memory ROM that contains a boot loader program and a library of commonly used  
USB functions  
6016 bytes of program memory RAM which is loaded by the boot loader program  
256 bytes of internal data memory RAM  
Two GPIO ports  
MCU handles all USB control, interrupt, and bulk end-point transfers  
DMA Controller  
Two DMA channels to support streaming USB audio data to/from the codec port interface  
Each channel can support a single USB isochronous end-point  
2
In the I S mode the device can support DAC/ADCs at different sampling frequencies  
A circular programmable FIFO used for isochronous audio data streaming  
Codec Port Interface  
2
Configurable to support AC97 1.X, AC97 2.X, AIC or I S serial interface formats  
2
I S modes can support a combination of one DAC and/or two ADCs  
Can be configured as a general-purpose serial interface  
Can support bulk data transfer using DMA for higher throughput  
2
I C Interface  
Master only interface  
Does not support a multimaster bus environment  
Programmable to 100 kb/s or 400 kb/s data transfer speeds  
2
Supports I C arbitration and wait states to accomodate slow slaves  
General Characteristics  
High performance 48-pin TQFP Package  
On-chipphase-lockedloop(PLL)withinternaloscillatorisusedtogenerateinternalclocksfroma6MHz  
crystal input  
Reset output available which is asserted for both system and USB reset  
External MCU mode supports application firmware development  
8K ROM with boot loader program and commonly used USB functions library  
3.3 V core and I/O buffers  
12  
1.2 Functional Block Diagram  
USB Serial  
Interface  
Engine  
1.5 k × 8  
SRAM  
CODEC  
Interface  
USB  
UBM  
DMA  
CPort  
SOF  
Suspend  
/Resume  
Logic  
OSC  
PLL  
ACG  
Global  
Control/Status  
Registers  
6 MHz  
8052 Core  
8 K ROM  
6 K RAM  
2
I
C
2
I C Bus  
Control  
Port3 Port1  
1.3 Terminal Assignments Normal Mode  
PFB PACKAGE (Normal Mode)  
(TOP VIEW)  
36 35 34 33 32 31 30 29 28 27 26 25  
24  
23  
22  
21  
20  
19  
18  
17  
16  
15  
14  
13  
P1.1  
P1.0  
NC  
CSCLK  
CDATO  
MCLKO1  
MCLKO2  
37  
38  
39  
40  
DV  
DD  
NC  
RESET 41  
VREN  
P3.5  
P3.4  
P3.3  
DV  
42  
TAS1020  
SDA 43  
SCL 44  
AV  
45  
SS  
SS  
P3.2/XINT  
P3.1  
P3.0  
XTALO 46  
XTALI 47  
PLLFILI 48  
1
2
3
4
5
6
7
8
9 10 11 12  
13  
1.4 Terminal Assignments External MCU Mode  
PFB PACKAGE (External Mode)  
(TOP VIEW)  
36 35 34 33 32 31 30 29 28 27 26 25  
24  
23  
22  
21  
20  
19  
18  
17  
16  
15  
14  
13  
MCUAD1  
MCUAD0  
MCURD  
CSCLK  
CDATO  
MCLKO1  
MCLKO2  
37  
38  
39  
40  
DV  
DD  
MCUWR  
MCUINTO  
MCUALE  
MCUA10  
RESET 41  
VREN  
42  
TAS1020  
SDA 43  
SCL 44  
DV  
AV  
45  
SS  
SS  
XINT  
MCUA9  
MCUA8  
XTALO 46  
XTALI 47  
PLLFILI 48  
1
2
3
4
5
6
7
8
9 10 11 12  
1.5 Ordering Information  
T
AS  
1020  
PFB  
Texas Instruments  
Audio Solutions  
Peripheral Device  
Package Type  
TQFP  
48 pins  
PFB  
14  
1.6 Terminal Functions Normal Mode  
TERMINAL  
I/O  
DESCRIPTION  
PIN  
TYPE  
NAME  
NO.  
AV  
Power  
Power  
CMOS  
2
3.3-V analog supply voltage  
Analog ground  
DD  
AV  
45  
37  
SS  
CSCLK  
I/O  
I/O  
Codec port interface serial clock: CSCLK is the serial clock for the codec port interface used to clock  
the CSYNC, CDATO, CDATI, CRESET, AND CSCHNE signals.  
CSYNC  
CMOS  
35  
Codec port interface frame sync: CSYNC is the frame synchronization signal for the codec port  
interface.  
CDATO  
CDATI  
CRESET  
CSCHNE  
DP  
CMOS  
CMOS  
CMOS  
CMOS  
CMOS  
38  
36  
34  
32  
6
I/O  
I/O  
I/O  
I/O  
I/O  
Codec port interface serial data out  
Codec port interface serial data in  
Codec port interface reset output  
Codec port interface secondary channel enable  
USB differential pair data signal plus. DP is the positive signal of the bidirectional USB differential  
pair used to connect the TAS1020 device to the universal serial bus.  
DM  
CMOS  
7
I/O  
USB differential pair data signal minus. DM is the negative signal of the bidirectional USB differential  
pair used to connect the TAS1020 device to the universal serial bus.  
DV  
DV  
Power 8, 21, 33  
Power 4, 16, 28  
3.3-V digital supply voltage  
DD  
SS  
Digital ground  
EXTEN  
MCLKI  
CMOS  
CMOS  
11  
3
I
I
External MCU mode enable: Input used to enable the device for the external MCU mode  
Master clock input. An input that can be used as the master clock for the codec port interface or the  
source for MCLKO2.  
MCLKO1  
MCLKO2  
CMOS  
CMOS  
39  
40  
O
O
Master clock output 1: The output of the ACG that can be used as the master clock for the codec port  
interface and the codec.  
Masterclockoutput2:Anoutputthatcanbeusedasthemasterclockforthecodecportinterfaceand  
2
the codec used in I S modes for receive. This clock signal can also be used as a miscellaneous  
clock.  
MRESET  
NC  
CMOS  
CMOS  
9
I
Master reset: An active low asynchronous reset for the device that resets all logic to the default state  
Not used  
20,22  
P1.[0:7]  
23, 24,  
25, 26,  
27, 29,  
30, 31  
I/O  
General-purpose I/O port [bits 0 through 1]: A bidirectional 8-bit I/O port with an internal 100 µA  
active pullup  
P3.[0:6]  
CMOS  
13, 14,  
15, 17,  
18, 19  
I/O  
General-purpose I/O port [bits 0 through 1]: A bidirectional I/O port with an internal 100 µA active  
pullup  
PLLFILI  
PLLFILO  
PUR  
CMOS  
CMOS  
CMOS  
48  
1
I
PLL loop filter input: Input to on-chip PLL from external filter components  
PLL loop filter output: Output from on-chip PLL to external filter components  
O
O
5
USB data signal plus pullup resistor connect. PUR is used to connect the pullup resistor on the DP  
signal to 3.3-V or a 3-state. When the DP signal is connected to 3.3-V the host PC detects the  
connection of the TAS1020 device to the universal serial bus.  
RESET  
RSTO  
SCL  
CMOS  
CMOS  
CMOS  
CMOS  
CMOS  
CMOS  
CMOS  
CMOS  
CMOS  
41  
12  
44  
43  
10  
42  
15  
47  
46  
O
O
O
I/O  
I
General-purpose active-low output which is memory mapped  
Reset output: An output that is active while the master reset input or the USB reset is active  
2
I C interface serial clock  
2
SDA  
I C interface serial data  
TEST  
VREN  
XINT  
Test mode enable: Factory test mode  
O
I
General-purpose active-low output which is memory mapped  
External interrupt: An active low input used by external circuitry to interrupt the on-chip 8052 MCU  
Crystal input: Input to the on-chip oscillator from an external 6-MHz crystal  
Crystal Output: Output from the on-chip oscillator to an external 6-MHz crystal  
XTALI  
XTALO  
I
O
15  
1.7 Terminal Functions External MCU Mode  
TERMINAL  
I/O  
DESCRIPTION  
PIN  
TYPE  
NAME  
NO.  
AV  
Power  
Power  
CMOS  
2
3.3-V Analog supply voltage  
Analog ground  
DD  
AV  
45  
37  
SS  
CSCLK  
I/O  
Codec port interface serial clock: CSCLK is the serial clock for the codec port interface used to  
clock the CSYNC, CDATO, CDATI, CRESET AND CSCHNE signals.  
CSYNC  
CMOS  
35  
I/O  
Codec port interface frame sync: CSYNC is the frame synchronization signal for the codec port  
interface.  
CDATO  
CDATI  
CRESET  
CSCHNE  
DP  
CMOS  
CMOS  
CMOS  
CMOS  
CMOS  
38  
36  
34  
32  
6
I/O  
I/O  
I/O  
I/O  
I/O  
Codec port interface serial data output  
Codec port interface serial data input  
Codec port interface reset output  
Codec port interface secondary channel enable  
USB differential pair data signal plus: DP is the positive signal of the bidirectional USB differential  
pair used to connect the TAS1020 device to the universal serial bus.  
DM  
CMOS  
7
I/O  
USB differential pair data signal minus. DM is the negative signal of the bidirectional USB differen-  
tial pair used to connect the TAS1020 device to the universal serial bus.  
DV  
DV  
Power  
Power  
CMOS  
8, 21, 33  
4, 16, 28  
11  
I
3.3-V Digital supply voltage  
Digital ground  
DD  
SS  
EXTEN  
External MCU mode enable: Input used to enable the device for the external MCU mode. This sig-  
nal uses a 3.3 V TTL/LVCMOS input buffer.  
MCLKI  
CMOS  
CMOS  
CMOS  
CMOS  
3
39  
40  
9
I
O
O
I
Master clock input: An input that can be used as the master clock for the codec port interface or the  
source for MCLKO2.  
MCLKO1  
MCLKO2  
MRESET  
Master clock output 1: The output of the ACG that can be used as the master clock for the codec  
port interface and the codec.  
Master clock output 2: An output that can be used as the master clock for the codec port interface  
and the codec. This clock signal can also be used as a miscellaneous clock.  
Master reset: An active low asynchronous reset for the device that resets all logic to the default  
state.  
MCUAD  
[0:7]  
CMOS 23, 24, 25,  
26, 27, 29,  
I/O  
MCU multiplexed address/data bit 0: Multiplexed address bit 0/data bit 0 for external MCU access  
to the TAS1020 external data memory space.  
30, 31  
MCUA  
[8:10]  
CMOS 13, 14, 17  
I/O  
MCU address bus: Multiplexed address bus for external MCU access to the TAS1020 external  
data memory space.  
MCUALE  
MCUINTO  
MCUWR  
MCURD  
CMOS  
CMOS  
CMOS  
CMOS  
18  
19  
20  
22  
I
O
I
MCU address latch enable: Address latch enable for external MCU access to the TAS1020 exter-  
nal data memory space.  
MCU interrupt output: Interrupt output to be used for external MCU INTO input signal. All internal  
TAS1020 interrupt sources are read together to generate this output signal.  
MCU write strobe: Write strobe for external MCU write access to the TAS1020 external data  
memory space.  
I
MCU read strobe: Read strobe for external MCU read access to the TAS1020 external data  
memory space.  
PLLFILI  
PLLFILO  
PUR  
CMOS  
CMOS  
CMOS  
48  
1
I
PLL loop filter input: Input to on-chip PLL from external filter components.  
PLL loop filter output: Output to on-chip PLL from external filter components.  
O
O
5
USB Data signals plus pullup resistor connect. PUR is used to connect the pullup resistor on the  
DP signal to 3.3V to a 3-state. When the DP signal is connect to a 3.3V, the host PC should detect  
the connection of the TAS1020 device to the universal serial bus.  
RESET  
RSTO  
SCL  
CMOS  
CMOS  
CMOS  
CMOS  
CMOS  
41  
12  
44  
43  
10  
O
O
O
I/O  
I
General-purpose active-low output which is memory mapped  
Reset output: An output that is active while the master reset input or the USB reset is active.  
2
I C interface serial clock  
2
SDA  
I C interface serial data input/output  
TEST  
Test mode enable: Factory text mode  
16  
1.7 Terminal Functions External MCU Mode (Continued)  
TERMINAL  
I/O  
DESCRIPTION  
PIN  
TYPE  
NAME  
VREN  
NO.  
CMOS  
CMOS  
CMOS  
CMOS  
42  
15  
47  
46  
O
I
General-purpose active-low output which is memory mapped.  
XINT  
Externalinterrupt: An active low input used by external circuitry to interrupt the on-chip 8052 MCU.  
Crystal input: Input to the on-chip oscillator from an external 6-MHz crystal.  
Crystal output: Output from the on-chip oscillator to an external 6-MHz crystal.  
XTALI  
XTALO  
I
O
1.8 Device Operation Modes  
The EXTEN and TEST pins define the mode that the TAS1020 is in after reset.  
MODE  
Normal mode internal MCU  
External MCU mode  
Factory test  
EXTEN  
TEST  
0
1
0
1
0
0
1
1
Factory test  
1.9 Terminal Assignments for Codec Port Interface Modes  
2
The codec port interface has five modes of operation that support AC97, I S, and AIC codecs. There is also a  
general-purpose mode that is not specific to a serial interface. The mode is programmed by writing to the mode select  
field of the codec port interface configuration register 1 (CPTCNF1). The codec port interface terminals CSYNC,  
CSCLK, CDATO, CDATI, CRESET, and CSCHNE take on functionality appropriate to the mode programmed as  
shown in the following table.  
TERMINAL  
NO. NAME  
2
2
GP  
Mode 0  
AIC  
Mode 1  
AC 97 v1.X  
Mode 2  
AC 97 v2.X  
Mode 3  
I S  
I S  
Mode 4  
Mode 5  
35  
37  
38  
36  
34  
32  
CSYNC  
CSCLK  
CDATO  
CDATI  
CSYNC  
I/O FS  
I/O SCLK  
O
O
O
I
SYNC  
O
I
SYNC  
O
I
LRCK  
O
O
O
I
LRCK1  
O
O
O
I
CSCLK  
CDATO  
CDATI  
CRESET  
NC  
BIT_CLK  
SD_OUT  
SD_IN  
RESET  
NC  
BIT_CLK  
SD_OUT  
SD_IN1  
RESET  
SCLK  
SCLK1  
SDOUT1  
SDIN2  
O
I
DOUT  
DIN  
O
I
O
I
SDOUT1  
SDIN1  
CRESET  
CSCHNE  
O
O
RESET  
FC  
O
O
O
O
O
I
CRESET  
SDIN2  
O
I
SCLK2  
LRCK2  
O
O
SD_IN2  
NOTES: 1. Signal names and I/O direction are with respect to the TAS1020 device. The signal names used for the TAS1020 terminals for the  
various codec port interface modes reflect the nomenclature used by the codec devices.  
2. NC indicates no connection for the terminal in a particular mode. The TAS1020 device drives the signal as an output for these cases.  
3. The CSYNC and CSCLK signals can be programmed as either an input or an output in the general-purpose mode.  
17  
18  
2 Description  
2.1 Architectural Overview  
2.1.1 Oscillator and PLL  
Using an external 6-MHz crystal, the TAS1020 derives the fundamental 48-MHz internal clock signal using an on-chip  
oscillator and PLL. Using the PLL output, the other required clock signals are generated by the clock generator and  
adaptive clock generator.  
2.1.2 Clock Generator and Sequencer Logic  
Utilizing the 48-MHz input from the PLL, the clock generator logic generates all internal clock signals, except for the  
codec port interface master clock (MCLK) and serial clock (CSCLK) signals. The TAS1020 internal clocks include  
the 48-MHz clock, a 24-MHz clock, a 12-MHz clock and a USB clock. The USB clock also has a frequency of 12-MHz.  
The USB clock is the same as the 12-MHz clock when the TAS1020 is transmitting data and is derived from the data  
when the TAS1020 is receiving data. To derive the USB clock when receiving USB data, the TAS1020 utilizes an  
internal digital PLL (DPLL) that uses the 48-MHz clock.  
The sequencer logic controls the access to the SRAM used for the USB end-point configuration blocks and the USB  
end-point buffer space. The SRAM can be accessed by the MCU, USB buffer manager (UBM), or DMA channels.  
The sequencer controls the access to the memory using a round-robin fixed priority arbitration scheme. This means  
that the sequencer logic generates grant signals for the MCU, UBM, and DMA channels at a predetermined fixed  
frequency.  
2.1.3 Adaptive Clock Generator (ACG)  
The adaptive clock generator is used to generate a master clock output signal (MCLKO) to be used by the codec port  
interface and the codec device. To synchronize data sent to or received from the codec to the USB frame rate, the  
MCLKO signal generated by the adaptive clock generator must be used. The synchronization of the MCLKO signal  
to the USB frame rate is controlled by the MCU by programming the adaptive clock generator frequency value. The  
MCLKO frequency is monitored by the MCU and updated as required. For asynchronous operation, an external  
source can be used to generate a master clock input signal (MCLKI) to be used by the codec port interface. In this  
scenario, the codec device also uses the same master clock signal (MCLKI).  
2.1.4 USB Transceiver  
TheTAS1020providesanintegratedtransceiverfortheUSBport. Thetransceiverincludesadifferentialoutputdriver,  
a differential input receiver, and two single ended input buffers. The transceiver connects to the USB DP and DM  
signal terminals.  
2.1.5 USB Serial Interface Engine (SIE)  
The serial interface engine logic manages the USB packet protocol requirements for the packets being received and  
transmitted on the USB by the TAS1020 device. For packets being received, the SIE decodes the packet identifier  
field (PID) to determine the type of packet being received and to ensure the PID is valid. For token packets and data  
packets being received, the SIE calculates the packet cycle redundancy check (CRC) and compares the value to the  
CRC contained in the packet to verify that the packet was not corrupted during transmission. For token packets and  
data packets being transmitted, the SIE generates the CRC that is transmitted with the packet. For packets being  
transmitted, the SIE also generates the synchronization field (SYNC) that is an eight bit filed at the beginning of each  
packet. In addition, the SIE generates the correct PID for all packets being transmitted. Another major function of the  
SIE is the overall serial-to-parallel conversion of the data packets being received and the parallel-to-serial conversion  
of the data packets being transmitted.  
21  
2.1.6 USB Buffer Manager (UBM)  
The USB buffer manager provides the control logic that interfaces the SIE to the USB end-point buffers. One of the  
major functions of the UBM is to decode the USB function address to determine if the host PC is addressing the  
TAS1020 device USB peripheral function. In addition, the end-point address field and direction signal are decoded  
to determine which particular USB end-point is being addressed. Based on the direction of the USB transaction and  
the end-point number, the UBM will either write or read the data packet to/from the appropriate USB end-point data  
buffer.  
2.1.7 USB Frame Timer  
The USB frame timer logic receives the start of frame (SOF) packet from the host PC each USB frame. Each frame,  
the logic stores the 11-bit frame number value from the SOF packet in a register and asserts the internal SOF signal.  
The frame number register can be read by the MCU and the value can be used as a time stamp. For USB frames  
in which the SOF packet is corrupted or not received, the frame timer logic will generate a pseudo start of frame  
(PSOF) signal and increment the frame number register.  
2.1.8 USB Suspend and Resume Logic  
The USB suspend and resume logic detects suspend and resume conditions on the USB. This logic also provides  
the internal signals used to control the TAS1020 device when these conditions occur. The capability to resume  
operation from a suspend condition with a locally generated remote wake-up event is also provided.  
2.1.9 MCU Core  
The TAS1020 uses an 8-bit microcontroller core that is based on the industry standard 8052. The MCU is software  
compatible with the 8052, 8032, 80C52, 80C53, and 87C52 MCUs. The 8052 MCU is the processing core of the  
TAS1020 and handles all USB control, interrupt and bulk end-point transfers. In addition, the MCU can also be the  
source or sink for USB isochronous end-point transfers.  
2.1.10 MCU Memory  
In accordance with the industry standard 8052, the TAS1020 MCU memory is organized into program memory,  
external data memory and internal data memory. A boot ROM program is used to download the application code to  
a 6K byte RAM that is mapped to the program memory space. The external data memory includes the USB end-point  
configuration blocks, USB data buffers, and memory mapped registers. The total external data memory space  
available is 1.5K bytes. A total of 256 bytes are provided for the internal data memory.  
2.1.11 USB End-Point Configuration Blocks and End-Point Buffer Space  
The USB end-point configuration blocks are used by the MCU to configure and operate the required USB end-points  
for a particular application. In addition to the control end-point, the TAS1020 supports a total of seven in end-points  
and seven out end-points. A set of six bytes is provided for each end-point to specify the end-point type, buffer  
address, buffer size, and data packet byte count.  
The USB end-point buffer space provided is a total of 1440 bytes. The space is totally configurable by the MCU for  
a particular application. Therefore, the MCU can configure each buffer based on the total number of end-points to  
be used, the maximum packet size to be used for each end-point, and the selection of single or double buffering.  
2.1.12 DMA Controller  
Two DMA channels are provided to support the streaming of data for USB isochronous and bulk end-points. Each  
DMA channel can support one USB isochronous and bulk end-points, either in or out. The DMA channels are used  
to stream data between the USB end-point data buffers and the codec port interface. The USB end-point number and  
direction can be programmed for each DMA channel. Also, the codec port interface time slots to be serviced by each  
DMA channel can be programmed.  
22  
2.1.13 Codec Port Interface  
The TAS1020 provides a configurable full duplex bidirectional serial interface that can be used to connect to a codec  
or another device for streaming USB isochronous data. The interface can be configured to support several different  
2
industry standard protocols, including AC 97 1.X, AC 97 2.X, AIC, and I S. The TAS1020 also has a general-purpose  
mode to support other protocols.  
2
2.1.14 I C Interface  
2
The I C interface logic provides a two-wire serial interface that the 8052 MCU can use to access other ICs. The  
2
TAS1020 is an I C master device only and supports single byte or multiple byte read and write operations. The  
interface can be programmed to operate at either 100 kbps or 400 kbps. In addition, the protocol supports 8-bit or  
2
2
16-bit addressing for accessing the I C slave device memory locations. The TAS1020 supports I C wait states. This  
2
means slaves can assert wait state on the I C bus by pulling the SCL low.  
2.1.15 General-Purpose IO Ports (GPIO)  
The TAS1020 provides two general-purpose IO ports that are controlled by the internal 8052 MCU. The two ports  
are port 1 and port 3. Port 3 bit location 2 is used as the external interrupt (XINT) input to the TAS1020.  
Eachbit of both ports can be independently used as either an input or output. Hence each port bit consists of an output  
buffer, an input buffer, and a pullup resistor. The pullup resistors for each GPIO port can be disabled using the PUDIS  
bits in the global control register. Any port 3 pin can be used to wake up the host PC in low-power suspend mode.  
2.1.16 Interrupt Logic  
The interrupt logic monitors the various conditions that can cause an interrupt and asserts the interrupt 0 (INTO) input  
to the 8052 MCU accordingly. All of the TAS1020 internal interrupt sources and the external interrupt (XINT) input  
are ORed together to generate the INT0 signal. An interrupt vector register is used by the MCU to identify the interrupt  
source.  
2.1.17 Reset Logic  
An external master reset (MRESET) input signal that is asynchronous to the internal clocks is used to reset the  
TAS1020 logic. In addition to the master reset, the TAS1020 logic can be reset with the USB reset from the host PC.  
The TAS1020 also provides a reset output (RSTO) signal that can be used by external devices. This signal is asserted  
when either a master reset or USB reset occurs.  
2.2 Device Operation  
The operation of the TAS1020 is explained in the following sections. For additional information on USB, refer to the  
Universal Serial Bus Specification version 1.1.  
2.2.1 Clock Generation  
The TAS1020 requires an external 6-MHz crystal and PLL loop filter components connected as shown in Figure 4-1  
to derive all the clocks needed for both USB and codec operation. Using the low frequency 6-MHz crystal and  
generating the required higher frequency clocks internal to the IC is a major advantage regarding EMI.  
2.2.2 Device Initialization  
After a power-on reset is applied to the TAS1020 device, the 8052 MCU executes a boot loader program from the  
8K byte boot ROM mapped to the program memory space. During device initialization, the boot loader program  
2
downloads the application program code from an external EEPROM through the I C interface. This requires that a  
binary image of the application code be written to the 6K byte code RAM in the TAS1020 device.  
23  
All memory mapped registers are initialized to a default value as defined in Appendix A, MCU Memory and Memory-  
Mapped Registers. The TAS1020 device powers up with a default function address of zero and disconnected from  
the USB.  
2.2.2.1 Boot Load from EEPROM  
Loading the application code from an external serial EEPROM requires a preprogrammed memory device containing  
an informative header and the application code. While the application code is being downloaded, the TAS1020  
remains disconnected from the USB. When the code download is complete, execution of the application code  
connects the TAS1020 to the USB. In this situation, the TAS1020 enumerates using the vendor ID and product ID  
contained in the application code.  
2.2.2.2 EEPROM Header  
For both application code and USB device information stored in a EEPROM device, a common header format is used  
that precedes the data payload. Table 2-1 shows the format and information contained in the header.  
Table 21. EEPROM Header  
OFFSET  
TYPE  
headerChksum  
HeaderSize  
Signature  
SIZE VALUE  
0
1
1
1
2
2
2
1
1
1
Check sum of the header by adding the header, excluding the header cheksum, in bytes.  
Size of the header including strings if applied  
Signature: 0x1234  
2
4
VenderID  
USB Vendor ID  
6
ProductID  
USB Vendor ID  
8
ProductVersion  
FirmwareVersion  
UsbAttributes  
Product version  
9
Firmware version  
10  
USB attributes:  
Bit0:Ifsetto1,theheaderincludesallthreestrings:language,manufacture,andproductstrings,ifset  
to 0, the header does not include any string.  
Bit 2: If set to 1, the device can be self powered, if set to 0, it is not self powered.  
Bit 3: If set to 1, the device can be bus powered, if set to 0, it is not be bus powered.  
Bit 1 and 4 ... 7: Not used.  
11  
12  
MaxPower  
Attribute  
1
1
Maximum power the device needs in units of 2 mA.  
Device attributes:  
Bit 3: If set to 1, the devices EEPROM support 400 kHz, if set to 0, it can not support 400 MHz.  
Bit 0: If set to 1, the CPU speed runs at 24 MHz, if set to 0, the CPU speed runs at 12 MHz.  
Bit 1, 2 and 4 ... 7: Not used.  
2
13  
14  
WPageSize  
DataType  
1
1
Maximum I C write page size  
This value defines if the device is application EEPROM, device EEPROM.  
0x01: Application EEPROM  
0x02: Device EEPROM  
Other values are invalid.  
2
2
15  
RpageSize  
1
Maximum I C read page size. If the value is zero, the whole payLoadSize is read in one I C read  
setup.  
16  
payLoadSize  
2
4
Size of the application, if using EEPROM as an application EEPROM, otherwise the value is 0.  
Language string in standard USB string format if applied.  
Manufacture string in standard USB string format if applied.  
Product string in standard USB string format if applied.  
Application code if applied  
0xxx  
0xxx  
0xxx  
0xxx  
Language string  
Manufacture string  
Product string  
...  
...  
...  
Application Code  
The signature field is used for the detection of a EEPROM device connected to the TAS1020. The header size field  
supports future updates of the header. Data begins right after the header. The version field identifies the header  
version. The EEPROM type field identifies the specific EEPROM device being used. The data type field describes  
the nature of data stored in the EEPROM (application code or USB device information). The data size field holds the  
24  
length of the data payload starting from the end of the header. The check sum field contains the check sum for the  
data payload portion of the EEPROM.  
2.2.2.3 EEPROM Data Type  
The two types of data that are stored in the EEPROM are application code and USB device information.  
2.2.2.3.1 Application Code  
Application firmware is stored as a binary image of the code. The binary image is mapped to the MCU program  
memory space starting at address zero and is stored in the EEPROM as a continuous linear block starting after the  
header information. A utility program is available to convert a file in Intel hexadecimal format to a binary image data  
file and appends it to the header.  
2.2.2.4 EEPROM Device Type  
The TAS1020 boot loader program supports several different types of serial EEPROM devices. The boot loader  
program automatically identifies the EEPROM type from the header information and uses the correct serial interface  
2
protocol accordingly. The boot loader program uses an I C slave device address of A0h for the serial EEPROM  
device.  
2
These EEPROM devices require an I C device address in addition to a two byte data word address. These devices  
2
require the full 7-bit I C device address. Depending on the memory size of the EEPROM device being used, the most  
significant three or four bits of the two byte data word address are dont care bits.  
2.2.3 USB Enumeration  
USB enumeration is accomplished by interaction between the host PC software and the TAS1020 code. After  
power-on reset the boot loader code first reads the information from the EEPROM, then runs the application code.  
The application code connects the TAS1020 to the USB. During the enumeration, the application code identifies the  
device as an application specific device and the host loads the appropriate host driver(s). The boot loader and  
application code both use the CONT, SDW and FRSTE bits to control the enumeration process. The function connect  
(CONT) bit is set to a 1 by the MCU to connect the TAS1020 device to the USB. When this bit is set to a 1, the USB  
data plus pullup resistor (PUR) output signal is enabled, which connects the pullup on the PCB to the TAS1020 3.3-V  
digital supply voltage. When this bit is cleared to a 0, the PUR output is in the 3-state mode. This bit is not affected  
byaUSBreset. TheshadowthebootROM(SDW)bitissettoa1bytheMCUtoswitchtheMCUmemoryconfiguration  
from boot loader mode to normal operating mode. The function reset enable (FRSTE) bit is set to a 1 by the MCU  
to enable the USB reset to reset all internal logic including the MCU. However, the shadow the ROM (SDW) and the  
USB function connect (CONT) bits will not be reset. When this bit is set, the reset output (RSTO) signal from the  
TAS1020 device is also active when a USB reset occurs. This bit is not affected by USB reset.  
2.2.4 USB Reset  
TheTAS1020candetectaUSBresetcondition. Whentheresetoccurs, theTAS1020respondsbysettingthefunction  
reset(RSTR)bitintheUSBstatusregister(USBSTA). IfthecorrespondingfunctionresetbitintheUSBinterruptmask  
register is set, an MCU interrupt will be generated and the USB function reset (0x17) vector will appear in the interrupt  
vector register (VECINT).  
The function reset enable bit (FRSTE) in the USB control register (USBCTL) is used to control the extent to which  
the internal logic is reset. The function reset enable bit is set to a 1 by the MCU to enable the USB reset to reset all  
internal logic including the MCU. However, the shadow the ROM (SDW) and the USB function connect (CONT) bits  
will not be reset. When the FRSTE bit is set, the reset output (RSTO) signal from the device also is active when a  
USB reset occurs. This bit is not affected by USB reset.  
25  
2.2.5 USB Suspend and Resume Modes  
A suspend condition is defined as a constant idle state on the bus for more than 3 ms. A USB device must actually  
be in the suspend state no more than 10 ms after the suspend condition is detected. There are two ways for the  
TAS1020 device to exit the suspend mode: 1) detection of USB resume signaling and 2) detection of a local remote  
wake-up event.  
2.2.5.1 USB Suspend Mode  
When a suspend condition is detected on the USB, the suspend/resume logic sets the function suspend request bit  
(SUSR) in the USB status register. As a result, the function suspend request interrupt (SUSR) is generated. To enter  
the low-power suspend state and disable all TAS1020 device clocks, the MCU firmware must set the idle mode bit  
(IDL), which is bit 0 in the MCU power control (PCON) register. Note that the IDL bit must be set in the main ( ) routine,  
not in the suspend interrupt service routine. The instruction that sets the IDL bit is the last instruction executed before  
the MCU goes to idle mode. In idle mode, the MCU status is preserved. Note that the low power suspend state is a  
state in which the TAS1020 clocks are disabled and the IC will consume the least amount of power possible.  
2.2.5.2 USB Resume Mode  
When the TAS1020 is in a suspend state, any non-idle signaling on the USB is detected by the suspend/resume logic  
and device operation resumes. When the resume signal is detected, the TAS1020 clocks are enabled, the function  
resume request bit (RESR) will be set, and the function resume request interrupt (RESR) will be generated. The  
function resume request interrupt to the MCU automatically clears the idle mode bit in the PCON register. As a result,  
MCU operation resumes servicing the new interrupt. After the RETI from the ISR, the next instruction to be executed  
is the one following the instruction that set the IDL bit. Note that if the low-power suspend state was not entered by  
setting the IDL bit, the clocks are already enabled, and the IDL bit is already cleared.  
2.2.5.3 USB Remote Wake-Up Mode  
The TAS1020 device has the capability to remotely wake-up the USB by generating resume signaling upstream. Note  
that this feature must be enabled by the host software with the SET_FEATURE DEVICE_REMOTE_WAKEUP  
request. The remote wake-up resume signaling must not be generated until the suspend state has been active for  
at least 5 ms. In addition, the remote wake-up resume signaling must be generated for at least 1ms but for no more  
than 15 ms. When the TAS1020 is in the low power suspend state, asserting the external interrupt input (XINT) to  
the device enables the clocks and generates the XINT interrupt. The XINT interrupt to the MCU automatically clears  
the idle mode bit in the PCON register. As a result, MCU operation resumes servicing the new interrupt. After the RETI  
from the ISR, the next instruction to be executed is the one following the instruction that set the IDL bit. Note that if  
the low-power suspend state was not entered by setting the IDL bit, the clocks is already enabled and the IDL bit is  
already cleared. When the firmware sets the remote wake-up request bit (RWUP) in the USB control register, the  
suspend/resume logic generates the resume signaling upstream on the USB.  
The remote wakeup in the TAS1020 is set to level triggered, a default value. The bit TCON.2 in the MCU determines  
whether it is an edge triggered or a level triggered. 1 indicates edge triggered, 0 indicates level triggered. The default  
value is 0. In order to use the remote wakeup function, RWUP bit has to be set in the USBCTL register. If XINT pin  
is used for remote wakeup, XINTEN bit has to be set in the GLOBCTL register. If one of the port 3 pins is used for  
remote wakeup, the bit associated with the pin has to be unmasked in the P3MSK register.  
2.2.6 Adaptive Clock Generator (ACG)  
The adaptive clock generator is used to generate two programmable master clock output signals (MCLKO and  
MCLKO2) that can be used by the codec port interface and the codec device. The ACG can be used to generate the  
master clock for the codec for USB asynchronous, synchronous, and adaptive modes of operation. However, for the  
USB asynchronous mode of operation, an external clock can be used to drive the MCLKI signal of the TAS1020. In  
this scenario, the MCLKI signal is used as the clock source for the codec port interface instead of the clock output  
from the ACG.  
26  
A block diagram of the adaptive clock generator is shown in Figure 21. The frequency synthesizer circuit generates  
a programmable clock with a frequency range of 1225 MHz. The output of the frequency synthesizer feeds the  
divide-by-M circuit, which can be programmed to divide by 1 to 16. As a result, the frequency range of the MCLKO  
signal is 750 kHz to 25 MHz. The duty cycle of the MCLKO signal is 50% for all programmable MCLKO frequencies.  
As shown in Figure 21, the C-Port serial clock (CSCLK) is derived by setting the divide by B value in codec interface  
configuration register CPTNCF4 [2:0] and the C-Port serial clock2 (CSCLK2) is derived by setting the divide by B  
value in codec port receive interface register 4 CPTRXCNF4 [2:0].  
SOF  
ACGCAPH  
ACGCAPL  
16-Bit Counter  
PSOF  
ACG1DCTL[7:4]  
4
ACGCTL[5] ACGCTL[4]  
ACGCTL[6]  
ACGCTL[7]  
Divide  
by M1  
Frequency  
6 MHz  
MCLK0  
CSCLK  
1
2
Oscillator  
PLL  
Synthesizer  
Divide by B  
ACG2DCTL[7:4]  
4
ACGCTL[1] ACGCTL[0]  
CPTCNF4 [2:0]  
Divide  
by M2  
Frequency  
Synthesizer  
MCLK02  
ACG1DCTL[2:0]  
3
CSCLK2  
Divide by B  
CPTRXCNF4 [2:0]  
Divide  
by I  
MCLKI  
Figure 21. Adaptive Clock Generator  
The ACG is controlled by the following registers. Refer to section A.5.3 for details.  
FUNCTIONAL REGISTER  
24-bit frequency register #1  
ACTUAL BYTE-WIDE REGISTERS  
ACG1FRQ2  
ACG1FRQ1  
ACGCAPH  
ACG1FRQ0  
16-bit capture register  
ACGCAPL  
ACG1DCTL  
ACGCTL  
8-bit synthesizer 1 divider control register  
8-bit ACG control register  
24-bit frequency register #2  
ACG2FRQ2  
ACG2FRQ1  
ACG2FRQ0  
ACG2DCTL  
8-bit synthesizer 2 divider control register  
The main functional modules of the ACG are described in the following sections.  
2.2.6.1 Programmable Frequency Synthesizer  
The 24-bit ACG frequency register value is used to program the frequency synthesizer. This programming results  
in high resolution to accurately select the desired codec master clock frequency. The value of the frequency register  
may be updated by the MCU while the ACG is running. In audio applications, the firmware can adjust the frequency  
value by ±LSB or more to lock onto the USB start-of-frame (SOF) signal and achieve a synchronous mode of  
operation. The 24-bit frequency register value is updated and used by the frequency synthesizer only when MCU  
writes to the ACGFRQ0 register.  
Depending on the application, a smaller number of bits for controlling the synthesizer frequency can be chosen. The  
frequency resolution also depends on the actual frequency being used. In general, the frequency resolution is less  
for higher frequencies and more for lower frequencies. This is due to the fact that the 208 ps frequency resolution  
becomes more significant compared to the period at higher frequencies than at lower frequencies. The resolution  
increases with the number of bits used to represent the frequency as the quantization error reduces because more  
bits are used to represent a fractional number.  
27  
The clock frequency of the MCLKO output signal is calculated by using the formula:  
For N > 24 and N < 50, MCLKO frequency = (25/N) × 192/8 MHz  
For N = 50, MCLKO frequency = 96/8 MHz  
Where N is the value in the 24-bit frequency register (ACGFRQ). The value of N can range from 24 to 50. The six  
most significant bits of the 24-bit frequency register are used to represent the integer portion of N, and the remaining  
18 bits of the frequency register are used to represent the fractional portion of N. An example is shown below.  
Example Frequency Register Calculation  
Suppose the desired MCLKO frequency is 24.576 MHz. Using the above formula, N = 24.4140625 decimal. To  
determine the binary value to be written to the ACGFRQ register, separately convert the integer value (24) to 6-bit  
binary and the fractional value (4140625) to 18-bit binary. As a result, the 24-bit binary value is  
011000.011010100000000000.  
The corresponding values to program into the ACGFRQ registers are:  
ACGFRQ2 = 01100001b = 61h  
ACGFRQ1 = 10101000b = A8h  
ACGFRQ0 = 00000000b = 00h  
Keep in mind that writing to the ACGFRQ0 register loads the frequency synthesizer with the new 24-bit value.  
Example Frequency Resolution Calculation  
To illustrate the frequency resolution capabilities of the ACG, the next possible higher and lower frequencies for  
MCLKO can be calculated.  
To get the next possible higher frequency of MCLKO equal to 24.57600384 MHz, increase the value of N by 1 LSB.  
Thus, N = 011000.011010100000000001 binary.  
To get the next possible lower frequency of MCLKO equal to 24.57599600 MHz, decrease the value of N by 1 LSB.  
Thus, N = 011000.011010011111111111 binary.  
For this example with a nominal MCLKO frequency of 24.576 MHz, the frequency resolution is approximately 4 Hz.  
Table 2-2 lists typically used frequencies and corresponding ACG frequency registers.  
Table 22. ACG Frequency Registers  
SYNTHESIZED CLOCK OUTPUT ACG1FRQ2/ACG2FRQ2 ACG1FRQ1/ACG2FRQ1 ACG1FRQ0/ACG2FRQ0  
25 MHz  
24.576 MHz  
22.579 MHz  
18.432 MHz  
16.934 MHz  
16.384 MHz  
12.288 MHz  
12 MHz  
0x60  
0x61  
0x6A  
0x82  
0x8D  
0x92  
0xC3  
0xC8  
0
0
0×A8  
0x4B  
0x35  
0xBA  
0x7C  
0x50  
0
0x0F  
0x20  
0x55  
0x09  
0x00  
0x00  
0
2.2.6.2 Capture Counter and Register  
The capture counter and register circuit consists of a 16-bit free running counter which runs at the capture clock  
frequency. The capture clock source can be selected by using the MCLKCP bit in the ACGCTL register to select either  
the MCLKO or MCLKO2 signal. With each USB start-of-frame (SOF) signal or pseudo-start-of-frame (PSOF) signal,  
thecapturecountervalueisstoredintothe16-bitcaptureregister. ThisvalueisvaliduntilthenextSOForPSOFsignal  
occurs (~1 ms). The MCU can read the 16-bit capture register value by reading the ACGCAPH and ACGCAPL  
registers.  
28  
2.2.7 USB Transfers  
TheTAS1020devicesupportsalltheUSBdatatransfertypes:control, bulk, interrupt, andisochronous. Inaccordance  
with the USB specification, endpoint zero is reserved for the control endpoint and is bidirectional. In addition to the  
control endpoint, the TAS1020 is capable of supporting up to 7 in endpoints and 7 out endpoints. These additional  
endpoints can be configured as bulk, interrupt, or isochronous endpoints. The MCU handles all control, bulk, and  
interrupt endpoint transactions. In addition, the MCU can handle isochronous endpoint transactions, such as a rate  
feedback endpoint to the host PC. However, for streaming isochronous data between the host PC and the codec  
interface port, the DMA channels are provided.  
2.2.7.1 Control Transfers  
Control transfers are used for configuration, command, and status communication between the host PC and the  
TAS1020 device. Control transfers to the TAS1020 device use in endpoint 0 and out endpoint 0. The three types of  
control transfers are control write, control write with no data stage, and control read. Note that the control endpoint  
must be initialized before connecting the TAS1020 device to the USB.  
2.2.7.1.1 Control Write Transfer (Out Transfer)  
The host PC uses a control write transfer to write data to the USB function. A control write transfer consists of a setup  
stage transaction, at least one out data stage transaction, and an in-status stage transaction.  
The steps to be followed for a control write transfer are as follows:  
Setup Stage Transaction:  
1. MCU initializes in endpoint 0 and out endpoint 0 by programming the appropriate USB endpoint  
configuration blocks. This entails programming the buffer size and buffer base address, selecting the buffer  
mode, enabling the endpoint interrupt, initializing the TOGGLE bit, enabling the endpoint, and clearing the  
NACK bit for both in endpoint 0 and out endpoint 0.  
2. The host PC sends a setup token followed by the setup data packet addressed to out endpoint 0. If the data  
is received without an error, then the UBM writes the data to the setup data packet buffer, set the setup stage  
transaction (SETUP) bit to a 1 in the USB status register, return an ACK handshake to the host PC, and  
assert the setup stage transaction interrupt. Note that as long as the setup transaction stage (SETUP) bit  
is set to a 1, the UBM returns a NACK handshake for any data stage or status stage transactions  
transactions regardless of the endpoint 0 NACK or STALL bit values.  
3. The MCU services the interrupt and reads the setup data packet from the buffer then decodes the  
command. If the command is not supported or valid, the MCU should set the STALL bit in the out endpoint  
0 configuration byte and the endpoint 0 configuration byte before clearing the setup stage transaction  
(SETUP) bit. This causes the device to return a STALL handshake for any data stage or status stage  
transactions. After reading the data packet and decoding the command, the MCU clears the interrupt, which  
automatically clears the setup stage transaction status bit. The MCU also sets the TOGGLE bit in the out  
endpoint 0 configuration byte to a 1. For control write transfers, the PID used by the host for the first out data  
packet is a DATA1 PID and the TOGGLE bit must match.  
Data Stage Transaction:  
1. The host PC sends an out token packet followed by a data packed addressed to out endpoint 0. If the data  
packet is received without errors then the UBM writes the data to the endpoint buffer, updates the data count  
value, toggles the TOGGLE bit, sets the NACK bit to a 1, returns an ACK handshake to the host PC, and  
asserts the endpoint interrupt.  
2. The MCU services the interrupt and reads the data packet from the buffer. To read the data packet, the MCU  
first must obtain the data count value. After reading the data packet, the MCU must clear the interrupt and  
clear the NACK bit to allow the reception of the next data packet from the host PC.  
29  
3. If the NACK bit is set to a 1 when the in token packet is received, the UBM simply returns a NAK handshake  
to the host PC. If the STALL bit is set to a 1 when the in token packet is received, the UBM simply returns  
a STALL handshake to the host PC. If a CRC or bit stuff error occurs when the data packet is received, then  
no handshake is returned to the host PC.  
Status Stage Transaction:  
1. For in endpoint 0, the MCU updates the data count value to zero, sets the TOGGLE bit to 1, then clears the  
NACK bit to a 0 to enable the data packet to be sent to the host PC. Note that for a status stage transaction  
a null data packet with a DATA1 PID is sent to the host PC.  
2. The host PC sends an in token packet addressed to in endpoint 0. After receiving the in token, the UBM  
transmits a null data packet to the host PC. If the data packet is received without errors by the host PC, then  
an ACK handshake is returned. The UBM then toggles the TOGGLE bit, sets the NACK bit to a 1, and  
asserts the endpoint interrupt.  
3. If the NACK bit is set to a 1 when the in token packet is received, the UBM simply returns a NAK handshake  
to the host PC. If the STALL bit is set to a 1 when the in token packet is received, the UBM simply returns  
a STALL handshake to the host PC. If no handshake packet is received from the host PC, then the UBM  
prepares to retransmit the same data packet again.  
2.2.7.1.2 Control Write With No Data Stage Transfer (Out Transfer)  
The host PC uses a control write transfer to write data to the USB function. A control write with no data stage transfer  
consists of a setup stage transaction and an in status stage transaction. For this type of transfer, the data to be written  
to the USB function is contained in the two byte value field of the setup stage transaction data packet.  
The steps to be followed for a control write with no data stage transfer are as follows:  
1. MCU initializes in endpoint 0 and out endpint 0 by programming the appropriate USB endpoint configuration  
blocks. This entails programming the buffer size and buffer base address, selecting the buffer mode,  
enabling the endpoint interrupt, initializing the TOGGLE bit, enabling the endpoint, and clearing the NACK  
bit for both in endpoint 0 and out endpoint 0.  
Setup Stage Transaction:  
2. The host PC sends a setup token packet followed by the setup data packet addressed to out endpoint 0.  
If the data is received without an error then the UBM writes the data to the setup data packet buffer, sets  
the setup state transaction (SETUP) bit to a 1 in the USB status register, returns an ACK handshake to the  
host PC, and asserts the setup stage transaction interrupt. Note that as long as the setup transaction  
(SETUP) bit is set to a 1, the UBM returns a NAK handshake for any data stage or status stage transactions  
regardless of the endpoint 0 NACK or STALL bit values.  
3. The MCU services the interrupt and reads the setup data packet from the buffer then decodes the  
command. If the command is not supported or valid, the MCU sets the STALL bit in the out endpoint 0  
configuration byte and the in endpoint 0 configuration byte before clearing the setup stage transaction  
(SETUP) bit. This causes the device to return a STALL handshake for an data stage or status stage  
transactions. After reading the data packet and decoding the command, the MCU clears the interrupt, which  
automatically clears the setup stage transaction status bit.  
Data Stage Transaction (s): Note, there are no data stage transactions for this type of transfer.  
Status Stage Transaction:  
1. For in endpoint 0, the MCU updates the data count value to zero, sets the TOGGLE bit to 1, then clears the  
NACK bit to a 0 to enable the data packet to be sent to the host PC. Note that for a status stage transaction  
a null data packet with a DATA1 PID is sent to the host PC.  
2. The host PC sends an in taken packet addressed to in endpoint 0. After receiving the in token, the UBM  
transmits a null data packet to the host PC. If the data packet is received without errors by the host PC, then  
an ACK handshake is returned. The UBM then toggles the TOGGLE bit, sets the NACK bit to a 1, and  
asserts the endpoint interrupt.  
210  
3. If the NACK bit is set to a 1 when the in token packet is received, the UBM simply returns a NAK handshake  
to the host PC. If the STALL bit is set to a 1 when the in token packet is received, the UBM simply returns  
a STALL handshake to the host PC. If no handshake packet is received from the host PC, then the UBM  
prepares to retransmit the same data packet again.  
2.2.7.1.3 Control Read Transfer (In Transfer)  
The host PC uses a control read transfer to read data from the USB function. A control read transfer consists of a  
setup stage transaction, at least one in data stage transaction, and an out-status stage transaction.  
The steps to be followed for a control read transfer are as follows:  
1. MCU initializes in endpoint 0 and out endpoint 0 by programming the appropriate USB endpoint  
configuration blocks. This entails programming the buffer size and buffer base address, selecting the buffer  
mode, enabling the endpoint interrupt, initializing the TOGGLE bit, enabling the endpoint, and clearing the  
NACK bit for both in endpoint 0 and out endpoint 0.  
Setup Stage Transaction:  
2. The host PC sends a setup token followed by the setup data packet addressed to out endpoint 0. If the data  
is received without an error, then the UBM writes the data to the setup data packet buffer, sets the setup  
stage transaction (SETUP) bit to a 1 in the USB status register, returns an ACK handshake to the host PC,  
and asserts the setup stage transaction interrupt. Note that as long as the setup transaction stage  
transactions(SETUP)bitissettoa1, theUBMreturnsaNACKhandshakeforanydatastageorstatusstage  
transactions regardless of the endpoint 0 NACK or STALL bit values.  
3. The MCU services the interrupt and reads the setup data packet from the buffer then decodes the  
command. If the command is not supported or valid, the MCU sets the STALL bit in the out endpoint 0  
configuration byte and the endpoint 0 configuration byte before clearing the setup stage transaction  
(SETUP) bit. This causes the device to return a STALL handshake for any data stage or status stage  
transactions. After reading the data packet and decoding the command, the MCU clears the interrupt, which  
automatically clears the setup stage transaction status bit. The MCU also sets the TOGGLE bit in the out  
endpoint 0 configuration byte to a 1. For control read transfers, the PID used by the host for the first out data  
packet is a DATA1 PID.  
Data Stage Transaction:  
1. The data packet to be sent to the host PC is written to the in endpoint 0 buffer by the MCU. The MCU also  
updates the data count value then clears the in endpoint 0 NACK bit to a 0 to enable the data packet to be  
sent to the host PC.  
2. The host PC sends an out token packet addressed to out endpoint 0. After receiving the in token, the UBM  
transmits the data packet to the host PC. If the data packet is received without an error by the host PC, then  
anACKhandshakeisreturned. TheUBMwillthentoggletheTOGGLEbit, settheNACKbittoa1andassert  
the endpoint interrupt.  
3. The MCU services the interrupt and prepares to send the next data packet to the host PC.  
4. If the NACK bit is set to a 1 when the in token packet is received, the UBM simply returns a NAK handshake  
to the host PC. If the STALL bit is set to a 1 when the in token packet is received, the UBM simply returns  
a STALL handshake to the host PC. If no handshake packet is received from the host PC, then the UBM  
prepares to retransmit the same data packet again.  
5. MCU continues to send data packets until all data has been sent to the host PC.  
Status Stage Transaction:  
1. For output endpoint0, the MCU sets the TOGGLE bit to 1, then clears the NACK bit to a 0 to enable the data  
packet to be sent to the host PC. Note that for a stage transaction a null data packet with the DATA1 PID  
is sent to the host PC.  
2. The host PC sends an out token packet addressed to out endpoint0. If the data packet is received without  
an error the UBM updates the data count value, toggles to the TOGGLE bit, sets the NACK bit to a 1, returns  
an ACK handshake to the host PC, and asserts the endpoint interrupt.  
211  
3. The MCU services the interrupt. If the status transaction completed successfully, then the MCU clears the  
interrupt and clears the NACK bit.  
4. If the NACK bit is set to a 1 when the in token packet is received, the UBM simply returns a NAK handshake  
to the host PC. If the STALL bit is set to a 1 when the in token packet is received, the UBM simply returns  
a STALL handshake to the host PC. If a CRC or bit stuff error occurs when the data packet is received, then  
no handshake is returned to the host PC.  
2.2.7.2 Interrupt Transfers  
The TAS1020 supports interrupt data transfers both to and from the host PC. Devices that need to send or receive  
a small amount of data with a specified service period should use the interrupt transfer type. In endpoints 1 through  
7 and out endpoints 1 through 7 can all be configured as interrupt endpoints.  
2.2.7.2.1 Interrupt Out Transaction  
The steps to be followed for a interrupt out transaction are as follows:  
1. MCU initializes one of the out endpoints as an out interrupt endpoint by programming the appropriate USB  
endpoint configuration block. This entails programming the buffer size and buffer base address, selecting  
thebuffermode, enablingtheendpointinterrupt, initializingthetogglebit, enablingtheendpointandclearing  
the NACK bit.  
2. The host PC sends an out token packet followed by a data packet addressed to the out endpoint. If the data  
is received without an error then the UBM writes the data to the endpoint buffer, updates the data count  
value, toggles the toggle bit, sets the NACK bit to a 1, returns an ACK handshake to the host PC, andasserts  
the endpoint interrupt.  
3. The MCU services the interrupt and reads the data packet from the buffer. To read the data packet, the MCU  
first must obtain the data count value. After reading the data packet, the MCU clears the interrupt and clears  
the NACK bit to allow the reception of the next data packet from the host PC.  
4. If the NACK bit is set to a 1 when the data packet is received, the UBM simply returns a NACK handshake  
to the host PC. If the STALL bit is set to a 1 when the in token packet is received, the UBM simply returns  
a STALL handshake to the host PC. If a CRC or bit stuff error occurs when the data packet is received, then  
no handshake is returned to the host PC.  
NOTE: In double buffer mode for interrupt out transactions, the UBM selects between the X  
and Y buffer based on the value of the toggle bit. If the toggle bit is a 0, the UBM writes the data  
packet to the X buffer. If the toggle bit is a 1, the UBM writes the data packet to the Y buffer.  
When a data packet is received, the MCU determines which buffer contains the data packet  
by reading the toggle bit. However, when using double buffer mode, the possibility exists for  
data packets to be received and written to both the X and Y buffer before the MCU responds  
to the endpoint interrupt. In this case, by simply using the toggle bit to determine which buffer  
contains the data packet does not work. Hence, in double buffer mode, the MCU reads the X  
buffer NACK bit, the Y buffer NACK bit, and the toggle bit to determine the status of the buffers.  
2.2.7.2.2 Interrupt In Transaction  
The steps to be followed for an interrupt in transaction are as follows:  
1. MCU initializes one of the in endpoints as an in interrupt endpoint by programming the appropriate USB  
endpoint configuration block. This entails programming the buffer size and buffer base address, selecting  
the buffer mode, enabling the endpoint interrupt, initializing the toggle bit, enabling the endpoint, and setting  
the NACK bit.  
2. The data packet to be sent to the host PC is written to the buffer by the MCU. The MCU also updates the  
data count value then clears the NACK bit to 0 to enable the data packet to be sent to the host PC.  
212  
3. The host PC sends an in token packet addressed to the in endpoint. After receiving the in token, the UBM  
transmits the data packet to the host PC. If the data packet is received without errors by the host PC, then  
an ACK handshake is returned. The UBM then toggles the toggle bit, sets the NACK bit to a 1, and asserts  
the endpoint interrupt.  
4. The MCU services the interrupt and prepares to send the next data packet to the host PC.  
5. If the NACK bit is set to a 1 when the in token packet is received, the UBM simply returns a NACK handshake  
to the host PC. If the STALL bit is set to a 1 when the in token packet is received, the UBM simply returns  
a STALL handshake to the host PC. If no handshake packet is received from the host PC, then the UBM  
prepares to retransmit the same data packet again.  
NOTE: In double buffer mode for interrupts in transactions, the UBM selects between the X and  
Y buffer based on the value of the toggle bit. If the toggle bit is a 0, the UBM will read the data  
packet to the X buffer. If the toggle bit is a 1, the UBM will read the data packet to the Y buffer.  
2.2.7.3 Bulk Transfers  
The TAS1020 supports bulk data transfers both to and from the host PC. Devices that need to send or receive a large  
amount of data without a suitable bandwidth should use the bulk transfer type. In endpoints 1 through 7 and out  
endpoints 1 through 7 can be configured as bulk endpoints. TAS1020 supports single and double buffering for bulk  
transfers.  
2.2.7.3.1 Bulk Out Transaction Using MCU  
The steps to be followed for a bulk out transaction are as follows:  
1. MCU initializes one of the out endpoints as an out bulk endpoint by programming the appropriate USB  
endpoint configuration block. This entails programming the buffer size and buffer base address, selecting  
the buffer mode, enabling the endpoint interrupt, initializing the toggle bit, enabling the endpoint, and  
clearing the NACK bit.  
2. The host PC sends an out token packet followed by a data packet addressed to the out endpoint. If the data  
is received without an error then the UBM writes the data to the endpoint buffer, updates the data count  
value, toggles the toggle bit, sets the NACK bit to a 1, returns an ACK handshake to the host PC, andasserts  
the endpoint interrupt.  
3. The MCU services the interrupt and reads the data packet from the buffer. To read the data packet, the MCU  
first needs to obtain the data count value. After reading the data packet, the MCU clears the interrupt and  
clears the NACK bit to allow the reception of the next data packet from the host PC.  
4. If the NACK bit is set to a 1 when the data packet is received, the UBM simply returns a NACK handshake  
to the host PC. If the STALL bit is set to a 1 when the data packet is received, the UBM simply returns a  
STALL handshake to the host PC. If a CRC or bit stuff error occurs when the data packet is received, then  
no handshake is returned to the host PC.  
NOTE: In double buffer mode for bulk out transactions, the UBM selects between the X and  
Y buffer based on the value of the toggle bit. If the toggle bit is a 0, the UBM writes the data  
packet to the X buffer. If the toggle bit is a 1, the UBM writes the data packet to the Y buffer.  
When a data packet is received, the MCU determines which buffer contains the data packet  
by reading the toggle bit. However, when using double buffer mode, data packets may be  
received and written to both the X and Y buffer before the MCU responds to the endpoint  
interrupt. In this case, simply using the toggle bit to determine which buffer contains the data  
packet does not work. Hence, in double buffer mode, the MCU reads the X buffer NACK bit,  
the Y buffer NACK bit, and the toggle bit to determine the status of the buffers.  
213  
2.2.7.3.2 Bulk In Transaction Using MCU  
The steps to be followed for a bulk in transaction are as follows:  
1. MCUinitializesoneoftheinendpointsasaninbulkendpointbyprogrammingtheappropriateUSBendpoint  
configuration block. This entails programming the buffer size and buffer base address, selecting the buffer  
mode, enabling the endpoint interrupt, initializing the toggle bit, enabling the endpoint and setting the NACK  
bit.  
2. The data packet to be sent to the host PC is written to the buffer by the MCU. The MCU also updates the  
data count value then clears the NACK bit to a 0 to enable the data packet to be sent to the host PC.  
3. The host PC sends an in token packet addressed to the in endpoint. After receiving the in token, the UBM  
transmits the data packet to the host PC. If the data packet is received without errors by the host PC, then  
an ACK handshake is returned. The UBM then toggles the toggle bit, sets the NACK bit to a 1, and asserts  
the endpoint interrupt.  
4. The MCU services the interrupt and prepares to send the next data packet to the host PC.  
5. If the NACK bit is set to a 1 when the in token packet is received, the UBM simply returns a NAK handshake  
to the host PC. If the STALL bit is set to a 1 when the in token packet is received, the UBM simply returns  
a STALL handshake to the host PC. If no handshake packet is received from the host PC, then the UBM  
prepares to retransmit the same data packet again.  
NOTE: In double buffer mode for bulk in transactions, the UBM selects between the X and Y  
buffer based on the value of the toggle bit. If the toggle bit is a 0, the UBM reads the data packet  
to the X buffer. If the toggle bit is a 1, the UBM reads the data packet to the Y buffer.  
2.2.7.3.3 Bulk Out Transaction Through DMA  
This transaction is used for mass storage class USB applications to move bulk data through DMA to C-Port. C-Port  
can be programmed in General Purpose mode or AC97 mode. When in general purpose mode, SYNC is disabled  
when no data is there to send out. In the AC97 mode, Tag fields are de-asserted when no valid data is in the buffer  
to be sent out.  
A sample for the Bulk Out transaction is the number of bytes to be transferred in a codec frame.  
Two modes of transfer are possible. The first one is the software handshake mode using MCU and external controller  
(DSP) and the second one is no handshake mode where MCU intervention is less for higher rates of transfer.  
Software Handshake Using MCU and External Controller (DSP)  
The following steps explain the operation:  
1. hsken (Handshake enable) bit in DMA channel control definition register = 1.  
2. UBM after receiving BULK packet, it puts it into the buffer, sets the NACK bit and the data count in the data  
count register, and generates an interrupt to the MCU.  
3. MCU after receiving interrupt can decide to use DMA to send the packet to C-Port.  
4. MCU decides how many BULK OUT packets need to be handled by DMA without MCU intervention. MCU  
writes this value (16-bit) to DMAPCNT1, MDMAPCNT0 registers.  
5. MCU configures the C-Port to be in AC97/GP modes. If C-Port is used as GP mode, then MCU must set  
the CptBlk bit in GLOBCTRL register.  
6. Then, MCU enables the DMA.  
7. DMA then transfers data through the C-Port and once it finishes the number of packets programmed by  
MCU, it disables itself and then generates DMA0 or DMA1 interrupt to MCU.  
8. MCU after receiving DMA interrupt will know that the DMAPCNT packets are sent out to the C-Port and  
takes control again.  
214  
9. Handshaking between MCU and DSP can be done in software at a higher level, depending on the  
application.  
No Handshake Mode  
If the MCU intervention in the above handshake mode limits the bandwidth on the BULK out endpoint, no Handshake  
mode can be used.  
1. hsken (Handshake enable) bit in DMA channel control definition register = 0.  
2. MCU configures the C-Port to be in AC97/GP modes. If C-Port is used as GP mode, then MCU must set  
the CptBlk bit in GLOBCTRL register.  
3. MCU configures the endpoint configuration registers and enables the DMA.  
4. Now handshaking is only between DMA and UBM. DMA moves data once it is filled by UBM. This continues  
until MCU disables DMA.  
2.2.7.3.4 Bulk In Transaction Through DMA  
TAS1020 does not support BULK IN through DMA.  
2.2.7.4 ISO OUT/IN. USB to/from C-Port Through DMA  
2.2.7.4.1 ISO Out  
Here the ISO packets from the host are received by UBM and put into the buffer. DMA collects the data from the buffer  
and streams it through the C-Port to a codec or a DSP. DMA looks at the UBM writer pointers to make a decision about  
the availability of ISO data in the buffer. C-Port can be programmed into different modes based on the application  
and the codecs being used. Here MCU must program the endpoint configuration registers, DMA and C-Port. DMA  
also updates the buffer content registers which is the difference of UBM writer pointer and DMA read pointer after  
the end of every USB frame.  
UBM Operation  
Reads endpoint configuration byte. Checks if endpoint is enabled. If not enabled, ignores the ISO  
packet.  
If it is ISO endpoint, checks the endpoint number with the endpoint number in the DMA channel 0/1  
definition register. If either of the DMA channels is used, UBM behaves as described below. If not, the  
ISO traffic is directed to MCU, which the MCU is able to handle it in a different way.  
Reads OEPBBAXn. This is the starting address for the circular buffer being used for the endpoint. For  
thefirstISOOUTpacketUBMinitializesthewritepointertoOEPBBAXn. UBMlocallystoresthisstarting  
addressasMCUcanrelocatethebufferanytime. EachtimeanISOOUTpacketcomes, UBMcompares  
this local buffer starting address with OEPBBAXn. If this is not same, UBM re-initializes the write pointer  
to OEPBBAXn.  
Reads OEPSIZn. This is the circular buffer size for the ISO endpoint. This is used to wrap-around the  
UBM write pointer to the starting address of the buffer when it reaches the end of the buffer.  
Buffer end address = buffer starting address + buffer size  
UBM proceeds with reading the data from the SIE and storing the data into the circular buffer in the  
shared RAM. The 11-bit write pointer is incremented after receiving each byte. Once the buffer write  
pointer reaches the buffer end address, UBM rewinds the write pointer to the starting buffer address.  
At the end of transaction, UBM updates the sample count in the OEPDCNTX or OEPDCNTY register  
based on the LSB of frame counter.  
NAK bit not used for ISO to DMA.  
215  
If UBM write pointer overtakes the DMA read pointer, UBM sets the buffer overflow (OVF) bit in the ISO  
endpoint configuration register.  
UBM write pointer is reset to the buffer starting address once DMA is disabled.  
DMA Operation  
DMA must be enabled before getting any ISO packets from the Host. Typically, MCU enables the DMA  
before playing audio to the device.  
After DMA is enabled, it reads the DMA channel control register to get the endpoint number and  
direction.  
Based on the endpoint number, it reads the endpoint configuration register. If it is ISO endpoint, it works  
as follows.  
DMA reads the OEPBBAXn, OEPBSIZn registers to determine the buffer starting address and buffer  
size.  
DMA reads the C-port registers to understand the C-port mode.  
DMA reads the DMA time slot assignment registers.  
DMA, for the first time, keeps monitoring the OEPDCNTXn or OEPDCNTYn register to see if an ISO  
OUT packet is received. Once a new ISO OUT packet is received, DMA waits for next SOF/PSOF  
signaling and goes to the next step.  
DMA starts with the read pointer equal to the buffer starting address. Once an ISO OUT packet is  
received, the UBM pointer is incremented very fast as the ISO OUT is packet is received at 12 Mb/sec.  
DMA starts reading the samples out of the buffer and sends to the C-port till it catches up with the UBM  
pointer.  
Each time DMA receives SOF/PSOF signaling, it completes streaming the current sample, and  
calculates the buffer content based on UBM write pointer and DMA read pointer. Buffer content is in  
number of bytes. This buffer size is written into DmaBCnt0/DMABCnt1 registers.  
NOTE: In AC97 mode, if buffer under-run happens, DMA should send this information to the  
C-port to clear the tag bits for the corresponding slots to indicate that the data in those codec  
frames is invalid. For I2S, AIC, GP modes, it must send zeros. C-port logic sends zeros if DMA  
does not stream anything to the C-port for a codec frame.  
2.2.7.4.2 ISO IN  
The serial data coming from the codec/DSP is received by the C-Port. DMA moves the bytes from C-Port holding  
registers into the buffer and updates the endpoint data count registers. UBM packetizes the data and sends the  
packets to host when it receives an ISO IN request. MCU has to program the endpoint configuration registers, DMA  
and C-Port. The following section explains how DMA and UBM works.  
UBM Operation  
After ISO IN token is received, UBM reads the endpoint configuration register if the endpoint is enabled.  
If not enabled, it ignores the IN request.  
UBM reads the IEPBBAXn, IEPBSIZXn registers to get the circular buffer starting address and buffer size  
and calculates the buffer maximum address.  
UBM reads IEPDCNTXn or IEPDCNTYn depending on the LSB of the frame counter register to determine  
how many samples (bytes) need to be transferred to the host.  
UBM initializes the read pointer to one of the 11-bit pointers from DMA(depending on the LSB of frame  
counter) to start reading the samples out of the buffer. If the address reaches buffer maximum address UBM  
rewinds the read pointer to the buffer starting address.  
216  
After the last sample is moved to the SIE transmit holding registers, UBM clears the data count register for  
the IEPDCNTXn or IEPDCTNYn registers.  
DMA Operation  
In general, DMA must packetize the serial data coming from the C-port for 1 ms before UBM sends it to the  
host when an ISO IN token is received.  
If DMA draws packet boundaries when it receives SOF/PSOF, then it might be in the middle of receiving  
a sample when an IN token is received. Hence, DMA must finish packetizing way before the SOF/PSOF.  
Fortheworstcase, at8kHz, thereare8codecframesin1USBframe. So, tomakeroomfor one8-kHzcodec  
frame, the IN packet switch point should occur at least 12000% 8 = 1500 USB clocks before SOF. Taking  
the variation in USB clocks per SOF into account, the IN packet switch event is set to 1511 USB_clocks  
before SOF/PSOF.  
After DMA is enabled, it reads all the DMA control registers, DMA time slot registers, the endpoint base  
address, and size registers.  
DMA write pointer is initialized to the buffer start address.  
As DMA packetizes continuously regardless of host sending ISO IN tokens, DMA must pass pointers to  
UBM to clearly tell the UBM about the packet boundaries for each USB frame.  
Two data count registers are required in the IN direction.  
DMAwaits for IN packet switch event to start its operation. At this time DMA stores its write pointer to convey  
the buffer start address for this packet to UBM.  
DMA has to pass two pointers based on the LSB of the frame counter.  
DMA stores the samples into the buffer, incrementing its 11-bit write pointer.  
Once it receives next packet switch event, the DMA puts the last sample into the buffer and updates the  
IEPDCNTXn or IEPDCNTYn data count register with the number of samples received based on the LSB  
of the frame counter.  
2.2.8 Microcontroller Unit  
The 8052 core used in the TAS1020 is based on the industry standard 8052 MCU and is software compatible with  
the 8052, 8032, 80C52, 80C53, and 87C52 MCUs. Therefore, refer to a standard 8052 data manual for more details,  
if needed.  
2.2.9 External MCU Mode Operation  
The external MCU mode of operation is provided for firmware development using an in-circuit emulator (ICE). In the  
external MCU mode, the internal 8052 MCU core of the TAS1020 is disabled. Also in the external MCU mode, the  
GPIOports are used for the external MCU data, address, and control signals. Refer to section 1.7, TerminalFunctions  
– External MCU Mode, for details. In this mode, the external MCU or ICE is able to access the memory mapped IO  
registers, the USB configuration blocks and the USB buffer space. Refer to section 1.8, Device Operation Modes,  
for information regarding the various modes of operation.  
Texas Instruments has developed the TAS1020 evaluation module (EVM) to allow customers to develop application  
firmware and to evaluate device performance. The EVM board provides a 40-pin dip socket for an ICE and headers  
to allow expansion of the system in a variety of ways.  
2.2.10 Interrupt Logic  
The8052MCUcoreusedintheTAS1020supportsallthestandardinterruptsources. ThefivestandardMCUinterrupt  
sources are timer 0, timer 1, serial port, external 1 (INT1), and external 0 (INT0).  
All of the additional interrupt sources within the TAS1020 device are read together to generate the INT0 signal to the  
MCU. Refer to the interrupt vector register for more details on the other TAS1020 interrupt sources.  
217  
The other interrupt sources are: the eight USB in end-points, the eight USB out end-points, USB function reset, USB  
function suspend, USB function resume, USB start-of-frame, USB pseudo start-of-frame, USB setup stage  
transaction, USB setup stage transaction over-write, codec port interface transmit data register empty, codec port  
2
2
interface receive data register full, I C interface transmit data register empty, I C interface receive data register full,  
and the external interrupt input.  
TheinterruptsfortheUSBinend-pointsandUSBoutend-pointscanbemasked. Aninterruptforaparticularend-point  
occurs at the end of a successful transaction to that end-point. A status bit for each in and out end-point also exists.  
However, these status bits are read only, and therefore, these bits are intended to be used for diagnostic purposes  
only. After a successful transaction to an end-point, both the interrupt and status bit for an end-point are asserted until  
the interrupt is cleared by the MCU.  
The USB function reset, USB function suspend, USB function resume, USB start-of-frame, USB pseudo  
start-of-frame, USB setup stage transaction, and USB setup stage transaction over-write interrupts can all be  
masked. A status bit for each of these interrupts also exists. Refer to the USB interrupt mask register and the USB  
status register for more details. Note that the status bits for these interrupts are read only. For these interrupts, both  
the interrupt and status bit are asserted until the interrupt is cleared by the MCU.  
2
The codec port interface transmit data register empty, codec port interface receive data register full, I C Interface  
2
transmit data register empty, and I C interface receive data register full interrupts can all be masked. A status bit for  
each of these interrupts also exists. Note that the status bits for these interrupts are read only. However, for these  
interrupts, the status bits are not cleared automatically when the interrupt is cleared by the MCU. Refer to the codec  
2
port interface control/status register and the I C interface control/status register for more details.  
The external interrupt input (XINT) is also read together with the on-chip interrupt sources. An enable bit exists for  
this interrupt in the global control register. This interrupt does not have a status bit.  
2.2.11 DMA Controller  
The TAS1020 provides two DMA channels for transferring data between the USB end-point buffers and the codec  
port interface. The DMA channels are provided to support the streaming of data for USB isochronous end-points only.  
Each DMA channel can be programmed to service only one isochronous end-point. The end-point number and  
direction are programmable using the DMA channel control register provided for each of the DMA channels.  
A DMA channel can also be used to send bulk endpoint data to the C-port for higher throughput. For more details  
refer to the Bulk Out Transaction Using DMA section 2.2.7.3.3.  
The codec port interface time slots to be serviced by a particular DMA channel must also be programmed. For  
example, an AC97 mode stereo speaker application uses time slots 3 and 4 for audio playback. Therefore, the DMA  
channel used to move the audio data to the codec port interface must set time slot assignment bits 3 and 4 to a 1.  
Each DMA channel is capable of being programmed to transfer data for time slots 0 through 13 using the two DMA  
channel time slot assignment registers provided for each DMA channel.  
The number of bytes to be transferred for each time slot is also programmable. The number of bytes used must be  
set based on the desired audio data format.  
2.2.12 Codec Port Interface  
The codec port interface is a configurable serial interface used to transfer data between the TAS1020 IC and a codec  
2
device. The serial protocol and formats supported include AC 97 1.0, AC 97 2.0, and several I S modes. In addition,  
a general-purpose mode is provided that can be configured to various user defined serial interface formats. The  
TAS1020 also provides a bulk mode where DMA can send bulk data to C-port directly.  
Configuration of the interface is accomplished using the four codec port interface configuration registers: CPTCNF1,  
2
CPTCNF2, CPTCNF3, and CPTCNF4. In I S mode 5, CPTRXCNF2, CPTRXCNF3, and CPTRXCNF4 are used to  
configure the C-port in receive direction. Refer to section A.5.4 for more details on these registers. The serial interface  
is a time division multiplexed (TDM) time slot based scheme. The basic serial format is programmed by setting the  
number of time slots per codec frame and the number of serial clock cycles (or bits) per time slot. The interface in  
218  
all modes is bidirectional and full duplex. For some modes, both audio data and command/status data are transferred  
via the serial interface. The sources of the USB end-point data buffer are the transmit data and destination of the  
receive data for all audio data time slots. Transfer of the audio data packets to/from the USB end-point data buffers  
and the codec port interface is controlled by one or more of the DMA channels. Remember that each DMA channel  
can be assigned to one USB isochronous end-point. The source and/or the destination of the command/status  
address and data values is the MCU.  
The features of the codec port interface that can be configured are:  
The mode of operation  
The number of time slots per codec frame  
The number of serial clock cycles for slot 0  
The number of serial clock cycles for all slots other than slot 0  
The number of valid data bits per audio data time slot  
The time slots to be used for command/status address and data  
The serial clock (CSCLK) frequency in relation to the codec master clock (MCLK) frequency  
The source of the serial clock signal (internally generated or an input from the codec device)  
The source of the codec master clock signal used to generate the internal serial clock signal (internally  
generated by the ACG or an input to the TAS1020 device)  
The polarity, duration, and direction of the codec frame sync signal  
The relationship between the codec frame sync signal and the serial clock signal  
The relationship between the codec frame sync signal and the serial data signals  
The relationship between the serial clock signal and the serial data signals  
The use of zero padding or a 3-state level for unused time slots and/or bits  
The byte ordering to be used  
2.2.12.1Audio Codec (AC) 97 1.0 Mode of Operation  
In AC 97 1.0 mode, the codec port interface can be configured as an AC link serial interface to the AC 97 codec  
device. RefertotheAudiocodec97SpecificationRevision1.03foradditionalinformation. TheAClinkserialinterface  
is a time division multiplexed (TDM) slot based serial interface that is used to transfer both audio data and  
command/status data between the TAS1020 IC and the codec device.  
Table 23. Terminal Assignments for Codec Port Interface AC 97 1.0 Mode  
TERMINAL  
AC 97 VERSION 1.0 MODE 2  
NO. NAME  
35  
37  
38  
36  
34  
32  
CSYNC  
CSCLK  
CDATO  
CDATI  
SYNC  
O
I
BIT_CLK  
SD_OUT  
SD_IN  
RESET  
NC  
O
I
CRESET  
CSCHNE  
O
O
In this mode, the codec port interface is configured as a bidirectional full duplex serial interface with a fixed rate of  
48 kHz. Each 48-kHz frame is divided into 13 time slots, with the use of each time slot predefined by the Audio codec  
97 Specification. Each time slot is 20 serial clock cycles in length except for time slot 0, which is only 16 serial clock  
cycles. The serial clock, which is referred to as the BIT_CLK for AC 97 modes, is set to 12.288 MHz. Based on the  
length of each slot, there is a total of 256 serial clock cycles per frame at a frequency of 12.288 MHz. As a result the  
frame frequency is 48 kHz. For the AC 97 modes, the BIT_CLK is input to the TAS1020 device from the codec. The  
BIT_CLK is generated by the codec from the master clock (MCLK) input. The codec MCLK input, which can be  
generated by the TAS1020 device, must be a frequency of 24.576 MHz. The start of each 48-kHz frame is  
219  
synchronized to the rising edge of the SYNC signal, which is an output of the TAS1020 device. The SYNC signal is  
driven high each frame for the duration of slot 0. See Figure 22 for details on connecting the TAS1020 to a codec  
device in this mode.  
TAS1020  
AC97 IC  
MCLKO1  
CSYNC  
CSCLK  
CDATO  
CDATI  
AC97CLK  
SYNC  
BIT_CLK  
SD_IN  
SD_OUT  
CRESET  
CRESET  
CSCHNE  
Figure 22. Connection of the TAS1020 to an AC 97 Codec  
The AC link protocol defines slot 0 as a special slot called the tag slot and defines slots 1 through 12 as data slots.  
Slot 1 and slot 2 are used to transfer command and status information between the TAS1020 device and the codec.  
Slot 1 and slot 2 of the outgoing serial data stream are defined as the command address and command data slots,  
respectively. These slots are used for writing to the control registers in the codec. Slot 1 and slot 2 of the incoming  
serial data stream are defined as the status address and status data slots, respectively. These slots are used for  
reading from the control registers in the codec.  
Unused or reserved time slots and unused bit locations within a valid time slot are filled with zeros. Since each data  
time slot is 20 bits in length, the protocol supports 8-bit, 16-bit, 18-bit, or 20-bit data transfers.  
2.2.12.2Audio Codec (AC) 97 2.0 Mode of Operation  
The basic serial protocol for the AC 97 2.0 mode is the same as the AC 97 1.0 mode. The AC 97 2.0 mode, however,  
offers some additional features. In this mode, the TAS1020 provides support for multiple codec devices and also  
on-demand sampling. The TAS1020 can connect directly to two AC 97 codecs as shown in Figure 23. Note that  
if only one codec is used, then the SD_IN2 input (pin 40) should be tied to DVSS.  
Table 24. Terminal Assignments for Codec Port Interface AC 97 2.0 Mode  
TERMINAL  
AC 97 VERSION 2.0 MODE 3  
NO. NAME  
35  
37  
38  
36  
34  
32  
CSYNC  
CSCLK  
CDATO  
CDATI  
SYNC  
O
I
BIT_CLK  
SD_OUT  
SD_IN1  
RESET  
SD_IN2  
O
I
CRESET  
CSCHNE  
O
I
220  
TAS1020  
AC97 IC  
AC97CLK  
SYNC  
BIT_CLK  
SD_IN  
SD_OUT  
CRESET  
MCLKO  
CSYNC  
CSCLK  
CDATO  
CDATI  
CRESET  
CSCHNE  
Primary  
AC97 or MC97  
AC97CLK  
SYNC  
BIT_CLK  
SD_IN  
SD_OUT  
CRESET  
Secondary  
Figure 23. Connection of the TAS1020 to Multiple AC 97 Codecs  
2
2.2.12.3Inter-IC Sound (I S) Modes of Operation  
2
2
The TAS1020 offers two I S modes of operation. However, the serial format is the same for these two I S modes.  
2
The difference in the I S modes is simply the number of serial data outputs and/or serial data inputs supported. For  
instance, in codec port interface mode 4, there is one serial data output (SDOUT1) and two serial data inputs (SDIN1,  
SDIN2). Hence, mode 4 can be used to connect the TAS1020 device to a codec with one stereo DAC and two ADCs.  
2
Table 25 shows the TAS1020 codec terminal assignments and the respective signal names for each of the I S  
modes.  
2
Table 25. Terminal Assignments for Codec Port Interface I S Modes  
TERMINAL  
NAME  
2
2
I S  
I S  
MODE 4  
MODE 5  
NO.  
35  
37  
38  
36  
34  
32  
CSYNC  
CSCLK  
LRCK  
O
O
O
I
LRCK1  
O
O
O
I
SCLK  
SCLK1  
SDOUT1  
SDIN2  
CDATO  
CDATI  
SDOUT1  
SDIN1  
CRESET  
CSCHNE  
CRESET  
SDIN2  
O
I
SCLK2  
LRCK2  
O
O
2
In all I S modes, the codec port interface is configured as a bidirectional full duplex serial interface with two time slots  
per frame. The frame sync signal is the left/right clock (LRCK) signal. Time slot 0 is used for the left channel audio  
data, and time slot 1 is used for the right channel audio data. Both time slots must be set to 32 serial clock (SCLK)  
cycles in length giving an SCLK-to-LRCK ratio of 64. The serial clock frequency is based on the audio sample rate  
and the codec master clock (MCLK) frequency. For example, when using an audio sample rate (FS) of 48 kHz and  
an MCLK frequency of 12.288 MHz (256xFS), the SCLK frequency must be set to 3.072 MHz (64xFS). Note that the  
codec frame sync, the audio sample rate (FS), and the LRCK are all synonymous.  
The LRCK signal has a 50% duty cycle. The LRCK signal is low for the left channel time slot and is high for the right  
channel time slot. In addition, the LRCK signal is synchronous to the falling edge of the SCLK. Serial data is shifted  
out on the falling edge of SCLK and shifted in on the rising edge of SCLK. There is a one SCLK cycle delay from the  
edge of the LRCK before the most significant bit of the data is shifted out for both the left channel and right channel.  
2
For the I S modes of the codec port interface, there is a 24-bit transmit and 24-bit receive shift register for each  
SDOUT and SDIN signal, respectively. As a result, the interface can actually support 16-bit, 18-bit, 20-bit or 24-bit  
transfers. The interface pads the unused bits automatically with zeros.  
221  
2
The I S protocol does not provide for command/status data transfers. Therefore, when using the TAS1020 device  
2
2
with a codec that uses an I S serial interface for audio data transfers, the TAS1020 I C serial interface can be used  
for codec command/status data transfers.  
In addition, the TAS1020 codec port interface is very flexible. As a result, many variations of the serial interface  
protocol can be configured including an SCLK-to-LRCK ratio of 32.  
2
2.2.12.4Mapping of DMA Time Slots to Codec Port Interface Time Slots for I S Modes  
2
The I S serial data format requires two time slots (left channel and right channel) for each serial data output or input.  
As discussed in the previous section. Each of the serial data outputs and/or inputs has a unique left channel time slot  
2
(slot number 0) and right channel time slot (slot number 1). For the I S modes of operation, the DMA channel time  
slot assignments must be mapped to the different left channel and right channel time slots for the serial data outputs  
and inputs. Each DMA channel has fourteen time slot bits, which are time slot assignment bits 0 through 13. Table 26  
and 27 show the codec port interface time slot numbers and the corresponding time slot numbers for the DMA  
channels.  
As an example, suppose that Codec port interface mode 4 is to be used with one serial data output and two serial  
data inputs. The DMA channel to be programmed to support the serial data output must have time slot assignment  
bits 0 and 1 set to 1. The DMA channel to be programmed to support the serial data input must have time slot  
assignment bits 0 and 2 set to 1.  
2
Table 26. SLOT Assignments for Codec Port Interface I S Mode 4  
Codec PORT INTERFACE TIME SLOT NUMBER  
DMA CHANNELS(s) TIME SLOT NUMBER  
SERIAL DATA  
LEFT CHANNEL  
RIGHT CHANNEL  
LEFT CHANNEL  
RIGHT CHANNEL  
SDOUT1  
SDIN1  
0
0
0
1
1
1
0
0
1
1
2
3
SDIN2  
2
Table 27. SLOT Assignments for Codec Port Interface I S Mode 5  
Codec PORT INTERFACE TIME SLOT NUMBER  
DMA CHANNELS(s) TIME SLOT NUMBER  
SERIAL DATA  
LEFT CHANNEL  
RIGHT CHANNEL  
LEFT CHANNEL  
RIGHT CHANNEL  
SDOUT1  
SDIN2  
0
0
1
1
0
0
1
1
2.2.12.5General-Purpose Mode of Operation  
In the general-purpose mode the codec port interface can be configured to various user defined serial interface  
formats using the pin assignments shown in Table 28. This mode gives the user the flexibility to configure the  
TAS1020 to connect to various codecs and DSPs that do not use a standard serial interface format.  
Table 28. Terminal Assignments for Codec Port Interface General-Purpose Mode  
TERMINAL  
GP  
MODE 0  
NO. NAME  
35  
37  
38  
36  
34  
32  
CSYNC  
CSCLK  
CDATO  
CDATI  
CSYNC  
CSCLK  
CDAT0  
CDAT1  
I/O  
I/O  
O
I
CRESET  
CSCHNE  
CRESET  
NC  
O
O
2.2.12.6AIC Mode  
AIC mode is used to connect TAS1020 to a voice codec which has AIC interface as described in TIs TLV320AIC10  
data sheet.  
222  
2.2.12.7Bulk Mode  
TAS1020 supports bulk data transfer through the codec port using one of the two available DMA channels. The codec  
port needs to be configured in AC97 or general purpose modes for the operation. This mode is selected by writing  
a 1 to CPTBLK bit of the CPTCNF4 register. When the codec port is running in general purpose bulk mode, CSYNC  
is active only when valid data is present in the current frame. In AC97 bulk mode, CSYNC is active all the time, but  
the tag bits in slot 0 indicate the valid data.  
2
2.2.13 I C Interface  
The TAS1020 has a bidirectional two-wire serial interface that can be used to access other ICs. This serial interface  
2
is compatible with the I C (Inter IC) bus protocol and supports both 100-kbps and 400-kbps data transfer rates. The  
TAS1020 is a master only device that does not support a multimaster bus environment (no bus arbitration) or wait  
2
state insertion. Hence this interface can be used to access I C slave devices including EEPROMs and codecs. For  
example, if the application program code is stored in an EEPROM on the PCB, then the MCU will download the code  
2
from the EEPROM to the TAS1020 on-chip RAM using the I C interface. Another example is the control of a codec  
2
2
device that uses an I S interface for audio data transfers and an I C interface for control register read/write access.  
2.2.13.1Data Transfers  
The two-wire serial interface uses the serial clock signal, SCL, and the serial data signal, SDA. As stated above, the  
TAS1020 is a master only device, and therefore, the SCL signal is an output only. The SDA signal is a bidirectional  
signal that uses an open-drain output to allow the TAS1020 to be wire-ORed with other devices that use open-drain  
or open-collector outputs.  
All read and write data transfers on the serial bus are initiated by a master device. The master device is also  
responsible for generating the clock signal used for all data transfers. The data is transferred on the bus serially one  
bit at a time. However, the protocol requires that the address and data be transferred in byte (8-bit) format with the  
most-significant bit (MSB) transferred first. In addition, each byte transferred on the bus is acknowledged by the  
receiving device with an acknowledge bit. Each transfer operation begins with the master device driving a start  
condition on the bus and ends with the master device driving a stop condition on the bus.  
The timing relationship between the SCL and SDA signals for each bit transferred on the bus is shown in Figure 3-7.  
As shown, the SDA signal must be stable while the SCL signal is high, which also means that the SDA signal can  
only change states while the SCL signal is low.  
The timing relationship between the SCL and SDA signals for the start and stop conditions is shown in Figure 3-8.  
As shown, the start condition is defined as a high-to-low transition of the SDA signal while the SCL signal is high. Also  
as shown, the stop condition is defined as a low-to-high transition of the SDA signal while the SCL signal is high.  
When the TAS1020 is the device receiving data information, the TAS1020 acknowledges each byte received by  
driving the SDA signal low during the acknowledge SCL period. During the acknowledge SCL period, the slave device  
must stop driving the SDA signal. If the TAS1020 is unable to receive a byte, the SDA signal is not driven low and  
is pulled high external to the TAS1020 device. A high during the SCL period indicates a not-acknowledge to the slave  
device. The acknowledge timing is shown in Figure 3-9.  
Read and write data transfers by the TAS1020 device can be done using single byte or multiple byte data transfers.  
2
Therefore, the actual transfer type used depends on the protocol required by the I C slave device being accessed.  
223  
2.2.13.2Single Byte Write  
As shown is Figure 2-4, a single byte data write transfer begins with the master device transmitting a start condition  
2
followed by the I C device address and the read/write bit. The read/write bit determines the direction of the data  
2
transfer. For a write data transfer, the read/write bit must be a 0. After receiving the correct I C device address and  
2
the read/write bit, the I C slave device responds with an acknowledge bit. Next, the TAS1020 transmits the address  
2
byte or bytes corresponding to the I C slave device internal memory address being accessed. After receiving the  
2
address byte, the I C slave device again responds with an acknowledge bit. Next, the TAS1020 device transmits the  
2
data byte to be written to the memory address being accessed. After receiving the data byte, the I C slave device  
againrespondswithanacknowledgebit. Finally, theTAS1020devicetransmitsastopconditiontocompletethesingle  
byte data write transfer.  
Acknowledge  
Acknowledge  
Acknowledge  
Start Condition  
R/W  
A6 A5 A4 A3 A2 A1 A0  
ACK A7 A6 A5 A4 A3 A2 A1 A0 ACK D7 D6 D5 D4 D3 D2 D1 D0 ACK  
SDA  
Stop  
Condition  
2
I C Device Address and  
Memory or Register Address  
Data Byte  
Read/Write Bit  
Figure 24. Single Byte Write Transfer  
2.2.13.3Multiple Byte Write  
A multiple byte data write transfer is identical to a single byte data write transfer except that multiple data bytes are  
2
transmitted by the TAS1020 device to the I C slave device as shown in Figure 2-5. After receiving each data byte,  
2
the I C slave device responds with an acknowledge bit.  
Acknowledge  
Acknowledge  
Acknowledge  
Acknowledge  
Start Condition  
R/W  
A6 A5  
A1 A0  
ACK A7 A6 A5 A4  
A3  
A1 A0 ACK D7 D6  
D1 D0 ACK  
D7 D6  
D1 D0 ACK  
SDA  
Stop  
Condition  
2
Other  
Data Bytes  
I C Device Address and  
Read/Write Bit  
Memory or Register Address  
First Data Byte  
Last Data Byte  
Figure 25. Multiple Byte Write Transfer  
224  
2.2.13.4Single Byte Read  
As shown in Figure 2-6, a single byte data read transfer begins with the TAS1020 device transmitting a start condition  
2
followed by the I C device address and the read/write bit. For the data read transfer, both a write followed by a read  
are actually performed. Initially, a write is performed to transfer the address byte or bytes of the internal memory  
2
addresstoberead. Asaresult, theread/writebitmustbea0. AfterreceivingtheI Cdeviceaddressandtheread/write  
2
bit, the I C slave device responds with an acknowledge bit. Also, after sending the internal memory address byte or  
2
bytes, the TAS1020 device transmits another start condition followed by the I C slave device address and the  
2
read/write bit again. This time the read/write bit is a 1 indicating a read transfer. After receiving the I C device address  
2
2
and the read/write bit the I C slave again responds with an acknowledge bit. Next, the I C slave device transmits the  
data byte from the memory address being read. After receiving the data byte, the TAS1020 device transmits a  
not-acknowledge followed by a stop condition to complete the single byte data read transfer.  
Repeat Start Condition  
Not  
Acknowledge  
Start  
Condition  
Acknowledge  
Acknowledge  
Acknowledge  
A6 A5  
A1 A0 R/W ACK A7 A6 A5 A4  
A0 ACK  
A6 A5  
A1 A0 R/W ACK D7 D6  
D1 D0 ACK  
SDA  
2
2
I C Device Address and  
Stop  
Condition  
I C Device Address and  
Read/Write Bit  
Memory or Register Address  
Data Byte  
Read/Write Bit  
Figure 26. Single Byte Read Transfer  
2.2.13.5Multiple Byte Read  
A multiple byte data read transfer is identical to a single byte data read transfer except that multiple data bytes are  
2
transmitted by the I C slave device to the TAS1020 device as shown in Figure 2-7. Except for the last data byte, the  
TAS1020 device responds with an acknowledge bit after receiving each data byte.  
Repeat Start  
Condition  
Not  
Acknowledge  
Start  
Condition  
Acknowledge  
Acknowledge  
Acknowledge  
Acknowledge  
D0 ACK  
A6  
A0 R/W ACK  
A4  
A0 ACK  
A6  
A0 R/W ACK D7  
D7 D6  
D1 D0 ACK  
A7 A6 A7  
SDA  
Stop  
Condition  
2
2
I C Device Address and  
Read/Write Bit  
Memory or Register Address  
I C Device Address and  
Read/Write Bit  
First Data Byte  
Other  
Data Bytes  
Last Data Byte  
Figure 27. Multiple Byte Read Transfer  
225  
226  
3 Electrical Specifications  
3.1 Absolute Maximum Ratings Over Operating Temperature Ranges (unless  
otherwise noted)  
Supply voltage range, DV  
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0.5 to 3.6 V  
DD  
Input voltage range, V : 3.3 V TTL/LVCMOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0.5 V to DV  
+ 0.5 V  
+ 0.5 V  
I
DD  
DD  
Output voltage range, V : 3.3 V TTL/LVCMOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0.5 V to DV  
O
Continuous power dissipation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . See Dissipation Rating Table  
Operating free air temperature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0°C to 70°C  
Storage temperature range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65°C to 150°C  
Lead temperature 1,6 mm (1/16 inch) from case for 10 seconds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300°C  
Stresses beyond those listed under absolute maximum ratingsmay cause permanent damage to the device. These are stress ratings only and  
functional operation of the device at these or any other conditions beyond those indicated under recommended operating conditionsis not  
implied. Exposure to absolute-maximum-rated conditions for extended periods may affect device reliability.  
DISSIPATION RATING TABLE  
T
25°C  
DERATING FACTOR  
T = 70°C  
A
POWER RATING  
A
PACKAGE  
POWER RATING  
ABOVE T = 25°C  
A
TQFP  
0.923 W  
10.256 mW/°C  
0.461 W  
3.2 Recommended Operating Conditions  
MIN  
3
NOM  
MAX  
3.6  
UNIT  
V
Digital supply voltage, DV  
DD  
3.3  
3.3  
Analog supply voltage, AV  
3
3.6  
V
DD  
IH  
High-level input voltage, V  
CMOS inputs  
CMOS inputs  
CMOS inputs  
CMOS inputs  
0.7 V  
V
CC  
Low-level input voltage, V  
0
0
0
0
0.2 V  
V
IL  
CC  
Input voltage, V  
DV  
DV  
V
I
DD  
Output voltage, V  
V
O
DD  
6
Input transition time, t (t and t , 10% to 90%)  
ns  
t
r
f
3.3 Electrical Characteristics Over Recommended Operating Conditions (unless  
otherwise noted)  
PARAMETER  
High-level output voltage, P3 [0-7]  
Low-level output voltage, P3 [0-7]  
High-level output voltage, P1 [0-7]  
Low-level output voltage, P1 [0-7]  
High-impedance output current  
TEST CONDITIONS  
MIN  
DV 0.5  
TYP  
MAX  
UNIT  
V
V
V
V
V
I
I
I
I
= 4 mA  
= 4 mA  
OH  
OL  
OH  
OL  
OH  
OL  
OH  
OL  
DD  
0.5  
V
= 8 mA  
= 8 mA  
DV 0.5  
DD  
V
0.5  
±20  
20  
V
I
µA  
OZ  
Pullup disabled  
V = V  
I
IL  
I
IL  
Low-level input current  
High-level input current  
µA  
µA  
Enabled  
250  
Pullup disabled  
Enabled  
V = V  
I
20  
IH  
I
IH  
20  
45.9  
50.9  
196  
14.7  
24  
CPU clock 12 MHz  
CPU clock 24 MHz  
mA  
Digital supply voltage DV  
(3.3 V)  
DD  
Suspend  
Normal  
µA  
mA  
nA  
I
DD  
Analog supply voltage AV  
DD  
(3.3 V)  
Suspend  
In this 196 µA measurement, the bulk or suspend current (190 µA) is delivered to the USB cable through PUR pin. The remaining 6 µA is  
consumedbythedevice. Asdescribedinsection7.2.3ofUSB1.1specification, Whencomputingsuspendcurrent, thecurrentfromVBusthrough  
the pull-up and pullown resistors must be included.  
31  
3.4 Timing Characteristics  
3.4.1 Clock and Control Signals Over Recommended Operating Conditions  
(unless otherwise noted)  
PARAMETER  
Clock frequency, MCLKO1  
Clock frequency, MCLKO2  
Clock frequency, MCLKI  
Pulse duration, XINT low  
TEST CONDITIONS  
= 50 pF, See Note 1  
= 50 pF, See Note 1  
MIN  
1
MAX  
25  
UNIT  
MHz  
MHz  
MHz  
µs  
f
f
f
t
C
C
MCLKO1  
MCLKO2  
MCLKI  
w(L)  
L
L
1
25  
See Note 1  
= 50 pF  
5
25  
C
0.2  
10  
L
NOTE 1: Worst case duty cycle is 45/55.  
t
w(L)  
XINT  
Figure 31. External Interrupt Timing Waveform  
3.4.2 USB Transceiver Signals Over Recommended Operating Conditions  
(unless otherwise noted)  
PARAMETER  
Transition rise time for DP or DM  
Transition fall time for DP or DM  
Rise/fall time matching  
TEST CONDITIONS  
MIN  
4
MAX  
20  
UNIT  
ns  
t
t
t
r
4
20  
ns  
f
(t /t ) × 100  
90% 110%  
RFM  
r f  
V
Voltage output signal crossover  
1.3  
2
V
O(CRS)  
V
V
DM  
DP  
OH  
90%  
10%  
V
O(CRS)  
OL  
t , t  
r
f
Figure 32. USB Differential Driver Timing Waveform  
32  
3.4.3 Codec Port Interface Signals (AC 97 Modes), T = 25°C, DV  
= 3.3 V, AV = 3.3 V  
DD  
A
DD  
PARAMETER  
Frequency, BIT_CLK  
TEST CONDITIONS  
MIN  
TYP  
MAX  
UNIT  
f
See Note 1  
12.288  
MHz  
BIT_CLK  
t
t
t
f
t
t
t
Cycle time, BIT_CLK  
See Note 1  
See Note 1  
See Note 1  
81.4  
40.7  
40.7  
48  
ns  
ns  
cyc1  
Pulse duration, BIT_CLK high  
Pulse duration, BIT_CLK low  
Frequency, SYNC  
36  
36  
45  
45  
w1(H)  
w1(L)  
SYNC  
cyc2  
ns  
C
C
C
C
= 50 pF  
= 50 pF  
= 50 pF  
= 50 pF  
kHz  
µs  
L
L
L
L
Cycle time, SYNC  
20.8  
1.3  
Pulse duration, SYNC high  
Pulse duration, SYNC low  
µs  
w2(H)  
w2(L)  
19.5  
µs  
Propagation delay time, BIT_CLK rising edge to SYNC, SD_OUT  
and RESET  
t
C
= 50 pF  
15  
ns  
pd1  
L
t
t
Setup time, SD_IN to BIT_CLK falling edge  
Hold time, SD_IN from BIT_CLK falling edge  
10  
10  
ns  
ns  
su  
h
NOTE 1: Worst case duty cycle is 45/55.  
t
t
w1(L)  
w1(H)  
BIT_CLK  
t
cyc1  
t
t
w2(L)  
w2(H)  
SYNC  
t
cyc2  
Figure 33. BIT_CLK and SYNC Timing Waveforms  
BIT_CLK  
t
pd1  
SYNC, SD_OUT, RESET  
t
t
h
su  
SD_IN  
Figure 34. SYNC, SD_IN, and SD_OUT Timing Waveforms  
33  
2
3.4.4 Codec Port Interface Signals (I S Modes) Over Recommended Operating Conditions  
(unless otherwise noted)  
TEST CONDITIONS  
MIN  
MAX  
UNIT  
MHz  
ns  
f
t
t
t
t
Frequency, SCLK  
C
C
C
= 50 pF  
(32)F  
(64)F  
SCLK  
cyc  
pd  
L
L
L
S
S
Cycle time, SCLK  
= 50 pF, See Note 1  
= 50 pF  
1/(64)F  
1/(32)F  
S
S
Propagation delay, SCLK falling edge to LRCLK and SDOUT  
Setup time, SDIN to SCLK rising edge  
Hold time, SDIN from SCLK rising edge  
15  
ns  
10  
10  
ns  
su  
ns  
h
NOTE 1: Worst case duty cycle is 45/55.  
SCLK  
t
cyc  
t
pd  
LRCLK, SD_OUT  
t
t
h
su  
SD_IN  
2
Figure 35. I S Mode Timing Waveforms  
3.4.5 Codec Port Interface Signals (General-Purpose Mode) Over Recommended Operating  
Conditions (unless otherwise noted)  
TEST CONDITIONS  
MIN  
0.125  
0.040  
MAX  
25  
UNIT  
MHz  
µs  
f
t
t
t
t
Frequency, CSCLK  
C
C
C
= 50 pF  
CSCLK  
cyc  
pd  
L
L
L
Cycle time, CSCLK  
= 50 pF, See Note 2  
= 50 pF  
8
Propagation delay, CSCLK to CSYNC, CDATO, CSCHNE and CRESET  
Setup time, CDATI to CSCLK  
15  
ns  
10  
10  
ns  
su  
Hold time, CDATI from CSCLK  
ns  
h
NOTE 2: The timing waveforms in Figure 3-6 show the CSYNC, CDATO, CSCHNE, and CRESET signals generated with the rising edge of the  
clock and the CDATI signal sampled with the falling edge of the clock. The edge of the clock used is programmable. However, the timing  
characteristics are the same regardless of which edge of the clock is used.  
CSCLK  
t
cyc  
t
pd  
CSYNC, CDATO,  
CSCHNE, CRESET  
t
t
h
su  
CDATI  
Figure 36. General-Purpose Mode Timing Waveforms  
34  
2
3.4.6 I C Interface Signals Over Recommended Operating Conditions  
(unless otherwise noted)  
STANDARD  
MODE  
FAST MODE  
PARAMETER  
TEST CONDITIONS  
UNIT  
MIN MAX  
MIN  
0
MAX  
f
t
t
t
t
t
t
t
t
t
t
Frequency, SCL  
0
4
100  
400  
kHz  
µs  
µs  
ns  
ns  
ns  
ns  
µs  
µs  
µs  
µs  
pF  
SCL  
w(H)  
w(L)  
r
Pulse duration, SCL high  
0.6  
1.3  
Pulse duration, SCL low  
4.7  
Rise time, SCL and SDA  
1000  
300  
300  
300  
Fall time, SCL and SDA  
f
Setup time, SDA to SCL  
250  
0
100  
0
su1  
h1  
Hold time, SCL to SDA  
Bus free time between stop and start condition  
Setup time, SCL to start condition  
Hold time, start condition to SCL  
Setup time, SCL to stop condition  
Load capacitance for each bus line  
4.7  
4.7  
4
1.3  
0.6  
0.6  
0.6  
buf  
su2  
h2  
4
su3  
C
400  
400  
L
t
t
t
t
f
w(H)  
w(L)  
r
SCL  
SDA  
t
t
h1  
su1  
Figure 37. SCL and SDA Timing Waveforms  
SCL  
t
t
t
t
buf  
su2  
h2  
su3  
SDA  
Start Condition  
Stop Condition  
Figure 38. Start and Stop Conditions Timing Waveforms  
SCL  
1
2
8
9
SDA OUT  
SDA IN  
Figure 39. Acknowledge Timing Waveform  
35  
36  
4 Application Information  
27 pF  
DGND  
24C64  
SDA  
GND  
A2  
XTAL0  
6 MHz  
SCL  
WP  
A1  
27 pF  
V
CC  
3.3 V  
A0  
4.99 kΩ  
4.99 kΩ  
AGND  
D
100 pF  
AGND  
MCLKO  
V
CC  
USB_CONN  
1000 pF  
1
V
CC  
2
3
4
5
6
3.09 kΩ  
D–  
GND  
D+  
48 47 46 45 44 43 42 41 40 39 38 37  
Shield  
Shield  
PLLFILO  
AV  
DD  
MCLKI  
CDATI  
CSYNC  
1
36  
35  
34  
3.3 V  
2
3
4
A
CRESET  
DV  
DV  
SS  
DD  
33  
3.3 V  
D
1.5 kΩ  
27.4 Ω  
27.4 Ω  
47 pF  
PUR  
DP  
CSCHNE  
P1.7  
P1.6  
32  
31  
5
6
7
TAS1020  
DM  
30  
29  
28  
27  
26  
25  
DV  
DD  
P1.5  
8
47 pF  
DV  
MRESET  
TEST  
SS  
9
P1.4  
P1.3  
P1.2  
10  
11  
12  
EXTEN  
RSTO  
13 14 15 16 17 18 19 20 21 22 23 24  
3.3 V  
D
1.5 kΩ  
1 µF  
3.3 V  
D
DGND  
Figure 41. Typical TAS1020 Device Connections  
41  
42  
Appendix A  
MCU Memory and Memory-Mapped Registers  
This section describes the TAS1020 MCU memory configurations and operation. In general, the MCU memory  
operation is the same as the industry standard 8052 MCU.  
A.1 MCU Memory Space  
The TAS1020 MCU memory is organized into three individual spaces: program memory, external data memory, and  
internal data memory. The total address range for the program memory and the external data memory spaces is 64K  
bytes each. The total address range for the internal data memory is 256 bytes.  
The read only program memory contains the instructions to be executed by the MCU. The TAS1020 uses a 8K boot  
ROM as the program memory during initialization. The boot ROM program code downloads the application program  
code from a nonvolatile memory (that is, EEPROM) on the peripheral PCB. The application program code is written  
to an 6K RAM mapped to the external data memory space. After downloading the application program code to RAM,  
the boot ROM enables the normal operating mode by setting the ROM disable (SDW) bit (refer to memory  
configuration register) to enable program code execution from the 6K RAM instead of the boot ROM. In the normal  
operating mode, the boot ROM is still mapped to program memory space starting at address 8000h. Refer to  
Figures A1 and A2 for details.  
The external data memory contains the data buffers for the USB end-points, the configuration blocks for the USB  
end-points, the setup data packet buffer for the USB control end-point, and memory mapped registers. The data  
buffers for the USB end-points, the configuration blocks for the USB end-points and the setup data packet buffer for  
the USB control end-point are all implemented in RAM. The memory mapped registers used for control and status  
registers are implemented in hardware with flip-flops. The data buffers for the USB end-points are a total of 1304  
bytes, the configuration blocks for the USB end-points are a total of 128 bytes, the setup packet buffer for the USB  
control end-point is 8 bytes, and the memory mapped registers space is 80 bytes. The total external data memory  
space used for these blocks of memory is 1520 bytes. In addition to these memory blocks, a 6K (6016 bytes) RAM  
is mapped to the external data memory space in the boot loader mode of operation. The 6K RAM is read/write in this  
mode and is used to store the application program code during download by the boot ROM. In the normal mode of  
operation, the 6K RAM is mapped to the program memory space and is read-only.  
A1  
A.2 Internal Data Memory  
The internal data memory space is a total of 256 bytes of RAM, which includes the 128 bytes of special function  
registers (SFR) space. The internal data memory space is mapped in accordance with the industry standard 8052  
MCU. The internal data memory space is mapped from 00h to FFh with the SFRs mapped from 80h to FFh. The lower  
128 bytes are accessible with both direct and indirect addressing. However, the upper 128 bytes, which is the SFR  
space, is only accessible with direct addressing.  
Program Memory  
External Data Memory  
FFFFh  
FFFFh  
Memory Mapped Registers  
(80 Bytes)  
FFB0h  
FFAFh  
USB End-Point Configuration  
Blocks and Buffer Space  
(1440 Bytes)  
28K - Reserved  
FA10h  
FA0Fh  
A000h  
9FFFh  
Boot ROM (8K)  
58K Reserved  
8000h  
7FFFh  
28K - Reserved  
1780h  
177Fh  
2000h  
1FFFh  
Code RAM (6K)  
(6016 bytes)  
(Read/Write)  
Boot ROM (8K)  
0000h  
0000h  
Figure A1. Boot Loader Mode Memory Map  
A2  
Program Memory  
External Data Memory  
FFFFh  
FFFFh  
Memory Mapped Registers  
(80 Bytes)  
FFB0h  
FFAFh  
USB End-Point Configuration  
Blocks and Buffer Space  
(1440 Bytes)  
28K - Reserved  
FA10h  
FA0Fh  
A000h  
9FFFh  
Boot ROM (8K)  
8000h  
7FFFh  
64016 bytes  
26752 bytes  
1780h  
177Fh  
Code RAM (6K)  
(6016 bytes)  
(Read/Write)  
0000h  
0000h  
Figure A2. Normal Operating Mode Memory Map  
A.3 External MCU Mode Memory Space  
When using an external MCU for firmware development, only the USB configuration blocks, the USB buffer space,  
and the memory mapped registers are accessible by the external MCU. See Section A.4 for details. In this mode,  
onlyaddresslinesA0toA10areinputtotheTAS1020devicefromtheexternalMCU. Therefore, theUSBbufferspace  
and the memory mapped registers in the external data memory space are not fully decoded since all sixteen address  
lines are not available. Hence, the USB buffer space and the memory mapped registers are actually accessible at  
any 2K boundary within the total 64K external data memory space of the external MCU. As a result, when using the  
TAS1020 in the external MCU mode, nothing can be mapped to the external data memory space of the external MCU  
except the USB buffer space and the memory mapped registers of the TAS1020 device.  
A3  
A.4 USB End-Point Configuration Blocks and Data Buffers Space  
A.4.1 USB End-Point Configuration Blocks  
The USB end-point configuration space contains 16 blocks of 8 bytes which define configuration, buffer location,  
buffer size, and data count for 16 (8 input and 8 output) USB end-points. The MCU, UBM, and DMA all have access  
to these configuration blocks.  
The device defines an end-point of a USB pipe by initializing the configuration block configuration byte. It defines the  
location of the pipe X and Y buffers in end-point data buffer space by writing to the X buffer base address byte and  
Y buffer base address byte. Base addresses are octlet (8-byte) aligned. The device sets the X and Y buffer size to  
allocate fixed sized buffers for the pipe. Both X and Y buffer size must be greater than or equal to the USB packet  
sizeassociatedwiththeend-point. IfthebuffersizeisgreaterthantheUSBpacketsize, eachbufferwillindependently  
recirculate.  
A.4.2 Data Buffers Space  
The end-point data buffer space (1304 bytes) provides rate buffering between the USB and codecs attached to the  
TAS1020. Buffers are defined in this space by base address pointers and size descriptors in the USB end-point  
configuration blocks. The MCU also has access to this space.  
Among the 1304 bytes of endpoint data buffer (FA10h-FF27h), the locations (FA10h-FAC7h) are used by current  
TAS1020 ROM mode. If ROM code service is used,the DMA data buffer loations available for customers application  
are limited to 1120 bytes (FAC8h-FF27h) which should be enough for applications upto 5 channels, 48 kHz sampling  
rate with 16 bits per sample or 3 channels, 48 kHz sampling rate with 24 bits per sample.  
The UBM associates USB end-points with buffers in the end-point data buffer space by looking up configuration for  
an end-point in USB end-point configuration space. A particular DMA channel is associated with a buffer through an  
end-point number in the DMA channels control register.  
External Data Memory  
FFFFh  
Memory Mapped Registers  
(80 Bytes)  
FFB0h  
FFAFh  
End-Point Configuration Blocks  
(128 Bytes)  
FF30h  
DMA Access  
FF2Fh  
Setup Data Packet Buffer  
(8 Bytes)  
MCU Access  
UBM Access  
FF28h  
FF27h  
End-Point Data Buffers  
(1304 Bytes)  
DMA Access  
FA10h  
Figure A3. USB End-Point Configuration Blocks and Buffer Space Memory Map  
A4  
Table A1. USB End-Point Configuration Blocks Address Map  
ADDRESS  
FFAFh  
MNEMONIC  
OEPDCNTY0  
Reserved  
NAME  
Out end-point 0 - Y buffer data count byte  
Reserved for future use  
FFAEh  
FFADh  
FFACh  
FFABh  
FFAAh  
FFA9h  
FFA8h  
FFA7h  
FFA6h  
FFA5h  
FFA4h  
FFA3h  
FFA2h  
FFA1h  
FFA0h  
FF9Fh  
FF9Eh  
FF9Dh  
FF9Ch  
FF9Bh  
FF9Ah  
FF99h  
FF98h  
FF97h  
FF96h  
FF95h  
FF94h  
FF93h  
FF92h  
FF91h  
FF90h  
FF8Fh  
FF8Eh  
FF8Dh  
FF8Ch  
FF8Bh  
FF8Ah  
FF89h  
FF88h  
FF87h  
FF86h  
FF85h  
FF84h  
FF83h  
FF82h  
FF81h  
FF80h  
OEPBBAY0  
Reserved  
Out end-point 0 - Y buffer base address byte  
Reserved for future use  
OEPDCNTX0  
OEPBSIZ0  
OEPBBAX0  
OEPCNF0  
OEPDCNTY1  
Reserved  
Out end-point 0 - X buffer data count byte  
Out end-point 0 - X and Y buffer size byte  
Out end-point 0 - X buffer base address byte  
Out end-point 0 configuration byte  
Out end-point 1 - Y buffer data count byte  
Reserved for future use  
OEPBBAY1  
Reserved  
Out end-point 1 - Y buffer base address byte  
Reserved for future use  
OEPDCNTX1  
OEPBSIZ1  
OEPBBAX1  
OEPCNF1  
OEPDCNTY2  
Reserved  
Out end-point 1 - X buffer data count byte  
Out end-point 1 - X and Y buffer size byte  
Out end-point 1 - X buffer base address byte  
Out end-point 1 configuration byte  
Out end-point 2 - Y buffer data count byte  
Reserved for future use  
OEPBBAY2  
Reserved  
Out end-point 2 - Y buffer base address byte  
Reserved for future use  
OEPDCNTX2  
OEPBSIZ2  
OEPBBAX2  
OEPCNF2  
OEPDCNTY3  
Reserved  
Out end-point 2 - X buffer data count byte  
Out end-point 2 - X and Y buffer size byte  
Out end-point 2 - X buffer base address byte  
Out end-point 2 configuration byte  
Out end-point 3 - Y buffer data count byte  
Reserved for future use  
OEPBBAY3  
Reserved  
Out end-point 3 - Y buffer base address byte  
Reserved for future use  
OEPDCNTX3  
OEPBSIZ3  
OEPBBAX3  
OEPCNF3  
OEPDCNTY4  
Reserved  
Out end-point 3 - X buffer data count byte  
Out end-point 3 - X and Y buffer size byte  
Out end-point 3 - X buffer base address byte  
Out end-point 3 configuration byte  
Out end-point 4 - Y buffer data count byte  
Reserved for future use  
OEPBBAY4  
Reserved  
Out end-point 4 - Y buffer base address byte  
Reserved for future use  
OEPDCNTX4  
OEPBSIZ4  
OEPBBAX4  
OEPCNF4  
OEPDCNTY5  
Reserved  
Out end-point 4 - X buffer data count byte  
Out end-point 4 - X and Y buffer size byte  
Out end-point 4 - X buffer base address byte  
Out end-point 4 configuration byte  
Out end-point 5 - Y buffer data count byte  
Reserved for future use  
OEPBBAY5  
Reserved  
Out end-point 5 - Y buffer base address byte  
Reserved for future use  
OEPDCNTX5  
OEPBSIZ5  
OEPBBAX5  
OEPCNF5  
Out end-point 5 - X buffer data count byte  
Out end-point 5 - X and Y buffer size byte  
Out end-point 5 - X Buffer Base Address Byte  
Out end-point 5 configuration byte  
A5  
Table A1. USB End-Point Configuration Blocks Address Map (Continued)  
ADDRESS  
FF7Fh  
MNEMONIC  
OEPDCNTY6  
Reserved  
NAME  
Out end-point 6 - Y buffer data count byte  
Reserved for future use  
FF7Eh  
FF7Dh  
FF7Ch  
FF7Bh  
FF7Ah  
FF79h  
FF78h  
FF77h  
FF76h  
FF75h  
FF74h  
FF73h  
FF72h  
FF71h  
FF70h  
FF6Fh  
FF6Eh  
FF6Dh  
FF6Ch  
FF6Bh  
FF6Ah  
FF69h  
FF68h  
FF67h  
FF66h  
FF65h  
FF64h  
FF63h  
FF62h  
FF61h  
FF60h  
FF5Fh  
FF5Eh  
FF5Dh  
FF5Ch  
FF5Bh  
FF5Ah  
FF59h  
FF58h  
FF57h  
FF56h  
FF55h  
FF54h  
FF53h  
FF52h  
FF51h  
FF50h  
OEPBBAY6  
Reserved  
Out end-point 6 - Y buffer base address byte  
Reserved for future use  
OEPDCNTX6  
OEPBSIZ6  
OEPBBAX6  
OEPCNF6  
OEPDCNTY7  
Reserved  
Out end-point 6 - X buffer data count byte  
Out end-point 6 - X and Y buffer size byte  
Out end-point 6 - X buffer base address byte  
Out end-point 6 configuration byte  
Out end-point 7 - Y buffer data count byte  
Reserved for future use  
OEPBBAY7  
Reserved  
Out end-point 7 - Y buffer base address byte  
Reserved for future use  
OEPDCNTX7  
OEPBSIZ7  
OEPBBAX7  
OEPCNF7  
IEPDCNTY0  
Reserved  
Out end-point 7 - X buffer data count byte  
Out end-point 7 - X and Y buffer size byte  
Out end-point 7 - X buffer base address byte  
Out end-point 7 configuration byte  
In end-point 0 - Y buffer data count byte  
Reserved for future use  
IEPBBAY0  
Reserved  
In end-point 0 - Y buffer base address byte  
Reserved for future use  
IEPDCNTX0  
IEPBSIZ0  
In end-point 0 - X buffer data count byte  
In end-point 0 - X and Y buffer size byte  
In end-point 0 - X buffer base address byte  
In end-point 0 configuration byte  
In end-point 1 - Y buffer data count byte  
Reserved for future use  
IEPBBAX0  
IEPCNF0  
IEPDCNTY1  
Reserved  
IEPBBAY1  
Reserved  
In end-point 1 - Y buffer base address byte  
Reserved for future use  
IEPDCNTX1  
IEPBSIZ1  
In end-point 1 - X buffer data count byte  
In end-point 1 - X and Y buffer size byte  
In end-point 1 - X buffer base address byte  
In end-point 1 configuration byte  
In end-point 2 - Y buffer data count byte  
Reserved for future use  
IEPBBAX1  
IEPCNF1  
IEPDCNTY2  
Reserved  
IEPBBAY2  
Reserved  
In end-point 2 - Y buffer base address byte  
Reserved for future use  
IEPDCNTX2  
IEPBSIZ2  
In end-point 2 - X buffer data count byte  
In end-point 2 - X and Y buffer size byte  
In end-point 2 - X buffer base address byte  
In end-point 2 configuration byte  
In end-point 3 - Y buffer data count byte  
Reserved for future use  
IEPBBAX2  
IEPCNF2  
IEPDCNTY3  
Reserved  
IEPBBAY3  
Reserved  
In end-point 3 - Y buffer base address byte  
Reserved for future use  
IEPDCNTX3  
IEPBSIZ3  
In end-point 3 - X buffer data count byte  
In end-point 3 - X and Y buffer size byte  
In end-point 3 - X buffer base address byte  
In end-point 3 configuration byte  
IEPBBAX3  
IEPCNF3  
A6  
Table A1. USB End-Point Configuration Blocks Address Map (Continued)  
ADDRESS  
FF4Fh  
MNEMONIC  
IEPDCNTY4  
NAME  
In end-point 4 - Y buffer data count byte  
Reserved for future use  
FF4Eh  
FF4Dh  
FF4Ch  
FF4Bh  
FF4Ah  
FF49h  
FF48h  
FF47h  
FF46h  
FF45h  
FF44h  
FF43h  
FF42h  
FF41h  
FF40h  
FF3Fh  
FF3Eh  
FF3Dh  
FF3Ch  
FF3Bh  
FF3Ah  
FF39h  
FF38h  
FF37h  
FF36h  
FF35h  
FF34h  
FF33h  
FF32h  
FF31h  
FF30h  
Reserved  
IEPBBAY4  
Reserved  
In end-point 4 - Y buffer base address byte  
Reserved for future use  
IEPDCNTX4  
IEPBSIZ4  
IEPBBAX4  
IEPCNF4  
In end-point 4 - X buffer data count byte  
In end-point 4 - X and Y buffer size byte  
In end-point 4 - X buffer base address byte  
In end-point 4 configuration byte  
In end-point 5 - Y buffer data count byte  
Reserved for future use  
IEPDCNTY5  
Reserved  
IEPBBAY5  
Reserved  
In end-point 5 - Y buffer base address byte  
Reserved for future use  
IEPDCNTX5  
IEPBSIZ5  
IEPBBAX5  
IEPCNF5  
In end-point 5 - X buffer data count byte  
In end-point 5 - X and Y buffer size byte  
In end-point 5 - X buffer base address byte  
In end-Point 5 configuration byte  
In end-point 6 - Y buffer data count byte  
Reserved for future use  
IEPDCNTY6  
Reserved  
IEPBBAY6  
Reserved  
In end-point 6 - Y buffer base address byte  
Reserved for future use  
IEPDCNTX6  
IEPBSIZ6  
IEPBBAX6  
IEPCNF6  
In end-point 6 - X buffer data count byte  
In end-point 6 - X and Y buffer size byte  
In end-point 6 - X buffer base address byte  
In end-point 6 configuration byte  
In end-point 7 - Y buffer data count byte  
Reserved for future use  
IEPDCNTY7  
Reserved  
IEPBBAY7  
Reserved  
In end-point 7 - Y buffer base address byte  
Reserved for future use  
IEPDCNTX7  
IEPBSIZ7  
IEPBBAX7  
IEPCNF7  
In end-point 7 - X buffer data count byte  
In end-point 7 - X and Y buffer size byte  
In end-point 7 - X buffer base address byte  
In end-point 7 configuration byte  
A7  
A.4.3 USB Out End-Point Configuration Bytes  
This section describes the individual bytes in the USB end-point configuration blocks for the out end-points. A set of  
8 bytes is used for the control and operation of each USB out end-point. In addition to the USB control end-point, the  
TAS1020 supports up to a total of seven out end-points.  
A.4.3.1 USB Out End-Point Y Buffer Data Count Byte (OEPDCNTYx)  
The USB out end-point Y buffer data count byte contains the 7-bit value used to specify the amount of data received  
in a data packet from the host PC. The no acknowledge status bit is also contained in this byte.  
Bit  
7
6
5
4
3
2
1
0
Mnemonic  
Type  
NACK  
R/W  
DCNTY6  
R/W  
DCNTY5  
R/W  
DCNTY4  
R/W  
DCNTY3  
R/W  
DCNTY2  
R/W  
DCNTY1  
R/W  
DCNTY0  
R/W  
BIT  
MNEMONIC  
NAME  
DESCRIPTION  
7
NACK  
No acknowledge  
The no acknowledge status bit is set to a 1 by the UBM at the end of a successful USB out  
transaction to this end-point to indicate that the USB end-point Y buffer contains a valid data  
packet and that the Y buffer data count value is valid. For control, interrupt, or bulk end-points,  
when this bit is set to a 1, all subsequent transactions to the end-point will result in a NACK  
handshake response to the host PC. Also for control, interrupt, and bulk end-points to enable  
thisend-pointtoreceiveanotherdatapacketfromthehostPC, thisbitmustbeclearedtoa0by  
the MCU. For isochronous end-points, a NACK handshake response to the host PC is not al-  
lowed. Therefore, the UBM ignores this bit in reference to receiving the next data packet. How-  
ever, the MCU or DMA must clear this bit before reading the data packet from the buffer.  
6:0  
DCNTY(6:0)  
Y Buffer data count  
The Y buffer data count value is set by the UBM when a new data packet is written to the Y  
buffer for the out end-point. The 7-bit value is set to the number of bytes in the data packet for  
control, interrupt or bulk end-point transfers and is set to the number of samples in the data  
packet for isochronous end-point transfers. To determine the number of samples in the data  
packet for isochronous transfers, the bytes per sample value in the configuration byte is used.  
The data count value is read by the MCU or DMA to obtain the data packet size.  
A.4.3.2 USB Out End-Point Y Buffer Base Address Byte (OEPBBAYx)  
The USB out end-point Y buffer base address byte contains the 8-bit value used to specify the base memory location  
for the Y data buffer for a particular USB out end-point.  
Bit  
7
6
5
4
3
2
1
0
Mnemonic  
Type  
BBAY10  
R/W  
BBAY9  
R/W  
BBAY8  
R/W  
BBAY7  
R/W  
BBAY6  
R/W  
BBAY5  
R/W  
BBAY4  
R/W  
BBAY3  
R/W  
BIT  
MNEMONIC  
BBAY(10:3)  
NAME  
DESCRIPTION  
7:0  
Y Buffer base address  
The Y buffer base address value is set by the MCU to program the base address location in  
memorytobeusedfortheYdatabuffer. Atotalof11bitsisusedtospecifythebaseaddress  
location. This byte specifies the most significant 8 bits of the address. All 0s are used by the  
hardware for the three least significant bits.  
A8  
A.4.3.3 USB Out End-Point X Buffer Data Count Byte (OEPDCNTXx)  
The USB out end-point X buffer data count byte contains the 7-bit value used to specify the amount of data received  
in a data packet from the host PC. The no acknowledge status bit is also contained in this byte.  
Bit  
7
6
5
4
3
2
1
0
Mnemonic  
Type  
NACK  
R/W  
DCNTX6  
R/W  
DCNTX5  
R/W  
DCNTX4  
R/W  
DCNTX3  
R/W  
DCNTX2  
R/W  
DCNTX1  
R/W  
DCNTX0  
R/W  
BIT  
MNEMONIC  
NAME  
DESCRIPTION  
7
NACK  
No acknowledge  
The no acknowledge status bit is set to a 1 by the UBM at the end of a successful USB out  
transaction to this end-point to indicate that the USB end-point X buffer contains a valid data  
packetandthattheXbufferdatacountvalueisvalid.Forcontrol,interrupt,orbulkend-points,  
when this bit is set to a 1, all subsequent transactions to the end-point will result in a NACK  
handshakeresponse to the host PC. Also for control, interrupt, and bulk end-points to enable  
this end-point to receive another data packet from the host PC, this bit must be cleared to a 0  
by the MCU. For isochronous end-points, a NACK handshake response to the host PC is not  
allowed. Therefore, the UBM ignores this bit in reference to receiving the next data packet.  
However, the MCU or DMA must clear this bit before reading the data packet from the buffer.  
6:0  
DCNTX(6:0)  
X Buffer data count  
The X buffer data count value is set by the UBM when a new data packet is written to the X  
buffer for the out end-point. The 7-bit value is set to the number of bytes in the data packet for  
control, interrupt, or bulk end-point transfers and is set to the number of samples in the data  
packet for isochronous end-point transfers. To determine the number of samples in the data  
packet for isochronous transfers, the bytes per sample value in the configuration byte is  
used. The data count value is read by the MCU or DMA to obtain the data packet size.  
A.4.3.4 USB Out End-Point X and Y Buffer Size Byte (OEPBSIZx)  
The USB out end-point X and Y buffer size byte contains the 8-bit value used to specify the size of the two data buffers  
to be used for this end-point.  
Bit  
7
6
5
4
3
2
1
0
Mnemonic  
Type  
BSIZ7  
R/W  
BSIZ6  
R/W  
BSIZ5  
R/W  
BSIZ4  
R/W  
BSIZ3  
R/W  
BSIZ2  
R/W  
BSIZ1  
R/W  
BSIZ0  
R/W  
BIT  
MNEMONIC  
BSIZ(7:0)  
NAME  
Buffer size  
DESCRIPTION  
7:0  
TheXandYbuffersizevalueissetbytheMCUtoprogramthesizeoftheXandYdatapacket  
buffers. Both buffers are programmed to the same size based on this value. This value is in  
8-byte units. For example, a value of 18h results in the size of the X and Y buffers each being  
set to 192 bytes.  
A.4.3.5 USB Out End-Point X Buffer Base Address Byte (OEPBBAXx)  
The USB out end-point X buffer base address byte contains the 8-bit value used to specify the base memory location  
for the X data buffer for a particular USB out end-point.  
Bit  
7
6
5
4
3
2
1
0
Mnemonic  
Type  
BBAX10  
R/W  
BBAX9  
R/W  
BBAX8  
R/W  
BBAX7  
R/W  
BBAX6  
R/W  
BBAX5  
R/W  
BBAX4  
R/W  
BBAX3  
R/W  
BIT  
MNEMONIC  
BBAX(10:3)  
NAME  
DESCRIPTION  
7:0  
X Buffer base address The X buffer base address value is set by the MCU to program the base address location in  
memory to be used for the X data buffer. A total of 11 bits is used to specify the base address  
location. This byte specifies the most significant 8 bits of the address. All 0s are used by the  
hardware for the three least significant bits.  
A.4.3.6 USB Out End-Point Configuration Byte (OEPCNFx)  
The USB out end-point configuration byte contains the various bits used to configure and control the end-point. Note  
that the bits in this byte take on different functionality based on the type of end-point defined. The control, interrupt,  
and bulk end-points function differently than the isochronous end-points.  
A9  
A.4.3.6.1 USB Out End-Point Control, Interrupt or Bulk configuration byte  
This section defines the functionality of the bits in the USB out end-point configuration byte for control, interrupt, and  
bulk end-points.  
Bit  
7
6
5
4
3
2
1
0
Mnemonic  
Type  
OEPEN  
R/W  
ISO  
R/W  
TOGGLE  
R/W  
DBUF  
R/W  
STALL  
R/W  
OEPIE  
R/W  
R/W  
R/W  
BIT  
7
MNEMONIC  
NAME  
DESCRIPTION  
The end-point enable bit is set to a 1 by the MCU to enable the out end-point.  
OEPEN  
ISO  
End-Point enable  
6
Isochronous end-point  
The isochronous end-point bit is set to a 1 by the MCU to specify the use of a particular out  
end-pointforisochronoustransactions. Thisbitmustbeclearedtoa0bytheMCUtousea  
particular out end-point for control, interrupt, or bulk transactions.  
5
4
TOGGLE  
DBUF  
Toggle  
The toggle bit is controlled by the UBM and is toggled at the end of a successful out data  
stage transaction if a valid data packet is received and the data packet PID matches the  
expected PID.  
Double buffer mode  
The double buffer mode bit is set to a 1 by the MCU to enable the use of both the X and Y  
data packet buffers for USB transactions to a particular out end-point. This bit must be  
clearedtoa0bytheMCUtousethesinglebuffermode.Inthesinglebuffermode, onlytheX  
buffer is used.  
3
STALL  
Stall  
The stall bit is set to a 1by the MCU to stall end-point transactions. When this bit is set, the  
hardware will automatically return a stall handshake to the host PC for any transaction  
received for the end-point. An exception is the control end-point setup stage transaction,  
which must always be received. This requirement allows a Clear_Feature_Stall request to  
be received from the host PC. Control end-point data and status stage transactions  
however can be stalled. The stall bit is cleared to a 0by the MCU if a Clear_Feature_Stall  
request or a USB reset is received from the host PC. For a control write transaction, if the  
amountof data received is greater than expected, the UBM will set the stall bit to a 1 to stall  
the end-point. When the stall bit is set to a 1 by the UBM, the USB out end-point 0 interrupt  
will be generated.  
2
OEPIE  
Interrupt enable  
Reserved  
The interrupt enable bit is set to a 1 by the MCU to enable the out end-point interrupt. See  
section A.5.7.1 for details on the out end-point interrupts.  
1:0  
Reserved for future use  
A10  
A.4.3.6.2 USB Out End-Point Isochronous Configuration Byte  
This section defines the functionality of the bits in the USB out end-point configuration byte for isochronous  
end-points.  
Bit  
7
6
5
4
3
2
1
0
Mnemonic  
Type  
OEPEN  
R/W  
ISO  
R/W  
OVF  
R/W  
BPS4  
R/W  
BPS3  
R/W  
BPS2  
R/W  
BPS1  
R/W  
BPS0  
R/W  
BIT  
7
MNEMONIC  
NAME  
DESCRIPTION  
The end-point enable bit is set to a 1 by the MCU to enable the out end-point.  
OEPEN  
ISO  
End-Point enable  
6
Isochronous end-point  
The isochronous end-point bit is set to a 1 by the MCU to specify the use of a particular out  
end-point for isochronous transactions. This bit must be cleared to a 0 by the MCU for a  
particular out end-point to be used for control, interrupt, or bulk transactions.  
5
OVF  
Overflow  
Theoverflowbitissettoa1bytheUBMtoindicateabufferoverflowconditionhasoccurred.  
This bit is used for diagnostic purposes only and is not used for normal operation. This bit  
can only be cleared to a 0 by the MCU.  
4:0  
BPS(4:0)  
Bytes per sample  
The bytes per sample bits are used to define the number of bytes per isochronous data  
sample. In other words, the total number of bytes in an entire audio codec frame. For  
example,aPCM16-bitstereoaudiodatasampleconsistsof4bytes. Therearetwobytesof  
leftchanneldataandtwobytesofrightchanneldata. Forafourchannelsystemusing16-bit  
data, the total number of bytes is 8, which is the isochronous data sample size.  
00h = 1 byte, 01h = 2 bytes, , 1Fh = 32 bytes  
A.4.4 USB In End-Point Configuration Bytes  
This section describes the individual bytes in the USB end-point configuration blocks for the in end-points. A set of  
8 bytes is used for the control and operation of each USB in end-point. In addition to the USB control end-point, the  
TAS1020 supports up to a total of seven in end-points.  
A.4.4.1 USB In End-Point Y Buffer Data Count Byte (IEPDCNTYx)  
The USB in end-point Y buffer data count byte contains the 7-bit value used to specify the amount of data to be  
transmitted in a data packet to the host PC. The no acknowledge status bit is also contained in this byte.  
Bit  
7
6
5
4
3
2
1
0
Mnemonic  
Type  
NACK  
R/W  
DCNTY6  
R/W  
DCNTY5  
R/W  
DCNTY4  
R/W  
DCNTY3  
R/W  
DCNTY2  
R/W  
DCNTY1  
R/W  
DCNTY0  
R/W  
BIT  
MNEMONIC  
NAME  
DESCRIPTION  
7
NACK  
No acknowledge  
The no acknowledge status bit is set to a 1 by the UBM at the end of a successful USB in  
transaction to this end-point to indicate that the USB end-point Y buffer is empty. For  
control, interrupt, or bulk end-points, when this bit is set to a 1, all subsequent transactions  
to the end-point will result in a NACK handshake response to the host PC. Also for control,  
interrupt,andbulkend-pointstoenablethisend-pointtotransmitanotherdatapackettothe  
Host PC, this bit must be cleared to a 0 by the MCU. For isochronous end-points, a NACK  
handshake response to the host PC is not allowed. Therefore, the UBM ignores this bit in  
reference to sending the next data packet. However, the MCU or DMA must clear this bit  
after writing a data packet to the buffer.  
6:0  
DCNTY(6:0)  
Y Buffer data count  
The Y buffer data count value is set by the MCU or DMA when a new data packet is written  
to the Y buffer for the in end-point. The 7-bit value is set to the number of bytes in the data  
packet for control, interrupt, or bulk end-point transfers and is set to the number of samples  
inthedatapacketforisochronousend-pointtransfers. Todeterminethenumberofsamples  
inthedatapacketforisochronoustransfers, thebytes persamplevalueintheconfiguration  
byte is used.  
A11  
A.4.4.2 USB In End-Point Y Buffer Base Address Byte (IEPBBAYx)  
The USB in end-point Y buffer base address byte contains the 8-bit value used to specify the base memory location  
for the Y data buffer for a particular USB in end-point.  
Bit  
7
6
5
4
3
2
1
0
Mnemonic  
Type  
BBAY10  
R/W  
BBAY9  
R/W  
BBAY8  
R/W  
BBAY7  
R/W  
BBAY6  
R/W  
BBAY5  
R/W  
BBAY4  
R/W  
BBAY3  
R/W  
BIT  
MNEMONIC  
BBAY(10:3)  
NAME  
DESCRIPTION  
7:0  
Y Buffer base address  
The Y buffer base address value is set by the MCU to program the base address location in  
memorytobeusedfortheYdatabuffer. Atotalof11bitsisusedtospecifythebaseaddress  
location. This byte specifies the most significant 8 bits of the address. All 0s are used by the  
hardware for the three least significant bits.  
A.4.4.3 USB In End-Point X Buffer Data Count Byte (IEPDCNTXx)  
The USB in end-point X buffer data count byte contains the 7-bit value used to specify the amount of data received  
in a data packet from the host PC. The no acknowledge status bit is also contained in this byte.  
Bit  
7
6
5
4
3
2
1
0
Mnemonic  
Type  
NACK  
R/W  
DCNTX6  
R/W  
DCNTX5  
R/W  
DCNTX4  
R/W  
DCNTX3  
R/W  
DCNTX2  
R/W  
DCNTX1  
R/W  
DCNTX0  
R/W  
BIT  
MNEMONIC  
NAME  
DESCRIPTION  
7
NACK  
No acknowledge  
The no acknowledge status bit is set to a 1 by the UBM at the end of a successful USB in  
transaction to this end-point to indicate that the USB end-point X buffer is empty. For  
control, interrupt, or bulk end-points, when this bit is set to a 1, all subsequent transactions  
to the end-point will result in a NACK handshake response to the host PC. Also for control,  
interrupt,andbulkend-pointstoenablethisend-pointtotransmitanotherdatapackettothe  
host PC, this bit must be cleared to a 0 by the MCU. For isochronous end-points, a NACK  
handshake response to the host PC is not allowed. Therefore, the UBM ignores this bit in  
reference to sending the next data packet. However, the MCU or DMA must clear this bit  
after writing a data packet to the buffer.  
6:0  
DCNTX(6:0)  
X Buffer data count  
The X buffer data count value is set by the MCU or DMA when a new data packet is written  
to the X buffer for the in end-point. The 7-bit value is set to the number of bytes in the data  
packet for control, interrupt, or bulk end-point transfers and is set to the number of samples  
inthedatapacketforisochronousend-pointtransfers. Todeterminethenumberofsamples  
inthedatapacketforisochronoustransfers, thebytes persamplevalueintheconfiguration  
byte is used.  
A.4.4.4 USB In End-Point X and Y Buffer Size Byte (IEPBSIZx)  
The USB in end-point X and Y buffer size byte contains the 8-bit value used to specify the size of the two data buffers  
to be used for this end-point.  
Bit  
7
6
5
4
3
2
1
0
Mnemonic  
Type  
BSIZ7  
R/W  
BSIZ6  
R/W  
BSIZ5  
R/W  
BSIZ4  
R/W  
BSIZ3  
R/W  
BSIZ2  
R/W  
BSIZ1  
R/W  
BSIZ0  
R/W  
BIT  
MNEMONIC  
BSIZ(7:0)  
NAME  
DESCRIPTION  
7
Buffer size  
The X and Y buffer size value is set by the MCU to program the size of the X and Y data  
packet buffers. Both buffers are programmed to the same size based on this value. This  
valueshould be in 8 byte units. For example, a value of 18h results in the size of the X and Y  
buffers each being set to 192 bytes.  
A12  
A.4.4.5 SB In End-Point X Buffer Base Address Byte (IEPBBAXx)  
The USB in end-point X buffer base address byte contains the 8-bit value used to specify the base memory location  
for the X data buffer for a particular USB in end-point.  
Bit  
7
6
5
4
3
2
1
0
Mnemonic  
Type  
BBAX10  
R/W  
BBAX9  
R/W  
BBAX8  
R/W  
BBAX7  
R/W  
BBAX6  
R/W  
BBAX5  
R/W  
BBAX4  
R/W  
BBAX3  
R/W  
BIT  
MNEMONIC  
BBAX(10:3)  
NAME  
DESCRIPTION  
7:0  
X Buffer base address  
The X buffer base address value is set by the MCU to program the base address location in  
memorytobeusedfortheXdatabuffer. Atotalof11bitsisusedtospecifythebaseaddress  
location. This byte specifies the most significant 8 bits of the address. All 0s are used by the  
hardware for the three least significant bits.  
A.4.4.6 USB In End-Point Configuration Byte (IEPCNFx)  
The USB in end-point configuration byte contains the various bits used to configure and control the end-point. Note  
that the bits in this byte take on different functionality based on the type of end-point defined. Basically, the control,  
interrupt and bulk end-points function differently than the isochronous end-points.  
A.4.4.6.1 USB In End-Point Control, Interrupt or Bulk Configuration Byte  
This section defines the functionality of the bits in the USB in end-point configuration byte for control, interrupt, and  
bulk end-points.  
Bit  
7
6
5
4
3
2
1
0
Mnemonic  
Type  
IEPEN  
R/W  
ISO  
R/W  
TOGGLE  
R/W  
DBUF  
R/W  
STALL  
R/W  
IEPIE  
R/W  
R/W  
R/W  
BIT  
MNEMONIC  
NAME  
DESCRIPTION  
7
IEPEN  
End-Point enable  
Theend-pointenablebitissettoa1bytheMCUtoenabletheinend-point. Thisbitdoesnot  
affect the reception of the control end-point setup stage transaction.  
6
5
ISO  
Isochronous end-point  
The isochronous end-point bit is set to a 1 by the MCU to specify the use of a particular in  
end-point for isochronous transactions. This bit must be cleared to a 0 by the MCU to use a  
particular in end-point for control, interrupt, or bulk transactions.  
TOGGLE  
DBUF  
Toggle  
The toggle bit is controlled by the UBM and is toggled at the end of a successful in data  
stage transaction if a valid data packet is transmitted. If this bit is a 0, a DATA0 PID is  
transmitted in the data packet to the host PC. If this bit is a 1, a DATA1 PID is transmitted in  
the data packet.  
4
3
Double buffer mode  
The double buffer mode bit is set to a 1 by the MCU to enable the use of both the X and Y  
data packet buffers for USB transactions to a particular in end-point. This bit must be  
clearedtoa0bytheMCUtousethesinglebuffermode.Inthesinglebuffermode, onlytheX  
buffer is used.  
STALL  
Stall  
The stall bit is set to a 1 by the MCU to stall end-point transactions. When this bit is set, the  
hardware will automatically return a stall handshake to the host PC for any transaction  
received for the end-point.  
2
IEPIE  
Interrupt enable  
Reserved  
The interrupt enable bit is set to a 1 by the MCU to enable the in end-point interrupt. See  
section A.5.7.2 for details on the in end-point interrupts.  
1:0  
Reserved for future use.  
A13  
A.4.4.6.1 USB In End-Point Isochronous Configuration Byte  
This section defines the functionality of the bits in the USB in end-point configuration byte for isochronous end-points.  
Bit  
7
6
5
4
3
2
1
0
Mnemonic  
Type  
IEPEN  
R/W  
ISO  
R/W  
OVF  
R/W  
BPS4  
R/W  
BPS3  
R/W  
BPS2  
R/W  
BPS1  
R/W  
BPS0  
R/W  
BIT  
MNEMONIC  
NAME  
DESCRIPTION  
The end-point enable bit is set to a 1 by the MCU to enable the in end-point.  
7
IEPEN  
ISO  
End-Point enable  
6
Isochronous end-point  
The isochronous end-point bit is set to a 1 by the MCU to specify the use of a particular in  
end-point for isochronous transactions. This bit must be cleared to a 0 by the MCU for a  
particular in end-point to be used for control, interrupt, or bulk transactions.  
5
OVF  
Overflow  
Theoverflowbitissettoa1bytheUBMtoindicateabufferoverflowconditionhasoccurred.  
This bit is used for diagnostic purposes only and is not used for normal operation. This bit  
can only be cleared to a 0 by the MCU.  
4:0  
BPS(4:0)  
Bytes per sample  
The bytes per sample bits are used to define the number of bytes per isochronous data  
sample. In other words, the total number of bytes in an entire audio codec frame. For  
example,aPCM16-bitstereoaudiodatasampleconsistsof4bytes. Therearetwobytesof  
leftchanneldataandtwobytesofrightchanneldata. Forafourchannelsystemusing16-bit  
data, the total number of bytes is 8, which is the isochronous data sample size.  
00h = 1 byte, 01h = 2 bytes, , 1Fh = 32 bytes  
A.4.5 USB Control End-Point Setup Stage Data Packet Buffer  
The USB control end-point setup stage data packet buffer is the buffer space used to store the 8-byte data packet  
received from the host PC during a control end-point transfer setup stage transaction. Refer to Chapter 9 of the USB  
Specification for details on the data packet.  
Table A2. USB Control End-Point Setup Data Packet Buffer Address Map  
ADDRESS  
FF2Fh  
NAME  
wLength Number of bytes to transfer in the data stage  
wLength Number of bytes to transfer in the data stage  
wIndex Index or offset value  
FF2Eh  
FF2Dh  
FF2Ch  
FF2Bh  
FF2Ah  
FF29h  
FF28h  
wIndex Index or offset value  
wValue Value of a parameter specific to the request  
wValue Value of a parameter specific to the request  
bRequest Specifies the particular request  
bmRequestType Identifies the characteristics of the request  
A14  
A.5 Memory-Mapped Registers  
The TAS1020 device provides a set of control and status registers to be used by the MCU to control the overall  
operation of the device. This section describes the memory-mapped registers.  
Table A3. Memory Mapped Registers Address Map  
ADDRESS  
FFFFh  
MNEMONIC  
USBFADR  
NAME  
SECTION PAGE  
USB function address register  
USB status register  
A.5.1.1  
A.5.1.2  
A.5.1.3  
A.5.1.4  
A.5.1.5  
A.5.1.6  
A.5.3.6  
A.5.3.7  
A.5.3.8  
A.5.3.9  
A17  
A18  
A19  
A19  
A20  
A20  
A25  
A25  
A26  
A26  
FFFEh  
FFFDh  
FFFCh  
FFFBh  
FFFAh  
FFF9h  
FFF8h  
FFF7h  
FFF6h  
FFF5h  
FFF4h  
FFF3h  
FFF2h  
FFF1h  
FFF0h  
FFEFh  
FFEEh  
FFEDh  
FFECh  
FFEBh  
FFEAh  
FFE9h  
FFE8h  
FFE7h  
FFE6h  
FFE5h  
FFE4h  
FFE3h  
FFE2h  
FFE1h  
FFE0h  
FFDFh  
FFDEh  
FFDDh  
FFDCh  
FFDBh  
FFDAh  
FFD9h  
FFD8h  
FFD7h  
USBSTA  
USBIMSK  
USBCTL  
USB interrupt mask register  
USB control register  
USBFNL  
USB frame number register (low-byte)  
USBFNH  
USB frame number register (high-byte)  
ACG2FRQ0  
ACG2FRQ1  
ACG2FRQ2  
ACG2DCTL  
Reserved  
Adaptive clock generator2 frequency register (Byte 0)  
Adaptive clock generator2 frequency register (Byte 1)  
Adaptive clock generator2 frequency register (Byte 2)  
Adaptive clock generator2 divider control register  
Reserved for future use  
DMABCNT1H  
DMABCNT1L  
DMABPCT0  
DMABPCT1  
DMATSL1  
DMATSH1  
DMACTL1  
Reserved  
DMA buffer content register (high-byte) (channel 1)  
DMA buffer content register (low-byte) (channel 1)  
DMA bulk packet count register (low-byte)  
A.5.2.5  
A.5.2.4  
A.5.2.6  
A.5.2.7  
A.5.2.1  
A.5.2.2  
A.5.2.3  
A22  
A21  
A22  
A22  
A20  
A21  
A21  
DMA bulk packet count register (high-byte)  
DMA time slot assignment register (low-byte) (channel 1)  
DMA time slot assignment register (high-byte) (channel 1)  
DMA control register (channel 1)  
Reserved for future use  
DMABCNT0H  
DMABCNT0L  
DMATSL0  
DMATSH0  
DMACTL0  
ACG1FRQ0  
ACG1FRQ1  
ACG1FRQ2  
ACGCAPL  
ACGCAPH  
ACG1DCTL  
ACGCTL  
DMA current buffer content register (high-byte) (channel 0)  
DMA current buffer content register (low-byte) (channel 0)  
DMA time slot assignment register (low-byte) (channel 0)  
DMA time slot assignment register (high-byte) (channel 0)  
DMA control register (channel 0)  
A.5.2.5  
A.5.2.4  
A.5.2.1  
A.5.2.2  
A.5.2.3  
A.5.3.1  
A.5.3.2  
A.5.3.3  
A.5.3.4  
A.5.3.5  
A.5.3.10  
A.5.3.11  
A.5.4.1  
A.5.4.2  
A.5.4.3  
A.5.4.4  
A.5.4.5  
A.5.4.6  
A.5.4.7  
A.5.4.8  
A.5.4.9  
A.5.4.10  
A22  
A21  
A20  
A21  
A21  
A24  
A24  
A24  
A25  
A25  
A26  
A27  
A27  
A28  
A29  
A30  
A31  
A32  
A32  
A33  
A33  
A34  
Adaptive clock generator1 frequency register (byte 0)  
Adaptive clock generator1 frequency register (byte 1)  
Adaptive clock generator1 frequency register (byte 2)  
Adaptive clock generator1 MCLK capture register (low byte)  
Adaptive clock generator1 MCLK capture register (high byte)  
Adaptive clock generator1 divider control register  
Adaptive clock generator control register  
CPTCNF1  
CPTCNF2  
CPTCNF3  
CPTCNF4  
CPTCTL  
Codec port interface configuration register 1  
Codec port interface configuration register 2  
Codec port interface configuration register 3  
Codec port interface configuration register 4  
Codec port interface control and status register  
Codec port interface address register  
CPTADR  
CPTDATL  
CPTDATH  
CPTVSLL  
CPTVSLH  
Codec port interface data register (low-byte)  
Codec port interface data register (high-byte)  
Codec port interface valid slots register (low-byte)  
Codec port interface valid slots register (high-byte)  
A15  
Table A3. Memory-Mapped Registers Address Map (Continued)  
ADDRESS  
FFD6h  
MNEMONIC  
NAME  
Codec port interface receive configuration register 2  
Codec port interface receive configuration register 3  
Codec port interface receive configuration register 4  
Reserved for future use  
SECTION PAGE  
CPTRXCNF2  
CPTRXCNF3  
CPTRXCNF4  
Reserved  
Reserved  
Reserved  
Reserved  
Reserved  
Reserved  
Reserved  
Reserved  
Reserved  
P3MSK  
A.5.4.11  
A.5.4.12  
A.5.4.13  
A34  
A35  
A36  
FFD5h  
FFD4h  
FFD3h  
FFD2h  
FFD1h  
FFD0h  
FFCFh  
FFCEh  
FFCDh  
FFCCh  
FFCBh  
FFCAh  
FFC9h  
FFC8h  
FFC7h  
FFC6h  
FFC5h  
FFC4h  
FFC3h  
FFC2h  
FFC1h  
FFC0h  
FFBFh  
FFBEh  
FFBDh  
FFBCh  
FFBBh  
FFBAh  
FFB9h  
FFB8h  
FFB7h  
FFB6h  
FFB5h  
FFB4h  
FFB3h  
FFB2h  
FFB1h  
FFB0h  
Reserved for future use  
Reserved for future use  
Reserved for future use  
Reserved for future use  
Reserved for future use  
Reserved for future use  
Reserved for future use  
Reserved for future use  
Mask register for P3  
A.5.5.1  
A36  
Reserved  
Reserved  
Reserved  
Reserved  
Reserved  
Reserved  
I2CADR  
Reserved for future use  
Reserved for future use  
Reserved for future use  
Reserved for future use  
Reserved for future use  
Reserved for future use  
2
I C interface address register  
A.5.6.1  
A.5.6.2  
A.5.6.3  
A.5.6.4  
A36  
A37  
A37  
A38  
2
I C interface receive data register  
I2CDATI  
2
I C interface transmit data register  
I2CDATO  
I2CCTL  
2
I C interface control and status register  
Reserved  
Reserved  
Reserved  
Ch0WrPtrL  
Ch0WrPtrH  
Ch0RdPtrL  
Ch0RdPtrH  
Ch1WrPtrL  
Ch1WrPtrH  
Ch1RdPtrL  
Ch1RdPtrH  
OEPINT  
Reserved for future use  
Reserved for future use  
Reserved for future use  
UBM write pointer (low-byte) (8 bits)  
UBM write pointer (high-byte) (3 bits)  
DMA read pointer (low-byte) (8 bits)  
DMA read pointer (high-byte) (3 bits)  
UBM write pointer (low-byte) (8 bits)  
UBM write pointer (high-byte) (3 bits)  
DMA read pointer (low-byte) (8 bits)  
DMA read pointer (high-byte) (3 bits)  
USB out end-point interrupt register  
USB in end-point interrupt register  
Interrupt vector register  
A.5.2.8  
A.5.2.9  
A.5.2.10  
A.5.2.11  
A.5.2.8  
A.5.2.9  
A.5.2.10  
A.5.2.11  
A.5.7.1  
A.5.7.2  
A.5.7.3  
A.5.7.4  
A.5.7.5  
A22  
A23  
A23  
A23  
A22  
A23  
A23  
A23  
A39  
A39  
A40  
A41  
A41  
IEPINT  
VECINT  
GLOBCTL  
MEMCFG  
Global control register  
Memory configuration register  
A16  
A.5.1 USB Registers  
This section describes the memory-mapped registers used for control and operation of the USB functions. This  
section consists of six registers used for USB functions.  
A.5.1.1 USB Function Address Register (USBFADR Address FFFFh)  
The USB function address register contains the current setting of the USB device address assigned to the function  
by the host. After power-on reset or USB reset, the default address will be 00h. During enumeration of the function  
by the host, the MCU should load the assigned address to this register when a USB Set_Address request is received  
by the control end-point.  
Bit  
7
R
0
6
5
4
3
2
1
0
Mnemonic  
Type  
FA6  
R/W  
0
FA5  
R/W  
0
FA4  
R/W  
0
FA3  
R/W  
0
FA2  
R/W  
0
FA1  
R/W  
0
FA0  
R/W  
0
Default  
BIT  
7
MNEMONIC  
NAME  
Reserved  
DESCRIPTION  
Reserved for future use  
6:0  
FA(6:0)  
Function address The function address bit values are set by the MCU to program the USB device address assigned  
by the host PC.  
A17  
A.5.1.2 USB Status Register (USBSTA Address FFFEh)  
The USB status register contains various status bits used for USB operations.  
Bit  
7
RSTR  
R
6
SUSR  
R
5
RESR  
R
4
SOF  
R
3
PSOF  
R
2
1
R
0
0
Mnemonic  
Type  
SETUP  
STPOW  
R
0
R
0
Default  
0
0
0
0
0
BIT  
MNEMONIC  
NAME  
DESCRIPTION  
7
RSTR  
Function reset  
The function reset bit is set to a 1 by hardware in response to the host PC initiating a USB  
reset to the function. When a USB reset occurs, all of the USB logic blocks, including the  
SIE, UBM, frame timer, and suspend/resume are automatically reset. The function reset  
enable(FRSTE) control bit in the USB control register can be used to enable the USB reset  
to reset all TAS1020 logic, except the shadow the ROM (SDW) and the USB function  
connect (CONT) bits. When the FRSTE control bit is set to a 1, the reset output (RSTO)  
signalfromtheTAS1020devicewillalsobeactivewhenaUSBresetoccurs. Thisbitisread  
only and is cleared when the MCU writes to the interrupt vector register.  
6
5
4
3
2
SUSR  
RESR  
SOF  
Function suspend  
Function resume  
Start-of-frame  
The function suspend bit is set to a 1 by hardware when a USB suspend condition is  
detected by the suspend/resume logic. See section 2.2.5 for details on the USB suspend  
and resume operation. This bit is read only and is cleared when the MCU writes to the  
interrupt vector register.  
The function resume bit is set to a 1 by hardware when a USB resume condition is detected  
by the suspend/resume logic. See section 2.2.5 for details on the USB suspend and  
resume operation. This bit is read only and is cleared when the MCU writes to the interrupt  
vector register.  
The start-of-frame bit is set to a 1 by hardware when a new USB frame starts. This bit is set  
when the SOF packet from the host PC is detected, even if the TAS1020 frame timer is not  
locked to the host PC frame timer. This bit is read only and is cleared when the MCU writes  
to the interrupt vector register. The nominal SOF rate is 1 ms.  
PSOF  
SETUP  
Pseudo start-of-frame  
The pseudo start-of-frame bit is set to a 1 by hardware when a USB pseudo SOF occurs.  
ThepseudoSOFisanartificialSOFsignalthatisgeneratedwhentheTAS1020frametimer  
is not locked to the host PC frame timer. This bit is read only and is cleared when the MCU  
writes to the interrupt vector register. The nominal pseudo SOF rate is 1 ms.  
Setup stage transaction The setup stage transaction bit is set to a 1 by hardware when a successful control  
end-point setup stage transaction is completed. Upon completion of the setup stage  
transaction, the USBcontrolend-pointsetupstagedatapacketbuffershouldcontainanew  
setup stage data packet.  
1
0
Reserved  
Reserved for future use  
STPOW  
Setup stage transaction The setup stage transaction over-write bit is set to a 1 by hardware when the data in the  
over-write  
USB control end-point setup data packet buffer is over-written. This scenario occurs when  
the host PC prematurely terminates a USB control transfer by simply starting a new control  
transfer with a new setup stage transaction.  
A18  
A.5.1.3 USB Interrupt Mask Register (USBMSK Address FFFDh)  
The USB interrupt mask register contains the interrupt mask bits used to enable or disable the generation of interrupts  
based on the corresponding status bits.  
Bit  
7
RSTR  
R/W  
0
6
SUSR  
R/W  
0
5
RESR  
R/W  
0
4
3
PSOF  
R/W  
0
2
SETUP  
R/W  
0
1
R
0
0
STPOW  
R/W  
0
Mnemonic  
Type  
SOF  
R/W  
0
Default  
BIT  
MNEMONIC  
NAME  
DESCRIPTION  
7
RSTR  
SUSR  
RESR  
SOF  
Function reset  
The function reset interrupt mask bit is set to a 1 by the MCU to enable the USB function  
reset interrupt.  
6
5
4
3
2
Function suspend  
Function resume  
Start-of-frame  
The function suspend interrupt mask bit is set to a 1 by the MCU to enable the USB function  
suspend interrupt.  
The function resume interrupt mask bit is set to a 1 by the MCU to enable the USB function  
resume interrupt.  
The start-of-frame interrupt mask bit is set to a 1 by the MCU to enable the USB  
start-of-frame interrupt.  
PSOF  
SETUP  
Pseudo start-of-frame  
The pseudo start-of-frame interrupt mask bit is set to a 1 by the MCU to enable the USB  
pseudo start-of-frame interrupt.  
Setup stage transaction The setup stage transaction interrupt mask bit is set to a 1 by the MCU to enable the USB  
setup stage transaction interrupt.  
1
0
Reserved  
Setup stage transaction The setup stage transaction over-write interrupt mask bit is set to a 1 by the MCU to enable  
over-write the USB setup stage transaction over-write interrupt.  
Reserved for future use  
STPOW  
A.5.1.4 USB Control Register (USBCTL Address FFFCh)  
The USB control register contains various control bits used for USB operations.  
Bit  
7
CONT  
R/W  
0
6
5
RWUP  
R/W  
0
4
FRSTE  
R/W  
0
3
R
0
2
R
0
1
R
0
0
SDW_OK  
R/W  
Mnemonic  
Type  
FEN  
R/W  
0
Default  
0
BIT  
MNEMONIC  
NAME  
DESCRIPTION  
7
CONT  
Function connect The function connect bit is set to 1 by the MCU to connect the TAS1020 device to the USB. As a  
result of connecting to the USB, the host PC should enumerate the function. When this bit is set,  
the USB data plus pullup resistor (PUR) output signal is enabled, which will connect the pullup on  
thePCBtotheTAS10203.3-Vsupplyvoltage. Whenthisbitisclearedto0, thePURoutputisinthe  
3-stated. This bit is not affected by a USB reset.  
6
5
FEN  
Function enable  
The function enable bit is set to 1 by the MCU to enable the TAS1020 device to respond to USB  
transactions. If this bit is cleared to 0, the UBM will ignore all USB transactions. This bit is cleared  
by a USB reset.  
RWUP  
Remote wake-up The remote wake-up bit is set to 1 by the MCU to request the suspend/resume logic to generate  
resume signaling upstream on the USB. This bit is used to exit a USB low-power suspend state  
when a remote wake-up event occurs. After initiating the resume signaling by setting this bit, the  
MCU should clear this bit within 2.5 µs.  
4
FRSTE  
Function reset  
enable  
Thefunctionresetenablebitissetto1bytheMCUtoenabletheUSBresettoresetallinternallogic  
includingthe MCU. However, the shadow the ROM (SDW) and the USB function connect (CONT)  
bits will not be reset. When this bit is set, the reset output (RSTO) signal from the TAS1020 device  
will also be active when a USB reset occurs. This bit is not affected by USB reset.  
3
2
1
0
Reserved  
Reserved for future use.  
Reserved for future use.  
Reserved for future use.  
Reserved  
Reserved  
SDW_OK  
SDW bit confirm  
This bit is used as a confirmation bit to prevent a user to spuriously clear the SDW bit in the  
MEMCFG register. This bit must be set to 1 before clearing the SDW bit to switch from normal  
mode to boot mode. This bit is not affected by USB reset.  
A19  
A.5.1.5 USB Frame Number Register (Low-byte) (USBFNL Address FFFBh)  
The USB frame number register (low byte) contains the least significant byte of the 11-bit frame number value  
received from the host PC in the start-of-frame packet.  
Bit  
7
FN7  
R
6
FN6  
R
5
FN5  
R
4
FN4  
R
3
FN3  
R
2
FN2  
R
1
FN1  
R
0
FN0  
R
Mnemonic  
Type  
Default  
0
0
0
0
0
0
0
0
BIT  
MNEMONIC  
FN(7:0)  
NAME  
Frame number  
DESCRIPTION  
7:0  
The frame number bit values are updated by hardware each USB frame with the frame number  
field value received in the USB start-of-frame packet. The frame number can be used as a time  
stamp by the USB function. If the TAS1020 frame timer is not locked to the host PC frame timer,  
then the frame number is incremented from the previous value when a pseudo start-of-frame  
occurs.  
A.5.1.6 USB Frame Number Register (High-byte) (USBFNH Address FFFAh)  
The USB frame number register (high byte) contains the most significant 3 bits of the 11-bit frame number value  
received from the host PC in the start-of-frame packet.  
Bit  
7
R
0
6
R
0
5
R
0
4
R
0
3
R
0
2
FN10  
R
1
FN9  
R
0
FN8  
R
Mnemonic  
Type  
Default  
0
0
0
BIT  
7:3  
2:0  
MNEMONIC  
NAME  
Reserved  
Frame number  
DESCRIPTION  
Reserved for future use.  
FN(10:8)  
The frame number bit values are updated by hardware each USB frame with the frame number  
field value received in the USB start-of-frame packet. The frame number can be used as a time  
stamp by the USB function. If the TAS1020 frame timer is not locked to the host PC frame timer,  
then the frame number is incremented from the previous value when a pseudo start-of-frame  
occurs.  
A.5.2 DMA Registers  
This section describes the memory-mapped registers used for the two DMA channels. Each DMA channel has a set  
of three registers.  
A.5.2.1 DMA Time Slot Assignment Register (Low-byte) (DMATSL1 Address FFF0h)  
(DMATSL0 Address FFEAh)  
Bit  
7
TSL7  
R/W  
0
6
TSL6  
R/W  
0
5
TSL5  
R/W  
0
4
TSL4  
R/W  
0
3
TSL3  
R/W  
0
2
TSL2  
R/W  
0
1
TSL1  
R/W  
0
0
TSL0  
R/W  
0
Mnemonic  
Type  
Default  
BIT  
MNEMONIC  
TSL(7:0)  
NAME  
Time slot assignment  
DESCRIPTION  
7:0  
The DMA time slot assignment bits are set to 1 by the MCU to define the codec port  
interface time slots supported by this DMA channel.  
A20  
A.5.2.2 DMA Time Slot Assignment Register (High-byte) (DMATSH1 Address FFEFh)  
(DMATSH0 Address 0xFFE9)  
Bit  
7
BPTS1  
R/W  
0
6
BPTS0  
R/W  
0
5
TSL13  
R/W  
0
4
TSL12  
R/W  
0
3
TSL11  
R/W  
0
2
TSL10  
R/W  
0
1
TSL9  
R/W  
0
0
TSL8  
R/W  
0
Mnemonic  
Type  
Default  
BIT  
MNEMONIC  
NAME  
DESCRIPTION  
7:6  
BPTS(1:0)  
Bytes per time slot  
Thebytespertimeslotbitsareusedtodefinethenumberofbytestobetransferredforeach  
time slot supported by this DMA channel.  
00b = 1 byte,  
01b = 2 bytes,  
10b = 3 bytes,  
11b = 4 bytes  
5:0  
TSL(13:8)  
Time slot assignment  
The DMA time slot assignment bits are set to 1 by the MCU to define the codec port  
interface time slots supported by this DMA channel.  
A.5.2.3 DMA Control Register (DMACTL1 Address FFEEh) (DMACTL0 Address FFE8h)  
Bit  
7
DMAEN  
R/W  
0
6
HSKEN  
R/W  
0
5
R
0
4
R
0
3
EPDIR  
R/W  
0
2
EPNUM2  
R/W  
1
EPNUM1  
R/W  
0
EPNUM0  
R/W  
Mnemonic  
Type  
Default  
0
0
0
BIT  
MNEMONIC  
NAME  
DESCRIPTION  
7
DMAEN  
DMA enable  
The DMA enable bit is set to a 1 by the MCU to enable this DMA channel. Before enabling  
theDMAchannel, allotherDMAchannelconfigurationbitsmustbesettothedesiredvalue.  
6
HSKEN  
Handshake enable  
This bit is relevant for BULK data transfer in the OUT direction through DMA. MCU must set  
this bit to a 1 to enable the handshake mode for the data transfer. If MCU sets this bit, MCU  
hastoenableDMAforeachreceivedBULKOUTpacket. DMA, onceenabled, transfersthe  
BULK OUT packet to the C-port, disables itself and generates an interrupt to the MCU. If  
MCU clears this bit, DMA handles the BULK OUT data transfer to the C-port without MCU  
intervention. For more details, refer to section 2.2.7.3.3.  
5
4
3
Reserved  
Reserved  
Reserved for future use  
Reserved for future use  
EPDIR  
USB end-point direction The USB end-point direction bit controls the direction of data transfer by this DMA channel.  
The MCU should set this bit to a 1 to configure this DMA channel to be used for a USB in  
end-point. The MCU must clear this bit to a 0 to configure this DMA channel to be used for a  
USB out end-point.  
2:0  
EPNUM(2:0)  
USB end-point number  
The USB end-point number bits are set by the MCU to define the USB end-point number  
supportedbythisDMAchannel. Keepinmindthatend-point0isalwaysusedforthecontrol  
end-point, which is serviced by the MCU and not a DMA channel.  
001b = End-Point 1, 010b = End-Point 2, , 111b = End-Point 7  
A.5.2.4 DMA Current Buffer Content Register (Low-Byte) (DMABCNT1L Address FFE3h)  
(DMABCNT0LAddress FFEBh)  
Bit  
7
Size 7  
R
6
Size 6  
R
5
Size 5  
R
4
Size 4  
R
3
Size 3  
R
2
Size 2  
R
1
Size 1  
R
0
Size 0  
R
Mnemonic  
Type  
Default  
0
0
0
0
0
0
0
0
BIT  
MNEMONIC  
Size(7:0)  
NAME  
Buffer content  
DESCRIPTION  
7:0  
This register shows the buffer content (bytes) for an ISO OUT end-point. This register is updated  
every SOF and is stable for the following USB frame which MCU can read it to implement USB  
audio synchronization.  
A21  
A.5.2.5 DMA Current Buffer Content Register (High-Byte) (DMABCNT1H Address FFE4h)  
(DMABCNT0H Address FFECh)  
Bit  
7
6
5
4
3
2
1
Size 9  
R
0
Size 8  
R
Mnemonic  
Type  
Size 15  
Size 14  
Size 13  
Size 12  
Size 11  
Size 10  
R
0
R
0
R
0
R
0
R
0
R
0
Default  
0
0
BIT  
MNEMONIC  
Size(15:8)  
NAME  
Buffer content  
DESCRIPTION  
7:0  
This register shows the buffer content (bytes) for an ISO OUT end-point. This register is updated  
every SOF and is stable for the following USB frame which MCU can read it to implement USB  
audio synchronization.  
A.5.2.6 DMA Bulk Packet Count Register (Low-byte) (DMABPCT0 Address FFF2h)  
Bit  
7
PCNT7  
R/W  
0
6
PCNT6  
R/W  
0
5
PCNT5  
R/W  
0
4
PCNT4  
R/W  
0
3
PCNT3  
R/W  
0
2
PCNT2  
R/W  
0
1
PCNT1  
R/W  
0
0
PCNT0  
R/W  
0
Mnemonic  
Type  
Default  
BIT  
MNEMONIC  
PCNT (7:0)  
NAME  
DESCRIPTION  
7:0  
Bulk packet count This register shows the number of BULK OUT packets DMA has to handle in handshake mode.  
MCU writes to this register before enabling the DMA to program the DMA to handle up to 64K  
BULK packets without MCU intervention. MCU can read this register anytime.  
A.5.2.7 DMA Bulk Packet Count Register (High-byte) (DMABPCT1 Address FFF1h)  
Bit  
7
PCNT15  
R/W  
0
6
PCNT14  
R/W  
0
5
PCNT13  
R/W  
0
4
PCNT12  
R/W  
0
3
PCNT11  
R/W  
0
2
PCNT10  
R/W  
0
1
PCNT9  
R/W  
0
0
PCNT8  
R/W  
0
Mnemonic  
Type  
Default  
BIT  
MNEMONIC  
PCNT (15:8)  
NAME  
DESCRIPTION  
7:0  
Bulk packet count This register shows the number of BULK OUT packets DMA has to handle in handshake mode.  
MCU writes to this register before enabling the DMA to program the DMA to handle up to 64K  
BULK packets without MCU intervention. MCU can read this register anytime.  
A.5.2.8 UBM Write Pointer (Low Byte) (Ch0WrPtrL Address FFBCh) (Ch1WrPtrL Address FFB8h)  
Bit  
7
6
5
4
3
2
1
0
Mnemonic  
Type  
WRPTR7  
WRPTR6  
WRPTR5  
WRPTR4  
WRPTR3  
WRPTR2  
WRPTR1  
WRPTR0  
R
0
R
0
R
0
R
0
R
0
R
0
R
0
R
0
Default  
BIT  
MNEMONIC  
WRPTR(7:0)  
NAME  
DESCRIPTION  
7:0  
UBM Write Pointer This register contains 8 LSB bits of 11-bit UBM Write Pointer of the isochronous OUT endpoint  
buffer. MCU can read this register anytime. This 11-bit UBM Write Pointer WRPTR can be used  
inconjunctionwiththecorresponding11-bitChnDMARDPTRtoestimatetheisochronousOUT  
endpoint buffer size.  
A22  
A.5.2.9 UBM Write Pointer (High Byte) (Ch0WrPtrH Address FFBBh)  
(Ch1WrPtrH Address FFB7h)  
Bit  
7
6
5
4
3
2
1
0
Mnemonic  
Type  
WRPTR10  
WRPTR9  
WRPTR8  
R
0
R
0
R
0
Default  
BIT  
MNEMONIC  
NAME  
DESCRIPTION  
2:0  
WRPTR(10:8) UBM Write Pointer This register contains 3 MSB bits of 11-bit UBM Write Pointer of the isochronous OUT endpoint  
buffer. MCU can read this register anytime. This 11-bit UBM Write Pointer WRPTR can be used  
inconjunctionwiththecorresponding11-bitChnDMARDPTRtoestimatetheisochronousOUT  
endpoint buffer size.  
A.5.2.10DMA Read Pointer (Low Byte) (Ch0RdPtrH Address FFBAh) (Ch1RrPtrH Address FFB6h)  
Bit  
7
6
5
4
3
2
1
0
Mnemonic  
Type  
RDPTR7  
RDPTR6  
RDPTR5  
RDPTR4  
RDPTR3  
RDPTR2  
RDPTR1  
RDPTR0  
R
0
R
0
R
0
R
0
R
0
R
0
R
0
R
0
Default  
BIT  
MNEMONIC  
RDPTR(7:0)  
NAME  
DESCRIPTION  
7:0  
DMA Read Pointer This register contains 8 LSB bits of 11-bit DMA channel n (n can be 0 or 1) Read Pointer of the  
Isochronous OUT endoint buffer. MCU can read this register anytime. This 11-bit CHn DMA  
Read pointer RDPTR can be used in conjunction with the corresponding 11-bit UBM Write  
Pointer WRPTR to estimate the isochronous OUT endpoint buffer size.  
A.5.2.11DMA Read Pointer (High Byte) (Ch0RdPtrH Address FFB9h) (Ch1RrPtrH Address FFB5h)  
Bit  
7
6
5
4
3
2
1
0
Mnemonic  
Type  
WRPTR10  
WRPTR9  
WRPTR8  
R
0
R
0
R
0
Default  
BIT  
MNEMONIC  
RDPTR(10:8)  
NAME  
DESCRIPTION  
2:0  
DMA Read Pointer This register contains 3 MSB bits of 11-bit channel n (n can be 0 or 1) Read Pointer of the  
Isochronous OUT endoint buffer. MCU can read this register anytime. This 11-bit CHn DMA  
RDPTR can be used in conjunction with the corresponding 11-bit UBM Write Pointer WRPTR to  
estimate the isochronous OUT endpoint buffer size.  
A23  
A.5.3 Adaptive Clock Generator Registers  
This section describes the memory-mapped registers used for two adaptive clock generators for their controls and  
operations.  
A.5.3.1 Adaptive Clock Generator1 Frequency Register (Byte 0) (ACG1FRQ0 Address FFE7h)  
The adaptive clock generator frequency register (byte 0) contains the least significant byte of the 24-bit ACG  
frequency value. The adaptive clock generator frequency registers, ACG1FRQ0, ACG1FRQ1, and ACG1FRQ2,  
contain the 24-bit value used to program the ACG1 frequency synthesizer. The 24-bit value of these three registers  
is used to determine the codec master clock output (MCLKO) signal frequency. See section 2.2.8 for the operation  
details of the adaptive clock generator including instructions for programming the 24-bit ACG frequency value.  
Bit  
7
FRQ7  
R/W  
0
6
FRQ6  
R/W  
0
5
FRQ5  
R/W  
0
4
FRQ4  
R/W  
0
3
FRQ3  
R/W  
0
2
FRQ2  
R/W  
0
1
FRQ1  
R/W  
0
0
FRQ0  
R/W  
0
Mnemonic  
Type  
Default  
BIT  
MNEMONIC  
FRQ(7:0)  
NAME  
ACG frequency  
DESCRIPTION  
7:0  
The ACG frequency bit values are set by the MCU to program the ACG frequency synthesizer to  
obtain the desired codec master clock output (MCLKO) signal frequency.  
A.5.3.2 Adaptive Clock Generator1 Frequency Register (Byte 1) (ACGFRQ1 Address FFE6h)  
The adaptive clock generator frequency register (byte 1) contains the middle byte of the 24-bit ACG 1 frequency  
value.  
Bit  
7
FRQ15  
R/W  
0
6
FRQ14  
R/W  
0
5
FRQ13  
R/W  
0
4
FRQ12  
R/W  
0
3
FRQ11  
R/W  
0
2
FRQ10  
R/W  
0
1
FRQ9  
R/W  
0
0
FRQ8  
R/W  
0
Mnemonic  
Type  
Default  
BIT  
MNEMONIC  
FRQ(15:8)  
NAME  
ACG frequency  
DESCRIPTION  
7:0  
The ACG frequency bit values are set by the MCU to program the ACG frequency synthesizer to  
obtain the desired codec master clock output (MCLKO) signal frequency.  
A.5.3.3 Adaptive Clock Generator1 Frequency Register (Byte 2) (ACG1FRQ2 Address FFE5h)  
The adaptive clock generator frequency register (byte 2) contains the most significant byte of the 24-bit ACG  
frequency value.  
Bit  
7
FRQ23  
R/W  
0
6
FRQ22  
R/W  
0
5
FRQ21  
R/W  
0
4
FRQ20  
R/W  
0
3
FRQ19  
R/W  
0
2
FRQ18  
R/W  
0
1
FRQ17  
R/W  
0
0
FRQ16  
R/W  
0
Mnemonic  
Type  
Default  
BIT  
MNEMONIC  
FRQ(23:16)  
NAME  
ACG frequency  
DESCRIPTION  
7:0  
The ACG frequency bit values are set by the MCU to program the ACG frequency synthesizer to  
obtain the desired codec master clock output (MCLKO) signal frequency.  
A24  
A.5.3.4 Adaptive Clock Generator1 MCLK Capture Register (Low byte)  
(ACG1CAPL Address FFE4h)  
The adaptive clock generator MCLK capture register (low byte) contains the least significant byte of the 16-bit codec  
master clock (MCLK) signal cycle count that is captured each time a USB start of frame (SOF) occurs. The value of  
a16-bit free running counter, which is clocked with the MCLK signal, is captured at the beginning of each USB frame.  
The source of the MCLK signal used to clock the 16-bit timer can be selected to be either the MCLKO signal or the  
MCLKO2 signal. See section 2.2.10 for the operation details of the adaptive clock generator.  
Bit  
7
CAP7  
R
6
CAP6  
R
5
CAP5  
R
4
CAP4  
R
3
CAP3  
R
2
CAP2  
R
1
CAP1  
R
0
CAP0  
R
Mnemonic  
Type  
Default  
0
0
0
0
0
0
0
0
BIT  
MNEMONIC  
CAP(7:0)  
NAME  
ACG MCLK capture  
DESCRIPTION  
7:0  
The ACG MCLK capture bit values are updated by hardware each time a USB start of frame  
occurs. This register contains the least signification byte of the 16-bit value.  
A.5.3.5 Adaptive Clock Generator1 MCLK Capture Register (High-byte)  
(ACGCAPH Address FFE3h)  
The adaptive clock generator MCLK capture register (high byte) contains the most significant byte of the 16-bit codec  
master clock (MCLK) signal cycle count that is captured each time a USB start of frame (SOF) occurs.  
Bit  
7
6
5
4
3
2
1
CAP9  
R
0
CAP8  
R
Mnemonic  
Type  
CAP15  
CAP14  
CAP13  
CAP12  
CAP11  
CAP10  
R
0
R
0
R
0
R
0
R
0
R
0
Default  
0
0
BIT  
MNEMONIC  
CAP(15:8)  
NAME  
ACG MCLK capture  
DESCRIPTION  
7:0  
The ACG MCLK capture bit values are updated by hardware each time a USB start of frame  
occurs. This register contains the most signification byte of the 16-bit value.  
A.5.3.6 Adaptive Clock Generator2 Frequency Register (Byte 0) (ACG2FRQ0 Address FFF9h)  
The adaptive clock generator control registers ACG2FRQ0, ACG2FRQ1, and ACG2FRQ2, contain the 24-bit value  
used to program the ACG2 frequency synthesizer.  
Bit  
7
FRQ7  
R/W  
0
6
FRQ6  
R/W  
0
5
FRQ5  
R/W  
0
4
FRQ4  
R/W  
0
3
FRQ3  
R/W  
0
2
FRQ2  
R/W  
0
1
FRQ1  
R/W  
0
0
FRQ0  
R/W  
0
Mnemonic  
Type  
Default  
BIT  
MNEMONIC  
FRQ(7:0)  
NAME  
ACQ2 frequency  
DESCRIPTION  
7:0  
The ACG2 frequency bit values are set by the MCU to program the ACG2 frequency  
synthesizer.  
A.5.3.7 Adaptive Clock Generator Frequency Register (Byte 1) (ACG2FRQ1 Address FFF8h)  
Bit  
7
FRQ15  
R/W  
0
6
FRQ14  
R/W  
0
5
FRQ13  
R/W  
0
4
FRQ12  
R/W  
0
3
FRQ11  
R/W  
0
2
FRQ10  
R/W  
0
1
FRQ9  
R/W  
0
0
FRQ8  
R/W  
0
Mnemonic  
Type  
Default  
BIT  
MNEMONIC  
FRQ(15:8)  
NAME  
ACQ2 frequency  
DESCRIPTION  
7:0  
The ACG2 frequency bit values are set by the MCU to program the ACG2 frequency  
synthesizer.  
A25  
A.5.3.8 Adaptive Clock Generator Frequency Register (Byte 2) (ACG2FRQ2 Address FFF7h)  
Bit  
7
FRQ23  
R/W  
0
6
FRQ22  
R/W  
0
5
FRQ21  
R/W  
0
4
FRQ20  
R/W  
0
3
FRQ19  
R/W  
0
2
FRQ18  
R/W  
0
1
FRQ17  
R/W  
0
0
FRQ16  
R/W  
0
Mnemonic  
Type  
Default  
BIT  
MNEMONIC  
FRQ(23:16)  
NAME  
ACQ2 frequency  
DESCRIPTION  
The ACG2 frequency bit values are set by the MCU to program the ACG2 frequency synthesizer.  
7:0  
A.5.3.9 Adaptive Clock Generator2 Divider Control Register (ACG2DCTL Address FFF6h)  
Bit  
7
DIVM3  
R/W  
0
6
DIVM2  
R/W  
0
5
DIVM1  
R/W  
0
4
DIVM0  
R/W  
0
3
2
1
0
Mnemonic  
Type  
R
0
R
0
R
0
R
0
Default  
BIT  
MNEMONIC  
NAME  
DESCRIPTION  
7:0  
DIVM(3:0)  
Divide by M value The divide by M control bits are set by the MCU to program the ACG2 frequency divider.  
0000b = divide by 1, 0001b = divide by 2, ... 1111b = divide by 16  
3:0  
Reserved  
Reserved for future use.  
A.5.3.10 Adaptive Clock Generator1 Divider Control Register (ACG1DCTL Address FFE2h)  
Bit  
7
DIVM3  
R/W  
0
6
DIVM2  
R/W  
0
5
DIVM1  
R/W  
0
4
DIVM0  
R/W  
0
3
2
DIV12  
R/W  
0
1
DIV11  
R/W  
0
0
DIV10  
R/W  
0
Mnemonic  
Type  
R
0
Default  
BIT  
MNEMONIC  
NAME  
DESCRIPTION  
7:0  
DIVM(3:0)  
Divide by M value The divide by M control bits are set by the MCU to program the ACG1 frequency divider.  
0000b = divide by 1, 0001b = divide by 2, ... 1111b = divide by 16  
2:0  
DIVI(2:0)  
Divide by I value  
The divide by I control bits are set by the MCU to program the MCKLKI divider.  
000b = divide by 1, 001b = divide by 2, ..., 111b = divide by 8  
A26  
A.5.3.11 Adaptive Clock Generator Control Register (ACGCTL Address FFE1h)  
Bit  
7
6
5
4
3
2
DIVEN  
R/W  
0
1
0
Mnemonic  
Type  
MCLKO2EN MCLKO2EN  
MCLKO1S1 MCLKO1S0  
MCLKO2S1 MCLKO2S0  
R/W  
0
R/W  
0
R
0
R/W  
0
R/W  
0
R/W  
0
R/W  
0
Default  
BIT  
MNEMONIC  
NAME  
DESCRIPTION  
7
MCLKO2EN  
MCLKO1EN  
MCLKO1S1  
MCLKO2 Output enable This bit is set to 1 by the MCU to enable the MCLKO2 signal to be an output from the  
TAS1020device. If the MCLKO2 signal is not being used, then the MCU can clear this bit to  
0 to disable the output.  
6
4
MCLKO1 Output enable This bit is set to 1 by the MCU to enable the MCLKO1 signal to be an output from the  
TAS1020device. If the MCLKO1 signal is not being used, then the MCU can clear this bit to  
0 to disable the output.  
MCLKO1 Clock select  
ThisbitinconjunctionwithMCLKO1S0, selectstheMCLKO1. RefertoACGblockdiagram.  
MCLKO1S1  
MCLKO1S0  
MCLKO1  
0
x
1
0
1
0
acg_clk (after %M)  
mclki (after %I)  
acg2_clk(after %M)  
3
2
MCLKO1S0  
DIVEN  
MCLKO1 Clock select  
Divider Enable  
Refer to the description above.  
The Divider Enable bit is set to 1 by the MCU to enable the Divide-by-I and Divide-by-M  
circuits.  
1
MCLKO2  
MCLKO1 Clock select  
ThisbitinconjunctionwithMCLKO2S0, selectstheMCLKO2. RefertoACGblockdiagram.  
MCLKO2S1  
MCLKO2S0  
MCLKO2  
0
x
1
0
1
0
acg_clk (after %M)  
mclki (after %I)  
acg2_clk(after %M)  
0
MCLKO2S0  
MCLKO2 Clock select  
Refer to the description above.  
A.5.4 Codec Port Interface Registers  
This section describes the memory-mapped registers used for the codec port interface control and operation. The  
codec port interface has a set of ten registers. Note that the four codec port interface configuration registers can only  
be written to by the MCU if the codec port enable bit (CPTEN) in the global control register is a 0.  
A.5.4.1 Codec Port Interface Configuration Register 1 (CPTCNF1 Address FFE0h)  
The codoec port interface configuration register 1 is used to store various control bits for the codec port interface  
operation.  
Bit  
7
NTSL4  
R/W  
0
6
NTSL3  
R/W  
0
5
NTSL2  
R/W  
0
4
NTSL1  
R/W  
0
3
NTSL0  
R/W  
0
2
MODE2  
R/W  
0
1
MODE1  
R/W  
0
0
MODE0  
R/W  
0
Mnemonic  
Type  
Default  
BIT  
MNEMONIC  
NAME  
DESCRIPTION  
7:3  
NTSL(4:0)  
Number of time slots Thenumber of time slots bits are set by the MCU to program the number of time slots per audio  
frame.  
00000b = 1 time slot per frame, 00001b = 2 time slots per frame, , 01101 = 14 time slots per  
frame  
2:0  
MODE(2:0)  
Mode select  
The mode select bits are set by the MCU to program the codec port interface mode of  
operation. In addition to selecting the desired mode of operation, the MCU must also program  
the other configuration registers to obtain the correct serial interface format.  
000b = mode 0 - General-purpose mode  
001b = mode 1 - AIC mode  
010b = mode 2 - AC 97 1.X mode  
011b = mode 3 - AC 97 2.X mode  
2
100b = mode 4 - I S mode 1 OUT and 2 IN at same frequency  
2
101b = mode 5 - I S mode 1 OUT and 1 IN at different frequencies  
A27  
A.5.4.2 Codec Port Interface Configuration Register 2 (CPTCNF2 Address FFDFh)  
The codec port interface configuration register 2 is used to store various control bits for the codec port interface  
operation.  
Bit  
7
TSL0L1  
R/W  
0
6
TSL0L0  
R/W  
0
5
BPTSL2  
R/W  
0
4
BPTSL1  
R/W  
0
3
BPTSL0  
R/W  
0
2
TSLL2  
R/W  
0
1
TSLL1  
R/W  
0
0
TSLL0  
R/W  
0
Mnemonic  
Type  
Default  
BIT  
MNEMONIC  
NAME  
DESCRIPTION  
7:6  
TSL0L(1:0)  
Time slot 0 length  
The time slot 0 Length bits are set by the MCU to program the number of serial clock  
(CSCLK) cycles for time slot 0.  
00b = CSCLK cycles for time slot 0 same as other time slots  
01b = 8 CSCLK cycles for time slot 0  
10b = 16 CSCLK cycles for time slot 0  
11b = 32 CSCLK cycles for time slot 0  
5:3  
BPTSL(2:0)  
Data bits per time slot  
The data bits per time slot bits are set by the MCU to program the number of data bits per  
audio time slot. Note that this value in not used for the secondary communication address  
and data time slots.  
000b = 8 data bits per time slot  
001b = 16 data bits per time slot  
010b = 18 data bits per time slot  
011b = 20 data bits per time slot  
100b = 24 data bits per time slot  
101b = 32 data bits per time slot  
110b = reserved  
111b = reserved  
2:0  
TSLL(2:0)  
Time slot length  
ThetimeslotlengthbitsaresetbytheMCUtoprogramthenumberofserialclock(CSCLK)  
cycles for all time slots except time slot 0.  
000b = 8 CSCLK cycles per time slot  
001b = 16 CSCLK cycles per time slot  
010b = 18 CSCLK cycles per time slot  
011b = 20 CSCLK cycles per time slot  
100b = 24 CSCLK cycles per time slot  
101b = 32 CSCLK cycles per time slot  
110b = reserved  
111b = reserved  
A28  
A.5.4.3 Codec port interface configuration register 3 (CPTCNF3 Address FFDEh)  
The codec port interface configuration register 3 is used to store various control bits for the codec port interface  
operation.  
Bit  
7
DDLY  
R/W  
0
6
TRSEN  
R/W  
0
5
CSCLKP  
R/W  
4
CSYNCP  
R/W  
3
CSYNCL  
R/W  
2
BYOR  
R/W  
0
1
CSCLKD  
R/W  
0
CSYNCD  
R/W  
Mnemonic  
Type  
Default  
1
1
0
0
0
BIT  
MNEMONIC  
NAME  
DESCRIPTION  
7
DDLY  
Data delay  
Thedatadelaybitissettoa1bytheMCUtoprogramaoneCSCLKcycledelayoftheserial  
data output and input signals in reference to the leading edge of the CSYNC signal. The  
MCU must clear this bit to a 0 for no delay between these signals.  
6
5
TRSEN  
3-State enable  
CSCLK polarity  
The3-state enable bit is set to a 1 by the MCU toprogramthehardwareto3-statetheserial  
dataoutputsignalforthetimeslotsduringtheaudioframethatarenotvalid.TheMCUmust  
clear this bit to a 0 to program the hardware to use zero-padding for the serial data output  
signal for time slots during the audio frame that are not valid.  
CSCLKP  
The CSCLK polarity bit is used by the MCU to program the clock edge used for the codec  
port interface frame sync (CSYNC) output signal, codec port interface serial data output  
(CDATO) signal and codec port interface serial data Input (CDATI) signal. When this bit is  
set to a 1, the CSYNC signal will be generated with the negative edge of the codec port  
interface serial clock (CSCLK) signal. Also, when this bit is set to a 1, the CDATO signal is  
generated with the negative edge of the CSCLK signal and the CDATI signal is sampled  
with the positive edge of the CSCLK signal. When this bit is cleared to a 0, the CSYNC  
signal is generated with the positive edge of the CSCLK signal. Also, when this bit is  
cleared to a 0, the CDATO signal is generated with the positive edge of the CSCLK signal  
and the CDATI signal is sampled with the negative edge of the CSCLK signal.  
4
3
CSYNCP  
CSYNCL  
CSYNC polarity  
CSYNC length  
The CSYNC polarity bit is set to a 1 by the MCU to program the polarity of the codec port  
interface frame sync (CSYNC) output signal to be active high. The MCU must clear this bit  
to a 0 to program the polarity of the CSYNC output signal to be active low.  
The CSYNC length bit is set to a 1 by the MCU to program the length of the codec port  
interface frame sync (CSYNC) output signal to be the same number of CSCLK cycles as  
time slot 0. The MCU must clear this bit to a 0 to program the length of the CSYNC output  
signal to be one CSCLK cycle.  
2
BYOR  
Byte order  
The byte order bit is used by the MCU to program the byte order for the data moved by the  
DMAbetweentheUSBend-pointbuffer and the codec port interface. When this bit is set to  
a 1, the byte order of each audio sample is reversed when the data is moved to/from the  
USB end-point buffer. When this bit is cleared to a 0, the byte order of the each audio  
sample is unchanged.  
1
0
CSCLKD  
CSYNCD  
CSCLK direction  
CSYNC direction  
The CSCLK direction bit is set to a 1 by the MCU to program the direction of the codec port  
interface serial clock (CSCLK) signal as an input to the TAS1020 device. The MCU must  
clear this bit to a 0 to program the direction of the CSCLK signal as an output from the  
TAS1020 device.  
The CSYNC direction bit is set to a 1 by the MCU to program the direction of the codec port  
interface frame sync (CSYNC) signal as an input to the TAS1020 device. The MCU must  
clear this bit to a 0 to program the direction of the CSYNC signal as an output from the  
TAS1020 device.  
A29  
A.5.4.4 Codec Port Interface Configuration Register 4 (CPTCNF4 Address FFDDh)  
The codec port interface configuration register 4 is used to store various control bits for the codec port interface  
operation.  
Bit  
7
ATSL3  
R/W  
0
6
ATSL2  
R/W  
0
5
ATSL1  
R/W  
0
4
ATSL0  
R/W  
0
3
CLKS  
R/W  
0
2
DIVB2  
R/W  
0
1
DIVB1  
R/W  
0
0
DIVB0  
R/W  
0
Mnemonic  
Type  
Default  
BIT  
MNEMONIC  
NAME  
DESCRIPTION  
7:4  
ATSL(3:0)  
Command/status address/data The command/status address/data time slot bits are set by the MCU to program the  
time slot  
timeslotstobeusedforthesecondarycommunicationaddressanddatavalues. For  
the AC 97 modes of operation, this value must be set to 0001b which results in time  
slot 1 being used for the address and time slot 2 being used for the data. For the AIC  
and general-purpose modes of operation, the same time slot is used for both  
address and data. For the AIC mode of operation, for example, this value must be  
set to 0111b which results in time slot 7 being used for both the address and data.  
0000b = time slot 0, 0001b = time slot 1, , 1111b = time slot 15  
3
CptBlk  
C-port bulk mode  
Divide by B value  
ThisbitisusedwhenC-portisinMode0. Inthismode, MCUorDMAcansendISOor  
BULK data to the C-port. If this bit is cleared to 0, the C-port sync/clocks are free  
running once C-port is enabled. If this bit is set to 1, DMA controls the C-port  
sync/clocks. The sync/clocks are active only when valid data is present in a codec  
frame.  
2:0  
DIVB(2:0)  
ThedividebyBcontrolbitsaresetbytheMCUtoprogramtheCSCLKsignaldivider.  
000b = disabled  
001b = divide by 2  
010b = divide by 3  
011b = divide by 4  
100b = divide by 5  
101b = divide by 6  
110b = divide by 7  
111b = divide by 8  
A30  
A.5.4.5 Codec Port Interface Control and Status Register (CPTCTL Address FFDCh)  
The codec port interface control and status register contains various control and status bits used for the codec port  
interface operation.  
Bit  
7
RXF  
R
6
RXIE  
R/W  
0
5
TXE  
R
4
3
R
0
2
CID1  
R/W  
0
1
CID0  
R/W  
0
0
CRST  
R/W  
0
Mnemonic  
Type  
TXIE  
R/W  
0
Default  
0
0
BIT  
MNEMONIC  
NAME  
DESCRIPTION  
7
RXF  
Receive data register full  
The receive data register full bit is set to a 1 by hardware when a new data value has  
been received into the receive data register from the codec device. This bit is read  
only and is cleared to a 0 by hardware when the MCU reads the new value from the  
receive data register. Note that when the MCU writes to the interrupt vector register,  
the codec port interface receive data register full interrupt is cleared but this status  
bit is not cleared at that time.  
6
5
RXIE  
TXE  
Receive interrupt enable  
The receive interrupt enable bit is set to a 1 by the MCU to enable the C-port receive  
data register full interrupt.  
Transmit data register empty  
Transmit interrupt enable  
The transmit data register empty bit is set to a 1 by hardware when the data value in  
thetransmitdataregisterhasbeensenttothecodecdevice. Thisbitisreadonlyand  
is cleared to a 0 by hardware when a new data byte is written to the transmit data  
register by the MCU. Note that when the MCU writes to the interrupt vector register,  
the codec port interface transmit data register empty interrupt is cleared but this  
status bit is not cleared at that time.  
4
TXIE  
The transmit interrupt enable bit is set to a 1 by the MCU to enable the codec port  
interface transmit data register empty interrupt.  
3
Reserved  
Codec ID  
Reserved for future use  
2:1  
CID(1:0)  
The codec ID bits are used by the MCU to select between the primary codec device  
and the secondary codec device for secondary communication in the AC 97 modes  
of operation. When the bits are cleared to 00, the primary codec device is selected.  
When the bits are set to 01, 10or 11, the secondary codec device is selected.  
Note that when only a primary codec device is connected to the TAS1020, the bits  
remain cleared to 00.  
0
CRST  
Codec reset  
The codec reset bit is used by the MCU to control the codec port interface reset  
(CRESET) output signal from the TAS1020 device. When this bit is set to a 1, the  
CRESETsignalisahigh. Whenthisbitisclearedtoa0, theCRESET signal is active  
low. At power up this bit is cleared to a 0, which means the CRESET output signal is  
active low and remains active low until the MCU sets this bit to a 1. Note that this  
2
output signal is not used in the I S modes of operation.  
A31  
A.5.4.6 Codec Port Interface Address Register (CPTADR @ Address FFDBh)  
The codec port interface address register contains the read/write control bit and address bits used for secondary  
communication between the TAS1020 MCU and the codec device. For write transactions to the codec, the 8-bit value  
in this register is sent to the codec in the designated time slot and appropriate bit locations. Note that for the different  
modes of operation, the number of address bits and the bit location of the read/write bit is different. For example, the  
AC 97 modes require 7 address bits and the bit location of the read/write bit to be the most significant bit. The AIC  
mode only requires 4 address bits and the bit location of the read/write bit to be bit 13 of the 16-bits in the time slot.  
The MCU must load the read/write and address bits to the correct bit locations within this register for the different  
modes of operation. Shown below are the read/write control bit and address bits for the AC 97 mode of operation.  
Bit  
7
6
A6  
R/W  
0
5
A5  
R/W  
0
4
A4  
R/W  
0
3
A3  
R/W  
0
2
A2  
R/W  
0
1
A1  
R/W  
0
0
A0  
R/W  
0
Mnemonic  
Type  
R/W  
R/W  
0
Default  
BIT  
MNEMONIC  
NAME  
DESCRIPTION  
7
R/W  
Command/status read/write  
control  
The command/status read/write control bit value is set by the MCU to program the  
type of secondary communication transaction to be done. This bit must be set to a 1  
by the MCU for a read transaction and cleared to a 0 by the MCU for a write  
transaction.  
6:0  
A(6:0)  
Command/status address  
The command/status address value is set by the MCU to program the codec device  
control/status register address to be accessed during the read or write transaction.  
The command/status address value is updated by hardware with the control/status  
register address value received from the codec device for read transactions.  
A.5.4.7 Codec Port Interface Data Register (Low Byte) (CPTDATL Address FFDAh)  
The codec port interface data register (low byte) contains the least significant byte of the 16-bit command or status  
data value used for secondary communication between the TAS1020 MCU and the codec device. Note that for  
general-purpose mode or AIC mode only an 8-bit data value is used for secondary communication.  
Bit  
7
D7  
R/W  
0
6
D6  
R/W  
0
5
D5  
R/W  
0
4
D4  
R/W  
0
3
D3  
R/W  
0
2
D2  
R/W  
0
1
D1  
R/W  
0
0
D0  
R/W  
0
Mnemonic  
Type  
Default  
BIT  
MNEMONIC  
D(7:0)  
NAME  
DESCRIPTION  
7:0  
Command/status data  
The command/status data value is set by the MCU with the command data to be  
transmitted to the codec device for write transactions. The command/status data  
valueisupdatedbyhardwarewiththestatusdatareceivedfromthecodecdevicefor  
read transactions.  
A32  
A.5.4.8 Codec Port Interface Data Register (High Byte) (CPTDATH Address FFD9h)  
The codec port interface data register (high byte) contains the most significant byte of the 16-bit command or status  
data value used for secondary communication between the TAS1020 MCU and the codec device. This register is not  
used for general-purpose mode or AIC mode since these modes only support an 8-bit data value for secondary  
communication.  
Bit  
7
6
5
4
3
2
1
D9  
R/W  
0
0
D8  
R/W  
0
Mnemonic  
Type  
D15  
R/W  
0
D14  
R/W  
0
D13  
R/W  
0
D12  
R/W  
0
D11  
R/W  
0
D10  
R/W  
0
Default  
BIT  
MNEMONIC  
D(15:8)  
NAME  
DESCRIPTION  
7:0  
Command/status data  
The command/status data value is set by the MCU with the command data to be  
transmitted to the codec device for write transactions. The command/status data  
valueisupdatedbyhardwarewiththestatusdatareceivedfromthecodecdevicefor  
read transactions.  
A.5.4.9 Codec Port Interface Valid Time Slots Register (Low Byte) (CPTVSLL Address FFD8h)  
The codec port interface valid time slots register (low byte) contains the control bits used to specify which time slots  
in the audio frame contain valid data. This register is only used in the AC 97 modes of operation.  
Bit  
7
VTSL8  
R/W  
0
6
VTSL9  
R/W  
0
5
VTSL10  
R/W  
0
4
VTSL11  
R/W  
0
3
VTSL12  
R/W  
0
2
R
0
1
R
0
0
R
0
Mnemonic  
Type  
Default  
BIT  
MNEMONIC  
NAME  
Valid time slot  
DESCRIPTION  
7:3  
VTSL(8:12)  
The valid time slot bits are set to a 1 by the MCU to define which time slots in the  
audio frame contain valid data. The MCU must clear to a 0 the bits corresponding to  
time slots that do not contain valid data. Note that bits 7 to 3 of this register  
correspond to time slots 8 to 12.  
2:0  
Reserved  
Reserved for future use  
A33  
A.5.4.10 Codec Port Interface Valid Time Slots Register (High Byte) (CPTVSLH Address FFD7h)  
The codec port interface valid time slots register (high byte) contains the control bits used to specify which time slots  
in the audio frame contain valid data. In addition the valid frame, primary codec ready and secondary codec ready  
bits are contained in this register. This register is only used in the AC 97 modes of operation.  
Bit  
7
VF  
R/W  
0
6
5
4
VTSL3  
R/W  
0
3
VTSL4  
R/W  
0
2
VTSL5  
R/W  
0
1
VTSL6  
R/W  
0
0
VTSL7  
R/W  
0
Mnemonic  
Type  
PCRDY  
SCRDY  
R
0
R
0
Default  
BIT  
MNEMONIC  
NAME  
DESCRIPTION  
7
VF  
Valid frame  
The valid frame bit is set to a 1 by the MCU to indicate that the current audio frame  
contains at least one time slot with valid data. The MCU must clear this bit to a 0 to  
indicate that the current audio frame does not contain any time slots with valid data.  
6
5
PCRDY  
SCRDY  
Primary codec ready  
The primary codec ready bit is updated by hardware each audio frame based on the  
value of bit 15 in time slot 0 of the incoming serial data from the primary codec. This  
bit is set to a 1 to indicate the primary codec is ready for operation.  
Secondary codec ready  
The secondary codec ready bit is updated by hardware each audio frame based on  
thevalueofbit15intimeslot0oftheincomingserialdatafromthesecondarycodec.  
This bit is set to a 1 to indicate the secondary codec is ready for operation. Note that  
this bit is only used if a secondary codec is connected to the TAS1020 device.  
4:0  
VTSL(3:7)  
Valid time slot  
The valid time slot bits are set to a 1 by the MCU to define which time slots in the  
audio frame contain valid data. The MCU must clear to a 0 the bits corresponding to  
time slots that do not contain valid data. Note that bits 4 to 0 of this register  
correspond to time slots 3 to 7.  
A.5.4.11 Codec Port Receive Interface Configuration Register 2 (CPTRXCNF2 Address FFD6h)  
2
The codec port receive interface configuration register2 is only used in I S Mode 5.  
Bit  
7
6
5
BPTSL2  
R/W  
0
4
BPTSL1  
R/W  
0
3
BPTSL0  
R/W  
0
2
TSLL2  
R/W  
0
1
TSLL1  
R/W  
0
0
TSSL0  
R/W  
0
Mnemonic  
Type  
R
0
R
0
Default  
BIT  
MNEMONIC  
BPTSL(2:0)  
NAME  
DESCRIPTION  
5:3  
Data bits per time slot.  
ThedatabitspertimeslotbitsaresetbytheMCUtoprogramthenumberofdatabits  
peraudiotimeslot. Notethatthisvalueinnotusedforthesecondarycommunication  
address and data time slots.  
000b = 8 data bits per time slot  
001b = 16 data bits per time slot  
010b = 18 data bits per time slot  
011b = 20 data bits per time slot  
100b = 24 data bits per time slot  
101b = 32 data bits per time slot  
110b = reserved  
2:0  
TSSL(2:0)  
Time slot length  
The time slot length bits are set by the MCU to program the number of serial clock  
(CSCLK2) cycles for all time slots except time slot 0.  
000b = 8 CSCLK cycles per time slot  
001b = 16 CSCLK cycles per time slot  
010b = 18 CSCLK cycles per time slot  
011b = 20 CSCLK cycles per time slot  
100b = 24 CSCLK cycles per time slot  
101b = 32 CSCLK cycles per time slot  
110b = reserved  
111b= reserved  
A34  
A.5.4.12 Codec Port Receive Interface Configuration Register 3 (CPTRXCNF3 Address FFD5h)  
2
The codec port receive interface configuration register3 is only used in I S Mode 5.  
Bit  
7
DDLY  
R/W  
0
6
TRSEN  
R/W  
0
5
CSCLKP  
R/W  
4
CSYNCP  
R/W  
3
CSYNCL  
R/W  
2
BYOR  
R/W  
0
1
CSCLKD  
R/W  
0
CSYNCD  
R/W  
Mnemonic  
Type  
Default  
1
1
0
0
0
BIT  
MNEMONIC  
NAME  
DESCRIPTION  
7
DDLY  
Data delay  
The data delay bit is set to 1 by the MCU to program a one CSCLK2 cycle delay of the serial data  
output and input signals in reference to the leading edge of the CSYNC2 signal. The MCU must  
clear this bit to a 0 for no delay between these signals.  
6
5
TRSEN  
Tri-state enable  
The 3-state enable bit is set to a 1 by the MCU to program the hardware to 3-state the serial data  
outputsignal for time slots during the audio frame that are not valid. The MCU must clear this bit to  
a 0 to program the hardware to use zero-padding for the serial data output signal for time slots  
during the audio frame that are not valid.  
CSCLKP  
CSCLK polarity  
The CSCLK2 polarity bit is used by the MCU to program the clock edge used for the codec Port  
Interface Frame Sync (CSYNC2) output signal and codec Port Interface Serial Data Input  
(CDAT() signal. When this bit is set to a 1, the CSYNC2 signal is generated with the negativeedge  
of the codec Port Interface Serial Clock (CSCLK2) signal. Also, when this bit is set a 1, the CDATI  
signal is sampled with the positive edge of the CLSCLK2 signal. When this bit is cleared to 0, the  
CDATI signal is sampled with the negative edge of the CSCLK2 signal.  
4
3
CSYNCP  
CSYNCL  
CSYNC polarity  
CSYNC length  
TheCSCLK2polaritybitissettoa1bytheMCUtoprogramthepolarityofthecodecPortInterface  
Frame Sync (CSYNC2) output signal to be active high. The MCU must clear this bit to a 0 to  
program the polarity of the CSYNC2 output signal to be active low.  
TheCSCLK2polaritybitissettoa1bytheMCUtoprogramthepolarityofthecodecPortInterface  
Frame Sync (CSYNC2) output signal to be the same number of CSCLK cycles as time slot 0. The  
MCU must clear this bit to a 0 to program the length of the CSYNC2 output signal to be one  
CSCLK2 cycle.  
2
BYOR  
Byte order  
The byte order bit is used by the MCU to program the byte order for the data moved by the DMA  
betweenthe USB end-point buffer and the codec port interface. When this bit is set to a 1, the byte  
order of each audio sample is reversed when the data is moved to/from the USB end-point buffer.  
When this bit is cleared to a 0, the byte order of the each audio sample is unchanged.  
1
0
CSCLKD  
CSYNCD  
CSCLK direction  
The CSCLK2 direction bit is set to a 1 by the MCU to program the direction of the codec port  
interface serial clock (CSCLK2) signal as an input of the TAS1020 device. The MCU must clear  
this bit to a 0 to program the direction of the CSCLK signal as an output from the TAS1020 device.  
CSYNC direction The CSCLK2 direction bit is set to a 1 by the MCU to program the direction of the codec port  
interface frame sync (CSYNC2) signal as an input of the TAS1020 device. The MCU must clear  
this bit to a 0 to program the direction of the CSYNC2 signal as an output from the TAS1020  
device.  
A35  
A.5.4.13 Codec Port Receive Interface Configuration Register 4 (CPTRXCNF4 Address FFD4h)  
2
The codec port receive interface configuration register4 is only used in I S Mode 5.  
Bit  
7
6
5
4
3
2
DIVB2  
R/W  
0
1
DIVB1  
R/W  
0
0
DIVB0  
R/W  
0
Mnemonic  
Type  
R
0
R
0
R
0
R
0
R
0
Default  
BIT  
MNEMONIC  
DIVB(2:0)  
NAME  
DESCRIPTION  
2:0  
Divide by B value  
The divide by B control bits are set by the MCU to program the CSCLK2 signal divider.  
000b = disabled  
001b = divide by 2  
010b = divide by 3  
011b = divide by 4  
100b = divide by 5  
101b = divide by 6  
110b = divide by 7  
111b = divide by 8  
A.5.5 P3 Mask Register  
Mask register for P3 to enable the wake-up function for these pins when the device is in low-power mode.  
A.5.5.1 P3 Mask Register (P3MSKAddress FFCAh)  
Bit  
7
P3MSK7  
R/W  
6
P3MSK6  
R/W  
5
P3MSK5  
R/W  
4
P3MSK4  
R/W  
3
P3MSK3  
R/W  
2
P3MSK2  
R/W  
1
P3MSK1  
R/W  
0
P3MSK0  
R/W  
Mnemonic  
Type  
Default  
0
0
0
0
0
0
0
0
BIT  
MNEMONIC  
P3MSK(7:0)  
NAME  
DESCRIPTION  
7:0  
0 = Unmasked  
1 = Masked  
2
A.5.6 I C Interface Registers  
2
2
This section describes the memory-mapped registers used for the I C Interface control and operation. The I C  
2
interface has a set of four registers. See section 2.2.17 for the operation details of the I C Interface.  
2
A.5.6.1 I C Interface Address Register (I2CADR Address FFC3h)  
2
2
The I C interface address register contains the 7-bit I C slave device address and the read/write transaction control  
bit.  
Bit  
7
A6  
R/W  
0
6
A5  
R/W  
0
5
A4  
R/W  
0
4
A3  
R/W  
0
3
A2  
R/W  
0
2
A1  
R/W  
0
1
A0  
R/W  
0
0
RW  
R/W  
0
Mnemonic  
Type  
Default  
BIT  
MNEMONIC  
NAME  
Address  
DESCRIPTION  
TheaddressbitvaluesaresetbytheMCUtoprogramthe7-bitI Cslaveaddressofthedevice  
to be accessed. Each I C slave device must have a unique address on the I C bus. This  
addressis used to identify the device on the bus to beaccessedandisnottheinternalmemory  
address to be accessed within the device.  
2
7:1  
A(6:0)  
2
2
2
0
RW  
Read/w3rite control  
The read/write control bit value is set by the MCU to program the type of I C transaction to be  
done. This bit must be set to a 1 by the MCU for a read transaction and cleared to a 0 by the  
MCU for a write transaction.  
A36  
2
A.5.6.2 I C Interface Receive Data Register (I2CDATI Address FFC2h)  
2
The I C interface receive data register contains the most recent data byte received from the slave device.  
Bit  
7
RXD7  
R
6
RXD6  
R
5
RXD5  
R
4
3
RXD3  
R
2
RXD2  
R
1
RXD1  
R
0
RXD0  
R
Mnemonic  
Type  
RDXD4  
R
0
Default  
0
0
0
0
0
0
0
BIT  
MNEMONIC  
NAME  
Receive data  
DESCRIPTION  
2
7
RXD(7:0)  
The receive data byte value is updated by hardware for each data byte received from the I C  
slave device.  
2
A.5.6.3 I C Interface Transmit Data Register (I2CDATO Address FFC1h)  
2
The I C interface transmit data register contains the next address or data byte to be transmitted to the slave device  
in accordance with the protocol. Note that for both read and write transactions, the internal register or memory  
address of the slave device being accessed must be transmitted to the slave device.  
Bit  
7
TXD7  
W
6
TXD6  
W
5
TXD5  
W
4
TXD4  
W
3
TXD3  
W
2
TXD2  
W
1
TXD1  
W
0
TXD0  
W
Mnemonic  
Type  
Default  
0
0
0
0
0
0
0
0
BIT  
MNEMONIC  
TXD(7:0)  
NAME  
Transmit data  
DESCRIPTION  
The transmit data byte value is set by the MCU for each address or data byte to be transmitted to  
7:0  
2
the I C slave device.  
A37  
2
A.5.6.4 I C Interface Control and Status Register (I2CCTL Address FFC0h)  
2
2
The I C interface control and status register contains various control and status bits used for the I C interface  
operation.  
Bit  
7
RXF  
R
6
RXIE  
R/W  
0
5
4
3
TXE  
R
2
1
STPRD  
R/W  
0
0
STPWR  
R/W  
0
Mnemonic  
Type  
ERR  
R/W  
0
FRQ  
R/W  
0
TXIE  
R/W  
0
Default  
0
0
BIT  
MNEMONIC  
NAME  
DESCRIPTION  
7
RXF  
Receive data register full  
The receive data register full bit is set to a 1 by hardware when a new data byte has  
been received into the receive data register from the slave device. This bit is read  
only and is cleared to a 0 by hardware when the MCU reads the new byte from the  
receive data register. Note that when the MCU writes to the interrupt vector register,  
2
theI Creceivedataregisterfullinterruptisclearedbutthisstatusbitisnotclearedat  
that time.  
2
6
5
4
RXIE  
ERR  
FRQ  
Receive interrupt enable  
Error condition  
The receive interrupt enable bit is set to a 1 by the MCU to enable the I C receive  
data register full interrupt.  
The error condition bit is set to a 1 by hardware when the slave device does not  
respond. This bit is read/write and can only be cleared by the MCU.  
2
Frequency select  
The frequency select bit is used by the MCU to program the I C serial clock (SCL)  
outputsignal frequency. A value of 0 sets the SCL frequency to 100 kHz and a value  
of 1 sets the SCL frequency to 400 kHz.  
3
TXE  
Transmit data register empty  
The transmit data register empty bit is set to a 1 by hardware when the data byte in  
the transmit data register has been sent to the slave device. This bit is read only and  
is cleared to a 0 by hardware when a new data byte is written to the transmit data  
register by the MCU. Note that when the MCU writes to the interrupt vector register,  
2
the I C transmit data register empty interrupt is cleared but this status bit is not  
cleared at that time.  
2
2
1
TXIE  
Transmit interrupt enable  
The transmit interrupt enable bit is set to a 1 by the MCU to enable the I C transmit  
data register empty interrupt.  
STPRD  
Stop read transaction  
The stop read transaction bit is set to a 1 by the MCU to enable the hardware to  
generate a stop condition on the I C bus after the next data byte from the slave  
2
device is received into the receive data register. The MCU must clear this bit to a 0  
after the read transaction has concluded.  
0
STPWR  
Stop write transaction  
The stop write transaction bit is set to a 1 by the MCU to enable the hardware to  
generate a stop condition on the I C bus after the data byte in the transmit data  
2
register is sent to the slave device. The MCU must clear this bit to a 0 after the write  
transaction has concluded.  
A38  
A.5.7 Miscellaneous Registers  
This section describes the memory-mapped registers used for the control and operation of miscellaneous functions  
in the TAS1020 device. The registers include the USB out end-point interrupt register, the USB in end-point interrupt  
register, the interrupt vector register, the global control register, and the memory configuration register.  
A.5.7.1 USB Out End-Point Interrupt Register (OEPINT Address FFB4h)  
The USB out end-point interrupt register contains the interrupt pending status bits for the USB out end-points. These  
bits do not apply to the USB isochronous end-points. Also, these bits are read only by the MCU and are used for  
diagnostic purposes only.  
Bit  
7
OEPI7  
R
6
OEPI6  
R
5
OEPI5  
R
4
OEPI4  
R
3
OEPI3  
R
2
OEPI2  
R
1
OEPI1  
R
0
OEPI0  
R
Mnemonic  
Type  
Default  
0
0
0
0
0
0
0
0
BIT  
MNEMONIC  
OEPI(7:0)  
NAME  
DESCRIPTION  
7:0  
Out end-point interrupt  
The out end-point interrupt status bit for a particular USB out end-point is set to a 1 by the  
UBM when a successful completion of a transaction occurs to that out end-point. When a  
bit is set, an interrupt to the MCU will be generated and the corresponding interrupt vector  
will result. The status bit is cleared when the MCU writes to the interrupt vector register.  
These bits do not apply to isochronous out end-points.  
A.5.7.2 USB In End-Point Interrupt Register (IEPINT Address FFB3h)  
The USB in end-point interrupt register contains the interrupt pending status bits for the USB in end-points. These  
bits do not apply to the USB isochronous end-points. Also, these bits are read only by the MCU and are used for  
diagnostic purposes only.  
Bit  
7
IEPI7  
R
6
IEPI6  
R
5
IEPI5  
R
4
IEPI4  
R
3
IEPI3  
R
2
IEPI2  
R
1
IEPI1  
R
0
IEPI0  
R
Mnemonic  
Type  
Default  
0
0
0
0
0
0
0
0
BIT  
MNEMONIC  
IEPI(7:0)  
NAME  
DESCRIPTION  
7:0  
In end-point interrupt  
Theinend-pointinterruptstatusbitforaparticularUSBinend-pointissettoa1bytheUBM  
whenasuccessfulcompletionofatransactionoccurstothatinend-point. Whenabitisset,  
an interrupt to the MCU is generated and the corresponding interrupt vector will result. The  
status bit will be cleared when the MCU writes to the interrupt vector register. These bits do  
not apply to isochronous in end-points.  
A39  
A.5.7.3 Interrupt Vector Register (VECINT Address FFB2H)  
The interrupt vector register contains a 6-bit vector value that identifies the interrupt source for the INT0 input to the  
MCU. All of the TAS1020 internal interrupt sources and the external interrupt input to the device are ORed together  
to generate the internal INT0 signal to the MCU. When there is not an interrupt pending, the interrupt vector value  
will be set to 24h. To clear any interrupt and update the interrupt vector value to the next pending interrupt, the MCU  
should simply write any value to this register. The interrupt priority is fixed in order, ranging from vector value 1Fh with  
the highest priority to vector value 00h with the lowest priority. An exception to this priority is the control endpoint EP0  
which has top priority.  
Bit  
7
R
0
6
R
0
5
IVEC5  
R
4
IVEC4  
R
3
IVEC3  
R
2
IVEC2  
R
1
IVEC1  
R
0
IVEC0  
R
Mnemonic  
Type  
Default  
0
0
0
0
0
0
BIT  
7
MNEMONIC  
NAME  
DESCRIPTION  
Reserved  
Reserved  
Reserved for future use  
Reserved for future use  
6
5:0  
IVEC(5:0)  
Interrupt vector  
00h = USB out end-point 0  
01h = USB out end-point 1  
02h = USB out end-point 2  
03h = USB out end-point 3  
04h = USB out end-point 4  
05h = USB out end-point 5  
06h = USB out end-point 6  
07h = USB out end-point 7  
08h = USB in end-point 0  
09h = USB in end-point 1  
0Ah = USB in end-point 2  
0Bh = USB in end-point 3  
0Ch = USB in end-point 4  
0Dh = USB in end-point 5  
0Eh = USB in end-point 6  
0Fh = USB in end-point 7  
10h = USB setup stage transaction over-write  
11h = Reserved  
12h = USB setup stage transaction  
13h = USB pseudo start-of-frame  
14h = USB start-of-frame  
15h = USB function resume  
16h = USB function suspend  
17h = USB function reset  
18h = C-port receive data register full  
19h = C-port transmit data register empty  
1Ah = Reserved  
1Bh = Reserved  
2
1Ch = I C receive data register full  
2
1Dh = I C transmit data register empty  
1Eh = Reserved  
1Fh = External interrupt input  
20h = DMA Ch.0 interrupt  
21h = DMA Ch.1 interrupt  
22h - 23h = Reserved  
24h = No interrupt pending  
25h 3Fh = Reserved  
A40  
A.5.7.4 Global Control Register (GLOBCTL Address FFB1h)  
The global control register contains various global control bits for the TAS1020 device.  
Bit  
7
MCUCLK  
R/W  
6
XINTEN  
R/W  
0
5
P1PUDIS  
R/W  
4
VREN  
R/W  
0
3
RESET  
R/W  
0
2
LPWR  
R/W  
0
1
P3PUDIS  
R/W  
0
CPTEN  
R/W  
0
Mnemonic  
Type  
Default  
0
0
0
BIT  
MNEMONIC  
NAME  
DESCRIPTION  
7
MCUCLK  
MCU clock select  
The MCU clock select bit is used by the MCU to program the clock frequency to be used for  
the MCU operation.  
0b = 12 MHz and 1b = 24 MHz  
POR (Power On Reset) value is 0 (12 MHz). Setting this bit to 1 will change MCU clock  
frequency to 24 MHz. But, once set, only cleared by master reset.  
6
XINTEN  
External interrupt enable The external interrupt enable bit is set to a 1 by the MCU to enable the use of the external  
interrupt input to the TAS1020 device.  
5
4
3
2
P1PUDIS  
VREN  
Pull-up resistor disable  
VREN  
If set to 1, disables on-chip pullup resistors on P1 GPIO pins.  
Memory-mapped GPIO pin.  
RESET  
LPWR  
RESET  
Memory-mapped GPIO pin.  
Low power mode  
The low power mode disable bit is used by the MCU to put the TAS1020 into a semi-low  
power state. When this bit is cleared to a 0, all USB functional blocks are powered-down.  
For normal operation, the MCU must set this bit to a 1.  
1
0
P3PUDIS  
CPTEN  
Pull-up resistor disable  
Codec port enable  
If set to 1, disables on-chip pullup resistors on P3 GPIO pins.  
The codec port enable bit is set to a 1 by the MCU to enable the operation of the codec port  
interface. Note that the codec port interface configuration registers must be fully  
programmed before this bit is set by the MCU.  
A.5.7.5 Memory Configuration Register (MEMCFG Address FFB0h)  
The memory configuration register contains various bits pertaining to the memory configuration of the TAS1020  
device.  
Bit  
7
6
5
4
REV3  
R
3
REV2  
R
2
REV1  
R
1
REV0  
R
0
SDW  
R/W  
0
Mnemonic  
Type  
MEMTYP  
CODESZ1  
CODESZ0  
R
1
R
0
R
1
Default  
0
0
0
0
BIT  
MNEMONIC  
NAME  
DESCRIPTION  
7
MEMTYP  
Code memory type  
The code memory type bit identifies if the type of memory used for the application program  
codespaceisROMorRAM. FortheTAS1020, an8KbyteRAMisusedandthisbitistiedto1.  
6:5  
CODESZ  
Code space size  
Thecodespacesizebitsidentifythesizeoftheapplicationprogramcodememoryspace. For  
the TAS1020, an 8K byte RAM is used and these bits are tied to 01b.  
00b = 4K bytes, 01b = 8K bytes, 10b = 16K bytes, 11b = 32K bytes  
4:1  
0
REV  
IC revision  
The IC revision bits identify the revision of the IC.  
0000b = Rev. -, 0001b = Rev. A, , 1111b = Rev. F  
SDW  
Shadow the boot ROM The shadow the boot ROM bit is set to a 1 by the MCU to switch the MCU memory  
configuration from boot loader mode to normal operating mode. This must occur after  
completion of the download of the application program code by the boot ROM.  
Reference SDW protection bit in USBCTL register.  
A41  
A42  
Appendix B  
Mechanical Data  
PFB (S-PQFP-G48)  
PLASTIC QUAD FLATPACK  
0,27  
0,50  
M
0,08  
0,17  
36  
25  
37  
24  
48  
13  
0,13 NOM  
1
12  
5,50 TYP  
7,20  
SQ  
Gage Plane  
6,80  
9,20  
SQ  
8,80  
0,25  
0,05 MIN  
0°7°  
1,05  
0,95  
0,75  
0,45  
Seating Plane  
0,08  
1,20 MAX  
4073176/B 10/96  
NOTES: A. All linear dimensions are in millimeters.  
B. This drawing is subject to change without notice.  
C. Falls within JEDEC MS-026  
B1  
B2  
PACKAGE OPTION ADDENDUM  
www.ti.com  
30-Mar-2005  
PACKAGING INFORMATION  
Orderable Device  
Status (1)  
Package Package  
Pins Package Eco Plan (2) Lead/Ball Finish MSL Peak Temp (3)  
Qty  
Type  
Drawing  
TAS1020PFB  
OBSOLETE  
TQFP  
PFB  
48  
TBD  
Call TI  
Call TI  
(1) The marketing status values are defined as follows:  
ACTIVE: Product device recommended for new designs.  
LIFEBUY: TI has announced that the device will be discontinued, and a lifetime-buy period is in effect.  
NRND: Not recommended for new designs. Device is in production to support existing customers, but TI does not recommend using this part in  
a new design.  
PREVIEW: Device has been announced but is not in production. Samples may or may not be available.  
OBSOLETE: TI has discontinued the production of the device.  
(2)  
Eco Plan  
-
The planned eco-friendly classification: Pb-Free (RoHS) or Green (RoHS  
&
no Sb/Br)  
-
please check  
http://www.ti.com/productcontent for the latest availability information and additional product content details.  
TBD: The Pb-Free/Green conversion plan has not been defined.  
Pb-Free (RoHS): TI's terms "Lead-Free" or "Pb-Free" mean semiconductor products that are compatible with the current RoHS requirements  
for all 6 substances, including the requirement that lead not exceed 0.1% by weight in homogeneous materials. Where designed to be soldered  
at high temperatures, TI Pb-Free products are suitable for use in specified lead-free processes.  
Green (RoHS & no Sb/Br): TI defines "Green" to mean Pb-Free (RoHS compatible), and free of Bromine (Br) and Antimony (Sb) based flame  
retardants (Br or Sb do not exceed 0.1% by weight in homogeneous material)  
(3)  
MSL, Peak Temp. -- The Moisture Sensitivity Level rating according to the JEDEC industry standard classifications, and peak solder  
temperature.  
Important Information and Disclaimer:The information provided on this page represents TI's knowledge and belief as of the date that it is  
provided. TI bases its knowledge and belief on information provided by third parties, and makes no representation or warranty as to the  
accuracy of such information. Efforts are underway to better integrate information from third parties. TI has taken and continues to take  
reasonable steps to provide representative and accurate information but may not have conducted destructive testing or chemical analysis on  
incoming materials and chemicals. TI and TI suppliers consider certain information to be proprietary, and thus CAS numbers and other limited  
information may not be available for release.  
In no event shall TI's liability arising out of such information exceed the total purchase price of the TI part(s) at issue in this document sold by TI  
to Customer on an annual basis.  
Addendum-Page 1  

相关型号:

TAS103K035P1A

Hermetically Sealed Axial Lead Solid Tantalum Capacitors
CDE

TAS103K050P1A

Hermetically Sealed Axial Lead Solid Tantalum Capacitors
CDE

TAS103K075P1A

Hermetically Sealed Axial Lead Solid Tantalum Capacitors
CDE

TAS103K100P1A

Hermetically Sealed Axial Lead Solid Tantalum Capacitors
CDE

TAS104K020P1A

Hermetically Sealed Axial Lead Solid Tantalum Capacitors
CDE

TAS104K035P1A

Hermetically Sealed Axial Lead Solid Tantalum Capacitors
CDE

TAS104K050P1A

Hermetically Sealed Axial Lead Solid Tantalum Capacitors
CDE

TAS104K075P1A

Hermetically Sealed Axial Lead Solid Tantalum Capacitors
CDE

TAS104K100P1A

Hermetically Sealed Axial Lead Solid Tantalum Capacitors
CDE

TAS105J006P1A

Hermetically Sealed Axial Lead Solid Tantalum Capacitors
CDE

TAS105J006P1C

Hermetically Sealed Axial Lead Solid Tantalum Capacitors
CDE

TAS105J006P1F

Hermetically Sealed Axial Lead Solid Tantalum Capacitors
CDE