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

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

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

Стартовый набор STK500

Компания Atmel предлагает универсальный стартовый набор STK500 для всех микроконтроллеров AVR, выпускаемых в DIP корпусах. Для поддержки разработок на базе микроконтроллеров выпускаемых только в корпусах TQFP64 и TQFP100 выпускаются платы расширения STK501 и STK503, а также STK502 и STK504 для микроконтроллеров в корпусах TQFP64 и TQFP100 с драйвером ЖКИ. 

Помимо функций отладочной платы, STK500 выполняет функции параллельного программатора (для всех типов микроконтроллеров AVR), и последовательного внутрисхемного программатора (кроме Tiny11 и Tiny28, не поддерживающих функцию последовательного программирования). При программировании микроконтроллера можно производить конфигурирование микроконтроллера установкой FUSE-битов (FUnction SEt). 

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

 

 Рисунок 1. Отладочная плата STK500

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

Второй источник тактовых сигналов представляет собой выход установленного на плате STK500 управляющего микроконтроллера 90S8535-8AC. Частота этого тактового сигнала может быть задана программно. Доступны значения 3.69, 1.84, 1.23 МГц, а также 32.7 кГц и полная остановка. 

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

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

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

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

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

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

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

Программная поддержка новых микроконтроллеров AVR в STK500 производится обновлением прошивки (firmware) памяти программ управляющих микроконтроллеров (Revision Upgrade). Обновленные версии firmware включаются в состав AVR Studio. Управляющая программа в момент запуска проверяет связь COM-порта персонального компьютера с STK500, и в случае его присутствия запрашивает версию firmware. Если в AVR Studio содержится более новая версия прошивки, управляющая программа предлагает обновить firmware путем перепрограммирования управляющих микроконтроллеров. Перед входом в режим перепрограммирования STK500 необходимо извлечь целевые микроконтроллеры из DIP-панелей, если они туда установлены. Для входа в режим перепрограммирования необходимо включить питание STK500 с нажатой кнопкой Program. 

В комплекте с STK500 поставляются микроконтроллеры AT90S8515 и ATmega16, а также диск AVR Software and Technical Library, включающий в состав AVR Studio. Также в состав набора входит комплект кабелей.

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

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

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

Стартовый набор STK500

Компания Atmel предлагает универсальный стартовый набор STK500 для всех микроконтроллеров AVR, выпускаемых в DIP корпусах. Для поддержки разработок на базе микроконтроллеров выпускаемых только в корпусах TQFP64 и TQFP100 выпускаются платы расширения STK501 и STK503, а также STK502 и STK504 для микроконтроллеров в корпусах TQFP64 и TQFP100 с драйвером ЖКИ. 

Помимо функций отладочной платы, STK500 выполняет функции параллельного программатора (для всех типов микроконтроллеров AVR), и последовательного внутрисхемного программатора (кроме Tiny11 и Tiny28, не поддерживающих функцию последовательного программирования). При программировании микроконтроллера можно производить конфигурирование микроконтроллера установкой FUSE-битов (FUnction SEt). 

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

 

 Рисунок 1. Отладочная плата STK500

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

Второй источник тактовых сигналов представляет собой выход установленного на плате STK500 управляющего микроконтроллера 90S8535-8AC. Частота этого тактового сигнала может быть задана программно. Доступны значения 3.69, 1.84, 1.23 МГц, а также 32.7 кГц и полная остановка. 

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

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

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

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

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

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

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

Программная поддержка новых микроконтроллеров AVR в STK500 производится обновлением прошивки (firmware) памяти программ управляющих микроконтроллеров (Revision Upgrade). Обновленные версии firmware включаются в состав AVR Studio. Управляющая программа в момент запуска проверяет связь COM-порта персонального компьютера с STK500, и в случае его присутствия запрашивает версию firmware. Если в AVR Studio содержится более новая версия прошивки, управляющая программа предлагает обновить firmware путем перепрограммирования управляющих микроконтроллеров. Перед входом в режим перепрограммирования STK500 необходимо извлечь целевые микроконтроллеры из DIP-панелей, если они туда установлены. Для входа в режим перепрограммирования необходимо включить питание STK500 с нажатой кнопкой Program. 

