Atmel: Аппаратно-программные средства поддержки разработок на основе микроконтроллеров AVR фирмы Atmel

### Аппаратно-программные средства поддержки разработок на основе микроконтроллеров AVR фирмы Atmel

Золотухо Р.Н.
Приложение N9
Гребнев В.В. Микроконтроллеры семейства AVR фирмы Atmel.-M.:
ИП Радиософт, 2002 -176с.:ил
ООО "ЭФО"

- Программные средства поддержки разработок
- Создание и трансляция проекта
- Режимы работы отладчика
- Отладка проекта при помощи программного симулятора
- Аппаратные средства поддержки разработок
- Стартовые наборы разработчика
  - MCU00100
  - STK200
  - STK300
  - STK100
  - STK500/STK501
- Внутрисхемные эмуляторы
  - ICEPRO/ICE10
  - megaICE/ICE30/ICE50
  - ICE200
  - JTAGICE
- Внутрисхемные программаторы
  - AT90ISP
  - ATAVRISP
- Прочие средства внутрисхемного программирования микроконтроллеров AVR
- Специализированные наборы разработчика

Профессиональную разработку современных микроконтроллерных устройств невозможно представить без использования средств поддержки. Фирма Atmel уделяет большое внимание вопросам технической поддержки, предлагая разработчикам как программные, так и различные аппаратные средства. Данный раздел представляет собой обзор программных и аппаратных средств поддержки разработок для микроконтроллеров AVR, предлагаемых Atmel Corp.

Программные средства поддержки разработок

Популярность микроконтроллеров AVR способствовала тому, что многие фирмы-производители программных средств поддержки микроконтроллеров (ассемблеров, компиляторов, отладчиков) создали программные пакеты поддержки AVR. Данный раздел содержит обзор программных средств, предлагаемых самой фирмой Atmel, и начинается со знакомства с основным программным пакетом - AVR Studio.

AVR Studio - это интегрированная отладочная среда разработки приложений ( IDE ) для микроконтроллеров семейства AVR (AT90S, ATmega, ATtiny) фирмы Atmel.

IDE AVR Studio содержит:

- транслятор языка ассемблера (Atmel AVR macroassembler);
- отладчик (Debugger);
- программное обеспечение верхнего уровня для поддержки внутрисхемного программирования (In-System Programming, ISP).

Отладчик AVR Studio поддерживает все типы микроконтроллеров AVR и имеет два режима работы: режим программной симуляции и режим управления различными типами внутрисхемных эмуляторов (In-Circuit Emulators) производства фирмы Atmel. Важно отметить, что интерфейс пользователя не изменяется в зависимости от выбранного режима отладки.

