DATASHEET SEARCH SITE | WWW.ALLDATASHEET.COM

Document overview

  • Manufacturer or author: Provided By ALLDATASHEET.COM(FREE DATASHEET DOWNLOAD SITE)
  • PDF pages: 34

Technical content

for the reports supported by the CP2110/4 and it also describes the configurable parameters. implement their own interface. Users who want to integrate the device interface into their application. Figure 1. System Architecture Diagram

  1. Dynamic libraries that adhere to this CP2110/4 Interface specification are available for the following
  2. HID Device Class Definition:

Table 1. CP2110 Default PROM Values Manufacturing String Silicon Laboratories Inc. *Note: The lock bytes indicate which parameters have already been programmed.

Table 2. CP2110 Default Pin Settings

Table 3. Default PROM Values *Note: The lock bytes indicate which parameters have already been programmed. Table 4. Default Pin Settings

Table 5. UART Transfer Settings Table 6. Other UART Settings

6 Rev. 0.4 2. Report Overview Communication with the CP2110 is performed using HID Re ports as defined in the HI D Device Class Definition. The class definition is available for download at http://www.usb.org/developers/hidpage/. 2.1. Reports Response The CP2110 responds to reports in different ways depending on if the report configures a parameter on the device using a Set Report or if it requests data from the devi ce using a Get Report. The list of all supported reports is available in "3.Report ID List" on page 7. 2.1.1. Set Reports In response to a Set Report, the CP2110 will not return any report or acknowledgement of a report. To verify that a report has completed successfully, use the corresponding Get Report to obtain the data. The delay imposed by the HID protocol between r eports guarantees that there will be no race condition between the execution of a Set Report and Get Report verification. A Set Report will always complete before the device receives the Get Report. 2.1.2. Get Reports If a report requests data from the device and th e report is valid, the device will re turn a report with the requested data. If the report is invalid, the device will stall. 2.2. Data Format In all of the reports, the first byte of the data portion of the payload is the Repo rt ID. In the report definitions in this document, the Report ID is stored in in dex 0 of the payload and is not explicitly listed in the table. All data content in the report starts at index 1. The reports have a maxi mum length of 64 bytes, indexed from 0–63. For any multi- byte values sent in the reports, the values are sent least significant byte first.

Report IDs 0x01–0x3F are used to transmit UART data across the Interrupt pipes. Report IDs 0x40–0x66 are reserved for device configuration and customization. Table 7. Report IDs

Table 7. Report IDs (Continued)

Rev. 0.4 9 4. Device Configuration Reports 4.1. Set Reset Device Report ID: 0x40 Direction: Control Out Set Reset Device is used to restart the device from the USB host. Th e device will re-enume rate on the USB bus and all UART configuration settings are reset to their default values. For certain operating systems such as Windows, initiating a device reset and re-enumerating will make the device's handle stale. The user application is responsible for handling this "surprise disconnect" event. See AN433: CP2110 HID-to-UART API Specification for more information regarding surprise disconnects. 4.2. Get/Set UART Enable Report ID: 0x41 Direction: Control In/Out Get UART Enable returns the Enable status of the UART. The UART is disabled by default. Set UART Enable checks the FlushBuffers programmed parameter and purges the FIFOs depending on the parameter Enable or Disable, which are treated as Open and Close respectively. 4.3. Get UART Status Report ID: 0x42 Direction: Control In TX FIFO is the number of bytes left for the device transfer to the UART-based device. The transmit FIFO buffer can hold up to 480 bytes. The value returned is a two-byte, unsigned integer. RX FIFO is the number of bytes left for the device to transfer to the USB host. The receive FIFO buffer can hold up to 480 bytes. The value returned is a two-byte, unsigned integer. Error Status indicates if a Parity error (mask 0x01) or Overrun error (0x02) has occurred since the last time Error Status was read by the user. Reading Error Status clears the errors. Break Status indicates if a line break is currently in progress. Name Offset Size Value Description Reset Type 1 1 0x00 Reset with re-enumeration Name Offset Size Value Description UART Enable 1 1 0x00 0x01 UART disabled UART enabled Name Offset Size Value Description TX FIFO 1 2 See below Number of bytes in Transmit FIFO RX FIFO 3 2 See below Number of bytes in the Receive FIFO Error Status 5 1 See below Parity and Overrun errors Break Status 6 1 0x00 0x01 Line break is not active Line break is active