В комплекте с STK500 поставляются микроконтроллеры AT90S8515 и ATmega16, а также диск AVR Software and Technical Library, включающий в состав AVR Studio. Также в состав набора входит комплект кабелей.

Плата расширения STK501

Плата расширения STK501

Для поддержки микроконтроллеров в корпусах TQFP64 (кроме микроконтроллеров с драйвером ЖКИ) компания Atmel предлагает устройство STK501, которое устанавливается в разъемы расширения STK500 как мезонинная плата. На плате STK501 размещены следующие элементы:

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

 

Рисунок 3. Плата расширения STK501

Кристаллы в корпусах TQFP64 имеют больше портов ввода-вывода, чем предусмотрено в STK500. Поэтому порты E, F, G, а также некоторые управляющие сигналы, выведены на разъемы на плате STK501. 

Комбинация STK500 и STK501 позволяет выполнять функции параллельного и последовательного программатора для всех микроконтроллеров в корпусах TQFP64. 

Как уже говорилось, стартовый набор разработчика STK500 не поддерживает работу микроконтроллера с внешним ОЗУ. Разработчики STK501 исправили этот недостаток, предусмотрев на плате STK501 посадочное место под микросхему ОЗУ объемом до 128Кбайт (в корпусах TSOP32 или SOJ32) и регистр-защелку младшего байта адреса. При этом STK501 без установленного микроконтроллера может служить платой расширения для STK500, позволяющей создавать и отлаживать проекты для микроконтроллеров mega8515 или mega162 с использованием внешней памяти данных. 

Для поддержки микроконтроллера AT90CAN128 с CAN-интерфейсом выпускается специальный модуль расширения ATADAPCAN01, который используется в связке с отладочными платами STK500 и STK501 (рис. 4), а также подключается непосредственно к целевому устройству.

Рисунок 4. Подключение ATADAPCAN01 к STK500/STK501

Модуль разработан в соответствии со стандартом Bosch CAN 2.0A/B и реализует функции преобразования сигнала физического уровня CAN-интерфейса, необходимые для присоединения отлаживаемой системы к шине CAN для разработки и отладки конечного приложения.

В комплекте с STK501 поставляется микроконтроллер ATmega128L и диск AVR Software and Technical Library. В комплекте с ATADAPCAN01 поставляется микроконтроллер AT90CAN128.

Плата расширения STK502

Плата расширения STK502

Для поддержки микроконтроллеров в корпусах TQFP64 c драйвером ЖКИ (ATmega169/329), компания Atmel выпустила устройство STK502, которое устанавливается в разъемы расширения STK500 как мезонинная плата, также как и STK501. Состав платы STK502 аналогичен составу STK501 (за исключением дополнительного порта RS232 и площадки для ОЗУ), она имеет панель с нулевым усилием (ZIF socket) для установки микроконтроллеров, кварцевый резонатор на 32 кГц, разъем JTAG-интерфейса, посадочное место для пайки микроконтроллера в корпусе TQFP64 либо адаптера внутрисхемного эмулятора. 

Также на плате STK502 содержится жидкокристаллический индикатор (ЖКИ) co 120 сегментами, который подключается к выводам микроконтроллера плоским 34-жильным кабелем, датчик температуры (NTC-термистор) используемый в демонстрационной программе "Измерение температуры с выводом на ЖКИ", посадочное место для пайки микроконтроллера. Разъем расширения для подключения внешнего ЖКИ, именованный "Segment pins from ATmega169", дублирует порты A,C, D и G, для более удобного подключения жидкокристаллического дисплея.

 

Рисунок 5. Плата расширения STK502

Комбинация STK500 и STK502 также позволяет выполнять функции параллельного программатора для всех микроконтроллеров в корпусах TQFP64, включая микроконтроллеры с драйвером ЖКИ. Программирование в параллельном режиме производится с использованием портов B и D при повышенном напряжении, поэтому необходимо отключать ЖК-дисплей от микроконтроллера для исключения выхода дисплея из строя. При использовании портов A, C, D и G в качестве портов ввода/вывода ЖК-дисплей также должен быть отключен.

