CP2112
20 Rev. 1.2
10. CP2112 Interface Specification and Windows Interface DLL
The CP2112 is a USB Human Interface Device (HID), and, since most operating systems include native drivers,
custom drivers do not need to be installed. Because the CP2112 does not fit a standard HID device type, such as a
keyboard or mouse, any CP2112 PC application needs to use the CP2112’s HID specification to communicate with
the device. The low-level HID specification for the CP2112 is provided in “AN495: CP2112 Interface Specification”.
This document describes all of the basic functions for opening, reading from, writing to, and closing the device, as
well as the ROM programming functions.
A Windows DLL that encapsulates the CP2112 HID interface and also adds higher level features, such as read/
write timeouts is provided by Silicon Labs. This DLL is the recommended interface for the CP2112. The Windows
DLL is documented in CP2112 Windows DLL Specification.
Both of these documents and the DLL are available in the CP2112EK CD as well as online at www.silabs.com.
11. Relevant Application Notes and Software
The following Application Notes are applicable to the CP2112. The latest versions of these application notes and
their accompanying software are available at www.silabs.com/interface-appnotes.
AN495: CP2112 Interface Specification—describes how to interface to the CP2112 using the low-level, HID
Interface.
AN496: CP2112 HID USB-to-SMBus API Specification—describes how to interface to the CP2112 using the
Windows Interface DLL.
The CP2112 Software Development Kit can be downloaded from www.silabs.com/interface-software. See the
CP2112_SetIDs software included with the CP2112 Software Development Kit (SDK) for information on how to
customize USB descriptors for the CP2112.
12. Device Specific Behavior
This section describes differences in behavior between the CP2112-F01-GM and the CP2112-F02-GM. The
revision of the CP2112 can be read by using the Get Version Information command (Report ID 0x05) or by
connecting to a CP2112 device using the HidSmbus Example application. The part number will always be 0x0C
(specifying the CP2112 as the device) and the device version will be the revision of the device.
12.1. Addressed Read Requests
In F01 devices, addressed read requests are performed by issuing a start on the bus, followed by a slave address
(write), logical address to read, stop, start, and slave address (read).
F02 devices handle addressed read requests by issuing a start on the bus, followed by a slave address (write),
logical address to read, repeated start, and slave address (read).
12.2. Multimaster Applications
F01 devices can hold the SDA line low for approximately 3 ms if the Set SMBus Configuration command (Report
ID 0x06) is received by one CP2112 master during the middle of a separate master device's transaction. A fix is
implemented on F02 devices to eliminate this behavior.