I want to make some improvements to my HVSP fuse resetter, and am trying to figure out the logic of how the modern (with enhanced POR) tinies enter HV programming mode. Ideally, I'd like to see a logic diagram similar to what the datasheets have for the reset logic and IO pins.
From the work I did on my fuse resetter, and reading datasheets many times over, my current theory is that the logic is something like this:
RST12V & !(PE|PE|PE) & INTERNAL_RESET
With RST12V being the output of a comparator for 12V on the reset pin, PE being the Prog_enable pins, and INTERNAL_RESET being the output of the flipflop in the datasheet "Reset Logic" diagram.
Some questions/suspicions I have are that the circuit may latch the Prog_enable pins before 12V is present on the reset pin. Both algorithms listed in the datasheet say 'Set Prog_enable pins to "000"' before applying power to Vcc. Now that could be a red herring, and maybe they only need to be set to 000 when 12V is applied to reset.
It also seems to be possible to enter HV programming mode after startup. I'd like to know if this is due to random glitches or perhaps a deterministic but undocumented sequence. It was reported in the following thread, but not fully described and debugged.
There's also the vague reports of problems with the Arduino auto-reset circuit causing the chip to go into HV programming mode.
I also suspect there may be differences in the HV programming enable circuit in the t13a and the t85, despite the algorithm in the datasheet being identical.
It's still possible they enter HV programming the same way, but differences in clock rate and start-up impact HV programming mode in ways that are not clearly documented.
Has anyone seen any kind of document or engineering note from Atmel that provides more detail than the datasheet on programming mode? Or maybe someone has done more thorough testing than I have so far?