Is it possible to program an AVR microcontroller (e.g. Atmega328P) using a USB-UART converter like this one:

USB-UART converter

Instead of a usual USBasp ISP programmer:

USBasp ISP programmer


If yes, is the procedure the same as in the case of USBasp programmer or are there some additional steps required?


1 Answer 1


AVR microcontrollers are programmed using either the ISP (In-System Programming) interface or JTAG (Joint Test Action Group, thats an IEEE standard for in-system programming and debugging of microcontrollers, FPGAs, ...). AVR ISP uses a three-wire SPI (Serial Peripheral Interface) to communicate with the microcontroller and further has to be able to drive the reset pin. SPI and UART are very different (SPI is synchronous while UART is asynchronous), so you can not use a simple USB to UART converter to program your microcontroller

An alternative to this is the use of a bootloader. The bootloader is a part of software on your microcontroller which allows programming via e.g. USB or UART. The problem is that you have to program the bootloader using ISP or JTAG before you can use it. Many evaluation boards come with preinstalled bootloaders to allow programming via USB.

If you can find somebody with an ISP programmer, they could program a bootloader and you can then use the USB to serial converter. Otherwise you will have to buy/build an ISP programmer or switch to a controller or eval board with a preinstalled bootloader.

  • \$\begingroup\$ But isn't ISP done using a simple serial communication? There are basically 3 lines: MISO, MOSI and SCLK. Can't it be emulated by TX&RX lines of UART? However I see now that there is still clock line necessary which is absent in UART... \$\endgroup\$ Dec 15, 2014 at 8:50
  • \$\begingroup\$ As UART is asynchronous and ISP (using the SPI protocol) is synchronous, this is not possible. Further the programmer has to be able to drive the reset pin. I also added this to my answer. \$\endgroup\$
    – hbaderts
    Dec 15, 2014 at 9:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.