Разработка для
контроллеров, сопряженных с ПК.
Внимание! Этот
материал скачан с общедоступных
интернет - ресурсов и выложен на этом
сайте лишь частично, для ознакомления.
Полную версию можно найти на сайте автора, кликнув на нижеследующую
ссылку. Автор
проекта: Владислав Сорокоумов
Программирование
микроконтроллеров без программатора.
Однокристальные
микро – ЭВМ – микроконтроллеры (МК) широко
применяются для построения
радиоэлектронных устройств самого
разнообразного назначения. Одними из
наиболее популярных семейств являются
8-ми разрядные RISC – микроконтроллеры: AVR производства компании Atmel [3], и PIC-micro,
выпускаемые Microchip
LTD
[4]. Превосходные характеристики,
аппаратная поддержка распространенных
протоколов связи (параллельной шины,
интерфейсов RS232/485/422,
I2C, USB, CAN и других), широкий модельный ряд,
надежность и доступность в сочетании
со сравнительно низкой стоимостью,
наличием доступных средств разработки
и отладки программ, массой справочной
литературы, позволяют использовать эти
микроконтроллеры не только в
промышленной аппаратуре, но и в
радиолюбительских конструкциях.
На основе МК удобно разрабатывать
различные периферийные устройства для
персональных компьютеров. Обмен
информацией между МК и ПК как правило,
производится через последовательный (COM) порт компьютера и УАПП (UART) микроконтроллера по интерфейсу RS232,
что позволяет размещать устройство на
значительном удалении от компьютера.
При
налаживании схемы такого
периферийного устройства и отладки
микропрограмм часто возникает
необходимость неоднократной
перезаписи программы в память
микроконтроллера. Для записи
микропрограммы («прошивки») в МК обоих
семейств, может применяться как
параллельный, так и последовательный
способ программирования. Параллельный
способ предполагает использование
сложных аппаратных программаторов, не
позволяет программировать МК
внутрисхемно, и в любительской
практике используется крайне редко.
Последовательный способ предполагает
использование последовательных
способов передачи данных. К
достоинствам способа можно отнести
простоту аппаратных средств, чаще
всего представляющих из себя простой
преобразователь уровней, возможность
программирования в составе изделия,
простоту использования аппаратных и
программных средств. Память
программ многих современных МК
выполнена на основе Flash-
технологии и позволяет производить
многократную перезапись при отладке.
Однако в том случае, когда устройство
физически удалено от компьютера, либо у
компьютера отсутствуют свободные
порты, программирование усложняется.
Интерфейс
RS232
использует двунаправленную
последовательную асинхронную передачу
данных по однонаправленным
несимметричным линиям. Интерфейс
использует разнополярные сигналы,
причем логической единице
соответствует уровень – 3…12В, а
логическому нулю + 3…12В. Преобразование
уровней сигналов RS232
в ТТЛ зачастую реализуется с помощью
специализированной микросхемы-
приемопередатчика RS232.
Большинство таких микросхем имеют 2 и
более каналов приема-передачи, из них
используется только один, а
остальные каналы, а также свободные
линии интерфейсного кабеля, остаются
незадействованными.
Микроконтроллеры
AVR
широко применяются для построения
различных приборов, систем управления
аппаратурой и оборудованием. МК этого
семейства отличаются высоким
быстродействием, надежностью,
возможностью работы в многозадачных
средах и в режиме реального времени.
Достоинства AVR: быстродействующий RISC-процессор,
FLASH-память с низковольтным напряжением
программирования, внутреннее
перезаписываемое ЭСПЗУ, мощные
выходные порты, широкий диапазон
питающего напряжения. И все это при
малом потреблении тока, высокой
скорости, а главное, при низкой цене. По
совокупному интегральному параметру
"энергопотребление -
производительность - цена" AVR-контроллеры
оказались лучшими в мире. Несколько
расширенный набор команд позволяет
эффективно использовать компиляторы
языков высокого уровня (Си, Паскаль и
Бейсик), незаменимые при разработке
сложных проектов. Существует также
средство алгоритмической разработки
микропрограмм – Algorithm
Builder,
значительно упрощающее освоение
программирования этих МК.
Практически
все AVR-контроллеры имеют функцию
внутрисистемного программирования ISP (In-System
Programming) через 3-х проводную шину SPI. Все линии однонаправленные: MOSI-
вход данных, MISO – выход данных, SCK- вход тактового сигнала. В
некоторых МК этот порт может
использоваться и для обмена данными с
внешними устройствами.
Схема
сопряжения, изображенная на Рис.1,
адаптирована для микроконтроллеров АVR. Она позволяет
перепрограммировать микроконтроллер и
передавать данные, используя только
один COM порт ПК и один интерфейсный
кабель.
Микросхема
DD1 [2]
используется для преобразования
уровней ТТЛ в RS232
при передаче и RS232
в ТТЛ при приеме информации от ПК. UART микроконтроллера использует для
асинхронного обмена данными линии RXD
и TXD.
Остальные линии используются для
программирования МК. Схема
адаптирована для использования
совместно со свободно
распространяемой программой PonyProg
[1] (автор Claudio Lanconelli, Италия) . Переключатель-перемычка SA1
служит для перевода устройства в режим
программирования либо в режим обмена
данных. Она же защищает контроллер от
случайного перепрограммирования. Так,
при программировании, сигнал на шине ТХ
интерфейса, переводит МК в режим
программирования путем подачи низкого
уровня на вход RESET.
В режиме обмена, по этой линии
микроконтроллер принимает данные из ПК.
Сигналы ввода и вывода данных при
программировании МК MOSI
и MISO
передаются по линиям CTS
и DTR
интерфейса. Для согласования их
уровней используются свободные буферы DD1.
Преобразование
уровня сигнала тактирования МК SCK
происходит при помощи ограничителя на R1 VD1.
Конструктивно
схема сопряжения объединяется на одной
плате с микроконтроллером. Разъем ХS1
должен быть надежно закреплен к плате
или на корпусе устройства для
обеспечения механической прочности.
Налаживания схема не требует.
Микросхемы
приемопередатчиков интерфейса RS232
выпускаются многими фирмами, в
качестве DD1 могут быть применены
MAX202,
MAX203, ADM
202, ADM231,ADM232,
HIN202, HIN232,
ICL232 и
многие другие. Однако необходимо
уточнить по справочной документации на
микросхему расположение выводов и
величину емкостей конденсаторов С1…С4.
Соединение устройства
с ПК выполняют при помощи
интерфейсного кабеля с параллельной
распайкой контактов. Длина
интерфейсного кабеля может достигать 10
метров. Использование нуль-модемного
кабеля недопустимо.
При настройке
программы PonyProg
необходимо установить инверсию D-in
и D-out в меню Interface
Setup (Рис.2.),
поскольку эти сигналы инвертируются DD1,
а также указать СОМ - порт, к которому
подключено устройство.
Появление
недорогих и несложных для освоения МК
семейства PIC
с Flash – памятью программ, cо встроенным UART
и возможностью внутрисхемного
программирования, позволило резко
удешевить и упростить разработку
периферийных устройств. Сокращенный
набор высокоэффективных команд (всего
35 инструкций для МК среднего
подсемейства) и простота архитектуры,
позволяют освоить эти
микроконтроллеры даже начинающим
радиолюбителям.
PIC-micro
программируются через специальную
двухпроводную шину: двунаправленную
линию данных PGO
(обычно RB7)
и однонаправленную линию тактирования PGC
(RB6).
Выводы программирования у PIC
совмещены с линиями порта ввода-вывода RB
и автоматически переводятся в режим
программирования при подаче на вход MCLR
напряжения программирования Vpp,
составляющего 10…13,5В (согласно
спецификации) при удержании на выводах RB6
RB7
напряжения низкого уровня. Это
защищает память МК от случайного
перепрограммирования.
Программирование возможно только при
напряжении питания 5В+-10%. Возможный
вариант построения такой схемы
приведен на рис. 3. Для разделения
двунаправленной линии данных,
использован каскад на транзисторе VT1, как и в [1]. Напряжение
программирования формируется на
стабилитроне VD2
из уровня «нуля» линии СОМ - порта,
составляющего без нагрузки, как
правило, не менее +11,5В. Если по какой-то
причине напряжение окажется ниже
допустимых 10В, программирование будет
невозможно. В настройках программы
необходимо указать Invert
D-IN,
Invert SCKL.
Для
некоторых PIC-контроллеров,
например распространенных PIC16F627/628,
возможен так называемый «низковольтный»
(LVP – Low
Voltage
Programming)
режим программирования, позволяющий «прошивать»
МК без использования повышенных
напряжений, при этом МК переводится в
режим программирования при подаче «1»
на вывод LVP,
обычно это вывод RB4,
при низких уровнях на линиях PGO,
PGC
MCLR.
При наличии у
контроллера возможности
низковольтного программирования,
схема сопряжения будет выглядеть
следующим образом (рис.3). Этот режим, а
также назначение вывода LVP,
определяется установкой бита LVP
в слове конфигурации микроконтроллера.
По умолчанию, низковольтное
программирование разрешено, однако
изменить состояние бита LVP
можно только при программировании «высоковольтным»
методом. Однако следует помнить, что
наличие LVP
значительно повышает вероятность
сбоев и повреждения содержимого памяти
МК при нестабильности напряжения
питания и влиянии импульсных помех на
выводах МК.
Схема
сопряжения для МК PIC
представлена на рис 4, во многом
аналогична описанной выше. Согласно
спецификации на программирование МК,
подача сигнала MCLR должен производиться не ранее,
чем через 5 мкс после установки на линии
LVP
высокого уровня. Для упрощения схемы
введена дополнительная перемычка SA1
для подачи напряжения питания на вход LVP
вручную. Перемычка
SA2 также
служит для выбора режима работы схемы.
В настройках программы необходимо
указать Invert
D-IN,
SCKL и Reset.
У
рассмотренных устройств режимы
программирования могут несколько
отличаться от рекомендованных
изготовителем микросхем, что в ряде
случаев не позволяет гарантировать
успешное программирование того или
иного МК.
Литература.
-
www.lancos.com/
PonyProg Programmer
-
www.maxim-ic.com/
MAX220-MAX249. +5V – Powered, Multichannel RS232 Drivers/Receivers.
Datasheet
-
www.atmel.com/
-
www.microchip.com/
|