Datasheet

8−21
SLLS535E − April 2008 TUSB6250
8.10.10 OEPBBAX_n: Output Endpoint X-Buffer Base Address Register (n = 1 to 4) (XDATA at F019,
F029, F039, F049)
The OEPBBAX_n register contains the X-buffer base address for the specified output endpoint.
76543210
A11 A10 A9 A8 A7 A6 A5 A4
R/W R/W R/W R/W R/W R/W R/W R/W
BIT
NAME RESET FUNCTION
7−0 A[11:4] 00h This is the middle 8-bit value of the complete (1110 and A[11:4] and 0000) 16-bit X-buffer base address.
See Figure 8−4. This value is set by the MCU. The UBM or the DMA uses this value as the start
address of X-buffer for a given transaction.
8.10.11 OEPBCNLX_n: Output Endpoint X-Buffer Byte-Count Low-Byte Register (n = 1 to 4) (XDATA at
F01A, F02A, F03A, F04A)
The OEPBCNLX_n register contains the lower 8-bit value in the X-buffer that is used to specify the amount
of data received in a data packet from the USB host.
76543210
C7 C6 C5 C4 C3 C2 C1 C0
R/O R/O R/O R/O R/O R/O R/O R/O
BIT
NAME RESET FUNCTION
7−0 C[7:0] 00h X-buffer byte-count: low byte
8.10.12 OEPBCNHX_n: Output Endpoint X-Buffer Byte-Count High-Byte Register (n = 1 to 4) (XDATA at
F01B, F02B, F03B, F04B)
The OEPBCNHX_n register contains the NAK bit and the higher 3-bit value in the X-buffer that is used to
specify the amount of data received in a data packet from the USB host.
76543210
NAK RSV RSV RSV RSV C
10
C
9
C
8
R/W R/O R/O R/O R/O R/O R/O R/O
BIT
NAME RESET FUNCTION
2−0 C[10:8] 000 X-buffer byte count higher 3 bits. These bits, in combination with C[7:0], provide the byte count of a
given transaction (count = 0 to 2047).
6−3 RSV 0000 Reserved = 0
7 NAK 0 NAK bit is used as flow control handshake for X-buffer.
NAK = 0 This bit is cleared to 0 by the firmware to indicate that the endpoint data buffer is empty and
ready for a Host-OUT request.
NAK = 1 This bit is set to 1 by the TUSB6250 hardware to indicate that the endpoint data buffer
contains a valid packet from the host (TUSB6250 NAKs the host-OUT request).
Below is the procedure to be followed by the firmware when using the NAK bit for flow control handshake. For
the purpose of illustration, it is assumed that the double buffer (DBUF) is enabled. If DBUF is not enabled, the
X-buffer is always used regardless of the value of the data packet PID of the coming out-transfer.
Assume that NAK = 0 and both out-endpoint data buffers are empty, when the first out-transfer comes.
The TUSB6250 responds to the out-transfer with an ACK handshake and starts processing the data
payload received for this out-transfer immediately.
Meanwhile, the TUSB6250 hardware sets the NAK bit to 1 to indicate that the current endpoint data buffer
contains a valid packet from the host such that the TUSB6250 can either NYET-then-NAK (for USB
high-speed connection) or simply ACK-then-NAK (for USB full-speed connection) any further host-out
request to this endpoint. It should be noted that both the X-buffer and Y-buffer have their own NAK bit.