I'm confused. We have yet another programming and debugging interface to contend with on the form of uPDI. On the face of it a one-pin interface is a good idea. But I'm not sure if we can use it.
I'm interested in the new tinyAVR 1-Series devices. On the face of it they look to be something that Atmel traditionally lacked in that they are a family of devices with pin counts of 8, 14, 20 and 28 pins, and memory sizes running from 2k all the way up to 16k (with hints of 32k to come) with a consistent set of peripherals. Nice.
To program and debug them the only device that supports them is the Atmel-ICE. In the manual it does however say...
Important: The Atmel-ICE does not support 12V on the UPDI line. In other words, if the UPDI pin has been configured as GPIO or RESET the Atmel-ICE will not be able to enable the UPDI interface.
...but in the device datasheet it says...
Enabling of the 1-wire interface, by disabling the reset functionality, is either done by 12V programming or by fusing the RESET pin to UPDI by setting the RESET Pin Configuration (RSTPINCFG) bits in FUSE.SYSCFG0.
But how on earth do you set the fuse bit if you can't get into programming mode?
I'm hoping that the bit is set by default and that if you want to use the reset pin as /reset you have to enable that option but there's nothing in the datasheet to help answer that. The JTAG-ICE3 manual does say this...
The UPDI pin is primarily a programming and debugging pin, which can be fused to have an alternative function (/RESET or GPIO). If the alternative function is selected then a 12V pulse is required on that pin in order to re-activate the UPDI functionality.
...which implies that the default is that the pin is a programming/debug pin.
But who knows.
I may open a support ticket when I get back from holiday and see if anyone at HQ knows.
I am increasingly frustrated at how disjointed and out of step all the Atmel documentation and website is. It feels decidedly un-cared about.