Программаторы. Опыт изготовления AVRISP mkII.

Программатор — важнейший инструмент разработчика устройств на микроконтроллерах. Можно даже сказать — главный инструмент, я думаю, доказывать это никому не нужно. Для своих первых конструкций я собирал известный всем STK-200, который работает исправно и надёжно и по сей день. Всем он хорош: и простотой изготовления, и отсутствием дефицитных дорогих комплектующих, и, конечно, поддержкой множества средств разработки. Но наряду с этим у него два больших недостатка: необходимость портов  LPT или COM, и невысокая скорость записи (считывания). В современных ноутбуках, как правило, вышеуказанных портов нет, они довольствуются USB. ?, хотя, можно собрать преобразователь интерфейса COM — USB, благо схемных решений хватает, но проблема скорости записи (считывания) остаётся,  и с этой проблемой сталкиваются все, кто движется по лестнице освоения микроконтроллеров вверх))) Для работы в оболочке Algorithm Builder собирался программатор Громова — простейшая и надёжная конструкция. Он тоже отлично работает, но ему присущи те же недостатки, что и для STK-200. В последующем изготавливались пару экземпляров USBasp. Этот программатор работает в общем-то довольно шустро, к тому же с ним можно работать прямо не выходя из редактора Programmer Notepage  пакета WinAVR , но частенько отмечалась нестабильная работа. Причём закономерности сбоев я так и не увидел — это могло зависеть и от компьютера и от конкретного типа или даже экземпляра микроконтроллера. Кроме того записывать фьюзы с помощью USBasp в Programmer Notepage довольно муторно — нужно вручную прописывать в makefile  проекта. Есть оболочка для работы с USBasp, называется она USBASP_AVRDUDE_PROG, но там список поддерживаемых контроллеров достаточно скуден((( На странице сайта товарища Medved я обнаружил описание его варианта клона AVRISP mkII, который разработал  Dean Camera в рамках своего проекта LUFA. Плату я перерисовал в Sprint Layout, добавив по совету Medved светодиод активности программатора. Также добавил джампер для отключения питания программируемого контроллера от порта USB, т.к. изначально планировал его использовать для прошивки контроллеров семейства ATXmega (об этом ниже). Печатную плату сделал методом ЛУТ, который прекрасно описан здесь товарищем DI HALT. Собрал программатор, получилось вот что.

Прошивать AT90usb162 через бутлоадер мне не захотелось, и вот по какой причине. Т.к. придётся менять фьюзы (по умолчанию включен CKDIV8), всё равно нужно подключаться к каком-нибудь программатору. А если это так, то и прошится лучше сразу через ISP. Решил всё это сделать через CVAVR программатором STK-200. Подключился – и тут первая засада – CVAVR не видит контроллера. Пораскинул мозгами, прочитал ещё раз соответствующую ветку у Medved. Ага, вывод RESET не тот, что нужен. Бросил RESET с колодки ISP прямо на кристалл отдельным проводником. Кликаю «read chip signature»  — всё в порядке, кристалл читаеться. Решил сначала прописать фьюзы, но поскольку в CVAVR почти не работаю, набокопорил и отключил вывод RESET, к тому же затактировал чип от внешнего источника)))) Полный набор! С досады хотел выкинуть уже всю плату в мусорку, но вспомнил, что полтора года назад разрабатывал приборчик под громким названием «Реаниматор для AVR» (в своё время я его выкладывал на Радиокот). Это устройство исправляет криво настроенные фьюзы по умолчанию, т.е. как указано в даташите. ?, хоть делал я его по алгоритму, описанному для ATmega8, но он лихо реанимировал ATmega8535, 16, 32, 8515. Раз такое дело, терять нечего, то решил испробовать его и на залоченой  AT90USB162. В исходнике для Реаниматора поменял значение младшего фьюза (старший, где находится и RSTDSBL, оказался таким же как и в меге8). Самой мозготёркой оказалось подпаяться к ногам USB162-й на плате, но я мужественно это преодолел))) Подаю питание, дрожащей рукой нажимаю кнопку «Перезапись», и, о чудо !!! – загорелся зелёный светодиод «Done». Реанимация принесла свои плоды, работоспособность по ISP восстановлена. После этого вдумчиво настроил фьюзы, залил прошивку. Подключил клон к своему нетбуку. Нетбук, как ему и полагается обнаружил новое устройство, сам установил драйвера и выдал сообщение, что устройство готово к работе. Зашёл в AVRStudio, законнектился с первого раза, начал проверять… Уважаемые коллеги, впечатления самые, что ни есть лучшие! Шьёт, читает с несравнимой с USBasp скоростью! Работа стабильная. Отмечу один момент. На вкладке main окна AVRISP

