AVR077: оптоизолированный DebugWIRE |
![]() |
Добавил(а) microsin | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Здесь приведен перевод апноута AVR077: Opto Isolated Emulation for the DebugWIRE [1], посвященного физической организации интерфейса отладки DebugWIRE. Рассматривается также вопрос гальванической изоляции отлаживаемой системы с помощью оптронов, работа интерфейса DebugWIRE совместно с аппаратными отладчиками AVR Dragon™ и JTAGICE mkII [2] (далее по тексту просто отладчик). Этот апноут показывает, как реализовать оптоизолированный интерфейс для DebugWIRE. Это может помочь отлаживать приложения firmware с неизолированными от сети 220V источниками питания наподобие балластов, моторов, пылесосов, рефрижераторов, мощных нагревателей с тиристорными регуляторами и т. п. Инженеры-разработчики должны иметь в своем арсенале инструментарий отладки в условиях значительных уровней помех, вызванными большими токами и/или напряжениями, этот инструментарий должен обеспечивать безопасность как разработчика, так и аппаратуры. Само собой, в таких условиях может иметь значение даже правильность размещения в коде точки останова. Останов программы в недопустимом месте может просто вывести из строя отлаживаемое устройство или даже аппаратный отладчик. [3. Почему нужна гальваническая изоляция при отладке] В некоторых приложениях отлаживаемый микроконтроллер (MCU) запитан от недорогого источника питания, который напрямую от напряжения питающей сети переменного тока 220V. В этом случае потенциал выводов питания MCU (VDD и VSS) может достичь сотен вольт относительно земли. Если в этом случае аппаратный отладчик подключен напрямую к MCU, то могут произойти неприятные вещи, в зависимости от схемы и конструкции источника питания аппаратного отладчика: • Если источник питания отладчика (и шасси компьютера, к которому он подключен) гальванически изолирован от земли, то схема отладчика и шасси компьютера получит потенциал переменного тока питающей сети (размах до 380 вольт) относительно земли. Такое высокое напряжение смертельно опасно для человека. К счастью таких проблем можно избежать, если использовать отладку микроконтроллеров AVR с оптической изоляцией интерфейса отладки. Для этого лучше всего подходит интерфейс DebugWIRE, потому что для связи с отлаживаемым микроконтроллером используется только один сигнал. Этот апноут показывает интерфейсы отладки для AVR DebugWIRE. Похожие принципы могут использоваться для изоляции программатора ISP (интерфейс SPI) и интерфейса отладки JTAG. [4. Оптронная изоляция DebugWIRE] Схема оптоизоляции для debugWIRE показана на рис. 4-1. Два сигнала получают оптронную изоляцию: напряжение питания цели (target voltage, питания отлаживаемого микроконтроллера, или Vtref) и сигнал сброса/отладки Reset/DebugWIRE. В схеме также реализована защита от обратной полярности с помощью MOSFET транзиcторов с P-каналом Q1 и Q2. Рис. 4-1. Схема оптронной изоляции для DebugWIRE. 4.1 Индикация напряжения питания отлаживаемого микроконтроллера (target voltage) Схема использует верхний по схеме оптрон U2A и работает следующим образом: • Если на target подано питание, то LED (светодиод) в оптроне U2A горит. Освещаемый им фотодиод и управляемый транзистор оптрона открываются, подавая на базу транзистора T3 низкое напряжение. Транзистор T3 открывается, и выходной VTREF получает уровень лог. 1. 4.2 Интерфейс DebugWIRE Схема использует два нижних по схеме оптрона, чтобы осуществить передачу данных в обе стороны через один цифровой двунаправленную вывод. Вот так происходит обмен от хоста до target: • Когда сигнал DBW (сигнал DebugWIRE на стороне отладчика) находится в состоянии лог. 0, то транзистор T2 открывается, зажигая LED в оптроне U1. Это принимает фотодетектор в оптроне, и выходной транзистор оптрона U1 открывается. Это приводит к тому, что RESET подтягивается к низкому уровню через резистор R4, и также обеспечивает гашение LED в оптроне U2B. Это означает, что транзистор в оптроне U2B также закрывается. На стороне target эта простая схема достаточно мощна, чтобы управлять выводом сброса AVR. Обмен в обратную сторону, от target к хосту (к отладчику) работает подобным образом, но схема должна быть улучшена для управления выводом DBW отладчика JTAGICE mkII или AVRDragon. • Когда RESET в состоянии лог. 0, транзистор T1 открыт и LED в U2B горит. Излучение от него принимает фотодетектор оптрона U2B, транзистор оптрона U2B открыт, и транзистор T6 закрыт. Это приводит к тому, что DBW подтянут к земле через транзистор MOSFET Q0 с N-каналом, и также обеспечивает выключение LED в оптроне U1. Это значит, что транзистор в оптроне U1 также выключен. Схема получается двунаправленной. Однако пользователь не должен допускать одновременное управление сигналами (подключение сразу двух выходов) с обоих сторон. Это не приведет к повреждению схемы, но увеличит ток потребления. В таблице 4-1 показана цоколевка коннектора для target-интерфейса JTAGMK2, и как он подключается к цели target device. Это цоколевка Atmel для интерфейса JTAG, который используется в аппаратном отладчике JTAGICE mkII [2]. На коннекторе JTAGMK2 может работать как JTAG, так и интерфейс ISP. Таблица 4-1. Коннектор JTAGMK2.
4.3 Интерфейс AVR Dragon Поскольку AVR Dragon предоставляет коннектор Vcc, то можно просто запитать сторону target оптоизолированной части интерфейса. На рис. 4-2 показан базовый принцип для этого приложения. Рис. 4-2. Изолированный интерфейс DebugWIRE с аппаратным отладчиком AVR Dragon. 4.3 Интерфейс AVR Dragon с низковольтной target Когда target работает на низком напряжении питания, то питания для интерфейса должна быть отдельная батарея. На рис. 4-3 показан базовый принцип для этого приложения. Рис. 4-3. Изолированный интерфейс DebugWIRE с аппаратным отладчиком AVR Dragon при низком напряжении питания target. Согласно этой схеме, постоянный ток будет протекать через защитный диод ножки сброса AVR (AVR reset pin), и VTREF показывает напряжение батареи, а не напряжение target voltage. Эта ситуация могла бы быть улучшена несколькими незначительными изменениями в схеме: 2 диода Шоттки для защиты сигнала RESET, один транзистор структуры NPN для управления током в U2A, когда включается target voltage. 4.5 Интерфейс JTAG mkII (JTAGICE mkII) Ту же самую схему интерфейса можно использовать с отладчиком JTAGICE mkII [2]. Так как JTAGICE mkII не предоставляет вывод Vcc, то важно использовать отдельный стабилизированный и изолированный источник постоянного тока 5V для питания интерфейса на стороне target. На рис. 4-4 показан базовый принцип для этого приложения. Рис. 4-4. Изолированный интерфейс DebugWIRE с аппаратным отладчиком JTAGICE mkII. [5. Заключение] Этот апноут предоставляет метод использования аппаратных отладчиков JTAGICE mkII или AVR Dragon для отладки устройств, которые питаются от неизолированных источников переменного напряжения. Компоненты описанных схем можно просто собрать на любой плате макетирования, например stripboard/VeroBoard [3]. Этот интерфейс был протестирован на простом приложении с тактовой частотой до 16 МГц и напряжением питания 5V Vcc. Хотя оптроны не предназначены для низкого напряжения, интерфейс хорошо работает на полной скорости до напряжения питания 3.6V. Низковольтный вариант интерфейса был протестирован на 8MHz до напряжения 2.2V. [6. Список деталей (Bill Of Materials, BOM) оптоизолированного интерфейса DebugWire]
[Ссылки] 1. AVR077: Opto Isolated Emulation for the DebugWIRE site:atmel.com. |