The patch for avrdude to add TPI support to the USBTiny was posted to the AVRdude mailing list a few years ago here. That patch is what's in the files section here. It doesn't apply cleanly to avrdude 6.3, but the one .rej file is pretty easy to just do by hand (it's inserting an include for tpi.h into usbtiny.c).
It turns out that's not the only issue.
A chip erase won't reset the fuses in the config section. To do that, you must perform a SECTION_ERASE operation on the config block before performing a write. There's code in avr.c to do this in the function avr_write_byte_default(), but it turns out that that function isn't called when you try to write the fuses on the tiny9. Instead, the method called is avr_write(). So that little block of code that checks whether you're writing the "fuse" memory section or not needs to be copied (and adapted slightly) into that other function.
I'll go fetch a clean source tree of 6.3 and make a new patch that incorporates both of these changes. With that done, you should be able to freely clear and set the RSTDSBL fuse and use the HV jumper position when it's cleared to engage TPI.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.