English       Регистрация   |  
 Вход для клиентов   
По складу     По сайту
  Например: PIC12F629
Тел./факс: + 38 056 745-46-65
+ 38 044 494-35-72
   
Главная - Публикации - Публикации microchip

Как создать первую программу для микроконтроллера фирмы Microchip

    Для начала, хочу выразить глубочайшее почтение человеку, который решил заложить в "сердце" своей разработки микроконтроллер фирмы Microchip. Однако, хочу сразу заметить, что данная статья предназначена для начинающих, и людям «со стажем» ее нужно читать всего лишь один раз 8-)

    Для начала работы Вам необходимо установить интегрированную среду разработчика MPLAB IDE
Эта среда абсолютно бесплатна и ее можно скачать по адресу:
http://www.microchip.com/1010/pline/tools/picmicro/devenv/mplabi/mplab6/index.htm

    На данной странице находится последняя версия – 6.40 или выше. Мы рекомендуем именно эту версию, как наиболее функциональную. К тому же в новых версиях исправляются мелкие недоработки, допущенные ранее, так что старайтесь иметь на своем компьютере свежую версию!

    Итак, вы скачали интегрированную среду разработки MPLAB IDE 6.xx
    Почему "интегрированную"?
    Потому, что в данную среду интегрированы транслятор языка Ассемблер, симулятор, генератор внешних воздействий, программные модули для работы с разнообразными аппаратными средствами Microchip, например, с программатором PICSTART Plus, внутрисхемным отладчиком MPLAB ICD2, внутрисхемным эмулятором MPLAB ICE 2000, MPLAB ICE 4000, недорогим модулем для начинающих PICkit 1.

    Установите ее, при этом внимательно прочитайте всю информацию, отображаемую во время установки данного программного продукта.

    По окончанию установки будет создана папка C:\ Program Files\ MPLAB IDE
    Теперь Вы готовы приступить к написанию своей первой программы.
    Но с чего начать?
    Для начала Вам необходимо определиться с выбором языка программирования!

    Существуют два типа – языки низкого уровня и языки высокого уровня. Язык низкого уровня – ассемблер, языки высокого уровня – Си, Pascal, Basic. Настоятельно рекомендуем начинать изучение микропроцессорной техники с изучения языка НИЗКОГО уровня.

    Для микроконтроллеров фирмы Microchip существует язык ассемблер – MPASM! Данный язык входит в состав MPLAB IDE и поставляется совершенно бесплатно! Хотя языки низкого уровня несколько сложнее в изучении, знание MPASM необходимо для полного понимания "внутренней структуры" микроконтроллера.

    Описание языка MPASM доступно по адресу:
http://www.microchip.com/1010/pline/tools/picmicro/code/mpasm/index.htm

    В данном руководстве Вы не только найдете детальное описание языка MPASM со всеми его дополнительными возможностями, но и сможете ознакомиться с множеством примеров.

    Итак, мы установили MPLAB IDE, у нас есть руководство пользователя по MPASM и мы готовы в бой! Но остался один важный вопрос, – Какой микроконтроллер использовать?
    От выбора микроконтроллера зависит многое – себестоимость изделия, его функциональные возможности и размеры, срок службы элементов питания (если это портативное изделие), возможность модификации в дальнейшем.

    В настоящее время фирма Microchip является лидером среди фирм, выпускающих 8-битные микроконтроллеры. Среди микроконтроллеров Microchip Вы обязательно найдете именно тот, который подходит именно Вам!

    Если Вы планируете серийное производство, и не знаете на каком контроллере остановиться для получить наилучший показатель качество/цена, наши специалисты всегда будут рады помочь Вам!
    Пишите нам:
    anton@microchip.com.ua
    info@microchip.com.ua

    Ниже приведены наиболее популярные микроконтроллеров фирмы Microchip:
    На сегодняшний день самыми маленькими контроллерами являются PIC12F629 и PIC12F675. Эти микроконтроллеры выпускаются в корпусах DIP8, SOIC8, MF8. Однако эти "малыши" способны на многое! Взгляните на их характеристики! Они имеют 1024 байт памяти программ (flash); 64 байта ОЗУ; 128 байт EEPROM; 6 ножек ввода/вывода; встроенный генератор на 4MHz, макс частота при использовании внешнего тактирования 20 MHz; 1 компаратор; один 8-бит таймер, один 16-бит таймер. Кроме этого, PIC12F675 имеет 4 канала 10 разрядного АЦП. При этом их цена сведена к минимуму.

    Микроконтроллеры серии PIC16F630 и PIC16F676 объединяют в себе микропроцессорное ядро семейства PIC16 и миниатюрность PIC12. Это 14 выводные микроконтроллеры, выпускаемые в корпусах PDIP, SOIC, TSSOP. Они имеют 1024 байт памяти программ (flash); 64 байта ОЗУ; 128 байт EEPROM; 12 ножек ввода/вывода; встроенный генератор на 4MHz , макс частота при использовании внешнего тактирования 20 MHz; 1 компаратор; один 8-бит таймер, один 16-бит таймер. Кроме этого, PIC12F675 имеет 8 каналов 10 разрядного АЦП.

    Следующим контроллером в "среднем семействе" является PIC16F628. Этот процессор пришел на смену морально-устаревшего PIC16F84A. Данный микроконтроллер выпускается в корпусах PDIP, SOIC, SSOP. Они имеют 2048 байт памяти программ (flash); 224 байта ОЗУ; 128 байт EEPROM; 16 ножек ввода/вывода; встроенный генератор с переменной частотой (4MHz и 37kHz) , макс частота при использовании внешнего тактирования 20 MHz; модуль CCP; модуль USART; два компаратора; два 8-бит таймера, один 16-бит таймер. Как видно из описания, данный микроконтроллер значительно превосходит своего предшественника и при этом его цена значительно ниже!

    До появления серии PIC18 наиболее "продвинутыми" микроконтроллерами считались PIC16F876 (873) и PIC16F877 (874). Максимальная тактовая частота этих контроллеров составляет 20MHz. Микроконтроллеры PIC16F876 (873) выпускаются в корпусах 28-PDIP, 28-SOIC, MLF. Количество ножек ввода/вывода – 22; 5 каналов 10-разрядного АЦП. Микроконтроллеры PIC16F877 (874) выпускаются в корпусах 40-PDIP, 44-TQFP, 44-MQFP, 44-PLCC. Количество ножек ввода/вывода – 33; 8 каналов 10-разрядного АЦП. Микроконтроллеры PIC16F877 и PIC16F876 имеют 8K байт памяти программ (flash); 368 байт ОЗУ; 256 байт EEPROM. Микроконтроллеры PIC16F874 и PIC16F873 имеют 4K байт памяти программ (flash); 192 байта ОЗУ; 128 байт EEPROM. К "общему набору периферии" этих контроллеров относятся такие модули:
    - CCP, MSSP (SPI & I2C), AUSART, ADC (см. выше) В дополнение к этому, микроконтроллеры PIC16F874 и PIC16F877 имеют ведомый параллельный порт (модуль PSP).
    В 2003 году вышли усовершенствованные кристаллы PIC16F87xA. Они имеют меньшую стоимость, меньшее время программирования, а так же добавлены аналоговые компараторы.
    Как видно из описания, данное семейство микроконтроллеров является весьма мощным, а цена новых кристаллов с буквой "А" весьма заманчива, что делает эти контроллеры "хитом продаж" и по сей день.

    Микроконтроллеры семейства PIC18 обладают повышенной производительностью благодаря максимальной тактовой частоте 40MHz и увеличенному в два раза набору команд. Имеется команда перемножения 8-битных чисел. Наиболее популярными контроллерами серии PIC18 на сегодняшний день являются PIC18F252 и PIC18F452. Эти контроллеры можно считать "старшими братьями" микроконтроллеров PIC16F876 и PIC16F877. Корпуса и расположение выводов этих контроллеров идентичны, что значительно облегчает переход на более производительный микроконтроллер. Количество памяти программ составляет 16К слов программы или 32К байт (в семействе PIC18 одно слово программы равняется двум байтам памяти программ). Количество циклов перезаписи памяти программ составляет 100 000 раз. Количество байт ОЗУ составляет 1536.

    Если Вы разрабатываете устройства, которые планируется объединять в сеть, то Вас непременно заинтересуют два контроллера - PIC18F258 и PIC18F458. Данные контролеры являются аналогами PIC18F252 и PIC18F452. Однако есть одно существенное отличие – встроенный модуль CAN. Данный модуль полностью поддерживает CAN2.0B Bosch.

    Если Вам необходимо большое количество каналов ввода/вывода, большой объем памяти программ / данных, множество встроенных периферийных модулей – Ваш выбор – "MEGA" пики. Это, в первую очередь, PIC18F8720 и PIC18F6720. Ниже приведены основные технические данные на эти микроконтроллеры. В скобках указаны значения для PIC18F6720, если они отличаются от PIC18F8720. Flash память программ - 128KБ - 64КБ программных слов 3840 байта ОЗУ 1КБ памяти EEPROM 68 (52) ножек ввода/вывода 16 (12) каналов 10-разрядного АЦП 5 модулей CCP Модуль MSSP (SPI и I2C интерфейс) 2 модуля USART 2 8-бит таймера, 3 16-бит таймера. По понятным причинам мы бы не рекомендуем начинать изучение микроконтроллеров фирмы Microchip с этого контроллера.

    Специально для устройств с автономным (батарейным) питанием разработаны микроконтроллеры с технологией nanoWatt. Данные микроконтроллеры отличаются ультранизким потреблением. Представители данного семейства имеются во всем "модельном ряде" фирмы Microchip. Какие именно характеристики микроконтроллеров позволили снизить энергопотребление?
    1. Применение новой Flash технологии PEEC;
    2. Новая топология кристаллов;
    3. Возможность отключения периферии и ядра контроллера;

    Рассмотрим технологию nanoWatt подробнее:
    1. Данные микроконтроллеры имеют встроенный RC генератор, точность которого составляет 1%. Этот модуль генерирует частоту 8 MHz. Так же возможно подключение внутреннего делителя, позволяющего получить такие частоты: 8 MHz, 4 MHz, 2 MHz, 1 MHz, 500 kHz, 250 kHz, 125 kHz, 31.25 kHz.
    2. Изменена топология кристалла, что позволило существенно снизить энергопотребление (данные приведены для PIC18F1320):
    - PRI_RUN 150 mA, 1 MHz, 2V – Стандартный режим работы. Работает и ядро процессора и периферия;
    - PRI_IDLE 37 mA, 1 MHz, 2V – Тактируется периферия, ядро приостановлено;
    - SEC_RUN 14 mA, 32 kHz, 2V – Ядро и периферия тактируется от генератора на Timer1
    - SEC_IDLE 5.8 mA, 32 kHz, 2V – Периферия тактируется от генератора на Timer1, ядро приостановлено;
    - RC_RUN 110 mA, 1 MHz, 2V - Ядро и периферия тактируется от внутреннего RC генератора;
    - RC_IDLE 52 mA, 1 MHz, 2V - Периферия тактируется от внутреннего RC генератора, ядро приостановлено;
    - SLEEP 0.1 mA, 1 MHz, 2V – Режим пониженного энергопотребления. Периферия и ядро приостановлены;
    - Timer1 oscillator 1.1 mA, 32 kHz, 2V – Потребление Timer1;
    - Watchdog Timer 2.1 mA – Потребление WDT.
    3. Система быстрого старта. Данная система позволяет выполнять код программы сразу после Power-On Reset или после выхода из Sleep. Для этого микроконтроллер запускается и работает на внутреннем RC генераторе до тех пор, пока не стабилизируется внешний генератор. Такой способ старта позволяет прорабатывать медленные события (например, подсчет каких-то событий), при этом контроллер не выходит на работу на внешнем кварце, что существенно снижает энергопотребление.

    После выбора микроконтроллера необходимо ознакомиться с технической документацией на этот процессора. Как ее получить?
    Существуют три метода:
    1. Скачать с сайта Microchip (англ).
    http://www.microchip.com/1010/search/prodsel/index.htm