Отладочная среда поддерживает выполнение программ как в виде ассемблерного текста, так и в виде исходного текста языка С. Отладчик AVR Studio по формату объектного файла совместим с ассемблерами фирм Atmel (AVR Assembler) и IAR Systems (EWA90-Assembler - ftp://www.atmel.com/pub/atmel/ewa90-a.zip). По формату объектного файла ubrof AVR Studio совместим с компилятором С фирмы IAR Systems (ICCA90 C Compiler - http://www.iar.com/), по формату coff - с компиляторами С фирм Imagecraft (ICCAVR и ICCtiny - http://www.imagecraft.com/software/index.html) и HP Infotech (CodeVisionAVR - http://infotech.ir.ro/).

AVR Studio распространяется свободно, его последняя версия всегда доступна на сайте фирмы Atmel ( http://www.atmel.com/atmel/products/prod203.htm).

Создание и трансляция проекта

После запуска AVR Studio для создания нового проекта необходимо в меню Project выбрать команду New. В результате на экране появляется диалоговое окно (рис. 1), в котором необходимо ввести название проекта (Project name) и его расположение (Location). Новый проект удобнее создавать в отдельной папке.

Рис. 1.Окно создания нового проекта

Далее выбирается тип проекта:

- AVR Assembler. Использует встроенный макроассемблер AVR Studio.
- Generic 3D party C compiler. Использует внешний компилятор С, имеющий интерфейс командной строки.

При выборе пункта AVR Assembler после нажатия кнопки OK на экране появляется окно организации проекта (рис. 2), показывающее все связанные с проектом файлы.

Рис. 2. Окно организации проекта

Далее к проекту должен быть добавлен файл программы на языке ассемблера. Это можно сделать разными способами: или в проект добавляется уже существующий файл с расширением .asm, или создается новый.

Для создания нового файла необходимо в этом окне выбрать группу Assembler Files и в меню Project выбрать пункт Add File. В открывшемся окне следует ввести название файла с расширением .asm. Если файл был создан ранее, то его необходимо найти на диске и двойным щелчком мыши занести в строку <Имя файла>.

Созданный (или найденный) таким образом файл будет помещен в группу Assembler Files в окне организации проекта. Подобным же образом можно подключить к проекту и другие ассемблерные файлы, но группа Assembler Files может содержать только один файл, с которого в дальнейшем будет начинаться трансляция проекта. Назовем этот файл входным ассемблерным файлом проекта. Значок этого файла в окне организатора проекта отмечен красной стрелкой вправо, все другие файлы проекта будут отмечены синими стрелками, направленными вниз (рис. 3). Все файлы проекта должны быть включены во входной файл проекта с помощью ассемблерной директивы .include. Для смены входного файла проекта на другой надо установить курсор мыши на нужный файл в окне организации проекта и щелкнуть правой кнопкой мыши. В открывшемся всплывающем окне надо указать этот файл как Assembler entry file.

Для того, чтобы в тексте ассемблерных файлов вместо адресов внутренних регистров микроконтроллера использовать их символические имена, нужно подключить к проекту файл, содержащий назначения символических имен всех регистров выбранного микроконтроллера (обычно его называют включаемым файлом), например m103def.inc. Включаемые файлы входят в прикладное программное обеспечение AVR Studio и при инсталляции помещаются в папку Appnotes в директории, где установлен AVR Studio.

Рис. 3. Окно организации проекта с подключенными файлами проекта

Для редактирования исходного текста программы необходимо в папке Assembler Files в окне организации проекта открыть нужный файл с расширением .asm. В открывшееся окно для редактирования файла можно с клавиатуры или через буфер компьютера ввести текст программы на языке ассемблера (рис. 4).

Рис. 4. Окно редактирования программы на языке ассемблера

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

- Object
- Generic
- Intel Intellec 8/MDS (Intel Hex)
- Motorola S-Record

Для отладки в AVR Studio необходим файл в формате Object (объектный файл). Однако большинство программаторов в качестве входных используют файлы в формате Intel Hex.

Далее осуществляется трансляция программы и проверка правильности её написания. Выбирается пункт Assemble в меню Project. Открывшееся окно Project Output содержит сообщения ассемблера. В это окно выводится информация о количестве слов кода и данных, о наличии ошибок, и другая информация (рис. 5).

Рис.5. Окно сообщений ассемблера

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

В результате трансляции создается выходной файл в указанном формате. Если исходный ассемблерный текст содержал сегмент энергонезависимых данных (объявленный директивой .eseg), то при трансляции будет создан также файл с расширением .eep. Этот файл содержит данные для внутренней EEPROM микроконтроллера и имеет тот же формат, что и выходной файл.

Если в результате трансляции не выдается сообщений об ошибках, можно приступать к отладке проекта.

Режимы работы отладчика

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

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

Отметим еще раз, что независимо режима работы отладчика, интерфейс AVR Studio не меняется. При переключении между различными режимами отладки все параметры среды сохраняются. Информация о текущем режиме отладчика выводится в строке состояния AVR Studio.

Отладка проекта при помощи программного симулятора

Для запуска отладчика необходимо выполнить процедуру Build and run, которая вызывается при нажатии на соответствующую кнопку на панели управления. Процедура Build and run выполняется в два этапа. Сперва происходит трансляция входного ассемблерного файла, при которой независимо от установок проекта, кроме выходного файла заданного формата генерируется и объектный файл. Затем этот объектный файл загружается в отладчик.

Для совместимости с прежними версиями в AVR Studio предусмотрен еще один вариант запуска отладчика - загрузка полученного в результате трансляции объектного файла (File -> Open) . Но при этом пользователь не имеет возможности редактировать исходный текст программы непосредственно в отладчике. Кроме того следует помнить, что для того, чтобы транслятор сгенерировал необходимый для запуска отладчика объектный файл, нужно в окне установок проекта указать в качестве формата выходного файла транслятора Object.

При первом для проекта запуске отладчика вызывается окно выбора целевого микроконтроллера (рис. 6).

Рис. 6. Окно выбора целевого микроконтроллера

В этом окне из списка выбирается нужный микроконтроллер (Device), например ATmega103, и тактовая частота процессорного ядра (Frequency). Опции Memory и Architecture при выборе стандартного устройства в окне не используются. Это же окно может быть вызвано в процессе работы отладчика (Options -> Simulator Options).

Экран AVR Studio в режиме отладке представлен на рис. 7.

Рис. 7. Экран AVR Studio в режиме отладки

При выполнении процедуры Build and run (или при загрузке объектного файла) автоматически открывается окно исходного текста исполняемой микроконтроллером программы В окне отображается код, который выполняется в отладочном окружении (эмуляторе или программном симуляторе).

После выбора опций симулятора в левом поле окна ассемблерной программы появляется желтая стрелка, указывающая позицию программного счетчика микроконтроллера (рис. 8). Этот указатель всегда находится на строке, которая будет выполнена в следующем цикле.

Рис. 8. Окно исходного текста программы в режиме отладки

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

В AVR Studio для отладки программы предусмотрены две команды пошагового режима: Step Over и Trace into. Разница между ними в том, что команда Step Over не работает в подпрограммах. С помощью команд пошагового режима можно проследить изменения значений в регистрах устройств ввода/вывода, памяти и регистрового файла. К командам шагового режима относятся также Auto Step и Multi Step. Выбрав в меню Debug пункт Debug Options, можно установить в открывшемся окне параметры режимов Auto Step и Multi Step, а также некоторые другие опции симулятора, речь о которых пойдет ниже.

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

Для установки точки останова в AVR Studio служит пкнкт меню Breakpoints -> Toggle Breakpoint. Точка останова ставится в строке, отмеченной курсором (рис. 9).

Рис. 9. Точка останова в окне исходного текста программы в режиме отладки

Красная отметка в левом поле окна исходного текста программы показывает установленную точку останова.

В процессе отладки также можно выбрать пункт меню Debug -> Run To Cursor. При выборе этого пункта исполняемый код будет выполняется до достижения команды, обозначенной курсором. При этом, если отладчик обнаруживает точку останова, установленную ранее положения курсора, то останов будет выполнен только в случае его разрешения в окне Debug Option, в противном случае выполнение не приостанавливается. Если команда, обозначенная курсором, не достигается, отладчик продолжает исполнять код программы до тех пор, пока исполнение не будет прервано пользователем. Поскольку режим Run To Cursor зависит от позиции курсора, он доступен только при активном окне исходного текста.

Для остановки исполнения программы пользователем служит команда Break. В состоянии останова эта команда недоступна.

При отладке с использованием точек останова, или если адрес останова указан курсором в окне исходного текста, модификация информации во всех окнах происходит только при достижении останова (или при прекращении исполнения программы пользователем).

Пункт меню Debug -> Reset выполняет сброс микроконтроллера. Если программа при этом выполняется, то ее исполнение будет остановлено. После сброса информация во всех окнах модифицируется.

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

Регистровый файл микроконтроллера AVR отображается в окне Registers (рис. 10). Если в процессе выполнения программы в очередном цикле значение какого-либо регистра изменится, то этот регистр будет выделен красным цветом. При этом, если в следующем цикле значение регистра останется прежним, то цветовое выделение будет снято. Такое же цветовое выделение реализовано в окнах устройств ввода/вывода, памяти и переменных.

Рис. 10. Окно состояния регистрового файла.

Состояние встроенных периферийных устройств микроконтроллера отображено в окне I/O Window (рис. 11)

Рис. 11. Окно состояния устройств ввода вывода

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

Рис. 12. Развернутый порт PORTB в окне устройств ввода/вывода

Другим способом задания входного воздействия на микроконтроллер в режиме симулятора является использование внешних файлов входных воздействий. Формат файла входного воздействия очень прост:

`000000000:00
000000039:01
000000040:00
9999999999:FF`

Здесь значение, указанное после разделителя < : > - это шестнадцатеричное представление сигналов, воздействующих на порт микроконтроллера. Значение, указанное до разделителя - это десятичный номер цикла (с момента сброса микроконтроллера), в котором указанное воздействие поступает на выводы порта микроконтроллера. Файл входного воздействия должен заканчиваться строкой с заведомо большим номером цикла, в противном случае будет выдано сообщение об ошибке. Для подключения файла входного воздействия служит пункт меню Options -> Simulator Port Stimuli. В открывшемся окне нужно указать порт микроконтроллера, на который нужно подавать воздействие, и файл этого воздействия. Пользователь может создавать файлы воздействий, записывать изменения значений на выходах портов микроконтроллера в файл (формат этого файла тот же, что и у файла входных воздействий). Для записи служит пункт меню Options -> Simulator Port Logging. В открывшемся окне нужно указать порт микроконтроллера и имя файла для записи. Записываемый файл будет удаляться и создаваться вновь при каждом выполнении сброса микроконтроллера (Debug -> Reset). Подключать файл входного воздействия или задавать имя файла для записи пользователь должен сам при каждом запуске симулятора.

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

Рис. 13. Окно просмотра переменных

Для индикации состояния программного счетчика, указателя стека, содержимого регистра статуса SREG и индексных регистров X, Y и Z в процессе отладки программы предназначено окно Processor (рис. 14).

Рис. 14. Окно состояния процессорного ядра

В этом же окне отображается текущее время выполнения программы и тактовая частота ядра микроконтроллера.

Просмотр ячеек памяти программ, памяти данных, EEPROM и регистров портов ввода/вывода в ходе исполнения программы возможно также с помощью диалогового окна Memory. Падающее меню диалогового окна позволяет выбрать один из четырех массивов ячеек памяти: Data, IO, Eeprom, Program Memory. Для одновременного просмотра нескольких областей окно Memory может быть открыто несколько раз. Информация в диалоговом окне может быть представлена в виде байтов или в виде слов в шестнадцатеричной системе счисления, а также в виде ASСII - символов (рис. 15).

Рис. 15. Окно просмотра содержимого памяти

В процессе отладки пользователь может инициализировать внутреннее ОЗУ или EEPROM микроконтроллера (например, данными, содержащимися в полученном при трансляции файле .eep), или сохранить содержимое ОЗУ и EEPROM в виде файлов в формате Intel Hex. Для этого служит пункт меню File -> Up/Download Memory.

Для внесения изменений в программу в процессе отладки необходимо редактировать её исходный текст. При попытке запуска симулятора на исполнение программы после редактирования на экране появляется окно, сообщающее об изменении программы и необходимости её компиляции.

Для сохранения проекта необходимо воспользоваться пунктом меню Project -> Close. При закрытии проекта сохраняются все его настройки. Во время следующей загрузки настройки будут автоматически восстановлены.

Работая с программным симулятором пакета AVR Studio, следует помнить, что он пока не поддерживает некоторые режимы работы микроконтроллеров AVR и их периферийные узлы:

- Аналого-цифровой преобразователь;
- Аналоговый компаратор;
- Режим часов реального времени;
- Режим пониженного электропотребления (инструкция "sleep" интерпретируется программным симулятором как "nop" ) ;

Возможно, в последующих версиях AVR Studio поддержка этих узлов и режимов будет реализована.

Как уже говорилось, кроме программного симулятора IDE AVR Studio включает в себя программное обеспечение верхнего уровня для управления аппаратными средствами поддержки разработок. Меню Tools содержит команды запуска управляющих программ. Особенности интерфейса и работы этих программ будут рассмотрены ниже.

Аппаратные средства поддержки разработок

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

- Стартовые наборы разработчика (Starter Kits);
- Внутрисхемные эмуляторы (In-Circuit Emulators);
- Внутрисхемные программаторы (In-System Programmers);
- Специализированные наборы разработчика.

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

Остановимся подробнее на назначении каждого из перечисленных классов и подробнее рассмотрим их состав.

Стартовые наборы разработчика

Применение стартовых наборов позволяет разработчику быстро, минуя этап макетирования, приступить к практической разработке приложений. На платах, входящих в состав стартовых наборов, установлены необходимые для работы микроконтроллера элементы "обвязки" (стабилизатор напряжения питания, тактовый генератор или кварцевый резонатор, цепь сброса, средства для организации внутрисхемного программирования микроконтроллера), а также часто применяемые на практике узлы микроконтроллерных устройств (средства ввода и индикации, формирователи линии RS-232, интерфейс с внешним ОЗУ и пр.). Все порты микроконтроллеров выведены на разъемы и могут быть соединены с внешними устройствами.

В некоторых случаях стартовые наборы разработчика могут использоваться как готовые блоки в составе проектируемой аппаратуры.

MCU00100

Этот стартовый набор разработчика был первым аппаратным средством, выпущенным фирмой Atmel для поддержки тогда еще нового семейства микроконтроллеров - AVR. MCU00100 позволял программировать и отлаживать приложения для микроконтроллеров AT90S1200, AT90S2313, AT90S2323, AT90S4414 и AT90S8515 (кроме перечисленных микроконтроллеров AVR MCU00100 поддерживал кристаллы семейства AT89S c возможностью внутрисхемного программирования - AT89S8252 и AT89S53). Сейчас MCU00100 снят с производства.

STK200

Следующей модификацией стартовых наборов разработчика для микроконтроллеров 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 установлены следующие типовые узлы микроконтроллерной системы:

- Формирователь уровней сигналов интерфейса RS232;
- Регулируемый источник опорного напряжения для встроенного АЦП;
- Восемь кнопок и восемь светодиодов для организации ввода и отображения выходной информации;
- Порты и сигналы управления микроконтроллеров выведены на разъемы и могут быть подключены к внешним устройствам.

STK300

Этот набор по своему составу и возможностям идентичен рассмотренному выше STK200, но предназначен для макетирования и отладки устройств только на базе микроконтроллера AТmega103. STK300 комплектуется микроконтроллером Atmega103L-4AC, распаянным на специальном переходнике для удобства его замены.

Для создания приложений на основе платы STK300 фирма Atmel предлагает утилиту Application Builder ( http://www.atmel.com/atmel/products/prod203.htm). Пользуясь Application Builder, разработчик может с помощью графического интерфейса сконфигурировать все узлы микроконтроллера ATmega103 и сохранить свои действия в виде процедур инициализации на языках Ассемблера или С.

Загрузочный кабель STK300 может также использоваться отдельно в качестве внутрисхемного программатора.

STK100

Набор предназначен для макетирования и отладки устройств на базе микроконтроллеров семейства 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 снят с производства.

STK500 / STK501

Из всех стартовых наборов разработчика, предлагаемых фирмой Atmel, наиболее универсальным устройством является STK500. Универсальность STK500 позволяет использовать его как отладочную плату, как параллельный программатор (для всех типов микроконтроллеров AVR), и как последовательный внутрисхемный программатор (для микроконтроллеров AVR, имеющий режим последовательного внутрисхемного программирования).

Это устройство поддерживает все выпускающиеся на сегодняшний день микроконтроллеры AVR (для поддержки микроконтроллеров, выпускаемых только в корпусах TQFP64, например ATmega103 или ATmega128, нужна плата расширения STK501).

Функции внутрисхемного программирования и управления STK500 реализованы на двух микроконтроллерах : AT90S1200-12SC и AT90S8535-8AC. Кроме них на плате STK500 смонтированы следующие устройства:

- Панели для установки микроконтроллеров в корпусах DIP8, DIP20, DIP28 и DIP40;
- Стабилизированный источник питания с управляемым программно выходным напряжением;
- Преобразователи уровней сигналов (для случая, когда напряжение питания целевого микроконтроллера отличается от напряжение питания управляющих микроконтроллеров);
- Управляемый программно источник опорного напряжения для внутреннего АЦП микроконтроллера;
- Микросхема DataFlash AT45D021;
- Двухканальный формирователь уровней сигналов интерфейса RS232 (один канал используется для связи STK500 с управляющим персональным компьютером, другой может быть использован в разрабатываемом приложении);
- Восемь кнопок и восемь светодиодов для организации ввода и отображения выходной информации;
- Разъемы расширения для подключения внешних устройств.

Для тактирования отлаживаемых микроконтроллеров на плате STK500 предусмотрены два источника тактовых сигналов.

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

Второй источник тактовых сигналов представляет собой выход установленного на плате STK500 управляющего микроконтроллера AT90S8535-8AC. Частота этого тактового сигнала может быть задана программно.

Переключатель OSCSEL служит для выбора одного из источников тактового сигнала для микроконтроллера. Если же в качестве тактового необходимо использовать внутренний RC-генератор микроконтроллера, то внешний тактовый сигнал должен быть отключен джампером XTAL1.

В отличие от STK200 и STK300, на плате STK500 не предусмотрено подключение к целевому микроконтроллеру внешнего ОЗУ.

Управление STK500 происходит через COM-порт персонального компьютера. Управляющая программа является составной частью AVR Studio и запускается из меню Tools -> STK500/AVRISP/JTAGICE. Кроме STK500 эта управляющая программа поддерживает такие аппаратные средства отладки, как внутрисхемный программатор ATAVRISP и внутрисхемный эмулятор JTAGICE. Подробнее возможности управляющей программы будут рассмотрена ниже при обзоре средств внутрисхемного программирования. Здесь мы ограничим описание только функциями, уникальными для STK500. На рис. 16 представлено окно программы, управляющей STK500.

Рис. 16. Окно управления параметрами STK500

Закладка Board служит для установки параметров STK500:

- Напряжения питания целевого микроконтроллера (VTarget);
- опорного напряжения АЦП микроконтроллера (ARef);
- частоты управляемого источника тактового сигнала (Oscillator);
- а также для индикации версии прошивки (firmware) управляющих микроконтроллеров (Revision).

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 размещены:

- Панель с нулевым усилием (ZIF socket) для подключения микроконтроллеров ATmega103 и ATmega128 в корпусах типа TQFP64;
- Дополнительный порт RS232 с поддержкой линий RTS/CTS;
- Кварцевый резонатор на 32 кГц для реализации часов реального времени (Real-Time Clock, RTC);
- Посадочное место под корпус типа TQFP64 для припайки адаптера внутрисхемного эмулятора megaICE или ICE30;
- Разъем JTAG-интерфейса (только для микроконтроллера ATmega128) для подключения внутрисхемного эмулятора JTAGICE.

Кристаллы 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 с использованием внешней памяти данных.

Внутрисхемные эмуляторы

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

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

Использование внутрисхемных эмуляторов позволяет отлаживать приложения, в которых задействованы периферийные узлы и режимы микроконтроллеров, поддержка которых отсутствует в программном симуляторе.

ICEPRO / ICE10

ICEPRO представляет собой классический внутрисхемный эмулятор. Он поддерживает следующие типы микроконтроллеров: ATtiny10, ATtiny11, ATtiny12, ATtiny22, ATtiny28, AT90S1200, AT90S2313, AT90S2323, AT90S2343, AT90S4414, AT90S8515, AT90S4434, AT90S8535, AT90S2333, AT90S4433.

Управление ICEPRO осуществляется через COM-порта персонального компьютера. ICEPRO содержит внутренний стабилизатор питающего напряжения, поэтому питание внутрисхемного эмулятора может осуществляться от источника нестабилизированного напряжения 9 - 15 Вольт.

Подключение ICEPRO к отлаживаемому устройству осуществляется при помощи выносной платы ATADCPOD, которая, в свою очередь, соединяется с отлаживаемыми устройствами при помощи плоских кабелей (все поддерживаемые микроконтроллеры разделены на группы, и каждой группе соответствует свой разъем на выносной плате и свой плоский кабель). На выносной плате установлены несколько переключателей и перемычек, с помощью которых производится конфигурирование ICEPRO. Состояние этих переключателей и перемычек определяет:

- Наличие или отсутствие у целевого микроконтроллера аналого-цифрового преобразователя.
- Наличие или отсутствие в отлаживаемой системе внешнего ОЗУ данных.
- Источник питания для отлаживаемого устройства.
- Источник тактового сигнала для отлаживаемой системы.

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

Если отлаживаемое устройство не имеет своего собственного источника питания, то в процессе отладки питание его может осуществляться от внутрисхемного эмулятора (однако при этом следует помнить об ограничении по потребляемому отлаживаемым устройством току).

ICEPRO поддерживает неограниченное число программных точек останова (то есть точек останова, заданных в AVR Studio). Помимо этого ICEPRO имеет пять входов аппаратного останова (Trigger Inputs). Эти входы могут использоваться для прерывания исполнения программы по какому-либо внешнему событию. Для поддержки отладки сложных систем в ICEPRO предусмотрены пять синхровыходов (Trigger Outputs). Подобно программной точке останова, пользователь может в AVR Studio задать точку генерации синхрособытия. При выполнении внутрисхемным эмулятором команды, соответствующей этой точке, на выбранном синхровыходе будет сформирован импульс. Этот импульс может быть использован для синхронизации каких-либо внешних устройств.

Еще одной из удобных функций, реализованных в ICEPRO, является возможность записи трассы, то есть сохранение последовательности исполнения инструкций микроконтроллером. Анализ записанной трассы позволяет выявить участки кода, исполнение которых по тем или иным причинам не происходит (Code Coverage Analysis). Такой анализ очень полезен при отладке программ, содержащих несколько процедур обработки прерываний, особенно если вложенность прерываний не разрешена.

При необходимости использования комплексной отладки в ICEPRO предусмотрен разъем для подключения логического анализатора.

С ростом номенклатуры микроконтроллеров AVR внутрисхемный эмулятор ICEPRO был заменен на более новую модель ICE10.

Возможности ICE10 расширены за счет поддержки еще одного микроконтроллера - ATtiny15. Для этого микроконтроллера разработана специальная выносная плата - ATtiny15POD. Эта выносная плата содержит четырехканальный десятиразрядный аналого-цифровой преобразователь (один из каналов которого может быть сконфигурирован как дифференциальный) и отключаемый предусилитель. Конфигурация ATtiny15POD осуществляется только под управлением пакета AVR Studio, переключатели для ручной конфигурации на этой выносной плате отсутствуют.

megaICE / ICE30 / ICE50

Внутрисхемный эмулятор megaICE и внешне и функционально очень похож на рассмотренный выше ICEPRO. Отличие заключается только в том, что megaICE был предназначен только для внутрисхемной эмуляции одного типа микроконтроллера - ATmega103 и, соответственно, имел другую выносную плату (ATmegaPOD). С ростом номенклатуры семейства ATmega внутрисхемный эмулятор megaICE был заменен на более новую модель ICE30.

Внутрисхемный эмулятор ICE30 поддерживает следующие микроконтроллеры семейства ATmega: ATmega103, ATmega161, ATmega163, ATmega83 и ATmega32. Расширилось и количество используемых с ICE30 выносных плат. Для поддержки микроконтроллеров ATmega103 используется выносная плата ATmegaPOD (то есть та же , что и в эмуляторе megaICE). Поддержка микроконтроллеров ATmega161 осуществляется с использованием уже знакомой выносной платы ATADCPOD. А для оставшихся микроконтроллеров - ATmega163, ATmega83 и ATmega32 - разработана новая выносная плата ATmega163POD.

В настоящее время планируется замена ICE30 на усовершенствованный внутрисхемный эмулятор ICE50.

ICE200

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

ICE200 представляет собой внутрисхемный эмулятор, построенный на основе отладочного кристалла. Преимущества построения внутрисхемного эмулятора на основе отладочного кристалла заключается в более точном соответствии поведения эмулятора и целевого микроконтроллера, а также в удешевлении такого внутрисхемного эмулятора по сравнению с классическим (поскольку отладочные кристаллы могут считаться стандартной продукцией микроэлектроники). Память программ отладочного кристалла ICE200 реализована на внешнем динамическом ОЗУ. Исполняемый код загружается в ОЗУ памяти программ при запуске отладчика AVR Studio в режиме поддержки внутрисхемного эмулятора ICЕ200.

ICE200 поддерживает следующие микроконтроллеры AVR: ATtiny10, ATtiny11, ATtiny12, AT90S1200, AT90S2313, AT90S4414, AT90S8515, AT90S4434, AT90S8535, AT90S2333, AT90S4433. Причем поддерживаются как микроконтроллеры с напряжением питания 5 В, так и микроконтроллеры с напряжением питания 2,7 В - 3,6 В.

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

На сегодняшний день ICE200 является самым популярным внутрисхемным эмулятором, предлагаемым Atmel Corp.

Внутрисхемный эмулятор ICE200 представляет собой модульную конструкцию и состоит из:

- Выносной платы с установленным на ней отладочным кристаллом;
- Тестовой панели;
- Платы управления;
- Набора адаптеров.

Отладочный кристалл является универсальным, то есть поддерживает эмуляцию всех перечисленных микроконтроллеров. Для каждого конкретного типа микроконтроллеров существует свой адаптер, служащий для подключения выносной платы (с установленным на ней отладочным кристаллом) к целевому устройству. По типу подключенного адаптера ICE200 автоматически определяет, какой микроконтроллер будет эмулироваться.

Связь выносной платы с платой управления осуществляется двумя плоскими кабелями. На плате управления смонтированы следующие узлы:

- Блок управления процессом отладки, реализованный на микроконтроллере AT90S8515-8AC и программируемой логической интегральной схеме (ПЛИС) ATF1504-10JС44;
- Статическое ОЗУ (внешняя память программ отладочного кристалла);
- Стабилизированный источник напряжения питания;
- Формирователь уровней сигналов интерфейса RS232 для связи с персональным компьютером.

Плата управления ICE200 связывается с персональным компьютером через COM-порт.

В ICE200 реализован режим диагностики узлов внутрисхемного эмулятора. Для осуществления диагностики надо установить тестовую панель на плату отладочного кристалла, и в AVR Studio выбрать пункт меню Tools -> ICE200 Diagnostic. В результате этого откроется окно, в котором отображены все этапы диагностики (рис. 17).

Рис. 17. Окно диагностики узлов и режимов

После запуска процесса диагностирования (кнопка Run) последовательно проверяются все узлы и режимы внутрисхемного эмулятора. Если при этом определяется, что микроконтроллер и ПЛИС на плате управления содержат устаревшие варианты прошивки, то программа диагностики предложит автоматически обновить конфигурацию ПЛИС и памяти программ микроконтроллера.

Для отладки с помощью ICE200 устройств, содержащих микроконтроллеры AVR, выполненные корпусах для поверхностного монтажа, фирма Atmel предлагает дополнительный набор адаптеров ATAVRSMD. Этот набор содержит адаптеры двух типов: целевые и специализированные. Целевой адаптер припаивается на плату отлаживаемого устройства вместо микроконтроллера, а специализированный адаптер служит переходником между целевым адаптером и платой, на которой установлен отладочный кристалл. ATAVRSMD содержит по два целевых адаптера для корпусов типа SOIC8, PLCC44 и TQFP44.

JTAGICE

Альтернативой внутрисхемной эмуляции является режим фоновой отладки. В англоязычной литературе этот режим обозначается термином "On-Chip Debugging", или OCD.

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

Для поддержки режима "On-Chip Debugging" блок управления отладкой должен быть частью самого отлаживаемого микроконтроллера. В новые микроконтроллеры семейства ATmega (например ATmega128, ATmega323, ATmega16) встроен блок OCD. Исполнение программного кода и доступ ко всем регистрами микроконтроллера в режиме фоновой отладки осуществляется под управлением этого блока.

Управление фоновой отладкой в микроконтроллерах AVR осуществляется по JTAG-интерфейсу, совместимому со стандартом IEEE1149.1 . Устройством, реализующим протокол управления, является JTAGICE.

Так же, как и рассмотренные выше внутрисхемные эмуляторы, JTAGICE подключается к COM-порту персонального компьютера. Управляющая программа является составной частью AVR Studio, и запускается соответствующей командой из меню Tools.

Кроме обеспечения режима фоновой отладки, JTAGICE может быть использован в качестве внутрисхемного программатора для микроконтроллеров AVR, имеющих JTAG-интерфейс.

Более подробное описание JTAGICE доступно на сайте Atmel по ссылке http://www.atmel.com/atmel/acrobat/doc2475.pdf.

Внутрисхемные программаторы

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

Возможность внутрисхемного программирования микроконтроллеров AVR по последовательному синхронному интерфейсу SPI позволяет создавать простые и недорогие программаторы. Такие программаторы называют внутрисхемными (In-System Programmer, ISP).

AT90ISP

AT90ISP - простой внутрисхемный программатор, реализованный на микроконтроллере AT90S1200-12SC.

AT90ISP был первым внутрисхемным программатором, предложенным Atmel Corp. Первая версия прошивки (firmware) для микроконтроллера AT90S1200 позволяла осуществлять внутрисхемное программирование всего нескольких типов микроконтроллеров AVR (AT90S1200, AT90S2313, AT90S4414, AT90S8515), и одного микроконтроллера семейства AT89S - AT89S8252. С появлением новых типов микроконтроллеров AVR появилась необходимость усовершенствования firmware, и последняя версия прошивки (v2.2) поддерживает гораздо более широкую номенклатуру микроконтроллеров AVR (ATtiny12, ATtiny15, AT90S1200, AT90S2313, AT90S2323, AT90S2333, AT90S2343, AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90S8535, ATmega83, ATmega103, ATmega161, ATmega163). Поддержка микроконтроллеров семейства AT89 из последней версии firmware исключена.

AT90ISP подключается к COM-порту персонального компьютера. Питание AT90ISP осуществляется от целевого устройства. Схема AT90ISP представлена на рис. 18.

Рис. 18. Схема AT90ISP

Описание AT90ISP можно найти на сайте Atmel по ссылке http://www.atmel.com/atmel/acrobat/doc0943.pdf. По адресу ftp://www.atmel.com/pub/atmel/avr910.asm можно найти исходный ассемблерный текст одной из первых версий прошивки микроконтроллера AT90S1200.

Как и стартовый набор MCU00100, AT90ISP работает под управлением прграммы AVRProg (последняя версия - v1.33). Как уже говорилось, AVRProg является составной частью пакета AVR Studio. Для запуска этой программы нужно выполнить команду AVR Prog из меню Tools. Однако, AVRProg может быть установлен и как автономная программа. Дистрибутив AVRProg доступен на сайте Atmel: ftp://www.atmel.com/pub/atmel/aprogwin.exe.

Рабочее окно программы AVRProg представлено на рис. 19.

Рис. 19. Рабочее окно программы AVRProg

Установив тип целевого микроконтроллера, пользователь может производить стирание, чтение и запись как памяти программ (Flash), так и энергонезависимой памяти данных (EEPROM). Установив курсор на кнопку Advanced, и щелкнув левой кнопкой мыши, пользователь может войти в режим установки битов защиты от несанкционированного считывания содержимого памяти программ микроконтроллера (Lock bits) и управляющих битов (Fuse bits) - рис. 20.

Рис. 20. Программа AVRProg - режим установки управляющих битов и битов защиты

В настоящее время AT90ISP снят с производства и заменен на более современное средство - ATAVRISP.

ATAVRISP

ATAVRISP является самым новым внутрисхемным программатором, предлагаемым фирмой Atmel. ATAVRISP поддерживает все выпускаемые на сегодняшний день микроконтроллеры AVR, имеющие функцию внутрисхемного программирования. Управление этим внутрисхемным программатором осуществляется через COM-порт персонального компьютера. Питание на ATAVRISP подается от целевого устройства.

Подобно стартовому набору разработчика STK500, внутрисхемный программатор ATAVRISP реализован на двух микроконтроллерах - AT90S1200-12SC и AT90S8535-8AC, и работает под управлением той же, входящей в состав AVR Studio, программы.

Выбрав одну из закладок в окне управляющей программы, пользователь получает доступ к различным функциям программирования:

- Program. Окно управляющей программы в этом режиме представлено на рис. 21. Здесь пользователь указывает тип целевого микроконтроллера (Device), режим программирования (в нашем случае ISP), а также файлы, содержащие данные для программирования Flash-ПЗУ и EEPROM микроконтроллера. Здесь же пользователь может указать управляющей программе автоматически производить стирание памяти программ микроконтроллера перед очередным программированием, и верификацию - после.
- Fuses. Позволяет считать состояние управляющих битов микроконтроллера, и при необходимости, запрограммировать их.
- LockBits. Предоставляет доступ к битам защиты памяти программ микроконтроллера от несанкционированного считывания или модификации.
- Advanced. Позволяет считать сигнатуру целевого микроконтроллера. Здесь же может быть задано значение калибровочного байта для внутреннего RC-генератора микроконтроллера.
- Board. Эта закладка предназначена в основном для управления STK500. В последующих версиях AVR Studio будет предусмотрена возможность обновления прошивки (firmware) памяти программ микроконтроллеров, на которых построен ATAVRISP.
- Auto. Позволяет выбрать несколько функций программирования и верификации и запускать их в пакетном режиме.

Рис. 21. Окно управляющей программы внутрисхемного программатора ATAVRISP

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

Отличительной чертой ATAVRISP является то, что этот внутрисхемный программатор совместим с обоими стандартными разъемами для подключения к целевому устройству - с шестиконтактным (как у AT90ISP) и с десятиконтактным (как у загрузочного кабеля из набора STK200 или STK300).

Прочие средства внутрисхемного программирования микроконтроллеров AVR

Используемый для внутрисхемного программирования микроконтроллеров AVR последовательный интерфейс SPI может быть довольно просто эмулирован несколькими разрядами стандартного LPT-порта персонального компьютера.

Выше уже говорилось, что в качестве внутрисхемного программатора для микроконтроллеров AVR может быть использован загрузочный кабель из стартового набора разработчика STK200 / STK300, подключаемый к LPT-порту персонального компьютера и работающий под управлением программы AVR ISP версии 2.65 (по ссылке http://www.avr-forum.com/avr2_65.zip эта программа доступна в Интернете). К числу наиболее популярных программ, реализующих протокол внутрисхемного программирования через LPT-порт персонального компьютера, можно также отнести AVReal (автор Александр Редчук, http://ln.com.ua/~real/avreal ), или PonyProg (автор Клаудио Ланконелли, http://www.lancos.com/ppwin95.html ).

Нельзя не упомянуть и о существующих разработках внутрисхемных программаторов, управляемых подобно AT90ISP или ATAVRISP, через COM-порт персонального компьютера - например, о внутрисхемном программаторе <Жгучий кабель> (автор Станислав Лещинский, http://www.atmel.ru/Hardware/Hardware5.htm).

Специализированные наборы разработчика

Кроме рассмотренных выше аппаратных средств фирма Atmel предлагает также специализированные наборы разработчика, предназначенные для реализации конкретных целевых приложений. Без упоминания об этих специализированных наборах обзор аппаратно-программных средств поддержки разработок, предлагаемых фирмой Atmel не был бы полным.

В настоящее время Atmel предлагает два таких cпециализированных набора:

- AT90EIT1 - этот набор предназначен для разработки и макетирования встраиваемых web-серверов на основе микроконтроллера ATmega103. Физический уровень Ethernet реализован на микросхеме CS8900 фирмы CirrusLogic. Прикладное программное обеспечение полностью поддерживает протокол TCP/IP. Подробное описание, а также статьи о применении AT90EIT1 можно найти на сайте Atmel Corp. по ссылке: http://www.atmel.com/atmel/acrobat/doc2396.pdf .
- AT90BCKIT - предназначен для разработки зарядных устройств для различных типов аккумуляторных батарей. Зарядное устройства может быть реализовано на основе одного из трех микроконтроллеров AVR: AT90S2333, AT90S4433 или ATtiny15. Входящее в состав специализированного набора прикладное программное обеспечение реализует алгоритмы зарядки различных типов аккумуляторов - никель-кадмиевых (NiCd), никель-металлгидридных (NiMH) и литий-ионных (Li-Ion).

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