Реклама ⓘ
Главная » Начинающим
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Похожие статьи:


Реклама ⓘ

Микроконтроллеры AVR для начинающих - 3

В предыдущей части статьи я рассказывал про прошивку МК с помощью программы PonyProg, теперь расскажу как прошить с помощью CodeVision AVR (далее CVAVR). Честно говоря, работа в программе не сильно отличается от PonyProg.

Для начала можете микроконтроллер поставить в панельку программатора, и подключить его к LPT порту, затем подавайте питание.

Запускаем программу CVAVR

CodeVision AVR

1) Сначала нам нужно настроить порт, заходим в меню Settings -> Programmer.

CodeVision AVR

Откроется окошко, все настройки выставляем как на рисунке ниже

CodeVision AVR

2) Нажимаем ОК, далее заходим в меню Tools -> Chip Programmer

CodeVision AVR

Откроется следующее окно:

CodeVision AVR

Ничего лишнего в этом окошке не трогаем, галочки не ставим и ничего не переключаем.

3) Выбираем нужный нам микроконтроллер из выпадающего меню, я выбрал ATmega8. Если у вас в названии микроконтроллера после ATmegaX стоит буква, к примеру V или L,  то в списке выбирайте такой же МК, с такой же буквой.

4) Теперь нам нужно открыть файл прошивки, в этом окошке нажимаем File -> Load FLASH

CodeVision AVR

5) Откроется окно, где нужно будет выбрать файл прошивки с расширением .hex, кстати, не забудьте внизу из выпадающего меню "Тип файлов" выбрать этот тип файла.

CodeVision AVR

6) Файл EEPROM выбираем точно так-же, для этого нажимаем меню File -> Load EEPROM, расширение этого файла .eep, если к вашему проекту такой файл не прилагается, значит нужно прошивать только FLASH т.е. .hex.

Имейте ввиду, что процессы прошивки программы, фьюзов
и ПЗУ (EEPROM) это самостоятельные отдельные процедуры.
И рекомендуется шить сначала программу, затем ПЗУ, затем фьюзы, в принципе что у нас и происходит, когда мы загружаем все файлы для прошивки, и выставляем фьюзы в окошке.

7) Итак, файлы прошивки мы загрузили, теперь нам нужно выставить фьюзы, для моего проекта фьюзы следующие: BOOTSZ1, BOOTSZ0, SUT1, CKSEL3, CKSEL2, выставляем их.

CodeVision AVR

8) Затем ставим галочку Program Fuse Bit(s), если вы не поставите галочку – фьюзы не будут записываться.

Чтобы проверить, видит ли наша программа программатор, подключенный к LPT порту, нажимаем кнопку Reset Chip, на программаторе должны мигнуть светодиоды чтения/записи. Если светодиоды не мигают, значит нам нужно проделать операции после пункта 6, описанные в предыдущей части статьи.

9) Теперь можно прошить МК, нажимаем кнопку Program All, и начнется процесс прошивки.

CodeVision AVR

CodeVision AVR

Если вы загружали только файл прошивки FLASH, .hex, то по ходу прошивки программа предложит загрузить файл EEPROM, жмем NO, т.е. НЕТ.

CodeVision AVR

После чего пробегут еще 2 полоски и процесс прошивки завершится

CodeVision AVR

Во время прошивки МК нельзя выключать или перезагружать ПК!

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

11) Чтобы стереть данные с МК нажимаем Program -> Erase Chip.

CodeVision AVR

CodeVision AVR

В данной программе можно считать данные FLASH или EEPROM с МК, или просмотреть Lock биты, установленные Fuse биты. Все это в меню Read (считать).

Решение некоторых проблем с AVR

C разными программаторами, и с разными программами возникают разные ошибки, но некоторые ошибки между собой очень похожи, и устраняются одинаково. Во первых микроконтроллеры подключайте строго к указанным выводам: RESET, VCC, GND, MOSI, MISO, SCK. Если  спутаете вывода, или забудете припаять один из контактов, МК не прошьется. Случайно МК в панельку можно поставить спутав вывода, т.е. задом на перед, от этого МК не сгорит, но и не прошьется конечно тоже.  Напомню еще раз, что у некоторых МК, например в ATmega 64 и 128 вывода MOSI и MISO не применяются для ISP программирования, вместо них вывода MOSI подключают к ножке PE0, a MISO к PE1. Напряжение питания не должно быть ниже чем нужно, иначе МК не будет программироваться, программы будут выдавать ошибки о том, что не могут обнаружить МК.

CodeVision AVR

CodeVision AVR

Записывать левые программы, например программу, предназначенную для ATmega8 в ATmega48 нельзя.  Бывает, что вы запрограммировали МК и файлы прошивки удалили с компьютера, а найти прошивку чтобы прошить другой МК не можете найти. В таких случаях просто считываете программу с микроконтроллера, например с помощью CVAVR и сохраняете его на ПК, затем этой прошивкой прошиваете другой МК.