10 Rev. 0.4 4.4. Set Purge FIFOs Report ID: 0x43 Direction: Control Out This report is used to empty the transmit and receive FIFO buffers on the CP2110 device. The host application is responsible for purging any host-side buffer. If Purge Type is set to 0x01, the device will clear all data from the transmit buffer. If Purge Type is set to 0x02, the device will clear all data from the receive buffer. If Purge Type is set to 0x03, the device will clear the data from both the transmit and receive buffers. 4.5. Get GPIO Values Report ID: 0x44 Direction: Control In *See "Appendix A—Pin Configuration Options" on page 29 for details of this 2-byte value. If a pin is configured as a GPIO input pin or a flow control pin that is an input, the corresponding Latch Value bit represents the input value. If a pin is configured as a GPIO output pin or a flow contro l pin that is an output, the corresponding Latch Value bit represents the logic level driven on the pin. 4.6. Set GPIO Values Report ID: 0x45 Direction: Control Out *See "Appendix A—Pin Configuration Options" on pa ge 29 for details of these 2-byte values. Set GPIO Values sets the values for GPIO pins or Flow Control pins that are configured as outputs. The desired value for the pin is configured in Latch Value. To drive a 1 on an output pin, the corresponding bit should be set to 1. To drive a 0 on an output pin, the corresponding bit should be set to 0. The Report will set new values only for output pins that have a 1 in the corresponding bit position in Latch Mask. If Name Offset Size Value Description Purge Type 1 1 0x01 0x02 0x03 Purge all data in the transmit FIFO Purge all data in the receive FIFO Purge all data in both buffers Name Offset Size Value Description Latch Value 1 2 * Current latch values Name Offset Size Value Description Latch Value 1 2 * Latch value Latch Mask 3 2 * Pin to set to new latch value

Rev. 0.4 11 the corresponding bit in Latch_Mask is set to 0, a new pin value will not be set, even if the pin is configured as an output pin. The Report does not affect any pins that are not configured as outputs. This Report is only valid for the GPIO/Flow control pins. Pins TX, RX, Suspend, and /Suspend cannot be configured using this Report. The unused Latch Value and Latch Mask bits can be set to 1 or 0. 4.7. Get Version Information Report ID: 0x46 Direction: Control In Part Number indicates the device part number. The CP2110 returns 0x0A. Device Version is the version of the device. This value is not programmable over the HID interface. 4.8. Get/Set Lock Byte Report ID: 0x47 Direction: Control In/Out The device has a 2-byte field which indicates which of the customizable fields have been programmed. The following table shows the values of the bits: If the bit value is set to 1, the corresponding field has not been customized. If the bit value is set to 0, the field has been customized and can no longer be changed for this device. Using the Set Lock Byte Repor t, any bit value set to 0 will lock the corresponding field. Send 0x00F0 to lock all parameters and prevent future customization. Name Offset Size Value Description Part Number 1 1 0x0A Device part number Device Version 2 1 Varies Device version Name Offset Size Value Description Lock Status 1 2 See Below Shows which fields have already been programmed. Bit Position MSB – address[1] LSB – address[2] Bit 0 VID String 2–Part 1 Bit 1 PID String 2–Part 2 Bit 2 Max Power String 3 Bit 3 Power Mode Pin Config Bit 4 Release Version (unused) Bit 5 Flush Buffers (unused) Bit 6 String 1–Part 1 (unused) Bit 7 String 1–Part 2 (unused)

12 Rev. 0.4 5. UART Reports The device enumerates Report IDs 0x0 1–0x3F for the Send and Get Data func tions. The report ID indicates the number of data bytes being transferred, not including the Report ID itself. 5.1. Set Send Data Report ID: 0x01 to 0x3F Direction: Interrupt Out Set Send Data is used to send data from the USB host to the UART device. Buffer is the data to be transferred. The USB host application can transfer up to 1–63 data bytes using this Report. 5.2. Get Receive Data Report ID: 0x01 to 0x3F Direction: Interrupt In A USB host requests data automatically from an HID devic e and thus this report is not typically required.This Report can be used to receive any data in between the automatic updates by the device. Get Receive Data is used to receive data from the UART device. Buffer is the data to be transferred. The USB host application can transfer up to 1–63 data bytes using this Report. Name Offset Size Value Description Buffer 1 1–63 — Data to be sent to the UART Name Offset Size Value Description Buffer 1 1–63 — Data to be sent to the USB Host

