Electronic – ATMega328P Programs at 2V but not at 1.8V

atmegaatmega328pavrdudebrownout

I'm perplexed by this one:

I'm trying to run my ATMega328P at 1.8V. The voltage at the chip (pin 4 and 21) sits at 1.82V (BK Precision Multimeter). When using the AVRISP mkII, the programmer LED lights up green (recognizing a powered chip) but fails to program.

Using an bench power supply, I discovered that at exactly 2V, the ability to program the chip returns. This is true regardless of the BOD/Extended Fuse setting (which I have set off with 0xFF).

I did notice the 1.8V BOD setting (0xFE for the extended fuse) keeps the MCU from powering on even after flashing. With it off, the chip will run using the 1.8V rail. I thought this might be useful debugging information, but Ignacio in the comments pointed out that this is expected behavior given the specced range of BOD threshold.

  • Did I miss something obvious?
  • Is 1.8V programming not actually supported at 1MHz on the ATMega328P?
  • Do I need to design a 2V power supply instead if I want to be able to flash?
  • Does the BOD circuit has some protective effect during programming, even when disabled? Could it be the programmer?

Thanks for any suggestions/debugging ideas!

Edited: Ignacio pointed out that the BOD cutoff for the 1.8V setting could vary up to 2V, so the BOD is behaving as expected. I thought perhaps the 'misfiring' of the BOD was a useful clue for why it mightn't be programming, but that no longer seems to be the case. The above was edited for clarity.

Best Answer

I visited a friend who has the AVR ICE programmer, and it worked just fine with my board. My AVR ISP mkII might (?) be counterfeit or otherwise not properly buffered, though it works above 2V.

For anyone else that runs into this kind of issue (programming cutting out at 2V exactly) it's probably your programmer, and it's worth buying the Atmel ICE through a reputable source.

Thanks to @jonk and @Ignacio for the help!