Datasheet
8−23
SLLS535E − April 2008 TUSB6250
8.10.16 OEPBCNHY_n: Output Endpoint Y-Buffer Byte-Count High-Byte Register (n = 1 to 4) (XDATA at
F01F, F02F, F03F, F04F)
The OEPBCNHY_n register contains the NAK bit and the higher 3-bit value in the Y-buffer that is used to
specify the amount of data received in a data packet from the USB host. See the procedure described in the
OEPBCNHX_n register when using the NAK bit for flow control handshake.
76543210
NAK RSV RSV RSV RSV C10 C9 C8
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 Y-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 the Y-buffer.
NAK = 0 Buffer is empty and ready for a Host-OUT request.
NAK = 1 Buffer contains a valid packet from the host (TUSB6250 NAKs the Host-OUT request)
8.11 Serial Number Registers
The USB 2.0 specification encourages end-product vendors to support the unique USB device serial number.
The USB Mass Storage Cass—Bulk Only Transport specification also requires that the serial number shall
contain at least 12 valid digits, represented as a UNICODE string and the last 12 digits of the serial number
shall be unique to each USB idVendor and idProduct pair.
The TUSB6250 supports the unique USB device serial numbers. The serial numbers can be either specified
by the end-product developer in the header block of the external I
2
C EEPROM with the custom format or
generated automatically by the TUSB6250 from its 48-bit on-chip unique die ID number.
Each TUSB6250 chip has a unique 48-bit serial die ID number, which is generated during the semiconductor
manufacturing process. The die IDs may not increment sequentially; however, it is assured that any particular
48-bit die ID will not be repeated during production for at least 9 years.
The following procedure is performed by the TUSB6250 to identify and report the required serial number back
to the USB host:
• After a power-up reset, the boot code performs a read to the SERNUM0 to SERNUM5 registers and
initializes its device serial number variable field stored in the XDATA memory space with the read value
from these registers.
• The boot code then checks if the external I
2
C EEPROM is present on the I
2
C interface of the TUSB6250.
If the EEPROM is present and contains a valid device serial number as part of the USB device descriptor
information stored in the EEPROM, the boot code overwrites the serial number value stored in the XDATA
memory space with the one found in the EEPROM. Otherwise, the TUSB6250 serial number value stored
in the XDATA memory space stays unchanged from the previous step.
• In summary:
− The serial number value specified in the external EEPROM has the highest priority to be loaded into
the XDATA memory space, which is used as part of the valid device descriptor information to be
reported back to the USB host during USB device enumeration.
− When responding to the Get_DeviceDescriptor command from the USB host, if the external I
2
C
EEPROM does not contain the valid serial number, the TUSB6250 converts the 48-bit unique serial
number stored in the serial number registers into a string of 12 UNICODE characters and returns the
string to the host.
For detailed information regarding how to specify the custom serial number in the header block of the external
I
2
C EEPROM, see the TUSB6250 Boot Code application note (SLLA126).
Little-endian is used when describing the serial number registers with SERNUM0 as the least significant byte.