Rev. 0.4 13 5.3. Get/Set UART Config Report ID: 0x50 Direction: Control In/Out Values from the Set Report are not stored in PROM. These parameters must be initialized after every power-on or device reset. Baud Rate is the speed in bits per second (bps) at which data is transferred over the UART. It is stored as a 4-byte unsigned number. The valid range for Baud Rate is 300 bps to 500,000 bps. Parity is the type of parity bit that is appended to each data byte. The five types of parity available are none, even, odd, mark, and space parity. If “No Parity” is configured, no extra bit is appended to each data byte. Flow Control is the type of handshaking used for the UART communication. The available types of flow control are No Flow Control and Hardware Flow Control. Hardware Flow Control uses the RTS and CTS pins. Data Bits is the number of data bits per UART transfer. The UART can operate at 5, 6, 7, or 8 data bits. Stop Bits is the number of stop bits used after each data byte. If Data Bits is set to 5, a Short Stop Bit is equivalent to 1 bit time, and Long Stop Bit is equivalent to 1.5 bit times. If Data Bits is set to 6, 7, or 8, a Short Stop Bit is equivalent to 1 bit time, and Long Stop Bit is equivalent to 2 bit times. Name Offset Size Value Description Baud Rate 1 4 See below Baud rate in bits per second Parity 5 1 0x00 0x01 0x02 0x03 0x04 No Parity Even Parity Odd Parity Mark Parity Space Parity Flow Control 6 1 0x00 0x01 No Flow Control Hardware Flow Control Data Bits 7 1 0x05 0x06 0x07 0x08 5 data bits 6 data bits 7 data bits 8 data bits Stop Bits 8 1 0x00 0x01 Short Stop Bit Long Stop Bit

14 Rev. 0.4 5.4. Set Transmit Line Break Report ID: 0x51 Direction: Control Out Set Transmit Line Break is used to transmit a line break on the TX pin. The line break will last for the amount of time specified in Line Break Time. The valid range for Line Break Time is 0 to 125 ms. The TX FIFO buffer is also purged when a line break is started. If a value of 0 is set for Line Break Time, the device will transmit a line break until it receives a Set Stop Line Break Report. 5.5. Set Stop Line Break Report ID: 0x52 Direction: Control Out Set Stop Line Break is used to stop a line break if it is in progress. If no line break is cu rrently in progress, this report is ignored. Set Report ID to the report ID of Set Stop Line Break. There are no data bytes in the payload other than the Report ID. Name Offset Size Value Description Line Break Time 1 1 See Below Length of line break in ms Name Offset Size Value Description Report ID 0 1 (no data bytes)

Rev. 0.4 15 6. Programmable USB Parameters The following parameters are programmable on the device. Seven different reports are provided to program these parameters. Each of those seven reports can only be called once for each device. VID is the USB Vendor ID. PID is the USB Product ID. Power is the current requested by the device from the U SB host in bus-powered mode. The units for this value is milliamps / 2. For example, if the device is configured to request 200 mA, the value for Power is 100. The maximum setting for Power is 500 mA, or a value of 250. Unpowered USB hubs are limited to providing 100 mA per port. Power Mode indicates whether the device is operating in Bus-powered (0x00), Self-powered (0x01, voltage regulator disabled) or Self-powered (0x02, voltage regulato r enabled) mode. If the device is configured for Self- powered mode, the value programmed for Power is not used during USB enumeration. Release Version is a user-programmable value. The most signific ant byte is the Major revision number. The least significant byte in the report is the Minor revision number. Both bytes can be programmed to any value from 0 to 255. Flush Buffers determines whether the RX and/or TX FIFOs are purged upon a device open and/or close. 0x01—Flush Transmit FIFO upon Device Open 0x02—Flush Transmit FIFO upon Device Close 0x04—Flush Receive FIFO upon Device Open 0x08—Flush Receive FIFO upon Device Close All bitwise-OR combinations of these four values are valid settings for Flush Buffers. Manufacturing String is a 126-byte string, where the first two bytes must be set according to the USB specification (length, 0x03). Product String is a 126-byte string, where the first two bytes must be set according to the USB specification (length, 0x03). Serial String is a 63-byte character array used to provide a unique serial number/string for the device. The first two characters must be set according to the USB specification (length, 0x03). Name Description VID USB Vendor ID PID USB Product ID Power Power request in mA/2 Power Mode Bus Powered Self Powered–Regulator Off Self Powered–Regulator On Release Version Major and Minor release version Flush Buffers Purge FIFOs on enable/disable Manufacturer String Product Manufacturer Product String Product Description Serial String Serialization String Pin Configuration All pins configuration Lock Bytes Indicates programmed values

