Главная » Правописание слов » Как написать программу для программатора

Слово Как написать программу для программатора - однокоренные слова и морфемный разбор слова (приставка, корень, суффикс, окончание):


Морфемный разбор слова:

Однокоренные слова к слову:

Работа с микроконтроллерами: прошивка программатором и чистый «Си»

В этой статье я расскажу о том, как программировать микроконтроллеры без использования Arduino. Мы будем использовать программатор AvrISP STK500 для программирования контроллера ATtiny84.

Нам понадобится

Подключаем питание

Arduino мы не используем, поэтому обо всем нам придется думать самостоятельно. И первое, с чем необходимо разобраться — питание. Мы будем использовать преобразователь L7805, обладающей следующими характеристиками:

Теперь нам надо узнать схему подключения этого преобразователя. Ее мы найдем на странице 3 даташита.

Помимо самого преобразователя, мы видим еще 2 конденсатора — входной Сi и выходной Сo. Входной конденсатор необходим для того, чтобы сгладить пульсации на входе в случае удаленности L7805 от источника. В нашем случае длина соединительных проводов не будет превышать 15 см, поэтому входного конденсатора у нас не будет. Зато будет выходной, поскольку мы хотим «кормить» наш контроллер стабильным питанием.

Распиновка

Необходимо знать назначение ножек преобразователя. Это описано на 2-й странице даташита.

Схема

С учетом всего вышеописанного, получается схема для организации питания.

Программатор

В качестве программатора мы использовали AvrISP STK500 от Seeed Studio. Для его работы под Windows и Mac OS необходимы драйверы. Их можно скачать с официального сайта. Пользователям Linux устанавливать ничего не нужно — программатор будет сразу готов к работе.

Подключение к контроллеру

Распиновка разъема программатора такова:

Важно! Это распиновка разъема программатора, если смотреть на него сверху (отверстиями от себя). Не перепутайте!

Разъем программатора необходимо подключить к микроконтроллеру. Можно использовать как 10-пиновый разъём, так и 6-пиновый. Без разницы. Соединим проводами соответствующие пины, т.е:

Прошивка

Напишем код прошивки на чистом «C», которая заставит светодиод мигать. Использование ШИМ-сигналов и считывание аналоговых сигналов на чистом «C» не так тривиальна, и может являться темой отдельной статьи, поэтому остановимся пока на простейшем примере.

PORTA — тоже регистр, но он содержит в себе данные порта А. Если мы хотим на вывод номер 2 записать логическую единицу, то мы должны поместить 1 в соответсвующий бит регистра.

А _delay_ms — функция задержки. Исходя из этого можно составить таблицу соответствия:

Arduino C
Направление pinMode(led, OUTPUT); DDRA = 1
Значение digitalWrite(led, HIGH); PORTA = 1
Задержка delay(1000); _delay_ms(50);

Далее начинается самое интересное. Нам нужно скомпилировать и загрузить прошивку. Однако, в зависимости от вашей операционной системы, методика будет различаться.

Mac OS X

Первым делом необходимо скачать и установить CrossPack for AVR Development. Это даст нам все необходимые инструменты. CrossPack состоит из двух частей.

Первая нам нужна для написания кода и создания файла прошивки, а вторая — для заливки прошивки в контроллер.

Проект создается в три шага.

В результате будет создано следующее дерево файлов.

Пройдемся по строкам:

Внимание! Задание неверных fuse-битов может привезти к тому, что микроконтроллер перестанет работать и вернуть его к нормальной жизни может быть либо очень сложно либо невозможно! Воспользеумся сайтом AVR Fuse Calcuator.

Сначала из выпадающего списка выберем нужный нам контроллер (ATtiny84).

И затем укажем необходимые опции, которые нам нужны. Сейчас для нас важны 2 вещи: сохранение возможности прошивать контроллер через SPI и сохранение его работоспособности без внешнего резонатора, поэтому выбираем соответствующие пункты, а остальные оставляем по умолчанию.

Видим, как поменялись сгенерированные значения.

Внесем изменения в Makefile.

Прошивка

Она происходит в 2 этапа.

Все, прошивка контроллера завершена.

Windows

Первым делом необходимо скачать и уствновить среду разработки для AVR — Atmel AVR Studio 4. А вторым — Atmel AVR Toolchain.

После запуска среды, необходимо создать новый проект.

Затем указать имя, расположение и то, что мы хотим использовать С ( GCC ).

Третий шаг — настройка отладчика.

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

В результате общий вид среды разработки выглядит вот так:

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

Заключение

Мы собрали простейшее устройство мигалку, но сделали это на низком уровне. С использованием программатора и «продвинутой» среды разработки, а не Arduino.

Разобравшись в премудростях программирования микроконтроллеров на чистом «Си», вы сможете выжимать из них максимум возможности, затрачивая при этом минимум места и денег.

Источник

Средства программирования PIC-контроллеров

Введение

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

