====== Standalone AVR Chip Prep w/ Arduino Bootloader ======
AVR Chips on the arduino uno come loaded with a bootloader to run the usb communication &
arduino stdlib. This is how to go from a blank chip to a flashed chip.
===== Chip Initial Prep =====
Pin connections:
[{{ avr-programming-20260324-182624.png?300|Atmega328P DIP Pinout}}]
16MHz Crystal across PB6/PB7
connect 22pF bipolar caps from the crystal to ground:
GND
PB6 ----------|-------[22pF]--|
[Crystal] |
PB7 ----------|-------[22pF]--|
Pin R10k pullup to +5V
AVCC connected to +5V
also might be useful to have pwr indicator LED
===== Arduino as ISP Setup & Burning =====
* Start by Loading ''File -> Examples -> 11.ArduinoISP -> ArduinoISP''
* Connect seperate Arduino UNO board (hereafter called the programmer) to pc via usb.
* Upload the ISP sketch to the programmer.
* Install the [[https://github.com/MCUdude/MiniCore|MiniCore library]] and install the MiniCore boards
* Wire the following connections from the programmer:
10 -> MOSI (17)
11 -> MISO (18)
12 -> SCK (19)
13 -> RESET ( 1)
[{{ avr-programming-20260319-013254.png?300|Arduino as ISP wiring diagram}}]
* Select the programmer method as ''Tools -> Programmer -> Arduino as ISP''
* Select the ''Atmega328'' in ''Tools -> Board'' and make sure the variant based on the chip you have.
* Set the clock to 16MHz external (or whatever you are using).
* Burn the bootloader with ''Tools -> Burn Bootloader''
===== Programming with ISP =====
From the ISP dongle, make the connections to the chip
^ ISP Pin ^ Atmega Pin ^
| VCC | VCC |
| GND | GND |
| MOSI | MOSI (17) |
| MISO | MISO (18) |
| SCK | SCK (19) |
| RST | RESET (1) |
Then upload the code with ''Sketch -> Upload using Programmer''.