Программатор AvrUsb500 by Petka или моя история хорошего программатора

Эта публикация немного отступит от общих правил моего сайта – публиковать ТОЛЬКО собственные разработки. Объясню почему я пошел на такой шаг:
1. Это не совсем “копипаст” чужой разработки – сюда вложены мои собственные мысли, изменения и наблюдения.
2. Я считаю что мои наработки в направлении этой чудесной, пусть и чужой конструкции будут интересны читателю.
3. Ну просто очень хорошо получилось…

Для начала немного истории. Все интересующиеся, свой путь к микроконтроллерам начинали по-разному. Не все становятся программистами, подавляющее большинство удовлетворяется повторением понравившихся конструкций. Без изменений остается один момент – каждый собирает программатор. Кого-то до конца устраивают “пять проводков”, кто-то покупает родные программаторы предлагаемые производителями, кто-то собирает монструозные вещи типа ucGoZilla уважаемого Prottossa. В общем кто-как… Мне было немного проще – у меня для старта был промышленный программатор ChipStar. Хорошая штука, но больно громоздкая и ориентированная больше на DIP корпуса – для внутрисхемного программирования надо было городить переходники. Быстрее и удобнее было собрать другой программатор. Что собственно и было сделано. Выбор пал на AVR910 того же Prottossa. Очень хороший надежный как танк, простой и доступный в изготовлении и т.д. и т.п. И все бы ничего, но я начал “пописывать” программки и скоро очень остро стал вопрос скорости и совместимости с АВР студией. Как известно микроконтроллерщиков можно условно разделить на две части – железячники – как правило старая гвардия радиолюбителей начинавших с дискретной логики, знающих в точности КАК и главное ЗАЧЕМ работает транзистор, но ничего не смыслящая в программировании – этим больше дается ассемблер, как язык более близкий к железу. И вторые – как правило более молодые, программисты-компьютерщики, менее подкованные в железе, пришедшие к микроконтроллерам из написания программ для компьютеров. Паяльник к ним в руки попадает только в виде вынужденной меры претворения их “программерской” идеи в железо. Такие естественно выбирают более высокоуровневые языки – СИ, бейсик. Я натыкался даже на Паскаль. Естественно это в основном мои умозаключения и грани между этими двумя группами любителей микроконтроллеров порой мутнеют и стираются.

Так вот о чем это я…. Я отношу себя к первой группе. Пользую в основном AVR Studio + ASM. Потому AVR910 не совсем подходил, да и на работе тоже нужен был внутрисхемный программатор. Не буду вас утомлять – долгие поиски в сети и чтение форумов привели меня к “AvrUsb500 by Petka”. Начало истории этого программатора вы найдете здесь. А здесь страничка с описанием программатора. Есть еще одна страничка с толковым описанием этого устройства, но ссылки на этот сайт здесь не будет (хотя бы из солидарности к автору статьи, к которому руководство того ресурса отнеслось, на мой взгляд, по скотски) . Программатор был собран, я получил массу положительных эмоций – эффект примерно такой, как будто пересел с советского автопрома на иномарку. Была только небольшая капля дегтя – немного подглючивал USB конвертер FT232BM от FTDI – то не определится, то студия его не увидит, то с USB кабелем не каждым заработает. Я не зря писал, что “AVR910 надежен как танк” – программная реализация USB в нем таких глюков не имеет. Но на тот момент это все были мелочи, по сравнению с преимуществами работы прямо из студии и скорости. Довольно долгое время эти два программатора служили мне верой и правдой, пока с AVR910 не пришлось расстаться. Как и зачем не есть для вас интересно, скажу лишь то, что стала задача собирать очередной программатор. К этому времени я убедился что столь любимая нашими радиолюбителями FT232 не так безгрешна как о ней думают. Вы конечно могли бы обвинить меня в кривизне рук, что я ее “готовить не умею” и т.д. Мне есть что ответить – было собрано несколько разношерстных устройств на этой микросхеме, все пожелания производителя в даташите были учтены, тонна драйверов перепробована на разном железе. Скажу больше – мой промышленный Chipstar XL имеет в качестве USB конвертера тоже FT232, и хоть и не использует VCP-драйвер но глючит тоже не слабо. Эти все “выбрыки” за год-два эксплуатации мне порядком надоели, потому я решил модифицировать оригинальную схему. На глаза попалась CP2102 – USB-UART преобразователь. Простая схема, хорошие отзывы о самом производителе (SiLabs) и главное – цена (!!!). Она стоит у нас в Украине в два раза дешевле, чем “поделка” от FTDI. Глядишь на разницу в цене и начинает душить то самое зеленое земноводное, памятник которому стоит у нас в Бердянске. Немного забегу вперед – вот фото обоих программаторов:

