Как прошить микроконтроллер AVR?

01.10.2015 18:28

Ну вот мы и добрались до самого вкусного: как прошить микроконтроллер AVR, чтобы он работал по программе, которую мы придумали? Давайте первым делом определимся, что означает слово "прошить"?  Думаю, вы часто слышали такие словосочетания, как "прошить телефон", "слетела прошивка", "кривая прошивка" и тд.  А что такое "прошивка"?  Прошивка - это грубо говоря, операционная система для маленьких устройств, таких как мобильный телефон, MP3-плеер, цифровой фотоаппарат и тд. То есть это  небольшая программка, которая управляет этим устройством ;-). Также часто можно услышать и такое:" У меня глючит сотовый телефон, его надо срочно "перепрошить". В данном случае это означает, что надо заново установить операционную систему на мобильник ;-). Значит, "прошить МК"  означает закачать во внутрь него программу, которая бы управляла этим МК, а МК уже управлял бы каким-нибудь устройством.  То есть по идее, МК - это посредник между программой и каким-либо устройством, которым надо управлять ;-).

 

Итак, что нам потребуется, чтобы прошить МК?

Во-первых, как ни странно, сам МК.

Во-вторых,  компьютер, с заранее установленным программным обеспечением (ПО).

В-третьих, программатор.

В-четвертых, несколько джамперов.

В-пятых, макетная плата. Я бы порекомендовал сразу купить набор для начинающего AVRщика. Этот набор питается от USB.

Ну и в-шестых, прямые руки, растущие из нужного места.

 

Мы с вами договорились использовать МК Atiny2313 в корпусе DIP-20:

 

 

В прошлых статьях мы с вами рассматривали программатор Громова.  Главный его минус в том, что нам требуется COM-порт, который с трудом можно сейчас найти в компьютере, а разъем USB есть на каждом. Поэтому, было принято решение о покупке самого дешевого USB программатора для AVR МК. Называется такой проограмматор USBASP. Выглядит он примерно вот так:

 Если хорошенько порыться на Али, то можно найти очень сладкую цену на такой программатор. Например, здесь. Может быть найдете даже дешевле. Если будете брать у другого продавца, то внимательно смотрите, чтобы его надписи и радиоэлементы располагались именно так, как  у меня на фото. В среднем его цена на момент написания статьи около 120 рублей. Такой программатор в корпусе обойдется чуток подороже.

 

 

Вот его вид взади:

 

 

Его  рабочий разъем выглядит примерно вот так:

 

 

С программатором также впридачу идет и шлейф

 

 


который одним концом цепляется к рабочему разъему программатора:

 

 

Другой конец шлейфа мы будем цеплять к МК.
Если внимательно присмотреться, то можно узнать, какой вывод в разъеме является первым. Стрелка укажет на первый вывод разъема:

 

 

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

 

 

Дальше берем макетную плату с установленным на ней МК Tiny2313:

 

 

Итак, наша задача - соединить выводы МК с выводами программатора.

Для этого в разъем шлейфа втыкаем провода в гнезда MOSI, RST, SCK, MISO, VTG (VCC), GND. GND я взял 10 гнездо, можно и другое, где написано GND.  Итого 6 проводков-джамперов:

 

 

Далее качаем даташит на наш МК. В данном случае у нас Tiny2313. Ищем в даташите лист с его цоколевкой:

 

 

VTG (он же VCC) цепляем к 20 ножке МК

SCK(UCSK) цепляем на 19 ножку МК

MISO цепляем к 18 ножке МК

MOSI на 17 ножку

GND на 10 ножку

RST на первую ножку

 

 

Должно получиться как-то вот так:

 

 

После первого включения программатора в разъем USB ПК, Диспетчер устройств нам выдаст новое устройство:

 

Не пугаемся, качаем  вот этот архивчик, распаковываем его и указываем путь на него при установке "дров". Когда "дровишки" на программатор установятся, то мы увидим что-то типа этого:

Все ОК, программатор готов к бою.

 

В этом же архиве находим папку "avrdudeprog", открываем ее, находим там исполняемый файл AVRDUDEPROG и запускаем его. Это и есть сама программная оболочка для прошивки МК с помощью нашего программатора.

 

Она выглядит  вот так. Не забываем выбрать наш МК в списке.

 

Для того, чтобы прошить МК, нам надо выбрать файл с расширением HEX.  Откуда его взять, мы с вами разбирали еще в прошлой статье. Итак,  вот  мой файлик. Первым делом я нажимаю кнопочку "Стереть все".  А вдруг кто-то уже использовал МК и там залита уже какая-нибудь программа? Поэтому перед прошивкой стираем память МК. Если "стирка" прошла удачно,  то программка выдаст нам такое сообщение:

 

Ну наконец-то! Наконец-то мы дождались этого момента! Собственно сама прошивка МК!

Нажимаем на кнопку выбора файлика:

 

А теперь выбираем наш файл "Lesson 1.hex", который создавали в CodeVisionAVR

 

А теперь жмем кнопочку "Программирование"

 

После того, как все прошло удачно, высветится что-то типа этого:

 

Но это еще не все! Как вы помните, в прошлой статье мы выставили частоту кварца 8 МегаГерц. Чтобы не было неразберихи, нам эту частоту теперь надо поделить на 8. Для этого существует фьюз, который делит тактовую частоту именно на 8. Ставим маркер на "прямые фьюзы", потом ставим галочку на CKDIV.

 

После того, как сделали эти два шага, нажимаем на кнопку "Программирование":

 

 

Теперь собираем нашу схемку, о которой говорилось еще в прошлой статье:

 

Наслаждаемся результатом:

 

 

Читайте также