Миниатюрные PIC контроллеры хороши для построения преобразователей интерфейсов последовательной передачи данных, для реализации функций «прием – обработка – передача данных» и несложных регуляторов систем автоматического управления.

Компания Microchip распространяет MPLAB — бесплатную интегрированную среду редактирования и отладки программ, которая записывает бинарные файлы в микроконтроллеры PIC через программаторы.

Взаимодействие MPLAB и Matlab/Simulink позволяет разрабатывать программы для PIC-контроллеров в среде Simulink — графического моделирования и анализа динамических систем. В этой работе рассматриваются средства программирования PIC контроллеров: MPLAB, Matlab/Simulink и программатор PIC-KIT3 в следующих разделах.

• Характеристики миниатюрного PIC контроллера PIC12F629
• Интегрированная среда разработки MPLAB IDE
• Подключение Matlab/Simulink к MPLAB
• Подключение программатора PIC-KIT3

Характеристики миниатюрного PIC-контроллера

Семейство РIС12ххх содержит контроллеры в миниатюрном 8–выводном корпусе со встроенным тактовым генератором. Контроллеры имеют RISC–архитектуру и обеспечивают выполнение большинства команд процессора за один машинный цикл.

Для примера, ниже даны характеристики недорогого компактного 8-разрядного контроллера PIC12F629 с многофункциональными портами, малым потреблением и широким диапазоном питания [1].