Сборка этого экземпляра (нижний) с CP2102 принесла весьма интересные результаты.
1. Субъективно все стало работать на 20-25% быстрее.
2. Полностью пропали глюки присущие FT232. Определяется без проблем каждый раз, даже после быстрого “перетыкивания” USB, без проблем заработала со всеми моими шнурками.
3. Драйвера моя Windows 7 вытянула с сервера обновления и поставила сама.
В дальнейшем коснусь лишь узла CP2102, так как работа самого программатора “разжевана” по ссылкам приведенным внизу.
Сразу хочу оговориться  – проблемой “курицы и яйца” я особо не заморачивался – все цепи самопрограммирования через USB вырезаны в угоду размеру. Эта компиляция программатора рассчитана больше на людей с более-менее приличной подготовкой. Причин тому несколько – корпус CP2102 MLP28 (5×5 мм) с контактными площадками на “пузе” вместо ножек  – без определенных навыков не поставить, дорожки 0.25мм – обычным утюгом тоже “взять” вряд ли получится.

Платка выполнена фоторезистом на двухстороннем текстолите. Вторая сторона используется в качестве земли.

После травления плату лудим. Далее самое сложное – первой ставить нужно именно CP2102. Я действовал таким методом:
1. На контактные площадки платы на месте микросхемы наносим самым тонким имеющимся жалом капельки с припоем примерно одной высоты. Здесь самое главное не перегреть контактные площадки. Операцию проводим при помощи лупы.
2. На плату и на микросхему наносим слой флюса. Желательно что-нибудь неактивное и не очень жидкое.
3. Центрируем микросхему, и греем феном паяльной станции. Для создание равномерного давления сверху – можно положить на микросхему гайку M3. По весу вполне подойдет. Это лучше чем давить сверху пинцетом – меньше шансов сместить микросхему. Остальное сделает температура и поверхностное натяжение
Больше особо сложного ничего нет. Разве что в некоторых случаях применены довольно мелковатые резисторы / конденсаторы 0603.

Обвязка CP2102 выполнена исключительно по даташиту без каких либо своевольных “художеств”, от себя добавлен второй светодиод индицирующий наличие питания. Так как материалы по этому программатору довольно сильно “размазаны” по форуму, имеется масса прошивок под разные кварцы и контроллеры – у себя я акцентирую внимание только на ФАКТИЧЕСКИ собранном устройстве, т.е. выкладываю в одном месте одну схему, одну плату и одну прошивку. Собственно схема:

Программирование контроллера производится внутрисхемно. Пятачки предусмотрены на плате. Установка фузов ATMega8:

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

Материалы по теме:
Страничка на форуме, где разработчик отвечает на вопросы
Страничка с описанием программатора
Прошивка для ATMega8
Схема в SPlan 7
Плата в SpintLayout
Даташит на CP2102

