РадиоКот >Обучалка >Микроконтроллеры и ПЛИС >Микроконтроллеры AVR - пишем, компилируем, прошиваем... >
Как сделать программатор?
Очень не удивлюсь, если вы пришли сюда, не прочитав два первых параграфа.
Это не страшно – ведь вы ж их все равно потом прочитаете?
Итак, на сегодня мы уже умеем компилировать код и создавать HEX-файл.
Теперь нужно «прошить» содержимое HEX-файла в контроллер. Для этого нам нужен программатор.
Вообще говоря, контроллер поддерживает два типа программирования: последовательное и параллельное.
Так как параллельный метод требует снятия микросхемы с платы и втыкания ее в специальное устройство -
программатор, этот метод неудобен.
Последовательный метод позволяет программировать микросхему, уже установленную на плату.
Для этого просто нужно установить на плате 10-штырьковый разъем, и подключить к нему
некоторые выводы контроллера.
К этому разъему через кабель и будет подключен программатор.
Такой метод называется ISP – In-circuit Serial Programming (Внутрисхемное Последовательное Программирование.)
Наш программатор будет соединяться с компьютером через порт принтера (LPT).
Причем, схема его настолько невелика, что он
запросто влезет в корпус разъема для LPT. 
Собственно, вот схема:
Этот программатор разработала фирма Altera,
и полное его имя – «Altera Byte Blaster». 
В нем используется всего одна микросхема – 74HC244, которая представляет собой 8
буферных элементов с тремя состояниями на выходе. На схеме не указаны ее выводы питания. Это 10 и 20 ноги. 
10-я подключается к цепи GND, 20-я - к цепи +5В (обозначена стрелочкой)
ВНИМАНИЕ!
Для работы с программируемой логикой Altera может потребоваться подтянуть 7-й вывод разъема программирования 
на "+" питания резистором порядка 1...3 кОм.
Разработку печатной платы я оставляю на вас, дорогой читатель. Ибо я:
	- Ленивый
 
	- Вредный
 
	- Так давно сделал свой ББ, что уже потерял все технические наработки по нему…
 
К тому же, ввиду простоты схемы, вариантов исполнения может быть море.
Вот так примерно выглядят детали, которые понадобятся нам при изготовлении:
Перечислим, что здесь изображено:
- Разъем LPT (папа, 25 контактов)
 - 
 - Корпус для разъема LPT
 - 
 - Шина 10-жильная – около1,5 метров
 - 
 - Штырьковый разъем для монтажа на плату (два ряда, шаг 2,54 х 2,54). Обычно продаются по 40 и по 80 штырей. Берем любой – все равно нам надо только 10. Лишнее откусим. Этот разъем ставится на плату с контроллером. Цоколевка приведена на схеме. (вид сверху, то есть со стороны, с которой подключается ответная часть, а не со стороны печатного монтажа – будьте внимательны!)
 
- Обжимной разъем на шину (10 контактов - мама) – то, что мы будем подключать к плате с контроллером («ответная часть»).
 
- Обжимной переходник с шины на плату (10 конт.) – то, что будет стоять внутри ББ. Можно заменить вторым обжимным разъемом (таким же, как первый), а на плату ББ напаять штырьковый разъем. Кстати, на схеме изображен именно этот вариант. Но только не пытайтесь зачищать провода шины и припаивать их непостредственно к плате – обматеритесь! Если не сразу – то со временем, когда это все торжественно перетрется и отвалится…
 
- Собственно, макетная плата, на которой разместятся детали ББ. Она должна соответствовать размерам корпуса LPT-разъема.
 
- Микросхема 74HC244 или наш аналог -  1533АП5. Если есть навык работы с деталями поверхностного монтажа – можно взять микросхему в корпусе SOIC (SO-20) – она намного меньше, чем диповская (DIP-20), но для ее распайки нужны навыки. 
 
- Развесные детали – резисторы, светодиоды и конденсатор – обозначенные на схеме. Резисторы и кондер тоже лучше взять SMD (для поверхностного монтажа) – опять же – в целях экономии места. 
 
 
Вот как выглядит (без корпуса) мой Байт Бластер:
Ну вот. Думаю, у вас получится намного круче :). 
Значит, программатор мы сделали. Осталось подключить его к контроллеру.
На плату, где стоит контроллер, мы ставим штырьковый 10-контактный разъем. Ну и подключаем к нему контроллер согласно схеме:
Выводы MOSI, MISO, SCK есть на каждом контроллере.
Обычно они объединяются с каналами ввода/вывода.
RESET никогда ни с чем не объединяется, и тоже есть на всех контроллерах.
Vcc - это + питания. GND - общий. Кстати, я же не сказал: питание на программатор подается со схемы,
на которой стоит программируемый контроллер...  
Вот, собственно, и все! Главное - не запутайтесь с ножками и штырьками :)
Далее в нашей передаче – программа прошивки.
<<--Вспомним пройденное----Поехали дальше-->>
| 
 Как вам эта статья? 
 | 
 Заработало ли это устройство у вас? 
 | 
| 
 | 
 |