Инструменты для изучения пособия

Инструменты для изучения пособия

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

Итак, к переводу.

Аппаратная часть

Один микроконтроллер сам по себе практически бесполезен. Чтобы хоть что-то заработало, нужна схема, в которой бы применялся микроконтроллер, например, отладочный комплект. В магазинах для радиолюбителей можно найти отладочные платы, которые содержат все необходимое: кнопки, светодиоды, штекерные разъемы и т.д. Зачастую такие платформы, кроме места для микроконтроллера (а то и не для одного. — прим. переводчика) оснащены еще ISP-программатором (об нем ниже).

Готовые сборочные платы и стартовые наборы

STK500

STK500 — это стандартная отладочная платформа для микроконтроллеров AVR непосредственно от  Atmel. Имеет ISP-программатор и готова к применению, очень распространена среди программистов и, конечно, поддерживается Atmel. Для тех, кто планирует серьезно разрабатывать на AVR, платформа STK500 будет хорошей инвестицией.

Стоимость этой платформы около 80 евро. Дополнительно нужно будет приобрести подходящий источник питания.

Pollin ATMEL Evaluations-Board Version 2.x

На сайте немецкого интернет-магазина Pollin Electronic можно найти набор стоимостью около 15 евро, из которого можно собрать качественную отладочную платформу. В комплекте поставки имеется руководство по сборке, плата и необходимые детали. Микроконтроллер(ы) и источник питания придется приобрести отдельно. В этой платформе применяется простой ISP-программатор.

Pollin Funk-AVR-Evaluationsboard v1.x

С этим набором можно использовать модули передачи данных такие, как RFM12, RFM01 или RFM02. Учебник по этим радиомодулям на немецком языке можно найти здесь.

Arduino

Платформы семейства Arduino предлагают различные микроконтроллеры, например, ATmega328P (16МГц), и могут быть запрограммированы с помощью последовательного USB соединения. Arduino платформы можно использовать также и без среды разработки Arduino-IDE.

Другие

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

Самодельная отладочная платформа

(Прим. переводчика.) В этом месте в оригинальном пособии включено описание самодельной отладочной платформы (базовой схемы подключения микроконтроллера). Я вынес эту информацию в отдельную статью, чтобы, во-первых, не перегружать данный раздел и, во-вторых, выделить эту информацию как необязательную для чтения в случае наличия одного из вышеописанных наборов. По этой ссылке Вы найдете описание самодельной базовой схемы подключения микроконтроллера.

ISP-программатор (In-System-Programmer / Внутрисхемный программатор)

Еще один необходимый инструмент — это ISP-программатор (внутрисхемный программатор), посредством которого программы записываются в микроконтроллер.

Существует множество различных вариантов программаторов, которые можно найти в магазинах.

ISP-программатор подключается обычно к параллельному порту компьютера и к 6-штырьковому разъему отладочной платформы.

Другое

Обычно рекомендуется покупать больше одного микроконтроллера, ведь предугадать, когда Ваш микроконтроллер выйдет из строя, невозможно. Кроме того, неплохо иметь под рукой более одного микроконтроллера, чтобы иметь возможность проверить, что ошибки в поведении системы кроются в программе, а не в микроконтроллере (или наоборот).

Совет: цены на микроконтроллеры очень сильно разнятся. Нередко один и тот же тип микроконтроллеров стоит от 3 до 8 евро. Иногда более новые или более функциональные модели можно купить даже дешевле, например, ATmega8A вместо ATmega8, а ATmega328 вместо ATmega8A. В любом случае, предварительно поискать цены в интернете будет полезно. То же касается и ISP-программатора.

Для следующих глав этого пособия нам понадобятся следующие компоненты:


Часть 2 (Основы ввода/вывода)

  • 6 светодиодов на 5 мм (стандартные светодиоды любого цвета),
  • 5 кнопок,
  • 6 резисторов по 1 кОм,
  • 5 резисторов по 10 кОм.

Часть 6 (ЖК-дисплей)

  • 1 переменный резистор на 10 кОм,
  • 1 HD44780-совместимый ЖК-дисплей, например, 4×20 или 2×16 символов,
  • если у ЖК-дисплея есть еще и фоновая подсветка, то необходим еще дополнительный входной резистор. Дополнительную информацию стоит поискать в спецификации дисплея. В любом случае, 50 Ом должно хватить; в худшем случае подсветка будет чуть-чуть тусклой.

Часть 10 (UART)

  • 1  преобразователь сигналов MAX232, MAX232A или MAX202;
  • 5 конденсаторов:
    • для MAX232: электролитические конденсаторы по 1 мкФ.
    • для MAX202 или MAX232A: керамические или электролитические конденсаторы по 100 нФ.
Конденсаторы могут быть большей емкости. Если Вы не уверены, какой преобразователь MAX232 у Вас имеется (с литерой А или без нее), то используйте большие конденсаторы на 1 мкФ; они применимы как для MAX232A, так и для MAX202.
  • 1 9-штырьковое гнездо
  • 1 подходящий модем-кабель (не нуль-модем!)

Часть 14 (ADC / АЦП)

  • 1 конденсатор 100 нФ,
  • 1 переменный резистор 10 кОм,
  • при желании температурные или световые сенсоры и дополнительно по одному обычному резистору на каждый сенсор с тем же сопротивлением, что и соответствующий сенсор.

Часть 17 (Регистр сдвига)

  • 2 регистра сдвига 74HC595
  • несколько светодиодов с подходящими резисторами, чтобы можно было подключить к регистру сдвига

Часть 19 (7-сегментный индикатор)

  • 4 семисегментных индикатора с общим анодом,
  • 4 p-n-p-транзистора BC328,
  • 4 резистора по 1 кОм,
  • 7 резисторов по 100 Ом.

Программное обеспечение

В этом пособии рассматривается программирование микроконтроллеров только на ассемблере, т.к. язык ассемблера лучше всего помогает понять принципы работы микроконтроллеров.

Ассемблер

Для начала нужен компилятор для преобразования программ, написанных на языке ассемблера, в машинный код. Пользователям Windows подойдет AVR-Studio от самой фирмы Atmel. Эта среда помимо компилятора имеет еще и симулятор, с помощью которого можно тестировать программы еще до загрузки в «живой» микроконтроллер.

Под Linux есть такие программы как tavrasm, avra или gavrasm.

Для загрузки с помощью ISP-программатора скомпилированных «.hex»-файлов в микроконтроллер можно использовать следующие программы: yaap под Windows, uisp под Linux, avrdude для обеих ОС.

C

Желающие программировать на Си могут использовать бесплатный GNU-C-компилятор AVR-GCC (под Windows «WinAVR»). Этот Си-компилятор можно интегрировать и в AVR-Studio. На сайте оригинала лежит пособие по AVR-GCC (на немецком. — прим. переводчика).

Для тех, кто хочет одинаково бесплатно программировать и под Windows, и под Linux, тому стоит обратить внимание на IDE Eclipse for C/C++ Developers и на плагин AVR-Eclipse Plugin. На сайте оригинала данного пособия можно найти также пособие по AVR Eclipse (на немецком языке. — прим. переводчика).

Еще для Windows и Linux доступна среда разработки под названием Code::Blocks. В этой среде можно создавать «AVR проекты» без каких-либо дополнительных плагинов.

Pascal

Для любителей языка Pascal подойдет AVRPascal (страница на немецком языке. — прим. переводчика). Этот компилятор можно использовать бесплатно для компиляции кода объемом до 4 кБ. В нем есть готовые библиотеки для управления сервомашиноками, для последовательных интерфейсов (COM, TWI, SPI), для использования таймера, ЖК-дисплеев и т.д.

Basic

Фанатам языка Basic для полноценной работы с микроконтроллерами AVR придется приобрести среду разработки Bascom AVR ($69, доступна демоверсия).

Forth

Желающим иметь прямой интерактивный доступ к микроконтроллеру стоит обратить внимание на интерпретатор команд AmForth. Для использования этого интерпретатора необходимо последовательное подключение (Max232), т.е. минимальную схему подключения микроконтроллера придется немного дополнить.

Литература

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

Документация по микроконтроллеру (первая ссылка) содержит важнейшую для программиста информацию: расположение и нумерация выводов, сведения о питании микроконтроллера, способы подключениея, память, использование компонентов ввода/вывода и многое другое.

В документе с системой команд описаны все ассемблерные команды AVR-микроконтроллеров с пояснениями.