DESCRIPTOR DATA MODIFICATION
External ROM Descriptor (PCM2704/6)
9
DT
CK
S
Start Condition
1−7
8
1−8
9
1−8
9
9
P
Stop Condition
Device Address
ACK
DATA
ACK
DATA
ACK
NACK
R/W
R/W:
Read Operation if 1; Otherwise, Write Operation
ACK: Acknowledgment of a Byte if 0
DATA: 8 Bits (Byte)
NACK: Not Acknowledgment if 1
T0049-02
www.ti.com
.......................................................................................................................................................
SLES081F – JUNE 2003 – REVISED JANUARY 2009
The descriptor data can be modified through I
2
C port by external ROM (PCM2704/6) or through our SPI port by
an SPI host such as an MCU (PCM2705/7) under a particular condition of PSEL pin and HOST pin. A condition
of PSEL pin = High and HOST pin = High is needed to modify the descriptor data, and D+ pull-up must not be
activated before completion of programming the descriptor data through external ROM or SPI port. The
descriptor data have to be sent from external ROM to PCM2704/6 or or from SPI host to PCM2705/7 in LSB first
with specified byte order. Also, the content of the power attribute and max power must be consistent with PSEL
setting and power usage from USB VBUS of actual application. Therefore, the descriptor data modification in
self-powered configuration (PSEL = Low) is not supported.
The PCM2704/6 supports an external ROM interface to override internal descriptors. Pin 3 (for PCM2704)/pin 15
(for PCM2706) is assigned as DT (serial data) and pin 2 (for PCM2704)/pin 14 (for PCM2706) is assigned as CK
(serial clock) of the I
2
C interface when using the external ROM descriptor. Descriptor data is transferred from the
external ROM to the PCM2704/6 through the I
2
C interface the first time when the device activates after power-on
reset. Before completing a read of the external ROM, the PCM2704/6 replies with NACK for any USB command
request from the host to the device itself. The descriptor data, which can be in external ROM, are as follows.
String descriptors must be described in ANSI ASCII code (1 byte for each character). String descriptors are
converted automatically to unicode strings for transmission to the host. The device address of the external ROM
is fixed as 0xA0. The data must be stored from address 0x00 and must consist of 57 bytes, as described in the
following items. The data bits must be sent from LSB to MSB on the I
2
C bus. This means that each byte of data
must be stored with its bits in reverse order. Read operation is performed at a frequency of XTI/384
(approximately 30 kHz). The content of power attribute and max power must be consistent with actual application
circuit configuration (PSEL setting and actual power usage from VBUS of USB connector); otherwise, it may
cause improper or unexpected PCM2704/6 operation.
•
Vendor ID (2 bytes)
•
Product ID (2 bytes)
•
Product string (16 bytes in ANSI ASCII code)
•
Vendor string (32 bytes in ANSI ASCII code)
•
Power attribute (1 byte)
•
Max power (1 byte)
•
Auxiliary HID usage ID in report descriptor (3 bytes)
M
M
M
S
S
M
S
M
S
M
M
S
Device address
R/W
ACK
DATA
ACK
DATA
ACK
...
NACK
P
Figure 25. External ROM Read Operation
Copyright © 2003–2009, Texas Instruments Incorporated
21
Product Folder Link(s):
PCM2704 PCM2705 PCM2706 PCM2707