Модуль оптронной изоляции для внутрисхемной отладки и SPI-программаторов

При отладке схем на микроконтроллерах бывает необходимо обеспечить гальваническую изоляцию между схемой и программатором. Особенно, если это недешёвый in-system программатор, как, например, Atmel-ICE. Даже при использовании обычных SPI-программаторов бывает необходимо обеспечить развязку схемы от программатора, подключенного по USB к рабочему ПК. Особенно, если схема имеет бестрансформаторный блок питания или в ней присутствуют высокие напряжения.

За основу модуля была взята схема из app. note AVR077, перевод которой приведён в [1], рис.4.1. Однако, это схема «развязки» только для debugWire, что не позволяет переключать МК из режима SPI в debugWire и обратно, настраивать фьюзы в окне “Device Programming” Atmel Studio без подключения линий MISO, MOSI и SCK непосредственно к программатору. Три канала для SPI-интерфейса добавлены «размножением» соответствующих элементов схемы, два на передачу данных (со стороны «хоста», т.е., программатора) и один — на приём. Внутренне гальванически развязанная сдвоенная кнопка с фиксацией Sw1 через входы VE 6N137 включает или выключает каналы MISO, MOSI, SCK. P-канальный MOSFET защиты от переполюсовки со стороны МК заменён более компактным IRLML6402, а со стороны «хоста» исключён вследствие дефицита места на плате под выбранный корпус, а также потому, что используется гнездо DC-питания. Хотя, он и здесь не был бы лишним. Снижен номинал R9 на исходной схеме (R10 на рабочей, соотв.) с 12 до 10кОм: иначе, не работал детектор питания схемы (VTref). Часть компонентов заменена на SMD.

6-пиновый разъём для программатора разведён под распиновку штатного кабеля Atmel-ICE. К микроконтроллеру — разъём IDC 10 с разводкой как у программаторов USB ASP, включая питание. Питание схемы со стороны «хоста» — разъём DC под jack, внутренний контакт — «+» питания. Питание осуществляется от USB ПК, к которому подключен программатор.

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

Гнездо питания DC выбрано довольно редкое под имевшийся кабель дополнительного питания с jack’ом 4мм, от внешнего HDD.

Правильно собранный модуль отладки не требует.

Готовое устройство

Рисунок 2. Готовое устройство

Плата на рис.2 — начальный вариант, ошибки в разводке которого исправлены в приведённых ниже материалах. LED не установлен. Проект выполнен в KiCAD 4.0.7. Файлы проекта и фотошаблонов обеих сторон платы прилагаются.

R22, R24 — подбор номиналов по яркости LED, если планируется его установка.
Резисторы, конденсаторы — 5% точности. Соответствие SMD резисторов типоразмерам — нестрогое, вместо 0603 можно ставить 0805 в зависимости от того, что есть в наличии.
Чертёж кнопки Sw1 приведён в прилагаемом архиве.

Модуль эксплуатировался около полугода с Atmel-ICE в среде Atmel Studio 7.0 в режимах внутрисхемной отладки и SPI с МК Attiny4313, Atmega88PA и по SPI с Attiny2313A.

Выводы по опыту эксплуатации:

  1. Отключение SPI (кнопка с соотв. частью схемы) оказалось невостребованным. Т.е., это можно убрать и этим упростить схему.
  2. Две 6N137 можно заменить на одну сдвоенную HCPL2630 и сэкономить один корпус.
  3. Может оказаться целесообразным добавить ещё один канал на приём и один — на передачу, для UART. Однако, при использовании внутрисхемной отладки это не столь актуально.
  4. Частоту интерфейса (ISP Clock) в диалоге “Device Programming” Atmel Studio лучше оставить по умолчанию, т.к. опытным путём установлено, что устойчивая работа сохраняется до частот не выше 2МГц. Хотя, оптопары заявлены до 10Мбит. Однако, это не является серьёзным ограничением, т.к. скорость работы Atmel-ICE с такими настройками всё равно выше, чем даже у программатора на основе FTDI FT232RL в режиме BitBang [2, 3].

Ссылки:

  1. http://microsin.net/programming/avr/avr077-opto-isolated-emulation-for-the-debugwire.html
  2. http://easyelectronics.ru/skorostnoj-avr-usb-programmator-na-ft232rl-bez-vspomogatelnogo-kontrollera.html
  3. https://www.radiokot.ru/articles/79/

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
U1 Оптопара HCPL2630 1
U2-5 Оптопара 6N137 4
Q3 MOSFET-транзистор BS170 1
Q1 Биполярный транзистор BC847 1
Q2, Q4-9 Биполярный транзистор BC857 7
Q10 MOSFET-транзистор IRLML6402 1
D1 Диод Шоттки BAT43 1
LD1 Светодиод 1 3мм., 2-х цв.,общий катод
C1-5 Конденсатор 200 нФ 5 SMD, 0805
R1, R25 Резистор 1.2 кОм 2 SMD, 0603
R2,4,8 Резистор 3.3 кОм 3 SMD, 0603
R3,12,16,17,20 Резистор 2.0 кОм 5 SMD, 0805
R5 Резистор 330 1 SMD, 0603
R6,7,10,14,26 Резистор 470 5 SMD, 0805
R9,18,19,21 Резистор 270 4 SMD, 0805
R11, R23 Резистор 10 кОм 2 SMD, 0603
R13 Резистор 330 1 в отв., 1/8Вт
R15 Резистор 2.3 кОм 1 SMD, 0805
R22 Резистор 2.2 кОм 1 SMD, 0805
R24 Резистор 1 кОм 1 SMD, 0603
SW1 Переключатель 1 Кнопка с фикс. 5,8×5,8мм
J1 DC Power Socket 1 гнездо под jack
J2 Разъём д/программатора 1 IDC6, угловой
J3 Разъём д/МК 1 IDC10, прямой