16 Rev. 0.4 7. PROM Programming Reports 7.1. Get/Set USB Configuration Report ID: 0x60 Direction: Control In/Out Get USB Configuration returns the values for the various fields and also the Mask value. The Mask value is equal to the most significant byte value that is returned in Report Get Lock Byte. If the corresponding Mask bit is set to '0', the corresponding field has been programmed and any Set USB Configuration function operating on that field is ignored. Set USB Configuration is used to customize these fields. The corresponding Mask bit should be set to '1' to program the field. If the field has already been programmed once, an attempt to reprogram it is ignored. If a field is being programmed with the current value, the programmed bit will still be set. See "4.8.Get/Set Lock Byte" on page 11 for the definition of Mask. 7.2. Get/Set Manufacturing String 1 Report ID: 0x61 Direction: Control In/Out The Set Manufacturing String 1 Report can only be used once to set the Manufacturing String. Any subsequent calls to Set Manufacturing String 1 are ignored. The maximum value for String Length is 126. The first two bytes are allocated for String Length and the value 0x03, meaning the actual length of the pstring is 124 bytes. The device will ignore the report if String Length is too long. the string must be in Unicode format. Name Offset Size Value Description VID Low Byte 1 1 — VID Low Byte VID High Byte 2 1 — VID High Byte PID Low Byte 3 1 — PID Low Byte PID High Byte 4 1 — PID High Byte Power 5 1 — Power requested in mA/2 Power Mode 6 1 — Regulator Configuration Release Major 7 1 — Release Version Major Value Release Minor 8 1 — Release Version Minor Value Flush Buffers 9 1 — Which buffers to flush on open/close Mask 10 1 — Mask for what fields to program Name Offset Size Value Description String Length 1 1 — Length of string + 2 USB Required 2 1 0x03 String indicator Manufacturing String 1 3 61 — First 61 bytes of string

Rev. 0.4 17 7.3. Get/Set Manufacturing String 2 Report ID: 0x62 Direction: Control In/Out The Set Manufacturing String 2 Report can only be used once to set the Manufacturing String. Any subsequent calls to Set Manufacturing String 2 are ignored. Manufacturing String 2 is the second half of the manufacturer string . If the Manufacturing String does not require the additional bytes, it does not need to be initialized. The string must be in Unicode format. 7.4. Get/Set Product String 1 Report ID: 0x63 Direction: Control In/Out The Set Product String 1 Report can only be used once to set the Product String. Any subsequent calls to Set Product String 1 are ignored. The maximum value for String Length is 126. The first two bytes are allocated for String Length and the value 0x03, meaning the actual length of the payload part of the string is 124 bytes. The device will ignore the Report if String Length is too long. The string must be in Unicode format. 7.5. Get/Set Product String 2 Report ID: 0x64 Direction: Control In/Out The Set Product String 2 Report can only be used once to set the Product String. Any subsequent calls to Set Product String 2 are ignored. Product String 2 is the second half of the manufac turer string. If the Product String does not require the additional bytes, it does not need to be initialized. The string must be in Unicode format. Name Offset Size Value Description Manufacturing String 2 1 63 — Second 63 bytes of string Name Offset Size Value Description String Length 1 1 — Length of string + 2 USB Required 2 1 0x03 String indicator Product String 1 3 61 — First 61 bytes of string Name Offset Size Value Description Product String 2 1 63 Second 63 bytes of string

18 Rev. 0.4 7.6. Get/Set Serial String Report ID: 0x65 Direction: Control In/Out The Set Serial String Report can only be used once to set the Product String. Any subsequent calls to Set SerialString are ignored. The maximum value for String Length is 63. The first two bytes are allocated for String Length and the value 0x03, meaning the actual leng th of the payload part of the string is 61 bytes. The device will reject the Report if String Length is too long. The string must be in Unicode format. 7.7. Get/Set Pin Configuration 7.7.1. CP2110 Get/Set Pin Configuration Report ID: 0x66 Direction: Control In/Out The values in bold are the default values. Name Offset Size Value Description String Length 1 1 — Length of string + 2 USB Required 2 1 0x03 String indicator Ser String 1 3 61 — 61 bytes of string Name Offset Size Value Description GPIO0_CLK 1 1 0x00 0x01 0x02 0x03 GPIO Input Pin GPIO Output–Open Drain GPIO Output–Push-Pull Clock Output–Push-Pull GPIO1_RTS 2 1 0x00 0x01 0x02 0x03 GPIO Input Pin GPIO Output–Open Drain GPIO Output–Push-Pull RTS–Open-Drain GPIO2_CTS 3 1 0x00 0x01 0x02 0x03 GPIO Input Pin GPIO Output–Open Drain GPIO Output–Push-Pull CTS–Open-Drain GPIO3_RS485 4 1 0x00 0x01 0x02 0x03 GPIO Input Pin GPIO Output–Open Drain GPIO Output–Push-Pull RS-485 Transceiver Control GPIO4_TXT 5 1 0x00 0x01 0x02 0x03 GPIO Input Pin GPIO Output–Open Drain GPIO Output–Push-Pull TX LED Toggle–Push-Pull

