pymcuprog icon indicating copy to clipboard operation
pymcuprog copied to clipboard

Error using chip erase

Open strawberryhacker opened this issue 2 years ago • 1 comments

By setting fuses, I have enabled CRC scan of boot section during boot. The CRC scan fails.

Then, I perform chip erase by running:

sudo pymcuprog erase -i updi -d avr64ea48

That does not work, and produces following output:

pyedbglib.protocols.jtagice3protocol - ERROR - JTAGICE3 error response code 0x43: 'AVR8_FAILURE_CRC_FAILURE: CRC error' 
pymcuprog.nvm - WARNING - AVR8_FAILURE_CRC_FAILURE: CRC error
pymcuprog.pymcuprog - ERROR - Operation failed with Jtagice3ResponseError: AVR8_FAILURE_CRC_FAILURE: CRC error

The chip erase works when using Microchip Studio: Device Programming -> Memories -> Device -> Erase Now. I assume chip erase should work the same way in pymcuprog.

strawberryhacker avatar Aug 06 '23 14:08 strawberryhacker

Hi @strawberryhacker Yes, this is a bit of a tricky one for pymcuprog... the catch here is that Studio actually automatically and secretly resets the fuse value after an erase (fuses are untouched through an erase), and we did not want to build in this knowledge to pymcuprog. A possible workaround is to write the corrected fuse value using pymcuprog, and use the chip-erase-locked-device switch to get in. This will perform a UPDI-key-based erase, and immediately write the fuse. for example on my tiny1627: pymcuprog write -m fuses -o 5 -l 0xC7 --chip-erase-locked-device will do this.

xedbg avatar Aug 08 '23 19:08 xedbg