РадиоКот >Обучалка >Микроконтроллеры и ПЛИС >Микроконтроллеры 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 - общий. Кстати, я же не сказал: питание на программатор подается со схемы,
на которой стоит программируемый контроллер...
Вот, собственно, и все! Главное - не запутайтесь с ножками и штырьками :)
Далее в нашей передаче – программа прошивки.
<<--Вспомним пройденное----Поехали дальше-->>
Как вам эта статья?
|
Заработало ли это устройство у вас?
|
|
|