0
\$\begingroup\$

I read a lot about fuse bits in AVR microcontrollers and everyone says that fuse bits can be reset by using high-voltage programmer only, they can't be reset via UART<->ICSP.

So, I've received an Atmega328p from AliExpress recently, seems like it's not original one, but it works perfectly. Then I was setting fuse bits using avrdude and did a mistake accidentely by passing 0xFF into high fuse, and avrdude told me that fuse bits were written successuly. I was really surprised and tried to read back the written bits, and hfuse was really set to 0xFF!

Then I played with other bits like lfuse and efuse and everything worked like a charm. I can write 0xFF into any fuse, then change it to 0x00 and then change it back to 0xFF just via USPASP programmer and ICSP interface.

Now the question is why I can change fuse bits just using USBASP programmer and ICSP interface? Is this the way AVR Atmega328p works or is this just the behavior of my fake Atmega328p? Did anyone faced the same behavior?

asked May 5, 2024 at 20:11
\$\endgroup\$

1 Answer 1

1
\$\begingroup\$

You can program the fuses through ICSP just fine.

The problem is, if you accidentally program the fuses so that ICSP is disabled, then you can't program the fuses via ICSP to enable it again, and must use the HVPP.

So what you did should have locked you out of the MCU. It might be a feature of the clone chip that did not disable ICSP.

answered May 5, 2024 at 20:17
\$\endgroup\$

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.