Защита для AVR Dragon
Как вы уже знаете, у меня сломался дракон. Путем нехитрых манипуляций он был оживлен, но все равно, было обидно. Для того, чтобы не допустить такой нелепости в будущем, я упихал его в корпус, добавил буфер и назвал то, что получилось DragonForce.
Собственно, рассказывать про этот проектик особо нечего.
Схема
Схему и плату можно посмотреть тут:
Работает все очень просто – питание подается через резистор R1 и ограничивается стабилитронами. Расчет тут на то, что если питание будет значительно превышать 5В, то R1 сгорит быстрее чем стабилитроны и оборвет цепь питания.
Резисторы R2-R5, по идее, не должны давать “звенеть” кабелю от буфера до дракона, хотя что с ними что без них все хорошо работает. На всякий случай, поставил. R6 подтягивает MISO в отсутствии целевой платы – не дает микросхемке буфера загенерировать.
R7-R10 для согласования выходного сопротивления микросхемы с волновыми сопротивлением кабеля. Хотя, в данном случае, это тоже не особо актуально. На всякий случай поставил.
Так как линия Reset двунаправленная, ее буферизировать нельзя (точнее можно, но сложно). Поэтому, я просто влепил обычную защиту из резистора и диодной вилки.
Под x244 скрывается микросхема 74HC244 – драйвер шины. Умеет выдавать наружу до 50мА тока и имеет по защитной диодной вилке на канал. Вилка выдерживает по 20мА в каждую сторону.
Разъемы JTAG и ISP запараллеленны, поэтому я использую только JTAG – там больше выводов.
Собственно, можно было бы обойтись просто диодными вилками на каждую шину. Это было бы даже лучше – не было бы проблем с SPI.
Что за проблемы с SPI ?
Проблема в том, что линии ISP и SPI совмещены. Если вы используете SPI, то дракон подключенный будет мешать контроллеру. В оригинальном драконе эта проблема решается теми самыми аналоговыми ключами, которые сгорели.
У этой проблемы три решения:
-
Для защиты использовать просто диодные вилки
-
Включать драйвер только когда уровень Reset находится в низком состоянии
-
Использовать два провода – один для ISP, второй для DebugWire.
Я, естественно, подумал об этом всем только после того, как сделал плату, поэтому я остановлюсь на третьем варианте. Если что-то будет мешать, переделаю плату.
Еще, я сделал отдельную кнопку Reset для дракона. Ее очень не хватало на оригинальной плате – больше не пройдется вытаскивать и вставлять USB штекер. Reset я организовал очень жестко – я просто разрываю +5 вольт от USB. Не знаю, на сколько это корректно, но, блин, работает.
Фотки
Скучная статья, правда? Мало фоток. Исправляюсь 🙂
Верхняя крышка. Ресет сделан из обычного “концевого” совкового микрика. Концевик загнут и выведен через корпус. Получилась маленькая неприметная кнопочка – ресет. Все сделано из подручных материалов, поэтому не очень красиво.
Нижняя крышка. Собственно сам дракон и его крепление. Видно разъем ресета. Внутри разъема USB контакты перекушены, и в разрыв впаивается ресет.
Ну, и после сборки все это выглядит так. Чтобы видеть светодиоды самого дракона, я сделал в корпусе отверстие. Потом подумал, что просто дырка – не очень-то эстетично, и заткнул ее бесцветным светодиодом с обрезанными лапками. Светодиоды дракона прекрасно просвечивают через такую затычку. С боку видна кнопочка ресета.
Ага, оказывается, произошла ошибка и распиновка на наклейке не такая, как на самом деле. Настоящая распиновка вот такая:
Естественно, ваша распиновка может отличаться, картинку я выкладываю в основном для себя, чтобы не искать ее потом в куче хлама )
Ого! Поздравялю, прикольно вышло! У самого витала идея оформить как-то Дракона в коробку — рад, что у вас получилось! Насчёт Reset’а — оригинально, но у меня оно пока ещё не сдохло — жаль портить оригинальную платку.
А кстати, не думали сразу светодиоды перепаять на крышку корпуса? 😉
Не, перепаивать ничего не нужно. То, как я сделал — очень хорошо работает. Тупо световод. Просто и со вкусом.
Хорошая наклеечка на корпус, сами делали?
да.
Спасибо за развёрнутый ответ )
Это бумажная наклейка?
Я ответил на поставленный вопрос.
Бумажная, ламинированная. Приклеена резиновым клеем.
А почему бы не выключать буферы 74НС244 его же входами ОЕ?..
Можно тупо ручным переключателем «программирование-работа», но хотелось бы, чтоб это было в автоматическом режиме. А по сему вопрос: что за сигналы управляют штатными ключами, которые любят дохнуть? Может можно их использовать?..
>А почему бы не выключать буферы 74НС244 его же входами ОЕ?
Можно и так, но сделал как сделал.
>А по сему вопрос: что за сигналы управляют штатными ключами, которые любят дохнуть?
Там сигналы идут с АВРки, похоже, что это сигналы переключаения направления dW, тоесть использовать их безполезно.