The simple and cheap High-Voltage Serial UPDI Programmer is a device designed specifically for tinyAVR microcontrollers. This programmer includes a target voltage selection switch that allows users to choose between 5V and 3.3V for their project needs. With this device, you can use the additional configuration settings for the UPDI pin without worrying about getting locked out from the MCU.
The programmer operates similarly to a standard SerialUPDI programmer and is compatible with popular development environments like the Arduino IDE, where it appears as "SerialUPDI". The device utilizes the CH340E USB-to-serial chip and the MT3608 Boost Converter IC to function. The CH340E chip allows the device to interface with a computer or other device through a USB connection, while the MT3608 Boost Converter IC generates the 12V pulse required for high-voltage activation of the UPDI pin.
The microcontrollers of the ATtiny 0-series, 1-series and 2-series typically have a limited number of GPIO (General-Purpose Input/Output) pins available for use. However, it is possible to obtain an additional GPIO pin by reprogramming the UPDI (Unified Program and Debug Interface) pin as such. The problem is, however, that the ATtiny can then no longer be reprogrammed via the UPDI interface.
To revert the GPIO pin back to an UPDI pin, a high-voltage activation is required immediately prior to reprogramming. Specifically, a short 12V pulse must be applied to the UPDI pin by the programmer. The SerialUPDI HV Programmer offers a solution to this problem by extending a standard SerialUPDI programmer with additional circuitry that automatically applies the required 12V pulse, allowing for the programming of an ATtiny even if the UPDI pin has been previously reprogrammed for a different purpose.
The required 12V for high-voltage activation is generated by using the low-cost MT3608 boost converter IC, along with some simple support circuitry. The 12V pulse is controlled via the RTS (Ready To Send) signal of the CH340E USB-to-serial chip. At the start of data transfer and thus programming, this signal is set to LOW. The signal drives the gate of a P-channel MOSFET, which in turn releases the 12V onto the UPDI line. A coupling capacitor between the RTS line and the MOSFET gate, in combination with a 10kΩ pullup resistor, ensures that the duration of the pulse is limited to about 150µs.
The SerialUPDI HV Programmer can be used as a replacement for a standard SerialUPDI programmer without requiring any further software modifications. A voltage selector switch allows users to select the target voltage between 3.3V and 5V. However, it is important to ensure that the target circuit that contains the ATtiny can handle a 12V pulse on the UPDI line. By the way, if the back of the board is not populated with components, the device works as a normal SerialUPDI programmer.
This work is licensed under Creative Commons Attribution-ShareAlike 3.0 Unported License. (http://creativecommons.org/licenses/by-sa/3.0/)