8 January 2013

Не работает AVR USB Программатор? Настроим

Programming microcontrollers
Tutorial
Recovery mode
Не работает программатор

Данная статья написана для тех, кто только начинает учиться программировать микроконтроллеры.
Гуру микроконтроллинга здесь делать нечего, а вот новичкам, столкнувшихся с проблемами китайского производства. Или нелепой фасовкой готовых программаторов или людей делающих первый шаг в радиоэлектронику эта статья может быть весьма-весьма полезной. Я так же опишу методы поиска неисправностей, с которыми столкнулся сам. Не у всех людей есть выдержка, тем более Интернет для этого и создан, что бы делиться опытом, не так ли?
Не работает программатор AVR — тысячи запросов в Яндексе и Гугл. Не работает USB asp — еще больше. Сотни сайтов, на которые попадаешь и везде читаешь одно и тоже, как кто то собирает очередной программатор, но ни кто, повторюсь НИ КТО не пишет, почему не работает именно твой личный девайс.

Быстрое решение. Для тех, кто не желает читать весь пост, а на быструю руку пришел за поиском решения выкладываю эту картинку. Обвожу изменения сделанные мной и не описанные ни на одном сайте.
не работает usb avr программатор
Описание и подробности будут ниже.


Покупка и внешний вид

Посещая радио-рынок в нашем городе наткнулся я на конструктор Радио-Кит — аналог известного Радио-Кот. Поторговавшись с любезной мадам, выкупил сие чудо за 65 украинских тугриков — 8.2 долл. Вот фото.
набор конструктор usb avr программатора

Дальше предстояло все это собрать и спаять — благо это дело я люблю, и на пайку ушло полчаса — час.

Итак. Мы собрали все, что было в пакете, спаяли по инструкции — у нас получился USBasp программатор. Подключаем его к компьютеру и о боже — Неизвестное устройство. Поиск «программатор USBasp неизвестное устройство» и получаем сотни обсуждений на форуме, где такие же, как и я обманутые или молодые и неопытные юзеры, желающие начать программировать микроконтроллеры — попадают в засаду. Ужас. Еще раз проверяем все ли правильно спаяно и не спаяли ли мы вместе две ножки AtMega8 контроллера? Нет? Правильно ли припаяли все микросхемы? Мы не будем останавливаться на этой ерунде, ведь если да — то вам стоит скачать энциклопедию юного радиолюбителя и читать. Как делал я в свое время. Но мой программатор был спаян идеально. Мультиметром я прозвонил каждую дорожку и проблем не обнаружил! И начал искать в Интернете ответ. Тем более что я не новичок в этом деле. В 2005 году я впервые столкнулся с программированием PIC контроллеров для спутниковых карт. Даже откопал древний программатор UNIPROG 2003. Вот фотки — раритет. Работал как часы. Я еще школьником был, а столько карт перешил.
Достаешь контроллер с карты, вставляешь его в специальную карту с мостиком, вставляешь карту в программатор, и PonyProg творит чудеса на 700м целероне. Вставляешь обратно карту в тюнер — каналы раскодированные. Чудо техники было на то время. Вот фото.
uniprog 2003 раритет
программирует старые AVR и PIC контроллеры

Решение проблемы

Дело в том, что в инструкции и на всех сайтах, где рекламируют этот программатор — советуют не ставить джампер — перемычку 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 и программатор — что дальше? И вот на этот вопрос так же мало ответов в сети. Очень мало фотографий реально работающей схемы. Специально для неопытных, только начинающих знакомиться с этим удивительным миром пару фотографий, что еще необходимо для прошивки чипа:
image
Как вы видите на фотографии нам необходимо следующее:
-Кабель, соединяющий 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 — ТОЛЬКО для перепрошивки внутреннего чипа. Это так. Но и питание через него необходимо подавать на программируемую плату.

Повторюсь ГУРУ — эта статья для новичков. Если можете дополнить статью, или подправить я буду только рад, так как сам еще новичок. Но очень много людей не могли толком ответить на данную проблему ни в одном из форумов. Даже перечитал все англоязычные форумы.
Даже спаял Программатор Громова. Но деньги та уже потрачены — необходимо довести до ума. Вот им и посвящается данная статья. Спасибо за внимание
Tags:микроконтроллеры avrusb программаторusbaspэлектроника
Hubs: Programming microcontrollers
+19
57.8k 103
Comments 20
Top of the last 24 hours