I have something that I’ve either never noticed before or I have a serious problem.
I noticed tonight that when I use Ponyprog to read the configuration/security fuse bits on an AVR ATMega128, right after power up I think they look like they should. However, if I re-read them using the PonyProg fuse dialog (security and configuration bits…) Read button, they change…sometimes several times to the point where after the 3rd read, all check boxes are checked. Throughout, I never wrote any fuse bits, only read them.
Leaving my serial Olimex ICSP programming cable connected, if I power off the board, an Olimex AVR MT128, then power up and read the fuse bits, they are back to where they were originally. A few more reads of the bits by ponyprog and it shows them all checked again.
I also have the Olimex ATMega128 header board. It behaves the same way - the 2nd and 3rd reads of the fuse bits don’t set the same check boxes as the original read after power up.
I have a 2nd Olimex MT128 dev board and it behaves the same as the 1st dev board and the header board.
So, here’s the even more odd thing: If I try to program the device after I’ve read the fuse bits a few times, but have never written any fuse bits, Ponyprog says “Unable to probe, bad device, or device locked (-25)”. But if I power off and on the board, and then program it immediately without reading any fuse bits, the programming works and even the full verification claims it’s fine.
I was running Ponyprog 2.06f. I decided to upgrade to 2.07c, the very latest, and I get the same results.
Anyone have any idea what’s going on and why it’s behaving this way? Anyone with an AVR and Ponyprog confim similar or different results?