• Архитектура: RISC
• Напряжение питания VDD: от 2,0В до 5,5В ( >path без аргументов приводит к отображению списка путей переменной path в окне команд (Command Window). Удалить путь из переменной path можно командой rmpath, например:

4. Создайте Simulink модель для PIC контроллера, используя блоки библиотеки «Embedded Target for Microchip dsPIC» (Рис. 13), или загрузите готовую модель, например, Servo_ADC.mdl.

Тип контроллера, для которого разрабатывается Simulink модель, выбирается из списка в блоке Master > PIC (Рис. 16, Рис. 10), который должен быть включен в состав модели.

Рис. 16. Выбор типа контроллера в блоке Master модели.

Рис. 17. Выбор компилятора S-функций dspic.tlc для моделей PIC-контроллеров в разделе «основное меню → Simulation → Configuration Parameters → Code Generation».

6. Откомпилируйте модель tmp_Servo_ADC.mdl. Запуск компилятора показан на Рис. 18.

Рис. 18. Запуск компилятора Simulink модели.

В результате успешной компиляции (сообщение: ### Successful completion of build procedure for model: Servo_ADC) в текущем каталоге создаются HEX файл для прошивки PIC контроллера и MCP проект среды MPLAB (Рис. 19).

Рис. 19. Результаты компиляции модели.

Запуск модели в Matlab/Simulink выполняется в окне модели кнопкой, условное время моделирования устанавливается в строке:

Управление компиляцией Simulink моделей из среды MPLAB

Управление компиляцией Simulink модели можно выполнять командами раздела Matlab/Simulink среды MPLAB, например, в следующем порядке.

1. Разработайте модель PIC контроллера в Matlab/Simulink. Сохраните модель.
2. Запустите MPLAB.
3. Выберите MPLAB меню → Tools → Matlab/Simulink и новый раздел появится в составе меню.

4. В разделе Matlab/Simulink откройте Simulink модель, например, Servo_ADC, командой «Matlab/Simulink → Specify Simulink Model Name → Open → File name → Servo_ADC.mdl → Open». Команда Open запускает Matlab и открывает модель.

5. Откомпилируйте модель и создайте MCP проект командами Generate Codes или Generate Codes and Import Files. Перевод MDL модели в MCP проект выполняется TLC компилятором Matlab.
В результате создаётся проект MPLAB:

со скриптами модели на языке Си.

6. Откройте проект: меню → Project → Open → Servo_ADC.mcp (Рис. 20).

Рис. 20. Структура MCP проекта Simulink модели Servo_ADC.mdl в среде MPLAB.
Проект Simulink модели готов для редактирования, отладки и компиляции в машинные коды контроллера средствами MPLAB.

Подключение программатора PIC-KIT3

Узнать какие программаторы записывают бинарный код в конкретный микроконтроллер можно в разделе меню → Configure → Select Device среды MPLAB 8.92. Например, программатор PIC-KIT3 не поддерживает контроллер PIC12C508A (Рис. 21, левый рисунок), но работает с контроллером PIC12F629 (Рис. 21, правый рисунок).

Рис. 21. Перечень программаторов для прошивки микроконтроллера.

Информацию об установленном драйвере программатора PIC-KIT3 можно запросить у менеджера устройств ОС Windows (Рис. 22).

Рис. 22. Информация об установленном драйвере программатора PIC-KIT3.

Схема подключения микроконтроллера PIC12F629 к программатору PIC-KIT3 показана на Рис. 23.

Рис. 23. Схема подключения микроконтроллера PIC12F629 к программатору PIC-KIT3.

Вывод PGM программатора для прошивки контроллеров PIC12F629 не используется. Наличие вывода PGM для разных типов PIC контроллеров показано на Рис. 24. Вывод PGM рекомендуется «притягивать» к общему проводу (GND), через резистор, номиналом 1К [3].

Рис. 24. Выводы PGM PIC контроллеров.

Индикация светодиодов программатора Olimex PIC-KIT3 показана в ниже:

Желтый — Красный — Состояние программатора
Вкл — Выкл — Подключен к USB линии
Вкл — Вкл — Взаимодействие с MPLAB
Мигает — Включен постоянно — Прошивка микроконтроллера

Не следует подключать питание микроконтроллера VDD (Рис. 23) к программатору, если контроллер запитывается от своего источника питания.

При питании микроконтроллера от программатора на линии VDD необходимо установить рабочее напряжение, например, 5В программой MPLAB (Menu → Programmer → Settings → Power), как показано на Рис. 25.

Примечание. При отсутствии напряжения на линии VDD MPLAB IDE выдает сообщение об ошибке: PK3Err0045: You must connect to a target device to use

Рис. 25. Установка напряжения VDD на программаторе PIC-KIT3 программой MPLAB IDE v8.92.

Если программатор не может установить требуемое напряжение, например, 5В при его питании от USB, в которой напряжение меньше 5В, MPLAB IDE выдает сообщение об ошибке: PK3Err0035: Failed to get Device ID. В этом случае, сначала необходимо измерить напряжение программатора — считать его в закладке меню → Programmer → Settings → Status, а затем установить напряжение (не больше измеренного) в закладке меню → Programmer → Settings → Power.

Рис. 26. Измерение (слева) и установка (справа) VDD напряжения программатора PIC-KIT3 программой MPLAB IDE v8.92.

Пример MPLAB сообщения успешного подключения микроконтроллера к программатору по команде меню → Programmer → Reconnect показан на Рис. 27.

Рис. 27. Сообщение MPLAB об успешном подключении микроконтроллера к программатору.

Можно программировать не только отдельный PIC контроллер, но и контроллер, находящийся в составе рабочего устройства. Для программирования PIC контроллера в составе устройства необходимо предусмотреть установку перемычек и токоограничивающих резисторов как показано на Рис. 28 [3].

Рис. 28. Подключение микроконтроллера в составе электронного устройства к программатору.

Заключение

Малоразрядные PIC-контроллеры имеют широкий диапазон питания, низкое потребление и малые габариты. Они программируются на языках низкого уровня. Разработка программ на языке графического программирования Simulink с использованием многочисленных библиотек значительно сокращает время разработки и отладки в сравнении с программированием на уровне ассемблера. Разработанные для PIC-контроллеров Simulink структуры можно использовать и для компьютерного моделирования динамических систем с участием контроллеров. Однако, из-за избыточности кода такой подход применим только для семейств PIC контроллеров с достаточными ресурсами.

Источник

Программаторы и программирование микроконтроллеров

Ставшие сегодня обычными радиолюбительские конструкции на микроконтроллерах подкупают простотой схемы и широкими возможностями. Однако прежде, чем собранное устройство заработает, микроконтроллер, в отличие от традиционных интегральных микросхем, выпускаемых с завода «готовыми к употреблению», необходимо «обучить». Для этого в его память нужно занести программу — последовательность команд, исполняя которые микроконтроллер будет делать все, что требуется.

Программу обычно составляют параллельно с разработкой схемы и конструкции прибора и окончательно отлаживают, испытывая готовое изделие. Мы не будем вникать в многочисленные возникающие при этом проблемы. Наша задача — научиться заносить в микроконтроллер готовую программу.
Что будем записывать
Обычно в описании прибора программа, по которой должен работать микроконтроллер, представлена таблицей кодов — их следует занести в память микроконтроллера. Вот фрагмент такой таблицы в так называемом НЕХ-формате (табл. 1):

Таблица 1
:1000C000A60C2618652805126728051600003F2093
:1000D000A60C26186D2805126F28051600003F2073
:1000E000A60C2618752805127728051600003F2053
:1000F000A60C26187D2805127F28051600003F2033
:10010000A60C2618852805128728051600003F2012
:100110000000000000000000000005163F203F2006
:10012000000000000000000000000800FF3FFF3F4B

Подробнее о нем можно прочитать, например в [1, 2].

Напомним, микроконтроллеры работают в двоичной системе счисления, различая лишь по два состояния (0 и 1) каждого из своих выводов, многочисленных ячеек памяти и других внутренних узлов. Большинство двоичных ячеек-разрядов для ускорения и удобства выполнения различных операций над их содержимым объединены в группы — восьмиразрядные байты и более длинные слова. В публикуемых таблицах исключительно для удобства их восприятия человеком помещают не двоичные, а шестнадцатиричные изображения программных кодов. Каждые четыре двоичных цифры заменяют одной шестнадцатиричной:
0000 — 0 0100 — 4 1000 — 8 1100 — С
0001 — 1 0101 — 5 1001 — 9 1101 — D
0010 — 2 0110 — 6 1010 — А 1110 — Е
0011 — 3 0111 — 7 1011 — В 1111 — F

Куда будем записывать
Внутреннюю память программ микроконтроллера в варианте, допускающем многократное изменение содержимого, часто называют FLASH-памятью, хотя этот термин характеризует ее устройство и принцип действия, а не функциональное назначение. Кроме программной имеется, как правило, и внутренняя электрически изменяемая память данных (EEPROM) для хранения различного рода констант, подбираемых в процессе настройки готового изделия или время от времени корректируемых в процессе эксплуатации.
Частью внутренней перепрограммируемой памяти микроконтроллера можно считать и конфигурационные ячейки — своего рода переключатели, управляющие некоторыми узлами микроконтроллера. Записав в эти ячейки нули или единицы, такие узлы можно включить, выключить, установить нужный режим их работы. Учтите, сделать это можно лишь в процессе программирования. Исполняемая микроконтроллером программа ни проверить его конфигурацию, ни изменить ее не может. Именно неправильно заданная конфигурация часто единственная причина неработоспособности отлаженной и неоднократно проверенной программы.
Среди конфигурационных есть ячейки, управляющие защитой памяти. Включив ее, делают содержимое внутренней памяти недоступным для любых внешних воздействий кроме полного стирания. Только уничтожив всю хранившуюся информацию, удастся отключить защиту. Таким образом предотвращают несанкционированное копирование программы. Учтите, однажды включенную защиту памяти микроконтроллера, рассчитанного на однократное программирование (ОТР), уже не отключить никаким способом.

Как будем записывать
В обычном рабочем режиме внутренняя память микроконтроллера для внешнего доступа закрыта. Чтобы получить возможность читать и записывать информацию, нужно подать на определенные выводы микросхемы специальную комбинацию уровней напряжения, не встречающуюся при обычной работе. У большинства современных микроконтроллеров для программирования предусмотрен последовательный интерфейс (не путать с интерфейсом, служащим для связи микроконтроллера с другими устройствами в рабочем режиме). Это значит, что двоичные значения кодов и команд, управляющих процессом программирования, подают на предназначенный для этого вывод микросхемы поочередно разряд за разрядом, сопровождая синхронизирующими импульсами на другом выводе. Таким образом в процессе программирования активно участвуют всего две цепи. Иногда требуется еще одна — для вывода (тоже последовательным кодом) содержимого памяти и ответов микроконтроллера на команды, управляющие программированием. Но во многих случаях двустороннюю связь организуют по одной цепи.
Переход с параллельного интерфейса программирования, требовавшего задействовать почти все выводы микроконтроллера, на последовательный привел к значительному упрощению программаторов — устройств для занесения информации во внутреннюю память. Еще больше упростил их перенос внутрь микроконтроллеров довольно сложной автоматики программирования, формирующей импульсы строго определенной длительности и повышенного напряжения. Внутрь переместились и сами источники этого напряжения. Внешнее напряжение, отличающееся от обычного, требующегося для питания микроконтроллера если и подают, то лишь как сигнал переключения последнего в режим программирования.
В аппаратной части программатора остаются один-два электронных ключа, и два-три буферных элемента, согласующих входы и выходы микроконтроллера с внешними цепями. Основная часть работы по формированию и анализу последовательностей импульсов во время программирования возложена на управляющий этим процессом компьютер.
Часто задают вопрос, нельзя ли записать программу в микроконтроллер, не имея компьютера? Ответ неожиданный: можно. В принципе достаточно переключателя, чтобы устанавливать на входе программирования уровни 0 или 1 в соответствии с кодовой таблицей, и кнопки для подачи синхроимпульсов. Естественно, кнопка и переключатель должны быть снабжены узлами подавления «дребезга» контактов. Оперируя этими органами вполне возможно занести в память микроконтроллера всю программу.
Беда в том, что самая простая программа состоит из нескольких сотен нулей и единиц, а в более сложных их тысячи. Многие ли обладают достаточным терпением и аккуратностью, чтобы безошибочно все это набрать вручную? Ведь после любого сбоя придется повторять работу с самого начала. Лучше уж поручить эти однообразные операции компьютеру.

Программатор = адаптер + управляющая программа
Прежде, чем продолжить рассказ, разберемся немного в терминологии. Слово «программатор» употребляют сегодня как минимум в двух значениях. Во-первых, это устройство, с помощью которого соединяют компьютер (источник данных) с микросхемой, в которую должны быть занесены эти данные. Этот прибор правильнее называть адаптером программирования. Во-вторых, программатор — программа, под управлением которой компьютер формирует все необходимые для записи данных в микроконтроллер сигналы на выводах одного из своих портов (того, к которому подключают адаптер).
Путаница в понятиях нередко приводит к взаимному непониманию в спорах о том, какой программатор лучше. Один утверждает, что программатор А, его можно собрать за день. Второй — что программатор Б, он удобнее в пользовании. Действительно, адаптер А очень прост, но сопровождающая его программа А неудобна. Сложный в изготовлении адаптер Б работает под управлением программы Б, оснащенной многими сервисными функциями. Так что оба правы. Но нередко спорящим невдомек, что адаптер А вполне может работать с программой Б и наоборот. Именно такая ситуация будет рассмотрена ниже.

Как подключить адаптер
Для связи компьютера с программируемым микроконтроллером через адаптер пригодны два вида стандартных портов, известных под аббревиатурами LPT и СОМ. То, что порт LPT параллельный, а СОМ последовательный, в данном случае значения не имеет. Важна возможность формировать нужные импульсы, программно изменяя уровни напряжения на отдельных линиях этих портов, и «читать» ответные сигналы микроконтроллера. Число практически равноправных выходных и входных линий вполне достаточно в портах обоих типов. Поэтому с точки зрения правильности и скорости программирования подключение адаптера, к порту того или иного типа, не дает никакого выигрыша.
Некоторое преимущество СОМ-порта состоит в том, что из его выходных сигналов легко получить не только напряжение +5 В мощностью, достаточной для питания самого адаптера и программируемой микросхемы, но и + 12 В для переключения в режим программирования микроконтроллеров, например, серии PICmicro (более известных под названием PIC-контроллеры). Здесь удается обойтись без дополнительного внешнего источника питания, который как правило необходим LPT-адаптерам. Хотя известны конструкции с питанием и от такого порта [31].
К тому же к розетке порта LPT1 в компьютере обычно подключен принтер, который на время работы с программатором приходится отключать. Очень редко компьютеры бывают снабжены вторым параллельным портом LPT2, к которому можно подключить адаптер, не отключая принтер от LPT1. Справедливости ради нужно сказать, что современные принтеры все чаще снабжают интерфейсом USB и порт LPT остается свободным.
Весьма заманчиво было бы использовать USB для связи компьютера с адаптером программирования. Прежде всего потому, что в этом интерфейсе специально предусмотрена подача на подключаемое устройство от компьютера питающего напряжения 5 В. К сожалению, организация аппаратного и программного взаимодействия по этому интерфейсу довольно сложна. Так что разработка USB-программатора — дело будущего.
Последовательных портов в компьютере обычно два (СОМ1 и COM2), адаптер можно подключить к любому. Но вилки этих портов зачастую разнотипны. Одна из них, как правило, СОМ1, девяти-, а COM2 — 25-контактная, что нужно учитывать при изготовлении адаптеров. При несовпадении типа разъемов можно приобрести переходник или изготовить его по схеме, показанной на рис. 1. Для подключения адаптера с 25-контактной розеткой к девятиконтактной вилке порта разъем Х1 должен быть розеткой (с буквенным индексом F), a X2 — вилкой (с индексом М). В противоположном случае — наоборот.
Длина соединительных кабелей, шлейфов или проводов компьютер— адаптер и адаптер—программируемая микросхема во всех случаях должна быть минимальной — 0,2. 0,5 м. Понятно, это доставит некоторые неудобства, так как разъемы портов размещены на обычно труднодоступной тыльной стороне корпуса системного блока. Но придется смириться с неудобствами. Именно длинные провода — одна из главных причин сбоев в процессе программирования.

Sl-Prog — программируем все
Описание сравнительно несложного адаптера, предназначенного для работы под управлением известной программы PonyProg, было опубликовано в [1]. Рекомендации по его проверке можно найти в [4]. Адаптер состоит из основной платы, подключаемой к разъему СОМ-порта, и нескольких сменных плат-переходников с панелями для программируемых микросхем различных типов, в том числе микроконтроллеров самых распространенных серий PICmicro, AVR и AT89S. Среди радиолюбителей за этим устройством закрепилось название PonyProg, хотя К. Ланконелли (Lanconelli), автор исходного варианта адаптера и обслуживающей его программы, предпочитает называть свой адаптер Sl-Prog. Будем следовать его примеру.

Адаптеры для PICmicro
Фирма Microchip (разработчик микроконтроллеров серии PICmicro) рекомендует для их программирования адаптер по схеме, показанной на рис. 2.

Таблица 2

MK Корпус MCLR CLOCK DATA PGM OSC1 VSS (Общ) VDD (+Uпит)
PIC12C5xx
PIC12C671
PIC12C672
PIC12CE673
PIC12CE674
PIC12F629
PIC12F675
PDIP-8 4 6 7 2 8 1
PIC16F630
PIC16F676
PDIP-14 4 12 13 2 14 1
PIC1400 PDIP-28 14 11 12 20 9
PIC16F83
PIC16F84
PDIP-18 4 12 13 16 5 14
PIC16F627
PIC16F628
PDIP-18 4 12 13 10 16 5 14
PIC16F870
PIC16F872
PIC16F873
PDIP-28 1 27 28 24 9 8, 19 20
PIC16F871
PIC16F874
PIC16F876
PIC16F877
PDIP-40 1 39 40 36 13 12, 31 11, 32

Примечание. Назначение выводов модификаций микроконтроллеров в корпусах других типов может не совпадать с указанным в таблице.

Цепь PGM имеется только у микроконтроллеров с двумя вариантами режима программирования: обычным для PICmicro «высоковольтным», включаемым подачей в цепь MCLR напряжения +12 В, и «низковольтным» (low voltage programming, LVP), для которого достаточно +5 В. Режим LVP имеет некоторые отличия от обычного и учтены они далеко не во всех программах, управляющих программированием. Чтобы независимо от установленной ранее конфигурации микроконтроллера разрешить высоковольтное программирование, вывод PGM необходимо соединить с VSS (общим проводом). Учтите, это должно быть сделано до подачи на микроконтроллер напряжения питания.
Иногда рекомендуют включать в цепь PGM последовательно резистор номиналом 240 Ом. Логический уровень на соответствующем выводе микроконтроллера во время программирования останется низким, но вывод будет защищен от перегрузки в случае, если занесенная в память программа «вдруг» начнет исполняться и окажется, что в ней предусмотрена настройка соответствующего разряда порта на вывод и запись в него лог. 1.
К выводу OSC1 в рабочем режиме микроконтроллера подключают один из выводов кварцевого резонатора или другого частотозадающего элемента. Хотя тактовый генератор во время программирования заблокирован, некоторые управляющие программы переводят микроконтроллер в этот режим слишком медленно. Если в процессе переключения генератор все-таки успеет совершить несколько колебаний, исходное состояние программного счетчика микроконтроллера станет не нулевым. Это приведет к записи программных кодов не в те ячейки, для которых они предназначены. Чтобы исключить сбои по этой причине и надежно заблокировать работу тактового генератора, вывод OSC1 рекомендуют на время программирования соединить с общим проводом непосредственно или через конденсатор сравнительно большой емкости (СЗ на рис. 2), хотя «официальные» протоколы программирования этого и не требуют.
Не указанные в табл. 2 выводы микроконтроллеров во время программирования можно оставить свободными. Они находятся, как правило, в высокоимпедансном состоянии. Если же к ним все-таки подключены какие-нибудь внешние элементы, на ход и результат программирования они не повлияют.

Среди адаптеров для PICmicro, подключаемых к порту СОМ и не требующих дополнительного источника питания, популярностью пользуется так называемый JDM. Его схема, изображенная на рис. 3, содержит ряд решений «на грани фола», тем не менее адаптер зарекомендовал себя с наилучшей стороны.
В исходном варианте он предназначен для микроконтроллеров PIC12C508, PIC12C509, PIC16C84 (устаревший вариант PIC16F84) и микросхем памяти с интерфейсом I 2 С. Их программируют, вставляя в панель XS2 различным образом, как показано на рис. 4.
Имеющаяся на схеме рис. 3 перемычка S1 (в прототипе она отсутствует) позволяет соединить вывод 10 панели XS2 с общим проводом, что необходимо для программирования микроконтроллеров PIC16F628, устанавливаемых в панель аналогично PIC16F84. Адаптер пригоден и для других микроконтроллеров серии PICmicro (см. табл. 2), если предусмотреть для них соответствующие панели.

Печатная плата адаптера JDM с розеткой Х1 DB9F и расположение элементов на ней изображены на рис. 5. Плата односторонняя, ее ребром вставляют между рядами выводов розетки XS1, но лишь выводы 1—5 припаивают непосредственно к контактным площадкам. Выводы 7 и 8 соединяют с соответствующими площадками проволочными перемычками. Внешний вид готового адаптера показан на рис. 6.


В некоторых случаях с помощью JDM не удается запрограммировать восьмивыводные микроконтроллеры PIC16F629 и PIC16F675.

Причина этого — слишком большой интервал между включением напряжения питания и подачей команды перехода в режим программирования.Японский радиолюбитель, адрес электронной почты которого hoheplyohamu@hotmail.com, предложил устранить недостаток, дополнив адаптер JDM узлом, схема которого приведена на рис. 7. Цепь, шедшую ранее к выводу 2 панели XS2 (см. рис. 3), следует разомкнуть.

Адаптеры для микроконтроллеров фирмы Atmel

Схема стандартного адаптера для микроконтроллеров фирмы Atmel серий AVR (в нее входят микросхемы с названиями, начинающимися с АТ90, ATmega, ATtiny) и AT89S показана на рис. 8.

Его вилку ХР1, как и в предыдущем случае, подключают к розетке порта LPT компьютера. Перемычки между контактами 3 и 11, 2 и 12 вилки позволяют управляющей программе «опознать» адаптер. Светодиод HL1 служит для сигнализации о режиме работы устройства, но делает это лишь в том случае, если управляющая программа вырабатывает соответствующий сигнал. Напряжение + 5 В подают от внешнего стабилизированного источника, более высокое здесь не требуется.
С выводами программируемой микросхемы адаптер соединяют в соответствии с табл. 3.

Таблица 3

MK Корпус RESET MOSI MISO SCK XTAL1 XTAL2 VCC (+Uпит) GND (Общ.)
AT90S2323
AT90S2343
ATtiny12
ATliny13
PDIP-8 1 5 6 7 2 3 8 4
ATtiny15 PDIP-8 1 5 6 7 8 4
AT90S1200
AT90S2313
PDIP-20 1 17 18 19 5 4 20 10
ATtiny26 PDIP-20 10 1 2 3 7 8 5, 15 6, 16
AT90S4433
ATmega8
PDIP-28 1 17 18 19 9 10 7, 20 8, 22
AT90S8515
ATmega161
ATmega162
PDIP-40 9 6 7 8 19 18 40 20
AT90S8535
ATmega8535
ATmega16
ATmega163
ATmega32
ATmega323
PDIP-40 9 6 7 8 13 12 10, 30 11, 31
ATmega64
АТтеgаЮЗ
ATmega128
ATmega169
PDIP-64 20 12 13 11 24 23 21, 52, 64 22, 53, 64

Примечание. Назначение выводов модификаций микроконтроллеров в корпусах других типов может не совпадать с указанным в таблице.

В отличие от микроконтроллеров серии PICmicro, рассматриваемые приборы требуют обязательной работы тактового генератора во время программирования. Все необходимые в этом режиме операции выполняются за определенное число тактов. Поэтому в непосредственной близости от микроконтроллера должен быть установлен и подключен к выводам XTAL1 и XTAL2 кварцевый резонатор ZQ1. Никакие длинные провода здесь недопустимы.
Резонансная частота ZQ1 — не менее 4 МГц, выдерживать ее с большой точностью нет необходимости. Обычно пригоден резонатор, с которым микроконтроллеру предстоит работать в дальнейшем. Однако при слишком «резвом» управляющем компьютере, формирующем сигналы недостаточной длительности, на время программирования придется установить более высокочастотный резонатор, не превышая, конечно, допустимой для данного микроконтроллера частоты. Другой вариант — подать тактовые импульсы нужной частоты на вывод XTAL1 от внешнего генератора, оставив XTAL2 свободным.
Чертежи печатной платы рассматриваемого адаптера и схема расположения на ней элементов показаны на рис. 9. Плата двусторонняя из фольгированного стеклотекстолита толщиной 1,5 мм.

Диаметр контактных площадок с обратной стороны преднамеренно увеличен, что уменьшает риск «промазать», сверля отверстия с лицевой стороны. Размеры платы позволяют разместить ее внутри пластмассового корпуса вилки DB25M (ХР1), как показано на фотографии рис. 10.
Плату вставляют ребром между рядами выводов вилки и припаивают каждый из них к соответствующей контактной площадке. Контакты 3 и 11, 2 и 12 соединяют перемычками из изолированного провода. Выводы микросхемы DD1 (кроме 10—12, 14, 18 и 20) перед монтажом отгибают. Оставленные в исходном состоянии вставляют в отверстия и припаивают к контактным площадкам с обратной стороны платы, отогнутые — к прямоугольным площадкам со стороны установки микросхемы. Конденсатор С1 и резистор R1 —для поверхностного монтажа, хотя при необходимости можно применить и обычные малогабаритные. Светодиод, установленный со сороны, противоположной микросхеме, должен быть виден через специально просверленное в корпусе разъема отверстие.
Адаптер для программирования микроконтроллеров семейства AVR может быть упрощен путем исключения из него буферной микросхемы (DD1 на рис. 8) и соединения перемычками контактных площадок входов ее элементов с соответствующими выходными (2 с 18, 3 с 17, 4 с 16 и т. д.). Естественно, вероятность сбоев при программировании при этом возрастет.
Схема еще одного предельно упрощенного варианта адаптера показана на рис. 11. Она аналогична использованной в отладочной плате для микроконтроллера AT90S2313, выпускаемой фирмой Dontronics под названием DT-006.
Среди микроконтроллеров фирмы Atmel имеются относящиеся по структуре и системе команд к все еще популярному семейству MCS-51 и сравнительно дешевые АТ89С1051, АТ89С2051 и АТ89С4051. Их широкому распространению среди радиолюбителей препятствует одно — сравнительная сложность адаптера программирования. Дело в том, что интерфейс программирования этих микроконтроллеров — своего рода переходная ступень между параллельным и последовательным. Число задействованных в программировании выводов вынуждено ограничено, так как не может превышать общего числа выводов микросхемы, но все-таки остается значительно большим, чем при истинно последовательным интерфейсе.
Стандартный, рекомендуемый фирмой-изготовителем адаптер для этих микроконтроллеров построен на семи микросхемах средней степени интеграции. Его схему и описание (документ AN285) можно найти на Интернет-сайте фирмы по адресу http://www.atmel.com/dyn/resources/prod_documents/DOC0285.PDF или в переведенном на отечественную элементную базу виде в [5].

Более простой адаптер предложен немецким радиолюбителем DL2TM, его схема показана на рис. 12. Розетка XS1 адаптера аналогична устанавливаемой на принтерах и соединяют ее с LPT-портом компьютера стандартным «принтерным» кабелем. Программируемую микросхему вставляют в панель XS2. Команды и данные для программирования поступают от компьютера двумя потоками на входы регистров-преобразователей последовательного кода в параллельный DD1 и DD2. Коммутатор DD3 поочередно подает на входные линии порта старшую и младшую четверку разрядов ответных сообщений микроконтроллера.
Адаптер питают напряжением +12 В от внешнего источника. С помощью стабилизатора DA1 получают напряжение +5 В для питания микросхем, а ключи на транзисторах VT1—VT4 управляют уровнем напряжения на входе микроконтроллера, переводящем его в режим программирования.

Чертеж печатной платы этого адаптера приведен на рис. 13. Перемычки на стороне расположения компонентов навесные (из отрезков луженого провода). Если имеется возможность изготовить двустороннюю плату, их можно сделать печатными.

Адаптер готов, что дальше?
После того, как адаптер для подключения к компьютеру программируемой микросхемы готов, желательно его проверить. Если он рассчитан на подключение к СОМ-порту компьютера, воспользуйтесь программой ТСОМ, о порядке ее использования для проверки одного из вариантов адаптера SI Prog можно прочитать в [4].

Другие адаптеры проверяют аналогичным образом. Нужно лишь, как сказал герой кинофильма «С легким паром», «мыслить логически» и, проанализировав схему адаптера, представить себе, какие значения должно принимать напряжение на том или ином гнезде панели программируемой микросхемы при том или ином состоянии линий порта.
Теперь остается найти подходящую «программу программирования», которая, будучи запущенной на компьютере, возьмет на себя управление адаптером и формирование всех нужных сигналов на выводах программируемой микросхемы.

Подобные программы бывают двух видов. Простейшие лишь реализуют алгоритм, нужный для загрузки кода в микроконтроллер одного или нескольких очень похожих типов. Обычно бывает достаточно, запуская такую программу или отвечая на ее запрос, указать имя файла с исходными данными. Все остальное будет сделано автоматически. Пользователю не предоставлено никаких дополнительных возможностей, иногда невозможно даже прочитать записанное и сверить его с исходными данными.
Как правило, эти программы написаны их авторами лишь для того, чтобы запрограммировать недавно выпущенную (или ту, с которой пришлось столкнуться впервые) микросхему. Для опытного программиста это иногда проще, чем искать готовую программу. Однако посторонний пользователь подобных программ рискует столкнуться с проблемами и дефектами, которые автор программы в свое время не обнаружил и не исправил, а сделать это без его участия практически невозможно.
Нужно сказать, что фирмы—изготовители микроконтроллеров тоже распространяют (в том числе на справочных компакт-дисках и на своих Интернет-сайтах) простые программы для их программирования, либо включают их в состав систем автоматизированной разработки программного обеспечения. Позволяя потенциальным потребителям быстрее освоить новый товар, это способствует увеличению спроса. Достоинство «фирменных» программ — строгое соблюдение всех предписанных режимов программирования и быстрое обновление при выявлении каких-либо дефектов в старых версиях. Недостаток — они работают, как правило, только с фирменным же (или рекомендованным фирмой) адаптером, который предлагается купить и весьма недешево. Справедливости ради нужно отметить, что многие фирмы (Atmel и Microchip в том числе) публикуют схемы своих адаптеров, не делая из них секрета. Именно к таким относятся некоторые из тех, о которых шла речь в предыдущих разделах.
Другая категория «программ программирования» — универсальные, способные работать с адаптерами различных типов и программировать большое число разнообразных микросхем памяти и микроконтроллеров. Универсальные программы снабжены, как правило, развитым сервисом и очень удобны для пользователя. Очень хорошо, если автор программы «поддерживает» ее, постоянно устраняя не замеченные ранее ошибки и расширяя список программируемых микросхем и пригодных для них адаптеров.
Из универсальных программ, распространяемых через Интернет бесплатно, наиболее популярны PonyProg и IC-PROG. Сравнивать их довольно сложно — каждая имеет свои особенности, которые кто-то сочтет достоинствами, а кто-то — недостатками. Поэтому перейдем к рассмотрению конкретных программ и способов работы с ними.

Источник

Теперь вы знаете какие однокоренные слова подходят к слову Как написать программу для программатора, а так же какой у него корень, приставка, суффикс и окончание. Вы можете дополнить список однокоренных слов к слову "Как написать программу для программатора", предложив свой вариант в комментариях ниже, а также выразить свое несогласие проведенным с морфемным разбором.

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



Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *