Микроконтроллеры AVR для начинающих — 3
В предыдущей части статьи я рассказывал про прошивку МК с помощью программы PonyProg, теперь расскажу как прошить с помощью CodeVision AVR (далее CVAVR). Честно говоря, работа в программе не сильно отличается от PonyProg. Для начала можете микроконтроллер поставить в панельку программатора, и подключить его к LPT порту, затем подавайте питание. Запускаем программу CVAVR
1) Сначала нам нужно настроить порт, заходим в меню Settings -> Programmer.
Откроется окошко, все настройки выставляем как на рисунке ниже
2) Нажимаем ОК, далее заходим в меню Tools -> Chip Programmer
Откроется следующее окно:
Ничего лишнего в этом окошке не трогаем, галочки не ставим и ничего не переключаем. 3) Выбираем нужный нам микроконтроллер из выпадающего меню, я выбрал ATmega8. Если у вас в названии микроконтроллера после ATmegaX стоит буква, к примеру V или L, то в списке выбирайте такой же МК, с такой же буквой. 4) Теперь нам нужно открыть файл прошивки, в этом окошке нажимаем File -> Load FLASH
5) Откроется окно, где нужно будет выбрать файл прошивки с расширением .hex, кстати, не забудьте внизу из выпадающего меню «Тип файлов» выбрать этот тип файла.
6) Файл EEPROM выбираем точно так-же, для этого нажимаем меню File -> Load EEPROM, расширение этого файла .eep, если к вашему проекту такой файл не прилагается, значит нужно прошивать только FLASH т.е. .hex. Имейте ввиду, что процессы прошивки программы, фьюзов
и ПЗУ (EEPROM) это самостоятельные отдельные процедуры.
И рекомендуется шить сначала программу, затем ПЗУ, затем фьюзы, в принципе что у нас и происходит, когда мы загружаем все файлы для прошивки, и выставляем фьюзы в окошке. 7) Итак, файлы прошивки мы загрузили, теперь нам нужно выставить фьюзы, для моего проекта фьюзы следующие: BOOTSZ1, BOOTSZ0, SUT1, CKSEL3, CKSEL2, выставляем их.
8) Затем ставим галочку Program Fuse Bit(s), если вы не поставите галочку – фьюзы не будут записываться. Чтобы проверить, видит ли наша программа программатор, подключенный к LPT порту, нажимаем кнопку Reset Chip, на программаторе должны мигнуть светодиоды чтения/записи. Если светодиоды не мигают, значит нам нужно проделать операции после пункта 6, описанные в предыдущей части статьи. 9) Теперь можно прошить МК, нажимаем кнопку Program All, и начнется процесс прошивки.
Если вы загружали только файл прошивки FLASH, .hex, то по ходу прошивки программа предложит загрузить файл EEPROM, жмем NO, т.е. НЕТ.
После чего пробегут еще 2 полоски и процесс прошивки завершится
Во время прошивки МК нельзя выключать или перезагружать ПК! Теперь можете проверить МК, поставив его в панельку вашего устройства. Если вы хотите записать другую прошивку на этот же МК, новую прошивку можно записать поверх старой, или же стереть сначала старую, потом записать новую, как вам удобнее, разницы особой нету. 11) Чтобы стереть данные с МК нажимаем Program -> Erase Chip.
В данной программе можно считать данные FLASH или EEPROM с МК, или просмотреть Lock биты, установленные Fuse биты. Все это в меню Read (считать). Решение некоторых проблем с AVR C разными программаторами, и с разными программами возникают разные ошибки, но некоторые ошибки между собой очень похожи, и устраняются одинаково. Во первых микроконтроллеры подключайте строго к указанным выводам: RESET, VCC, GND, MOSI, MISO, SCK. Если спутаете вывода, или забудете припаять один из контактов, МК не прошьется. Случайно МК в панельку можно поставить спутав вывода, т.е. задом на перед, от этого МК не сгорит, но и не прошьется конечно тоже. Напомню еще раз, что у некоторых МК, например в ATmega 64 и 128 вывода MOSI и MISO не применяются для ISP программирования, вместо них вывода MOSI подключают к ножке PE0, a MISO к PE1. Напряжение питания не должно быть ниже чем нужно, иначе МК не будет программироваться, программы будут выдавать ошибки о том, что не могут обнаружить МК.
Записывать левые программы, например программу, предназначенную для 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
Оценить статью
- Техническая грамотность
Оценить Сбросить
Средний балл статьи: 0 Проголосовало: 0 чел.
Как считать прошивку из микроконтроллера

| Текущее время: Ср янв 24, 2024 20:28:47 |
Часовой пояс: UTC + 3 часа
Копирование прошивки с микроконтроллеров
| Страница 1 из 2 | [ Сообщений: 24 ] | На страницу 1 , 2 След. |
Заголовок сообщения: Копирование прошивки с микроконтроллеров
Добавлено: Пт июн 26, 2009 08:03:36
| Грызет канифоль |
У меня такой вопрос можно ли скопировать прошивку микроконтроллера? Например прислали вам набор для сборки цифрового вольтметра, микроконтроллер ATmega8 можно ли с помощью программатора извлечь прошивку из него или сделать копию.
_________________
Создать электронный мир проще,чем его понять.
Заголовок сообщения:
Добавлено: Пт июн 26, 2009 08:12:32
| Открыл глаза |
Если фьюзы защиты прошивки не выставленны во время самого процесса прошивки (что само по себе маловероятно) , то можно.
_________________
Кто не пил ни разу водки-тот не знает вкус воды!
Заголовок сообщения:
Добавлено: Пт июн 26, 2009 08:18:01
| Грызет канифоль |
Если фьюзы защиты прошивки не выставленны во время самого процесса прошивки (что само по себе маловероятно) , то можно.
А проверить это можно я так понимаю тупо прочитав микроконтроллер?
_________________
Создать электронный мир проще,чем его понять.
Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет
Заголовок сообщения:
Добавлено: Пт июн 26, 2009 09:34:03
| Говорящий с текстолитом |
В некоторых случаях, можно при помощи параллельного пр-ра
Опубликованы материалы вебинара Компэл, посвященного литиевым аккумуляторам EVE Energy и решениям для управления перезаряжаемыми источниками тока. На вебинаре мы представили информацию не только по линейкам аккумуляторной продукции EVE, но и по решениям для управления ею, что поможет рассмотреть эти ХИТ в качестве дополнительной альтернативы для уже выпускающихся изделий. Также рассмотрели нюансы работы с производителем и сервисы, предоставляемые Компэл по данной продукции.
Заголовок сообщения:
Добавлено: Сб июн 27, 2009 00:19:50
| Потрогал лапой паяльник |
Цитата:
А проверить это можно я так понимаю тупо прочитав микроконтроллер?
не знаю как с другим софтом, но понипрог считывает код, вот только полный бред если фузы стоят
Поэтому просто считать мало, можно например в протеус считанный код засунуть и проверить работает ли он.
Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW. Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного.
Заголовок сообщения:
Добавлено: Сб июн 27, 2009 08:26:04
| Грызет канифоль |
chief писал(а):
Цитата:
А проверить это можно я так понимаю тупо прочитав микроконтроллер?
не знаю как с другим софтом, но понипрог считывает код, вот только полный бред если фузы стоят
Поэтому просто считать мало, можно например в протеус считанный код засунуть и проверить работает ли он.
Попробывал скопировать прошивку с набора МастерКИТ не получается,наверно они знают о защитных фьюзах.Мало того что у них цены космические,так они и схемы,и печатки и прошивки скрывают зла не хватает !
_________________
Создать электронный мир проще,чем его понять.

Заголовок сообщения:
Добавлено: Сб июн 27, 2009 09:22:06
| Поставщик валерьянки для Кота |
вообще коммерческие проекты все лочатся, и их можно понять, ведь они продают готовое изделие, а туда входит и схема и программа. по сути как раз использование микроконтроллера и дает ту секретность при открытом аппатном решении. так что всего лишь один незалоченный контроллер способен лишить их (в частности этих барыг -«МастерКит» ) всей прибыли.
Заголовок сообщения:
Добавлено: Сб июн 27, 2009 09:26:03
| Открыл глаза |
2MHZ
дык, они же виноваты только в том, что хочется им кушать..
Кто же вам мешает это дело изучить, склепать собственное, а потом раздавать бесплатно etc

Заголовок сообщения:
Добавлено: Сб июн 27, 2009 11:15:48
| Электрический кот |
По поводу копирования залоченных прошивок — однозначно НЕ ПОЛУЧИТСЯ! Были несколько лет назад попытки сломать защиту в AT89C51/52- народ парился месяцев 8. Безрезультатно. Так что, ИМХО, проще самому все это дело изучить и написать код.

Заголовок сообщения:
Добавлено: Сб июн 27, 2009 12:43:54
| Грызет канифоль |
Ребят, одно дело с целью обогащения это делать, а другое чисто для себя. Я столкнулся с такой ситуацией когда из набора у микроконтроллера была согнута нога,я соответственно попытался выправить,а она поломалась под корень. С этого момента я и задался вопросом копирования прошивки.
_________________
Создать электронный мир проще,чем его понять.
Avrdude. Как скачать, забэкапить и залить заново прошивку
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Представьте такую ситуацию. ‘У вас есть плата от принтера (допустим китайского), которая содержит какую-то свою прошивку. И вот настал тот день и тот час, когда вы решили, что вам нужно эту прошивку поменять, по тем или иным причинам. Но вас всё ещё держит одно ‘но’. Вы боитесь всё испортить и хотите иметь возможность откатиться обратно. Но как назло — нормальной информации в интернете по вопросу, как забэкапить прошивку особо не нагуглишь. Примерно с такой проблемой ко мне, намедни, обратился один из участников нашего сообщества. И я решил, что раз уж так, то почему бы не поведать всем о том, как же это можно сделать.
Но прежде чем писать умные мысли — всё надо проверять, чем я и занялся. Эксперименты я проводил с Arduino Mega 2560. О ней дальше я и буду писать.
Поначалу я попытался пойти привычным способом ‘влоб’, достал программатор китайский (на заглавной фотке), подключился по ISP, и скачал прошивку. Попытался её залить назад. Льётся, но верификацию не проходит. Битых несколько часов рыл интернет, чтобы понять, как же можно нормально скачать прошивку с Меги по ISP. Толком ничего вразумительного не нашёл, но зато понял, что прошивку можно скачать и залить обратно и без программатора. Об этом опыте я и напишу ниже. А вот о том, как скачивать прошивку не с Arduino платы, да так чтобы она потом назад заливалась я напишу как-нибудь в следующий раз, когда у меня появится плата, которую можно безбоязненно пускать и в огонь и в воду.
Ладно, к делу. Для начала нам нужна утилита Avrdude, она входит в поставку Arduino IDE и в моей версии лежала в папке ‘%appdata%Arduino15packagesarduino oolsavrdude6.0.1-arduino2in’. Открываем папку, жмём на пустом месте SHIFT + правая кнопка мыши, а в меню выбираем ‘Открыть окно команд’. Теперь приведу простую команду, которая проверяет, что контроллер читается.
avrdude.exe -p atmega2560 -c wiring -P COM5
Если всё в порядке, то вы должны увидеть примерно такой текст (см. скриншот).

-p atmega2560 — установка типа контроллера.
-c wiring — установка программатора. Это внутренний программатор в плате Arduino Mega 2560. Может я и не правильно выразился, но тот же атрибут использует IDE, когда заливает скомпилированный скетч.
-P COM5 — настройка порта, в который воткнут USB шнурок от Arduin’ы. Подглядеть можно из IDE.
Дальше — скачаем ‘.hex’ файл с прошивкой из контроллера. Для этого воспользуемся командой:
avrdude.exe -p atmega2560 -c wiring -PCOM5 -b115200 -Uflash:r:’printer_firmware’.hex:i
Если всё хорошо, ориентируемся на скриншот, прошивка сохраниться в файле ‘printer_firmware.hex’ рядом с avrdude.exe.

Новые атрибуты команды:
-b115200 — скорость порта для программатора.
Uflash:r:’printer_firmware’.hex:i — указание считать прошивку в файл ‘printer_firmware.hex’.
Считать считали, теперь её можно бэкапить, но вот как её восстановить потом? Да тоже ничего сложного, команда не будет сильно отличаться от чтения.
avrdude.exe -p atmega2560 -c wiring -PCOM5 -b115200 -D -Uflash:w:’printer_firmware’.hex:i
Проверяем, что всё хорошо — смотрим на скриншот.

Новые атрибуты команды:
-D — запрещает автоматическую очистку памяти микроконтроллера перед прошиванием.
-Uflash:w:’printer_firmware’.hex:i — указывает на то, что нужно записать в память данные из файла ‘printer_firmware.hex’.
Дальше я подключил свою Arduino Mega 2560 назад к рампам и проверил, что прошивка работает корректно. Как видите эксперимент хоть и частично, но удался. Так что и я и вы теперь знаете, как можно забэкапить прошивку из ATmega2560, что установлена на Arduino Mega2560.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Как Считать Прошивку Микроконтроллера Через Avrdude

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.
Поделиться
Последние посетители 0 пользователей онлайн
- Ни одного зарегистрированного пользователя не просматривает данную страницу
Сообщения
![]()
Да как же тут не посмеяться, да акселерометра на палочке, ржу под столом.
![]()
Еще одно словечко в коллекцию. Вдруг пригодится.
![]()
хм. а там не подгоночный резистор последовательно с 250ом, на диоды идёт с которого ?
![]()
Вроде родные диоды целые с 4007 не было особой разницы
![]()
кремния тогда не было. германий-купрокс-селен. пробовать их
![]()
Резистор на 2 609 ом был в обрыве заменил. Заменил диоды на 1n4007 всё равно занижает на диапазоне 1.5в AC при 1.5в на входе показывает 19 делений по красной шкале с родной диодной сборкой 18
![]()
При одном, ушедшем в обрыв, вся последовательная цепь рвется. При этом срабатывает защита, драйвер снижает напряжение до минимума, чтобы ток через подсветку никакой не тек.