Расширенные возможности отладки микроконтроллеров AVR и ARM/Cortex

№ 4’2018
PDF версия
Для качественной отладки встраиваемых приложений бывает недостаточно возможностей внутрисхемного интерфейса отладки, ведь помимо точек останова, наблюдения или изменения содержимого регистров микроконтроллера могут понадобиться дополнительные каналы обмена информацией: передача данных через терминал от различных интерфейсов, удобная визуализация данных в различных формах представления, ток потребления микроконтроллера и/или всего изделия.

Подобные задачи часто решены в отладочных платах и инструментарии для «больших» микроконтроллеров, но не всегда доступны для контроллеров ценового диапазона «менее 50 центов». В статье показаны возможности расширенной отладки микроконтроллеров фирмы Atmel, вошедшей в состав компании Microchip Technology Inc.

В статье не будут рассмотрены «обычные» функции отладчика, такие как точки останова, наблюдение за состоянием регистров и другие, а описаны возможности по использованию дополнительных каналов отладки, предоставляемые EDBG-отладчиками в отладочных платах Xplained PRO, отладчиках ATMEL-ICE и Power Debugger.

Схема отладки микроконтроллерного устройства приведена на рис. 1.

Схема отладки микроконтроллерного устройства

Рис. 1. Схема отладки микроконтроллерного устройства

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

Большинство микроконтроллеров имеют встроенное ядро поддержки отладки микроконтроллера (On-Chip Debug, OCD), но при отладке, при поддержке программных ресурсов контроллера, также могут использоваться вспомогательные каналы обмена информацией: порты ввода/вывода, интерфейсы связи (I2C, SPI, UART). Полезную информацию, особенно при отладке микропотребляющих устройств, несет измерение напряжения питания и потребляемого устройством тока.

 

Интерфейс связи МК с дебаггером

Для отладки микроконтроллеров Atmel (AVR, Cortex/ARM), в зависимости от семейства, применяются несколько специальных (Debug) интерфейсов, в том числе PDI, UPDI, JTAG, SWD. Характеристики интерфейса UPDI приведены в таблице 1.

Таблица 1. Пример интерфейса: Universal Programming Debugging Interface (UPDI)

Интерфейс

Однопроводный (1-wire), UART

Использование выводов

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

Функции

Программирование, отладка

Максимальная скорость (отладка/программирование)

~750 Кбод

Аппаратных точек останова

2

Поддержка программных точек останова

Да, не ограничено

Точек останова по данным

Нет

Доступ к регистрам

PC, SP

Канал сообщений

Да

Отслеживание Sleep-режимов

Да

Отладка с подключением к запущенной программе (горячее подключение)

Да

Пример МК

Семейство tiny817 и новее

 

Внутрисхемный отладчик/программатор

Ядром внутрисхемного отладчика/программатора могут быть EDBG (Embedded Debugger) или mEDBG (рис. 2).

Экосистема отладочных средств AVR и SAM

Рис. 2. Экосистема отладочных средств AVR и SAM

Чип внутрисхемного отладчика 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.

Схема

Рис. 3. Схема измерительного блока XAM

Интегрированный в отладочные платы Xplained PRO модуль Xplained PRO Analog Module (XAM) формирует фиксированное напряжение питания и позволяет измерять потребляемый ток (микроконтроллера или микроконтроллера совместно с периферией) с частотой 15,15 кГц (табл. 2).

Таблица 2. Параметры измерительного модуля XAM

Диапазоны измерений

Разрешение

Точность

Комментарии

Диапазон 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, используемые в отладочных средствах Atmel

Рис. 4. Интерфейсы USB, используемые в отладочных средствах Atmel

Интерфейсы связи по 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).

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

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

 

Data Visualizer

Визуализатор данных Data Visualizer отображает получаемые сведения в удобной форме и поддерживает прием данных через интерфейсы DGI и последовательный порт — как от отладчиков EDBG, mEDBG, так и через USB CDC (отладчика или сторонний) и RS‑232.

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

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

Устройство устанавливается как plug-in для Atmel Studio, но доступна и автономная версия. Элементы прибора имеют подключаемые входы и выходы (табл. 3), что предоставляет возможность разным интерфейсам и элементам общаться для обработки и визуализации данных.

Таблица 3. Типы отображаемых входов и выходов инструментов DV

Внешний вид

Тип

Источник данных (штекер)

Неподключенный вход

для данных (гнездо)

Подключенный вход данных

 

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

Подключение выходов к входам инструментов

Рис. 6. Подключение выходов к входам инструментов

