Отладочные средства
для AVR и AVR32 UC3 2011 года
Алексей КУрилин
Компания Atmel распространяет большое количество фирменных отладочных средств, предназначенных для поддержки разработок с использованием микроконтроллеров AVR (tiny, mega, Xmega) и AVR32 UC3 (AT32UC3). Выпущенные в последнее время отладочные средства компании уже ориентированы на поддержку кристаллов обеих архитектур. Это привело к формированию нового поколения средств разработки, выстроенных в едином стиле для двух микроконтроллерных платформ разного класса. Обзор возможностей этих новинок приведен в данной статье.
Стартовый набор STK600
Стартовый набор STK600 является базовым средством для освоения 8-разрядных микроконтроллеров AVR (tiny, mega, Xmega) и 32-разрядных AVR32 UC3. Несмотря на свою универсальность, набор не перегружен функционально и достаточно прост в освоении. Он представляет собой базовую плату, на которую устанавливаются мезо-нинные модули и переходные платы (рис. 1).
На плате STK600 предусмотрены следующие компоненты:
• 10-контактные 2-рядные штыревые разъемы с шагом 2,54 мм для подключения к портам ввода/вывода микроконтроллеров.
• 8 кнопок и 8 светодиодов для реализации простейшего интерфейса пользователя.
• Микросхема энергонезависимой памяти DataFlash объемом 2 Мбит для хранения данных.
• Разъем USB mini-AB для микроконтроллеров, снабженных интерфейсом USB (Device и OTG).
• Разъем DB9 и микросхема преобразования уровней для подключения микроконтроллера к ПК по интерфейсу RS-232.
• Разъем DB9 и микросхема преобразования уровней для подключения по интерфейсу CAN микроконтроллеров, у которых этот интерфейс предусмотрен.
• Штыревой разъем и микросхема преобразования уровней для кристаллов с контроллером интерфейса LIN для подключения к этой шине.
• Интерфейс USB для управления платой STK600 c ПК.
• Разъемы для подключения управляющей части STK600 к микроконтроллеру по интерфейсам SPI (для tiny и mega), PDI (для Xmega), JTAG (для всех AVR c интерфейсом JTAG) и aWire (для AVR32 UC3).
• Регулятор напряжения, обеспечивающий питание управляющей части самой платы и программируемые напряжения, подаваемые на вход питания целевого микроконтроллера и источника опорного напряжения.
• Программируемый генератор тактового сигнала частотой до 32 МГц и кварцевый генератор с панелью для установки кварцевого резонатора.
Плата STK600 может быть запитана по интерфейсу USB либо от внешнего источника питания на 10-15 В с допустимым током нагрузки до 500 мА. Для питания целевого микроконтроллера могут быть установлены напряжения с шагом 0,1 В в диапазоне от 0 до 3,6/5,5 В в зависимости от допустимых напряжений питания этого микроконтроллера. Два напряжения, подаваемые в качестве опорных для аналоговой части, могут быть установлены в этих же пределах, но уже более точно — с шагом 10 мВ.
Для тех, кто знаком со стартовым набором STK500 [1], можно отметить, что в STK600 частоты источника тактового сигнала могут быть установлены точнее (±0,1%), нежели это возможно у «старшего брата» — STK500, где тактовые частоты можно задать только из определенного набора дискретных значений.
Регулировка напряжения питания целевого микроконтроллера и частоты сигнала на выходе источника тактового сигнала производится «на лету» программным образом в среде AVR Studio. Это позволяет задать различные режимы работы целевого микроконтроллера и шире оценить его возможности.
На плате STK600 предусмотрены интерфейсы JTAG, PDI и aWire. Они обычно имеют двойное назначение — в качестве интерфейса для внутрисхемной эмуляции и в качестве интерфейса программирования Flash-памяти и конфигурационных битов целевого микроконтроллера. Интерфейсы самой STK600 обеспечивают только функцию программирования, хотя предусмотрена возможность подключения внешнего эмулятора для организации внутрисхемной отладки на процессоре, установленном на плате STK600. Она также может использоваться для программирования микроконтроллера на внешней целевой плате.
Таблица 1. Соответствие наименований мезонинных и переходных плат и поддерживаемых ими микроконтроллеров
Мезонинная плата Поддерживаемый корпус Переходная плата Поддерживаемые микроконтроллеры
ATSTK600-SC01 DIP ATSTK600-RC01 ATtiny2313, ATtiny2313A, ATtiny4313
ATSTK600-RC02 ATtiny11, ATtiny12, ATtiny13, ATtiny13A, ATtiny25, ATtiny45, ATtiny85
ATSTK600-RC04 ATmega162, ATmega8515
ATSTK600-RC05 ATmega1284, ATmega1284P, ATmega16, ATmega164A, ATmega164P, ATmega164PA, ATmega16A, ATmega32, ATmega324A, ATmega324P, ATmega324PA, ATmega32A, ATmega644, ATmega644A, ATmega644P, ATmega644PA, ATmega8535
ATSTK600-RC06 ATmega168, ATmega168A, ATmega168P, ATmega168PA, ATmega328, ATmega328P, ATmega48, ATmega48A, ATmega48P, ATmega48PA, ATmega8, ATmega88, ATmega88A, ATmega88P, ATmega88PA, ATmega8A, ATtiny48, ATtiny88
ATSTK600-RC08 ATtiny26, ATtiny261, ATtiny261A, ATtiny461, ATtiny861, ATtiny861A
ATSTK600-RC12 ATtiny24, ATtiny24A, ATtiny44, ATtiny44A, ATtiny84
ATSTK600-SC02 TQFP64 ATSTK600-RC09 AT90CAN128, AT90CAN32, AT90CAN64, ATmega128, ATmega1281, ATmega128A, ATmega2561, ATmega64, ATmega64A
ATSTK600-RC10 ATmega165, ATmega165A, ATmega165P, ATmega169, ATmega169A, ATmega169P, ATmega169PA, ATmega325, ATmega325A, ATmega325P, ATmega329, ATmega329A, ATmega329P, ATmega329PA, ATmega645, ATmega645A, ATmega645P, ATmega649, ATmega649A, ATmega649P
ATSTK600-RC14 ATxmega128A3, ATxmega128D3, ATxmega192D3, ATxmega256A3, ATxmega256A3B, ATxmega256D3, ATxmega64A3, ATxmega64D3
ATSTK600-RC17 AT90USB1286, AT90USB1287, AT90USB646, AT90USB647, ATmega32U6
ATSTK600-SC03 TQFP100 ATSTK600-RC11 ATmega1280, ATmega2560, ATmega640
ATSTK600-RC13 ATxmega128A1, ATxmega128A1U, ATxmega64A1
ATSTK600-RC18 ATmega3250, ATmega3250A, ATmega3250P, ATmega3290, ATmega3290A, ATmega3290P, ATmega6450, ATmega6450A, ATmega6450P, ATmega6490, ATmega6490A, ATmega6490P
ATSTK600-RC28 AT32UC3A1128, AT32UC3A1256, AT32UC3A1512
ATSTK600-RC38 AT32UC3C1128, AT32UC3C1256, AT32UC3C1512C, AT32UC3C164
ATSTK600-SC06 TQFP44 ATSTK600-RC15 ATxmega16A4, ATxmega16D4, ATxmega32A4, ATxmega32D4
ATSTK600-RC25 ATmega16U4, ATmega32U4
ATSTK600-RC30 ATmega162, ATmega8515
ATSTK600-RC31 ATmega1284, ATmega1284P, ATmega16, ATmega164A, ATmega164P, ATmega164PA, ATmega16A, ATmega32, ATmega324A, ATmega324P, ATmega324PA, ATmega32A, ATmega644, ATmega644A, ATmega644P, ATmega644PA, ATmega8535
ATSTK600-SC10 TQFP32 ATSTK600-RC20 AT90USB162, AT90USB82, ATmega16U2, ATmega32U2, ATmega8U2
ATSTK600-RC22 ATmega16M1, ATmega32C1, ATmega32M1, ATmega64C1, ATmega64M1
ATSTK600-RC29 ATmega168, ATmega168A, ATmega168P, ATmega168PA, ATmega328, ATmega328P, ATmega48, ATmega48A, ATmega48P, ATmega48PA, ATmega8, ATmega88, ATmega88A, ATmega88P, ATmega88PA, ATmega8A
ATSTK600-RC45 ATtiny48, ATtiny88
ATSTK600-SC11 SOIC ATSTK600-RC19 AT90PWM1, AT90PWM2, AT90PWM216, AT90PWM2B, AT90PWM3, AT90PWM316, AT90PWM3B
ATSTK600-RC23 ATtiny167, ATtiny87
ATSTK600-RC26 AT90PWM81
ATSTK600-RC42 ATtiny20
ATSTK600-RC44 ATtiny40
ATSTK600-RC46 ATtiny24, ATtiny24A, ATtiny44, ATtiny44A, ATtiny84
ATSTK600-SC13 TSSOP44 ATSTK600-RC24 ATmega16HVB, ATmega32HVB
ATSTK600-SC14 TQFP64 ATSTK600-RC21 AT32UC3B0128, AT32UC3B0256, AT32UC3B0512, AT32UC3B064
ATSTK600-RC40 AT32UC3C2128, AT32UC3C2256, AT32UC3C2512C, AT32UC3C264
ATSTK600-SC16 TQFP48 ATSTK600-RC27 AT32UC3B1128, AT32UC3B1256, AT32UC3B164
ATSTK600-RC34 AT32UC3L016, AT32UC3L032, AT32UC3L064
ATSTK600-SC19 TQFP144 ATSTK600-RC32 AT32UC3A3128, AT32UC3A3128S, AT32UC3A3256, AT32UC3A3256S, AT32UC3A364, AT32UC3A364S
ATSTK600-RC33 AT32UC3A0128, AT32UC3A0256, AT32UC3A0512
ATSTK600-RC36 AT32UC3C0128, AT32UC3C0256, AT32UC3C0512C, AT32UC3C064
STK600-Tinyx3U S0IC20 - ATtiny43U
STK600-ATTINY10 SOT23/6 - ATtiny4, ATtiny5, ATtiny9, ATtiny10
которая проверяет его актуальность в STK600 и обновляет в случае необходимости.
В базовой комплектации набор STK600 поставляется с демонстрационным мезонинным модулем, на котором распаян микроконтроллер ATmega2560. В зависимости от того, какой микроконтроллер и в каком корпусе планирует задействовать разработчик, должна быть выбрана соответствующая мезонинная плата с ZIF-панелью. Ассортимент кристаллов AVR достаточно широк, и в одном и том же корпусе (одинаковое количество выводов и шаг между выводами) могут выпускаться различные микроконтроллеры, которые могут быть не совместимы повыводно (например, ATmega128 и ATxmega128 A3). Поэтому для организации корректной коммуникации между контроллером на мезонинной плате и функциональными узлами, питанием и разъемами расширения на базовой плате STK600, между STK600 и мезонином устанавливаются переходные платы, которые подбираются под определенный кристалл либо серию повы-водно совместимых кристаллов. Таким образом, в STK600 обеспечивается поддержка всех выпускаемых микроконтроллеров AVR: от самого маленького ATtinylO в 6-выводном корпусе до кристалла AT32UC3A0 в корпусе TQFP144. Наименования мезонинных и переходных плат, а также поддерживаемых ими микроконтроллеров приведены в таблице 1.
Практика показывает, что при первом включении платы STK600 с мезонинным модулем может возникнуть такая проблема: после установки мезонинной платы и включения питания индикатор статуса STK600 может мигать оранжевым цветом, показывая, что мезонинная плата не установлена либо установлена неверно. В первую очередь здесь необходимо проверить правильность установки мезонинного модуля, переходной платы, их взаимного позиционирования, а также корректность установки микроконтроллера в ZIF-панель. Затем следует проверить значение напряжения VTarget в окне программирования на закладке настроек платы STK600 (закладка HW Setting в AVR Studio 4 или Board Settings в AVR Studio 5) и установить его в нужное значение, так как большинство новых плат поставляются со значением VTarget, установленным в 0 В. Индикация некорректной установки загорается потому, что на ме-зонинных и переходных платах имеется своя логика, требующая питания, и если питание на мезонинную плату не подано, то базовая плата не получает отклика от логики мезонина и не может идентифицировать установленный на нее модуль.
На данный момент плата STK600 может работать под управлением интегрированных сред разработки AVR Studio 4, AVR32 Studio и среды последнего поколения — AVR Studio 5 (рис. 2).
На плате STK600 имеется управляющая логика, построенная на базе кристаллов AT90USB1287 и ATmega16. Она обеспечивает работу всех вышеперечисленных функций платы. Для поддержки новых микроконтроллеров, которые Atmel начала производить после выпуска набора STK600, выпускаются обновления микрокода управляющей логики вместе с интегрированной средой разработки AVR Studio,
Рис. 2. Стандартное диалоговое окно программирования микроконтроллера
Стартовый набор STK600 доступен в России по цене $235, а большинство мезонинных и переходных плат — по $60 и $20 соответственно. Возможность заказа всех компонентов по отдельности позволяет постепенно вкладывать средства по мере развития требований по поддержке тех или иных микросхем в разных корпусах для текущих и новых проектов.
Так как стоимость мезонинного модуля сопоставима с розничной стоимостью качественной ZIF-панели, то существует и нестандартный путь использования мезо-нинного модуля — в роли платы для быстрого макетирования. Конечно же, мезонинные платы не так удобны для подобного использования, но при необходимости быстрого создания макета могут заметно сэкономить время на поиске подходящей ZIF-панели либо при изготовлении печатной платы под заданный тип корпуса микроконтроллера. Принципиальные электрические схемы мезонинных плат доступны на сайте Atmel.
Внутрисхемный эмулятор JTAGICE3
Эмулятор JTAGICE3 (рис. 3) предназначен для выполнения внутрисхемной отладки программ на целевом микроконтроллере с использованием встроенного в большинство кристаллов AVR механизма отладки. JTAGICE3 обеспечивает работу со всеми микроконтроллерами AVR и AVR32 и является альтернативой известному и широко используемому эмулятору JTAGICE2 [1]. Новый JTAGICE3 в отличие от «предшественника» обладает рядом преимуществ:
• обеспечивает большую скорость работы;
• лучше защищен (аппаратно) от неверных
действий пользователя;
• имеет меньшие размеры;
• доступен по меньшей цене.
Качественным отличием, которое было
положительно оценено разработчиками, является то, что шлейф, соединяющий эмулятор с целевой платой, у JTAGICE3 выполнен в классическом варианте — обычным плоским кабелем с IDC-разъемами на его концах. Это важно, так как соединительный кабель более всего подвержен механическим повреждениям, которые могут привести к полной остановке процесса разработки с использованием этого эмулятора. В новом JTAGICE3 такой простой кабель может быть восстановлен собственными силами либо приобретен в готовом виде в розничном радиоэлектронном магазине в отличие от кабеля для JTAGICE2, доступном по достаточно высокой цене только по каналам поставки продукции Atmel.
Эмулятор JTAGICE3 имеет следующие характеристики:
• Поддержка внутрисхемной эмуляции
и программирования по интерфейсам JTAG
и aWire для 32-разрядных AVR32 UC3.
рис. 3. Внутрисхемный эмулятор JTAGICE3
• Поддержка внутрисхемной эмуляции и программирования по интерфейсам JTAG и PDI для 8-разрядных AVR Xmega.
• Поддержка внутрисхемной эмуляции по интерфейсам JTAG и debugWire для 8-разрядных AVR Tiny и Mega, а также их программирования по интерфейсам JTAG и SPI.
• Широкий набор поддерживаемых скоростей обмена данными:
- интерфейс JTAG —
от 32 кбит/с до 15 Мбит/с;
- интерфейс PDI —
от 32 кбит/с до 10 Мбит/с;
- интерфейс debugWire — от 4 кбит/с до 0,5 Мбит/с;
- интерфейс aWire —
от 7,5 кбит/с до 7,5 Мбит/с;
- интерфейс SPI —
от 8 кбит/с до 1,875 Мбит/с.
• Поддержка трех аппаратных точек останова и одной точки останова по данным (при условии поддержки функции блоком OCD микроконтроллера и поддержке этого механизма программным обеспечением).
• Поддержка до 128 программных точек останова.
• Работа с целевым микроконтроллером, питание которого может варьироваться в диапазоне от 1,8 до 5,5 В.
• Высокая скорость загрузки кода (загрузка 256 кбайт кода за 15 с в микроконтроллер XMEGA по интерфейсу JTAG).
• Подключение к ПК и питание по интерфейсу USB.
В состав набора, помимо самого эмулятора, входят все необходимые для работы кабели, а также три переходника, необходимые для подключения к разъемам с типовыми «распиновками» (схемами расположения контактов на разъемах) на стартовом наборе STK600 и всех оценочных наборах для AVR и AVR32 UC3. У этих переходников с одной стороны установлен 10-контактный 2-рядный разъем с шагом 1,27 мм для подключения кабеля от JTAGICE3, а с обратной — в зависимости от назначения:
• 10-контактный 2-рядный разъем с шагом 2,54 мм со стандартной (типовой для отладочных средств Atmel) «распиновкой» интерфейса JTAG;
• 6-контактный 2-рядный разъем с шагом 2,54 мм с «распиновкой» под интерфейсы SPI, debugWire, PDI и aWire;
• 6-контактный 2-рядный разъем с шагом
1,27 мм с «распиновкой» под интерфейсы
SPI, debugWire, PDI и aWire.
6-контактный разъем с шагом 1,27 мм не свойственен отладочным средствам Atmel: вероятно, это сделано для будущих отладочных средств либо для предоставления разработчикам возможности размещения разъема для подключения эмулятора на минимальной площади собственной платы. 10-контактный разъем с шагом 1,27 мм на «хвосте» кабеля самого JTAGICE3 имеет типовую «распино-вку» интерфейса JTAG. На все интерфейсы, поддерживаемые эмулятором, «распинов-ки» приведены во встроенной справке AVR Studio 5, и они идентичны всем разъемам отладочных средств, выпускаемых фирмой Atmel, где предусмотрена возможность подключения по какому-либо поддерживаемому эмулятором интерфейсу.
Так как JTAGICE3 подключается к ПК по интерфейсу USB, то операционная система при подключении эмулятора должна найти драйвер. Этот драйвер прописывается в операционной системе при установке среды AVR Studio 5. Это значит, что до первого подключения эмулятора к ПК среда разработки уже должна быть установлена. Часто встречается, что драйвер при его установке некорректно прописывается в операционной системе, что потребует переустановку драйвера: для этого его инсталлятор распространяется отдельно [4].
Разработчики, уже работающие с платформой AVR и приобретающие эмулятор JTAGICE3, должны учитывать тот факт, что он поддерживается только последней версией интегрированной среды разработки — AVR Studio 5. Его поддержка в AVR Studio 4 и AVR32 Studio не реализована и не планируется. Поэтому для работы с ним необходимо либо перенести проект в новую оболочку и продолжить разработку в ней, либо объектный файл (ELF для GCC), сформированный в AVR Studio 4 или AVR32 Studio, отлаживать уже в оболочке AVR Studio 5. К этому можно добавить, что поддержка «предшественника» — эмулятора JTAGICE2 — реализована в новой среде AVR Studio 5, в то время как его поддержка в прежних версиях среды была реализована исторически. Фирма Atmel пока не планирует снимать JTAGICE2 с производства, поэтому нужно заказывать его в тех случаях, когда ограничения, накладываемые эмулятором JTAGICE3, неприемлемы.
При работе с JTAGICE3 необходимо выполнять стандартное правило: соединение эмулятора с целевой платой должно производиться до соединения эмулятора с ПК и подключения питания целевой платы. На рис. 4 приведена блок-схема JTAGICE3, которую будет полезно знать разработчикам, нарушившим по различным причинам это правило. Его несоблюдение может привести к выходу из строя интерфейсной части эмулятора — микросхемы согласования уровней логических сигналов, обеспечивающей работу эмулятора
ПК«
—1ч Плата с микро-n—1/ контроллером
Рис. 4. Структурная схема эмулятора JTAGICE3
с широким набором питающих напряжений и уровней логических сигналов на целевой плате. Случаев отказа еще не было, но нужно иметь в виду, что выход из строя интерфейсной части не является гарантийным случаем, и единственное решение проблемы — это самостоятельная замена элемента: микросхемы SN74CB3T3125PW. Другие элементы из строя выходить не должны.
Здесь можно отметить интересный момент: фирма Atmel впервые в своих отладочных средствах применила в JTAGICE3 собственный микроконтроллер AT32UC3A3 для организации интерфейса с компьютером. Этот микроконтроллер обеспечил скоростной обмен данными с ПК по интерфейсу USB High-Speed, а также позволил гибко управлять тактированием процессорного ядра микроконтроллера в зависимости от требуемой скорости обмена данными с целевой платой. Тактовая частота процессорного ядра может автоматически снижаться вплоть до 1 МГц на малых скоростях и повышаться до 60 МГц — на высокой скорости работы канала. Факт применения собственного микроконтроллера служит подтверждением высоких коммуникационных свойств AT32UC3A3, которая была применена производителем для изготовления собственного изделия, относящегося к классу устройств, составляющих отдельный бизнес компании.
Теоретически эмулятор JTAGICE3 помимо внутрисхемной отладки должен обеспечить возможность тестирования печатных
плат с использованием методов граничного сканирования. Но на данный момент автору статьи неизвестно о существовании программы, которая может работать с этим эмулятором. Поэтому для реализации задачи тестирования цепей печатной платы с микроконтроллерами AVR необходимо использовать сторонний JTAG-эмулятор и доступное программное обеспечение для него. Фирма АШе1, в свою очередь, распространяет для этой задачи BSDL-файлы с описанием архитектуры регистров граничного сканирования всех микроконтроллеров AVR с JTAG-интерфейсом.
Таблица 2. Характеристики оценочных наборов Xplained
Оценочные наборы
Самым простым и дешевым способом опробовать ключевые характеристики микроконтроллеров AVR являются оценочные наборы. Фирма Atmel в конце прошлого и начале этого года анонсировала новые оценочные наборы, в наименовании которых содержится слово Xplained (эксплэйнд), созвучное слову explained (разъясненный). Этими наборами Atmel разъясняет ключевые функциональные и периферийные возможности установленных на них микроконтроллеров, а также показывает простоту дизайна изделий на их базе.
Все наборы Xplained построены типовым образом (фото плат с ATXmega128A1 и AT32UC3A3 для примера приведены на рис. 5): на плате распаян старший в линейке микроконтроллер, который «обвязан» минимальной периферией и снабжен средством для соединения с ПК. Каждая плата Xplained доступна в России по цене $35. В таблице 2 приведены их характеристики.
На платах Xplained предусмотрены разъемы для подключения внешних устройств либо мезонинных модулей производства
XMEGA-A1 Xplained MEGA-1284P Xplained UC3-L0 XPLAINED UC3-A3 XPLAINED
Код для заказа ATAVRXPLAIN ATMEGA1284P-XPLD AT32UC3L0-XPLD AT32UC3A3-XPLD
Целевой МК ATxmega128A1 ATmega1284P AT32UC3L064 AT32UC3A3256
Внешняя память 8 Мбайт SDRAM - - 64 Мбит SDRAM
Расширение памяти 2 площадки для распайки микросхемы DataFlash серий AT25 и AT45
Связь с ПК по USB Через контроллер платы, построенный на AT32UC3B1256 Собственный USB у AT32UC3A3256
Доступные интерфейсы JTAG, 6xUART, ЗхТЩ 3xSPI JTAG, 2xUART, TWI, SPI c двумя chip select JTAG, UART, TWI, SPI c двумя chip select JTAG, 2xUART, 2хSPI, 2хTWI
Доступная аналоговая периферия 8 входов АЦП и аналогового компаратора, НЧ-фильтр на входе одного из каналов, выход ЦАП на динамик через УМЗЧ 8 входов АЦП, НЧ-фильтр на входе одного из каналов
Датчики Температурный и освещенности, подключенные ко входам АЦП Температурный, подключенный ко входу АЦП
Частоты внешних источников тактирования 32 кГц 32 кГц 32 кГц 12 МГц, 32 кГц
Количество доступных линий ввода/вывода 24 24 24 24
Интерфейс пользователя 8 механических кнопок, 8 светодиодов 3 механических и 1 сенсорная кнопка, 4 светодиода 1 механическая и 1 сенсорная кнопки, слайдер, 1 трехцветный и 1 одноцветный светодиоды 1 механическая и 1 сенсорная кнопки, слайдер, 2 одноцветных светодиода
Рис. 5. Оценочные наборы Xplained для ATXmega128A1 и AT32UC3A3
* + *
V л t.
! ТгТ W »
Ina fti <14-м*я
у ' i
M! Г»
г: ib 1 ¡i«
NâSgSl
ч>ч| J*
_UK О
¡1 Г Г'1'^ ■ 9
Г i» сГЖ
'«г Ri
jt и tM» Í-» щ
Sí? V • • ioi
г Го m-
lie '"R3
^•зЯГ! "î
(п a 2 —-Vr ж.* fluir.
* 4¡«&L' 3Jf
из* U4
r*_ i = ; *
Г* I ù- .>n 7 «
• V * ¡J. Ut'
iflrnit C€ ЛЦЕ,
ATAVFISBINI (ruf, ADS- 0741f t V A
® H
г* * * * io
мог о Ф § ®
ATAVRSBINÎ
ш-oeoftf t*l
2 Ф ф ф ф t 10
i э
рис. 6. Платы с датчиком давления и инерциальными датчиками
Atmel. Все разъемы 10-контактные 2-рядные с шагом 2,54 мм. На эти разъемы выводятся линии ввода/вывода микроконтроллера. Они могут быть мультиплексированы с периферийными блоками кристалла: коммуникационными интерфейсами и аналоговыми блоками.
Для организации связи с ПК на платах, где целевой микроконтроллер не имеет собственного интерфейса USB, предусмотрен коммуникационный мост на базе микроконтроллера AT32UC3B1256. Мост реализует функцию виртуального COM-порта и связывает ПК с интерфейсом UART микроконтроллера, что позволяет отработать на кристалле код программы по передаче данных по UART.
Целевые микроконтроллеры на платах Xplained имеют встроенный загрузчик, который позволяет запрограммировать их Flash-память без программатора по интерфейсу UART, который подключен к коммуникационному мосту. В качестве среды для программирования памяти используется бесплатная программа FLIP3. Эта программа может работать в графическом режиме либо через командную строку. На платах Xplained
эта программа работает с загрузчиком только через командную строку, так как графическая оболочка FLIP3 не предусматривает такой возможности.
Готовые примеры программ для всех плат встроены в последнюю версию AVR Studio 5. Проекты выполнены с использованием набора библиотек AVR Software Framework, которые могут быть использованы и для собственного проекта, так как изначально написаны и оптимизированы для этих процессоров. Примеры программ включают проекты для оценки большинства периферийных блоков кристаллов на этих платах, за исключением платы MEGA-1284P Xplained, для которой производитель еще не успел создать проекты, но планирует сделать их к следующему выпуску AVR Studio 5.
Быстро найти описание и документацию на платы Xplained можно в выделенном разделе сайта производителя по адресу [5].
Для наборов Xplained выпускаются также мезонинные модули с инерциальными датчиками и датчиками давления (рис. 6, табл. 3). Это наборы Inertial One, Inertial Two и Pressure One. Наборы с инерциальными дат-
чиками в двух вариантах предоставляют возможность выбора между простым дизайном (в Inertial One) и более точными характеристиками и возможностью конфигурирования (в Inertial Two).
К платам Xplained для кристаллов AT32UC3A3 и AT32UC3L0 даются примеры программ для этих мезонинных плат: они входят в состав AVR Studio 5. Эти программы обеспечивают сбор данных и передачу их на ПК посредством коммуникационного моста. Для визуализации данных распространяется программа Atmel Data Visualizer, которая позволяет оценивать в виде графиков результат работы датчиков в различных режимах работы. Вся линейка микроконтроллеров AVR32UC3 снабжена библиотеками для работы с этими датчиками.
Программное обеспечение
В качестве программного обеспечения Atmel предлагает интегрированную среду разработки AVR Studio 5, которая включает в себя все программные средства, необходимые для работы с 8- и 32-разрядными микроконтроллерами AVR. Ранее для этих двух архитектур предлагались две отдельные среды: AVR Studio 4 и AVR32 Studio, но с этого года Atmel объединила программные средства в одну интегрированную среду разработки AVR Studio 5, построенную на базе платформы Microsoft Visual Studio Isolated Shell 10.0 (ранее объединение ожидалось на базе платформы Eclipse, на которой построена AVR32 Studio).
Стандартные возможности Visual Studio Isolated Shell в AVR Studio 5 дополнены плагином Visual Assist X, включающим средства рефакторинга кода, а также расширяющим возможности оболочки Visual Studio для более удобного написания кода, навигации по проекту, просмотра кода и поиска ошибок в нем. Более подробно ознакомиться с функциями плагина можно на сайте разработчика [6].
Построенная на базе продукта от Microsoft, AVR Studio 5 включает в себя как оригинальные наработки Atmel, так и распространяемые свободно программные продукты:
• GNU toolchain — свободно распространяемый набор пакетов программ для компиляции и генерации выполняемого кода из исходных текстов программ, написанных на C. Компилятор GCC из состава GNU toolchain оптимизирован инженерами Atmel для платформы AVR и AVR32 UC3.
• Средства для отладки проектов с использованием фирменных эмуляторов JTAGICE2, JTAGICE3, AVR ONE и AVR Dragon.
• Средства для программирования Flash-памяти микроконтроллеров с использованием фирменных программаторов и эмуляторов.
• Набор библиотек AVR Software Framework и примеров программ c его использованием.
Таблица 3. Состав плат с инерциальными датчиками и датчиками давления
наименование Xplained Pressure One Xplained Inertial One Xplained Inertial Two
Код для заказа ATAVRSBPR1 ATAVRSBIN1 ATAVRSBIN2
Тип датчика Давления 3-осевые: гироскоп/акселерометр/ магнетометр (цифровой компас) 3-осевые: гироскоп/акселерометр/ магнетометр (цифровой компас)
Производитель и наименование датчика Bosch Sensortec BMP085 InvenSense ITG-3200 / Bosch Sensortec BMA150 / AKM AK8975 InvenSense IMU-3000 / Kionix KXTF9-1026 / Honeywell HMC5883L
Интерфейс связи с МК I2C I2C I2C
Рис. 7. Окно выбора микроконтроллера
Функциональные возможности AVR Studio достаточно широки и заслуживают отдельного описания, поэтому в рамках этой статьи выделим основные отличия новой AVR Studio 5 в сравнении с уже многократно описанными и многим уже знакомыми «предшественниками» — AVR Studio 4 и AVR32 Studio:
1. AVR Studio 5, являясь единой средой разработки, обеспечивает возможность миграции проекта в знакомой среде даже между 8- и 32-разрядными платформами (рис. 7).
2. Возможности Visual Assist X и встроенный функционал Visual Studio составляют более удобную систему сниппетов и подсказок, что обеспечивает более быстрое написание кода и поиск ошибок в нем.
3. Дистрибутив AVR Studio 5 включает в себя GNU toolchain и AVR Software Framework для обеих архитектур, что упрощает процесс установки всего пакета программ, а также упрощает поиск последних версий каждой программы.
4. Добавлено по нескольку десятков готовых проектов для освоения периферии каждого класса процессоров (рис. 8). Эти примеры используют библиотеки из состава AVR Sofware Framework, готовы для запуска на фирменных отладочных (стартовых и оценочных) платах, снабжены описанием и справкой по их запуску на платах, для которых они предусмотрены.
5. Библиотеки из встроенного набора AVR Software Framework написаны единообразно для разных семейств и архитектур, что обеспечивает возможность быстрого перевода проектов как между семействами, так и между архитектурами.
6. Разработка многопроцессорной платформы (где, например, в качестве центрального процессора используется 32-разрядный кристалл AVR32 UC3, а в качестве периферийного — ATmega или ATtiny) упрощается не только наличием единого интерфейса разработки, но и едиными эмуляторами/программаторами, поддерживаемыми в AVR Studio 5.
В целом отличия новой AVR Studio 5 обусловлены возможностями Visual Studio, но есть и обратная «сторона медали» — некоторые функциональные возможности, которые были реализованы в прежних AVR Studio, не были перенесены на новую платформу. Это пока вынуждает отдельных разработчиков по-прежнему использовать AVR Studio 4 и AVR32 Studio. Причины для этого следующие:
• В AVR Studio 4 предусмотрена работа с отладочными наборами STK500 и STK600, а также с программатором ATAVRISP2 в режиме командной строки. Это дает возможность автоматизировать процесс программирования микроконтроллеров в процессе отладки и при программировании микроконтроллеров в серийных изделиях.
Рис. 8. Окно выбора примера проекта
Программа находится в папке C:\Program Files\Atmel\AVR Tools\STK500>Stk500. exe при установке AVR Studio 4 в папку по умолчанию. Формат команды и передаваемые параметры (значения FUSE-и Lock-битов) можно посмотреть с ключом "h". Полученную строку можно поместить в ^.bat-файл и одним нажатием запускать процесс программирования Flash-памяти, EEPROM, FUSE- и Lock-битов. Аналогичный функционал доступен в AVR32 Studio.
• Диалог программирования микроконтроллеров в AVR Studio 4 и AVR32 Studio имеет дополнительные возможности в сравнении с AVR Studio 5. В прежних версиях реализована полная поддержка программирования всего содержимого объектного файла (ELF-файла). Объектный файл, который формируется при создании проекта, может содержать данные не только для загрузки во Flash-память, но и данные для EEPROM, значения FUSE- и Lock-битов. В AVR Studio 4 и AVR32 Studio все это содержимое программируется в соответствующие блоки памяти и конфигурационные биты, тогда как в AVR Studio 5 предусмотрена возможность программирования только содержимого Flash-памяти. Остальное игнорируется и должно программироваться отдельно через дополнительный функционал.
• Среда AVR32 Studio поддерживает полезный функционал, именуемый Nanotrace, реализованный в отладочном автомате микро-
контроллеров AVR32 UC3 и поддержанный в эмуляторах JTAGICE2/3. Этот функционал осуществляет запись трассы в выделенную пользователем оперативную память отлаживаемого процессора при выполнении им программы, что позволяет в дальнейшем произвести анализ этой трассы. В последнем JTAGICE3 эта возможность также имеется, но не поддержана в AVR Studio 5. Поэтому использование Nanotrace с JTAGICE3 возможно только в коммерческом продукте — интегрированной среде разработки Embedded Workbench фирмы IAR systems, где такая поддержка реализована. • Среда AVR Studio 5 также не поддерживает точки останова по данным, что с возможностью достаточно гибкого конфигурирования реализовано в прежних версиях AVR Studio. В них предусмотрена возможность останова программы по различным условиям (обращению к данным, логическим условиям, интервальным значениям, условиям к определенным битам данных), останова после определенного числа выполнения заданного условия, останова в зависимости от способа обращения к данным (чтение и/или запись). Также после останова по заданному условию и обновления данных в окнах просмотра переменных и регистров специальных функций возможен автоматический запуск программы на дальнейшее выполнение. Все вышеперечисленные возможности, которые реализованы только в прежних версиях
AVR Studio, могут стать определяющими факторами при выборе прежней программной платформы для разработки приложений. Здесь следует помнить, что новый внутрисхемный эмулятор JTAGICE3 не поддерживается в прежних версиях AVR Studio. На сайте [4] можно скачать последние версии AVR Studio 4.19 и AVR32 Studio 2.7, которые в преддверии AVR Studio 5 так и не вышли в свет.
Заключение
Основа отладочных средств для AVR, заложенная Atmel в последнее время, включает в себя полный комплект аппаратных и программных средств от одного производителя.
Аппаратные средства представляют собой сбалансированный набор недорогих оценочных наборов для первичной оценки возможностей микроконтроллеров и стартовый набор STK600 для дальнейшей разработки. Что касается политики Atmel по программным средствам, многие спорят о правильности выбранного направления (продукте на базе платформы от Microsoft), но следует помнить, что пока доступна лишь первая версия новой среды разработки, и мы еще не знаем, какие задумки, еще не реализованные в AVR Studio 5, имеются у производителя. В любом случае остается возможность использования проверенных временем прежних версий AVR Studio. В России также доступна про-
фессиональная выверенная среда разработки Embedded workbench от фирмы IAR Systems. ■
Литература
1. Курилин А. И., Золотухо Р. Н. AVR-микро-контроллеры: семь ярких лет становления. Что дальше? // Компоненты и технологии. 2005. № 1.
2. Ламберт Е. В. 8-разрядные микроконтроллеры AVR корпорации Atmel: новинки и тенденции развития // Компоненты и технологии. 2009. № 6.
3. www.atmel.com
4. www.atmel.no/beta_ware
5. www.atmel.com/Xplained
6. www.wholetomato.com