Разработчики платы STK502 не предусмотрели возможность программирования в последовательном режиме микроконтроллеров в корпусах TQFP64, которые не имеют драйвер ЖКИ. Но, при необходимости, можно обеспечить режим последовательного программирования для этих микроконтроллеров. Это делается небольшим изменением в соединении разъемов SPROG (на плате STK502) и ISP6PIN (на плате STK500). Стандартно для обеспечения режима последовательного программирования производится соединение вывода MISO и MOSI разъема ISP6PIN с выводами PB2 и PB3 микроконтроллера. Для последовательного программирования микроконтроллеров в корпусах TQFP64, которые не имеют драйвер ЖКИ, необходимо произвести соединение выводов MOSI и MISO разъема ISP6PIN с выводами PE0 и PE1 микроконтроллера. 

В комплекте с платой STK502 поставляется микроконтроллер ATmega169V и диск AVR Software and Technical Library, в состав которого входит AVR Studio.

Плата расширения STK503

Плата расширения STK503

Мезонинная плата STK503 на сегодняшний день, официально не представленная для широкого круга потребителей, предназначена для поддержки многовыводных микроконтроллеров в корпусах TQFP100 (не содержащих драйвер ЖКИ). Плата STK503, аналогично вышеописанным продуктам, устанавливается в разъемы расширения STK500 как мезонинная плата. На плате STK503 размещены: 
Панель с нулевым усилием (ZIF socket) для установки микроконтроллеров в корпусах TQFP100;
Два преобразователя интерфейсов TTL - RS232;
Кварцевый резонатор на 32 кГц для реализации часов реального времени (Real-Time Clock, RTC);
Разъем JTAG-интерфейса для подключения внутрисхемного эмулятора JTAGICE.

В отличие от платы STK501, выполняющей аналогичные функции для 64-выводных микроконтроллеров, на плате STK503 выведено большее число портов ввода-вывода, что обусловлено наличием большего числа портов ввода-вывода на 100-выводных микроконтроллерах.

Рисунок 6. Плата расширения STK503

Аналогично плате STK501, плата STK503 содержит посадочное место под микросхему ОЗУ. 

Отличие состоит в том, что тактирование помимо источников тактового сигнала с платы STK500 и встроенного 32кГц кварцевого резонатора, может осуществляться также от высокочастотного кварца, устанавливаемого в имеющийся на плате STK503 разъем. Выбор источника производится аппаратными переключателями, установленными на плате. 

Для реализации интерфейса RS232, на плате имеется сдвоенный преобразователь уровней TTL - RS232. Выводы интерфейса RS232 выведены на 8-контактный разъем. 

Комбинация STK500 и STK503 позволяет выполнять функции параллельного и последовательного программатора для всех микроконтроллеров в корпусах TQFP100. Возможно, исключение составят микроконтроллеры с драйвером ЖКИ. 

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

В комплект набора STK503, предположительно, будет входить микроконтроллер ATmega2560.

Плата расширения STK504

Плата расширения STK504

Аналогично плате STK502, для поддержки многовыводных микроконтроллеров в корпусах TQFP100 с драйвером ЖКИ, компания Atmel выпустила устройство STK504, которое устанавливается в разъемы расширения STK500 в качестве мезонинной платы.

Рисунок 7. Плата расширения STK504

На плате установлен разъем ZIF для установки микроконтроллера в корпусе TQFP100, жидкокристаллический дисплей на 160 сегментов. Дисплей, аналогично STK502, подключается с помощью плоского кабеля и может быть отключен при необходимости. Также может быть использован внешний ЖК-дисплей.

Рисунок 8. Набор сегментов 160 сегментного ЖКИ платы STK504

Тактирование микроконтроллера в STK504 может осуществляться внешним тактовым сигналом, поступающим с платы STK500, кварцевого резонатора на 32кГц, установленного на плате STK504, а также от высокочастотного кварца, устанавливаемого в имеющийся на плате STK504 сокет. Выбор источника производится аппаратными переключателями, установленными на плате. 

Дополнительные порты (порт E, порт F, порт G, порт H, порт J) выведены на отдельные разъемы на плате STK504. На разъеме порта G, по умолчанию, установлен джампер, соединяющий вывод 6 и вывод 8 разъема, что соответствует соединению сигнала сброса (/RESET) микроконтроллера (PG.5) и сигнала сброса (/RESET), поступающего с платы STK500. При использовании внутрисхемного эмулятора JTAGICE2 (будет описан ниже) джампер должен быть извлечен, чтобы не блокировались сигналы сброса, поступающие с эмулятора. 

