Turn your Arduino Mega 2560 board into a universal programmer
The idea of this project was to create the most universal and, above all, simple programmer for AVR microprocessors. To support as many processors as possible, my requirement was a ZIF40 socket and programming using a high voltage of 12V. I chose high voltage support so that it would be possible to save microprocessors that were disabled by incorrect fuse settings, or if you previously needed another pin by melting the RSTDISBL fuse and you need to reload a new program. This required programming software that supports the ISP (In-System Programming), HVPP (High Voltage Parallel Programming) and HVSP (High Voltage Serial Programming) protocols. My requirement was also PC software support (Avrdude, Atmel Studio). For this compatibility, I chose the STK500 version 2 communication protocol, which is described in the AVR068 document on the Microchip website, and is supported by all of the aforementioned programs. The STK500 protocol communicates with a PC via a serial interface, which greatly simplifies the resulting programmer. You can use an Arduino board that has a built-in USB -> Serial converter for programming and monitoring. I chose the Arduino Mega 2560 board for a sufficient number of pins. The resulting programmer board contains only 4 IOs, a few diodes, resistors and capacitors. A somewhat experienced electronics technician can solder the board himself (SMT soldering is required). The entire programmer is then simply inserted into the Arduino Mega 2560 board, and after uploading the firmware to the mega2560, it can be used immediately. The versatility of the programmer board also predetermines it for the implementation of other protocols such as TPI, PDI and UPDI. These will be added gradually.




