Расширенные возможности отладки микроконтроллеров AVR и ARM/Cortex
Подобные задачи часто решены в отладочных платах и инструментарии для «больших» микроконтроллеров, но не всегда доступны для контроллеров ценового диапазона «менее 50 центов». В статье показаны возможности расширенной отладки микроконтроллеров фирмы Atmel, вошедшей в состав компании Microchip Technology Inc.
В статье не будут рассмотрены «обычные» функции отладчика, такие как точки останова, наблюдение за состоянием регистров и другие, а описаны возможности по использованию дополнительных каналов отладки, предоставляемые EDBG-отладчиками в отладочных платах Xplained PRO, отладчиках ATMEL-ICE и Power Debugger.
Схема отладки микроконтроллерного устройства приведена на рис. 1.
Микроконтроллер принимает и передает информацию внутрисхемному отладчику (дебаггер, Debugger) через доступные интерфейсы связи с отладчиком. Внутрисхемный отладчик (в составе отладочной платы или как автономное устройство) через интерфейс связи с компьютером (ПК) направляет информацию в программное обеспечение, например в Atmel Studio, где поступившие сведения обрабатываются и отображаются в удобном для пользователя виде.
Большинство микроконтроллеров имеют встроенное ядро поддержки отладки микроконтроллера (On-Chip Debug, OCD), но при отладке, при поддержке программных ресурсов контроллера, также могут использоваться вспомогательные каналы обмена информацией: порты ввода/вывода, интерфейсы связи (I2C, SPI, UART). Полезную информацию, особенно при отладке микропотребляющих устройств, несет измерение напряжения питания и потребляемого устройством тока.
Интерфейс связи МК с дебаггером
Для отладки микроконтроллеров Atmel (AVR, Cortex/ARM), в зависимости от семейства, применяются несколько специальных (Debug) интерфейсов, в том числе PDI, UPDI, JTAG, SWD. Характеристики интерфейса UPDI приведены в таблице 1.
Интерфейс |
Однопроводный (1-wire), UART |
Использование выводов |
Отладочный вывод может использоваться для отладки или служить входом сброса или В/В. Процедура выдачи высокого напряжения требуется для входа в режим отладки |
Функции |
Программирование, отладка |
Максимальная скорость (отладка/программирование) |
~750 Кбод |
Аппаратных точек останова |
2 |
Поддержка программных точек останова |
Да, не ограничено |
Точек останова по данным |
Нет |
Доступ к регистрам |
PC, SP |
Канал сообщений |
Да |
Отслеживание Sleep-режимов |
Да |
Отладка с подключением к запущенной программе (горячее подключение) |
Да |
Пример МК |
Семейство tiny817 и новее |
Внутрисхемный отладчик/программатор
Ядром внутрисхемного отладчика/программатора могут быть EDBG (Embedded Debugger) или mEDBG (рис. 2).
Чип внутрисхемного отладчика EDBG интегрируется в отладочные платы Atmel Xplained PRO. В дополнение к возможностям программирования и отладки через среду разработки Atmel Studio отладчик EDBG предоставляет вспомогательные каналы связи между компьютером и отлаживаемым микроконтроллером (SPI, TWI, состояние портов ввода/вывода, измерение тока).
mEDBG — сокращенный вариант EDBG-отладчика, он не имеет канала данных DGI (Data Gateway Interface, речь о котором пойдет ниже).
Модуль измерения тока
Некоторые отладочные средства (Power Debugger и отладочные платы серии Xplained PRO), имеющие EDBG, могут измерять потребляемый ток микроконтроллера или микроконтроллера и внешней периферии. Для этого служит модуль XAM (Xplained Pro Analog Module), подключаемый к EGDB-отладчику.
Схема измерительного блока приведена на рис. 3.
Интегрированный в отладочные платы Xplained PRO модуль Xplained PRO Analog Module (XAM) формирует фиксированное напряжение питания и позволяет измерять потребляемый ток (микроконтроллера или микроконтроллера совместно с периферией) с частотой 15,15 кГц (табл. 2).
Диапазоны измерений |
Разрешение |
Точность |
Комментарии |
Диапазон 1 |
20 нA |
1 LSB ±1% |
Ниже 1 мкA точность ухудшается. Типовое значение 1 LSB ±10% при токе 300 нA |
Диапазон 2 |
150 нA |
1 LSB ±1% |
|
Диапазон 3 |
10 мкA |
1 LSB ±1% |
|
Диапазон 4 |
100 мкA |
1 LSB ±1% |
Выше 100 мA точность ухудшается. Типовое значение 1 LSB ±5% при 400 мA. Максимальный ток 400 мA |
Внутрисхемный отладчик Power Debugger имеет схожие характеристики с модулем XAM в отладочных платах серии Xplained PRO, но может измерять ток с большей частотой (62,5 кГц) с разрешением 16 бит по каналу А и 12 бит по каналу B. Дополнительно отладчик Power Debugger генерирует напряжение питания отлаживаемого устройства в диапазоне 1,6–5,5 В с током 100 мА.
USB
Для связи отладчика с персональным компьютером используется интерфейс USB, который предоставляет несколько логических интерфейсов: HID, Mass Storage, CDC (виртуальный COM-порт), DGI (Data Gateway Interface). Однако из-за ограничения числа конечных точек не все интерфейсы могут быть доступны одновременно.
Интерфейсы связи по USB в отладчиках имеют разные предназначения.
USB CDC (виртуальный COM-порт):
- Предоставление текстовой информации (printf).
- Терминал.
- Канал связи для протоколов:
- QTouch debug data;
- Wireless performance analyzer;
- визуализация данных через Data Visualizer;
- загрузчик (Bootloader).
Mass Storage (накопитель):
- Определяется как накопитель (жесткий диск).
- Доступен не для всех отладочных плат.
- Накопитель содержит файлы:
- ссылку на описание отладочной платы;
- статус операции программирования;
- версию прошивки;
- возможность программирования без установки драйверов и ПО (путем копирования hex-файла в накопитель).
Data Gateway Interface (DGI):
- Проприетарный USB bulk-интерфейс.
- Шлюз для интерфейсов SPI, USART, UART, I2C.
- Канал передачи данных измерения напряжения и тока.
- Данные логического анализатора (состояния портов ввода/вывода).
- Предоставляются API для DGI-протокола и библиотеки DGILib.
Благодаря расширенным возможностям отладчик EDBG позволяет по различным интерфейсам и нескольким каналам передачи через USB получить множество данных с отлаживаемой платы (рис. 5).
Data Visualizer
Визуализатор данных Data Visualizer отображает получаемые сведения в удобной форме и поддерживает прием данных через интерфейсы DGI и последовательный порт — как от отладчиков EDBG, mEDBG, так и через USB CDC (отладчика или сторонний) и RS‑232.
Визуализатор поддерживает прием не только сырых данных, но и основанных на коммуникационных протоколах, визуализирует данные в реальном времени с привязкой к временным отметкам, а также позволяет наблюдать потребляемый ток согласно выполняемому коду и состоянию портов ввода/вывода.
Data Visualizer имеет настраиваемую панель инструментов (кнопки, слайдеры, измерительные приборы и др.), где находятся такие функции, как осциллограф, терминал, графики, измерение интервалов времени (курсор) и мгновенного, среднего значения тока, оценка срока службы батареи.
Устройство устанавливается как plug-in для Atmel Studio, но доступна и автономная версия. Элементы прибора имеют подключаемые входы и выходы (табл. 3), что предоставляет возможность разным интерфейсам и элементам общаться для обработки и визуализации данных.
Внешний вид |
Тип |
Источник данных (штекер) |
|
Неподключенный вход для данных (гнездо) |
|
Подключенный вход данных |
Пользователь, перетаскивая мышкой штекер к гнезду, может подключать различные источники данных к входам инструментов (рис. 6).
Внешние подключаемые модули:
- Data Gateway Interface (DGI);
- последовательный порт.
Элементы отображения (инструменты):
- терминал;
- график;
- осциллограф;
- Power Debugging;
- пользовательская панель инструментов.
Модули обработки протоколов (Protocol handling modules):
- поток данных (Data Stream);
- Atmel Data Protocol (ADP).
Утилиты:
- счетчик (Sample rate counter);
- запись лога (File logger).
Внешние подключаемые модули.
Последовательный порт
СОМ-порт (рис. 7) может выступать источником данных для построения графиков, входа и выхода данных для терминала и т. д.
Внешние подключаемые модули.
DGI-интерфейс
Интерфейс DGI (рис. 8, табл. 4) позволяет подключать интерфейсы SPI, TWI, порты ввода/вывода, информацию об измеряемом потреблении тока и профилирование кода (адреса, Sleep-монитор, монитор стека, OCD-сообщения, адреса переменных).
Опция |
Описание |
Ограничения |
Code Location |
Семплирование программного счетчика |
SAM и AVR |
Stack Monitor |
Опрос указателя стека и отображение в мониторе использования стека |
AVR |
AVR MCU OCD |
Передача OCD-сообщений (через debug-интерфейс) в Data Visualizer (в Atmel Studio) |
AVR |
AVR MCU |
Мониторинг нахождения микроконтроллера в Sleep-режиме |
AVR |
Add |
Запрос и контроль адреса ячейки памяти |
SAM |
Большинство элементов имеют вход и выход, то есть данные могут поступать от отлаживаемого микроконтроллера и передаваться в микроконтроллер.
Инструменты визуализации
Power Analysis
Окно показывает профиль потребления в реальном времени, дополнительно отображаются Sleep-монитор, отображение состояния портов ввода/вывода с привязкой к исполняемому коду (рис. 9).
Graph
Отображение графиков (рис. 10). Данные можно получать как через подключенные к микроконтроллеру интерфейсы связи (SPI, UART и др.), так и через отладочный интерфейс (OCD) — On-Board Debugging Message (OBDM).
Terminal
Служит для отображения информации в текстовом виде и отправки данных в микроконтроллер (рис. 11).
Настраиваемая пользовательская панель
Позволяет создать панель инструментов с элементами ввода и вывода информации в удобном для пользователя виде (рис. 12).
Поддержка настраиваемых протоколов
При подключении все каналы передачи данных (UART, I2C, SPI) могут иметь функцию автоматического распознавания протокола (рис. 13).
Поддерживаются два протокола: однонаправленный протокол Data Stream Protocol и двунаправленный Atmel Data Protocol (ADP), представленные на рис. 14.
Оба протокола полностью конфигурируемы и позволяют принимать различные каналы данных для отображения в Data Visualizer.
Внутрисхемная отладка с использованием debug-интерфейса (OCD) совместно с дополнительными каналами отладки существенно расширяет возможности отладчиков, так как предоставляет множество потоков данных.
Описанные возможности присутствуют во внутрисхемных отладчиках Power Debugger, ATMEL-ICE (нет измерения тока) и отладочных платах серии Xplained PRO.
Отладочные средства Atmel
Atmel-ICE
Atmel-ICE (рис. 15) — это инструмент для отладки и программирования Atmel ARM Cortex M‑ и Atmel AVR-микроконтроллеров с помощью debug-интерфейсов JTAG, SWD, PDI, UPDI, debugWIRE, aWire, TPI и SPI. Связь с компьютером осуществляется посредством USB-интерфейса, поддерживается передача данных через Data Gateway Interface (DGI).
Atmel-ICE может формировать напряжение питания для отлаживаемого устройства в диапазоне 1,6–5,5 В с током 100 мА.
Power Debugger
Atmel Power Debugger (рис. 16) — инструмент для отладки и программирования Atmel ARM Cortex M‑ и Atmel AVR-микроконтроллеров с использованием debug-интерфейсов JTAG, SWD, PDI, UPDI, debugWIRE, aWire, TPI и SPI. В дополнение к каналам программирования Power Debugger имеет два независимых канала для измерения тока потребления отлаживаемых устройств. Связь с компьютером реализована через USB-интерфейс, поддерживаются USB CDC (виртуальный COM-порт) и Data Gateway Interface (DGI).
Power Debugger может формировать напряжение питания для отлаживаемого устройства в диапазоне 1,6–5,5 В с током 100 мА и измерять ток, потребляемый от USB подключенного устройства. Совместно с Data Visualizer отладчик отображает график потребления тока с привязкой к выполняемым командам.
По сути, Power Debugger — это отладчик Atmel-ICE с функцией измерения токов.
Отладочные платы Xplained PRO
Отладочные платы серии Xplained PRO (рис. 17) содержат целевой микроконтроллер, разъемы для подключения плат расширения, интегрированный EDBG-отладчик (с DGI и USB CDC), некоторые платы имеют XAM-модуль измерения тока потребления целевого микроконтроллера или общего потребления (МК и подключенной к нему периферии).
В платах Xplained PRO под ARM Cortex-микроконтроллеры EDBG-отладчик может быть перепрограммирован прошивкой, поддерживающей дебаггер J‑LINK Segger. Тогда появляется возможность использования неограниченного числа точек останова, увеличенной скорости программирования и способности отладки в сторонних средах разработки (emIDE и Eclipse).
Заключение
Многие микроконтроллеры AVR/SAM, помимо стандартных интерфейсов связи (UART, I2C, SPI), позволяют обмениваться пользовательскими данными через OCD (On-Chip Debug) канал отладки. Полезную для отладки информацию предоставляют и порты ввода/вывода, и ток потребления, а программные инструменты (Data Visualizer) способны отображать данные в удобном виде или создавать свои виртуальные инструменты.
Таким образом, совокупность программно-аппаратных решений обеспечивает разработчика расширенным набором инструментов для качественной внутрисхемной отладки встраиваемых приложений.
- Data Visualizer Software User’s Guide. www.microchip.com
- Programmers and Debuggers. Power Debugger User’s Guide. www.microchip.com
- Programmers and Debuggers. EDBG User’s Guide. www.microchip.com