В строке PICmicro® Microcontrollers выберите интересующий Вас микроконтроллер и нажмите Go.
    2. Приобрести за наличный или безналичный расчет компакт-диск фирмы Microchip с технической документацией (англ)
    3. Стать нашим постоянным клиентом и другом! 8о) В этом случае Вы можете заехать к нам в офис, и мы запишем Вам на Вашу матрицу всю интересующую Вас информацию. Данный метод получения информации приветствуется, т.к. фирма "Гамма" получает уникальную возможность познакомиться с Вами!

    Итак, мы выбрали микроконтроллер, выбрали язык программирования и установили MPLAB IDE – пора начинать.

    Будем считать, что мы выбрали PIC16F873А. Создавать сложные проекты мы не будем, ограничимся стандартной программой типа "помигать светодиодиком". При нажатии на кнопку SB1 (вход микроконтроллера RА4) мигает LED1 (RB0).

    Запустите MPLAB IDE любым удобным для Вас способом. Создайте на жестком диске папку, в которой будет храниться Ваша работа. В нашем случае создадим папку C:\work\led

    Воспользуемся помощником создания проектов. Выбираем Project\Project Wizard… В первом окошке просто клацаем "Далее". В следующем выбираем микроконтроллер. Как мы договорились, это будет PIC16F873А.



Нажимаем "Далее".
На этом листе предлагается выбрать язык разработки.
В строке "Active Toolsuite" выбираем "Microchip MPASM Toolsuite"
Ниже указано содержание данного программного продукта и его расположение.
Нажимаем "Далее"



На этом листе необходимо указать название проекта и месторасположение папки, в
котором будет храниться код программы.
Указываем название "led" и путь "c:\work\led"
Для указания пути можно воспользоваться кнопкой "Browse…"



На этой странице предлагается присоединить существующие файлы к проекту.
Так как мы только начинаем, то смело жмем "Далее"



На этом создание проекта завершается.
Мы видим итоговые данные нашего проекта. Нажимаем "Готово"



Для написание программы нам необходим файл.
Создадим его!
Нажимаем пиктограмму в виде чистого листа.



У нас появился новый пустой файл.
Сохраним его в папке C:\work\led "File/Save as…"
Название – main.asm



Добавим этот файл к проекту.
Для этого клацаем правой кнопочкой на "Source Files" и выберем "Add Files…"
Откроется окно, в котором необходимо выбрать "main"
После этого файл main.asm будет добавлен к проекту.



    Для того, что бы компилятор понимал символьные имена, такие как PORTB, STATUS и прочие необходимо подключить файл header.
Это делается путем добавления строки
#include "P16F873A.INC"

    На этом подготовку к написанию программы мы закончили.

    Само написание программы – процесс творческий и неординарный, мы не будем на этом останавливаться, а возьмем готовую программу.

    Однако надо убедиться, что программа работает. Как это сделать?
Для этого в MPLAB IDE предусмотрен процесс отладки.
Для его активации необходимо выбрать “Debugger/Select Tool/MPLAB SIM”



    Отдельно хотим отметить, что оптимальным выбором для отладки программ является модуль внутрисхемного отладчика MPLAB ICD2. Данный модуль предназначен для отладки кода программы в готовом устройстве, однако, данная статья предназначена для начинающих и в неё не входит обзор данного замечательного устройства, сильно облегчающего жизнь!

    После этого на панели инструментов появится такая группа кнопок:



    Назначение кнопок следующее (слева на право):
    RUN - Запуск программы. Программа работает с большой скоростью, не происходит перерисовка окон Watch. Если используется MPLAB ICD2, то данная кнопка запускает программу в реальном времени.
    Halt - Пауза. Тут все понятно
    Animate - Анимация. Программа работает быстро, но в пошаговом режиме. Скорость работы ниже, чем в первом случае, однако происходит перерисовка всех окон.
    Step Into – Шаг. Программа выполняется в пошаговом режиме. Выполняется КАЖДАЯ команда. Горячая клавиша F7
    Step Over – Шаг без подпрограммы. Если следующей командой является вызов подпрограммы, то Вы получите результат работы этой подпрограммы, а сам процесс работа подпрограммы останется "за кадром". Т.е. Вы не попадете "внутрь" подпрограммы.
    Step Out – Выход из подпрограммы. Вы выйдете из подпрограммы, в которой находитесь в данный момент. Вы получите данные работы подпрограммы.
    Reset – Сброс микроконтроллера.

    Для удобства пользователя предусмотрено меню View. С его помощью Вы можете наблюдать:



    1. File Registers – регистры ОЗУ микроконтроллера
    2. Program Memory – память программ микроконтроллера
    3. EEPROM – память ПЗУ микроконтроллера (EEPROM)
    4. Special Function Registers – регистры специального назначения
    5. Watch – специальное окно, в котором можно просматривать любые данные, расположенные в ОЗУ микроконтроллера. На этом окне мы остановимся чуть ниже.
    6. Hardware Stack – стек микроконтроллера. В данном окне Вы увидите адреса возврата из подпрограмм и прерываний.
    7. Disassembly Listing – Код программы на языке ассемблер. Весьма полезная функция для людей, пишущих на языках высокого уровня.

    Итак, приступим к отладке.
Нас, прежде всего, интересуют такие регистры: WREG, PORTA, PORTB, TRISA, TRISB, TMR0, counter. Добавим их в окно WATCH для наблюдения за их состоянием.



    Для этого необходимо:
    1. Открыть окно Watch – View/Watch
    2. В ЛЕВОМ выпадающем списке выбрать необходимый Вам регистр и нажать кнопку Add SFR
    3. Если Вы хотите добавить свой собственный символ, например регистр counter, то Вам необходимо выбрать в ПРАВОМ выпадающем списке и нажать кнопку “Add Symbol”
    4. Более удобным и понятным способом помещения регистра в watch является "Drag and Drop"? т.е. просто выделяем регистр и перетаскиваем его в окно watch.
    5. Далее необходимо изменить параметры данных в окне Watch, для этого необходимо выполнить такие действия:
    a. Левой кнопкой мышки выделить интересующий Вас регистр
    b. Нажать правую кнопку мыши и выбрать "Properties"



На экране появится окно "свойства":



    В результате этих действий мы должны получить все регистры, интересующие нас при отладке программы.

    Приступим к отладке. Откомпилируем наш проект, для этого необходимо нажать . После компиляции счетчик команд установится в 0x00; Нажимаем и следим за состоянием микроконтроллера в окне watch. После того, как мы добрались до метки start: программа переходит в «вечный цикл» и ее работа происходит исключительно по прерываниям от TMR0.

    Проверим работу TMR0.