есть кнопочка Settings. Под ней указана частота работы программатора по ISP. Так вот эта частота, должна быть не более четверти от частоты, на которую настроена работа, программируемого Вами контроллера с помощью фьюзов. Т.е. если контроллер работает на 1 МГц , то выставленная с помощью вышеуказанной кнопки Settings частота ISP не может быть более 250 кГц, контроллер просто на будет видится программатором и студия будет выдавать, что-то типа:

Это требование нужно обязательно учитывать. Проверял на чипе с внешним кварцем 16 МГц, устанавливал частоту ISP 4 МГц – работает великолепно! Прошивку можно скачать хоть на LUFA, хоть у Medved.

Ну, и напоследок пару слов о режиме PDI, необходимом для работы с семейством Xmega. Как выяснилось после обращения к первоисточнику LUFA, товарищ Medved в своей схеме просто не вывел соответствующие ноги интерфейса PDI с контроллера. Но мы его за это ругать не будем, поскольку его статья оказалась толчком  к новым исследованиям))). А славянская привычка читать инструкцию по эксплуатации и техописание после того как уже всё сломано (имею в виду себя) заставит меня в ближайшем будущем доработать печатку и собрать ещё один AVRISP mkII, т.к. осваивать Xmega просто необходимо.

Да, народ на форумах жалуется, что AT90USB162 пропали из продажи. Посмотрел на «Космодроме» — действительно исчезли, но остались 82-е. Так вот, если удалось достать любой микроконтроллер AVR c аппаратным USB (AT90USB82, ATmega16USB и др.), то LUFA для этих случаев приводит исходники. Поменять тип контроллера, перекомпилировать заново и зашить не составит труда. Успехов, друзья!

Печатная плата в формате Sprint Layout 5.0

Запись опубликована в рубрике Программаторы. с метками , . Добавьте в закладки постоянную ссылку.

