Electronic – ATMega328P – minimal programming circuit

atmega

I am used to using an AVR ISP programmer to update the firmware on my project. My project is open hardware, and I'd like to offer pre-programmed controllers for sale to save others having to buy a programmer (if they're that stingy).

To make life easier on me, I am going to build a little board with an ISP programming header wired up to a ZIF socket so that I can do this all assembly-line like.

The fuses are going to be set during programming as they would for an Arduino Uno – so they'll be set for a 16 MHz external crystal oscillator.

While programming is taking place, must the crystal be present?

Again, I don't need to actually have the controller run – all of the I/O pins are going to be NC (apart from the ISP ones).

Is it enough to have a 10K resistor between reset and Vcc, a single decoupling cap and nothing else other than the ISP lines wired up?

Best Answer

Best thing to do would be to design your programming board to include a 10k ohm pullup on Reset and a 100nF capacitor near the VCC pin of the chip (whether or not you populate them, but you might as well for a manufacturing jig). Some ISP programmers require the chip to be powered separately as well. You do not need any crystal circuitry in place for programming a blank off the line AVR (as they come running off the internal oscillator), but if trying to reprogram a chip that is fused for an external crystal, you will need a comparable crystal and load capacitors in circuit (unless you use a high voltage programming mode).