CH347 Programmer Drivers and Software for Windows

 Posted by:   Posted on:   Updated on:  2024-12-02T11:14:37Z

These free utilities can be used with CH347 programmer on Windows.

Now that we’ve explored the hardware aspects of the CH347T-based programmer, it’s time to dive into the drivers and software that bring this device to life. While the hardware offers substantial improvements in terms of speed and functionality, its true potential can only be unlocked with the appropriate software tools. This section will guide you through the installation process of the drivers and examine the software options available for interacting with the programmer.

One key consideration when using the CH347T programmer is the compatibility of the software and how well it manages the various serial interfaces it supports, including UART, I2C, SPI, JTAG, and SWD. We’ll explore Windows only tools, focusing on how they handle specific tasks such as memory programming, serial communication, and debugging.

CH347 Programmer Drivers and Software for Windows

Drivers

Before connecting the programmer to the computer it is a good idea to install USB drivers. As with CH341, there are two drivers, one for the special interface and the other for serial port:

  • CH343SER.ZIP - this is the serial port driver (it supports CH347, CH343 and some other of WCH family of USB interface chips).
  • CH341PAR.ZIP - this is the driver which is actually required for the programmer to work (note that CH347 shares the same driver with CH341).

Click the big download button on the chip manufacturer page and open the downloaded archive. Extract CH341PAR folder and run setup. Click on Install, wait for the confirmation and you are done.

Official software

The manufacturer of the programmer released a Windows-only tool for using with this device. It is called CH347 High-Speed Programmer and its latest version at the time of writing this is 1.40. The tool is portable and can be downloaded as ZIP archive. Extract this archive anywhere you want, but make sure its path does not contain special or non-latin characters (otherwise it is not usable because it cannot open some required files).

Launch CH347.exe and if the interface is not in English, click the fifth menu item and choose the third and last entry, for English. There is nothing special about the software. You have to select the memory that you will read or write (or you can use auto-detect function for SPI), then do whatever you want (all common commands are on top toolbar).

CH347 Programming Tool
CH347 Programming Tool

Note that when you hotplug a memory chip it will try to autodetect it if using SPI. You will be prompted to select it from a list, unfortunately the interface is not completely translated to English. Note that automatic start of chip detection does not work unless 25 FLASH type is already selected in the left pane. Once the chip is detected and confirmed, you can proceed to read it or write something else to it.

Everything works great with SPI memory chips, however I had no luck reading I2C EEPROMs. It seems to be a software issue since I even used a logic analyzer and there is expected I2C communication on SDA and SCL lines.

CH347 I2C sampling
CH347 I2C sampling

It should be noted that the clock speed goes to a maximum of 800 kHz with the official software and there is no way to change this.

3rd Party Software

There is a great alternative to the official software. I'm talking about the tool developed by Shichang Zhuo which is open source, Windows only and comes with support for both CH341 and CH347. It is published on a Google Driver folder and there are English and Chinese versions available. And it can properly read I2C EEPROMs. Interface is similar in functionality, yet it looks better.

CH341 and CH347 programming utility
CH341 and CH347 programming utility

This programming utility is letting you set the clock speed for I2C and SPI, thus being able to accommodate for older memory chips which may not support high speeds. You can find the setting in Programmer menu. So, I've been able to read and also write my 24C02 with I2C clock speed of 100 kHz.

Overall this utility is slightly slower and some operations tend to make the main window unresponsive. Just wait patiently for it to finish and everything should be fine.

AsProgrammer

As fast as the official tool, AsProgrammer is another 3rd party tool which comes with support for CH347T in the latest version. You have probably heard of it if you ever used CH341A since it is a popular software for that programmer. It is open source, hosted on GitHub and Windows only. 

AsProgrammer supports CH347
AsProgrammer supports CH347

AsProgrammer could be your best choice since it supports multiple programmers and for CH347 you can set clock speed too. Therefore it can handle all kinds if SPI and I2C memory chips and it has no issues reading I2C EEPROMs.

Overview

Serial programmers based on CH347 are a better and faster alternative to the well-known CH341A MiniProgrammer. Windows users have three pieces of software to choose from when it comes to this programmer. All of them seem to be reliable (I did some read tests with all of them on both CH341A and CH347T then compared checksums of read data and everything was consistent).

What about Linux? Well, all of these utilities rely on the DLL library provided by CH347 manufacturer and they also provide a similar library for Linux too. There is an effort to add support for CH347T in IMSProg, a newly developed programming utility for Linux. However, software developers prefer to talk directly to CH347 on Linux (using libusb, therefore avoiding the need to install a custom driver) and this makes development harder.

6 comments :

  1. I have recently bought this programmer. From my personal experience, after trying those 3 tools, the best software available at this moment for CH347T is AsProgrammer. I had to set it to 15 MHz because 30 and 60 gave me wrong readings and did not detect the chip properly.

    I have only tested it with a Winbond W25Q256JW (WSON8) without desoldering, using a 1.8V adapter and pogo pins probe. Reading is ridiculously fast, a few seconds to read that 32MB chip at 15 MHz. My main concern was, instead, that writing was very slow, around 6 minutes. I don't know if the problem was the probe, the adapter, the software, the driver... but it was a real pain to write the chip holding the probe all that time.

    I hope they will improve the software/drivers for this programmer once it becomes more popular. Support for Linux is very important too.

    Thanks for these two articles, I really enjoyed reading them.

    ReplyDelete
    Replies
    1. I made tests with W25Q128 unsoldered from PCB and placed in programmer with the adapter shown in photos. Reading is less than 5 seconds with AsProgrammer, but writing took slightly more than 1 minute, without changing any speed settings. This is faster than the official software. With adapters, voltage converters and clips with long wires there is nothing one can do but lower clock speed.

      Delete
    2. That makes sense and correlates with my experience: writing a 16MB unsoldered chip at 60 MHz=1 minute, so a 32MB chip would spend 2 minutes; At 15 MHz=around 6 minutes may be normal. The wires are not long but that might be the problem.

      Thanks!

      Delete
  2. "What about Linux. Well, all of these utilities rely on the DLL library provided by CH347 manufacturer and they do not provide a library for Linux too. " -
    Linux driver for USB to JTAG/ SPI/ I2C/ Parallel port/ GPIO etc, support CH341 and CH347, supports USB to SPI/ I2C/ EPP Parallel port/ MEM Parallel port etc, supports 480Mbps high speed USB to JTAG/SPI/I2C/GPIO etc for CH347supports 32/64-bit operating systems.
    https://www.wch-ic.com/downloads/CH341PAR_LINUX_ZIP.html

    ReplyDelete
    Replies
    1. Sorry, I overlooked that. I will update the post with correct information. Thank you!

      Delete
    2. flashrom support CH341A and CH347
      https://www.flashrom.org/classic_cli_manpage.html#ch347-spi-programmer

      Delete

Please read the comments policy before publishing your comment.