В моей не давней статье про V-микшер, был один комментарий с предложением сделать видео урок по прошивке микроконтроллеров. Вот та статья
Да, к стати, описывать я буду AVR микроконтроллеры (tiny, mega), просто их великое множество, и так, поехали!
Начну с пояснений, что есть что и зачем это надо.
Сама так называемая «прошивка» - это файл с расширением «.hex» - это и есть программа, благодаря которой оживает микроконтроллер, установленный на вашей плате, без прошивки такая плата – просто кучка бесполезных радиодеталей! Именно её мы и скачиваем с просторов инета.Так же в папке с скачанной «прошивкой» может находиться и ещё один файл с расширением «.eep» - это не рабочая программа, а просто данные, которые использует основная программа, то есть временнЫе калибровки импульсов или на пример «домашние» координаты GPS, или фэйл сэйв и тому подобное, да просто всё, что угодно, что нужно сохранить в памяти и не настраивать заново плату после выключения питания.Файл «.hex» шьётся в FLASH контроллера. Файл «.eep» - в EEPROM. Об этом подробнее ниже.Так же существуют так называемые «фьюз биты» - они отвечают за настройку самого контроллера – это тактовая частота, пониженное напряжение до сброса, сторожевой таймер – защита от зависания, биты защиты от считывания прошивки – их устанавливает производитель, что бы не тырили прошивку! Ну и кое чего ещё…
На фьюзах можно не заострять внимание, если Вы просто перепрошиваете какую-то рабочую плату, на пример ESC для коптера для улучшения его характеристик…
Далее про мозги.
Все AVR-ки, запаянные на плате шьются по 6-ти проводам:
MOSI
MISO
SCK
RESET
Vcc – «+5В»
GND или Vss – «земля»
Именно так названы провода, выходящие с платы программатора!
И точно так же называются выводы микроконтроллера – их можно найти в документе под названием «datasheet».
Вот скриншот со второй страницы даташита для примера:
Это скрин ATmega8A-AU – красным потому, что это нам знать не обязательно.
И так: смотрим на нашу плату, находим микроконтроллер, читаем его название, скачиваем даташит и находим нужные нам ножки и скорее всего эти ножки соединены с штырьковой колодкой, распаянной на плате.
Далее про программатор.
Их, как и семейств контроллеров – множество!
Когда-то я пользовался на прямую LPT портом, потом собрал STK 200/300
Потом «AVR-910»
Всё это нравилось, пока я просто занимался повторением чужих конструкций. А уж как и сам научился писать прошивки, их скорости стало катастрофически не хватать – пришлось делать «USBASP», в то время я ещё не знал, что его можно купить здесь… USBASP а везде в инете тогда предлагали за 1000!
Пришлось делать самому Только вот проблема - что бы сделать такой программатор – нужен программатор. И если не у кого взять – то проще купить готовый.
Ещё бывает «Параллельное» программирование – это конечно очень быстро, но дорого!
Далее про оболочку.
Оболочка – это и есть та программа, которая устанавливается на компьютер, их тоже много красивых, функциональных и не очень… Всё их отличие в основном – это список поддерживаемых микроконтроллеров и программаторов. Именно в эту программу вставляются файлы «.hex» и «.eep», именно эта программа заливает прошивки на наши платы (через программатор конечно же), именно она переключает фьюзы…
Как я уже говорил – таких программ много. AVR Studio, CVAVR, AVRGCC и т.д. – это всё пакеты, в них пишется текст программы для контроллера, оптимизируется, компилируется и заливается в контроллер. Сам я пользуюсь CVAVR 2.05, но в ней нет поддержки программатора USBASP. По этому приходится пользоваться простыми оболочками, такими, как Khazama, AVRDUDE, SinaProg, ExtremeBurner и т.д.
Ну а теперь постараюсь наглядно показать, как всё это происходит, режиссёр из меня конечно не очень, да и голос далеко не дикторский.
Пояснение:
На макетной плате стоит микроконтроллер ATtiny13A, светодиод с ограничительным резистором, кнопка и подтягивающий резистор на вывод RESET.
Что будет делать контроллер? Он будет мигать светодиодом, за это отвечает файл «.hex». Короткими нажатиями на кнопку я буду увеличивать скорость моргания и эта скорость будет сохраняться в памяти – за это отвечает файл «.eep».
В качестве оболочки буду использовать «Khazama».
Смотрим.
Спасибо. Рассказано доходчиво, можно сказать, ничего лишнего.
А главное, без дорогих прибамбасов.
А за статью плюс я уже поставил :)
Еще один "плюс" ардуино - не нужны программаторы. Достаточно купить переходник USB-Uart, желательно на микросхеме, в которую всех влюбляют, FT232RL, которая будет поддерживать 3,3 и 5 вольт, и иметь полномодемный кабель (не только Rx и Tx). Хотя сейчас некоторые программаторы стоят даже дешевле)))
Но я имел в виду прежде всего опыт по использованию Arduino Uno в качестве программатора -отладчика МК, который потом включается в готовое устройство без порта USB и индикаторов, все это благодаря тому, что в Уне МК крепится на панельке, готовые устройства тоже делаю с панельками. В случае чего, можно исправить ошибки, всплывшие через длительный период эксплуатации устройства.
Денис подскажите, будте добры. Здесь программатор в долгом ожидании прибытия, а на альтернативных источниках их вагон и маленькая тележка , от 2$.
Помогите определиться, по вашему опыту. Какие основные параметры, по каким другим признакам его выбрать, или просто пальцем покажите, чтобы поменьше заморочек для начала.
смущает многообразие названий и цен, а по сути в их описаниях написано одно и то же, так что берите самый дешовый ,но это только для Atmel
Вопрос - могу я перепрошить сам программатор, чтобы он стал "настоящим" USBasp?
Думаю надо всё-таки попробовать его прошить с помощью Ардуинки.
Когда-то попробовал собрать схемку поисковика (Buzzer)на контроллере PIK12C модели в траве ,помоему с сайта Школы дядьки Глайдера. Схема подкупила простотой а навыков прошивки не было.
В сети пересмотрел кучу схем и выбрал более простые прошивальщики для сборки собрал (СХЕМЫ 2х программаторов для PIC12.doc).
Потом оказалось что нет COM порта у нового компа ,пришлось покупать слот .
Прошил удачно сделал себе три штуки.
Канительно.Доказал себе что могу ,но больше не хочу ,тем более программы писать дано не всем.
А Вам успехов в Ваших начинаниях ,от меня большой +.
Сайт с PIC http://www.diyrc.com/picaxe.htm
Программатор (софт) IC-Prog как пользоваться http://electroavto.bestff.ru/viewtopic.php?id=163
Разархивируй архив СИРЕНА ДЛЯ МОДЕЛНОГО ПОИСКА.7z В программаторе использовал транзисторы КТ315 .Микросхемы PIC прошиваются только один раз. Из 4-х шитых мной одна не пошла . Удачи.
заранее спасибо
курить и паять ВЕСЬ сайт , а ещё находить и скачивать книжки по Си и желательно Ассемблер.
Удачи!
Прошивать и учиться писать проги - одно. Желательно, точнее, очень желательно изучить методы кодирования, двоичную систему счисления, элементарные логические операции. В дальнейшем этот поможет, т. к. в силу ограниченности команд и "простора" для программирования, некоторые стандартные алгоритмы приходится писать через одно место.
Очень рекомендую Мортон "программирование AVR", хорошие книги автора Белова по АВР. В качестве справочника обязательно возьмите книги Евстифеева и книгу Юревича. Это все про АВР.