Защита для AVR Dragon

Опубликовано в рубрике "Программаторы", 11.12.2009.

Как вы уже знаете, у меня сломался дракон. Путем нехитрых манипуляций он был оживлен, но все равно, было обидно. Для того, чтобы не допустить такой нелепости в будущем, я упихал его в корпус, добавил буфер и назвал то, что получилось DragonForce.

ready2

Собственно, рассказывать про этот проектик особо нечего.

Схема

Схему и плату можно посмотреть тут:

Работает все очень просто – питание подается через резистор R1 и ограничивается стабилитронами. Расчет тут на то, что если питание будет значительно превышать 5В, то R1 сгорит быстрее чем стабилитроны и оборвет цепь питания.

Резисторы R2-R5, по идее, не должны давать “звенеть” кабелю от буфера до дракона, хотя что с ними что без них все хорошо работает. На всякий случай, поставил. R6 подтягивает MISO в отсутствии целевой платы – не дает микросхемке буфера загенерировать.

R7-R10 для согласования выходного сопротивления микросхемы с волновыми сопротивлением кабеля. Хотя, в данном случае, это тоже не особо актуально. На всякий случай поставил.

Так как линия Reset двунаправленная, ее буферизировать нельзя (точнее можно, но сложно). Поэтому, я просто влепил обычную защиту из резистора и диодной вилки.

Под x244 скрывается микросхема 74HC244 – драйвер шины. Умеет выдавать наружу до 50мА тока и имеет по защитной диодной вилке на канал. Вилка выдерживает по 20мА в каждую сторону.

Разъемы JTAG  и ISP запараллеленны, поэтому я использую только JTAG – там больше выводов.

Собственно, можно было бы обойтись просто диодными вилками на каждую шину. Это было бы даже лучше – не было бы проблем с SPI.

 

Что за проблемы с SPI ?

Проблема в том, что линии ISP и SPI совмещены. Если вы используете SPI, то дракон подключенный будет мешать контроллеру. В оригинальном драконе эта проблема решается теми самыми аналоговыми ключами, которые сгорели.

У этой проблемы три решения:

  1. Для защиты использовать просто диодные вилки
  2. Включать драйвер только когда уровень Reset находится в низком состоянии
  3. Использовать два провода – один для ISP, второй для DebugWire.

Я, естественно, подумал об этом всем только после того, как сделал плату, поэтому я остановлюсь на третьем варианте. Если что-то будет мешать, переделаю плату.

Еще, я сделал отдельную кнопку Reset для дракона. Ее очень не хватало на оригинальной плате – больше не пройдется вытаскивать и вставлять USB штекер. Reset я организовал очень жестко – я просто разрываю +5 вольт от USB. Не знаю, на сколько это корректно, но, блин, работает.

 

Фотки

Скучная статья, правда? Мало фоток. Исправляюсь 🙂

Верхняя крышка. Ресет сделан из обычного “концевого” совкового микрика. Концевик загнут и выведен через корпус. Получилась маленькая неприметная кнопочка – ресет. Все сделано из подручных материалов, поэтому не очень красиво.

top

Нижняя крышка. Собственно сам дракон и его крепление. Видно разъем ресета. Внутри разъема USB контакты перекушены, и в разрыв впаивается ресет.

bottom

Ну, и после сборки все это выглядит так. Чтобы видеть светодиоды самого дракона, я сделал в корпусе отверстие. Потом подумал, что просто дырка – не очень-то эстетично, и заткнул ее бесцветным светодиодом с обрезанными лапками. Светодиоды дракона прекрасно просвечивают через такую затычку. С боку видна кнопочка ресета.

ready2 Понравилось?

 

Ага, оказывается, произошла ошибка и распиновка на наклейке не такая, как на самом деле. Настоящая распиновка вот такая:

 image

Естественно, ваша распиновка может отличаться, картинку я выкладываю в основном для себя, чтобы не искать ее потом в куче хлама )

Комментарии
  1. CS написал(а) 12th Декабрь, 2009 в 16:03

    Ого! Поздравялю, прикольно вышло! У самого витала идея оформить как-то Дракона в коробку — рад, что у вас получилось! Насчёт Reset’а — оригинально, но у меня оно пока ещё не сдохло — жаль портить оригинальную платку.
    А кстати, не думали сразу светодиоды перепаять на крышку корпуса? 😉

  2. BSVi написал(а) 12th Декабрь, 2009 в 19:42

    Не, перепаивать ничего не нужно. То, как я сделал — очень хорошо работает. Тупо световод. Просто и со вкусом.

  3. Роман написал(а) 13th Декабрь, 2009 в 14:59

    Хорошая наклеечка на корпус, сами делали?

  4. BSVi написал(а) 13th Декабрь, 2009 в 15:09

    да.

  5. Роман написал(а) 13th Декабрь, 2009 в 15:14

    Спасибо за развёрнутый ответ )
    Это бумажная наклейка?

  6. BSVi написал(а) 13th Декабрь, 2009 в 15:20

    Я ответил на поставленный вопрос.
    Бумажная, ламинированная. Приклеена резиновым клеем.

  7. chapa написал(а) 22nd Июнь, 2010 в 8:45

    А почему бы не выключать буферы 74НС244 его же входами ОЕ?..
    Можно тупо ручным переключателем «программирование-работа», но хотелось бы, чтоб это было в автоматическом режиме. А по сему вопрос: что за сигналы управляют штатными ключами, которые любят дохнуть? Может можно их использовать?..

  8. BSVi написал(а) 22nd Июнь, 2010 в 9:29

    >А почему бы не выключать буферы 74НС244 его же входами ОЕ?
    Можно и так, но сделал как сделал.

    >А по сему вопрос: что за сигналы управляют штатными ключами, которые любят дохнуть?

    Там сигналы идут с АВРки, похоже, что это сигналы переключаения направления dW, тоесть использовать их безполезно.

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

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


Срок проверки reCAPTCHA истек. Перезагрузите страницу.