ГЛАВНАЯ Программаторы СОФТ Документация ССЫЛКИ

 

Программирование... без программатора!.

 Разработка для контроллеров, сопряженных с ПК.

Внимание! Этот материал скачан с общедоступных интернет - ресурсов и выложен на этом сайте лишь частично, для ознакомления. Полную версию можно найти на сайте автора, кликнув на нижеследующую ссылку. 

Автор проекта:  Владислав Сорокоумов

           

Программирование микроконтроллеров без программатора.

 Однокристальные микро – ЭВМ    микроконтроллеры (МК) широко применяются для построения радиоэлектронных устройств самого разнообразного назначения. Одними из наиболее популярных семейств являются 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, возможен так называемый «низковольтный» (LVPLow 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.

У рассмотренных устройств режимы программирования могут несколько отличаться от рекомендованных изготовителем микросхем, что в ряде случаев не позволяет гарантировать успешное программирование того или иного МК.

 

Литература.

  1. www.lancos.com/  PonyProg Programmer 

  2. www.maxim-ic.com/  MAX220-MAX249. +5V – Powered, Multichannel RS232 Drivers/Receivers. Datasheet

  3. www.atmel.com/ 

  4. www.microchip.com/ 

ГЛАВНАЯ Программаторы СОФТ Документация ССЫЛКИ
Hosted by uCoz