Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Микроконтроллеры PIC фирмы Microchip для начинающих выпуск №10


РАССЫЛКА Микроконтроллеры PIC фирмы Microchip для начинающих
Ведущий: Алексей (pont_a@mail.ru)


Доброго времени суток, дамы и господа!!

Прошу прощения за долгое молчание – уезжал в командировку!
Сегодня выпуск будет посвящен аппаратной части микроконтроллеров PIC18. Без знания ее разрабатывать различные электронные устройства невозможно! 

В прошлом выпуске мы научились производить простую отладку написанной программы в среде Mplab. Я тогда задавал домашнее задание Вам, по поводу ошибки в коде. Спасибо всем, кто попытался найти ее!  Как помним по заданию, значения записываются от 0 до 255 в 3-ий банк  памяти данных, а от 255 до 0 – в банк 2.
Вот кусок этого кода:
            LFSR  0, 0x200         ; в FSR0 заносим адрес первой ячейки памяти данных банка 2           
            LFSR  1, 0x3FF        ; в FSR1 заносим адрес последней ячейки памяти данных банка 3     
            SETF  count, ab        ; count=255
Loop_met:                                         ; метка (адрес) перехода. 
            MOVFF  count, INDF0 ; значение count заносится в ячейку по адресу, записанному в FSR0
            MOVFF  POSTINC0, POSTDEC1 ;ячейка [FSR1] = ячейка [FSR0]; FSR1-1; FSR0+1
            DECFSZ count, rf, ab           ; если count=0, то пропускаем следующую команду 
            BRA   Loop_met                   ;  если count не 0, то переходим на метку

Ошибка заключалась в том, что в ячейки с адресами 0х300 и 0х2FF  нули не записывались. Потому что команда DECFSZ count, rf, ab сначала вычитает, а потом проверяет переменную или регистр  на равенство нулю. Таким образом, выход из цикла произойдет, когда в банки запишется значение 1.

Ну, а теперь – аппаратная часть!

Всем привет!
Итак, Алексей выдал вам порцию информации по системе команд микроконтроллеров PIC18. Меня зовут Александр.
Подошло время коснуться аппаратной части. Хоть рассылка и была заявлена, как с уклоном на программирование, однако, без знания аппаратной части, ну никак не обойтись.
Возражения есть?... Возражений нет! Приступаем! Надеюсь, паяльник все в руках держали?!

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

На что следует обратить внимание при выборе микроконтроллера...
Во-первых, желательно, что бы корпус был DIP, это облегчит сборку макета, далее смотрим на число ножек (Pin Count), думаю сейчас большое число выводов не нужно, поэтому советую выбрать корпус с числом ножек до 28. Смотрим на объём памяти, опять же требования минимальные, т.к. задачи пока что приземленные, смотрим на периферию, если вы хотите в дальнейшем подключить своё устройство к COM-порту компьютера, то проверьте, что бы в колонке Interface значилось USART, или EUSART, или AUSART. Если хотите выполнять какие-нибудь аналоговые измерения, то необходим ADC. Далее в колонке "ICD-# of Breakpoints" проверяем, что чип поддерживает внутрисхемную отладку (об этом будет сказано чуть позже).

Схема приведена на рисунке.

Элементарная схема для разработки устройств на базе микроконтроллера PIC18F452

На схеме я не стал показывать источник питания, замечу, что требуется стабильный источник напряжения +5В. Подойдет любой со стабилизированным напряжением +5В (если конечно вы не выбрали микроконтроллер с питанием от 3В). Можно, например, использовать блок питания от старого системного блока компьютера. Или можно использовать сетевой адаптер, но они, как правило, выдают нестабилизированное напряжение, и придётся стабилизатор собрать самим на плате макета. Уверен, что найдется ещё масса способов запитать устройство.
Обращаю ваше внимание на то, что на схеме показан микроконтроллер в корпусе DIP, если у вас  будет тоже PIC18452, но в другом корпусе, то номера выводов не будут соответствовать указанным.
Представленная схема это минимум, который необходимо обеспечить для работы микроконтроллера. Для выбранного микроконтроллера необходимо обеспечить схему сброса при включении питания и источник тактовых сигналов.
Схема сброса нужна для того, чтобы не дать микроконтроллеру запуститься до тех пор, пока напряжение питания не достигнет нужного уровня. Простейшая схема формирования сигнала сброса при включении питания это RC-цепочка (С3, R3), которая формирует задержку для сигнала RESET. Диод VD1 нужен для разрядки конденсатора при выключении питания, а резистор R2 нужен для развязки вывода MCLR/VPP от конденсатора, на который подается высокое напряжение при программировании. Собственно эта схема приведена в datasheet на микроконтроллер (см. FIGURE 3-2).
Микроконтроллер PIC18F452 позволяет использовать различные конфигурации генератора тактовых сигналов. В этой схеме мы используем генератор на базе кварцевого резонатора (HS). Кварцевый резонатор подключается к специально-предназначенным выводам микроконтроллера (OSC1 и OSC2). Можно также использовать и другие конфигурации, например RC (RC-цепочка), что вполне допустимо на первых порах. Подробнее можно посмотреть в разделе 2.0 OSCILLATOR CONFIGURATIONS.
Обратите внимание на разъём XS1, он потребуется для внутрисхемного программирования и отладки. Разводка сигналов по разъёму может быть иной - всё зависит от типа используемого программатора.
Скажу пару слов о программаторе. Если у вас есть возможность, то лучше конечно купить готовый программатор - сэкономите время и нервы. А лучше если это будет программатор - внутрисхемный отладчик. Я, например, пользуюсь фирменным ICD-2, он позволяет устанавливать точки останова в программе и производить пошаговую отладку программы непосредственно в вашей схеме. Но подозреваю, что возможность купить программатор есть далеко не у всех, поэтому, имея небольшие навыки по работе с паяльником, простейший программатор можно изготовить самостоятельно (увы, только программатор, но не отладчик). Вот, например, ссылка на один из
них, я в своё время собирал программатор для PIC на базе этой схемы - схема рабочая. Можете ещё «погуглить» в Интернете, думаю, много ещё найдется разных.
А теперь гвоздь нашей программы - светодиод! Собственно всё, что описывалось выше это для того, чтобы поморгать светодиодом! Неслабо, неправда ли? Но это только начало, в дальнейшем схема будет расширяться и усложняться.
Последовательно со светодиодом включен резистор, который ограничивает протекающий через него ток. Ток считается очень просто: I = (5 В - 1.9 В) / 470 Ом = 6.6 мА. Здесь 1.9 В это падение напряжения на светодиоде.
Обращаю внимание на то, что вытекающий (равно как и втекающий) ток вывода не должен превышать 25 мА (см. раздел 22.0 ELECTRICAL CHARACTERISTICS). Если вы захотите подключить много светодиодов к одному микроконтроллеру, то также нужно проверить, чтобы суммарный ток не превышал 250 мА - это максимальный ток через вывод питания (Vdd).

На этом на сегодня всё. Удачи в начинаниях!

В следующем выпуске начнем рассматривать периферию микроконтроллеров серии PIC18 на базе микроконтроллера PIC18F452!

Полный архив рассылки Вы можете прочитать на нашем сайте!  При любом опубликовании текстов данной рассылки ссылка на сайт http://www.2aplusa.ru обязательна!

 

Желаем Вам удачи! До скорой встречи!


С уважением, Алексей pont_a@mail.ru
Cайт разработчиков 2AplusA http://2aplusa.ru


В избранное