Комбинация STK500 и STK504 позволяет выполнять функции параллельного и последовательного программатора для микроконтроллеров в корпусах TQFP64 с драйвером ЖКИ. Как и в случае с STK502, следует не забывать отключать ЖКИ от портов ввода-вывода микроконтроллера во время программирования в параллельном режиме. Напряжение питания, подаваемое с STK500 на микроконтроллер должно быть не ниже 4.5В. При программировании в обоих режимах, джампер, соединяющий вывод 6 и вывод 8 разъема порта G, должен быть установлен. 

В комплекте с STK504 поставляется микроконтроллер ATmega3290.

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

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

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

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

Рисунок 9. Внутрисхемный программатор ATAVRISP.

Подобно стартовому набору разработчика STK500, внутрисхемный программатор ATAVRISP реализован на двух микроконтроллерах - 90S1200-12SC и 90S8535-8AC, и работает под управлением AVR Studio. Управляющая программа вызывается в меню Tools > STK500/AVRISP/JTAGICE > STK500/AVRISP/JTAGICE. 

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

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

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

При работе с целевым микроконтроллером, программатор ATAVRISP помимо линий внутрисхемного программирования (MOSI, MISO, CLK) использует вывод /RESET, GND, а также линию питания (VTG) по которой осуществляется питания программатора. 

Все описанные функции программирования микроконтроллера также могут быть выполнены на плате STK500 в последовательном, а также, в отличие от ATAVRISP, в параллельном режиме.

ATAVRISP поставляется в комплекте с диском AVR Software and Technical Library, кабелем для подключения к COM-порту компьютера, двумя кабелями (с 10- и 6-контактным разъемами) для подключения к целевой плате. Питание программатора осуществляется от целевого устройства по линиям VTG и GND. 

Вся необходимая информация по подключению и использованию программатора AVRISP включена во встроенный файл справки AVR Studio.

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

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

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

В настоящий момент компания Atmel предлагает 2 типа внутрисхемных эмуляторов. 

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

Второй тип подразумевает использование микроконтроллера AVR, имеющего все необходимые для внутрисхемной отладки аппаратные блоки и управляемого внешним отладчиком. На данный момент этот тип отладчиков представлен устройством ATJTAGICE mkII (читается "Марк два"). 

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

Внутрисхемные эмуляторы ICE40, ICE50. 

Внутрисхемные эмуляторы ICE40 и ICE50 представляют собой классические внутрисхемные эмуляторы. Различие эмуляторов состоит в количестве поддерживаемых микроконтроллеров. 

Список поддерживаемых эмулятором ICE50 микроконтроллеров очень широк: ATmega128/CAN128, ATmega165/325, ATmega169/329/649, ATmega48/88/168, ATmega162, ATmega8/16/32/64, Atmega8515/8535, ATtiny26, ATtiny13, ATtiny2313. 

Эмулятор ICE40 поддерживает гораздо меньшее количество микроконтроллеров, а именно микроконтроллеры ATtiny26, ATmega8, ATtiny13.

Рисунок 11. Внешний вид внутрисхемных эмуляторов ICE40/ICE50

Для поддержки различных микроконтроллеров, имеется набор выносных плат (адаптеров) для пайки либо установки в DIP-панель для микроконтроллера на целевой плате (см. рис. 9). Для микроконтроллеров AVR, которые не выпускаются в DIP-корпусах, адаптер (ATADAP64BOT) предназначен для припаивания на площадку под корпус TQFP. По типу подключенного адаптера ICE40/50 автоматически определяет, какой микроконтроллер будет эмулироваться. Адаптеры для поддержки микроконтроллеров ATtiny13, ATmega169/329/649, ATmega165/325 в комплект эмулятора ICE40/50 не входят, а заказываются отдельно.

 

Рисунок 12. Внешний вид выносных плат эмулятора ICE40/50