Внешние подключаемые модули:

  • Data Gateway Interface (DGI);
  • последовательный порт.

Элементы отображения (инструменты):

  • терминал;
  • график;
  • осциллограф;
  • Power Debugging;
  • пользовательская панель инструментов.

Модули обработки протоколов (Protocol handling modules):

  • поток данных (Data Stream);
  • Atmel Data Protocol (ADP).

Утилиты:

  • счетчик (Sample rate counter);
  • запись лога (File logger).

Внешние подключаемые модули.
Последовательный порт

СОМ-порт (рис. 7) может выступать источником данных для построения графиков, входа и выхода данных для терминала и т. д.

Настройка последовательного COM-порта

Рис. 7. Настройка последовательного COM-порта

Внешние подключаемые модули.
DGI-интерфейс

Интерфейс DGI (рис. 8, табл. 4) позволяет подключать интерфейсы SPI, TWI, порты ввода/вывода, информацию об измеряемом потреблении тока и профилирование кода (адреса, Sleep-монитор, монитор стека, OCD-сообщения, адреса переменных).

Настройка DGI-интерфейса

Рис. 8. Настройка DGI-интерфейса

Таблица 4. Опции интерфейса DGI

Опция

Описание

Ограничения

Code Location

Семплирование программного счетчика

SAM и AVR
с интерфейсом UPDI

Stack Monitor

Опрос указателя стека и отображение в мониторе использования стека

AVR
с интерфейсом UPDI

AVR MCU OCD
messaging

Передача OCD-сообщений (через debug-интерфейс) в Data Visualizer (в Atmel Studio)

AVR

AVR MCU
sleep monitor

Мониторинг нахождения микроконтроллера в Sleep-режиме

AVR
с интерфейсом UPDI

Add
Memory Location

Запрос и контроль адреса ячейки памяти

SAM

Большинство элементов имеют вход и выход, то есть данные могут поступать от отлаживаемого микроконтроллера и передаваться в микроконтроллер.

Инструменты визуализации

Power Analysis

Окно показывает профиль потребления в реальном времени, дополнительно отображаются Sleep-монитор, отображение состояния портов ввода/вывода с привязкой к исполняемому коду (рис. 9).

Окно Power Analysis

Рис. 9. Окно Power Analysis

Graph

Отображение графиков (рис. 10). Данные можно получать как через подключенные к микроконтроллеру интерфейсы связи (SPI, UART и др.), так и через отладочный интерфейс (OCD) — On-Board Debugging Message (OBDM).

Пример отображения данных в виде графика

Рис. 10. Пример отображения данных в виде графика

Terminal

Служит для отображения информации в текстовом виде и отправки данных в микроконтроллер (рис. 11).

Окно терминала

Рис. 11. Окно терминала

Настраиваемая пользовательская панель

Позволяет создать панель инструментов с элементами ввода и вывода информации в удобном для пользователя виде (рис. 12).

Настраиваемая панель инструментов

Рис. 12. Настраиваемая панель инструментов

Поддержка настраиваемых протоколов

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

Получение данных с нескольких каналов сенсорных кнопок

Рис. 13. Получение данных с нескольких каналов сенсорных кнопок

Поддерживаются два протокола: однонаправленный протокол Data Stream Protocol и двунаправленный Atmel Data Protocol (ADP), представленные на рис. 14.

Использование двунаправленного конфигурируемого протокола

Рис. 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

Рис. 15. Atmel-ICE

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).

Atmel Power Debugger

Рис. 16. Atmel Power Debugger

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

Рис. 17. Отладочная плата серии Xplained PRO

В платах Xplained PRO под ARM Cortex-микроконтроллеры EDBG-отладчик может быть перепрограммирован прошивкой, поддерживающей дебаггер J‑LINK Segger. Тогда появляется возможность использования неограниченного числа точек останова, увеличенной скорости программирования и способности отладки в сторонних средах разработки (emIDE и Eclipse).

 

Заключение

Многие микроконтроллеры AVR/SAM, помимо стандартных интерфейсов связи (UART, I2C, SPI), позволяют обмениваться пользовательскими данными через OCD (On-Chip Debug) канал отладки. Полезную для отладки информацию предоставляют и порты ввода/вывода, и ток потребления, а программные инструменты (Data Visualizer) способны отображать данные в удобном виде или создавать свои виртуальные инструменты.

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

Литература
  1. Data Visualizer Software User’s Guide. www.microchip.com
  2. Programmers and Debuggers. Power Debugger User’s Guide. www.microchip.com
  3. Programmers and Debuggers. EDBG User’s Guide. www.microchip.com

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *