Применение стартовых наборов позволяет разработчику быстро, минуя этап макетирования, приступить к практической разработке приложений. На платах, входящих в состав стартовых наборов, установлены необходимые для работы микроконтроллера элементы "обвязки" (стабилизатор напряжения питания, тактовый генератор или кварцевый резонатор, цепь сброса, средства для организации внутрисхемного программирования микроконтроллера), а также часто применяемые на практике узлы микроконтроллерных устройств (средства ввода и индикации, формирователи линии RS-232, интерфейс с внешним ОЗУ и пр.). Все порты микроконтроллеров выведены на разъемы и могут быть соединены с внешними устройствами.
В некоторых случаях стартовые наборы разработчика могут использоваться как готовые блоки в составе проектируемой аппаратуры.
Этот стартовый набор разработчика был первым аппаратным средством, выпущенным фирмой Atmel для поддержки тогда еще нового семейства микроконтроллеров - AVR. MCU00100 позволял программировать и отлаживать приложения для микроконтроллеров AT90S1200, AT90S2313, AT90S2323, AT90S4414 и AT90S8515 (кроме перечисленных микроконтроллеров AVR MCU00100 поддерживал кристаллы семейства AT89S c возможностью внутрисхемного программирования - AT89S8252 и AT89S53). Сейчас MCU00100 снят с производства.
Следующей модификацией стартовых наборов разработчика для микроконтроллеров AVR явился STK200. Этот набор разработчика пользовался заслуженной популярностью и был широко распространен среди разработчиков. В настоящее время STK200 снят с производства, и заменен более совершенными средствами.
В отличие от MCU00100, у которого функция программатора реализована на самой плате, STK200 состоит из двух частей - отладочной платы и загрузочного кабеля. Причем загрузочный кабель может использоваться отдельно от STK200 в качестве внутрисхемного программатора. Загрузочный кабель подключается к LPT-порту персонального компьютера. Для подключения загрузочного кабеля на плате STK200 предусмотрен 10-контактный разъем. Питание загрузочного кабеля осуществляется от целевой платы (в нашем случае от STK200).
Встроенный стабилизированный источник питания позволяет специальным переключателем устанавливать напряжение питания целевого микроконтроллера 5 В или 3,3 В.
Внутрисхемное программирование на STK200 осуществляется под управлением программы AVR ISP версий 2.4 - 2.65 (последующие версии AVR ISP не поддерживают STK200 и предназначены для работы со стартовым набором STK100). Под управлением AVR ISP v2.65 STK200 поддерживает следующие типы микроконтроллеров AVR (а также их модификации с напряжением питания 3,3 Вольта) : AT90S1200, AT90S2313, AT90S2323, AT90S2333, AT90S2343, AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90S8535, ATtiny22. STK200 комплектуется микроконтроллерами AT90S2323-10PC и AT90S8515-8PC.
На плате STK200 предусмотрены панели для установки микроконтроллеров в корпусах DIP с числом выводов 8, 20, 28, 40. Для тактирования микроконтроллеров на плате установлен кварцевый резонатор на 4МГц. Кроме того, установленный на плате специальный переключатель позволяет разорвать цепь внешней синхронизации для случаев, когда микроконтроллер (например AT90S1200) тактируется от внутреннего RC-генератора. Некоторые микроконтроллеры AVR (например AT90S4414, AT90S8515) имеют внешнюю мультиплексированную шину адреса/данных для подключения внешнего ОЗУ. Для этого на плате STK200 предусмотрены панели для установки внешнего ОЗУ в корпусе DIP28 и регистра-защелки младшего байта адреса в корпусе DIP20.
На адресное пространство внешнего ОЗУ могут быть отображены и другие устройства, например модуль жидкокристаллического индикатора с контроллером HD44780. Для подключения ЖКИ на плате STK200 предусмотрены соответствующий разъем и переменный резистор для регулировки контраста.
Смонтированная на плате STK200 схема контроля понижения напряжения питания (BrownOut Protection Circuit) вырабатывает сигнал сброса (Reset) микроконтроллера при снижении напряжения питания до установленного порога. При медленном снижении напряжения питания (например при выключении питания) микроконтроллеры AVR могут самопроизвольно войти в режим записи EEPROM. При этом могут быть потеряны данные, сохраненные ранее в ячейке EEPROM с нулевым адресом. Чтобы этого не произошло, надо обеспечить переход микроконтроллера в состояние сброса при выключении питания. Поэтому применение BrownOut Protection для микроконтроллеров AVR де-факто является обязательным. В зависимости от значения напряжения питания порог срабатывания BrownOut Protection может быть задан специальным переключателем.
Кроме рассмотренных выше, на плате STK200 установлены следующие типовые узлы микроконтроллерной системы:
Этот набор по своему составу и возможностям идентичен рассмотренному выше STK200, но предназначен для макетирования и отладки устройств только на базе микроконтроллера AТmega103. STK300 комплектуется микроконтроллером Atmega103L-4AC, распаянным на специальном переходнике для удобства его замены.
Для создания приложений на основе платы STK300 фирма Atmel предлагает утилиту Application Builder. Пользуясь Application Builder, разработчик может с помощью графического интерфейса сконфигурировать все узлы микроконтроллера ATmega103 и сохранить свои действия в виде процедур инициализации на языках Ассемблера или С.
Загрузочный кабель STK300 может также использоваться отдельно в качестве внутрисхемного программатора.
Набор предназначен для макетирования и отладки устройств на базе микроконтроллеров семейства ATtiny и AT90. Поддерживаются следующие микроконтроллеры: ATtiny10, ATtiny11, ATtiny12, ATtiny15, ATtiny22, Attiny28, AT90S2323, AT90S2333, AT90S2343, AT90S4433. В состав набора входят кристаллы АТtiny11-6PC и AT90S2343-10PC.
STK100 работает под управлением программы AVR ISP v3.31, которая обеспечивает связь с персональным компьютером как через LPT-, так и через COM-порт. STK100 также может быть использован в качестве внешнего внутрисхемного программатора для разрабатываемых устройств. В настоящее время STK100 снят с производства.
Из всех стартовых наборов разработчика, предлагаемых фирмой Atmel, наиболее универсальным устройством является STK500. Универсальность STK500 позволяет использовать его как отладочную плату, как параллельный программатор (для всех типов микроконтроллеров AVR), и как последовательный внутрисхемный программатор (для микроконтроллеров AVR, имеющий режим последовательного внутрисхемного программирования).
Это устройство поддерживает все выпускающиеся на сегодняшний день микроконтроллеры AVR (для поддержки микроконтроллеров, выпускаемых только в корпусах TQFP64, например ATmega103 или ATmega128, нужна плата расширения STK501).
Функции внутрисхемного программирования и управления STK500 реализованы на двух микроконтроллерах : AT90S1200-12SC и AT90S8535-8AC. Кроме них на плате STK500 смонтированы следующие устройства:
Для тактирования отлаживаемых микроконтроллеров на плате STK500 предусмотрены два источника тактовых сигналов.
Один из них представляет собой генератор, построенный на инвертирующих вентилях с кварцевой стабилизацией частоты. Пользователь имеет возможность задавать частоту этого генератора, устанавливая кварцевый резонатор на необходимую частоту в специальную панель.
Второй источник тактовых сигналов представляет собой выход установленного на плате STK500 управляющего микроконтроллера AT90S8535-8AC. Частота этого тактового сигнала может быть задана программно.
Переключатель OSCSEL служит для выбора одного из источников тактового сигнала для микроконтроллера. Если же в качестве тактового необходимо использовать внутренний RC-генератор микроконтроллера, то внешний тактовый сигнал должен быть отключен джампером XTAL1.
В отличие от STK200 и STK300, на плате STK500 не предусмотрено подключение к целевому микроконтроллеру внешнего ОЗУ.
Управление STK500 происходит через COM-порт персонального компьютера. Управляющая программа является составной частью AVR Studio и запускается из меню Tools -> STK500/AVRISP/JTAGICE. Кроме STK500 эта управляющая программа поддерживает такие аппаратные средства отладки, как внутрисхемный программатор ATAVRISP и внутрисхемный эмулятор JTAGICE. Подробнее возможности управляющей программы будут рассмотрена ниже при обзоре средств внутрисхемного программирования. Здесь мы ограничим описание только функциями, уникальными для STK500. На рис. 4.14 представлено окно программы, управляющей STK500.
Рис. 5.1. Окно управления параметрами STK500
Закладка Board служит для установки параметров STK500:
STK500 поддерживает различные режимы программирования целевых микроконтроллеров: режим внутрисхемного последовательного программирования, и два режима программирования с использованием повышенного программирующего напряжения - параллельный и последовательный. Выбор режима программирования осуществляется в окне управления параметрами STK500 при выбранной закладке Program.
STK500 также может быть использован в качестве внутрисхемного программатора для микроконтроллеров, установленных в целевом устройстве. Для этого надо десятижильным плоским кабелем соединить целевое устройство с разъемом ISP10PIN на плате STK500.
Кроме того, в AVR Studio предусмотрена возможность обновления прошивки (firmware) памяти программ управляющих микроконтроллеров (Revision Upgrade). Обновленные версии firmware включаются в состав AVR Studio как прикладное программное обеспечение. При запуске управляющая программа проверяет связь COM-порта персонального компьютера с STK500, и в случае его присутствия запрашивает версию firmware. Если в AVR Studio содержится более новая версия прошивки, управляющая программа предлагает обновить firmware путем перепрограммирования управляющих микроконтроллеров. Для входа в режим перепрограммирования надо, чтобы в момент включения питания на плате STK500 была нажата кнопка Program.
Для поддержки микроконтроллеров типа ATmega103 и ATmega128 фирма Atmel предлагает устройство STK501, которое устанавливается в разъемы расширения STK500 как мезонинная плата. На плате STK501 размещены:
Кристаллы ATmega103 и ATmega128 имеют больше портов ввода-вывода, чем все остальные микроконтроллеры AVR, и, соответственно, больше, чем поддерживает STK500. Поэтому порты E, F, G, а также некоторые управляющие сигналы, которые есть только у ATmega103 и ATmega128, выведены на разъемы на плате STK501
Комбинация STK500 и STK501 поддерживает для ATmega103 и Atmega128 как режим внутрисхемного последовательного программирования, так и режим параллельного программирования с использованием повышенного программирующего напряжения.
Как уже говорилось, стартовый набор разработчика STK500 не поддерживает работу микроконтроллера с внешним ОЗУ. Разработчики STK501 исправили этот недостаток, предусмотрев на плате STK501 посадочное место под микросхему ОЗУ объемом 128 k x 8 в корпусах TSOP32 или SOJ32, и регистр-защелку младшего байта адреса. При этом STK501 без установленного микроконтроллера может служить платой расширения для STK500, позволяющей создавать и отлаживать проекты для микроконтроллеров AT90S8515 или ATmega161 с использованием внешней памяти данных.