четверг, 13 июня 2013 г.

Первый урок. Подготовка инструментов


<< Назад к оглавлению

Тут будет опубликовано несколько уроков по программированию pic18f контроллеров. Начнем с самого начала для самых чайников. Пишу я эти уроки, потому что было очень проблематично найти материал для начинающих. Очень многое устарело, или просто не описано.

Первый урок. Подготовка инструментов.

Внимание! Понятие "земля" для нас - это всего лишь общий провод, подключенный к +0 V (отрицательный провод USB, например). Не надо вкапывать металлическую пластину на метр в землю

В данном тексте приведены ссылки на книги. "название книги":страница обозначает указатель на определенную страницу книги. "название книги":Гглава - главу. При этом ТО - сокращение для тех. описания контроллера (Datasheet). Например ТО:15 - 15 страница технического описания. ТО:Г3 - третья глава технического описания

Мы не будем здесь ничего объяснять. Только готовим все инструменты и контроллеры для работы. Весь теоретический материал - в следующих уроках.



Если вы совсем ничего не знаете про контроллеры, советовал бы вам прочитать что-либо из следующего. Для удобства буду дублировать ссылки из моего личного архива.

Вот сайт, на котором товарищ Корабельников прячет свои учебники по микроконтроллерам для новичков. Прошу только не перенимайте его мировоззрения по поводу оптимизации и написания кода. И да. Прошу прощения за вырвиглазность дизайна. Зеркало
Я начинал с книжки "Микроконтроллеры - это же просто!". Но это по другому семейству контроллеров.
Или же Б.Брей. Применение микроконтроллеров PIC. Зеркало
В общем, какую-нибудь литературу стоит поиметь под рукой, чтобы в случае каких-либо непонятностей обращаться к ней.
И качаем документацию на семейство контроллеров pic18f2550 с официального сайта. И на программатор. Зеркало Программатор

Этот блог посвящен программированию микроконтроллер семейства pic 18F. Все примеры будут рассматриваться на контроллерах pic 18f4550 и pic 18f2550.
На данном этапе примеры на ассемблере компилируются под виндой и линуксом. А на Си - только под виндой.
Что необходимо для начала? естественно, сам микроконтроллер. Как вы увидите ниже, если вы купите контроллер другого типа, то не будет особых проблем запустить программу на нем. Но это, к сожалению требует некоторых умственных усилий, и поэтому если вы раньше не имели дела с подобной техникой, то наверное стоит использовать указанное ниже.

Итак:
1. Контроллер PIC18f2550 или PIC18f4550.

2. Программатор для этого типа контроллеров: у меня - PICkit2. он шьет тучу разных PIC чипов. Более новые версии наверное еще лучше.

3.Потом нам необходима плата, на которой мы будем собирать схемы.
Я советую что-то такое. Паять в большинстве случаев не надо. Купите еще наборчик перемычек для нее. Ну если вы решите паять, то в этом конечно ничего плохого нет.
4. Набор радиодеталей для схемы, которая находится ниже.

5. Пакет MPLABX. Ранее в блоге рассматривался MPLAB 8.91. В соответствующих разделах будут указаны ссылки на статьи со старой средой. Скачать же MPLABX можно здесь зеркало

6. Компилятор PIC18 Зеркало

Если вы используете linux, то вам понадобится что-то типа pk2cmd и gputils.

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

Схема подключения для контроллера pic18f2550:


Скажу еще, что это не просто откуда-то скачанные чертежи. Это все работает у меня на макете.
Ниже - схема для контроллера pic18F4550



В принципе, нет никаких особых требований для сбора этой схемы. Кварц желательно должен быть как можно ближе к контактам. И вообще, надо бы аккуратно собрать линию его подключения. Лично я припаял кварц вообще к сокету, в который вставляется контроллер. Но навряд ли это необходимо.

Итак, собрали?
Теперь надо будет его прошить и проверить. 
Я использовал pickit2.
Вот распиновка контроллеров из официальной документации:
И вот распиновка программатора pickit2. 

Подключаем пины программатора к соответствующим пинам на контроллере и прошиваем следующими файлами:
Естественно, на контроллер напряжение подавать не надо, втыкаем программатор в USB
Пример для pickit2.
запускаем.
Возможно, что сначала контроллер или программатор неопределен. щелкаем Tools->check communication. проверяем, правильно ли мы все подключили. Пока не появятся такие сообщения:
Рядом с device должна быть написана модель вашего контроллера, а 
Pickit found and connected.
щелкаем file->import hex выбираем hex file, и молимся об удачной прошивке.
Прошили.
это простая программа для проверки, работает ли ваша схема. Она мигает светодиодиком на порту RA2.
Поэтому чтобы проверить работу вашего микроконтроллера, подключите +светодиода на ножку RA2 микроконтроллера, и минус через резистор 1КОм на землю. А то чего доброго - сгорит светодиод. При подключении питания, он должен мигать.
Если ничего не работает, попробуйте эту прошивку
Тут используется внутренний генератор импульсов. То есть, если второй пример работает, а первый нет, то у вас какая-либо проблема с кварцем.

Работает? поздравляю с первой программой.


3 комментария:

  1. Давно надо было так. А то никак не пойму про них, а нормальных статей нет. Спасибо за статью, жду следующих.

    ОтветитьУдалить
  2. Спасибо. Очень постараюсь.может в ближайшие дни чутка выложу. А то сейчас я в командировке, контроллера нет под рукой - пишу по памяти. В плане сейчас небольшой обзор самого контроллера, немного про ассемблер, немного про С. Связь с LCD дисплеем и реализация USB протокола. Может что-то из этого больше интересует, так я с этого и начну? Или так по порядку и писать?
    пишу в перерывах, поэтому прошу, если где-то приврал или допустил неточность - говорите. Я с радостью исправлю.

    ОтветитьУдалить
  3. Написано хорошо. Думаю дальше по порядку нормально будет. Вообще интересует реализация USB протокола, т.к. пытаюсь связать pic с телефоном или блютуз адаптером

    ОтветитьУдалить