Эмуляторы ICE40 и ICE50 выполняют следующие функции: 
- Эмуляция аналоговой и цифровой периферии микроконтроллера 
- Работа в диапазоне напряжений от 2.2В до 5.5В 
- Просмотр значений регистров ввода/вывода 
- Просмотр регистрового файла, памяти программ, данных и EEPROM 
- Запись трассы 
- Неограниченное количество точек останова 
- Отладка по тексту программы на языке высокого уровня 
- Счетчик времени исполнения программы 

Управление отладкой производится в интегрированной среде разработки AVR Studio. В качестве программы для работы микроконтроллера может использоваться отладочный объектный код в формате UBROF8 либо COFF, а также программа на ассемблере. Подключение эмулятора к компьютеру производится через COM-порт. 

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

В ICE50 реализован режим диагностики узлов внутрисхемного эмулятора. Для осуществления диагностики необходимо установить тестовую панель на плату отладочного кристалла и в AVR Studio выбрать пункт меню Tools -> ICE50 Selftest. После запуска процесса диагностирования (кнопка Run) последовательно проверяются все узлы и режимы внутрисхемного эмулятора. Если при этом определяется, что на плате управления содержится устаревший вариант внутреннего микрокода (firmware), то программа диагностики предложит автоматически обновить конфигурацию ПЛИС и памяти программ микроконтроллера. Также возможно произвести ручное обновление микрокода ICE50, выбрав пункт меню Tools -> ICE50 Upgrade.

Внутрисхемный эмулятор ATJTAGICE mkII (ATJTAGICE2)

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

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

Для поддержки режима "On-Chip Debugging" (OCD) блок управления отладкой должен быть частью самого отлаживаемого микроконтроллера. Управление фоновой отладкой в микроконтроллерах AVR осуществляется по JTAG-интерфейсу, совместимому со стандартом IEEE1149.1, либо однопроводному интерфейсу debugWIRE, являющемуся собственной разработкой компании Atmel. 

Блок OCD с управлением по интерфейсу JTAG содержится в микроконтроллерах ATmega128/CAN128, ATmega16/32/64, ATmega162, ATmega165/325, ATmega169/329, ATmega3250/3290. Блок OCD с управлением по интерфейсу debugWIRE содержится в микроконтроллерах ATmega48/88/168, ATtiny13, ATtiny2313, ATtiny45. 

Под управлением блока OCD в микроконтроллерах AVR производится исполнение программного кода и доступ ко всем регистрами микроконтроллера в режиме фоновой отладки. 

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

Устройством, реализующим протокол управления, является ATJTAGICE mkII (ATJTAGICE2).

Рисунок 13. Внешний вид внутрисхемного эмулятора ATJTAGICE mkII

Внутрисхемный эмулятор ATJTAGICE mkII подключается к персональному компьютеру по COM либо USB интерфейсам. При подключении по USB интерфейсу не требуется использование внешнего источника питания. Производить соединение эмулятора с компьютером и целевым микроконтроллером необходимо при выключенном питании всех трёх устройств (при подключении по интерфейсу USB достаточно установить выключатель питания ATJTAGICE mkII в положение ВЫКЛЮЧЕНО). В противном случае можно вывести из строя выходные каскады эмулятора. 

При использовании интерфейса USB для подключения ATJTAGICE mkII к компьютеру, передача команд производится существенно быстрее, чем при использовании COM-порта. 

В качестве управляющей программы для работы ATJTAGICE mkII и OCD микроконтроллера используется интегрированная среда разработки AVR Studio. Более подробно использование AVR Studio для внутрисхемной отладки будет описана ниже. Также более подробную информацию по возможностям и использованию ATJTAGICE mkII можно найти во встроенном файле справки AVR Studio.

Кроме обеспечения режима фоновой отладки, эмулятор ATJTAGICE mkII может быть использован в качестве внутрисхемного программатора для микроконтроллеров AVR. Программирование может осуществляться по интерфейсам JTAG либо SPI. Для программирования, а также отладки, по интерфейсу JTAG одновременно нескольких устройств нужно соединить устройства в дейзи-цепочку. После этого необходимо указать AVR Studio наличие нескольких микроконтроллеров в меню Tools > STK500/AVRISP/JTAGICE > STK500/AVRISP/JTAGICE > Advanced > JTAG Daisy Chain Settings. 

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

Последние комментарии

Сейчас на сайте

Сейчас на сайте 311 гостей и нет пользователей