PRODUCTION DATA information is current as of publication date.
Products conform to specifications per the terms of the Texas
Instruments standard warranty. Production processing does not
necessarily include testing of all parameters.
2-3Terminal Assignments for Codec Port Interface AC '97 1.0 Mode ........................................................ 37
2-4Terminal Assignments for Codec Port Interface AC '97 2.0 Mode ........................................................ 38
2-5Terminal Assignments for Codec Port Interface I
2-6SLOT Assignments for Codec Port Interface I
2-7SLOT Assignments for Codec Port Interface I
2-8Channel Order for 6-Channel Application in I
2-9Terminal Assignments for Codec Port Interface General-Purpose Mode................................................. 40
The TUSB3200A 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 TUSB3200A device is fully compatible with the USB Specification Version
1.1 and the USB Audio Class 1.0 Specification.
The TUSB3200A uses a standard 8052 microcontroller unit (MCU) core with on-chip memory. The MCU
memory includes 4K bytes of program memory ROM that contains a boot loader program. At initialization,
the boot loader program downloads the application program code to an 8K RAM from a nonvolatile
memory on the printed-circuit board (PCB). The MCU handles all USB control, interrupt and bulk endpoint
transactions. In addition, the MCU can handle USB isochronous endpoint transactions.
The USB interface includes an integrated transceiver that supports 12 Mb/s (full speed) data transfers. In
addition to the USB control endpoint, support is provided for up to seven in endpoints and seven out
endpoints. The USB endpoints are fully configurable by the MCU application code using a set of endpoint
configuration blocks that reside in on-chip RAM. All USB data transfer types are supported.
The TUSB3200A 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 (AC) '97 Revision 2.X and several Inter-IC sound (I2S) modes.
SLES018A–OCTOBER 2001–REVISED JULY 2010
USB Streaming Controller (STC)
Check for Samples: TUSB3200A
A direct memory access (DMA) controller with four channels is provided for streaming the USB
isochronous data packets to/from the codec port interface. Each DMA channel can support one USB
isochronous endpoint.
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.
Other on-chip MCU peripherals include an Inter-IC control (I2C) serial interface, two general-purpose
input/output (GPIO) ports, and a pulse width modulation (PWM) output.
The TUSB3200A device is implemented in a 3.3-V 0.25 µm CMOS technology. In addition, the use of 5-V
compatible input/output buffers for the codec port interface allows the TUSB3200A device to be connected
to either 3.3-V or 5-V codec devices.
1
1
Please be aware that an important notice concerning availability, standard warranty, and use in critical applications of Texas
Instruments semiconductor products and disclaimers thereto appears at the end of this data sheet.
PRODUCTION DATA information is current as of publication date.
Products conform to specifications per the terms of the Texas
Instruments standard warranty. Production processing does not
necessarily include testing of all parameters.
• Universal Serial Bus (USB)• DMA Controller
– USB Specification version 1.1 compatible– Four DMA channels to support streaming
– 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 7 in endpoints and
7 out endpoints in addition to the control
endpoint
– Data transfer type, data buffer size, single or
double buffering is programmable for each
endpoint
– On-chip adaptive clock generator (ACG)
supports asynchronous, synchronous and– Master only interface
adaptive synchronization modes for
isochronous endpoints
– To support synchronization for streaming
USB audio data, the ACG can be used to
generate the master clock for the codec
• Micro-Controller Unit (MCU)
– Standard 8052 8-bit core
– 4K Bytes of program memory ROM that
contains a boot loader program that loads
the application firmware from external
EEPROM
– 8K 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 endpoint transfers
USB audio data to/from the codec port
interface
– Each channel can support a single USB
isochronous endpoint
– For I2S modes, either a single or multiple
USB isochronous endpoints can be used to
support multiple DACs/ADCs
• Codec Port Interface
– Configurable to support AC'97 1.X, AC'97 2.X
or I2S serial interface formats
– I2S modes can support a combination of up
to 4 DACs and/or 3 ADCs
– Can be configured as a general-purpose
serial interface
• I2C Interface
– Does not support a multimaster bus
environment
– Programmable to 100 kbit/s or 400 kbit/s
data transfer speeds
• Pulse Width Modulation (PWM) Output
– Programmable frequency range from 732.4
Hz to 93.75 kHz
– Programmable duty cycle
• General Characteristics
– Available in a 52-Pin TQFP Package
– On-chip phase-locked loop (PLL) with
internal oscillator is used to generate
internal clocks from a 6 MHz crystal input
P3.014I/OGeneral-purpose I/O port 3 bit 0: A bidirectional I/O port. This signal uses a 5-V compatible
P3.115I/OGeneral-purpose I/O port 3 bit 1: A bidirectional I/O port. This signal uses a 5-V compatible
P3.318I/OGeneral-purpose I/O port 3 bit 3: A bidirectional I/O port. This signal uses a 5-V compatible
P3.419I/OGeneral-purpose I/O port 3 bit 4: A bidirectional I/O port. This signal uses a 5-V compatible
P3.520I/OGeneral-purpose I/O port 3 bit 5: A bidirectional I/O port. This signal uses a 5-V compatible
PLLFILI52IPLL loop filter input: Input to on-chip PLL from external filter components.
PLLFILO1OPLL loop filter output: Output from on-chip PLL to external filter components.
PLLO4OPLL output: The 48-MHz output of the PLL used for diagnostic purposes only. This signal uses a 3.3-V
PLLOEN23IPLL output enable: An input used to enable the PLLO output signal. This signal uses a 5-V compatible
PWMO3OPWM output: Output of the pulse width modulation circuit. PWMO This signal uses a 3.3-V to 5-V
PUR6OUSB data signal plus pullup resistor connect: PUR is used to connect the pullup resistor on the DP
RSTO13OReset output: Output that is active while the master reset input or the USB reset is active. This signal
SCL42OI2C interface serial clock: SCL is the clock signal for the I2C serial interface. This signal uses a 3.3-V to
SDA41I/OI2C interface serial data input/output: SDA is the bidirectional data signal for the I2C serial interface.
TEST11ITest mode enable: Input used to enable the device for the factory test mode. This signal uses a 3.3-V
XINT17IExternal interrupt: An active low input used by external circuitry to interrupt the on-chip 8052 MCU.
XTALI51ICrystal input: Input to the on-chip oscillator from an external 6-MHz crystal.
XTALO50OCrystal Output: Output from the on-chip oscillator to an external 6-MHz crystal.
I/ODESCRIPTION
TTL/LVCMOS input/output buffer with an internal 100-µA active pullup. Can also be used as UART
RxD.
TTL/LVCMOS input/output buffer with an internal 100-µA active pullup. Can also be used as UART
TxD.
TTL/LVCMOS input/output buffer with an internal 100-µA active pullup.
TTL/LVCMOS input/output buffer with an internal 100-µA active pullup.
TTL/LVCMOS input/output buffer with an internal 100-µA active pullup.
TTL/LVCMOS output buffer.
input buffer.
CMOS level shifting output buffer.
signal to 3.3-V or a 3-state. When the DP signal is connected to 3.3-V the host PC should detect the
connection of the TUSB3200A device to the universal serial bus. This signal uses a 3.3-V
TTL/LVCMOS output buffer.
uses a 3.3-V TTL/LVCMOS output buffer.
5-V TTL level shifting open drain output buffer.
This signal uses a 3.3-V to 5-VTTL level shifting open drain output buffer and a 5-V to 3.3-V TTL level
shifting input buffer.
MCUA1018IMCU address bit 10: Multiplexed address bit 10 for external MCU access to the TUSB3200A external
MCUALE19IMCU address latch enable: Address latch enable for external MCU access to the TUSB3200A external
MCUINTO20OMCU interrupt output: Interrupt output to be used for external MCU INTO input signal. All internal
MCURD23IMCU read strobe: Read strobe for external MCU read access to the TUSB3200A external data
MCUWR22IMCU write strobe: Write strobe for external MCU write access to the TUSB3200A external data
MRESET10IMaster reset: An active low asynchronous reset for the device that resets all logic to the default state.
Not Used4OThis pin is not used in the external MCU mode.
PLLFILI52IPLL loop filter input: Input to on-chip PLL from external filter components.
PLLFILO1OPLL loop filter output: Output to on-chip PLL from external filter components.
PUR6OUSB data signal plus pullup resistor connect: PUR is used to connect the pullup resistor on the DP
PWMO3OPWM output: Output of the pulse width modulation circuit. This signal uses a 3.3-V to 5-V CMOS level
RSTO13OReset output: Output that is active while the master reset input or the USB reset is active. This signal
SCL42OI2C interface serial clock: SCL is the clock signal for the I2C serial interface. This signal uses a 3.3-V
SDA41I/OI2C interface serial data input/output: SDA is the bidirectional data signal for the I2C serial interface.
TEST11ITest mode enable: Input used to enable the device for the factory test mode. This signal uses a 3.3-V
XINT17IExternal interrupt: An active low input used by external circuitry to interrupt the on-chip 8052 MCU.
XTALI51ICrystal input: Input to the on-chip oscillator from an external 6-MHz crystal.
XTALO50OCrystal output: Output from the on-chip oscillator to an external 6-MHz crystal.
I/ODESCRIPTION
data memory space.
data memory space.
TUSB3200A interrupt sources are ORed together to generate this output signal.
memory space.
memory space.
This signal uses a 3.3-V TTL/LVCMOS input buffer.
signal to 3.3-V or a 3-state. When the DP signal is connected to 3.3-V the host PC should detect the
connection of the TUSB3200A device to the universal serial bus. This signal uses a 3.3-V
TTL/LVCMOS output buffer.
shifting output buffer.
uses a 3.3-V TTL/LVCMOS output buffer.
to 5-V TTL level shifting open drain output buffer.
This signal uses a 3.3-V to 5-V TTL level shifting open drain output buffer and a 5-V to 3.3-V TTL level
shifting input buffer.
TTL/LVCMOS input buffer.
This signal uses a 5-V compatible input buffer.
SLES018A–OCTOBER 2001–REVISED JULY 2010
1.8Device Operation Modes
The EXTEN and TEST pins define the mode that the TUSB3200A will be in after reset.
1.9Terminal Assignments for Codec Port Interface Modes
The codec port interface has eight modes of operation that support AC97, I2S, 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 tables.
Using an external 6-MHz crystal, the TUSB3200A 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.2Clock 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
TUSB3200A 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 TUSB3200A is transmitting data and is derived from the data when the TUSB3200A is receiving data.
To derive the USB clock when receiving USB data, the TUSB3200A 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 endpoint configuration blocks and
the USB endpoint 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 basically means that the sequencer logic generates grant signals for the MCU,
UBM and DMA channels at a predetermined fixed frequency.
SLES018A–OCTOBER 2001–REVISED JULY 2010
2.1.3Adaptive 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 the sample rate conversion of data by 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 should also use the same master clock signal (MCLKI).
2.1.4USB Transceiver
The TUSB3200A provides an integrated transceiver for the USB port. The transceiver includes a
differential output driver, a differential input receiver and two single ended input buffers. The transceiver
connects to the USB DP and DM signal terminals.
2.1.5USB 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 TUSB3200A 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.
The USB buffer manager provides the control logic that interfaces the SIE to the USB endpoint 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 TUSB3200A device USB peripheral function. In addition, the endpoint address field and
direction signal are decoded to determine which particular USB endpoint is being addressed. Based on
the direction of the USB transaction and the endpoint number, the UBM will either write or read the data
packet to/from the appropriate USB endpoint data buffer.
2.1.7USB 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.8USB 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 TUSB3200A 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.
www.ti.com
2.1.9MCU Core
The TUSB3200A 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 TUSB3200A and handles all USB control, interrupt and bulk endpoint transfers. In
addition, the MCU can also be the source or sink for USB isochronous endpoint transfers.
2.1.10 MCU Memory
In accordance with the industry standard 8052, the TUSB3200A MCU memory is organized into program
memory, external data memory and internal data memory. A 4K byte boot ROM is used to download the
application code to an 8K byte RAM that is mapped to the program memory space. The external data
memory includes the USB endpoint configuration blocks, USB data buffers, and memory mapped
registers. The total external data memory space used is 2K bytes. A total of 256 bytes are provided for the
internal data memory.
2.1.11 USB Endpoint Configuration Blocks and Endpoint Buffer Space
The USB endpoint configuration blocks are used by the MCU to configure and operate the required USB
endpoints for a particular application. In addition to the control endpoint, the TUSB3200A supports a total
of seven in endpoints and seven out endpoints. A set of six bytes is provided for each endpoint to specify
the endpoint type, buffer address, buffer size, and data packet byte count.
The USB endpoint buffer space provided is a total of 1832 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 endpoints to be used, the maximum packet size to be used for each endpoint, and the selection of
single or double buffering.
2.1.12 DMA Controller
Four DMA channels are provided to support the streaming of data for USB isochronous endpoints. Each
DMA channel can support one USB isochronous endpoint, either in or out. The DMA channels are used to
stream data between the USB endpoint data buffers and the codec port interface. The USB endpoint
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.
The TUSB3200A provides a configurable full-duplex bidirectional serial interface that can connect to a
codec or another device for streaming USB Isochronous data. The interface can be configured to support
several different industry standard protocols, including AC '97 1.X, AC '97 2.X, and I2S.
2.1.14 I2C Interface
The I2C interface logic provides a two-wire serial interface that can be used by the 8052 MCU to access
other ICs. The TUSB3200A is an I2C 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. The
protocol supports 8-bit or 16-bit addressing for accessing the I2C slave device memory locations.
2.1.15 Pulse Width Modulation (PWM) Output
The TUSB3200A provides a pulse width modulation output with programmable frequency and pulse width.
The frequency can be programmed from 732 Hz to 93.7 kHz with an 8-bit register. The pulse width of the
output signal is set with a 16-bit register.
2.1.16 General-Purpose IO Ports (GPIO)
The TUSB3200A provides two general-purpose IO ports that are controlled by the internal 8052 MCU. The
two ports, port 1 and port 3, are 8-bits and 5-bits, respectively. Note that port 3 bit locations 2, 6, and 7
have been used in the TUSB3200A for other functionality. Therefore these three bit locations are not
available for GPIO use. Port 3 bit location 2 has been used as the external interrupt (XINT) input to the
TUSB3200A. Port 3 bit locations 6 and 7 have been used as the external MCU write strobe and read
strobe inputs for the external MCU mode of operation.
SLES018A–OCTOBER 2001–REVISED JULY 2010
Each bit 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 pullups are not, strictly speaking, resistors;
they are 100-µA pullup active terminators). The pullup resistors on the GPIO pins can be disabled using
the PUDIS bit in the global control register.
2.1.16.1 External Pullup Macro
This is the equivalent circuit of the pullup "resistor", from the silicon library used to implement the
TUSB3200A.
Logic Symbol (Positive Logic)
Table 2-1. Electrical Characteristics of Pullup Resistors
PARAMETERTEST CONDITIONSMINTYPMAX UNIT
I
FIInput loading factor TAP1.65pF
FIInput loading factor PWRDN2.50SL
C
(1) When PWRDN = H, the current source is turned off.
The interrupt logic monitors the various conditions that can cause an interrupt and asserts the interrupt 0
(INT0) input to the 8052 MCU accordingly. All of the TUSB3200A internal interrupt sources and the
external interrupt (XINT) input are ORed together to generate the INT0 signal. An interrupt vector register
is provided that is used by the MCU to identify the interrupt source.
2.1.18 Reset Logic
An external master reset (MRESET) input signal that is asynchronous to the internal clocks is used to
reset the TUSB3200A logic. In addition to the master reset, the TUSB3200A logic can be reset with the
USB reset from the host PC. The TUSB3200A 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.2Device Operation
The operation of the TUSB3200A is explained in the following sections. For additional information on USB,
see the universal serial bus Specification version 1.1.
2.2.1Clock Generation
The TUSB3200A 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.
www.ti.com
2.2.2Device Initialization
After a power-on reset is applied to the TUSB3200A device, the 8052 MCU will execute a boot loader
program from the 4k or 8k byte boot ROM mapped to the program memory space. During device
initialization, the boot loader program downloads the application program code from an external EEPROM
through the I2C interface. This requires that a binary image of the application code be written to the 8K
byte code RAM in the TUSB3200A device.
All memory mapped registers are initialized to a default value as defined in Section A, MCU Memory andMemory- Mapped Registers. The TUSB3200A device powers up with a default function address of zero
and disconnected from the USB.
2.2.2.1Boot 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 TUSB3200A will remain disconnected from the USB. When the code download is
complete, execution of the application code should connect the TUSB3200A to the USB. In this situation,
the TUSB3200A will enumerate using the vendor ID and product ID contained in the application code.
An EEPROM header precedes the application code in the EEPROM device. The bootloader uses the
information in the header as it loads the application code into RAM. Table 2-2 shows the format and
information contained in the header.
OFFSETTYPESIZEVALUE
0Signature40x04513200
4Header size1Header size
5Version1Firmware version
61
EEPROM type
71
Data type
8Data size2Data payload only size
102Check sum of the data payload beginning at location Check Sum
The signature field is used for the detection of a EEPROM device connected to the TUSB3200A. 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). The datasize field holds the 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.3Application 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 that converts a file in Intel
hexidecimal format to a binary image data file and appends it to the header.
2.2.2.4EEPROM Device Type
The TUSB3200A boot loader program supports several different types of serial EEPROM devices. The
boot loader program will automatically identify the EEPROM type from the header information and use the
correct serial interface protocol accordingly. The boot loader program uses an I2C slave device address of
A0h for the serial EEPROM device.
These EEPPROM devices require an I2C device address in addition to a two byte data word address.
These devices require the full 7-bit I2C 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 don't care
bits. The EEPROM types supported are: 24C32 and 24C64
All of these EEPROM devices can be used for storing and loading application code. However most
applications will use devices which are capable of storing up to 8K bytes of program code.
2.2.3USB Enumeration
USB enumeration is accomplished by interaction between the host PC software and the TUSB3200A
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 TUSB3200A 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 TUSB3200A device to the USB. When this bit is set to a 1, the USB data plus pullup resistor
(PUR) output signal is enabled, which will connect the pullup on the PCB to the TUSB3200A 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 by a USB reset. The shadow the boot ROM (SDW) bit is set to a 1 by the MCU to switch the
MCU memory configuration 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 TUSB3200A device will also be active when a USB
reset occurs. This bit is not affected by USB reset.
www.ti.com
2.2.4USB Reset
The TUSB3200A can detect a USB reset condition. When the reset occurs, the TUSB3200A responds by
setting the function reset (RSTR) bit in the USB status register (USBSTA). If the corresponding function
reset bit in the USB interrupt mask 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 this bit is set, the reset output (RSTO) signal
from the device will also be active when a USB reset occurs. This bit is not affected by USB reset.
2.2.5USB Suspend and Resume Modes
All USB devices must support the suspend and resume modes. During the suspend mode, USB devices
that are bus powered must enter a low power suspend state. If the USB peripheral device is not bus
powered, then entering the low power suspend state is not required. A suspend condition is defined as a
constant idle state on the bus for more than 3.0ms. 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 TUSB3200A
device to exit the suspend mode, which are 1) detection of USB resume signaling and 2) detection of a
local remote wake-up event.
2.2.5.1USB Suspend Mode
When a suspend condition is detected on the USB, the suspend/resume logic will set the function suspend
request bit (SUSR) in the USB status register. As a result, the function suspend request interrupt (SUSR)
will be generated. To enter the low power suspend state and disable all TUSB3200A device clocks, the
MCU firmware should set the idle mode bit (IDL), which is bit 0 in the MCU power control (PCON) register.
The instruction that sets the IDL bit will be 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
TUSB3200A clocks are disabled and the IC will consume the least amount of power possible.
When the TUSB3200A is in a suspend state, any non-idle signaling on the USB will be detected by the
suspend/resume logic and device operation will be resumed. As a result of the resume signaling being
detected, the TUSB3200A clocks will be 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 will automatically clear the idle mode bit in the PCON register. As a result, MCU operation will
resume with servicing the new interrupt. After the RETI from the ISR, the next instruction to be executed
will be 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 will already be enabled and the IDL bit will already be
cleared.
2.2.5.3USB Remote Wake-Up Mode
The TUSB3200A 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 should 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 TUSB3200A is in the
low power suspend state, asserting the external interrupt input (XINT) to the device will enable the clocks
and generate the XINT interrupt. The XINT interrupt to the MCU will automatically clear the idle mode bit
in the PCON register. As a result, MCU operation will resume with servicing the new interrupt. After the
RETI from the ISR, the next instruction to be executed will be the one following the instruction that set the
IDL bit. Please note that if the low power suspend state was not entered by setting the IDL bit, the clocks
will already be enabled and the IDL bit will already be cleared. When the firmware sets the remote
wake-up request bit (RWUP) in the USB control register, the suspend/resume logic will generate the
resume signaling upstream on the USB.
SLES018A–OCTOBER 2001–REVISED JULY 2010
2.2.6Power Supply Sequencing
Turning power supplies on and off with a mixed 5-V/3.3-V system is an important consideration. To avoid
possible damage to the TUSB3200A device, proper power sequencing is required. The turnon
requirement is that the 5-V and 3.3-V power supplies should start ramping from 0 volts and reach 95
percent of the final voltage values within 25 ms of each other. The turnoff requirement is that the 5-V and
3.3-V power supplies should start ramping from the steady-state voltage and reach 5 percent of these
values within 25 ms of each other. In addition, the difference between the two voltages should never
exceed 3.6-V while turning on or off. Normally, in a mixed voltage system, the 3.3-V supply is generated
from a voltage regulator running from the 5-V supply. A voltage regulator, such as the Texas Instrument's
TP7133, can be used to meet these power sequencing requirements.
2.2.7USB Transfers
The TUSB3200A device supports all the USB data transfer types, which are control, bulk, interrupt, and
isochronous. In accordance with the USB specification, endpoint zero is reserved for the control endpoint
and is bidirectional. In addition to the control endpoint, the TUSB3200A 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.1Controls Transfers
Control transfers are used for configuration, command, and status communication between the host PC
and the TUSB3200A device. Control transfers to the TUSB3200A 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 TUSB3200A device
to the USB.
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:
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 packet followed by the setup data packet addressed to out endpoint
0. If the data is received without an error, then the UBM will write 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 (SETUP) bit is set to a 1, the UBM will return 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 should set 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 will cause 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 should
clear the interrupt, which will automatically clear the setup stage transaction status bit. The MCU
should also set 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 will be a DATA1 PID and the TOGGLE
bit must match.
www.ti.com
Data Stage Transaction(s):
1. The host PC sends an out token packet followed by a data packet addressed to out endpoint 0. If the
data is received without an error, then the UBM will write the data to the endpoint buffer, update the
data count value, toggle the TOGGLE bit, set the NACK bit to a 1, return an ACK handshake to the
host PC, and assert 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 needs to obtain the data count value. After reading the data packet, the MCU should
clear the interrupt and clear the NACK bit to allow the reception of the next data packet from the host
PC.
3. If the NACK bit is set to a 1 when the data 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 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.
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 will then toggle the TOGGLE bit, set the
NACK bit to a 1, and assert 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 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 packet followed by the setup data packet addressed to out endpoint
0. If the data is received without an error then the UBM will write 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 (SETUP) bit is set to a 1, the UBM will return 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 should set 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 will cause 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 should
clear the interrupt, which will automatically clear the setup stage transaction status bit.
SLES018A–OCTOBER 2001–REVISED JULY 2010
Data Stage Transaction:(s): N/A
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 will then toggle the TOGGLE bit, set the
NACK bit to a 1 and assert 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.3 Control Read Transfer (In Transfer)
The host PC uses a control read transfer to read data to 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.
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 will write 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 (SETUP) bit is set to a 1, the UBM will return 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 fro 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 in endpoint 0 configuration byte before clearing the setup stage
transaction (SETUP) bit. This will cause 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 should
clear the interrupt, which will automatically clear the setup stage transaction status bit. The MCU
should also set the TOGGLE bit in the in endpoint 0 configuration byte to a 1. For control read
transfers, the PID used by the host for the first in data packet will be a DATA1 PID.
Data Stage Transaction:(s):
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 in token packet addressed to the in endpoint 0. 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 will then toggle the TOGGLE bit, set the NACK bit
to a 1 and assert 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 a 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.
www.ti.com
Status Stage Transaction:
1. For out endpoint 0, 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 status stage transaction a null data packet with a
DATA1 PID is sent to the host PC.
2. The host PC sends an out token packet addressed to out endpoint 0. If the data packet is received
without an error then the UBM will update the data count value, toggle the TOGGLE bit, set the NACK
bit to a 1, return an ACK handshake to the host PC and assert the endpoint interrupt.
3. The MCU services the interrupt. If the status stage transaction completed successfully, then the MCU
should clear the interrupt and clear the NACK bit.
4. If the NACK bit is set to a 1 when the in data 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 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.
2.2.7.2Interrupt Transfers
The TUSB3200A 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 an interrupt out transaction are as follows:
1. MCU initializes one of the out endpoints as an out interrupt endpoint by programming the appropriate
2. The host PC sends an out token packet followed by a data packet addressed to the out endpoint. If the
3. The MCU services the interrupt and reads the data packet from the buffer. To read the data packet,
4. If the NACK bit is set to a 1 when the data packet is received, the UBM simply returns a NAK
SLES018A–OCTOBER 2001–REVISED JULY 2010
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.
data is received without an error then the UBM will write the data to the endpoint buffer, update the
data count value, toggle the toggle bit, set the NACK bit to a 1, return an ACK handshake to the host
PC and assert the endpoint interrupt.
the MCU first needs to obtain the data count value. After reading the data packet, the MCU should
clear the interrupt and clear the NACK bit to allow the reception of the next data packet from the host
PC.
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 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 will write the data
packet to the X buffer. If the toggle bit is a 1, the UBM will write the data packet to the Y
buffer. When a data packet is received, the MCU could determine 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 would not work. Hence, in double buffer
mode, the MCU should read 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 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 will then toggle the toggle bit, set the NACK bit to a
1 and assert 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.
In double buffer mode for interrupt 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 from the X buffer. If the toggle bit is a 1, the UBM will read the data packet from the Y
buffer.
2.2.7.3Bulk Transfers
The TUSB3200A 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 all be configured as bulk endpoints.
2.2.7.3.1 Bulk Out Transaction
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 will write the data to the endpoint buffer, update the
data count value, toggle the toggle bit, set the NACK bit to a 1, return an ACK handshake to the host
PC and assert 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 should
clear the interrupt and clear 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 NAK
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.
www.ti.com
NOTE
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 will write the data packet
to the X buffer. If the toggle bit is a 1, the UBM will write the data packet to the Y buffer.
When a data packet is received, the MCU could determine 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 would not work. Hence, in double buffer mode, the MCU should read the X
buffer NACK bit, the Y buffer NACK bit, and the toggle bit to determine the status of the
buffers.
2.2.7.3.2 Bulk In Transaction
The steps to be followed for a bulk in transaction are as follows:
1. MCU initializes one of the in endpoints as an in 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 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 will then toggle the toggle bit, set the NACK bit to a
1 and assert 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.
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 will read the data packet
from the X buffer. If the toggle bit is a 1, the UBM will read the data packet from the Y buffer.
2.2.7.4Isochronous Transfers
The TUSB3200A supports isochronous data transfers both to and from the host PC. Devices that need to
send or receive constant-rate data with a suitable USB bandwidth should use the isochronous transfer
type. In endpoints 1 through 7 and out endpoints 1 through 7 can all be configured as isochronous
endpoints.
SLES018A–OCTOBER 2001–REVISED JULY 2010
NOTE
The transfer of isochronous data on the USB requires the use of double buffering. The TUSB3200A
provides an X buffer and Y buffer for each isochronous endpoint.
Four DMA channels are also provided to support streaming isochronous data to/from the host PC to/from
a codec. For isochronous endpoints handled by the MCU, the DMA channels are not used.
2.2.7.4.1 Isochronous Out Transaction (host PC as source and codec as destination)
The steps to be followed for an isochronous out transaction are as follows:
1. MCU initializes one of the out endpoints as an out isochronous endpoint by programming the
appropriate USB endpoint configuration block. This entails programming the buffer size and the buffer
base address for both the X and Y buffers and the bytes per sample bits, setting the isochronous
endpoint bit, enabling the endpoint, and clearing the NACK bit.
2. The MCU initializes one of the four DMA channels to support the isochronous out endpoint by
programming the appropriate DMA configuration registers.
3. The host PC sends an out token packet followed by a data packet addressed to the out endpoint. The
UBM writes the data packet to the X (or Y) endpoint buffer, updates the sample count in the data count
byte, and sets the X (or Y) buffer NACK bit to a 1. Note that the number of audio samples and not the
number of bytes is written to the data count byte. Also, note that there is no endpoint interrupt
generated for isochronous endpoints. If a buffer overflow occurs, the UBM will set the overflow bit in
the endpoint configuration byte.
4. The DMA channel reads the X (or Y) buffer data count byte to verify that the NACK bit is set and to
obtain the sample count in the new data packet. The DMA channel then clears the NACK bit and
streams the data to the codec port interface. Note that if a new data packet has not been received, the
NACK bit will not be set, and the DMA channel will not move any data to the codec port interface.
2.2.7.4.2 Isochronous Out Transaction (host PC as source and MCU as destination)
The steps to be followed for an isochronous out transaction are as follows:
1. MCU initializes one of the out endpoints as an out isochronous endpoint by programming the
appropriate USB endpoint configuration block. This entails programming the buffer size and the buffer
base address for both the X and Y buffers and the bytes per sample bits, setting the isochronous
endpoint 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. The
UBM writes the data packet to the X (or Y) endpoint buffer, updates the sample count in the data count
byte, and sets the X (or Y) buffer NACK bit to a 1. Note that the number of audio samples and not the
number of bytes is written to the data count byte. Also, note that there is not an endpoint interrupt
generated for isochronous endpoints. If a buffer overflow occurs, the UBM will set the overflow bit in
the endpoint configuration byte.
3. After an SOF or PSOF interrupt, the MCU reads the USB frame number register and uses the least
significant bit (bit 0) value as the buffer select bit. If bit 0 is a 0 for the current USB frame, then the
MCU should access the Y buffer. If bit 0 is a 1 for the current USB frame, then the MCU should access
the X buffer.
4. The MCU reads the X (or Y) buffer data count byte to verify that the NACK bit is set and to obtain the
sample count in the new data packet. Note that if a new data packet has not been received, the NACK
bit will not be set. If there is a valid data packet in the buffer, then the MCU clears the NACK bit and
proceeds with reading the data.
2.2.7.4.3 Isochronous In Transaction (codec as source and host PC as destination)
The steps to be followed for an isochronous in transaction are as follows:
1. MCU initializes one of the in endpoints as an in isochronous endpoint by programming the appropriate
USB endpoint configuration block. This entails programming the buffer size and the buffer base
address for both the X and Y buffers and the bytes per sample bits, setting the isochronous endpoint
bit, enabling the endpoint, and setting the NACK bit.
2. The MCU initializes one of the four DMA channels to support the isochronous in endpoint by
programming the appropriate DMA configuration registers.
3. During the current USB frame, the DMA proceeds with reading the data from the codec port interface
and storing the data in the X (or Y) endpoint buffer. At the end of the current USB frame, the DMA
updates the sample count in the data count byte then clears the X (or Y) buffer NACK bit to a 0. If a
buffer overflow occurs, the DMA will set the overflow bit in the endpoint configuration byte.
4. The host PC sends an in token packet addressed to the in endpoint. The UBM reads the X (or Y)
buffer data count byte to verify the NACK bit is cleared and to obtain the sample count of the new data
packet. The UBM reads the data packet from the X (or Y) endpoint buffer then transmits the data to the
PC. At the end of the USB transaction, the UBM sets the X (or Y) buffer NACK bit to a 1. Note that if a
new data packet has not been written to the buffer by the DMA, then the NACK bit will still be set to a
1 and the UBM will send a null packet to the PC. Also, note that there is no endpoint interrupt
generated for isochronous endpoints.
www.ti.com
2.2.7.4.4 Isochronous In Transaction (MCU as source and host PC as destination)
The steps to be followed for an isochronous in transaction are as follows:
1. MCU initializes one of the in endpoints as an in isochronous endpoint by programming the appropriate
USB endpoint configuration block. This entails programming the buffer size and the buffer base
address for both the X and Y buffers and the bytes per sample bits, setting the isochronous endpoint
bit, enabling the endpoint, and setting the NACK bit.
2. The host PC sends an in token packet addressed to the in endpoint. The UBM reads the X (or Y)
buffer data count byte to verify the NACK bit is cleared and to obtain the sample count of the new data
packet. The UBM reads the data packet from the X (or Y) endpoint buffer then transmits the data to the
PC. At the end of the USB transaction, the UBM sets the X (or Y) buffer NACK bit to a 1. Note that if a
new data packet has not been written to the buffer by the MCU then the NACK bit will still be set to a 1
and the UBM will send a null packet to the PC. Also, note that there is no endpoint interrupt generated
for isochronous endpoints.
The adaptive clock generator is used to generate a programmable master clock output signal (MCLKO)
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 TUSB3200A. In this scenario, the MCLKI signal would be used as the clock source for the
codec port interface instead of the clock output from the ACG.
A block diagram of the adaptive clock generator is shown in Figure 2-1. The frequency synthesizer circuit
generates a programmable clock with a frequency range of 12−25 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.
SLES018A–OCTOBER 2001–REVISED JULY 2010
Figure 2-1. Adaptive Clock Generator
The ACG is controller by the following registers. See Section A.5.3 for details.
FUNCTIONAL
REGISTER
24-bit Frequency
register
16-bit MCLK capture
register
8-bit Divider control
register
8-bit ACG control
register
The main functional modules of the ACG are described in the following sections.
2.2.8.1Programmable Frequency Synthesizer
The 24-bit ACG frequency register value is used to program the frequency synthesizer. This 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 to 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 as more bits are used to represent a fractional number.
The clock frequency of the MCLKO output signal is calculated by using the formula:
For N > 24 and 5 < 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 6 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:
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.
2.2.8.2Capture 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, the capture counter value is stored into the 16-bit capture register.
This value is valid until the next SOF or PSOF signal occurs (≈1 ms). The MCU can read the 16-bit
capture register value by reading the ACGCAPH and ACGCAPL registers.
2.2.9Microcontroller Unit
The 8052 core used in the TUSB3200A is based on the industry standard 8052 MCU and is software
compatible with the 8052, 8032, 80C52, 80C53, and 87C52 MCUs. Therefore, see a standard 8052 data
manual for more details if needed.
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 TUSB3200A is disabled. Also in the
external MCU mode, the GPIO ports are used for the external MCU data, address, and control signals.
See Section 1.7, Terminal Functions – 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. See Section 1.8, Device Operation Modes, for information regarding the various modes of
operation.
Texas Instruments has developed the TUSB3200A 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 in addition to headers to allow expansion of the system in a variety of ways.
2.2.11 Interrupt Logic
The 8052 MCU core used in the TUSB3200A supports all the standard interrupt sources. The five
standard MCU interrupt sources are timer 0, timer 1, serial port, external 1 (INT1), and external 0 (INT0).
All of the additional interrupt sources within the TUSB3200A device are ORed together to generate the
INT0 signal to the MCU. See the interrupt vector register for more details on the other TUSB3200A
interrupt sources.
The other interrupt sources are the eight USB in endpoints, the eight USB out endpoints, 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 interface receive data register full, I2C interface transmit data register empty,
I2C interface receive data register full, and the external interrupt input.
SLES018A–OCTOBER 2001–REVISED JULY 2010
The interrupts for the USB in endpoints and USB out endpoints can not be masked. An interrupt for a
particular endpoint occurs at the end of a successful transaction to that endpoint. A status bit for each in
and out endpoint 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 endpoint, both the
interrupt and status bit for an endpoint will be 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. See 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 will be asserted until the interrupt is cleared by the MCU.
The codec port interface transmit data register empty, codec port interface receive data register full, I2C
Interface transmit data register empty, and I2C 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. See the codec port interface control/status register and the I2C interface
control/status register for more details.
The external interrupt input (XINT) is also ORed 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.12 DMA Controller
The TUSB3200A provides four DMA channels for transferring data between the USB endpoint buffers and
the codec port interface. The DMA channels are provided to support the streaming of data for USB
isochronous endpoints only. Each DMA channel can be programmed to service only one isochronous
endpoint. The endpoint number and direction are programmable using the DMA channel control register
provided for each of the four DMA channels.
The codec port interface time slots to be serviced by a particular DMA channel must also be programmed.
For example, an AC'97 mode stereo speaker application would use time slots 3 and 4 for audio playback.
Therefore, the DMA channel being used to move the audio data to the codec port interface would need
time slot assignment bits 3 and 4 set 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
should be set based on the desired audio data format.
2.2.13 Codec Port Interface
The codec port interface is a configurable serial interface used to transfer data between the TUSB3200A
IC and a codec device. The serial protocol and formats supported include AC '97 1.0, AC '97 2.0 and
several I2S modes. In addition, a general purpose mode is provided that can be configured to various user
defined serial interface formats.
Configuration of the interface is accomplished using the four codec port interface configuration registers,
which are CPTCNF1, CPTCNF2, CPTCNF3, and CPTCNF4. See Section A.5.4 for more details on these
registers. The serial interface is basically 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 all modes is bidirectional and full duplex. For
some modes, both audio data and command/status data are transferred via the serial interface. The
source of the transmit data and destination of the receive data for all audio data time slots is the USB
endpoint data buffers. Transfer of the audio data packets to/from the USB endpoint data buffers and the
codec port interface is controlled by one or more of the DMA channels.
www.ti.com
Remember that each DMA channel can be assigned to one USB isochronous endpoint. The source and/or
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 TUSB3200A 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.13.1 Audio 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. See the Audio CODEC '97 Specification Revision 1.03 for additional information. The AC
link serial interface is a time division multiplexed (TDM) slot based serial interface that is used to transfer
both audio data and command/status data between the TUSB3200A IC and the codec device.
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 TUSB3200A 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 TUSB3200A device, should be a frequency of 24.576 MHz. The start of each 48-kHz
frame is synchronized to the rising edge of the SYNC signal, which is an output of the TUSB3200A
device. The SYNC signal is driven high each frame for the duration of slot 0. See Figure 2-2 for details on
connecting the TUSB3200A to a codec device in this mode.
Figure 2-2. Connection of the TUSB3200A 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
TUSB3200A 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.13.2 Audio 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 TUSB3200A provides support for
multiple codec devices and also on-demand sampling. The TUSB3200A can connect directly to two AC
'97 codecs as shown in Figure 2-3. Note that if only one codec is used, then the SD_IN2 input (pin 40)
should be tied to DVSS.
Figure 2-3. Connection of the TUSB3200A to Multiple AC '97 Codecs
2.2.13.3 Inter-IC Sound (I2S) Modes of Operation
The TUSB3200A offers a total of four I2S modes of operation. However, the serial format is the same for
all four of the I2S modes. The difference in the I2S modes is simply the number of serial data outputs
and/or serial data inputs supported. For instance, in codec port interface mode 4, there are three serial
data outputs (SDOUT1, SDOUT2, SDOUT3) and one serial data input (SDIN1). Hence, mode 4 can be
used to connect the TUSB3200A device to a codec with three stereo DACs and one ADC for multichannel
audio applications. Note however that not all of the serial data outputs and/or inputs must be used for any
given mode. Table 2-5 shows the TUSB3200A codec terminal assignments and the respective signal
names for each of the I2S modes.
In all I2S 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 should
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 should 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.
For the I2S 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 will pad the unused bits automatically with zeros.
The I2S protocol does not provide for command/status data transfers. Therefore, when using the
TUSB3200A device with a codec that uses an I2S serial interface for audio data transfers, the TUSB3200A
I2C serial interface can be used for codec command/status data transfers.
In addition, the TUSB3200A 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.13.3.1 Mapping of DMA Time Slots to Codec Port Interface Time Slots for I2S Modes
The I2S 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, the TUSB3200A can support multiple serial data
outputs and/or inputs at the same time in accordance with Table 2-5. Each of the serial data outputs
and/or inputs has a unique left channel time slot (slot number 0) and right channel time slot (slot number
1). For the I2S 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 2-6 and Table 2-7
show the codec port interface time slot numbers and the corresponding time slot numbers for the DMA
channels. Table 2-8 shows the channel order for I2S mode 4.
As an example, suppose that codec port interface mode 4 is to be used with three serial data outputs and
one serial data input. The DMA channel to be programmed to support the three serial data outputs would
need to have time slot assignment bits 0, 1,2, 4, 5, and 6 set to a 1. The DMA channel to be programmed
to support the serial data input would need to have time slot assignment bits 0 and 4 set to a 1.
Table 2-6. SLOT Assignments for Codec Port Interface I2S Mode (Output)
SERIAL DATA
OUTPUT
SDOUT10104
SDOUT20115
SDOUT30126
SDOUT40137
CODEC PORT INTERFACE TIME SLOT NUMBERDMA CHANNELS(s) TIME SLOT NUMBER
LEFT CHANNELRIGHT CHANNELLEFT CHANNELRIGHT CHANNEL
Table 2-7. SLOT Assignments for Codec Port Interface I2S Mode (Input)
SERIAL DATA
INPUT
SDIN10104
SDIN20115
SDIN30126
CODEC PORT INTERFACE TIME SLOT NUMBERDMA CHANNELS(s) TIME SLOT NUMBER
LEFT CHANNELRIGHT CHANNELLEFT CHANNELRIGHT CHANNEL
Table 2-8. Channel Order for 6-Channel Application in I2S Mode 4 (Output)
AUDIO STREAM FROM THE PCLEFT FRONT RIGHT FRONT CENTER FRONT SUBWOOFER LEFT SURROUND RIGHT
HOSTSURROUND
SDOUT1Left front (left channel); right front (right channel)
SDOUT2Center front (left channel); subwoofer (right channel)
SDOUT3Left surround (left channel); right surround (right channel)
2.2.13.4 General-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 2-9. This mode gives the user the flexibility to
configure the TUSB3200A to connect to various codecs and DSPs that do not use a standard serial
interface format.
The TUSB3200A has a bidirectional two-wire serial interface that can be used to access other ICs. This
serial interface is compatible with the I2C (Inter IC) bus protocol and supports both 100-kbps and 400-kbps
data transfer rates. The TUSB3200A is a master only device that does not support a multimaster bus
environment (no bus arbitration) or wait state insertion. Hence this interface can be used to access I2C
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 from the EEPROM to the TUSB3200A
on-chip RAM using the I2C interface. Another example is the control of a codec device that uses an I2S
interface for audio data transfers and an I2C interface for control register read/write access
The two-wire serial interface uses the serial clock signal, SCL, and the serial data signal, SDA. As stated
above, the TUSB3200A 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 TUSB3200A 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 TUSB3200A is the device receiving data information, the TUSB3200A will acknowledge 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 TUSB3200A is unable to receive a
byte, the SDA signal will not be driven low and should be pulled high external to the TUSB3200A device.
A high during the SCL period indicates a not-acknowledge to the slave device. The acknowledge timing is
shown in Figure 3-9.
SLES018A–OCTOBER 2001–REVISED JULY 2010
Read and write data transfers by the TUSB3200A device can be done using single byte or multiple byte
data transfers. Therefore, the actual transfer type used depends on the protocol required by the I2C slave
device being accessed.
2.2.14.2 Single Byte Write
As shown is Figure 2-4, a single byte data write transfer begins with the master device transmitting a start
condition followed by the I2C device address and the read/write bit. The read/write bit determines the
direction of the data transfer. For a write data transfer, the read/write bit should be a 0. After receiving the
correct I2C device address and the read/write bit, the I2C slave device should respond with an
acknowledge bit. Next, the TUSB3200A should transmit the address byte or bytes corresponding to the
I2C slave device internal memory address being accessed. After receiving the address byte, the I2C slave
device should again respond with an acknowledge bit. Next, the TUSB3200A device should transmit the
data byte to be written to the memory address being accessed. After receiving the data byte, the I2C slave
device should again respond with an acknowledge bit. Finally, the TUSB3200A device should transmit a
stop condition to complete the single byte data write transfer.
A multiple byte data write transfer is identical to a single byte data write transfer except that multiple data
bytes are transmitted by the TUSB3200A device to the I2C slave device as shown in Figure 2-5. After
receiving each data byte, the I2C slave device should respond with an acknowledge bit.
2.2.14.4 Single Byte Read
As shown in Figure 2-6, a single byte data read transfer begins with the TUSB3200A device transmitting a
start condition followed by the I2C device address and the read/write bit. For the data read transfer, both a
write followed by a read are actually done. Initially, a write is done to transfer the address byte or bytes of
the internal memory address to be read. As a result, the read/write bit should be a 0. After receiving the
I2C device address and the read/write bit, the I2C slave device should respond with an acknowledge bit.
Also, after sending the internal memory address byte or bytes, the TUSB3200A device should transmit
another start condition followed by the I2C slave device address and the read/write bit again. This time the
read/write bit should be a 1 indicating a read transfer. After receiving the I2C device address and the
read/write bit the I2C slave device should again respond with an acknowledge bit. Next, the I2C slave
device should transmit the data byte from the memory address being read. After receiving the data byte,
the TUSB3200A device should transmit a not-acknowledge followed by a stop condition to complete the
single byte data read transfer.
www.ti.com
Figure 2-5. Multiple Byte Write Transfer
Figure 2-6. Single Byte Read Transfer
2.2.14.5 Multiple Byte Read
A multiple byte data read transfer is identical to a single byte data read transfer except that multiple data
bytes are transmitted by the I2C slave device to the TUSB3200A device as shown in Figure 2-7. Except
for the last data byte, the TUSB3200A device should respond with an acknowledge bit after receiving each
data byte.
Figure 2-8 shows the architecture of the MCU port bits in the TUSB3200A. There are two GPIO ports
visible to external devices − port 1 and port 3. In examining the functionality of these ports two interfaces
must be examined − the I/O driver interface provided at the I/O pads of the TUSB3200A and the interface
provided at the M8052 MCU core.
At each I/O pad servicing the GPIO ports, the individual data input (DI) and data output (DO) lines into the
pads are combined into one bidirectional external line. Each I/O pad is also assigned a separate enable
line EN. When EN is a logic 0 the output driver is enabled, and when EN is a logic 1 the input buffer is
enabled. This implementation means that as an output the GPIO pin actively sinks current in the logic 0
state, but drives the logic 1 state through the 100-µA pullup. However, to obtain an acceptable rise time
when the output transitions from a logic 0 to a logic 1, the EN signal remains active for two clock periods
after the output data transitions from a logic 0 to a logic 1. For two clock periods then the output buffer
actively drives the logic 1 output level before yielding to the 100-µA pullup. This implementation also
means that to use a GPIO pin as an input, the DO line for that pin must be set to a logic 1 and the
external source driving the pin must be capable of sinking the 100-mA pullup when driving a logic 0. (Some
port 3 bits also require that the alternate output data source be at logic 1 to use the pin as a GPIO input).
The TUSB3200A global control register has a bit − PUDIS − that controls the enabling and disabling of the
100-mA pullups for port 1 and port 3. If firmware disables the 100-mΑ pullups − by setting PUDIS to logic 1
− then when a port bit is configured as an output, a logic 1 output will transition to a high-impedance state
after the two clock delay period has expired. At power-up, and after a global reset, all GPIO pins are
configured as input ports with all 100-mΑ pullups enabled.
SLES018A–OCTOBER 2001–REVISED JULY 2010
The MCU core implements each GPIO bit using three signals − DI, DO, and EN. For both port 1 and port
3, EN is derived from DO by ANDing DO with a two clock delayed version of DO. This provides a
two-clock delay in transitioning EN from a logic 0 to a logic 1 after DO transitions from a logic 0 to a logic
1. It is this circuitry that results in the output buffer in the I/O pad actively driving a logic 1 output for two
clock periods before yielding to the 100-mA pullup or transitioning to a high-impedance state.
Also, as shown in Figure 2-8, both ports can service logical units internal to the MCU core, as well as
service the memory-mapped discrete input and output lines assigned to each port.
As illustrated in Figure 2-8, alternative inputs on port 3 are routed directly from the DI input at the MCU
core interface to their destination within the MCU core. It is also noted that when the port bit is used as an
alternative input, the value of the input can still be read by the MCU. If the port bit is to be used as a
general-purpose input, the firmware must make the proper settings so that the alternative logic unit that
receives the general-purpose input does not erroneously respond to the input.
Each alternative output on port 3 is ANDed with the memory-mapped latch (Special Function Register −
SFR) assigned to that port bit, and the result is DO. This means that if the alternate output is to be used,
the latch must be set to logic 1. Similarly, if the latch is to be the source for DO, the alternate output must
be logic 1. (The MCU core assures that if the logical unit supplying the alternate output is not used, its
default state is logic 1).
2.2.15.1.1 UART Alternative Functions
Port 3 GPIO bits P3.0 and P3.1, in addition to being able to serve as general-purpose I/O bits, can also
serve to implement UART functionality. The UART implemented offers four modes of operation. In mode
0, UART output data is output on port bit P3.0 and the transmit clock (MCU clock/12) is output on port bit
P3.1. In modes 1, 2, and 3 UART receive data is input on P3.0 and UART transmit data is output on P3.1.
Modes 1, 2, and 3 are then full duplex modes; serial data can be transmitted and received simultaneously.
In all four UART modes, transmission is initiated by any instruction that accesses the MCU-core register
SBUF. If this register is not written to, the alternate output lines for P3.0 and P3.1 are at their default logic
1 state. P3.0 and P3.1 can then be used as general-purpose outputs if no instructions access register
SBUF.
SLES018A–OCTOBER 2001–REVISED JULY 2010
The REN bit in the MCU serial port control register SCON enables UART reception if set to logic 1. If REN
is cleared to logic 0, using P3.0 as a general-purpose input does not result in erroneous behavior in the
UART logic block. P3.1 has no alternative input function, and thus it can be used as a general-purpose
input if the latch assigned to that bit is set to logic 1 and no instructions access register SBUF. (P3.0 also
requires that its latch be set to logic 1 and that no instructions access register SBUF if it is to be used as a
general-purpose input).
over operating free-air temperature range (unless otherwise noted)
DV
DD
DV
Supply voltage range–0.55.5V
DDS
AV
DD
3.3-V TTL/LVCMOS–0.5 V to DV
V
Input voltage range5-V compatible–0.5 V to DV
I
DVDDS + 0.5 V 5-V−3.3-V TTL level shifting–0.5 V to DV
3.3-V TTL/LVCMOS–0.5 V to DV
V
Output voltage rangeV
O
I
Input clamp currentVI< 0 or VI> DV
IK
I
Output clamp currentVO< 0 or VO> DV
OK
T
Storage temperature range–65150°C
stg
(1) Stresses beyond those listed under “absolute maximum ratings” may 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
conditions” is not implied. Exposure to absolute-maximum-rated conditions for extended periods may affect device reliability.
5-V compatible–0.5 V to DV
DVDDS + 0.5 V 5-V−3.3-V TTL level shifting–0.5 V to DV
3.3-V−5-V CMOS level shifting–0.5 V to DV
(1)
DD
DD
MINMAXUNIT
–0.53.6
–0.53.6
DD
DDS
DDS
DD
DDS
DDS
DDS
0.5
0.5V
0.5
0.5
0.5
0.5
0.5
±20mA
±20mA
3.2RECOMMENDED OPERATING CONDITIONS
over operating free-air temperature range (unless otherwise noted)
over recommended operating conditions (unless otherwise noted)
PARAMETERTEST CONDITIONSMINTYPMAXUNIT
t
r
t
f
t
RFM
V
O(CRS)
Transition rise time for DP or DM420ns
Transition fall time for DP or DM420ns
Rise/fall time matching(tr/tf) × 100 90% 110%90%110%
Voltage output signal crossover1.32V
Figure 3-2. USB Differential Driver Timing Waveform
www.ti.com
3.7Codec Port Interface Signals (AC '97 Modes)
TA= 25°C, DVDD= 3.3 V, DV
PARAMETERTEST CONDITIONSMINTYPMAXUNIT
f
BIT_CLK
t
cyc1
t
w1(H)
t
w1(L)
f
SYNC
t
cyc2
t
w2 (H)
t
w2(L)
t
pd1
t
su
t
h
(1) Worst case duty cycle is 45/55.
Frequency, BIT_CLK
Cycle time, BIT_CLK
Pulse duration, BIT_CLK high
Pulse duration, BIT_CLK low
Frequency, SYNCCL= 50 pF48kHz
Cycle time, SYNCCL= 50 pF20.8ms
Pulse duration, SYNC highCL= 50 pF1.3ms
Pulse duration, SYNC lowCL= 50 pF19.5ms
Propagation delay time, BIT_CLK rising edge to CL= 50 pF
SYNC, SD_OUT and RESET
Setup time, SD_IN to BIT_CLK falling edgeCL= 50 pF10ns
Hold time, SD_IN from BIT_CLK falling edge10ns
Setup time, SDIN to SCLK rising edge10ns
Hold time, SDIN from SCLK rising edge10ns
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.
This section describes the TUSB3200A MCU memory configurations and operation. In general, the MCU
memory operation is the same as the industry standard 8052 MCU.
A.1MCU Memory Space
The TUSB3200A 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 TUSB3200A
uses a 4K boot ROM as the program memory during initialization. The boot ROM program code will
download the application program code from a nonvolatile memory (i.e., EEPROM) on the peripheral PCB.
The application program code will be written to an 8K RAM mapped to the external data memory space.
After downloading the application program code to RAM, the boot ROM will enable the normal operating
mode by setting the ROM disable (SDW) bit (see the memory configuration register) to enable program
code execution from the 8K 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. See Figure A-1 and Figure A-2 for
details.
The external data memory contains the data buffers for the USB endpoints, the configuration blocks for
the USB endpoints, the setup data packet buffer for the USB control endpoint, and memory mapped
registers. The data buffers for the USB endpoints, the configuration blocks for the USB endpoints and the
setup data packet buffer for the USB control endpoint 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 endpoints are a total of 1832 bytes, the configuration blocks for the USB endpoints are
a total of 128 bytes, the setup packet buffer for the USB control endpoint 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 2K bytes. In addition to these memory blocks, an 8K RAM is mapped to the external data
memory space in the boot loader mode of operation. The 8K 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 8K RAM is mapped to the program memory space and is read only.
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 comprise the SFR space, are only accessible with direct addressing.
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, only address lines A0 to A10 are input to the TUSB3200A device from the external
MCU. Therefore, the USB buffer space 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 TUSB3200A 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 TUSB3200A device.
A.4USB Endpoint Configuration Blocks and Data Buffers Space
A.4.1 USB Endpoint Confiuration Blocks
The USB endpoint 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 endpoints. The MCU, UBM, and
DMA, all have access to these configuration blocks.
The device defines an endpoint of a USB pipe by initializing the configuration block configuration byte. It
defines the location of the pipe X and Y buffers in endpoint 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. Finally,
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 size associated with the endpoint. If the buffer size is
greater than the USB packet size, each buffer will independently recirculate.
A.4.2 Data Buffers Space
The endpoint data buffer space (1832 bytes) provides rate buffering between the USB and codecs
attached to the TUSB3200A. Buffers are defined in this space by base address pointers and size
descriptors in the USB endpoint configuration blocks. The MCU also has access to this space.
The UBM associates USB endpoints with buffers in the endpoint data buffer space by looking up
configuration for an endpoint in USB endpoint configuration space. A particular DMA channel is associated
with a buffer through an endpoint number in the DMA channel's control register.
www.ti.com
Figure A-3. USB Endpoint Configuration Blocks and Buffer Space Memory Map
Table A-1. USB Endpoint Configuration Blocks Address Map
ADDRESSMNEMONICNAME
FFAFhOEPDCNTY0Out endpoint 0 - Y buffer data count byte
FFAEhReservedReserved for future use
FFADhOEPBBAY0Out endpoint 0 - Y buffer base address byte
FFAChReservedReserved for future use
FFABhOEPDCNTX0Out endpoint 0 - X buffer data count byte
FFAAhOEPBSIZ0Out endpoint 0 - X and Y buffer size byte
FFA9hOEPBBAX0Out endpoint 0 - X buffer base address byte
FFA8hOEPCNF0Out endpoint 0 – configuration byte
FFA7hOEPDCNTY1Out endpoint 1 - Y buffer data count byte
FFA6hReservedReserved for future use
FFA5hOEPBBAY1Out endpoint 1 - Y buffer base address byte
FFA4hReservedReserved for future use
FFA3hOEPDCNTX1Out endpoint 1 - X buffer data count byte
FFA2hOEPBSIZ1Out endpoint 1 - X and Y buffer size byte
FFA1hOEPBBAX1Out endpoint 1 - X buffer base address byte
FFA0hOEPCNF1Out endpoint 1 – configuration byte
FF9FhOEPDCNTY2Out endpoint 2 - Y buffer data count byte
FF9EhReservedReserved for future use
FF9DhOEPBBAY2Out enEdpoint 2 - Y buffer base address byte
FF9ChReservedReserved for future use
FF9BhOEPDCNTX2Out endpoint 2 - X buffer data count byte
FF9AhOEPBSIZ2Out endpoint 2 - X and Y buffer size byte
FF99hOEPBBAX2Out endpoint 2 - X buffer base address byte
FF98hOEPCNF2Out endpoint 2 – configuration byte
FF97hOEPDCNTY3Out endpoint 3 - Y buffer data count byte
FF96hReservedReserved for future use
FF95hOEPBBAY3Out endpoint 3 - Y buffer base address byte
FF94hReservedReserved for future use
FF93hOEPDCNTX3Out endpoint 3 - X buffer data count byte
FF92hOEPBSIZ3Out endpoint 3 - X and Y buffer size byte
FF91hOEPBBAX3Out endpoint 3 - X buffer base address byte
FF90hOEPCNF3Out endpoint 3 – configuration byte
FF8FhOEPDCNTY4Out endpoint 4 - Y buffer data count byte
FF8EhReservedReserved for future use
FF8DhOEPBBAY4Out endpoint 4 - Y buffer base address byte
FF8ChReservedReserved for future use
FF8BhOEPDCNTX4Out endpoint 4 - X buffer data count byte
FF8AhOEPBSIZ4Out endpoint 4 - X and Y buffer size byte
FF89hOEPBBAX4Out endpoint 4 - X buffer base address byte
FF88hOEPCNF4Out endpoint 4 – configuration byte
FF87hOEPDCNTY5Out endpoint 5 - Y buffer data count byte
FF86hReservedReserved for future use
FF85hOEPBBAY5Out endpoint 5 - Y buffer base address byte
FF84hReservedReserved for future use
FF83hOEPDCNTX5Out endpoint 5 - X buffer data count byte
FF82hOEPBSIZ5Out endpoint 5 - X and Y buffer size byte
FF81hOEPBBAX5Out endpoint 5 - X Buffer Base Address Byte
Table A-1. USB Endpoint Configuration Blocks Address Map (continued)
ADDRESSMNEMONICNAME
FF80hOEPCNF5Out endpoint 5 – configuration byte
FF7FhOEPDCNTY6Out endpoint 6 - Y buffer data count byte
FF7EhReservedReserved for future use
FF7DhOEPBBAY6Out endpoint 6 - Y buffer base address byte
FF7ChReservedReserved for future use
FF7BhOEPDCNTX6Out endpoint 6 - X buffer data count byte
FF7AhOEPBSIZ6Out endpoint 6 - X and Y buffer size byte
FF79hOEPBBAX6Out endpoint 6 - X buffer base address byte
FF78hOEPCNF6Out endpoint 6 – configuration byte
FF77hOEPDCNTY7Out endpoint 7 - Y buffer data count byte
FF76hReservedReserved for future use
FF75hOEPBBAY7Out endpoint 7 - Y buffer base address byte
FF74hReservedReserved for future use
FF73hOEPDCNTX7Out endpoint 7 - X buffer data count byte
FF72hOEPBSIZ7Out endpoint 7 - X and Y buffer size byte
FF71hOEPBBAX7Out endpoint 7 - X buffer base address byte
FF70hOEPCNF7Out endpoint 7 – configuration byte
FF6FhIEPDCNTY0In endpoint 0 - Y buffer data count byte
FF6EhReservedReserved for future use
FF6DhIEPBBAY0In endpoint 0 - Y buffer base address byte
FF6ChReservedReserved for future use
FF6BhIEPDCNTX0In endpoint 0 - X buffer data count byte
FF6AhIEPBSIZ0In endpoint 0 - X and Y buffer size byte
FF69hIEPBBAX0In endpoint 0 - X buffer base address byte
FF68hIEPCNF0In endpoint 0 – configuration byte
FF67hIEPDCNTY1In endpoint 1 - Y buffer data count byte
FF66hReservedReserved for future use
FF65hIEPBBAY1In endpoint 1 - Y buffer base address byte
FF64hReservedReserved for future use
FF63hIEPDCNTX1In endpoint 1 - X buffer data count byte
FF62hIEPBSIZ1In endpoint 1 - X and Y buffer size byte
FF61hIEPBBAX1In endpoint 1 - X buffer base address byte
FF60hIEPCNF1In endpoint 1 – configuration byte
FF5FhIEPDCNTY2In endpoint 2 - Y buffer data count byte
FF5EhReservedReserved for future use
FF5DhIEPBBAY2In endpoint 2 - Y buffer base address byte
FF5ChReservedReserved for future use
FF5BhIEPDCNTX2In endpoint 2 - X buffer data count byte
FF5AhIEPBSIZ2In endpoint 2 - X and Y buffer size byte
FF59hIEPBBAX2In endpoint 2 - X buffer base address byte
FF58hIEPCNF2In endpoint 2 – configuration byte
FF57hIEPDCNTY3In endpoint 3 - Y buffer data count byte
FF56hReservedReserved for future use
FF55hIEPBBAY3In endpoint 3 - Y buffer base address byte
FF54hReservedReserved for future use
FF53hIEPDCNTX3In endpoint 3 - X buffer data count byte
FF52hIEPBSIZ3In endpoint 3 - X and Y buffer size byte
Table A-1. USB Endpoint Configuration Blocks Address Map (continued)
ADDRESSMNEMONICNAME
FF51hIEPBBAX3In endpoint 3 - X buffer base address byte
FF50hIEPCNF3In endpoint 3 – configuration byte
FF4FhIEPDCNTY4In endpoint 4 - Y buffer data count byte
FF4EhReservedReserved for future use
FF4DhIEPBBAY4In endpoint 4 - Y buffer base address byte
FF4ChReservedReserved for future use
FF4BhIEPDCNTX4In endpoint 4 - X buffer data count byte
FF4AhIEPBSIZ4In endpoint 4 - X and Y buffer size byte
FF49hIEPBBAX4In endpoint 4 - X buffer base address byte
FF48hIEPCNF4In endpoint 4 – configuration byte
FF47hIEPDCNTY5In endpoint 5 - Y buffer data count byte
FF46hReservedReserved for future use
FF45hIEPBBAY5In endpoint 5 - Y buffer base address byte
FF44hReservedReserved for future use
FF43hIEPDCNTX5In endpoint 5 - X buffer data count byte
FF42hIEPBSIZ5In endpoint 5 - X and Y buffer size byte
FF41hIEPBBAX5In endpoint 5 - X buffer base address byte
FF40hIEPCNF5In endpoint 5 – configuration byte
FF3FhIEPDCNTY6In endpoint 6 - Y buffer data count byte
FF3EhReservedReserved for future use
FF3DhIEPBBAY6In endpoint 6 - Y buffer base address byte
FF3ChReservedReserved for future use
FF3BhIEPDCNTX6In endpoint 6 - X buffer data count byte
FF3AhIEPBSIZ6In endpoint 6 - X and Y buffer size byte
FF39hIEPBBAX6In endpoint 6 - X buffer base address byte
FF38hIEPCNF6In endpoint 6 – configuration byte
FF37hIEPDCNTY7In endpoint 7 - Y buffer data count byte
FF36hReservedReserved for future use
FF35hIEPBBAY7In endpoint 7 - Y buffer base address byte
FF34hReservedReserved for future use
FF33hIEPDCNTX7In endpoint 7 - X buffer data count byte
FF32hIEPBSIZ7In endpoint 7 - X and Y buffer size byte
FF31hIEPBBAX7In endpoint 7 - X buffer base address byte
FF30hIEPCNF7In endpoint 7 – configuration byte
This section describes the individual bytes in the USB endpoint configuration blocks for the out endpoints.
A set of 8 bytes is used for the control and operation of each USB out endpoint. In addition to the USB
control endpoint, the TUSB3200A supports up to a total of seven out endpoints.
A.4.3.1 USB Out Endpoint − Y Buffer Data Count Byte (OEPDCNTYx)
The USB out endpoint 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.
7NACKNo acknowledgeThe no acknowledge status bit is set to a 1 by the UBM at the end of
6:0DCNTY(6:0)Y Buffer data countThe Y buffer data count value is set by the UBM when a new data
a successful USB out transaction to this endpoint to indicate that the
USB endpoint Y buffer contains a valid data packet and that the Y
buffer data count value is valid. For control, interrupt, or bulk
endpoints, when this bit is set to a 1, all subsequent transactions to
the endpoint will result in a NACK handshake response to the host
PC. Also for control, interrupt, and bulk endpoints, to enable this
endpoint to receive another data packet from the host PC, this bit
must be cleared to a 0 by the MCU. For isochronous endpoints, 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 should clear this bit before
reading the data packet from the buffer.
packet is written to the Y buffer for the out endpoint. The 7-bit value is
set to the number of bytes in the data packet for control, interrupt or
bulk endpoint transfers and is set to the number of samples in the
data packet for isochronous endpoint 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 Endpoint − Y Buffer Base Address Byte (OEPBBAYx)
The USB out endpoint 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 endpoint.
base address location in memory to be used for the Y 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.
TUSB3200A
www.ti.com
SLES018A–OCTOBER 2001–REVISED JULY 2010
A.4.3.3 USB Out Endpoint − X Buffer Data Count Byte (OEPDCNTXx)
The USB out endpoint 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.
7NACKNo acknowledgeThe no acknowledge status bit is set to a 1 by the UBM at the end of a
6:0DCNTX(6:0)X Buffer data countThe X buffer data count value is set by the UBM when a new data packet is
successful USB out transaction to this endpoint to indicate that the USB
endpoint X buffer contains a valid data packet and that the X buffer data count
value is valid. For control, interrupt, or bulk endpoints, when this bit is set to a 1,
all subsequent transactions to the endpoint will result in a NACK handshake
response to the host PC. Also for control, interrupt, and bulk endpoints, to
enable this endpoint to receive another data packet from the host PC, this bit
must be cleared to a 0 by the MCU. For isochronous endpoints, 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 should clear this bit before reading the data packet from the buffer.
written to the X buffer for the out endpoint. The 7-bit value is set to the number
of bytes in the data packet for control, interrupt, or bulk endpoint transfers and is
set to the number of samples in the data packet for isochronous endpoint
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 Endpoint − X and Y Buffer Size Byte (OEPBSIZx)
The USB out endpoint 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 endpoint.
7:0BSIZ(7:0)Buffer sizeThe 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 value should be in 8 byte units. For example, a value
of 18h would result in the size of the X and Y buffers each being set to 192
bytes.
A.4.3.5 USB Out Endpoint − X Buffer Base Address Byte (OEPBBAXx)
The USB out endpoint 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 endpoint.
7:0BBAX(10:3)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 Endpoint − Configuration Byte (OEPCNFx)
The USB out endpoint configuration byte contains the various bits used to configure and control the
endpoint. Note that the bits in this byte take on different functionality based on the type of endpoint
defined. Basically, the control, iInterrupt, and bulk endpoints function differently than the isochronous
endpoints.
A.4.3.6.1 USB Out Endpoint − Control, Interrupt or Bulk Configuration Byte
This section defines the functionality of the bits in the USB out endpoint configuration byte for control,
interrupt, and bulk endpoints.
7OEPENEndpoint enableThe endpoint enable bit is set to a 1 by the MCU to enable the out
6ISOIsochronous endpointThe isochronous endpoint bit is set to a 1 by the MCU to specify the
5TOGGLEToggleThe toggle bit is controlled by the UBM and is toggled at the end of a
4DBUFDouble buffer modeDouble buffer mode The double buffer mode bit is set to a 1 by the
3STALLStallThe stall bit is set to a 1 by the MCU to stall endpoint transactions.
2OEPIEInterrupt enableThe interrupt enable bit is set to a 1 by the MCU to enable the out
1:0–ReservedReserved for future use
endpoint.
use of a particular out endpoint for isochronous transactions. This bit
should be cleared to a 0 by the MCU to use a particular out endpoint
for control, interrupt or bulk transactions.
successful out data stage transaction if a valid data packet is received
and the data packet PID matches the expected PID.
MCU to enable the use of both the X and Y data packet buffers for
USB transactions to a particular out endpoint. This bit should be
cleared to a 0 by the MCU to use the single buffer mode. In the single
buffer mode, only the X buffer is used.
When this bit is set, the hardware will automatically return a stall
handshake to the host PC for any transaction received for the
endpoint. An exception is the control endpoint setup stage transaction,
which must always be received. This requirement allows a
Clear_Feature_Stall request to be received from the host PC. Control
endpoint data and status stage transactions however can be stalled.
The stall bit is cleared to a 0 by 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 amount of data received is greater than
expected, the UBM will set the stall bit to a 1 to stall the endpoint.
When the stall bit is set to a 1 by the UBM, the USB out endpoint 0
interrupt will be generated.
endpoint interrupt. See Section A.5.7.1 for details on the out endpoint
interrupts.
7OEPENEndpoint enableThe endpoint enable bit is set to a 1 by the MCU to enable the out endpoint.
6ISOISOIsochronous endpoint The isochronous endpoint bit is set to a 1 by the MCU to
5OVFOverflowThe overflow bit is set to a 1 by the UBM to indicate a buffer overflow condition
4:0BPS(4:0)Bytes per sample
specify the use of a particular out endpoint for isochronous transactions. This bit
should be cleared to a 0 by the MCU for a particular out endpoint to be used for
control, interrupt, or bulk transactions.
has occurred. 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
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, a PCM 16-bit stereo audio data sample
consists of 4 bytes. There are two bytes of left channel data and two bytes of
right channel data. For a four channel system using 16-bit data, the total
number of bytes would be 8, which would be the isochronous data sample size.
00h = 1 byte, 01h = 2 bytes, …, 1Fh = 32 bytes
A.4.4 USB In Endpoint Configuration Bytes
This section describes the individual bytes in the USB endpoint configuration blocks for the in endpoints. A
set of 8 bytes is used for the control and operation of each USB in endpoint. In addition to the USB control
endpoint, the TUSB3200A supports up to a total of seven in endpoints.
A.4.4.1 USB In Endpoint − Y Buffer Data Count Byte (IEPDCNTYx)
The USB in endpoint 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.
7NACKNo acknowledgeThe no acknowledge status bit is set to a 1 by the UBM at the end of a
6:0DCNTY(6:0)Y Buffer data countThe Y buffer data count value is set by the MCU or DMA when a new data
successful USB in transaction to this endpoint to indicate that the USB endpoint
Y buffer is empty. For control, interrupt, or bulk endpoints, when this bit is set to
a 1, all subsequent transactions to the endpoint will result in a NACK handshake
response to the host PC. Also for control, interrupt, and bulk endpoints, to
enable this endpoint to transmit another data packet to the Host PC, this bit
must be cleared to a 0 by the MCU. For isochronous endpoints, 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
should clear this bit after writing a data packet to the buffer.
packet is written to the Y buffer for the in endpoint. The 7-bit value is set to the
number of bytes in the data packet for control, interrupt, or bulk endpoint
transfers and is set to the number of samples in the data packet for isochronous
endpoint 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.
A.4.4.2 USB In Endpoint − Y Buffer Base Address Byte (IEPBBAYx)
The USB in endpoint 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 endpoint.
7:0BBAY(10:3)Y Buffer base addressThe Y buffer base address value is set by the MCU to program the base
address location in memory to be used for the Y 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.4.3 USB In Endpoint − X Buffer Data Count Byte (IEPDCNTXx)
The USB in endpoint 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.
7NACKNo acknowledgeThe no acknowledge status bit is set to a 1 by the UBM at the end of a
6:0DCNTX(6:0)X Buffer data countThe X buffer data count value is set by the MCU or DMA when a new data
successful USB in transaction to this endpoint to indicate that the USB endpoint
X buffer is empty. For control, interrupt, or bulk endpoints, when this bit is set to
a 1, all subsequent transactions to the endpoint will result in a NACK handshake
response to the host PC. Also for control, interrupt, and bulk endpoints, to
enable this endpoint to transmit another data packet to the host PC, this bit
must be cleared to a 0 by the MCU. For isochronous endpoints, 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
should clear this bit after writing a data packet to the buffer.
packet is written to the X buffer for the in endpoint. The 7-bit value is set to the
number of bytes in the data packet for control, interrupt, or bulk endpoint
transfers and is set to the number of samples in the data packet for isochronous
endpoint 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.
A.4.4.4 USB In Endpoint − X and Y Buffer Size Byte (IEPBSIZx)
The USB in endpoint 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 endpoint.
and Y data packet buffers. Both buffers are programmed to the same size
based on this value. This value should be in 8 byte units. For example, a value
of 18h would result in the size of the X and Y buffers each being set to 192
bytes.
Submit Documentation Feedback
Product Folder Link(s): TUSB3200A
TUSB3200A
www.ti.com
SLES018A–OCTOBER 2001–REVISED JULY 2010
A.4.4.5 USB In Endpoint − X Buffer Base Address Byte (IEPBBAXx)
The USB in endpoint 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 endpoint.
7:0BBAX(10:3)X Buffer base addressThe 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.4.6 USB In Endpoint − Configuration Byte (IEPCNFx)
The USB in endpoint configuration byte contains the various bits used to configure and control the
endpoint. Note that the bits in this byte take on different functionality based on the type of endpoint
defined. Basically, the control, interrupt and bulk endpoints function differently than the isochronous
endpoints.
A.4.4.6.1 USB In Endpoint − Control, Interrupt or Bulk Configuration Byte
This section defines the functionality of the bits in the USB in endpoint configuration byte for control,
interrupt, and bulk endpoints.
7IEPENEndpoint enableThe endpoint enable bit is set to a 1 by the MCU to enable the in endpoint. This
6ISOIsochronous endpointThe isochronous endpoint bit is set to a 1 by the MCU to specify the use of a
5TOGGLEToggleThe toggle bit is controlled by the UBM and is toggled at the end of a successful
4DBUFDouble buffer modeThe double buffer mode bit is set to a 1 by the MCU to enable the use of both
3STALLStallThe stall bit is set to a 1 by the MCU to stall endpoint transactions. When this bit
2IEPIEInterrupt enableThe interrupt enable bit is set to a 1 by the MCU to enable the in endpoint
1:0—ReservedReserved for future use
bit does not affect the reception of the control endpoint setup stage transaction.
particular in endpoint for isochronous transactions. This bit should be cleared to
a 0 by the MCU to use a particular in endpoint for control, interrupt, or bulk
transactions.
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.
the X and Y data packet buffers for USB transactions to a particular in endpoint.
This bit should be cleared to a 0 by the MCU to use the single buffer mode. In
the single buffer mode, only the X buffer is used.
is set, the hardware will automatically return a stall handshake to the host PC
for any transaction received for the endpoint.
interrupt. See Section A.5.7.2 for details on the in endpoint interrupts.
7IEPENEndpoint enableThe endpoint enable bit is set to a 1 by the MCU to enable the in endpoint.
6ISOIsochronous endpointThe isochronous endpoint bit is set to a 1 by the MCU to specify the use of a
5OVFOverflowThe overflow bit is set to a 1 by the UBM to indicate a buffer overflow condition
4:0BPS(4:0)Bytes per sample
particular in endpoint for isochronous transactions. This bit should be cleared to
a 0 by the MCU for a particular in endpoint to be used for control, interrupt, or
bulk transactions.
has occurred. 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.
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, a PCM 16-bit stereo audio data sample
consists of 4 bytes. There are two bytes of left channel data and two bytes of
right channel data. For a four channel system using 16-bit data, the total
number of bytes would be 8, which would be the isochronous data sample size.
00h = 1 byte, 01h = 2 bytes, …, 1Fh = 32 bytes
A.4.5 USB Control Endpoint Setup Stage Data Packet Buffer
The USB control endpoint 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 endpoint transfer setup stage transaction. See Chapter
9 of the USB Specification for details on the data packet.
Table A-2. USB Control Endpoint Setup Data Packet
Buffer Address Map
ADDRESSNAME
FF2Fh
FF2Eh
FF2DhwIndex – Index or offset value.
FF2ChwIndex – Index or offset value.
FF2Bh
FF2Ah
FF29hbRequest – Specifies the particular request.
FF28h
wLength – Number of bytes to transfer in the data
stage.
wLength – Number of bytes to transfer in the data
stage.
wValue – Value of a parameter specific to the
request.
wValue – Value of a parameter specific to the
request.
bmRequestType – Identifies the characteristics of the
request.
The TUSB3200A 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 A-3. Memory Mapped Registers Address Map
ADDRESSMNEMONICNAME
FFFFhUSBFADRUSB function address register
FFFEhUSBSTAUSB status register
FFFDhUSBIMSKUSB interrupt mask register
FFFChUSBCTLUSB control register
FFFBhUSBFNLUSB frame number register (low byte)
FFFAhUSBFNHUSB frame number register (high byte)
FFF9hDMATSL3DMA channel 3 time slot assignment register (low byte)
FFF8hDMATSH3DMA channel 3 time slot assignment register (high byte)
FFF7hDMACTL3DMA channel 3 control register
FFF6hDMATSL2DMA channel 2 time slot assignment register (low byte)
FFF5hDMATSH2DMA channel 2 time slot assignment register (high byte)
FFF4hDMACTL2DMA channel 2 control register
FFF3hReservedReserved for future use
FFF2hReservedReserved for future use
FFF1hReservedReserved for future use
FFF0hDMATSL1DMA channel 1 time slot assignment register (low byte)
FFEFhDMATSH1DMA channel 1 time slot assignment register (high byte)
FFEEhDMACTL1DMA channel 1 control register
FFEDhReservedReserved for future use
FFEChReservedReserved for future use
FFEBhReservedReserved for future use
FFEAhDMATSL0DMA channel 0 time slot assignment register (low byte)
FFE9hDMATSH0DMA Channel 0 time slot assignment register (high byte)
FFE8hDMACTL0DMA channel 0 control register
FFE7hACGFRQ0Adaptive clock generator frequency register (byte 0)
FFE6hACGFRQ1Adaptive clock generator frequency register (byte 1)
FFE5hACGFRQ2Adaptive clock generator frequency register (byte 2)
FFE4hACGCAPLAdaptive clock generator mclk capture register (low byte)
FFE3hACGCAPHAdaptive clock generator mclk capture register (high byte)
FFE2hACGDCTLAdaptive clock generator divider control register
FFE1hACGCTLAdaptive clock generator control register
FFE0hCPTCNF1Codec port interface configuration register 1
FFDFhCPTCNF2Codec port interface configuration register 2
FFDEhCPTCNF3Codec port interface configuration register 3
FFDDhCPTCNF4Codec port interface configuration register 4
FFDChCPTCTLCodec port interface control and status register
FFDBhCPTADRCodec port interface address register
FFDAhCPTDATLCodec port interface data register (low byte)
FFD9hCPTDATHCodec port interface data register (high byte)
FFD8hCPTVSLLCodec port interface valid slots register (low byte)
FFD7hCPTVSLHCodec port interface valid slots register (high byte)
FFD6hReservedReserved for future use
FFD5hReservedReserved for future use
FFD4hReservedReserved for future use
FFD3hReservedReserved for future use
FFD2hReservedReserved for future use
FFD1hReservedReserved for future use
FFD0hReservedReserved for future use
FFCFhReservedReserved for future use
FFCEhReservedReserved for future use
FFCDhReservedReserved for future use
FFCChReservedReserved for future use
FFCBhReservedReserved for future use
FFCAhReservedReserved for future use
FFC9hReservedReserved for future use
FFC8hReservedReserved for future use
FFC7hReservedReserved for future use
FFC6hReservedReserved for future use
FFC5hReservedReserved for future use
FFC4hReservedReserved for future use
FFC3hI2CADRI2C interface address register
FFC2hI2CDATII2C interface receive data register
FFC1hI2CDATOI2C interface transmit data register
FFC0hI2CCTLI2C interface control and status register
FFBFhPWMFRQPWM frequency register
FFBEhPWMPWLPWM pulse width register (low byte)
FFBDhPWMPWHPWM pulse width register (high byte)
FFBChReservedReserved for future use
FFBBhReservedReserved for future use
FFBAhReservedReserved for future use
FFB9hReservedReserved for future use
FFB8hReservedReserved for future use
FFB7hReservedReserved for future use
FFB6hReservedReserved for future use
FFB5hReservedReserved for future use
FFB4hOEPINTUSB out endpoint interrupt register
FFB3hIEPINTUSB in endpoint interrupt register
FFB2hVECINTInterrupt vector register
FFB1hGLOBCTLGlobal control register
FFB0hMEMCFGMemory configuration register
This section describes the memory-mapped registers used for control and operation of the USB functions.
This section consists of 6 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 endpoint.
7RSTRFunction resetThe function reset bit is set to a 1 by hardware in response to the host
6SUSRFunction suspendThe function suspend bit is set to a 1 by hardware when a USB
5RESRFunction resumeThe function resume bit is set to a 1 by hardware when a USB resume
4SOFStart-of-frameThe start-of-frame bit is set to a 1 by hardware when a new USB
3PSOFPseudo start-of-frameThe pseudo start-of-frame bit is set to a 1 by hardware when a USB
2SETUPSetup stage transactionThe setup stage transaction bit is set to a 1 by hardware when a
1—ReservedReserved for future use
0STPOWSetup stage transactionThe setup stage transaction over-write bit is set to a 1 by hardware
overwritewhen the data in the USB control endpoint setup data packet buffer is
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 TUSB3200A 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) signal from
the TUSB3200A device will also be active when a USB reset occurs.
This bit is read only and is cleared when the MCU writes to the
interrupt vector register.
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.
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.
frame starts. This bit is set when the SOF packet from the host PC is
detected, even if the TUSB3200A 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.
pseudo SOF occurs. The pseudo SOF is an artificial SOF signal that
is generated when the TUSB3200A 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 pseudo SOF
rate is 1 ms.
successful control endpoint setup stage transaction is completed.
Upon completion of the setup stage transaction, the USB control
endpoint setup stage data packet buffer should contain a new setup
stage data packet.
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.
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.
7CONTFunction connectThe function connect bit is set to a 1 by the MCU to connect the
6FENFEN Function enableThe function enable bit is set to a 1 by the MCU to enable the
5RWUPRemote wake-upThe remote wake-up bit is set to a 1 by the MCU to request the
4FRSTEFunction reset enableThe function reset enable bit is set to a 1 by the MCU to enable the
3:0—ReservedReserved for future use
TUSB3200A 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 the PCB to the TUSB3200A 3.3-V supply
voltage. When this bit is cleared to a 0, the PUR output is in the
3-state mode. This bit is not affected by a USB reset.
TUSB3200A device to respond to USB transactions. If this bit is
cleared to a 0, the UBM will ignore all USB transactions. This bit is
cleared by a USB reset.
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.
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 TUSB3200A device will also be active when a USB reset
occurs. This bit is not affected by USB reset.
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.
7:0FN(7:0)Frame numberThe 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 TUSB3200A 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.
7:3—ReservedReserved for future use.
2:0FN(10:8)Frame numberThe 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 TUSB3200A 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 four DMA channels. Each DMA channel
has a set of three registers.
The DMA channel 3 time slot assignment register (low byte) contains the eight least significant time slot
bits. The time slot assignment bits are used to define which codec port interface time slots are supported
by DMA channel 3. The DMA channel will control the transfer of data between the USB endpoint buffers
and the codec port interface registers based on which bits are set. The direction of the data transfer
depends on the value of the USB endpoint direction bit (EPDIR) in the DMA channel 3 control register.
The desired time slot bits should be set by the MCU before the DMA channel is enabled. There are a total
of fourteen time slot bits for each DMA channel.
The DMA channel 3 time slot assignment register (high byte) contains the six most significant time slot
bits. In addition, this register contains the bytes per time slot control bits.
7:6BPTS(1:0)Bytes per time slotThe bytes per time slot bits are used to define the number of bytes to
5:0TSL(13:8)Time slot assignmentThe DMA time slot assignment bits are set to a 1 by the MCU to
be transferred for each 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 a
1 by the MCU to define the codec port interface time slots supported
by this DMA channel.
define the codec port interface time slots supported by this DMA
channel.
A.5.2.3 DMA Channel 3 Control Register (DMACTL3 − Address FFF7h)
The DMA channel 3 control register is used to store various control bits for DMA channel 3.
7DMAENDMA enableThe DMA enable bit is set to a 1 by the MCU to enable this DMA
6WABENWrap-around buffer enableThe wrap-around buffer enable bit is used by the MCU to enable or
5—ReservedReserved for future use
4—ReservedReserved for future use
3EPDIRUSB endpoint directionThe USB endpoint direction bit controls the direction of data transfer
2:0EPNUM(2:0)USB endpoint number
channel. Before enabling the DMA channel, all other DMA channel
configuration bits should be set to the desired value.
disable the wrap-around buffer operation. The wrap-around buffer
operation can only be used by isochronous out endpoints or
isochronous in endpoints that are serviced by the DMA channels. The
wrap-around buffer operation is enabled or disabled separately for
each DMA channel. For a DMA channel, the MCU should set this bit
to a 1 to enable the wrap-around buffer operation and clear this bit to
a 0 to disable the wrap-around buffer operation. Both the DMA
channel and UBM logic use this bit to determine the required
functionality.
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 endpoint. The MCU should
clear this bit to a 0 to configure this DMA channel to be used for a
USB out endpoint.
The USB endpoint number bits are set by the MCU to define the USB
endpoint number supported by this DMA channel. Keep in mind that
endpoint 0 is always used for the control endpoint, which is serviced
by the MCU and not a DMA channel.
The DMA channel 2 time slot assignment register (low byte) contains the eight least significant time slot
bits. The time slot assignment bits are used to define which codec port interface time slots are supported
by DMA channel 2. The DMA channel will control the transfer of data between the USB endpoint buffers
and the codec port interface registers based on which bits are set. The direction of the data transfer
depends on the value of the USB endpoint direction bit (EPDIR) in the DMA channel 2 control register.
The desired time slot bits should be set by the MCU before the DMA channel is enabled. There are a total
of fourteen time slot bits for each DMA channel.
The DMA channel 2 time slot assignment register (high byte) contains the six most significant time slot
bits. In addition, this register contains the bytes per time slot control bits.
7DMAENDMA enableThe DMA enable bit is set to a 1 by the MCU to enable this DMA
6WABENWrap-around buffer enableThe wrap-around buffer enable bit is used by the MCU to enable or
5—ReservedReserved for future use
4—ReservedReserved for future use
3EPDIRUSB endpoint directionThe USB endpoint direction bit controls the direction of data transfer
2:0EPNUM(2:0)USB endpoint number
channel. Before enabling the DMA channel, all other DMA channel
configuration bits should be set to the desired value.
disable the wrap-around buffer operation. The wrap-around buffer
operation can only be used by isochronous out endpoints or
isochronous in endpoints that are serviced by the DMA channels. The
wrap-around buffer operation is enabled or disabled separately for
each DMA channel. For a DMA channel, the MCU should set this bit
to a 1 to enable the wrap-around buffer operation and clear this bit to
a 0 to disable the wrap-around buffer operation. Both the DMA
channel and UBM logic use this bit to determine the required
functionality.
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 endpoint. The MCU should
clear this bit to a 0 to configure this DMA channel to be used for a
USB out endpoint.
The USB endpoint number bits are set by the MCU to define the USB
endpoint number supported by this DMA channel. Keep in mind that
endpoint 0 is always used for the control endpoint, which is serviced
by the MCU and not a DMA channel.
The DMA channel 1 time slot assignment register (low byte) contains the eight least significant time slot
bits. The time slot assignment bits are used to define which codec port interface time slots are supported
by DMA channel 1. The DMA channel will control the transfer of data between the USB endpoint buffers
and the codec port interface registers based on which bits are set. The direction of the data transfer
depends on the value of the USB endpoint direction bit (EPDIR) in the DMA channel 1 control register.
The desired time slot bits should be set by the MCU before the DMA channel is enabled. There are a total
of fourteen time slot bits for each DMA channel.
The DMA channel 1 time slot assignment register (high byte) contains the six most significant time slot
bits. In addition, this register contains the bytes per time slot control bits.
7DMAENDMA enableThe DMA enable bit is set to a 1 by the MCU to enable this DMA channel. Before
6WABENThe wrap-around buffer enable bit is used by the MCU to enable or disable the
5—ReservedReserved for future use
4—ReservedReserved for future use
3EPDIRUSB endpointThe USB endpoint direction bit controls the direction of data transfer by this DMA
directionchannel. The MCU should set this bit to a 1 to configure this DMA channel to be used for
2:0EPNUM(2:0)USB endpointThe USB endpoint number bits are set by the MCU to define the USB endpoint number
numbersupported by this DMA channel. Keep in mind that endpoint 0 is always used for the
enabling the DMA channel, all other DMA channel configuration bits should be set to the
desired value.
wrap-around buffer operation. The wrap-around buffer operation can only be used by
isochronous out endpoints or isochronous in endpoints that are serviced by the DMA
channels. The wrap-around buffer operation is enabled or disabled separately for each
DMA channel. For a DMA channel, the MCU should set this bit to a 1 to enable the
wrap-around buffer operation and clear this bit to a 0 to disable the wrap-around buffer
operation. Both the DMA channel and UBM logic use this bit to determine the required
functionality.
a USB in endpoint. The MCU should clear this bit to a 0 to configure this DMA channel to
be used for a USB out endpoint.
control endpoint, which is serviced by the MCU and not a DMA channel.
The DMA channel 0 time slot assignment register (low byte) contains the eight least significant time slot
bits. The time slot assignment bits are used to define which codec port interface time slots are supported
by DMA channel 0. The DMA channel will control the transfer of data between the USB endpoint buffers
and the codec port interface registers based on which bits are set. The direction of the data transfer
depends on the value of the USB endpoint direction bit (EPDIR) in the DMA channel 0 control register.
The desired time slot bits should be set by the MCU before the DMA channel is enabled. There are a total
of fourteen time slot bits for each DMA channel.
The DMA channel 0 time slot assignment register (high byte) contains the six most significant time slot
bits. In addition, this register contains the bytes per time slot control bits.
7DMAENDMA enableThe DMA enable bit is set to a 1 by the MCU to enable this DMA channel. Before
6WABENThe wrap-around buffer enable bit is used by the MCU to enable or disable the
5—ReservedReserved for future use
4—ReservedReserved for future use
3EPDIRUSB endpoint directionThe USB endpoint direction bit controls the direction of data transfer by this DMA
2:0EPNUM(2:0)USB endpoint numberThe USB endpoint number bits are set by the MCU to define the USB endpoint
enabling the DMA channel, all other DMA channel configuration bits should be set to
the desired value.
wrap-around buffer operation. The wrap-around buffer operation can only be used by
isochronous out endpoints or isochronous in endpoints that are serviced by the DMA
channels. The wrap-around buffer operation is enabled or disabled separately for
each DMA channel. For a DMA channel, the MCU should set this bit to a 1 to enable
the wrap-around buffer operation and clear this bit to a 0 to disable the wrap-around
buffer operation. Both the DMA channel and UBM logic use this bit to determine the
required functionality.
channel. The MCU should set this bit to a 1 to configure this DMA channel to be used
for a USB in endpoint. The MCU should clear this bit to a 0 to configure this DMA
channel to be used for a USB out endpoint.
number supported by this DMA channel. Keep in mind that endpoint 0 is always used
for the control endpoint, which is serviced by the MCU and not a DMA channel.
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, ACGFRQ0, ACGFRQ1, and
ACGFRQ2, contain the 24-bit value used to program the ACG 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.
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. Basically 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.
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.
The adaptive clock generator divider control register contains the control bits for programming the MCLKI
signal divider and the MCLKO signal divider. See Section 2.2.10 for the operation details of the adaptive
clock generator and how to program these dividers.
7—ReservedReserved for future use
6MCLKENMCLK output enableThe MCLK output enable bit is set to a 1 by the MCU to enable the MCLKO
5MCLKCPMCLK capture sourceThe MCLK capture source bit is used by the MCU to select between the
4MCLKISMCLK input selectThe MCLK input select bit is used by the MCU to select between the MCLKI
3—ReservedReserved for future use
2DIVENDivider enableThe divider enable bit is set to a 1 by the MCU to enable the divide-by-I and
1:0—ReservedReserved for future use
signal to be an output from the TUSB3200A device. If the MCLKO signal is
not being used, then the MCU can clear this bit to a 0 to disable the output.
MCLKO output signal and the MCLKO2 output signal as the source for the
16-bit MCLK cycle counter clock. When this bit is cleared to a 0, the clock
used is MCLKO and when this bit is set to a 1 the clock used is MCLKO2. 4
input signal and the MCLKI2 input signal as a source for MCLK if the
internally generated MCLK is not being used. When this bit is cleared to a
0, the clock used is MCLKI and when this bit is set to a 1 the clock used is
MCLKI2.
divide-by-M circuits. The MCU should program the MCLK input select bit,
the MCLK capture source bit and the MCLK output enable bit before setting
this bit to a 1.
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.
7:3NTSL(4:0)Number of time slotsThe number of time slots bits are set by the MCU to program the number of time slots
2:0MODE(2:0)Mode select
per audio frame.
00000b = 1 time slot per00001b = 2 time slots per11111b = 32 time slots
frame,frame, …,per frame
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
100b = mode 4 - I2S mode – 3 serial data outputs and 1 serial data input
101b = mode 5 - I2S mode – 2 serial data outputs and 2 serial data inputs
110b = mode 6 - I2S mode – 1 serial data output and 3 serial data inputs
111b = mode 7 - I2S mode – 4 serial data outputs and no serial data inputs
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
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
The time slot length bits are set by the MCU to program the number of serial
clock (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
7DDLYData delayThe data delay bit is set to a 1 by the MCU to program a one CSCLK cycle delay of
6TRSEN3-State enableThe 3-state enable bit is set to a 1 by the MCU to program the hardware to 3-state
5CSCLKPCSCLK polarityThe CSCLK polarity bit is used by the MCU to program the clock edge used for the
4CSYNCPCSYNC polarityThe CSYNC polarity bit is set to a 1 by the MCU to program the polarity of the
3CSYNCLCSYNC lengthThe CSYNC length bit is set to a 1 by the MCU to program the length of the codec
2BYORByte orderThe byte order bit is used by the MCU to program the byte order for the data moved
1CSCLKDCSCLK directionThe CSCLK direction bit is set to a 1 by the MCU to program the direction of the
0CSYNCDCSYNC directionThe CSYNC direction bit is set to a 1 by the MCU to program the direction of the
the serial data output and input signals in reference to the leading edge of the
CSYNC signal. The MCU should clear this bit to a 0 for no delay between these
signals.
the serial data output signal for the time slots during the audio frame that are not
valid. The MCU should 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.
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 will be generated with the negative edge of
the CSCLK signal and the CDATI signal will be sampled with the positive edge of
the CSCLK signal. When this bit is cleared to a 0, the CSYNC signal will be
generated with the positive edge of the CSCLK signal. Also, when this bit is cleared
to a 0, the CDATO signal will be generated with the positive edge of the CSCLK
signal and the CDATI signal will be sampled with the negative edge of the CSCLK
signal.
codec port interface frame sync (CSYNC) output signal to be active high. The MCU
should clear this bit to a 0 to program the polarity of the CSYNC output signal to be
active low.
port interface frame sync (CSYNC) output signal to be the same number of CSCLK
cycles as time slot 0. The MCU should clear this bit to a 0 to program the length of
the CSYNC output signal to be one CSCLK cycle.
by the DMA between the USB endpoint buffer and the codec port interface. When
this bit is set to a 1, the byte order of each audio sample will be reversed when the
data is moved to/from the USB endpoint buffer. When this bit is cleared to a 0, the
byte order of the each audio sample will be unchanged.
codec port interface serial clock (CSCLK) signal as an input to the TUSB3200A
device. The MCU should clear this bit to a 0 to program the direction of the CSCLK
signal as an output from the TUSB3200A device.
codec port interface frame sync (CSYNC) signal as an input to the TUSB3200A
device. The MCU should clear this bit to a 0 to program the direction of the CSYNC
signal as an output from the TUSB3200A device.
7:4ATSL(3:0)Command/statusThe command/status address/data time slot bits are set by the MCU to program the time
3CLKSClock select
2:0DIVB(2:0)Divide by B value
address/data time slotslots to be used for the secondary communication address and data values. For the AC
'97 modes of operation, this value should be set to 0001b which will result 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 should be set to 0111b
which will result in time slot 7 being used for both the address and data.
0000b = time slot 0,0001b = time slot 1, …,1111b = time slot 15
The divide by B control bits are set by the MCU to program the CSCLK 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
7RXFReceive data register full The receive data register full bit is set to a 1 by hardware when a new data value
6RXIEReceive interrupt enable The receive interrupt enable bit is set to a 1 by the MCU to enable the C-port
5TXETransmit data registerThe transmit data register empty bit is set to a 1 by hardware when the data value in
emptythe transmit data register has been sent to the codec device. This bit is read only
4TXIETransmit interrupt enable The transmit interrupt enable bit is set to a 1 by the MCU to enable the codec port
3—ReservedReserved for future use.
2:1CID(1:0)Codec IDThe codec ID bits are used by the MCU to select between the primary codec device
0vCodec resetThe codec reset bit is used by the MCU to control the codec port interface reset
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 will be cleared
but this status bit will not be cleared at that time.
receive data register full interrupt.
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 iInterrupt vector
register, the codec port interface transmit data register empty interrupt will be
cleared but this status bit will not be cleared at that time.
interface transmit data register empty interrupt.
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, 10 or 11, the secondary codec device is selected. Note
that when only a primary codec device is connected to the TUSB3200A, the bits
should remain cleared to 00.
(CRESET) output signal from the TUSB3200A device. When this bit is set to a 1, the
CRESET signal is a high. When this bit is cleared to a 0, the CRESET signal is
active low. At power up this bit is cleared to a 0, which means the CRESET output
signal will be active low and will remain active low until the MCU sets this bit to a 1.
Note that this output signal is not used in the I2S modes of operation.
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 TUSB3200A MCU and the codec device. For write transactions to
the codec, the 8-bit value in this register will be 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 should
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.
7R/WCommand/status read/write The command/status read/write control bit value is set by the MCU to
6:0A(6:0)Command/status addressThe command/status address value is set by the MCU to program the
controlprogram the type of secondary communication transaction to be done. This
bit should be set to a 1 by the MCU for a read transaction and cleared to a
0 by the MCU for a write transaction.
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 TUSB3200A 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.
7:0D(7:0)Command/status dataThe 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 value is updated by hardware with the status data received from the codec
device for read transactions.
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 TUSB3200A 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.
7:0D(15:8)Command/status dataThe 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 value is updated by hardware with the status data
received from the codec device for 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.
7:3VTSL(8:12)Valid time slotThe valid time slot bits are set to a 1 by the MCU to define which time slots in
2:0—ReservedReserved for future use
the audio frame contain valid data. The MCU should 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.
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.
7VFValid frameThe valid frame bit is set to a 1 by the MCU to indicate that the current audio
6PCRDYPrimary codec readyThe primary codec ready bit is updated by hardware each audio frame based
5SCRDYSecondary codec readyThe secondary codec ready bit is updated by hardware each audio frame
4:0VTSL(3:7)Valid time slotThe valid time slot bits are set to a 1 by the MCU to define which time slots in
frame contains at least one time slot with valid data. The MCU should clear
this bit to a 0 to indicate that the current audio frame does not contain any time
slots with valid data.
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.
based on the value of bit 15 in time slot 0 of the incoming serial data from the
secondary codec. 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 TUSB3200A device.
the audio frame contain valid data. The MCU should 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.5 I2C Interface Registers
This section describes the memory-mapped registers used for the I2C Interface control and operation. The
I2C interface has a set of four registers. See Section 2.1.14 for the operation details of the I2C Interface.
7:1A(6:0)AddressThe address bit values are set by the MCU to program the 7-bit I2C slave
0RWRead/w3rite controlThe read/write control bit value is set by the MCU to program the type of I2C
address of the device to be accessed. Each I2C slave device should have a
unique address on the I2C bus. This address is used to identify the device on
the bus to be accessed and is not the internal memory address to be
accessed within the device.
transaction to be done. This bit should be set to a 1 by the MCU for a read
transaction and cleared to a 0 by the MCU for a write transaction.
7:0RXD(7:0)Receive dataThe receive data byte value is updated by hardware for each data byte
received from the I2C slave device.
A.5.5.3 I2C Interface Transmit Data Register (I2CDATO − Address FFC1h)
The I2C 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.
7RXFReceive data register fullThe receive data register full bit is set to a 1 by hardware when a new data
6RXIEReceive interrupt enableThe receive interrupt enable bit is set to a 1 by the MCU to enable the I2C
5ERRError conditionThe error condition bit is set to a 1 by hardware when the slave device does
4FRQFrequency selectThe frequency select bit is used by the MCU to program the I2C serial clock
3TXETransmit data register empty The transmit data register empty bit is set to a 1 by hardware when the data
2TXIETransmit interrupt enableThe transmit interrupt enable bit is set to a 1 by the MCU to enable the I2C
1STPRDStop − read transactionThe stop read transaction bit is set to a 1 by the MCU to enable the hardware
0STPWRStop − write transactionThe stop write transaction bit is set to a 1 by the MCU to enable the
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, the I2C receive data register full interrupt will
be cleared but this status bit will not be cleared at that time.
receive data register full interrupt.
not respond. This bit is read/write and can only be cleared by the MCU.
(SCL) output signal frequency. A value of 0 sets the SCL frequency to 100
kHz and a value of 1 sets the SCL frequency to 400 kHz.
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, the I2C transmit data register empty interrupt will
be cleared but this status bit will not be cleared at that time.
transmit data register empty interrupt.
to generate a stop condition on the I2C bus after the next data byte from the
slave device is received into the receive data register. The MCU should clear
this bit to a 0 after the read transaction has concluded.
hardware to generate a stop condition on the I2C bus after the data byte in
the transmit data register is sent to the slave device. The MCU should clear
this bit to a 0 after the write transaction has concluded.
A.5.6 PWM Registers
This section describes the memory-mapped registers used for the PWM output control and operation. The
PWM output has a set of three registers.
A.5.6.1 PWM Frequency Register (PWMFRQ − Address FFBFh)
The PWM frequency register contains the control bits for programming the frequency of the PWM output
and for enabling the PWM output circuitry.
7:0PW(15:8)PWM pulse widthThe PWM pulse width control bits are set by the MCU to program the
pulse width (duty cycle) of the PWM output signal. A value of 0000h
results in a 0-V dc level and a value of FFFFh results in a 5-V dc level.
A.5.7 Miscellaneous Registers
This section describes the memory-mapped registers used for the control and operation of miscellaneous
functions in the TUSB3200A device. The registers include the USB out endpoint interrupt register, the
USB in endpoint interrupt register, the interrupt vector register, the global control register, and the memory
configuration register.
A.5.7.1 USB Out Endpoint Interrupt Register (OEPINT − Address FFB4h)
The USB out endpoint interrupt register contains the interrupt pending status bits for the USB out
endpoints. These bits do not apply to the USB isochronous endpoints. Also, these bits are read only by
the MCU and are used for diagnostic purposes only.
7:0OEPI(7:0)Out endpoint interruptThe out endpoint interrupt status bit for a particular USB out endpoint is set
to a 1 by the UBM when a successful completion of a transaction occurs to
that out endpoint. When a bit is set, an interrupt to the MCU will be
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 out endpoints.
A.5.7.2 USB In Endpoint Interrupt Register (IEPINT − Address FFB3h)
The USB in endpoint interrupt register contains the interrupt pending status bits for the USB in endpoints.
These bits do not apply to the USB isochronous endpoints. Also, these bits are read only by the MCU and
are used for diagnostic purposes only.
7:0IEPI(7:0)In endpoint interruptThe in endpoint interrupt status bit for a particular USB in endpoint is set to a
1 by the UBM when a successful completion of a transaction occurs to that in
endpoint. When a bit is set, an interrupt to the MCU will be 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 endpoints.
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 TUSB3200A 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.
7—ReservedReserved for future use
6—ReservedReserved for future use
5:0IVEC(5:0)Interrupt vector
00h = USB out endpoint 0over-write
01h = USB out endpoint 111h = Reserved
02h = USB out endpoint 212h = USB setup stage transaction
03h = USB out endpoint 313h = USB pseudo start-of-frame
04h = USB out endpoint 414h = USB start-of-frame
05h = USB out endpoint 515h = USB function resume
06h = USB out endpoint 616h = USB function suspend
07h = USB out endpoint 717h = USB function reset
08h = USB in endpoint 018h = C-port receive data register full
09h = USB in endpoint 119h = C-port transmit data register
0Ah = USB in endpoint 2
0Bh = USB in edpoint 3
0Ch = USB in endpoint 4
0Dh = USB in endpoint 5
0Eh = USB in endpoint 6
0Fh = USB in endpoint 7
10h = USB setup stage transaction
empty
1Ah = Reserved
1Bh = Reserved
1Ch = I2C receive data register full
1Dh = I2C transmit data register empty
1Eh = Reserved
1Fh = External interrupt input
6XINTENExternal interrupt enableThe external interrupt enable bit is set to a 1 by the MCU to enable the use
5PUDISPullup resistor disableThe pullup resistor disable bit is set to a 1 by the MCU to disable the
4—ReservedReserved for future use
3—ReservedReserved for future use
2LPWRLow power mode disableThe low power mode disable bit is used by the MCU to disable the
1—ReservedReserved for future use
0CPTENCodec port enableThe codec port enable bit is set to a 1 by the MCU to enable the operation
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
of the external interrupt input to the TUSB3200A device.
TUSB3200A on-chip pullup resistors.
TUSB3200A semi-low power state. When this bit is cleared to a 0, all USB
functional blocks including the USB buffers and configuration blocks are
powered-down. For normal operation, the MCU must set this bit to a 1.
of the codec port interface. Note that the codec port interface configuration
registers should be fully programmed before this bit is set by the MCU.
7MEMTYPCode memory typeThe code memory type bit identifies if the type of memory used for the application
6:5CODESZ(1:0)Code space sizeThe code space size bits identify the size of the application program code memory
4:1REV(3:0)IC revisionThe IC revision bits identify the revision of the IC.
0SDWShadow the boot ROM The shadow the boot ROM bit is set to a 1 by the MCU to switch the MCU memory
program code space is ROM or RAM. For the TUSB3200A, an 8K byte RAM is
used and this bit is tied to 1.
space. For the TUSB3200A, an 8K byte RAM is used and these bits are tied to
01b.
00b = 4K bytes,10b = 16K bytes,11b = 32K bytes
0000b = Rev. -,0001b = Rev. A, …,1111b = Rev. F
configuration from boot loader mode to normal operating mode. This should occur
after completion of the download of the application program code by the boot
ROM.
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), Pb-Free (RoHS Exempt), 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.
Pb-Free (RoHS Exempt): This component has a RoHS exemption for either 1) lead-based flip-chip solder bumps used between the die and
package, or 2) lead-based die adhesive used between the die and leadframe. The component is otherwise considered Pb-Free (RoHS
compatible) as defined above.
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
MECHANICAL DATA
MTQF005A – OCTOBER 1994 – REVISED DECEMBER 1996
PAH (S-PQFP-G52)PLASTIC QUAD FLATPACK
40
52
0,65
1,05
0,95
39
0,38
0,22
27
26
14
1
7,80 TYP
10,20
SQ
9,80
12,20
SQ
11,80
13
M
0,13
Seating Plane
0,05 MIN
0,13 NOM
Gage Plane
0,25
0°–7°
0,75
0,45
1,20 MAX
NOTES: A. All linear dimensions are in millimeters.
B. This drawing is subject to change without notice.
C. Falls within JEDEC MS-026
0,10
4040281/C 11/96
POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
1
IMPORTANT NOTICE
Texas Instruments Incorporated and its subsidiaries (TI) reserve the right to make corrections, modifications, enhancements, improvements,
and other changes to its products and services at any time and to discontinue any product or service without notice. Customers should
obtain the latest relevant information before placing orders and should verify that such information is current and complete. All products are
sold subject to TI’s terms and conditions of sale supplied at the time of order acknowledgment.
TI warrants performance of its hardware products to the specifications applicable at the time of sale in accordance with TI’s standard
warranty. Testing and other quality control techniques are used to the extent TI deems necessary to support this warranty. Except where
mandated by government requirements, testing of all parameters of each product is not necessarily performed.
TI assumes no liability for applications assistance or customer product design. Customers are responsible for their products and
applications using TI components. To minimize the risks associated with customer products and applications, customers should provide
adequate design and operating safeguards.
TI does not warrant or represent that any license, either express or implied, is granted under any TI patent right, copyright, mask work right,
or other TI intellectual property right relating to any combination, machine, or process in which TI products or services are used. Information
published by TI regarding third-party products or services does not constitute a license from TI to use such products or services or a
warranty or endorsement thereof. Use of such information may require a license from a third party under the patents or other intellectual
property of the third party, or a license from TI under the patents or other intellectual property of TI.
Reproduction of TI information in TI data books or data sheets is permissible only if reproduction is without alteration and is accompanied
by all associated warranties, conditions, limitations, and notices. Reproduction of this information with alteration is an unfair and deceptive
business practice. TI is not responsible or liable for such altered documentation. Information of third parties may be subject to additional
restrictions.
Resale of TI products or services with statements different from or beyond the parameters stated by TI for that product or service voids all
express and any implied warranties for the associated TI product or service and is an unfair and deceptive business practice. TI is not
responsible or liable for any such statements.
TI products are not authorized for use in safety-critical applications (such as life support) where a failure of the TI product would reasonably
be expected to cause severe personal injury or death, unless officers of the parties have executed an agreement specifically governing
such use. Buyers represent that they have all necessary expertise in the safety and regulatory ramifications of their applications, and
acknowledge and agree that they are solely responsible for all legal, regulatory and safety-related requirements concerning their products
and any use of TI products in such safety-critical applications, notwithstanding any applications-related information or support that may be
provided by TI. Further, Buyers must fully indemnify TI and its representatives against any damages arising out of the use of TI products in
such safety-critical applications.
TI products are neither designed nor intended for use in military/aerospace applications or environments unless the TI products are
specifically designated by TI as military-grade or "enhanced plastic." Only products designated by TI as military-grade meet military
specifications. Buyers acknowledge and agree that any such use of TI products which TI has not designated as military-grade is solely at
the Buyer's risk, and that they are solely responsible for compliance with all legal and regulatory requirements in connection with such use.
TI products are neither designed nor intended for use in automotive applications or environments unless the specific TI products are
designated by TI as compliant with ISO/TS 16949 requirements. Buyers acknowledge and agree that, if they use any non-designated
products in automotive applications, TI will not be responsible for any failure to meet such requirements.
Following are URLs where you can obtain information on other Texas Instruments products and application solutions:
ProductsApplications
Amplifiersamplifier.ti.comAudiowww.ti.com/audio
Data Convertersdataconverter.ti.comAutomotivewww.ti.com/automotive
DLP® Productswww.dlp.comCommunications andwww.ti.com/communications
DSPdsp.ti.comComputers andwww.ti.com/computers
Clocks and Timerswww.ti.com/clocksConsumer Electronicswww.ti.com/consumer-apps
Interfaceinterface.ti.comEnergywww.ti.com/energy
Logiclogic.ti.comIndustrialwww.ti.com/industrial
Power Mgmtpower.ti.comMedicalwww.ti.com/medical
Microcontrollersmicrocontroller.ti.comSecuritywww.ti.com/security
RFIDwww.ti-rfid.comSpace, Avionics &www.ti.com/space-avionics-defense
RF/IF and ZigBee® Solutions www.ti.com/lprfVideo and Imagingwww.ti.com/video