Rev. 0.4 19 The Set Pin Configuration Report should only be called once. Any further calls to this Report are ignored by the device. If any parameters are outside of their valid range, the report is ignored and no parameters are programmed. In this instance, the report can be called again with the correct values. GPIO0_CLK, GPIO1_RTS, GPIO2_CTS, GPIO3_RS485, GPIO4_TXT, GPIO5_RXT, GPIO6, GPIO7, GPIO8, GPIO9, TX, Suspend, and /Suspend are used to configure the pins to various modes. See "Appendix B—CP2110 Pin Variable Definition" on page 30 for more information about each configuration option for each pin. Suspend Latch_Value is the value that will be driven on the pins when the device is in a Suspend state. Suspend Pin Mode is the mode (open-drain or push-pull) the pins will be in when the device is in a Suspend state. See "Appendix A—Pin Configuration Options" on page 29 for deta ils on interpreting the 2-byte values returned here. RS485 Level configures the active logic level if GPIO2 is used as the RS485 transceiver control pin. Clock Out Divider determines the divider for the clock output when GPIO0_CLK is configured for clock output function. When the divider is set to 0x00, the output frequency is 24 MHz. When the divider is set to any value between 0x01 and 0xFF, the output frequency is determined by the following formula: Output Frequency = 24 MHz / (2 x Clock Out Divider) GPIO5_RXT 6 1 0x00 0x01 0x02 0x03 GPIO Input Pin GPIO Output–Open Drain GPIO Output–Push-Pull RX LED Toggle–Push-Pull GPIO6 7 1 0x00 0x01 0x02 GPIO Input Pin GPIO Output–Open Drain GPIO Output–Push-Pull GPIO7 8 1 0x00 0x01 0x02 GPIO Input Pin GPIO Output–Open Drain GPIO Output–Push-Pull GPIO8 9 1 0x00 0x01 0x02 GPIO Input Pin GPIO Output–Open Drain GPIO Output–Push-Pull GPIO9 10 1 0x00 0x01 0x02 GPIO Input Pin GPIO Output–Open Drain GPIO Output–Push-Pull TX 11 1 0x01 0x02 TX–Open-Drain TX–Push-Pull Suspend 12 1 0x01 0x02 Suspend–Open-Drain Suspend–Push-Pull Suspend 13 1 0x01 0x02 Suspend–Open-Drain Suspend–Push-Pull Suspend Pin Latch 14 2 0x0000 Latch values in suspend state Suspend Pin Mode 16 2 0x0000 Push-pull or open-drain RS485 Level 18 1 0x00 0x01 Active Low Active High Clock Out Divider 19 1 0x00–0xFF Divider applied to GPIO0_CLK Name Offset Size Value Description

The values in bold are the default values. Table 8. CP2114 Get/Set Pin Configuration

programmed. In this instance, the report can be called again with the correct values. 2-byte values returned here. Divider applied to GPIO.9_CLKOUT. Table 8. CP2114 Get/Set Pin Configuration (Continued)

22 Rev. 0.4 8. CP2114 Reports Report IDs 0x70–0x7C are used for CP2114-specific reports, which are described in the following sections. 8.1. Get Device Status Report ID: 0x70 Direction: Control In The possible status values returned by the CP2114 are: The CP2114 clears the status upon read. Name Offset Size Value Description Status 1 1 Varies See below Status Description 0x00 Last command produced no error. 0x20 Requested configuration number is too large. 0x21 All Device Boot Indexes have been used. 0x22 Pointer to requested Device Configuration is 0xFFFF. 0x23 Configuration invalid or not supported. 0x24 All Configuration Pointer slots have been used. 0x25 Insufficient OTP space to store new configuration. 0x26 The user-specified boot index is already the current boot index. 0x27 The current configuratio n is already as requested. 0x40 The specified number of cached parameters is too large. 0x41 Invalid cached parameter value(s).

Rev. 0.4 23 8.2. Get Device Capabilities Report ID: 0x71 Direction: Control In The CP2114 returns the following information:8.3. Get RAM Configuration Report ID: 0x72 Direction: Control In The CP2114 returns this information: See the CP2114 data sheet for information on the audio configuration string format. 8.4. Set RAM Configuration Report ID: 0x73 Direction: Control Out See the CP2114 data sheet for information on the audio configuration string format. Name Offset Size Value Description Available Boot Indices 1 1 Varies The number of unprogrammed Boot Indices. Available Configurations 2 1 Varies The number of unprogrammed Configuration Indices. Current Boot Configuration 3 1 Varies T he current Boot Configuration index. Available OTP Configuration Space 4 2 Varies The number of unprogrammed Configuration bytes. Name Offset Size Value Description Current Audio Configuration String in RAM 1 30 Varies See text. Name Offset Size Value Description Configuration to be loaded into RAM 1 30 Varies See text.