Если вы случайно запрограммировали какой то фьюз, после чего МК залочился, вспомните, что это был за фьюз, некоторые МК с неправильно зашитыми фьюзами удается восстановить, есть несколько способов как это сделать. На К155ЛА3 можно собрать генератор чтобы восстановить МК с запрограммированным RSTDSBL, если вы выставили фьюзы на работу от внешнего генератора, подавая сигнал на вывод XTAL1 некоторые умудряются таким способом восстановить МК. Также фьюзами можно выставить тактирование от внешней RC цепочки. В таком случае придется собрать RC цепочку, чтобы опять запустить МК. Ещё есть фьюзы DWEN, SPIEN..., установив которые, вы отключите возможность пользоваться ISP программатором, тут поможет только параллельный программатор, другие программаторы (к примеру тритон) или приборы, которые встречаются на просторах интернета: например этот, или ATmega Fusebit Doctor, данный прибор я собирал, но почему то он не заработал должным образом, плата все еще валяется где то в ящике, как нибудь снова надо взяться за него. Честно говоря, у меня до сих пор валяются три залоченных микроконтроллера, две меги48 и одна мега8, однажды мегу 8ю, которая перестала определяться в программаторе PonyProg (работает через COM порт) я восстановил собрав программатор STK200. Притом знаете ли, свой первый купленный микроконтроллер я прошил с первого раза, и он до сих пор работает у меня в лабораторном блоке питания.

Теги:

Романов А.С Опубликована: 2012 г. 0 2
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (9) | Я собрал (0) | Подписаться

0
Денис #
На К155ЛА3 можно собрать генератор чтобы восстановить МК с запрограммированным RSTDSBL

Видимо в статье ошибка, фьюз RSTDSBL отключает возможность использовать вывод МК RESET в качестве входа для сброса МК и как следствие такой МК невозможно перепрошить обычным программатором, хотя программа будет функционировать нормаль. Для того чтобы можно было прошить такой МК требуется специальный параллельный высоковольтный программатор, например STK-500 или HVprog. А на 155ЛА3 такой не сделать
Ответить
+2
Константин #
Собрал описанный программатор. МК ATmega8А-PU определяется, а ATtiny2313A-PU выдает показанные ошибки. В чем может быть дело?
Ответить
+2
Владимир #
Хорошее начало! Все предельно просто и понятно, хотелось бы научиться программированию, увидеть примеры программ...
Ответить
+2
Николай #
Есть ли какие особенности у ATmtmega1280? Перепробовал ВСЕ варианты - SPI, JTAG - камень на связь не выходит... на EEPROM хочется взглянуть
Ответить
0
Михаил #
У меня программатор Sable Prog, попробовал запрограммировать ATMega8, и мне выдано было сообщение: "STK500 error entering programming mode." В чём может быть дело?
Ответить
0
Alexey732 #
Я делал программатор Громова раза три. На 3-ем кое как удавалось прошить. Но после очередной прошивки, МК перестал определяться. Купил STK-500 - тот вообще ругается на CVAVR, не знаю, что еще может быть... Уже интерес остыл к МК заметно...
Ответить
0
сергей #
Первый мой программатор авр910, увенчался полностью залоченой атмега8. Залочил все фьюзы! Спасла меня вторая атмега8 к которой припаял сверху панельку. Первый вывод панельки который идет на ресет не припаивал, а отогнул и подпаял проводок. Залил первую попавшую прошивку атмега8 доктор через лпт программатор. В панельку вставил залоченую атмега8. Проводок от вывода панельки подключил к разьёму питания привода пк, 12вольт, желтый. Vcc обоих микроконтроллеров подключил к тому же разьему на 5вольт, красный. И ровно на тридцать секунд подключил землю контролеров к тому же разьему. Все фьюзы вернулись к заводским настройкам. Но иногда бывает, что сброс фьюзов получается со второй попытки.
Совет: не втыкайте провода в пк напрямую. Не жалейте приобретать разьемы. И соединяйте все пайкой. Именно из-за плохого контакта в лпт порту, погорела моя первая попытка прошить микроконтроллер.
Ответить
0
Григорий #
Давно давно собирал ПониПрог в Радио 2001 год. Подключал к СОМ порту. I2C микросхемы с картриджей Xerox PE120i and Xerox Work Center 4118 считывал и обнулял. Работал в Сбере так что была возможность новый картридж считать и обнулить счетчик в отработанном. Потом собрал уже цивильный на МАХ232 74НС04 но честно его даже не включал да и схему искать нужно. LPT порта на компе нет а СОМ есть. Можно ли шить им AVRы и PICи тоже интересуют. Есть еще JDM программатор для I2C PIC16F84 PIC16F628 больше он ничего не шьет. I2C им считывал успешно
Ответить
0
vladd #
Fuse Doctor вполне работоспособен.
Заработал сразу+восстановление ATiny13,15.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическое сопротивление?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Макетная плата для пайки (10 шт)
Макетная плата для пайки (10 шт)
Металлоискатель MD3010II Набор 4WD Kit Bluetooth
вверх