Не работает программатор
Данная статья написана для тех кто только начинает учиться программировать микроконтроллеры.
Гуру микроконтроллинга здесь делать нечего, а вот новичкам, столкнувшихся с проблемами китайского производства. Или нелепой фасовкой готовых программаторов или людей делающих первый шаг в радиоэлектронику эта статья может быть весьма-весьма полезной. Я так же опишу методы поиска неисправностей с которыми столкнулся сам. Не у всех людей есть выдержка, тем более интернет для этого и создан, что бы делиться опытом, не так ли?
Не работает программатор AVR — тысячи запросов в Яндексе и Гугл. Не работает USB asp — еще больше. Сотни сайтов, на которые попадаешь и везде читаешь одно и тоже, как кто то собирает очередной программатор, но ни кто, повторюсь НИ КТО не пишет почему не работает именно твой личный девайс.
Быстрое решение. Для тех кто не желает читать весь пост, а на быструю руку пришел за поиском решения выкладываю эту картинку.Обвожу изменения сделанные мной и не описанные ни на одном сайте.
Описание и подробности будут ниже.
Покупка и внешний вид
Посещая радио-рынок в нашем городе наткнулся я на конструктор Радио-Кит — аналог известного Радио-Кот. Поторговавшись с любезной мадам выкупил сие чудо за 65 украинских тугриков — 8.2 долл. Вот фото.
Дальше предстояло все это собрать и спаять — благо это дело я люблю и на пайку ушло пол часа — час.
Итак. Мы все собрали, все что было в пакете спаяли по инструкции — у нас получился USBasp программатор. Подключаем его к компьютеру и о боже — Неизвестное устройство. Вводим в поисковик «программатор USBasp неизвестное устройство» и получаем сотни обсуждений на форуме, где такие же как и я обманутые или молодые и неопытные юзеры, желающие начать программировать микроконтроллеры — попадают в засаду. Ужас. Еще раз проверяем все ли правильно спаяно и не спаяли ли мы вместе две ножки AtMega8 контроллера? Нет? Правильно ли припаяли все микросхемы? Мы не будем зацыкливаться на этой ерунде, ведь если да — то вам стоит качать энциклопедию юнного радиолюбителя и читать, читать, читать. Как делал я в свое время. Но мой программатор был спаян идеально. Прозвонкой мультиметра я прозвонил каждую дорожку и проблем не обнаружил! И начал искать в интернете ответ. Тем более что я не новичек в этом деле. В 2005 году я впервые столкнулся с программированием PIC контроллеров для спутниковых карт. Даже откопал древний программатор UNIPROG 2003/ Вот фотки — раритет. Работал как часы. Я еще школьником был а столько карт перепрошил.
Достаешь контроллер с карты, вставляешь его в специальную карту с мостиком, вставляешь карту в программатор и PonyProg творит чудеса на 700м целероне. Вставляешь обратно карту в тюнер — ОПА а каналы раскодированны. Чудо техники было на то время. Вот фото.
Решение проблемы
Дело в том, что в инструкции и на всех сайтах где рекламируют этот программатор — советуют не ставить джампер — перемычку JP3 — в моей инструкции написано: «Перемычка ставиться в случае перепрошивки внутреннего контроллера ATMega8» Я и так долгое время грешил на то что контроллер не прошит. И продавец просто всунул в пакет чистый чип. Но через пару часов, когда начал искать в плате пробел или обрыв — заметил маленькие полосочки и четыре дырки соединяющие 20ю и 4ю ножку Меги8. Выход SCK и 19ю ножку Меги8. Почему так, вы скоро поймете. Вот скрины с обведенными в кружочек местами.
Как вы заметили на первой и предыдущей картинке кроме двух перемычек я обвел еще и джампер. В комплекте, повторюсь не было не джампера не перемычки. Её пришлось докупать отдельно, цена 5грн за 40 ячеек. Джампер был в старой материнской плате. Повторюсь в инструкции и схеме — он НЕ НУЖЕН. Но разобравшись со схемой понимаешь что программируемый чип не получает питание +5V. Очень небрежная ошибка производителей. Припаяйте перемычку и замкните джампер.
Внимательно изучите основную работу чипа. Основные ножки:
1 ножка — RESET
17я — MOSI
18z — MISO
19 — SCK
20 — AVCC ( в инструкции к программатору именовалась как VTG)
RESET — МИНУС а VCC — ПЛЮС ( исправте если я не прав)
На одном сайте вычитал что при программировании чипов питание должно подключаться ко всем ножкам VCC (AVCC)
Как работает программатор
Самый глупый и самый главный вопрос возникший у меня и сотни других новичков в интернете купивших микроконтроллер скажем ATTINY2313 и программатор — что дальше? И вот на этот вопрос так же мало ответов в сети. Очень мало фотографий реально работающей схемы. Специально для неопытных, только начинающих знакомиться с этим удивительным миром пару фотографий что еще необходимо для прошивки чипа:
Как вы видите на фотографии нам необходимо следующее:
-Кабель, соединяющий USBasp программатор с самим контроллером(на фото он на плате с кварцевым генератором( в чипе уже есть свой генератор)
Плата собрана по статье с сайта Простая отладочная плата для устройств AVR ATTiny2313 с кварцем
-Как вы поняли необходимо что бы выходы из программатора MOSI, MISO, USCK, VCC(VTG) и RESET одинакого подключались к выходам на настроечной плате, где установлен программируемый чип. На многих ATMELовских контроллерах 1я ножка RESET напротив — 4 ножки подряд( сверху вниз с 20й по 17ю) идут VCC, SCK, MISO, MOSI. То есть в ATTINY2313 — 20ножка VCC, 19 — USCK, 18-MISO, 17-MOSI.
Соедините выход на программаторе и плату с установленым чипом соответственно.
Если вы хотите узнать расположение и распиновку чипа — вы можете скачать ДАТАШИТ любого контроллера с сайта alldatasheet.com Вот даташит на ATTINY2313
В TINY13 и в 2313 и в МЕГЕ8 одинаковая распиновка для программного ISP программирования. Только питание придеться менять на плате. Но не для каждого контроллера. Например TINY13 — так же идеально работает и без кварца на той же плате что я сделал по статье для 2313. MOSI MISO SCK VCC RESET в одинаковых местах. Так что одной платы хватит пока для тестов.
Послесловие
После проделанных манипуляций. Измерения подающего на плату от программатора питания. После того как я разобрался в каждой ножке и допаял третий джампер — наконецто заработал мой программатор. Он определился компьютером после припайки двух металлических дорожек — как libusb-win32 devices. Но работать не хотел.
Extreme Burner писал «Cannot Comunicate with TargetChip». Я не буду писать сколько методов я использовал когда думал что проблема в драйверах — сотню. Даже посоветовали войти в безопасный режим и установить программу по подписыванию драйверов — но он определялся как неизвестное устройство. Вот определился но не работал. У кого таже проблемма вы поняли, да?
И на всех схемах JP3 — ТОЛЬКО для перепрошивки внутреннего чипа. Это так. Но и питание через него необходимо подавать на программируемую плату.
Повторюсь ГУРУ — эта статья для новичков. Если можете дополнить статью, или подправить я буду только рад, так как сам еще новичек. Но очень много людей не могли толком ответить на данную проблему ни в одном из форумов. Даже перечитал все англоязычные форумы.
Даже спаял Программатор Громова. Но деньги та уже потрачены — необходимо довести до ума. Вот им и посвящается данная статья. Спасибо за внимание
Автор: Puzik007