24 Rev. 0.4 8.5. Set DAC Registers Report ID: 0x74 Direction: Control Out The following types of data comprise the payload: DAC configuration string (address/value pairs that are to be written to the DAC) DAC configuration In-Band commands and their corresponding parameters See the CP2114 data sheet for information on the audio configuration string and in-band commands. 8.6. Get DAC Registers Report ID: 0x75 Direction: Control In Note: Immediately preceding one or more “Get DAC Registers” reports, the host must issue the “Set Parameters For Next Get” report with the following information: Report ID: 0x75 (the Get DAC Registers report ID) Number of parameters: 2 Parameter[0]: Starting DAC address Parameter[1]: Number of DAC registers to read For each “Get DAC Registers” report, the CP2114 returns the following information: The maximum amount of data that can be returned is 62 bytes. The host should issue “Get DAC Registers” reports until the returned packet size is less than 62. Name Offset Size Value Description Number of registers to write 1 1 Varies N umber of register writes to perform. See text. 2 Varies Varies See text. Name Offset Size Value Description Packet Size 1 1 1–62 Number of bytes in this packet Register value(s) 2 Varies Var ies DAC register values.

Rev. 0.4 25 8.7. Get OTP Configuration Report ID: 0x76 Direction: Control In Note: Immediately preceding the “Get OTP Conf iguration” reports, the host must is sue the “Set Parame ters For Next Get” report with the following information: Report ID: 0x76 (the Get OTP Configuration report ID) Number of parameters: 1 Parameter[0]: Index of the configuration to be read For the “Get OTP Configuration” report, the CP2114 returns the following information: The maximum amount of data that can be returned in on e packet is 62 bytes. The host should issue “Get OTP Configuration” reports until the returned packet size is less than 62. 8.8. Get Device Version Report ID: 0x77 Direction: Control In The CP2114 returns the following information: These numbers comprise the Version (5.7) for the CP2114. These version numbers are read‐only values and cannot be changed by the customer. (The customer‐configurable version numbers are accessed via the Get/Set USB Configuration reports.) Name Offset Size Value Description Packet Size 1 1 1–62 Number of bytes in this packet Data 2 Varies Varies OTP configuration data Name Offset Size Value Description Interface version 1 1 0x05 Version of the CP2114 interface Firmware version 2 1 0x07 Version of the CP2114 firmware

26 Rev. 0.4 8.9. Create OTP Configuration Report ID: 0x78 Direction: Control Out If the OTP configuration to be programmed is larger than 62 bytes, the host must send multiple “Create OTP Configuration” reports. The first report should contain the following data: Subsequent reports (if necessary) should contain the following data: 8.10. Set Boot Configuration Report ID: 0x79 Direction: Control Out The report information is: Name Offset Size Value Description Packet length 1 1 Varies Length of the current packet Configuration size (LSB) 2 1 Varies Configuration size (MSB) 3 1 Varies Configuration data 4 Varies Varies Configuration data Name Offset Size Value Description Packet length 1 1 Varies Length of the current packet Configuration data 2 Varies Varies Configuration data Name Offset Size Value Description Configuration index 1 1 Varies Index of the configuration to be assigned as the boot configuration.

Rev. 0.4 27 8.11. Set Parameters For Next Get Report ID: 0x7A Direction: Control Out This report specifies parameters that are necessary for a subsequent Get report, and must be issued immediately prior to the following Get reports: Get DAC Registers Get OTP Configuration Get OTP All Configuration The number of parameters depends on the Get report to follow. Refer to the appropriate Get report for the specific parameter format. 8.12. Get OTP All Configurations Report ID: 0x7B Direction: Control In Note: Immediately preceding the first “Get OTP All Configuration” report, the host must issue the “Set Parameters For Next Get” report with the following information: Report ID: 0x7B (the Get OTP All Configuration report ID) Number of parameters: 4 Parameter[0]: Length (MSB) Parameter[1]: Length (LSB) Parameter[2]: Start address (MSB) Parameter[3]: Start address (LSB) For the “Get OTP All Configuration” report, the CP2114 returns the following information: The size of the entire CP2114 OTP is 6 KB (0x1800, 6144 bytes); therefore the host must send a total of 100 “Set OTP All Configuration” reports. The CP2114 will return 62 bytes in each of the first 99 reports; the last report will contain 6 bytes: (99 x 62) + 6 = 6144 Name Offset Size Value Description Get Report ID 1 1 Varies Report ID of the Get report to follow. Number of parameters 2 1 Varies The number of parameters in this report. Parameter(s) 3 Varies Varies The parameter(s). Name Offset Size Value Description Packet Size 1 1 Varies Number of bytes in this packet Data 2 Varies Varies OTP configuration data

