Freelance Electronics Components Distributor
Closed Dec 25th-26th
800-300-1968
We Stock Hard to Find Parts

TUSB3200ACPAH

Part # TUSB3200ACPAH
Description USB STREAMING CONTROLLER
Category IC
Availability Out of Stock
Qty 0
Qty Price
1 + $6.01940



Technical Document


DISCLAIMER: The information provided herein is solely for informational purposes. Customers must be aware of the suitability of this product for their application, and consider that variable factors such as Manufacturer, Product Category, Date Codes, Pictures and Descriptions may differ from available inventory.

2–12
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.
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.
2–13
NOTE: In double buffer mode for bulk in transactions, the UBM selects between the X and Y
buffer based on the value of the toggle bit. If the toggle bit is a 0, the UBM 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.4 Isochronous Transfers
The TUSB3200 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.
The transfer of isochronous data on the USB requires the use of double buffering. The TUSB3200 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.
2–14
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 iIn 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 not an endpoint interrupt generated for isochronous
endpoints.
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 not an endpoint interrupt generated for isochronous endpoints.
2.2.8 Adaptive Clock Generator (ACG)
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 TUSB3200. 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.
PREVIOUS345678910111213141516NEXT