Микроконтроллер.
...и что с ним делать |
Существует довольно
много информации в сети о применении и программировании микроконтроллеров
(далее, МК) - конечный пользователь выбирает, в итоге, тот материал,
который для него является наиболее понятным и определяющим. Материалы
же, изложенные на этой страничке, не являются строго определяющими.
Использование МК весьма обширно и какое устройство делать на МК Вы будете
решать сами. |
||
1.
Программатор |
||
В
сети существует много ресурсов, посвященных применению микроконтроллеров
(МК) и их программированию. Прошить (запрограммировать) МК можно при помощи
программатора. Программаторы бывают разные. На западе существуют "стартовые
наборы", которые предназначены для программирования нескольких видов
МК с кнопочками и светодиодами (для работы с прерываниями). Таких программаторов
существует несколько видов: STK200/300/500(501/502), ICE40/50, JTAGICE,
ICE200, AVRISP. STK500 выглядит вот так: |
||
|
Программаторы подключаются
к PC посредством: 1. LPT - самый распространенный вариант исполнения; 2. COM - менее распространен, но тоже используется; 3. USB - практически непаханое поле, но уже встречается, правда только/пока за доллары. Но не все так плохо :-) Рассмотрим несколько вариантов наиболее распространенных программаторов: |
|
| 1. Интерфейс LPT. | ||
На
сайте http://www.lancos.com
есть принципиальные схемы программаторов для различных видов МК. Вот одна
из них: |
||
![]() |
||
Эта
схемка подключается к LPT порту и на выходе выдает сигналы, необходимые
для нормальной работы с МК: SCK - тактовый сигнал, MOSI - главный выход-подчиненный вход, MISO - главный вход-подчиненный выход, RES - сброс программируемого MCU (МК), GND - общая земля и Vcc - напряжение питания МК. В схеме микросхему 74НС244 можно заменить на КР1533АП5, диод 1N4148 - на КД521, КД522. Вместо 74НС244 можно использовать К555АП5. Эта микросхема предотвращает паразитные наводки в кабеле и защищает LPT-порт. С этим программатором работает программа Pony. Взять ее можно на сайте http://www.lancos.com. |
||
![]() |
||
| Эта схема (приведена для понимания идеи), назовем ее референсной, подключается к предыдущей: разъем J1 CON10 подключается к J2 STRIP 1X9 - просто надо составить соответствие между сигналами и все будет работать (проверено). Вообще говоря, к любому из адаптеров можно подключить МК с кварцем и двумя емкостями. Подать питание и смело можно шить. Главное знать какой именно адаптер Вы паяете и какая конкретно программа его поддерживает. | ||
Существует
еще адаптер Altera Byte Blaster и STK200/300. Программу для них можно
взять здесь
(программа поддерживает оба этих адаптера, работает из командной строки).
Я спаял адаптер STK200/300. Вот его схема: |
||
![]() |
||
| Печатная плата изготавливается методом утюга (читайте здесь). А вот и топология с одной стороны и со второй: | ||
| Принципиальная схема адаптера Altera Byte Blaster имеет вид: | ||
![]() |
||
Все
приведенные здесь адаптеры (программаторы) реализуют принцип In System
Programming, ISP (иногда встречается термин In Circuit Programming, ICP),
т.е. программирование МК прямо в устройстве: на плату запаиваете разъем
с 6-ю или 10-ю выводами, разводите на него сигналы и теперь если надо
запрограммировать МК, к этому разъему подключаете шлейф от программатора
и через несколько секунд firmware (прошивка) МК будет обновлена - без
извлечения МК из рабочей платы. |
||
Существует
еще один адаптер: SP12. Страничка в сети с подробным описанием процедуры
установки софта и подробным фотоописанием находится здесь. Я
приведу лишь схему и пару фото того, что это такое. Принципиальная схема
имеет вид: |
||
![]() |
||
Программу
для этого адаптера можно скачать здесь.
Добавлю, что у меня все отлично шьется под W2k. Правда, надо будет установить
драйвер LPT-порта (он есть в установочном пакете). Программа работает
из командной строки. Готовое изделие имеет вид: |
||
|
|
||
Все
хорошо, если LPT-порт свободен. А если занят? У меня, например, к LPT-порту
подключен LCD (4х20) и работает програма jaLCDs 3.11. Ну, здесь несколько
вариантов: 1. подключить программатор (адаптер) к USB-порту - над этим пока стоит сильно потрудится. За рубежом такие программаторы уже продаются, правда стоят они порядка USD90; 2. подключить LCD к USB-порту (тут дела обстоят несколько попроще, но...); 3. подключить программатор к COM-порту. Для этого ведь все есть и схема (даже две) и описание метода - осталось только желание, а время найдется. |
||
Принципиальную
схему такого программатора и описание метода программирования можно взять
здесь или в
фирменном описании Atmel "AVR910". Он построен на МК AT90S1200.
Там же можно скачать прошивку для AT90S1200. Я в схеме программатора заменил
транзисторы всего одной микросхемой - MAX202CPE. С таким же успехом можно
заменить на MAX232 и т.д. с соответствующей дороботкой схемы, я думаю,
что это не сложно. С этим программатором работает AVRProg, которая входит
в состав AVR Studio. |
||
| COM программатор на at90s1200 выглядит следующим образом: | ||
Недостаток
этого программатора - низкая скорость (19200 бод). Это поправимо, т.к.
есть еще одна схема (на at90s2313) для COM-порта. Готовое устройство выпускает
компания Аргуссофт.
Скорость обмена данными с COM портом 115200 kbps. В нижеприведенной схеме выводы 7 и 8 надо поменять местами!!!. Выводы 13+7 и 14+8 можно не объединять. Точно также можно не объединять 12+9 и 10+11. На выводах PD2 и PD4 висят по одному светодиоду на чтение и запись соответстсвенно (на плюс). Их можно не ставить, т.к. если Вы будете использовать сигнал "LED", то светодиод, подключенный к "LED", будет сигнализировать о любом обращении к МК - как "чтение" так и "запись". У себя я так и сделал. Схема программатора имеет вид: |
||
Готовое
устройство выглядит следующим образом: |
||
Прошивка
для AT90S2313. Ее мне прислал автор схемы Владимир. |
||
Некоторую
информацию можно взять здесь.
Вышеприведенная схема отсюда
же. Еще можно посоветовать сходить на сайт http://www.masterkit.ru. Там есть в продаже готовый набор - программатор ISP и есть возможность скачать прошивку для МК и прочитать авторскую статью про этот набор. |
||
2. ISP - USB программатор |
||
Печатная
плата была изготовлена все тем же методом утюга,
правда ширина дорожек - 0.5 мм (это максимальная ширина дорожек на этой
плате!!!). Шьется все программой AVRprog, входящей в AVRStudio. Скорость, конечно, маловата - 128000, но это не предел - есть идея как сделать несколько больше. Основа программатора - микросхема FT232BM. Печатная плата программатора - двухсторонняя (фото смотрите ниже). |
||
Это
печатная плата USB-ISP программатора. Ширина дорожки - 0.5мм. |
|
|
| Как это можно спаять? Легко. Я себе купил вот такую штуку: | ||
На радиорынке в Ждановичах (г.Минск) я видел 3 похожих друг на друга таких вот штуки. Все три померял и выбрал вот эту (см.фото). Выбор в пользу той или иной модели приводить не буду - я лично выбрал именно эту, т.к. у нее лучшая из трех моделей масштабируемость увеличиваемого изображения. |
||
Принципиальная
схема программатора имеет вид: |
||
| Печатная плата имеет вид: | ||
На
рисунках печатной платы в отверстия, обведенные красными кружками, запаиваются
сквозные перемычки (их всего то три). |
||
Сделав
один из адаптеров стоит подумать о том, как подключать МК, особенно если
Вы будете использовать различные МК с разным количеством выводов в разных
корпусах. Я сделал для себя вот такой программатор: |
||
На одной плате просто
установлены различные типы панелей для разных МК. Можно было, конечно,
на все МК подать тактовый сигнал от одного кварца, но тогда бы надо было
ставить 74HC00 и от нее через буферок разводить сигналы по МК. И в результате
получилась бы неплохая куча перемычек - я этого делать не стал, а просто
купил два лишних кварца (стоят они копейки). Плата изготовлена методом
утюга. Про метод утюга читайте здесь. |
||
Через USB-разъем подается
только питание (пока). Через COM-разъем подаются сигналы из адаптера,
необходимые для работы с МК. Штырьки (header), установленные по сторонам
МК - это выводы портов МК для подключения к различным устройствам на этапе
отладки. Зеленый светодиод сигнализирует о подаче питания, красный - об
обращении к МК (чтение, запись). Светодиоды и кнопочки нужны для наглядной
демонстрации работы прерываний. |
||
| Изготавливаем еще пару шнурков: один - для подключения программатора к устройству - двухрядные разъемы на обоих концах, второй - для подключения портов МК к внешним цепям (можно сделать не один, а несколько шнуров). | ||
| В заключении скажу, что все покупается на Жданах (г.Минск) без никаких проблем. Все совершенно дешево (стоит сущие копейки) и требует от Вас только желания разобраться и времени (совсем немного). | ||
Есть
еще одна очень крупная тема для разговора - это роботы на микроконтроллерах.
Но для этого надо будет сделать еще одну страничку. |
||
| Программу для программирования МК можно взять по адресу: http://www.lancos.com/prog.html (она называется Pony). У Виктора есть хорошая идея об индикации оборотов кулеров на цифровом табло с кнопочным управлением скоростью вращения кулеров. Надо будет подумать об этом... На этом пока все. Ищите идеи и воплощайте их в жизнь при помощи МК. |
||
©2002
- 2005 Перепечатка в любых источниках СМИ только с согласия автора. |
||