MuseLab USB-HS-Bridge is an inexpensive ($5) board based on WCH CH347 chip with a USB 2.0 Type-C interface that acts as a bridge for I2C, SPI, UART, and JTAG interfaces, as well as GPIOs.
It’s notably useful to debug and download bitstreams to FPGA development boards, but it can also be used to connect various peripherals such as I2C sensors, SPI flash devices, UART devices to basically any host with a spare USB 2.0 host port.
USB-HS-Bridge specifications:
- Chip – WCH CH347 high-speed USB to UART, I2C, SPI and JTAG chip (See link to the datasheet for details)
- USB – 1x USB 2.0 Type-C port with up to 480 Mbps data rate
- I/Os – 2x 16-pin header with
- 2x UART interfaces up to 9 Mbps baudrate
- 1x I2C for EEPROM or sensors
- 1x SPI master interface with 2 chip select signals to control up to 2x SPI slave devices. The SPI interface can operate up to 36MHz
- 4-wire standard JTAG interface up to 60MHz
- Some of the signals can also be reconfigured as GPIOs instead (CH347 offers up to 8x reconfigurable GPIOs depending on the mode used)
- 5V, 3.3V, and GND signals
- Misc – 2-way DIP switch for mode selection:
- 00 – UART0 and UART1 enabled
- 10 – UART1, I2C, and SPI (VCP = virtual COM port, driver required in Windows)
- 01 – UART1, I2C, and SPI (HID – human interface device)
- 11 – UART1 and JTAG enabled
- Power Supply – 5V via USB port
- Dimensions – 41 x 21 mm
The CH347 is a fixed-function chip so there’s no firmware programming, but MuseLab still provided the PDF schematics, some instructions, the link to the Windows driver, and an SPI sample written in C language for Linux on Github.
USB-HS-Bridge CH347 board can be purchased for just $5 on Tindie or Aliexpress, although the latter may offer cheaper shipping depending on where you live.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
Does this chip/board also allow GPIO functionality. UART+GPIO would be nice, even if there are just one one or two GPIOs then.
When I checked the datasheet yesterday, I could see 8 GPIOs shared with the UART signals, and it also appears the I2C pins can be used as GPIOs.
Yes, I saw this. So in theory the GPIOs should even be accessible via the standard UART drivers via controlling DTR, CTS … I was hoping for pointers to articles online how to use the GPIOs practically with this chip/board.
On this page http://www.wch-ic.com/downloads/CH347EVT_ZIP.html you can download a ZIP which contains (among other things) the “CH347 Application development manual”. Section 4.3 describes the API to get/set GPIO pins, but I suppose you must use their Windows USB driver for this to work. I’m not sure how this works at the USB level if you want to use it on a different platform.
There’s also a USB configuration tool here: http://www.wch-ic.com/downloads/CH34xSerCfg_ZIP.html which may be relevant.
OpenOCD support for this would be nice.
Sounds like a few weekends kinda project, but for sure, that was my first thought!
from the article is not clear if the device support selectable 5V / 3V3 communication to I2C /SPI and UART devices, like other cheaper board do: https://aliexpress.com/item/1005001899783990.html
Many Aliexpress links give me “Sorry, this item’s currently unavailable in your location” now. Am I the only one running into this?
I can reproduce the error if I switch the country to Germany. I’m not sure why that is, as other EU countries seem fine.
FINALLY SOMETHING SANE for the Pano Logic G2 with Xilinx Spartan 6 XC6SLX150/10 LETS GO!
What would it take connect this to an Android phone and have the phone controli it?
Hack the ch341a gpio Linux driver and add support for this chip?
I had incomplete libusb gpio toggling for ch341a, curious to see if i could achevé more with this one.
CH347 can be used to download FPGAs, such as XILINX. Its SPI and I2C interfaces use effect is also good. The SPI can reach 60MHz, and the fastest read/write is about 6MB/s. There are some links about it:https://github.com/WCHSoftGroup/ch347