Для этих целей нажмем кнопку Animate. При этом отладчик перейдет в режим "быстрой работы", однако, все окна полностью обновляются.

    Итак, нажав кнопку Animate, Вы сможете убедиться в правильности настроек TMR0. Вам может захотеться узнать интервалы между какими-либо событиями. В нашем случае интересно определить время срабатывания прерывания от TMR0. Для этого в среде разработки MPLAB IDE существует специальное окно – stopwatch.



    Вызвать это окно можно так:
    Debugger/Stopwatch



    Работать с данным окном очень просто – обнулили, запустили, посмотрели. Данном инструментом удобно пользоваться в сочетании с другой функцией MPLAB IDE – точками останова (breakpoints). Точка останова, это точка в которой произойдет останов процесса симуляции.

    Итак, определим интервалы прерываний по TMR0, для этого выполним следующие действия:
    1. Вызовем на экран окно stopwatch (см. выше)
    2. Установим точку останова в прерывании (строка movwf W_TEMP)



    После этого в левом поле должен появится красный кружек с буквой “B”
    3. При помощи “шагаем” до команды, очищающей TMR0 – CLRF TMR0; Еще раз нажимаем , а затем устанавливаем в 0 значение в окне STOPWATCH нажатием кнопочки Zero.
    4. Запускаем программу при помощи кнопочки RUN. Таймер 0 при этом "тикает" и вызовет прерывание, мы временно выйдем из "вечного цикла" и симуляция автоматически остановится, попав на точку останова (breakpoint)
    5. Просмотрим содержимое окна stopwatch. У меня получилось 32.772000 mSecs

    Если у Вас другая тактовая частота, то это можно исправить: Debugger/Settings…



    Теперь можно определить время мигания светодиода. Для этого мы поместим точку останова после метки blink, а предыдущую точку останова в прерывании отменить (точно так же, как и установка точки останова, только необходимо выбрать "Remove Breakpoint").
    1. Сделаем сброс процессора кнопкой RESET.
    2. При помощи “шагаем” до команды, очищающей TMR0 – CLRF TMR0; Еще раз нажимаем , а затем устанавливаем в 0 значение в окне STOPWATCH нажатием кнопочки Zero.
    3. Запускаем программу при помощи кнопочки RUN. Таймер 0 при этом "тикает" и вызовет прерывание, мы временно выйдем из "вечного цикла" и симуляция автоматически остановится, попав на точку останова (breakpoint).
    4. Просмотрим содержимое окна stopwatch. У меня получилось 262.144000 mSecs

    Логика работы программы следующая, если кнопочка нажата, то светодиод мигает, если не нажата, то светодиод не горит.

    Проверим работу этого алгоритма.
Для этого нам необходимо подать внешний сигнал на ножку RA4 микроконтроллера. Делается это при помощи специальной утилиты – Debugger/Stimulus



    Добавим симуляцию нажатия кнопки на RA4.
    Для этого необходимо:
    1. Нажать кнопку AddRow
    2. В графе Type выбрать Asynch
    3. В графе Pin выбрать RA4
    4. В графе Action выбрать Toggle. В данной графе доступно четыре варианта:
    a. High – подача на вход лог. 1
    b. Low – подача на вход лог. 0
    c. Toggle – изменение лог. Уровня на входе на противоположный
    d. Pulse – короткий импульс.

    В исходном состоянии на выводе RA4 находится лог.0 (кнопка нажата), что приводит к тому, что светодиод на выводе RB0 будет мигать. Убедимся в этом. Для этого, не меняя расположение точки останова, запустим программу при помощи кнопки RUN. В окне watch мы заметим, что регистр PORTB постоянно подсвечивается красным цветом, а бит RB0 постоянно меняет свое значение. Это означает, что если в реальном устройстве подключить к этой ноге светодиод, то он будет мигать. Теперь подадим лог. 1 на вывод RA4, что означает "кнопка не нажата". Для этого ОДИН раз нажмем кнопку Fire, а затем нажмем . В окне watch мы увидим изменение состояния PORTA. Теперь на RA4 находится лог. 0. Запустим программу при помощи кнопки RUN. Теперь значение PORTB остается неизменным. Для того чтобы изменить значение RA4, еще раз нажмем Toggle, а затем . Запустим программу. Мы опять увидим изменение состояния PORTB.

    Итак, мы убедились в работоспособности нашей программы. Что дальше? Необходимо каким-то образом "запихать" эту программу в микроконтроллер. Данную работу выполняет устройство под названием Программатор. Программаторы бывают фирменные, типа фирменные и самодельные.

    Что такое фирменный программатор, и какие они бывают? Фирменные программаторы – это программаторы, выпускаемые фирмой Microchip. Они полностью соответствует спецификации программирования всех выпускаемых микроконтроллеров. Длительность, скважность и прочие характеристики программирования контролируются процессором программатора, а не компьютером. Т.е. программатор будет одинаково хорошо работать на компьютерах различной производительности. Мы рекомендуем пользоваться именно такими программаторами. Несомненно, их цена значительно выше «самоделок», но приобретение такого программатора избавит Вас от неприятностей, например, таких:
    Раньше, мой программатор работал хорошо, а теперь что-то глючит…
    С ним такое в первый раз…
    А мой программатор не поддерживает эту микросхему…
    Он поломался, что делать???

    Какие фирменные программаторы выпускает фирма Microchip:
