Программирование AVR AVR077: оптоизолированный DebugWIRE Fri, April 19 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

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.

AVR077-DebugWIRE-fig4-1

Рис. 4-1. Схема оптронной изоляции для DebugWIRE.

4.1 Индикация напряжения питания отлаживаемого микроконтроллера (target voltage)

Схема использует верхний по схеме оптрон U2A и работает следующим образом:

• Если на target подано питание, то LED (светодиод) в оптроне U2A горит. Освещаемый им фотодиод и управляемый транзистор оптрона открываются, подавая на базу транзистора T3 низкое напряжение. Транзистор T3 открывается, и выходной VTREF получает уровень лог. 1.
• Если target не запитана, LED в U2A не горит. Транзистор в оптроне закрывается, потенциал на базе транзистора T3 получает высокий уровень. T3 закрывается, VTREF падает до лог. 0 через резистор R10.

4.2 Интерфейс DebugWIRE

Схема использует два нижних по схеме оптрона, чтобы осуществить передачу данных в обе стороны через один цифровой двунаправленную вывод. Вот так происходит обмен от хоста до target:

• Когда сигнал DBW (сигнал DebugWIRE на стороне отладчика) находится в состоянии лог. 0, то транзистор T2 открывается, зажигая LED в оптроне U1. Это принимает фотодетектор в оптроне, и выходной транзистор оптрона U1 открывается. Это приводит к тому, что RESET подтягивается к низкому уровню через резистор R4, и также обеспечивает гашение LED в оптроне U2B. Это означает, что транзистор в оптроне U2B также закрывается.
• Когда DBW в состоянии лог. 1, то транзистор T2 закрыт, выходной транзистор U1 также закрыт. Сигнал RESET подтягивается к лог. 1 через резистор R4. LED в U2B выключен. Таким образом, к DBW нет обратного отклика.
• Если DBW не управляется со стороны отладчика, например он подключен к порту ввода/вывода, находящемся в третьем, отключенном состоянии (tristated I/O pin), то он подтянут к лог. 1 через резистор R12. Как уже было описано ранее, это также переводит сигнал RESET на стороне target в состояние лог. 1.
• Если оба сигнала, и DBW на стороне отладчика, и RESET на стороне target, ничем не управляются, то оба они находятся в состоянии лог. 1.

На стороне target эта простая схема достаточно мощна, чтобы управлять выводом сброса AVR. Обмен в обратную сторону, от target к хосту (к отладчику) работает подобным образом, но схема должна быть улучшена для управления выводом DBW отладчика JTAGICE mkII или AVRDragon.

• Когда RESET в состоянии лог. 0, транзистор T1 открыт и LED в U2B горит. Излучение от него принимает фотодетектор оптрона U2B, транзистор оптрона U2B открыт, и транзистор T6 закрыт. Это приводит к тому, что DBW подтянут к земле через транзистор MOSFET Q0 с N-каналом, и также обеспечивает выключение LED в оптроне U1. Это значит, что транзистор в оптроне U1 также выключен.
• Когда сигнал RESET в состоянии лог. 1, транзистор T1 закрыт, выходной транзистор в оптроне U2B закрыт. T6 насыщается (открыт) и Q0 закрывается, так что DBW подтягивается к лог. 1 через резистор R12. Светодиод LED в оптроне U1 также выключается. Это также не дает обратного отклика к RESET.

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

В таблице 4-1 показана цоколевка коннектора для target-интерфейса JTAGMK2, и как он подключается к цели target device. Это цоколевка Atmel для интерфейса JTAG, который используется в аппаратном отладчике JTAGICE mkII [2]. На коннекторе JTAGMK2 может работать как JTAG, так и интерфейс ISP.

Таблица 4-1. Коннектор JTAGMK2.

Мама на шлейфе JTAGICE mkII Коннектор на target Цвета кабеля-осьминога Цоколевка ISP отладчика Dragon или программатора STK500
Pin 1 (TCK) SCK Черный (Black) 3
Pin 2 (GND) GND Белый (White) 6
Pin 3 (TDO) MISO Серый (Grey) 1
Pin 4 (VTref) VTref Пурпурный (Purple) 2
Pin 5 (TMS) отсутствует Синий (Blue) отсутствует
Pin 6 (nSRST) RESET Зеленый (Green) 5
Pin 7 (не подключен) отсутствует Желтый (Yellow) отсутствует
Pin 8 (nTRST) отсутствует Оранжевый (Orange) отсутствует
Pin 9 (TDI) MOSI Красный (Red) 4
Pin 10 (GND) GND Коричневый (Brown) отсутствует

4.3 Интерфейс AVR Dragon

Поскольку AVR Dragon предоставляет коннектор Vcc, то можно просто запитать сторону target оптоизолированной части интерфейса. На рис. 4-2 показан базовый принцип для этого приложения.

AVR077-DebugWIRE-AVR-Dragon-fig4-2

Рис. 4-2. Изолированный интерфейс DebugWIRE с аппаратным отладчиком AVR Dragon.

4.3 Интерфейс AVR Dragon с низковольтной target

Когда target работает на низком напряжении питания, то питания для интерфейса должна быть отдельная батарея. На рис. 4-3 показан базовый принцип для этого приложения.

AVR077-DebugWIRE-AVR-Dragon-low-Vtg-fig4-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 показан базовый принцип для этого приложения.

AVR077-DebugWIRE-JTAGICE-mkII-fig4-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]

RefDes Шт. Наименование, номинал Описание
C1, C2 1 0.2 мкф
D0 1 BAT43 Диод Шоттки.
J1 1 CON_6 Коннектор ISP с цоколевкой Atmel ISP6, 6 выводов.
Q0 1 BS170 FET транзистор с N-каналом.
Q1, Q2 2 FDS9435A MOSFET транзистор с P-каналом для защиты от обратной полярности питающего напряжения.
R1, R4 2 2 кОм
R8, R10 2 1.2 кОм
R2, R11 2 470
R12 1 3.3 кОм
R3, R7 2 330
R6 1 270
R9 1 12 кОм
T1, T2, T3 3 BC556 Обычный транзистор структуры PNP.
T6 1 BC546 Обычный транзистор структуры NPN.
U1 1 6N137 Одноканальный высокоскоростной оптрон.
U2 1 HCPL2630 Двухканальный высокоскоростной оптрон.

[Ссылки]

1. AVR077: Opto Isolated Emulation for the DebugWIRE site:atmel.com.
2. Atmel AVR JTAGICE mkII.
3. Макетная плата stripboard.

 

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


Защитный код
Обновить

Top of Page