XTW100 Mini Programmer Usage and Tests

 Posted by:   Posted on:   Updated on:  2024-09-06T17:33:58Z

Learn how to use the cheap and fast XTW100 mini programmer based on STM32 to read and write I2C and SPI memory ICs

Long time ago I got an XTW100 Mini Programmer and because it came without documentation I began by analyzing the hardware which resulted in tracing of its schematic. This is yet another cheap Chinese serial programmer for I2C and SPI memory chips based on STM32 microcontroller. Last time I managed to break its firmware by attempting to read it from the microcontroller. However, I got a new programmer and I’m ready to do some tests with it.

This time I will stay away from the programming port to avoid firmware damage. I will therefore focus solely on using it for the intended purpose: reading and writing memory ICs. I got myself two chips, the I2C EEPROM 24C02 and the SPI flash memory which will be used for tests. I talked about the software utility which you can use with this programmer in a previous post.

XTW100 Mini Programmer Usage and Tests

Chip placement

Chip placement in the ZIF socket should be clear from the schematic. Well, not quite. You see, when I traced the schematic I presumed XTW100 works similarly to CH341A and has different placements for SPI and I2C. Microcontroller pin mapping only strengthened this assumption.

To my surprise, both I2C and SPI protocols are emulated by firmware in the same area of the ZIF socket. Therefore, this is how you should place ICs in XTW100 programmer (next to handle, the same way you do with EZP2023+ programmers).

XTW100 Mini Programmer chip placement
XTW100 Mini Programmer chip placement

Driver

Software is available from the original developer/manufacturer (Yaojiedianzi) and the installer probably deals with the driver too. However, I won’t be using his outdated driver which may have issues with an up-to-date Windows 11 system.

XTW100 needs libusb driver to function properly. The easiest way to get one is to use Zadig. Plug in your programmer and note the new WinUSBComm Device which appears on your system. Launch Zadig, make sure you select exactly this device (it has 1FC08:300B IDs), choose libusb-win32 driver and install it.

Install XTW100 libusb driver
Install XTW100 libusb driver

Software

I used a resource editor for Windows executables to translate as much as I could of the programming utility interface (which is Chinese only). You can download the portable utility from here. Usage is straightforward, having common commands for chip identification, read, erase, write and verify. Unfortunately the status log is generated at runtime and cannot be translated. You can load raw binary and also HEX files and save memory contents to such files.

XTW100 programming utility
XTW100 programming utility

I was pleasantly surprised when this utility succeeded in identifying I2C EEPROMs, something that CH341A cannot do. It should also be noted that the HEX display apparently supports direct editing, but the bytes you change are neither saved in file (if you save the binary), neither in memory IC (if you do a write operation).

Read speed is impressive: 16 MB in 43 seconds, resulting in 381 kbytes/sec. Way better than CH341A (119 kbytes/sec) and EZP2023+ at maximum speed setting (120 kbytes/sec). Writing the same chip takes 1 minute and 18 seconds.

Do not plug/unplug/eject any USB devices during XTW100 operation. The utility blocks and stops any read/write if you do so.

Scope analysis

I have no doubt this programmer does its job. Yet, I decide to analyze it with the oscilloscope. Now I understand why this is so fast: SPI clock speed is 36 MHz. The other nice thing about it is that there is no 5V on any of the power or data lines.

XTW100 SPI clock (cyan trace) and chip VCC (yellow trace)
XTW100 SPI clock (cyan trace) and chip VCC (yellow trace)

Overview

XTW100 is another cheap serial programmer based on STM32 microcontroller. It is surprisingly fast and does not come with voltage levels issues (it is a 3.3 V device). However the lack of proper PC software could render it unusable. Hopefully someone will take the time to develop an alternative programming utility.

The previous posts:

No comments :

Post a Comment

Please read the comments policy before publishing your comment.