Программатор / Тестер для микроконтроллера
PIC 16F84A


Автор статьи: Игорь Шаев

(C) Каунас, Литва 2004



Приветствую вас, уважаемые!

Для начала - почему я решил написать эту статейку, посвященную микроконтроллеру PIC 16F84A фирмы Microchip? А потому, что столкнувшись с этим микроконтроллером на работе, после долгих поисков информации в интернете я не нашел ни одной странички, в которой полностью описывался бы процесс: от изготовления программатора, до указаний на софт по программированию и написанию программок для микроконтроллера. Естественно, ссылок на софт и программаторы куча, но, повторюсь, нет сайта, на котором бы все подавалось в комплексе.

Цель, которую я ставлю путем написания данного материала - вы все читаете до конца, паяете программатор, скачиваете пару бесплатных программок для програмирования, компилятор языка бейсик для PIC - и все. Вы запросто сможете начать работу с данным микроконтроллером.

Почему я советую бейсик? А потому, что для написания простеньких программок он достаточно удобен, имхо. А не нравится вам бейсик - можете скачать/купить (гыгы :-) компиляторы языка си+, ассемблер... Есть, даже, программы для визуального программирования с помощью эдаких блок схем... Ну, в общем, захотите занятся программированием серьезно - разберетесь сами... Главное - успешный старт! (-:

А вас возникает вопрос: "А шо цэ такэ? Нафига нам этот микроконтроллер?". Отвечу: "А фига! Намного проще запрограммировать микроконтроллер, чем делать огромную схему на микросхемах К155, ну, или, там К561...". Микроконтроллер - очень серьезная штука! Это, практический тот же микрокомпьютер, с высокой тактовой частотой - 20 МГц, с электрически стираемой/программируемой памятью, ну, в общем, очень серьезная штука... К тому же, не дорогая, по соотношению возможности/цена... В районе 4-5 долларов СыШыА. Подрубаете свой программатор к компу через COM порт, программируете - и вперед...

А где гитарист может заюзать микроконтроллер? Один из вариантов - программируемый переключатель эффектов. Ну, типа, у вас 10 примочек, и вам в определенной последовательности нужно во время игры включать ту или иную примочку! Вот тут то очень кстати использовать микроконтроллер!

Ну, у кого есть midi-переключатель, тому хорошо и микроконтроллер нафиг не нужен (-:
А вот у кого нету, но кто хочет сделать себе полностью custom программируемый переключатель - тому будет полезно познакомиться с данным материалом.


Ну что же, перейдем непосредственно к схеме программатора. Посмотрите:

СХЕМА ПРГРАММАТОРА
ФОТО МОЕГО ПРОГРАММАТОРА

Каким образом мы будем программировать наш PIC? А таким - через COM порт компутера. Соединяете кабелем компутер с программатором, и вперед... Но, об этом позже...

Итак, чтобы начать процесс програмирования, переключим SB1 в правое по схеме положение. Нафиг? А затем, что во время процесса прграммирования вывод RB4 (ножка номер 10) микроконтроллера должен быть заземлён. А на вывод MCLR (ножка номер 4) нужно соединить со стабилитроном D6. При программировании на входе MCLR должен присутствовать уровень напряжения 12-14 вольт. Мы будем подавать "золотую середину" 13 вольт.

Все. Железо готово к процессу программинга - остальное дело за софтом. Об этом ниже.

Итак, предположим, вы успешно запрограмили свой PIC. Как запустить программу на выполнение? Очень просто! Нужно по-англицки произнести: "Please run the program!". Если не запустится, то, тогда, переведите SB1 в левое по схеме положение!

Если все ок, программа сразу же запустится. Заметте, в левом по схеме положении SB1 - вывод RB4 уже не заземлен, а, непосредственно, подключен к выходному гнезду. Вывод MCLR - подключен к коллектору транзистора VT2. В режиме запуска, на входе MCLR должен присутствовать уровень напряжения 5 вольт.

Итак, подведем итог различия режимов RUN/PROGRAM:

ПРОГРАММИРОВАНИЕ (PROGRAM)
- RB4 на землю
- MCLR на стабилитрон D6 (сигнал 13 вольт)

ЗАПУСК (RUN)
- RB4 не заземлен
- MCLR на коллектор транзистора VT2 (сигнал 5 вольт)


Вот, собственно, и все различия.

Да... Забыл сказать, что синхросигнал и данные для программирования подаются на выводы RB6 и RB7 микроконтроллера.

PIC разработан так, что его можно программировать, не вытаскивая из рабочей схемы. Это называется in circuit programming. Удобно, а? Прикинте, что вам бы пришлось каждый раз, когда вы хотите перепрограмировать фишку, вытаскивать его из гнезда устройства и фтыкать в гнездо программатора, а после процесса программирования опять взад в устройство. Не весело было бы, да?

Да, еще... Если в вашем рабочем устройстве используются выводы RB6 и RB7 микроконтроллера, убедитесь, что бы во время программирования сигналы с COM порта компутера свободно проходили и попадали на выводы RB6 и RB7, чтобы компоненты рабочей схемы (подключеные к RB6, RB7) не оказывали влияния на сигналы с COM порта.

Еще одна фишка - для процесса программирования достаточно 5 вольт, которые мы получаем с COM порта. Тоесть, внешний блок питания не обязателен. А вот если после этого вы будете тестировать PIC, то уж включите ваш адаптер. Адаптер может быть включен и в течении процесса программирования. Не помешает.


Теперь о софте для программирования.

Для програмирования под Виндами я вам однозначно рекоммендую програмулину:
IC-Prog. Одна из лучших програм, для PIC. Ей то мы и будем пользоваться. Скачайте последнюю версию тут.

Теперь выбираем тип микроконтроллера:



Идем в настройки, выбираем COM порт, к которому вы подключили свой программатор, выбираем JDM Programmer и пункт, для использования Виндозовских API драйверов.




Данная программа пишет данные в PIC из файла с расширением *.hex
Как получить данный файл я расскажу ниже.

Идем в меню FILE, открываем *.hex файл, который мы хотим запупенить в PIC.

Вот тут есть пример *.hex файла, для тестирования! Обратите внимание как следует подключить светодиод и к какому выводу! (Кто не видит - надо подрубать его катодом к RA0, а анодом через резистор к плюсу питания).

Переводим переключатель SB1 (на плате программатора) в режим программирования.

Фсе! Мы готовы программировать контроллер!

Нажимаем:



Процесс пошел! Если все ок, то вы получите сообщение, что фишка запрограммирована.
Переводите SB1 в режим запуска программы - и понеслась!



Теперь о компиляторе и на каком языке программировать PIC.

Как я говорил выше, есть много компиляторов для PIC. Захотите серьезно занимацца - сами найдёте. Я вам предлагаю начать с бейсика, и заюзать компилятор от XCSB. Прогу можно писать и в notepad'е.

Идем сюды и скачиваем компилятор.
Там же у них на странице есть полное описание комманд для написания программ на бейсике!
Вся онлайн доккументация - ТУТ!

ПРИМЕР *.bas ФАЙЛА Я ВЫЛОЖУ НА ДНЯХ

Значить, пишите прогу, сохраняете в файле *.bas
Пусть это будет, например, 1.bas

Теперь запускаете из коммандной строки компилятор, и указываете ему на файл 1.bas, который мы хотим скомпилировать в 1.hex



1.bas файл лучше всего положить в папку, где находицца сам компилятор.
После процесса компиляции 1.hex файл появится там же.

Вот этот 1.hex файл мы и будем вгонять в PIC с помощью программы IC-prog.




Теперь у вас есть представление о том, чё и как делать!
Я не ставил целью рассказать вам все от А до Я о микроконтроллере PIC 16F84A, а хотел вам немного подсказать с чего следует начать...

Совет на последок:

ЧИТАЙТЕ ИНСТРУКЦИИ К КАЖДОЙ ПРОГРАММЕ!!!!!

ЧИТАЙТЕ МАНУАЛЫ К МИКРОКОНТРОЛЛЕРУ!!!!!

ЧИТАЙТЕ ДОКУММЕНТАЦИЮ ПО ПРОГРАММИРОВАНИЮ НА САЙТЕ XCSB!!!!!!

ИЩИТЕ ИНФОРМАЦИЮ В ИНТЕРНЕТЕ!!!!!!

НАПРЯГИТЕ МОЗГИ И WWW.GOOGLE.COM !!!!!!!!!!!!!!!!!!





(C) Игорь Шаев, Каунас, Литва 2004




Вернуться на главную страницу: http://www.sugardas.lt/~igoramps

Here is a page with "Tube smilies"! Have fun!