<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>I2C on KnightLi Blog</title>
        <link>https://www.knightli.com/en/tags/i2c/</link>
        <description>Recent content in I2C on KnightLi Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en</language>
        <lastBuildDate>Sat, 18 Apr 2026 22:48:51 +0800</lastBuildDate><atom:link href="https://www.knightli.com/en/tags/i2c/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>MCP2221A-I/ST Selection Notes: A Handy USB-to-I2C/UART Bridge Chip</title>
        <link>https://www.knightli.com/en/2026/04/18/mcp2221a-usb-i2c-uart-bridge/</link>
        <pubDate>Sat, 18 Apr 2026 22:48:51 +0800</pubDate>
        
        <guid>https://www.knightli.com/en/2026/04/18/mcp2221a-usb-i2c-uart-bridge/</guid>
        <description>&lt;p&gt;&lt;code&gt;MCP2221A-I/ST&lt;/code&gt; is Microchip&amp;rsquo;s USB 2.0 to I2C/UART bridge chip. It is not new, but it is very suitable for building a small tool that is always ready on the bench: one side connects to a PC over USB, while the other side exposes I2C, UART, and a few GPIO pins for temporary register reads, configuration writes, and board-level peripheral debugging.&lt;/p&gt;
&lt;p&gt;I started paying attention to it because &lt;code&gt;MCP2221A&lt;/code&gt; often appears when people discuss modifying VRM &lt;code&gt;ICC_MAX&lt;/code&gt; for high-TDC OEM CPUs on LGA3647 platforms. Many existing tools use it to turn a PC into a USB-I2C host, then access VRM controllers on the motherboard.&lt;/p&gt;
&lt;h2 id=&#34;what-this-chip-can-do&#34;&gt;What This Chip Can Do
&lt;/h2&gt;&lt;p&gt;The core functions of &lt;code&gt;MCP2221A&lt;/code&gt; are straightforward:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;USB to UART.&lt;/li&gt;
&lt;li&gt;USB to I2C.&lt;/li&gt;
&lt;li&gt;Four reusable GP pins.&lt;/li&gt;
&lt;li&gt;USB CDC and HID composite device support.&lt;/li&gt;
&lt;li&gt;Configurable VID, PID, string descriptors, and startup settings through configuration tools.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In other words, it can work like an ordinary USB-to-serial chip, but it can also act as a USB-I2C bridge without requiring your own MCU firmware.&lt;/p&gt;
&lt;h2 id=&#34;key-parameters&#34;&gt;Key Parameters
&lt;/h2&gt;&lt;p&gt;The &lt;code&gt;MCP2221A-I/ST&lt;/code&gt; listed by LCSC is the original Microchip device. Its LCSC part number is &lt;code&gt;C130462&lt;/code&gt;, and the package is &lt;code&gt;TSSOP-14&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The main parameters worth remembering are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;USB: USB 2.0 Full-Speed, 12 Mbps.&lt;/li&gt;
&lt;li&gt;UART: up to &lt;code&gt;460800 bps&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;I2C: works as an I2C Host, up to &lt;code&gt;400 kHz&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Supply voltage: &lt;code&gt;3.0V&lt;/code&gt; to &lt;code&gt;5.5V&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Operating temperature: industrial grade, &lt;code&gt;-40℃&lt;/code&gt; to &lt;code&gt;+85℃&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;GPIO: four GP pins, reusable as LED outputs, ADC, DAC, clock output, interrupt detection, and other functions.&lt;/li&gt;
&lt;li&gt;Package: &lt;code&gt;MCP2221A-I/ST&lt;/code&gt; is &lt;code&gt;TSSOP-14&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It is very close to the older &lt;code&gt;MCP2221&lt;/code&gt;. The main difference is that &lt;code&gt;MCP2221A&lt;/code&gt; raises the maximum UART baud rate from &lt;code&gt;115200&lt;/code&gt; to &lt;code&gt;460800&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;why-it-works-well-as-a-debugging-tool&#34;&gt;Why It Works Well as a Debugging Tool
&lt;/h2&gt;&lt;p&gt;Many hardware debugging tasks only require temporary access to a bus, and writing dedicated MCU firmware is not worth the trouble.&lt;/p&gt;
&lt;p&gt;For example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Scanning I2C addresses.&lt;/li&gt;
&lt;li&gt;Reading EEPROM or sensor registers.&lt;/li&gt;
&lt;li&gt;Configuring PMBus/VRM controllers.&lt;/li&gt;
&lt;li&gt;Leaving a temporary UART console on a board.&lt;/li&gt;
&lt;li&gt;Pulling an enable pin high or low with GPIO.&lt;/li&gt;
&lt;li&gt;Building a small internal USB-I2C/UART adapter board.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The nice part about &lt;code&gt;MCP2221A&lt;/code&gt; is its mature PC-side support. On Windows, it can enumerate as a composite USB device: UART uses CDC, while I2C control uses HID. For a temporary tool, that is much easier than maintaining a custom USB firmware stack.&lt;/p&gt;
&lt;h2 id=&#34;notes-on-the-i2c-side&#34;&gt;Notes on the I2C Side
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;MCP2221A&lt;/code&gt; is suitable as an I2C Host. It should not be treated as a universal high-speed capture device.&lt;/p&gt;
&lt;p&gt;A few common pitfalls:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I2C tops out at &lt;code&gt;400 kHz&lt;/code&gt;; do not use it with the expectations of a high-speed logic analyzer.&lt;/li&gt;
&lt;li&gt;I2C pull-up resistors still need to be designed around the target board voltage and bus capacitance.&lt;/li&gt;
&lt;li&gt;When connecting to a powered target board, sharing ground and connecting only &lt;code&gt;SCL&lt;/code&gt; and &lt;code&gt;SDA&lt;/code&gt; is usually safer. Do not casually power the target board from the adapter.&lt;/li&gt;
&lt;li&gt;If the target board already has a BMC, PCH, or another controller on the same I2C bus, bus arbitration and access timing become more complicated.&lt;/li&gt;
&lt;li&gt;Before writing VRM, EEPROM, or PMBus parameters, confirm the address, register, and side effects of the write.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In repair and board-modification scenarios, the most dangerous part is usually not the chip itself. It is miswiring &lt;code&gt;SCL&lt;/code&gt;, &lt;code&gt;SDA&lt;/code&gt;, &lt;code&gt;GND&lt;/code&gt;, or a power pin.&lt;/p&gt;
&lt;h2 id=&#34;what-the-uart-side-is-good-for&#34;&gt;What the UART Side Is Good For
&lt;/h2&gt;&lt;p&gt;The UART side supports up to &lt;code&gt;460800 bps&lt;/code&gt;, which is enough for ordinary logs, command lines, and device configuration.&lt;/p&gt;
&lt;p&gt;If you only need to replace a CH340 or CP2102-style USB-UART adapter, &lt;code&gt;MCP2221A&lt;/code&gt; may not be the cheapest option. Its value is that the same chip also provides I2C and GPIO, making it better suited to a multifunction debugging adapter than a lowest-cost serial cable.&lt;/p&gt;
&lt;h2 id=&#34;do-not-waste-the-gp-pins&#34;&gt;Do Not Waste the GP Pins
&lt;/h2&gt;&lt;p&gt;The four GP pins on &lt;code&gt;MCP2221A&lt;/code&gt; can be configured for different functions. Common uses include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Normal GPIO input and output.&lt;/li&gt;
&lt;li&gt;UART activity LEDs.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SSPND&lt;/code&gt; suspend status output.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;USBCFG&lt;/code&gt;, used to indicate that USB enumeration has completed.&lt;/li&gt;
&lt;li&gt;ADC input.&lt;/li&gt;
&lt;li&gt;DAC output.&lt;/li&gt;
&lt;li&gt;Configurable clock output.&lt;/li&gt;
&lt;li&gt;External interrupt edge detection.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you are making your own small board, it is worth routing these pins to pads or headers. Even if you do not need them at first, they may become handy later during debugging.&lt;/p&gt;
&lt;h2 id=&#34;basic-board-design-notes&#34;&gt;Basic Board Design Notes
&lt;/h2&gt;&lt;p&gt;A simple &lt;code&gt;MCP2221A&lt;/code&gt; adapter board can usually follow this outline:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Connect the USB port to the chip&amp;rsquo;s &lt;code&gt;D+&lt;/code&gt; and &lt;code&gt;D-&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Power &lt;code&gt;VDD&lt;/code&gt; from &lt;code&gt;3.3V&lt;/code&gt; or &lt;code&gt;5V&lt;/code&gt;, depending on the intended design.&lt;/li&gt;
&lt;li&gt;Add the required decoupling capacitor on &lt;code&gt;VUSB&lt;/code&gt; according to the data sheet.&lt;/li&gt;
&lt;li&gt;Bring &lt;code&gt;SCL&lt;/code&gt; and &lt;code&gt;SDA&lt;/code&gt; out to a header, and reserve pull-up resistor positions.&lt;/li&gt;
&lt;li&gt;Bring &lt;code&gt;URx&lt;/code&gt; and &lt;code&gt;UTx&lt;/code&gt; out to a header.&lt;/li&gt;
&lt;li&gt;Bring &lt;code&gt;GP0&lt;/code&gt; to &lt;code&gt;GP3&lt;/code&gt; out where possible.&lt;/li&gt;
&lt;li&gt;Handle &lt;code&gt;RST&lt;/code&gt; according to the recommended circuit so it does not float and cause unexpected resets.&lt;/li&gt;
&lt;li&gt;Add ESD protection near the USB connector if needed.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If the board is mainly used with unknown external targets, the I2C side should reserve level selection, pull-up resistor enable options, and protection. The more often a debugging cable gets plugged and unplugged, the more seriously you should treat miswiring and static discharge.&lt;/p&gt;
&lt;h2 id=&#34;good-use-cases&#34;&gt;Good Use Cases
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;MCP2221A&lt;/code&gt; is a good fit when:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You want a small USB-I2C/UART debugging adapter.&lt;/li&gt;
&lt;li&gt;You want the PC to access I2C devices directly.&lt;/li&gt;
&lt;li&gt;You do not want to write dedicated USB firmware.&lt;/li&gt;
&lt;li&gt;The tool board also needs a few simple GPIO pins.&lt;/li&gt;
&lt;li&gt;You need to work in Windows with existing DLLs, configuration tools, or third-party scripts.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It is not such a good fit when:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You only need the lowest-cost USB-UART.&lt;/li&gt;
&lt;li&gt;You need a higher UART baud rate.&lt;/li&gt;
&lt;li&gt;You need high-speed I2C or SPI.&lt;/li&gt;
&lt;li&gt;You need complex GPIO timing.&lt;/li&gt;
&lt;li&gt;The target is a production device&amp;rsquo;s main controller rather than a debugging bridge.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;MCP2221A-I/ST&lt;/code&gt; has a clear role: it is not a high-performance capture chip, and it is not a full MCU. It is a convenient USB-to-I2C/UART bridge. Its strength is removing the need for USB firmware and quickly connecting a PC to I2C, UART, and a few GPIO pins.&lt;/p&gt;
&lt;p&gt;If your work often involves board-level debugging, I2C register configuration, PMBus, or VRM parameter reads and writes, a small board based on &lt;code&gt;MCP2221A&lt;/code&gt; is very useful to keep nearby. Before using it on real hardware, the important part is not memorizing every parameter, but confirming power, common ground, pull-ups, voltage levels, and whether the target board already has another controller occupying the bus.&lt;/p&gt;
&lt;h2 id=&#34;references&#34;&gt;References
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Microchip MCP2221A product page: &lt;a class=&#34;link&#34; href=&#34;https://www.microchip.com/en-us/product/mcp2221a&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.microchip.com/en-us/product/mcp2221a&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Microchip MCP2221A data sheet: &lt;a class=&#34;link&#34; href=&#34;https://www.microchip.com/content/dam/mchp/documents/APID/ProductDocuments/DataSheets/MCP2221A-Data-Sheet-DS20005565D.pdf&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.microchip.com/content/dam/mchp/documents/APID/ProductDocuments/DataSheets/MCP2221A-Data-Sheet-DS20005565D.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;LCSC MCP2221A-I/ST: &lt;a class=&#34;link&#34; href=&#34;https://item.szlcsc.com/141750.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://item.szlcsc.com/141750.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