28 Rev. 0.4 8.13. Set OTP All Configurations Report ID: 0x7C Direction: Control Out The size of the entire CP2114 OTP is 6 KB (0x1800, 6144 bytes); therefore the host must send 100 “Set OTP All Configuration” reports. 60 + (98 x 62) + 8 = 6144 The reports contain the following data: Report 1: Reports 2–99 (98 total): Report 100: Name Offset Size Value Description Packet length 1 1 62 (0x3E) Length of the current packet Configuration size (LSB) 2 1 0x00 Total size of OTP block (LSB) Configuration size (MSB) 3 1 0x18 Total size of OTP block (MSB) Configuration data 4 60 Varies Configuration data Name Offset Size Value Description Packet length 1 1 62 (0x3E) Length of the current packet Configuration data 2 62 Varies Configuration data Name Offset Size Value Description Packet length 1 1 8 Length of the current packet Configuration data 2 8 Varies Configuration data

Rev. 0.4 29 APPENDIX A—P IN C ONFIGURATION O PTIONS Introduction Some of the pins of the CP2110 are configurable as inputs, open-drain outputs, or push-pull outputs. These options are configured when the device has enumerated and is op erating in a normal mode. When the CP2110 is in USB suspend, all of the configurable pins are limited to be open-drain or push-pull outputs. The following describes the differences between open-drain and push-pull, and the difference in behavior in Suspend mode. See the CP2110 data sheet for the electrical specifications of the GPIO pins. GPIO Input When a pin is configured as a GPIO input, the pin can read a logic high or logic low value. Internally, the GPIO pin is connected to the VIO pin through a resistor. If the pin is not connected externally, it will return a logic high or '1'. Any voltages connected to the pin should conform to data sheet specifications. Open-Drain Output When a pin is configured as a GPIO open-drain output, th e pin can output a logic high or logic low value. The default value is logic high and a logic high value is crea ted by internally connecting the GPIO pin to the VIO pin through a resistor. In this mode, the pin is unable to source much current when driving a logic high. If the Set GPIO Values Report is used to change the output to a logic low, the pin is internally connected to GND. Push-pull Output When a pin is configured as a GPIO push-pull output, the pin can output a logic high or logic low value. When driving a logic high value, the pin is directly connected to the VIO pin internally and can source current for devices such as LEDs. When driving a logic low value, the pin is internally connected to GND. Suspend Mode When the device is in Suspend mode, all of the GPIO pins are forced to be open-drain or push-pull outputs. The mode of each GPIO pin (open-drain or push-pull) and output value (logic-high or logic-low) is a PROM configurable value which is set using the Set Pin Configuration Report. The modes and values of the pins during Suspend can be the same or different as when the device is in Normal mode. To maintain the same electrical characteristics of a GPIO Input Pin during Suspend, configure the pin for open-drain mode with the output latch value set to logic-high or 1.

30 Rev. 0.4 APPENDIX B—CP2110 P IN V ARIABLE D EFINITION The CP2110 has 14 pins that have configurable behav ior. In some of the reports, the CP2110 returns the configuration of these pins in a two-byte value, or the report requires the pins to be configured using a two-byte value. These tables show which bit of the two-byte value corresponds to which pin. *Note: Use_Suspend, Bit 15 of the Suspend_Pin_Mode, is configured using the Get/Set Pin Configuration Report and does not correspond to a CP2110 pin. When this bit is cleared to 0, the GPIO pins remain in their current state in Suspend and the values for Suspend_Pin_Mode and Suspend_Pin_Latch are unused. When Use_Suspend is set to 1, the values for Suspend_Pin_Mode and Suspend_Pin_Latch are used in Suspend Mode. The exceptions are GPIO.0_CLK and GPIO.3_RS485. If these pins are configured for their special functionality, the Clock Output is always disabled and the RS485 pin is set to the inactive level in suspend mode. Bit 15 is unused in the two-byte fields other than Suspend_Pin_Mode and can be set to 1 or 0. See the individual report definitions in the UART Reports section for the meaning of a bit being set to 1 or 0. Not all configuration data applies to every pin. See the in dividual report definitions in the UART Reports section to determine if a certain configuration is applicable to a pin. B i t 1 51 41 3 1 2 1 1 1 09 8 76 5 4 3210 GPIO U s e S U S 9876X S U S 54 R X T X3210 Bit Position in 2-byte Word Pin Name CP2110 Pin Number 0G P I O . 0 _ C L K 1 1 GPIO.1_RTS 24 2G P I O . 2 _ C T S 2 3 3G P I O . 3 _ R S 4 8 5 2 2 6 GPIO.4_TXT 19 7G P I O . 5 _ R X T 1 8 10 GPIO.6 15 11 GPIO.7 14 12 GPIO.8 13 13 GPIO.9 12 4T X 2 1 5R X 2 0

