UPDI Explained: The Complete Guide to Programming and Debugging Modern AVR Microcontrollers
A comprehensive guide to the Unified Program and Debug Interface (UPDI), including architecture, signalling, security, memory programming, debugging, recovery techniques and programmers.
A standalone AVR microcontroller programmer is a device that can program microcontrollers without needing to be connected to a computer during the programming process. These devices are useful for production environments, field updates, or any situation where a laptop or PC is not convenient.
Choosing the correct AVR programmer depends on the requirements of your project, budget and your experience level. There are a number of factors to consider when making your decision.
Atmel, now Microchip, have been moving away from AVR ISP programming method for some time. All the latest AVR microcontrollers now use UPDI programming interface but some ATtiny chips used TPI interface, which is discussed here.
Microchip, who took over Atmel, have pushed UPDI as the preferred programming method for AVR microcontrollers. All the latest devices use this interface for both debugging and programming – UPDI means Unified Programming and Debug Interface.
The only way to re-enable Reset or SPIEN fuses on some older AVR chips like ATtiny13A, to allow them to be reprogrammed, is to use High Voltage programming (HVP) method. This was available on AVR Dragon, STK500 and STK600 but since these have been discontinued, there is a lack of suitable programmers.
So, what is now the best solution for AVR High Voltage Programming?
Microchip took over Atmel some years ago and are slowly eliminating the Atmel brand. One of the major legacies from Atmel is their Atmel Studio development environment but its days may be numbered.
Microchip took over Atmel (who made the AVR microcontroller) a few years ago and have been slowly erasing the Atmel brand. Their latest move is to rename Atmel Studio as Microchip Studio.
Atmel have stopped making AVRISP-MKII but Kanda sell a Waveshare version that is identical to the original. Atmel Studio fully supports AVRISP-MKII and it is simple to install and use with Studio but it can also be used with AVRDude and Great Cow Basic compiler.
When AVR microcontrollers were first introduced in 1995, In System Programming was simple, with one programming method (Serial Programming Interface or SPI) and a recommended 5 x 2 10-pin target interface. For 10-15 years, this stayed the same except for the addition of JTAG programming on some devices and a move towards a 3 x 2 6-pin target header. In the last few years, new interfaces have sprouted like weeds, including TPI, PDI and UPDI. What do this all mean and how does it affect you?