Program Arduino Pro Mini with CH341A dongle

 Posted by:   Posted on:   Updated on:  2020-08-28T18:58:08Z

How to connect and program Arduino Pro Mini boards using the CH341A MiniProgrammer.

Arduino Pro Mini is a development board based on ATmega168 or ATmega328 microcontroller. Unlike other members of the Arduino family, this board does not have an USB port for PC connection. To program it, you need an USB to serial TTL converter. There are many choices here, and the Arduino Pro Mini has a pinheader port that matches the pinout of FTDI USB serial breakout boards. ATmega MCU doesn't need all serial port pins. It requires serial data pins RxD and TxD and also DTR, which is connected to reset pin.

CH340 is another USB serial interface. It can be found at the core of the cheapest USB serial adapters, but these dongles are difficult to connect to Arduino because there is no power pin and no exposed DTR pin. The power pins on the CH340 USB breakout board are used with jumpers to select voltage levels (3.3V or 5V).

CH341A is a complex interface chip which adds parallel, I2C or SPI interface. It is used by memory programmers. However, by setting a jumper, it works as an usual USB to serial adapter. I will be using here a popular device based on CH341A, the black MiniProgrammer, to program an Arduino Pro Mini compatible board.
Program Arduino Pro Mini with CH341A dongle
This programmer has two pinheader ports. One is a serial port similar to CH340 and the other is a SPI port. The serial port has only RxD and TxD lines. But, when switched to serial operation mode, CH341A turns the SPI MOSI pin into DTR pin. Therefore, to use this programmer with Arduino:
  • connect Arduino TxD to CH341A RxD;
  • connect Arduino RxD to CH341A TxD;
  • connect Arduino DTR to CH341A MOSI;
  • connect 5V power line and GND.
Keep in mind that this black programmer uses 5V levels, therefore it can be used only for 5V Arduino!
Program Arduino Pro Mini with CH341A dongle
Next step is to get a driver. Windows driver can be found at WinChipHead. Modern Linux distributions have driver included in kernel, therefore the programmer is plug-and-play. You can launch Arduino IDE, select serial port, select 5V Pro Mini board and start coding.


Please read the comments policy before publishing your comment.