78 комментариев на «Программаторы. Опыт изготовления AVRISP mkII.»

  1. s_black говорит:

    Да, увидит. Я сейчас пользуюсь 5-й студией. При подключении она сама определяет этот программатор, пишет тип и версию. Проверял программаторы собранные и на 162 и на 82 мегах.

  2. N.I.K. говорит:

    Странно, у меня программатор вот такой http://kosmodrom.com.ua/el.php?name=AVR-MKPROG-USB

    Думаю это такой же программатор как и описываемый здесь.

    Четвёртая студия его видит, а пятая и шестая нет 🙁

  3. s_black говорит:

    Знаете N.I.K. .. Тяжело на расстоянии предположить, где проблема… Посмотрите — на месте ли джамперы, нормально ли установилась студия и др. подобные «железные» вопрос. На самый крайняк можно посмотреть, соответствует ли схема проекту LUFA, и, если соответствует — перепрошить кристалл.

  4. bycter говорит:

    Не могли бы вы добавить принципиальную схему устройства, описанного в данной статье. По ссылке не много другая схема, например, там нету джамперов.

  5. ivanjust говорит:

    Добрый день. Я собрал тут именно этот программатор, прошил его через FLIP. В винде определяется как AVRISP mkII. Только вот студии ни четвёртая ни пятая его не видят. Не конеклятся с ним. Чего у меня можт быть не так? Сразу скажу, что это мой первый шаг в сторону программирования микроконтроллеров. По этому не судите меня строго. Если возникнет желание мне помочь, а за одно и просветить меня, буду весьма благодарен. Только прошу, обьясняйте попроще, пожалуйста 🙂

  6. s_black говорит:

    Могу предположить, что не установлены драйвера — проверьте, пожалуйста!

  7. s_black говорит:

    To bycter
    Схема один к одному, как по ссылке. Только добавлен светодиод активности программатора и джампер отключения питания программируемого контроллера от питания программатора. Схему можно восстановить по плате, и, даже фотографии.

  8. redbeard говорит:

    Статья была бы идеальной, если бы были указаны номиналы элементов и способ печати (зеркальный или нет) на принтере. 🙂
    Спасибо.

  9. s_black говорит:

    Гхм… В статье есть ссылка на программатор Медведа. Там и схема и номиналы. Я же оговаривал это. Чтобы правильно отпечатать ЛУТ, нужно смотреть на надписи — я их на плату специально для этого и наношу. На отпечатанном листе, который Вы будете откатывать на текстолит, надписи должны быть зеркальные. Удачи!

  10. redbeard говорит:

    Чтобы не пришлось скакать и не задавать надоедливые вопросы, лучше ни от кого не зависеть 🙂

  11. ?ван говорит:

    Добрый день.
    Я только совсем начинающий радиолюбитель, поэтому не судите строго за просьбу.
    Можно выложить список комплектухи, из которой вы сделали этот программатор (название- кол-во штук) и на фото указать где какой элемент стоит (просто цифрой из списка подписать и все)?
    Мне он понравился тем, что нет smd-элементов, которые для меня пока тяжеловаты в пайке.
    Очень был рад, когда нашел вашу плату.

  12. s_black говорит:

    Смотрим на фото, слева направо. Разъём USB тип В, черные цилиндры — электролиты 100 мкФх16В, рядом с ними жёлтые керамические конденсаторы 0,1 мкФ, блестящий овал — кварц на 8 МГц, по бокам от него керамические конденсаторы 22 р, белые кружки — светодиоды любого типа, между ними красненькие — резисторы 68 Ом 0,125Вт, над красным джампером резистор 330 Ом 0,125 Вт, справа от нижнего электролита резистор 220 Ом 0,125 Вт, оставшиеся два резистора с цветовой маркировкой — 10 кОм 0,125 Вт.
    В статье есть ссылка на схему. Если Вы начинающий радиолюбитель, схемы нужно учится читать.

  13. ?ван говорит:

    О, спасибо. как раз уже разобрался по схеме.

  14. ?ван говорит:

    а кондеры на 22 пФ — сколько вольт? 50?

  15. s_black говорит:

    Берите любые малогабаритные и не ошибётесь. Я на этапе освоения МК иногда советские трубчатые ставил — один на 33, другой на 18 пФ. Всё стабильно работало )))

  16. Jonson_A говорит:

    Добрый день!
    Доработки платы для прошивки xMega еще не было? 🙂
    Если я не ошибаюсь, необходимо только вывести выводы 18 и 19 ножек МК для режима PDI?

  17. s_black говорит:

    Знаете… После того, как купил себе на ATMEL-е оригинальный AVRISP mkII, необходимость отпала. Хотя, конечно, это отмазки.

  18. Atabek говорит:

    здравствуйте. у меня avrisp mkii не прошивает. ошибка выдает .
    “Target appears to have lose power or the ISP connector was disconnected”
    помогите пожалуйста.

  19. s_black говорит:

    Так он Вам говорит, что питания нет, либо программатор не подключен к разъему. Проверьте все соединения.

  20. MRS говорит:

    Какие fuse bit вы выставляли при прошивке программатора

  21. s_black говорит:

    Для внешнего кварца 8 МГц.

  22. MRS говорит:

    Спаял схему, но комп видит его как неизвестное устройство. Что может быть не так

  23. s_black говорит:

    Скорее всего ошибка при сборке, если делали по моей печатной плате. Даже при непрошитой 162-й ПК должен её «видеть».

  24. iury говорит:

    всем доброго дня .Я прошу помощи кто может. собрал программатор его надо прошить через FLIP/ скачал этот FLIP 3.4.7 надеюсь это правильно?Научите пожалуйста как его залить через флип .открыл запустил флип какие кнопки куда нажать как в него ставить прошивку?если даже все получится я со студии не умею проще CODE VISION так вот чтоб с ним работал надо ли скачать драйвер и откуда?честно я в первые с этим делом прошивал просто через LRT/я очень прошу объясните пожалуйста как все это прошить чез флип, я буду очень вам благодарен. Если что на почту iurynesterov@yandex.ru Спасибо. с/у Юра

  25. nazarchyk1996 говорит:

    А контролер AT90usb162 тоже треба програмувати, якщо потрібно скиньте програму щоб залити в нею

  26. s_black говорит:

    Звичайно потрібно — про це вказано у статті. Прошивку для 162-ї завантажте у складі проекту LUFA.

  27. Дмитрий говорит:

    Китайский клон программатора, в синем боксе, как и оригинальный. Постоянно горит красный светодиод, даже после обновления прошивки. При попытке программирования вылазит, как и у человека: «target appears to have lost power, or the ISP connector was disconnected»

  28. s_black говорит:

    Проверьте монтаж на наличие козы.

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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.