
Для начала немного теории по программированию AVR микроконтроллеров.
AVR микроконтроллеры могут быть запрограммированы двумя способами – по параллельному интерфейсу и по последовательному. «Параллельное» программирование более сложное в плане реализации программатора и самого программирования, но зато имеет немного большие возможности (например прошивка контроллера с отключенным ресетом). В виду ориентации блога на простоту и доступность «Параллельными» программаторами мы пользоваться не будем. Зато будем пользоваться «последовательными» программаторами . «Последовательное» программирование (SPI programming ) очень легко реализуется, не требует повышенного напряжения, работает даже если микроконтроллер уже впаян в рабочую схему – это и называется внутрисхемным программированием (ISP – In System Programmer).
Для реализации «последовательного» программирования необходимо:
- подключить к программатору ножку сброса (RESET) и SPI интерфейс контроллера (ножки MOSI, MISO, SCK);
- запитать микроконтроллер номинальным напряжением +5В (GRD, VCC).
- Если у микроконтроллера есть АЦП желательно на ножку AVCC (отдельное питание для аналоговой части контроллера) также подать +5В.
- С завода, по умолчанию, в микроконтроллерах включен внутренний задающий генератор при котором и происходит программирование. Но если контроллер перешит на внешний генератор, то для программирования понадобится внешний кварц на ножках XTAL1, XTAL2.
-Для внутрисхемного программирования линиям SPI интерфейса не должно ничего мешать (большие емкости, сильные подтяжки к питанию или земле и т.д.)
С теорией разобрались – ничего сложного. Теперь перейдем к практике – выберем какой программатор нам нужен. Чтобы определится с этим вопросом давайте посмотрим какие у Вашего компьютера есть порта.

Итак, если вы обнаружили у Вашего компьютера разъем, такой как на картинке выше – Вам повезло! Это разъем для подключения принтера – LPT разъем. Через 5 минут мы с Вами сделаем LPT программатор – «5 проводков» >

Если у Вас нет LPT разъема – ничего страшного, посмотрите на картинку выше, возможно у Вас есть такой разъем. Это COM порт. COM программатор не намного сложней предыдущего. Давайте сделаем COM программатор >

Ну а если у Вас нет ни LPT, ни COM портов то порт USB у Вас должен быть обязательно. Нашли? Хорошо! Делаем USB программатор >