Программатор разработчика PICSTART Plus. Это относительно не дорогой программатор, поддерживающий все микроконтроллеры фирмы Microchip. Оснащен панелькой программирования с нулевым усилием, что позволяет просто устанавливать и извлекать микроконтроллер из программатора. Интерфейс программатора интегрирован в среду разработки MPLAB IDE, что позволяет программировать контроллер без каких-либо дополнительных программ. Интерфейс связи с компьютером – RS232.

    Внутрисхемный отладчик MPLAB ICD2. Это уникальное устройство может пригодится разработчику не только для отладки программ, но и для "банального" программирования микроконтроллеров. Однако его возможности в качестве программатора не столь велики. Он не поддерживает микроконтроллеры серии PIC17, поддерживает ограниченное количество микроконтроллеров PIC16. Однако, данное устройство позволяет программировать все микроконтроллеры серии PIC18,микроконтроллеры серии PIC12 с flash памятью программ, а также поддерживает все новые микроконтроллеры серии PIC16, например PIC16F628A, PIC16F648A, PIC16F818, PIC16F819 и т.д. Интерфейс данного отладочного средства также интегрирован в среду разработки MPLAB IDE версии 6.хх и выше. Связь с компьютером – USB, RS232.

    Для 8 и 14 выводных Flash микроконтроллеров фирма Microchip выпустила недорогой модуль PICkit1 FLASH STARTER KIT. Он представляет собой плату с управляющим микроконтроллером и панелькой для 8 (14) выводных микроконтроллеров. Также имеется 8 светодиодов, потенциометр и кнопочка. Для "продвинутых" имеется площадка для макетирования и печатная плата для сбора модуля интерфейса RS232. Интерфейс данного отладочного средства интегрирован в среду разработки MPLAB IDE версии 6.хх и выше, но имеется и отдельная программная оболочка, позволяющая проводить программирование, чтение, стирание, верификацию без участия MPLAB IDE.