27 коментарів до “Программатор AvrUsb500 by Petka или моя история хорошего программатора

  1. А вы СР2102 перевели в режим “USBXpress” утилитой AN144sw, PID – ЕА61, ? Ведь тогда скорость возрастёт 2-4 раза.
    Пакет драйверов и утилит лежат на сайте производителя.

  2. Не только не возрастет но даже работать перестанет.Программы прошивальшики ищут железо этого программатора по com портам а не по USB в который вы предполагаете перевести CP2102

  3. Здравствуйте уважаемый electra!Собираю комплектацию для сборки программатора «AvrUsb500 by Petka».Осталось кварц(такой как в схеме не могу найти) ,можно поставить кварц на 12 или 16 Мгц.

    • Здравствуйте! На сайте у автора есть еще одна прошивка для кварца 18.432мгц. Не думаю, что это хорошая идея, так как он еще более редок и такая частота уже будет считаться “разгоном” для меги8. Так что придется поискать 14.7456 мгц. Честно говоря он довольно распространенный…

  4. Добрый день! Подскажите, пожалуйста, у Вас в схемах SPlan7 и SpintLayout имеются расхождения в ёмкости конденсаторов C1 (полярный) и C2 (неполярный). При этом на фотографии у Вас видимо установлен C2 (полярный) на 6.8 uF (он такой большой в верхнем правом углу над USB). Какой ёмкости должны все-таки стоять С1 и С2 и кто какие полярные/неполярные.
    И еще вопросы:
    Какие Вы использовали (маркировка/вольтаж)светодиоды, я так понимаю, под них мне надо подбирать токоограничивающие резисторы R3 и R4? (у автора Petka один светодиод с резистором R2 = 1K).
    Сопротивления R10 и R11 у вас по 220 Ом с ног PC1 и PC0, а в оригинальной схеме у Petka это R7 b R3, соответственно, по 100 Ом? Это принципиально какой резистор выбрать?

    P.S. Заранее прощу прощения за м.б. глупые вопросы, я в общем чайник в радиотехнике, но пытаюсь разобраться.

    • C1 танталовый, остальное SMD керамика. Номиналами сильно не заморачивайтесь, ставьте как в схеме. Хотя привести в неработоспособность эту схему номиналами резисторов-конденсаторов еще надо постараться. Отклонения допустимы в достаточно больших пределах.

  5. А у вас печатная плата в лауте есть для FT232BL?И будет ли этот программатор работать с PonyProg2000?

    • Не совсем понял при каких делах тут PonyProg. Да и про FT232 в схеме ничего нет. Есть ссылка в конце статьи на оригинальную разработку, там и стоит FT232BM. Рекомендую обратиться к первоисточникам.

  6. Здравствуйте, собрал программатор, но немного иначе, вместо указанной микросхемы на входе применил max232 для подключения программатора к com порту, но почему то не работает. Единственное светодиод несколько раз быстро вспыхивает и гаснет, на этом все. Программатор не определяется в программе гипер терминал, не определяется в avr studio и отсутствует сигнал 1мГц. Часть схемы относящаяся к max232 работает. Микроконтроллер прошивал отдельно. Может есть какие – то нюансы использования этого программатора, что я делаю не так, пожалуйста посоветуйте. Спасибо

  7. Добрый день, укажите пожалуйста, какие микропроцессоры AVR можно программировать данным программатором? Заранее спасибо.

  8. Доброго времени суток!!!
    Уважаемый автор, прошу вашей помощи.
    Собрал я ваш программатор, прошил но проверить его работу не могу.
    Он собирался для работ в BASCOM-AVR, но там выдает ошибку.
    В AVRStudio, я давно с нею работал и не могу разобраться что там делать.
    Подскажите пожалуйста какую-нибудь оболочку для залития HEX-файлов, чтобы можно было ее проверить. Потому что я раньше пользовался AVR910 в AVRDUDEPROG, а этот программатор там тоже не видно.
    Заранее благодарен.

    • Здравствуйте. Вообще я пользуюсь AVR Studio 4.1x и Вам того же желаю. Шустрая, удобная и главное – удобнее чем где-либо там программируются фузы. STK500 там разумеется поддерживается. Как вариант еще посмотрите это: http://www.hpinfotech.ro/cbavr_download.html
      Это отдельная утилита из CVAVR, поддерживает разные программаторы, в т.ч. STK500. Бесплатная версия имеет какие-то ограничения по размеру, но “на попробовать” Вам точно хватит. Если понравится – поищите “вылеченную” версию, где-то бродила на просторах Интернета. Из этических соображений – я ссылок давать не буду.

  9. Ув. electra! Предлагаю Вам открыть раздел на Вашем сайте, что-то вроде “Присланные конструкции” (и не только Украины. Давайте общаться со всеми адекватными людьми). Это даст возможность всем посещающим общаться, продолжать заниматься любимым хобби/делом, обсуждать и творить, а то действительно мозги застаиваются. Если надумаете, напишите мне на почту – подготовлю для Вашего сайта один из своих проектов. С уважением.

  10. Ув. Electra. Собрал Ваш программатор, после некоторых плясок запустился, работает нормально но есть один вопросик.Светодиод “TARGET” загорается при подключении программируемой микросхемы и горит постоянно и при программировании не мигает так и должно быть? И на выводе “Out 1 Mhz” висит 0.

    • Александр, в общем-то программатор не мой, что вполне понятно из текста статьи. Моего тут только плата + другой USB интерфейс. Лучше бы Вам обратиться к первоисточнику, ссылки есть в тексте статьи. И если со светодиодом могу Вам подтвердить, что все так и есть, то касаемо выхода 1mhz – ничего не подскажу.

    • Подойдет конечно. Номера выводов другие будут (сравните в даташите, все поймете), а внутренности одни и те же.

  11. electra, скажите пожалуйста, если я захочу скомпилировать прошивку для этого программатора сам,то основное, что нужно обязательно это указать в исходнике частоту кварца и конкретный тип Atmega?
    Ведь ваша версия прошивки чем-то еще отличается?

    Спасибо!

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *