Wednesday 17 October 2018

atmega - ATMega328P - minimal programming circuit?


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?



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).


No comments:

Post a Comment

arduino - Can I use TI's cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...