14 Suspend 11

8 Suspend

9 Not Used Not Used

15 Use_Suspend* Not Used

Rev. 0.4 31 APPENDIX C—CP2114 P IN V ARIABLE D EFINITION The CP2114 has 14 pins that have configurable be havior. In some of the reports, the CP2114 returns the configuration of these pins in a two-byte value, or the report requires the pins to be configured using a two-byte value. These tables show which bit of the two-byte value corresponds to which pin. See the individual report definitions in the UART Reports section for the meaning of a bit being set to 1 or 0. Not all configuration data applies to every pin. See the individual report definitions to determine if a certain configuration is applicable to a pin. Bit CP2114 Pin Name CP2114 Pin Number 0 GPIO.0_RMUTE 30 1 GPIO.1_PMUTE 29 2 GPIO.2_VOL– 14 3 GPIO.3_VOL+ 13 4 GPIO.4_RMUTELED 12 5 GPIO.5_TXT_DACSEL0 28 6 GPIO.6_RXT_DACSEL1 11 7 GPIO.7_RTS_DACSEL2 19 8 GPIO.8_CTS_DACSEL3 20 9 GPIO.9_CLKOUT 22 10 GPIO.10_TX 16 11 GPIO.11_RX 15

12 SUSPEND 18

14 Not Used Not Used

*Note: Use_Suspend, Bit 15 of the Suspend_Pin_Mode, is configured using the Get/Set Pin Configuration Report and does not correspond to a CP2114 pin. When this bit is cleared to 0, the GPIO pins remain in their current state in Suspend and the values for Suspend_Pin_Mode and Suspend_Pin_Latch are unused. When Use_Suspend is set to 1, the values for Suspend_Pin_Mode and Suspend_Pin_Latch are used in Suspend Mode. The exception is GPIO.0_CLK. If this pin is configured for as a Clock Output, the Clock Output is always disabled in suspend mode. Bit 15 is unused in the two-byte fields other than Suspend_Pin_Mode and can be set to 1 or 0.

32 Rev. 0.4 DOCUMENT CHANGE LIST Revision 0.3 to Revision 0.4 Added support for CP2114.

Rev. 0.4 33 NOTES:

34 Rev. 0.4 CONTACT INFORMATION Silicon Laboratories Inc.

400 West Cesar Chavez

Austin, TX 78701 Tel: 1+(512) 416-8500 Fax: 1+(512) 416-9669 Toll Free: 1+(877) 444-3032 Please visit the Silicon Labs Technical Support web page: https://www.silabs.com/support/pages/contacttechnicalsupport.aspx and register to submit a technical support request. Patent Notice Silicon Labs invests in research and development to help our customers differentiate in the market with innovative low-power, small size, analog- intensive mixed-signal solutions. Silicon Labs' extensive patent portfolio is a testament to our unique approach and world-class engineering team. Silicon Laboratories and Silicon Labs are trademarks of Silicon Laboratories Inc. Other products or brandnames mentioned herein are trademarks or registered trademarks of their respective holders. The information in this document is believed to be accurate in all respects at the time of publication but is subject to change without notice. Silicon Laboratories assumes no responsibility for errors and omissions, and disclaims responsibility for any consequences resulting from the use of information included herein. Additionally, Silicon Laboratories assumes no responsibility for the functioning of undescribed fea- tures or parameters. Silicon Laboratories reserves the right to make changes without further notice. Silicon Laboratories makes no warran- ty, representation or guarantee regarding the suitability of its products for any particular purpose, nor does Silicon Laboratories assume any liability arising out of the application or use of any product or circuit, and specifically disclaims any and all liability, including without limitation consequential or incidental damages. Silicon Laboratories products are not designed, intended, or authorized for use in applications intend- ed to support or sustain life, or for any other application in which the failure of the Silicon Laboratories product could create a situation where personal injury or death may occur. Should Buyer purchase or use Silicon Laboratories products for any such unintended or unauthorized application, Buyer shall indemnify and hold Silicon Laboratories harmless against all claims and damages.