Overview of jtag2updi
masterjtag2updi is firmware designed to be uploaded to an AVR MCU (such as an ATmega328P) to act as a bridge. It enables the host MCU to interface with avrdude using the jtagice Mk2 protocol via a serial link, allowing you to program newer UPDI-based MCUs (like the ATtiny817 family) using standard hardware like an Arduino Uno or Nano.
Connection Workflow:
avrdude $\rightarrow$ HW Serial $\rightarrow$ Programmer MCU (e.g., Mega328P) $\rightarrow$ SW Serial on PD6 $\rightarrow$ Target MCU (e.g., tiny817)
Hardware Requirements & Warnings:
- Voltage Compatibility: The UPDI pin is high-voltage tolerant on supported devices, meaning $V_{prog} > V_{target}$ is generally okay, but the reverse is not.
- Warning: Do NOT assume MegaAVR 0-series or AVR-DA series UPDI pins are high-voltage tolerant.
- Logic Levels: $V_{target}$ cannot be lower than approximately 60% of $V_{prog}$. For example, a 3.3V target works with a 5.0V programmer, but a 2.5V target will likely cause communication errors.