MCP2200 USB 2.0 to UART Protocol Converter with GPIO Features Package Types Universal Serial Bus (USB) The device will be offered in the following packages: • Supports full-speed USB (12 Mb/s) • Implements USB protocol composite device CDC device for communications, configuration and I/O control • 128 byte buffer to handle data throughput at any UART baud rate: - 64 byte transmit - 64 byte receive • Fully configurable VID and PID assignments, and string descriptors • Bus powered or self-powered • USB 2.0 Compliant (certification #: TBD) • 20-lead QFN (5 x 5[mm]) • 20-lead SOIC • 20-lead SSOP 19 D+ 18 D17 VUSB RST 4 GP7/TxLED 5 16 GP0/SSPND GP6/RxLED 6 GP5 7 GP4 8 15 GP1/USBCFG 14 GP2 13 CTS 12 RX GP3 9 TX 10 11 RTS Universal Asynchronous Receiver/Transmitter (UART) D+ VSS MCP2200 5x5 QFN* OSC2 • Responds to SET LINE CODING commands to dynamically change baud rates • Supports baud rates: 300-1000k • Hardware flow control • UART signal polarity option VDD • Uses standard Microsoft® Windows® drivers for Virtual Com Port (VCP): - Windows XP(SP2 and later)/Vista/7 • Configuration utility for initial configuration 20 VSS VDD 1 OSC1 2 OSC2 3 OSC1 USB Driver and Software Support MCP2200 SOIC, SSOP 20 19 18 17 16 15 D- RST 1 General Purpose Input/Output (GPIO) Pins GP7/TxLED 2 • Eight (8) general purpose I/O pins GP6/RxLED 3 14 VUSB EP 21 13 GP0/SSPND 11 GP2 2010 Microchip Technology Inc. 7 8 9 10 CTS • USB activity LED outputs (TxLED and RxLED) • SSPND output pin • USBCFG output pin (indicates if requested current is allowed) • Operating voltage: 3.0-5.5V • Oscillator input: 12 MHz • ESD protection > 4 kV HBM • Industrial (I) Operating Temperature: -40°C to +85°C 6 RX Other RTS • 256 bytes of user EEPROM TX 12 GP1/USBCFG GP4 5 GP3 EEPROM GP5 4 * Includes Exposed Thermal Pad (EP); see Table 1-1. DS22228A-page 1 MCP2200 Block Diagram GP5 GP3 GP1 TXLED/ RXLED/ GP4 GP2 GP0 GP7 GP6 Configuration and Control Registers 256 Byte EEPROM GPIO USB LEDs TX RX CTS D+ UART Controller USB Protocol Controller Control USB Transceiver RTS DVUSB Baud Generator State USB Clock Clock DS22228A-page 2 VSS Osc Reset 3.3V LDO VSS OSC1 OSC2 RST VDD 2010 Microchip Technology Inc. MCP2200 1.0 FUNCTIONAL DESCRIPTION The MCP2200 is a USB-to-UART serial converter which enables USB connectivity in applications that have a UART interface. The device reduces external components by integrating the USB termination resistors. The MCP2200 also has 256 bytes of integrated user EEPROM. TABLE 1-1: Pin Name The MCP2200 has eight general purpose input/output pins. Four pins have alternate functions to indicate USB and communication status. See Table 1-1 and Section 1.6 “GPIO Module” for details about the pin functions. PINOUT DESCRIPTION SSOP, Pin QFN SOIC Type Standard Function GP0/SSPND 16 13 I/O General purpose I/O GP1/USBCFG 15 12 I/O General purpose I/O GP2 GP3 GP4 GP5 GP6/RxLED 14 9 8 7 6 11 6 5 4 3 I/O I/O I/O I/O I/O GP7/TxLED 5 2 I/O General purpose I/O General purpose I/O General purpose I/O General purpose I/O General purpose I/O General purpose I/O RST 4 1 I Reset input must be externally biased CTS 13 10 I RX 12 9 I Hardware flow control “Clear to Send” input signal USART RX input RTS 11 8 O TX VDD VSS OSC1 OSC2 D+ DVUSB 10 1 20 2 3 19 18 17 7 18 17 19 20 16 15 14 EP — 21 2010 Microchip Technology Inc. Alternate Function USB suspend status pin (refer to Section 1.6.1.1 “SSPND Pin Function”) USB configuration status pin (refer to Section 1.6.1.2 “USBCFG Pin Function”) USB receive activity LED output (refer to Section 1.6.1.3 “RxLED Pin Function (IN Message)”) USB transmit activity LED output (refer to Section 1.6.1.4 “TxLED Pin Function (OUT Message)”) Hardware flow control “Request to Send” output signal O USART TX output P Power P Ground I Oscillator input O Oscillator output I/O USB D+ I/O USB DP USB power pin (internally connected to 3.3V). Should be locally bypassed with a high quality ceramic capacitor. — Exposed Thermal Pad (EP). Do not electrically connect, or connect to VSS. DS22228A-page 3 MCP2200 1.1 Supported Operating Systems Microsoft Windows XP(SP2 and operating systems are supported. 1.1.1 later)/Vista/7 ENUMERATION The MCP2200 will enumerate as a USB device after POR. The device enumerates as both a Human Interface Device (HID) for I/O control, and a VCP. 1.1.1.1 HID The MCP2200 enumerates as a HID so the device can be configured and the I/O can be controlled. A DLL is supplied by Microchip that allows I/O control using a custom interface. 1.1.1.2 VCP The VCP enumeration implements the USB-to-UART data translation. 1.2 Control Module The control module is the heart of the MCP2200. All other modules are tied together and controlled via the control module. The control module manages the data transfers between the USB and the UART, as well as command requests generated by the USB host controller, and commands for controlling the function of the UART and I/O. 1.2.1 SERIAL INTERFACE The control module interfaces to the UART and USB modules. 1.2.2 INTERFACING TO THE DEVICE The MCP2200 can be accessed for reading and writing via USB host commands. The device cannot be accessed and controlled via the UART interface. 1.3 UART Interface The MCP2200 UART interface consists of the TX and RX data signals and the RTS/CTS flow control pins. The UART is configurable for several baud rates. The available data formats and baud rates are listed in Table 1-3. 1.3.1 INITIAL CONFIGURATION The default UART configuration is 19200, 8, N, 1. The default start up baud rate can be changed using the Microchip supplied configuration PC tool. The primary baud rates are shown in Table 1-3. Alternatively, a custom configuration tool can be created using the Microchip supplied DLL to set the baud rate, as well as other parameters. See Section 2.0 “Configuration” for details. 1.3.2 GET/SET LINE CODING The GET_LINE_CODING and SET_LINE_CODING commands are used to read and set the UART parameters while in operation. For example, Hyperterminal sends the SET_LINE_COMMAND when connecting to the port. The MCP2200 responds by setting the baud rate only. The other parameters (Data Bits, Parity, Stop Bits) remain unchanged. 1.3.2.1 Rounding Errors The primary baud rate setting (with the rounding errors) are shown in Table 1-3. If baud rates other than the ones shown in the table are used, the error percentage can be calculated using Equation 1-1 to find the actual baud rate. TABLE 1-2: UART CONFIGURATIONS Parameter Configuration Primary Baud Rates See Table 1-3 Data Bits 8 Parity N Stop Bits 1 1.3.3 CUSTOM BAUD RATES Custom baud rates are configured by sending the SET_LINE_CODING USB command, or by using the DLL. See Section 2.0 “Configuration” for more information. DS22228A-page 4 2010 Microchip Technology Inc. MCP2200 1.3.4 HARDWARE FLOW CONTROL Hardware flow control uses the RTS and CTS pins as a handshake between two devices. The RTS pin of one device is typically connected to the CTS of the other device. RTS is an active low output which notifies the other device when it can receive data by driving the pin low. The MCP2200 trip point for de-asserting RTS (high) is 63 characters. This is one character short of “buffer full”. CTS is an active low input which is used to notify the MCP2200 when it can send data. The MCP2200 will check CTS just before loading and sending UART data. If the pin is asserted during a transfer, the transfer will continue. Refer to Figure 1-1. 1.3.4.1 Flow Control Disabled The buffer pointer does not increment (or reset to zero) if the buffer is full. Therefore, if hardware flow control is not enabled and an overflow occurs (i.e., 65 unprocessed characters received), the new data overwrites the last position in the buffer. FIGURE 1-1: RTS/CTS CONNECTIONS EXAMPLE I am ready to receive I am ready to receive RTS I’ll transmit if okay RTS I’ll transmit if okay CTS MCU EQUATION 1-1: CTS MCP2200 SOLVING FOR ACTUAL BAUD RATE 12MHz ActualRate = -----------------int x Where: 12MHz x = ----------------------------------DesiredBaud TABLE 1-3: Desired Rate UART PRIMARY BAUD RATES Actual rate % Error 300 300 0.00% 1200 1200 0.00% 2400 2400 0.00% 4800 4800 0.00% 9600 9600 0.00% 19200 19200 0.00% 38400 38339 0.16% 57600 57692 0.16% 115200 115385 0.16% 230400 230769 0.16% 460800 461538 0.16% 921600 923077 0.16% 1.4 USB Protocol Controller The USB controller in the MCP2200 is full-speed USB 2.0 compliant. • Composite device (CDC + HID): - CDC: USB-to-UART communications - HID: I/O control, EEPROM access and initial configuration • 128 byte buffer to handle data throughput at any UART baud rate: - 64 byte transmit - 64 byte receive • Fully configurable VID and PID assignments, and descriptors (stored on-chip) • Bus powered or self-powered 1.4.1 DESCRIPTORS The descriptors are stored in the MCP2200 during configuration using the supplied PC interface. 1.4.2 SUSPEND AND RESUME The USB Suspend and Resume signals are supported for power management of the MCP2200. The device will enter Suspend mode when suspend signaling is detected on the bus. The MCP2200 exits the Suspend mode when any of the following occur: 1. 2. 3. 2010 Microchip Technology Inc. Resume signaling is detected or generated A USB Reset signal is detected A device Reset occurs DS22228A-page 5 MCP2200 1.5 USB Transceiver 1.6 The MCP2200 has a built-in, USB 2.0, full-speed transceiver internally connected to the USB module. The USB transceiver obtains power from the VUSB pin, which is internally connected to the 3.3V regulator. The best electrical signal quality is obtained when VUSB is locally bypassed with a high quality ceramic capacitor. 1.5.1 INTERNAL PULL-UP RESISTORS The MCP2200 devices have built-in pull-up resistors designed to meet the requirements for full-speed USB. 1.5.1.1 Bus Power Only In Bus Power Only mode, all power for the application is drawn from the USB (Figure 1-2). This is effectively the simplest power method for the device. In order to meet the inrush current requirements of the USB 2.0 specifications, the total effective capacitance appearing across VBUS and ground must be no more than 10 µF. If not, some kind of inrush limiting is required. For more details, see Section 7.2.4 of the “Universal Serial Bus Specification”. According to the USB 2.0 specification, all USB devices must also support a Low-Power Suspend mode. In the USB Suspend mode, devices must consume no more than 500 µA (or 2.5 mA for high powered devices that are remote wake-up capable) from the 5V VBUS line of the USB cable. The host signals the USB device to enter Suspend mode by stopping all USB traffic to that device for more than 3 ms. During USB Suspend mode, the D+ or D- pull-up resistor must remain active, which will consume some of the allowed suspend current budget (500 µA/ 2.5 mA). FIGURE 1-2: VBUS BUS POWER ONLY VDD VUSB VSS GPIO Module The GPIO Module is a standard 8-bit I/O port. 1.6.1 CONFIGURABLE PIN FUNCTIONS The pins can be configured as: • GPIO – Individually configurable general purpose input or output • SSPND – USB Suspend state • USBCFG – Indicates USB configuration status • RxLED – Indicates USB receive traffic • TxLED – Indicates USB transmit traffic 1.6.1.1 SSPND Pin Function The SSPND pin (if enabled) reflects the USB state (Suspend/Resume). The pin is active ‘low’ when the Suspend state has been issued by the USB host. Likewise, the pin drives ‘high’ after the Resume state is achieved. This pin allows the application to go into Low Power mode when USB communication is suspended, and switches to a full active state when USB activity is resumed. 1.6.1.2 USBCFG Pin Function The USBCFG pin (if enabled) starts out ‘low’ during power-up or after Reset, and goes ‘high’ after the device successfully configures to the USB. The pin will go ‘low’ when in Suspend mode and ‘high’ when the USB resumes. 1.6.1.3 RxLED Pin Function (IN Message) The ‘Rx’ in the pin name is in respect to the USB host. The RxLED pin is an indicator for USB ‘IN’ messages. This pin will either pulse low for a period of time (configurable for ~100 ms or ~200 ms), or toggle to the opposite state for every message received (IN message) by the USB host. This allows the application to count messages or provide a visual indication of USB traffic. 1.6.1.4 TxLED Pin Function (OUT Message) The ‘Tx’ in the pin name is in respect to the USB host. The TxLED pin is an indicator for USB ‘OUT’ messages. This pin will either pulse low for a period of time (configurable for ~100 ms or ~200 ms), or toggle to the opposite state for every message transmitted (OUT message) by the USB host. This allows the application to count messages or provide a visual indication of USB traffic. DS22228A-page 6 2010 Microchip Technology Inc. MCP2200 1.7 EEPROM Module 1.9 Oscillator The EEPROM module is a 256 byte array of nonvolatile memory. The memory locations are accessed for read/ write operations via USB host commands. Refer to Section 2.0 “Configuration” for details on accessing the EEPROM. The input clock must be 12 MHz to provide the proper frequency for the USB module. The host should wait for the write cycle to complete and then verify the write by reading the byte(s). FIGURE 1-3: 1.8 1.8.1 USB full-speed is nominally 12 Mb/s. The clock input accuracy is ±0.25% (2,500 ppm maximum). QUARTZ CRYSTAL OPERATION RESET/POR MCP2200 OSC1 RESET PIN The RST pin provides a method for triggering an external Reset of the device. A Reset is generated by holding the pin low. These devices have a noise filter in the reset path which detects and ignores small pulses. 1.8.2 POR A Power-on Reset pulse is generated on-chip whenever VDD rises above a certain threshold. This allows the device to start in the initialized state when VDD is adequate for operation. To take advantage of the POR circuitry, tie the RST pin through a resistor (1 kOhm to 10 kOhm) to VDD. This will eliminate external RC components usually needed to create a Power-on Reset delay. When the device starts normal operation (i.e., exits the Reset condition), device operating parameters (voltage, frequency, temperature, etc.) must be met to ensure operation. If these conditions are not achieved, the device must be held in Reset until the operating conditions are met. RF(2) R (1) Quartz Crystal S 12 MHz OSC2 Note 1: A series resistor (RS) may be required for quartz crystals with high drive level. 2: The value of RF is typically between 2 M to 10 M. FIGURE 1-4: CERAMIC RESONATOR OPERATION Example: muRata CSTCE12M0G15L MCP2200 OSC1 OSC2 Resonator 12 MHz 2010 Microchip Technology Inc. DS22228A-page 7 MCP2200 2.0 CONFIGURATION 2.1 The MCP2200 is configured by writing special commands using the HID interface. Configuration can be achieved using the configuration utility provided by Microchip. Alternatively, a custom utility can be developed by using the DLL available on the MCP2200 product page. Configuration Utility A configuration utility is provided by Microchip to allow the user to configure the MCP2200 to custom defaults. The Configuration Utility (Figure 2-1) connects to the device’s HID interface where all of the configurable features can be set. 2.2 Serial String The MCP2200 is supplied from the factory with a serialized USB serial string. TABLE 2-1: CONFIGURATION DESCRIPTIONS Configuration Name Description Vendor ID (0x04D8) The USB vendor identification assigned to Microchip by the USB consortium. Product ID (0x00DF) Device ID assigned by Microchip. The device can be used “as-is”, or Microchip can assign a custom PID by request. Baud Rate Sets the UART baud rate using a list of primary baud rates. See the UART section for details on setting non-primary baud rates. IO Config Individually configures the I/O to inputs or outputs. IO Default Individually configures the output default state for pins configured as outputs. Tx/Rx LEDs Enables/disables the GP6 and GP7 pins to function as USB traffic indicators. Pins are active low when configured as traffic indicators. Hardware Flow Control Enables/disables CTS and RTS flow control. USBCFG Pin Enables/disables the GP1 pin as a USB configuration status indicator. Suspend Pin Enables/disables the GP0 pin as a USB suspend status pin. Invert Sense Enables/disables the UART lines states: - Normal – Tx/Rx idle high; CTS/RTS active low - Inverted – Tx/Rx idle low; CTS/RTS active high Manufacturer String USB manufacturer string. Product String USB product string. DS22228A-page 8 2010 Microchip Technology Inc. MCP2200 FIGURE 2-1: CONFIGURATION UTILITY 2010 Microchip Technology Inc. DS22228A-page 9 MCP2200 2.3 Simple Configuration and I/O DLL A DLL is provided by Microchip to help the user develop a custom configurator. See the documentation on the MCP2200 product page for details on associating the DLL with a Visual C++ project. 2.3.1 SIMPLE I/O DLL CALLS The DLL provides the following functions to allow configuration of the device and control of the I/O. 2.3.1.1 Initialization void InitMCP2200(VID, PID) bool IsConnected() 2.3.1.2 Configuration (only needs to be set once; stored in NVM) bool ConfigureIOPins(mask) bool fnRxLED (On/Off, Toggle/Blink, 100/ 200mS) bool fnTxLED (On/Off, Toggle/Blink, 100/ 200mS) bool fnHardwareFlowControl (On/Off) bool fnUSBcfg(on/off) bool fnSuspend (on/off) bool SetBaudRate (baudrate) bool ConfigureAll (TRISmask, RxLED, TxLED, RxTGL, TxTGL, LEDX, FLOW, USBCFG, SSPND, BaudRate) 2.3.1.3 bool bool bool bool bool bool I/O Control ClearPin(pinnumber) ReadPin(pinnumber) SetPort (portValue) ReadPort(*portValue) WriteEEPROM (Address, Data) ReadEEPROM (Address) 2.3.1.4 Summary Summary: SimpleIOClass::InitMCP2200 (unsigned int VendorID, unsigned int ProductID) bool SimpleIOClass::ConfigureMCP2200 (unsigned char IOMap, unsigned long BaudRate, unsigned int RxLED, unsigned int TxLED, bool Hardware Flow Control, bool USBCFG pin function, bool Suspend pin function) bool SimpleIOClass::SetPin(unsigned int pin) bool SimpleIOClass::ClearPin(unsigned int pin) bool SimpleIOClass::ReadPin(unsigned int pin, unsigned int *returnvalue) bool SimpleIOClass::WritePort(unsigned int value) bool SimpleIOClass::ReadPort(unsigned int *returnvalue) DS22228A-page 10 While ConfigureMCP2200 configures the device with one call, it may also be configured one parameter at a time: bool SimpleIOClass::fnRxLED (unsigned int mode) bool SimpleIOClass::fnTxLED (unsigned int mode) bool SimpleIOClass::fnHardwareFlowControl (unsigned int onOff) bool SimpleIOClass::fnUSBCFG (unsigned int onOff) bool SimpleIOClass::fnSuspend (unsigned int onOff) bool SimpleIOClass::fnSetBaudRate (unsigned long BaudRateParam) bool SimpleIOClass::ConfigureIO (unsigned char IOMap) Constants: const unsigned const unsigned const unsigned const unsigned const unsigned 2.3.1.5 int int int int int OFF = 0; ON = 1; TOGGLE = 3; BLINKSLOW = 4; BLINKFAST = 5; InitMCP2200 SimpleIOClass::InitMCP2200 (unsigned int VendorID, unsigned int ProductID) Configures the Simple IO class for a specific Vendor and product ID. Parameters: Vendor ID - Assigned by USB IF (www.usb.org) Product ID - Assigned by the Vendor ID Holder Returns: none Example: InitMCP2200 (0x04D8, 0x00DF); 2.3.1.6 ConfigureMCP2200 bool SimpleIOClass::ConfigureMCP2200 (unsigned char IOMap, unsigned long BaudRate, unsigned int RxLED, unsigned int TxLED, bool Hardware Flow Control, bool USBCFG pin function, bool Suspend pin function) Configures the device's default baudrate, GPIO configuration and pin functions. Other functions set each parameter one at a time. This configures the part in one call. Precondition: The Vendor and Product ID must have been specified by SimpleIOInit. 2010 Microchip Technology Inc. MCP2200 Parameters: IOMap - A byte which represents the input/ output state of the pins (each bit may be either a 1 for input, and 0 for output. Baudrate RxLED & TxLED - constant OFF, TOGGLE, BLINKSLOW, BLINKFAST Boolean - HWFlow control, USBCFG, Suspend Returns: Function returns true if the transmission is successful, returns False if there the transmission fails. fnTxLED bool SimpleIOClass::fnTxLED (unsigned int mode) Summary: Configures the TxLED pin function. Description: Sets the Precondition: The Vendor and Product ID must have been specified by SimpleIOInit. Parameters: mode (constant): OFF, TOGGLE, BLINKSLOW, BLINKFAST Example: <code> if (SimpleIOClass::ConfigureMCP2200(0x43, 9600, BLINKSLOW, BLINKFAST, false, false, false) == SUCCESS) lblStatusBar->Text = "Success"; else lblStatusBar->Text = "Invalid command " </code> 2.3.1.7 2.3.1.8 fnRxLED bool SimpleIOClass::fnRxLED (unsigned int mode) Summary: Configures the RxLED pin function. Description: Sets the Precondition: The Vendor and Product ID must have been specified by SimpleIOInit. Parameters: mode (constant): OFF, TOGGLE, BLINKSLOW, BLINKFAST Returns: Function returns true if the transmission is successful, returns False if there the transmission fails. Error code logged in LastError. Example: <code> if (SimpleIOClass::fnRxLED(BLINKFAST) == SUCCESS) lblStatusBar->Text = "Success"; else lblStatusBar->Text = "Invalid command " + SimpleIOClass::LastError; </code> 2010 Microchip Technology Inc. Returns: Function returns true if the transmission is successful, returns False if there the transmission fails. Error code logged in LastError. Example: <code> if (SimpleIOClass::fnTxLED(BLINKFAST) == SUCCESS) lblStatusBar->Text = "Success"; else lblStatusBar->Text = "Invalid command " + SimpleIOClass::LastError; </code> 2.3.1.9 fnHardwareFlowControl bool SimpleIOClass::fnHardwareFlowControl (unsigned int onOff) Summary: Configures the device. Description: Sets the Precondition: The Vendor and Product ID must have been specified by SimpleIOInit. Parameters: IOMap - An array of configuration parameters, one byte per IO Line Returns: Function returns true if the transmission is successful, returns False if there the transmission fails. DS22228A-page 11 MCP2200 Example: <code> if (SimpleIOClass::ConfigureMCP2200(OutputPacket Buffer) == SUCCESS) lblStatusBar->Text = "Success"; else lblStatusBar->Text = "Invalid command " + SimpleIOClass::LastError; </code> 2.3.1.10 if (SimpleIOClass::ConfigureMCP2200(OutputPacket Buffer) == SUCCESS) lblStatusBar->Text = "Success"; else lblStatusBar->Text = "Invalid command " + SimpleIOClass::LastError; </code> fnUSBCFG bool SimpleIOClass::fnUSBCFG (unsigned int onOff) Summary: Configures the USBCFG pin function. Precondition: The Vendor and Product ID must have been specified by SimpleIOInit. Parameters: onOff (constant): ON or OFF. Returns: Function returns true if the transmission is successful, returns False if there the transmission fails. Example: <code> if (SimpleIOClass::ConfigureMCP2200(OutputPacket Buffer) == SUCCESS) lblStatusBar->Text = "Success"; else lblStatusBar->Text = "Invalid command " + SimpleIOClass::LastError; </code> Remarks: Error code is returned in LastError 2.3.1.11 Example: <code> fnSuspend bool SimpleIOClass::fnSuspend (unsigned int onOff) Summary: Configures the SSPND function Precondition: The Vendor and Product ID must have been specified by SimpleIOInit. Parameters: onOff (constant): ON or OFF. Returns: Function returns true if the transmission is successful, returns False if there the transmission fails. DS22228A-page 12 Remarks: Error code is returned in LastError 2.3.1.12 fnSetBaudRate bool SimpleIOClass::fnSetBaudRate (unsigned long BaudRateParam) Summary: Configures the device. Precondition: The Vendor and Product ID must have been specified by SimpleIOInit. Parameters: IOMap - An array of configuration parameters, one byte per IO Line Returns: Function returns true if the transmission is successful, returns False if there the transmission fails. Example: <code> if (SimpleIOClass::ConfigureMCP2200(OutputPacket Buffer) == SUCCESS) lblStatusBar->Text = "Success"; else lblStatusBar->Text = "Invalid command " + SimpleIOClass::LastError; </code> Remarks: Error code is returned in LastError 2.3.1.13 ConfigureIO bool SimpleIOClass::ConfigureIO (unsigned char IOMap) Summary: Configures the IO pins for Digital Input, Digital Output Description: IO Pins can be configured as Digital Input, Digital Output 2010 Microchip Technology Inc. MCP2200 Precondition: The Vendor and Product ID must have been specified by SimpleIOInit. Parameters: IOMap - one byte, with each bit corresponding to each GP pin. 0 for output, 1 for input. Returns: Function returns true if the transmission is successful, returns False if there the transmission fails. Example: <code> if (SimpleIOClass::ConfigureGPIO(OutputPacketBuf fer) == SUCCESS) lblStatusBar->Text = "Success"; else lblStatusBar->Text = "Invalid command " + SimpleIOClass::LastError; </code> 2.3.1.14 SetPin bool SimpleIOClass::SetPin(unsigned int pin) Summary: Sets the specified pin. Description: Sets the specified pin to one. Precondition: Must have previously been configured as an output via a ConfigureGPIO call. Parameters: pin - The pin number to set (0-7) Returns: Function returns true if the transmission is successful, returns False if there the transmission fails. Example: <code> if (SimpleIOClass::SetPin (2)) { lblStatusBar->Text = "Success"; } else lblStatusBar->Text = "Invalid command " + SimpleIOClass::LastError; </code> Remarks: none 2010 Microchip Technology Inc. 2.3.1.15 ClearPin bool SimpleIOClass::ClearPin(unsigned int pin) Summary: Clears the specified pin. Description: Sets the specified pin to zero. Precondition: Must have previously been configured as an output via a ConfigureGPIO call. Parameters: pin - The pin number to set (0-7) Returns: Function returns true if the transmission is successful, returns False if there the transmission fails. Example: <code> if (SimpleIOClass::ClearPin (2)) { lblStatusBar->Text = "Success"; } else lblStatusBar->Text = "Invalid command " + SimpleIOClass::LastError; </code> Remarks: none 2.3.1.16 ReadPin bool SimpleIOClass::ReadPin(unsigned int pin, unsigned int *returnvalue) Summary: Reads the specified pin. Description: Reads the specified pin and returns the value in returnvalue. If the pin has been configured as Digital Input, the return value will be either 0 or 1. If the pin has been configured as Analog Input, the pin will be read by the ADC and return a 10 bit value, right justified. Precondition: Must have previously been configured as an input via a ConfigureGPIO call. Parameters: pin - The pin number to set (0-7) returnvalue - the value read on the pin (0 or 1) DS22228A-page 13 MCP2200 Returns: true if the pin was successfully read. false if the pin was not read (not configued as an input). Example: <code> unsigned int rv; if (SimpleIOClass::ReadGPIOn (0, &rv)) { lblStatusBar->Text = "Success"; } else lblStatusBar->Text = "Invalid command " + SimpleIOClass::LastError; </code> 2.3.1.17 WritePort bool SimpleIOClass::WritePort(unsigned int portValue) Summary: Writes a value to the GPIO port. Description: Writes the GPIO port. This provides a means to write all pins at once instead of one-ata-time. Precondition: Must have previously been configured as an output via a ConfigureGPIO call. Parameters: portValue - Byte value to set on the port. Returns: Function returns true if the transmission is successful returns False if there the transmission fails. 2.3.1.18 ReadPort bool SimpleIOClass::ReadPort(unsigned int *returnvalue) Summary: Reads the GPIO port as digital input. Description: Reads the GPIO port and returns the value in returnvalue. This provides a means to read all pins at once instead of one-at-a-time. Precondition: Must have previously been configured as an input via a ConfigureGPIO call. Parameters: returnvalue - the value read on the port. Returns: Function returns true if the read is successful returns False if there the transmission fails. Example: <code> unsigned int rv; if (SimpleIOClass::ReadGPIOPort (&rv)) { lblStatusBar->Text = "Success"; } else lblStatusBar->Text = "Invalid command " + SimpleIOClass::LastError; </code> Remarks: Pins configured for output returns the current state of the port. Pins configured as input read as zero. Example: <code> if (SimpleIOClass::WritePort (0x5A)) { lblStatusBar->Text = "Success"; } else lblStatusBar->Text = "Invalid command " + SimpleIOClass::LastError; </code> Remarks: Pins configured for output returns the current state of the port. Pins configured as input read as zero. DS22228A-page 14 2010 Microchip Technology Inc. MCP2200 3.0 ELECTRICAL CHARACTERISTICS Absolute Maximum Ratings (†) Ambient temperature under bias......................................................................................................... -40°C to +85°C Storage temperature ........................................................................................................................ -65°C to +150°C Voltage on VDD with respect to VSS, PIC18F ..................................................................................... -0.3V to +6.0V Voltage on VDD with respect to VSS, PIC18LF ................................................................................... -0.3V to +4.0V Voltage on MCLR with respect to Vss ................................................................................................. -0.3V to +9.0V Voltage on VUSB pin with respect to VSS ............................................................................................ -0.3V to +4.0V Voltage on D+ and D- pins with respect to VSS ...................................................................... -0.3V to (VUSB + 0.3V) Voltage on all other pins with respect to VSS ........................................................................... -0.3V to (VDD + 0.3V) Total power dissipation(1) ............................................................................................................................... 800 mW Maximum current out of VSS pin ...................................................................................................................... 95 mA Maximum current into VDD pin ......................................................................................................................... 95 mA Clamp current, IK (VPIN < 0 or VPIN > VDD)20 mA Maximum output current sunk by any I/O pin.................................................................................................... 25 mA Maximum output current sourced by any I/O pin .............................................................................................. 25 mA Maximum current sunk by all ports ................................................................................................................... 90 mA Maximum current sourced by all ports ............................................................................................................. 90 mA Note 1: 2: Power dissipation is calculated as follows: PDIS = VDD x {IDD – IOH} + {(VDD – VOH) x IOH} + (VOl x IOL). VUSB must always be VDD + 0.3V † NOTICE: Stresses above those listed under “Absolute Maximum Ratings” may cause permanent damage to the device. This is a stress rating only and functional operation of the device at those or any other conditions above those indicated in the operation listings of this specification is not implied. Exposure above maximum rating conditions for extended periods may affect device reliability. 2010 Microchip Technology Inc. DS22228A-page 15 MCP2200 3.1 DC CHARACTERISTICS DC Characteristics Param No. D001 Characteristic Operating Conditions (unless otherwise indicated): 3.0V VDD 5.5V at -40C TA +85C (I-Temp) Sym Min Typ Max Units Supply Voltage VDD 3.0 — 5.5 V Power-on Reset Release Voltage VPOR Power-on Reset Rearm Voltage D003 VDD Rise Rate to Ensure Power-on Reset D004 Supply Current D005 1.6 V 0.8 V 0.05 — — VDD = 3.0V — 10 12 mA VDD = 5.0V — 13 15 mA — 9 — µA — — 0.2 VDD Standby current SVDD Conditions V/ms Design guidance only Not tested IDD IDDS FOSC = 12 MHz, (330 nF on VUSB) Input Low-Voltage D031 Schmitt Trigger (GPIO) TTL (CTS pin) VIL — — 0.8 0.8 VDD — VDD 3.0V VDD 5.5V V 4.5V VDD 5.5V Input High-Voltage D041 Schmitt Trigger (GPIO) TTL (RTS pin) VIH 2.0 — VDD — ±50 ±100 ±50 ±200 ±50 ±100 — — 0.6 — — 0.6 VDD – 0.7 — — VDD – 0.7 — — 3.0V VDD 5.5V V 4.5V VDD 5.5V Input Leakage Current GPIO, CTS D060 RST IIL OSC1 VSS VPIN VDD, pin at Hi-Z nA Output Low-Voltage D080 GPIO VOL V IOL = 8.0 mA, VDD = 5.0V IOL = 6.0 mA, VDD = 3.3V Output High-Voltage D090 GPIO VOH V IOH = -3.5 mA, VDD = 5.0V IOH = -3.0 mA, VDD = 3.3V Capacitive Loading Specs on Output Pins D101 OSC2 COSC2 — — 15 pF Note 1 D102 GPIO CIO — — 50 pF Note 1 Note 1: This parameter is characterized, but not tested. DS22228A-page 16 2010 Microchip Technology Inc. MCP2200 FIGURE 3-1: POR AND POR REARM WITH SLOW RISING VDD VDD VPOR VPORR VSS NPOR(1) POR REARM VSS TPOR(3) TVLOW(2) Note 1: 2: 3: TABLE 3-1: USB MODULE SPECIFICATIONS DC Characteristics Param No. When NPOR is low, the device is held in Reset. TPOR 1 s typical. TVLOW 2.7 s typical. Characteristic Operating Conditions (unless otherwise indicated): 3.0V VDD 5.5V at -40C TA +85C (I-Temp) Sym Min Typ Max Units Conditions VUSB 3.0 — 3.6 V Voltage on VUSB pin must be in this range for proper USB operation IIL — — ±1 μA VSS VPIN VDD pin at high-impedance D313 USB Voltage D314 Input Leakage on Pin D315 Input Low Voltage for USB Buffer VILUSB — — 0.8 V For VUSB range D316 Input High Voltage for USB Buffer VIHUSB 2.0 — — V For VUSB range D318 Differential Input Sensitivity VDIFS — — 0.2 V The difference between D+ and D- must exceed this value while VCM is met D319 Differential Common Mode Range VCM 0.8 — 2.5 V D320 Driver Output Impedance(1) ZOUT 28 — 44 D321 Voltage Output Low VOL 0.0 — 0.3 V 1.5 kload connected to 3.6V D322 Voltage Output High VOH 2.8 — 3.6 V 1.5 kload connected to ground Note 1: The D+ and D- signal lines have been built-in impedance matching resistors. No external resistors, capacitors or magnetic components are necessary on the D+/D- signal paths between the MCP2200 family device and the USB cable. 2010 Microchip Technology Inc. DS22228A-page 17 MCP2200 TABLE 3-2: THERMAL CONSIDERATIONS Standard Operating Conditions (unless otherwise stated) Operating temperature -40C TA +85C (I-Temp) Param No. Sym TH01 θJA Thermal Resistance Junction to Ambient TH02 θJC Thermal Resistance Junction to Case TH03 TH04 TJMAX PD Maximum Junction Temperature Power Dissipation TH05 TH06 TH07 Legend: Note 1: 2: 3: Characteristic PINTERNAL Internal Power Dissipation PI/O I/O Power Dissipation Typ Units 85.2 108.1 TBD 24 24 24 150 — C/W C/W C/W C/W C/W C/W C W — — W W Conditions 20-pin SOIC package 20-pin SSOP package 20-pin QFN 5x5mm package 20-pin SOIC package 20-pin SSOP package 20-pin QFN 6x6mm package PD = PINTERNAL + PI/O PINTERNAL = IDD x VDD(1) PI/O = (IOL * VOL) + (IOH * (VDD – VOH)) PDER Derated Power — W PDER = PDMAX (TJ - TA)/θJA(2,3) TBD = To Be Determined. IDD is the current to run the chip alone without driving any load on the output pins. TA = Ambient Temperature. TJ = Junction Temperature. DS22228A-page 18 2010 Microchip Technology Inc. MCP2200 3.2 AC Characteristics 3.2.1 TIMING PARAMETER SYMBOLOGY The timing parameter symbols have been created in one of the following formats: 1. TppS2ppS T F Frequency E Error Lowercase letters (pp) and their meanings: pp io Input or Output pin rx Receive bitclk RX/TX BITCLK drt Device Reset Timer Uppercase letters and their meanings: S F Fall H High I Invalid (high-impedance) L Low 3.2.2 2. TppS T Time osc tx RST Oscillator Transmit Reset P R V Z Period Rise Valid High-impedance TIMING CONDITIONS The operating temperature and voltage specified in Table 3-3 apply to all timing specifications unless otherwise noted. Figure 3-2 specifies the load conditions for the timing specifications. TABLE 3-3: TEMPERATURE AND VOLTAGE SPECIFICATIONS - AC AC CHARACTERISTICS FIGURE 3-2: Standard Operating Conditions (unless otherwise stated) Operating temperature -40C TA +85C Operating voltage VDD range as described in DC spec Section 3.1 “DC Characteristics”. LOAD CONDITIONS FOR DEVICE TIMING SPECIFICATIONS Pin 50 pF (15 pF for OSC2) 2010 Microchip Technology Inc. DS22228A-page 19 MCP2200 3.2.3 TIMING DIAGRAMS AND SPECIFICATIONS TABLE 3-4: RESET, OSCILLATOR START-UP TIMER AND POWER-UP TIMER PARAMETERS Standard Operating Conditions (unless otherwise stated) Operating Temperature -40°C TA +85°C Param No. Sym 30 TRST 31 32 Characteristic MCLR Pulse Width (low) TPWRT Power-up timer TOST Oscillator startup time Min Typ† Max Units 2 — — μs 40 65 140 ms — 1024 — TOST Conditions * These parameters are characterized but not tested. † Data in “Typ” column is at 5V, 25°C unless otherwise stated. These parameters are for design guidance only and are not tested. DS22228A-page 20 2010 Microchip Technology Inc. MCP2200 4.0 PACKAGING INFORMATION 4.1 Package Marking Information 20-Lead QFN Example XXXXX XXXXXX XXXXXX YWWNNN 20-Lead SOIC MCP2200 e3 I/MQ^^ 1004256 Example: MCP2200 e3 I/SO ^^ 1004256 XXXXXXXXXXXXXX XXXXXXXXXXXXXX XXXXXXXXXXXXXX YYWWNNN 20-Lead SSOP Example: XXXXXXXXXXX XXXXXXXXXXX YYWWNNN Legend: XX...X Y YY WW NNN e3 * Note: MCP2200 I/SS^^ e3 1004256 Customer-specific information Year code (last digit of calendar year) Year code (last 2 digits of calendar year) Week code (week of January 1 is week ‘01’) Alphanumeric traceability code Pb-free JEDEC designator for Matte Tin (Sn) This package is Pb-free. The Pb-free JEDEC designator ( e3 ) can be found on the outer packaging for this package. In the event the full Microchip part number cannot be marked on one line, it will be carried over to the next line, thus limiting the number of available characters for customer-specific information. 2010 Microchip Technology Inc. DS22228A-page 21 MCP2200 20-Lead Plastic Quad Flat, No Lead Package (MQ) – 5x5x0.9 mm Body [QFN] Note: For the most current package drawings, please see the Microchip Packaging Specification located at http://www.microchip.com/packaging Microchip Technology Drawing C04-120A DS22228A-page 22 2010 Microchip Technology Inc. MCP2200 Note: For the most current package drawings, please see the Microchip Packaging Specification located at http://www.microchip.com/packaging 2010 Microchip Technology Inc. DS22228A-page 23 MCP2200 !"# $% 3&'!&"& 4#*!( !!& 4 %&&#& && 255***' '5 4 D N E E1 NOTE 1 1 2 3 e b α h h A A2 c φ L A1 6&! '!7'&! 8"')%! β L1 77.. 8 8 89 : & 9 ;& < 1, < ##44!! / < < &#%%+ < - 9 >#& . ##4>#& . /1, 9 7& 1, =/ -1, ,'%? &@ / < / 3&7& 7 < 3& & 7 .3 3& I A < A 7#4!! < -- 7#>#& ) - < / #%& D /A < /A #%&1&&' E /A < /A $% !"#$%&"' ()"&'"!&)&#*&&&# +%&,&!& - '!!#.#&"#'#%! &"!!#%! &"!!!&$#/'' !# '!#& .0/ 1,2 1!'!&$& "!**&"&&! .32 %'!("!"*&"&&(%%'& " !! * ,1 DS22228A-page 24 2010 Microchip Technology Inc. MCP2200 Note: For the most current package drawings, please see the Microchip Packaging Specification located at http://www.microchip.com/packaging 2010 Microchip Technology Inc. DS22228A-page 25 MCP2200 &'() # $% 3&'!&"& 4#*!( !!& 4 %&&#& && 255***' '5 4 D N E E1 NOTE 1 1 2 e b c A2 A φ A1 L1 6&! '!7'&! 8"')%! L 77.. 8 8 89 : & 9 ;& < =/1, < ##44!! =/ / / &#%% / < < 9 >#& . ##4>#& . / /- /= 9 7& = / 3&7& 7 // / / 3& & 7 /.3 7#4!! < 3& I A A / A 7#>#& ) < - $% !"#$%&"' ()"&'"!&)&#*&&&# '!!#.#&"#'#%! &"!!#%! &"!!!&$#'' !# - '!#& .0/ 1,2 1!'!&$& "!**&"&&! .32 %'!("!"*&"&&(%%'& " !! * ,1 DS22228A-page 26 2010 Microchip Technology Inc. MCP2200 Note: For the most current package drawings, please see the Microchip Packaging Specification located at http://www.microchip.com/packaging 2010 Microchip Technology Inc. DS22228A-page 27 MCP2200 NOTES: DS22228A-page 28 2010 Microchip Technology Inc. MCP2200 APPENDIX A: REVISION HISTORY Revision A (March 2010) • Original Release of this Document. 2010 Microchip Technology Inc. DS22228A-page 29 MCP2200 NOTES: DS22228A-page 30 2010 Microchip Technology Inc. MCP2200 PRODUCT IDENTIFICATION SYSTEM To order or obtain information, e.g., on pricing or delivery, refer to the factory or the listed sales office. PART NO. X /XX Device Temperature Range Package Device MCP2200: MCP2200T: Examples: a) USB-to-UART serial converter USB-to-UART serial converter (Tape and Reel) Temperature Range I = Package MQ = Plastic Quad Flat, No Lead Package 5x5x0.9 mm Body (QFN), 20-Lead = Plastic Small Outline - Wide, 7.50 mm Body (SO), 20-Lead = Plastic Shrink Small Outline - 5.30 mm Body (SS) 20-Lead SO SS -40C to 2010 Microchip Technology Inc. +85C (Industrial) MCP2200- I/MQ: b) Industrial temperature, 20LD QFN Package. MCP2200T- I/MQ: Tape and Reel, Industrial temperature, 20LD QFN Package. a) MCP2200- I/SO: b) MCP2200T- I/SO: a) MCP2200- I/SS: b) MCP2200T- I/SS: Industrial temperature, 20LD SOIC Package. Tape and Reel, Industrial temperature, 20LD SOIC Package. Industrial temperature, 20LD SSOP Package. Tape and Reel, Industrial temperature, 20LD SSOP Package. DS22228A-page 31 MCP2200 NOTES: DS22228A-page 32 2010 Microchip Technology Inc. Note the following details of the code protection feature on Microchip devices: • Microchip products meet the specification contained in their particular Microchip Data Sheet. • Microchip believes that its family of products is one of the most secure families of its kind on the market today, when used in the intended manner and under normal conditions. • There are dishonest and possibly illegal methods used to breach the code protection feature. All of these methods, to our knowledge, require using the Microchip products in a manner outside the operating specifications contained in Microchip’s Data Sheets. Most likely, the person doing so is engaged in theft of intellectual property. • Microchip is willing to work with the customer who is concerned about the integrity of their code. • Neither Microchip nor any other semiconductor manufacturer can guarantee the security of their code. Code protection does not mean that we are guaranteeing the product as “unbreakable.” Code protection is constantly evolving. We at Microchip are committed to continuously improving the code protection features of our products. Attempts to break Microchip’s code protection feature may be a violation of the Digital Millennium Copyright Act. If such acts allow unauthorized access to your software or other copyrighted work, you may have a right to sue for relief under that Act. Information contained in this publication regarding device applications and the like is provided only for your convenience and may be superseded by updates. It is your responsibility to ensure that your application meets with your specifications. MICROCHIP MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND WHETHER EXPRESS OR IMPLIED, WRITTEN OR ORAL, STATUTORY OR OTHERWISE, RELATED TO THE INFORMATION, INCLUDING BUT NOT LIMITED TO ITS CONDITION, QUALITY, PERFORMANCE, MERCHANTABILITY OR FITNESS FOR PURPOSE. Microchip disclaims all liability arising from this information and its use. Use of Microchip devices in life support and/or safety applications is entirely at the buyer’s risk, and the buyer agrees to defend, indemnify and hold harmless Microchip from any and all damages, claims, suits, or expenses resulting from such use. No licenses are conveyed, implicitly or otherwise, under any Microchip intellectual property rights. Trademarks The Microchip name and logo, the Microchip logo, dsPIC, KEELOQ, KEELOQ logo, MPLAB, PIC, PICmicro, PICSTART, PIC32 logo, rfPIC and UNI/O are registered trademarks of Microchip Technology Incorporated in the U.S.A. and other countries. FilterLab, Hampshire, HI-TECH C, Linear Active Thermistor, MXDEV, MXLAB, SEEVAL and The Embedded Control Solutions Company are registered trademarks of Microchip Technology Incorporated in the U.S.A. Analog-for-the-Digital Age, Application Maestro, CodeGuard, dsPICDEM, dsPICDEM.net, dsPICworks, dsSPEAK, ECAN, ECONOMONITOR, FanSense, HI-TIDE, In-Circuit Serial Programming, ICSP, Mindi, MiWi, MPASM, MPLAB Certified logo, MPLIB, MPLINK, mTouch, Octopus, Omniscient Code Generation, PICC, PICC-18, PICDEM, PICDEM.net, PICkit, PICtail, REAL ICE, rfLAB, Select Mode, Total Endurance, TSHARC, UniWinDriver, WiperLock and ZENA are trademarks of Microchip Technology Incorporated in the U.S.A. and other countries. SQTP is a service mark of Microchip Technology Incorporated in the U.S.A. All other trademarks mentioned herein are property of their respective companies. © 2010, Microchip Technology Incorporated, Printed in the U.S.A., All Rights Reserved. Printed on recycled paper. ISBN: 978-1-60932-051-5 Microchip received ISO/TS-16949:2002 certification for its worldwide headquarters, design and wafer fabrication facilities in Chandler and Tempe, Arizona; Gresham, Oregon and design centers in California and India. The Company’s quality system processes and procedures are for its PIC® MCUs and dsPIC® DSCs, KEELOQ® code hopping devices, Serial EEPROMs, microperipherals, nonvolatile memory and analog products. In addition, Microchip’s quality system for the design and manufacture of development systems is ISO 9001:2000 certified. 2010 Microchip Technology Inc. DS22228A-page 33 WORLDWIDE SALES AND SERVICE AMERICAS ASIA/PACIFIC ASIA/PACIFIC EUROPE Corporate Office 2355 West Chandler Blvd. Chandler, AZ 85224-6199 Tel: 480-792-7200 Fax: 480-792-7277 Technical Support: http://support.microchip.com Web Address: www.microchip.com Asia Pacific Office Suites 3707-14, 37th Floor Tower 6, The Gateway Harbour City, Kowloon Hong Kong Tel: 852-2401-1200 Fax: 852-2401-3431 India - Bangalore Tel: 91-80-3090-4444 Fax: 91-80-3090-4123 India - New Delhi Tel: 91-11-4160-8631 Fax: 91-11-4160-8632 Austria - Wels Tel: 43-7242-2244-39 Fax: 43-7242-2244-393 Denmark - Copenhagen Tel: 45-4450-2828 Fax: 45-4485-2829 India - Pune Tel: 91-20-2566-1512 Fax: 91-20-2566-1513 France - Paris Tel: 33-1-69-53-63-20 Fax: 33-1-69-30-90-79 Japan - Yokohama Tel: 81-45-471- 6166 Fax: 81-45-471-6122 Germany - Munich Tel: 49-89-627-144-0 Fax: 49-89-627-144-44 Atlanta Duluth, GA Tel: 678-957-9614 Fax: 678-957-1455 Boston Westborough, MA Tel: 774-760-0087 Fax: 774-760-0088 Chicago Itasca, IL Tel: 630-285-0071 Fax: 630-285-0075 Cleveland Independence, OH Tel: 216-447-0464 Fax: 216-447-0643 Dallas Addison, TX Tel: 972-818-7423 Fax: 972-818-2924 Detroit Farmington Hills, MI Tel: 248-538-2250 Fax: 248-538-2260 Kokomo Kokomo, IN Tel: 765-864-8360 Fax: 765-864-8387 Los Angeles Mission Viejo, CA Tel: 949-462-9523 Fax: 949-462-9608 Santa Clara Santa Clara, CA Tel: 408-961-6444 Fax: 408-961-6445 Toronto Mississauga, Ontario, Canada Tel: 905-673-0699 Fax: 905-673-6509 Australia - Sydney Tel: 61-2-9868-6733 Fax: 61-2-9868-6755 China - Beijing Tel: 86-10-8528-2100 Fax: 86-10-8528-2104 China - Chengdu Tel: 86-28-8665-5511 Fax: 86-28-8665-7889 Korea - Daegu Tel: 82-53-744-4301 Fax: 82-53-744-4302 China - Chongqing Tel: 86-23-8980-9588 Fax: 86-23-8980-9500 Korea - Seoul Tel: 82-2-554-7200 Fax: 82-2-558-5932 or 82-2-558-5934 China - Hong Kong SAR Tel: 852-2401-1200 Fax: 852-2401-3431 Malaysia - Kuala Lumpur Tel: 60-3-6201-9857 Fax: 60-3-6201-9859 China - Nanjing Tel: 86-25-8473-2460 Fax: 86-25-8473-2470 Malaysia - Penang Tel: 60-4-227-8870 Fax: 60-4-227-4068 China - Qingdao Tel: 86-532-8502-7355 Fax: 86-532-8502-7205 Philippines - Manila Tel: 63-2-634-9065 Fax: 63-2-634-9069 China - Shanghai Tel: 86-21-5407-5533 Fax: 86-21-5407-5066 Singapore Tel: 65-6334-8870 Fax: 65-6334-8850 China - Shenyang Tel: 86-24-2334-2829 Fax: 86-24-2334-2393 Taiwan - Hsin Chu Tel: 886-3-6578-300 Fax: 886-3-6578-370 China - Shenzhen Tel: 86-755-8203-2660 Fax: 86-755-8203-1760 Taiwan - Kaohsiung Tel: 886-7-536-4818 Fax: 886-7-536-4803 China - Wuhan Tel: 86-27-5980-5300 Fax: 86-27-5980-5118 Taiwan - Taipei Tel: 886-2-2500-6610 Fax: 886-2-2508-0102 China - Xian Tel: 86-29-8833-7252 Fax: 86-29-8833-7256 Thailand - Bangkok Tel: 66-2-694-1351 Fax: 66-2-694-1350 Italy - Milan Tel: 39-0331-742611 Fax: 39-0331-466781 Netherlands - Drunen Tel: 31-416-690399 Fax: 31-416-690340 Spain - Madrid Tel: 34-91-708-08-90 Fax: 34-91-708-08-91 UK - Wokingham Tel: 44-118-921-5869 Fax: 44-118-921-5820 China - Xiamen Tel: 86-592-2388138 Fax: 86-592-2388130 China - Zhuhai Tel: 86-756-3210040 Fax: 86-756-3210049 01/05/10 DS22228A-page 34 2010 Microchip Technology Inc.