OptiLoader icon indicating copy to clipboard operation
OptiLoader copied to clipboard

Lock fuse bit programming

Open Nurgak opened this issue 11 years ago • 0 comments

Setting a higher security in lock fuse bits doesn't allow to set a lower security value without a complete memory wipe (which resets them automatically), so setting programming fuses before programming isn't necessary (the if (!target_progfuses()) on line 148), unless other fuses change apart from the lock fuse.

But the actual problem is the writing of the lock bits: you're sending 0xAC, 0xE0, 0x00 and then the lock fuse, but the datasheet says that when writing the lock bits the 2 most significant bits of the sent data should be 1, this is quite dangerous as it doesn't write the right lock bits.

The fix is on line 519: Replace: Serial.print(spi_transaction(0xAC, 0xE0, 0x00, f), HEX); With: Serial.print(spi_transaction(0xAC, 0xE0, 0x00, 0xFF & f), HEX);

Nurgak avatar Jan 30 '14 22:01 Nurgak