Также данная оболочка позволяет восстанавливать калибровочные данные встроенного тактового генератора.

    Для промышленного использования фирма Microchip выпускает специализированные программаторы PRO MATE II и PM3. Они предназначены для серийного производства и рассчитаны на объемы до 10тыс. микроконтроллеров в месяц. В данной статье мы не будем их рассматривать.

    Что Вы получаете при покупке программатора, кроме самого программатора и принадлежностей к нему?
    1. Надежность. Вы приобретаете фирменный программатор. Все его характеристики многократно протестированы и измерены. Все контроллеры, запрограммированные на этих программаторах, будут "один в один"! Никаких неожиданностей!
    2. Обновление списка поддерживаемых микроконтроллеров. Так как фирма Microchip является производителем и микроконтроллеров и программаторов, то Вы всегда будете «на гребне волны»!
    3. Интеграция в среду разработки MPLAB IDE. Вы сможете программировать Ваши микроконтроллеры непосредственно в среде разработки! Вам не нужно использовать всевозможные конверторы и программные оболочки.
    4. Сервисное обслуживание. Если, вдруг, что-то происходит с Вашим программатором, Вы получаете помощь высококвалифицированных специалистов, которые в кратчайшие сроки ликвидируют все неисправности.

    Существуют менее дорогие программаторы. Назовем их "третьих фирменные". Несомненно, их главный плюс - меньшая стоимость. Они выпускаются не фирмой Microchip, а сторонними разработчиками. Выпускаются они серийно и их нельзя называть "кустарными". Зачастую, в них используются передовые технологии. Многие из них обладают хорошими показателями, и, возможно, ничем не хуже фирменных. Однако никто не дает гарантии, что завтра эта фирма не растворится в воздухе. В этом случае Вы останетесь наедине с непонятной железкой, которая программирует далеко не все микроконтроллеры, к тому же Вы потеряете возможность дальнейшего пополнения списка программируемых микроконтроллеров.

    Третий класс программаторов – самодельные. Самые простые из них, в буквальном смысле этого слова, можно "собрать на коленке", при этом используя навесной монтаж. Более "продвинутые" требуют некоторых знаний в области схемотехники. Принципиальные схемы данных программаторов легко можно найти в Интернет. Также в Интернет Вы можете найти и программы для компьютера, позволяющие работать с этими программаторами. Наиболее популярной бесплатной программой для программирования микроконтроллеров фирмы Microchip (и не только микроконтроллеров) является программа ic-prog.
    Сайт этой программы www.ic-prog.com На этом сайте Вы найдете не только данную программу, но и огромное количество принципиальных схем программаторов. Наиболее приемлемым программатором является Propic II. Однако, его схему трудно назвать простой.
На сегодняшний день, и это факт, наиболее популярной связкой является программа IC-PROG + "железо" ProPic II.

    Как запрограммировать микроконтроллер при помощи фирменного программатора? Для программаторов фирмы Microchip этот процесс не представляет собой ничего сложного.
    Для начала выберем программатор:



    В нашем случае доступно четыре программатора, однако PRO MATE II и MPLAB PM3 являются промышленными программаторами и вряд ли они есть у начинающего разработчика. Т.е. остается два варианта – PICSTART Plus или MPLAB ICD2.

    Для PICSTART Plus:
    1. Выбираем программатор PICSTART Plus, после чего меню Programmer несколько изменится.
    2. Соединяемся с программатором Programmer/Enable



    3. После успешного соединения появится новое меню



    Назначение кнопок следующее (слева направо): Проверка "чистый?", чтение из микроконтроллера, Запись в микроконтроллер, проверка, стирание.

    В случае если у Вас MPLAB ICD2, то порядок действий немного отличается:
    1. Выбираем программатор MPLAB ICD2, после чего меню Programmer несколько изменится.
    2. Соединение с MPLAB ICD2 происходит автоматически, однако если оно не произошло, необходимо нажать кнопку, напоминающую MPLAB ICD2



    Назначение кнопок следующее: программирование микроконтроллера, чтение, проверка, стирание, проверка "чистый?", связь с MPLAB ICD2.

    Итак, Вы записали программ в контроллер, но у Вас вообще ничего не работает или работает с перебоями? Что делать?
    1. Возможно, Вы где-то допустили ошибку в программном коде (в нашем случае код правильный)
    2. Возможно, Вы допустили ошибку в слове конфигурации. Это наиболее типичная ошибка. Проверьте правильность установки вида тактового генератора (HS, XT, RC). Также, если Вы не предусматривали использование WDT, отключите его и в слове конфигурации. Первый признак включенного WDT – постоянный перезапуск микроконтроллера.


Вернуться назад


Поиск электронных компонентов по складам поставщиков России и СНГ. МЕТА - Украина