ПРОГРАММАТОР AVR :: AVRDUDE :: USB-программатор USBasp
Наиболее распространенным способом программирования для AVR является внутрисхемное программирование (функция ISP — in-cirсuit serial programming) через коммуникационный интерфейс SPI. Этой возможностью обладают все микроконтроллеры AVR, кроме Tiny11 и Tiny28. Данный режим удобен тем, что позволяет программировать AVR, расположенный в готовом устройстве, то есть вам не нужно вытаскивать микроконтроллер из платы каждый раз, когда вы хотите его перепрограммировать.
Интерфейс SPI (Serial Peripheral Interface) представляет собой 3 линии: SCK, MISO и MOSI.
SCK (SPI ClocK)
Тактовый сигнал, который программатор формирует на линии SCK.
MOSI (Master Out, Slave In — вход ведомого, выход ведущего)
Линия передачи данных от программатора (ведущий), к программируемому микроконтроллеру (ведомый). Во время каждого импульса на линии SCK передается один бит от программатора к программируемому микроконтроллеру по линии MOSI.
Proteus | AVRDUDE | Отладка и прошивка микроконтроллеров AVR | Микроконтроллеры с нуля #5
MISO (Master In, Slave Out — выход ведомого, вход ведущего)
Линия передачи данных от программируемого микроконтроллера (ведомый) к программатору (ведущий). По каждому импульсу на линии SCK передается один бит от микроконтроллера к программатору по линии MISO.
Для обеспечения нормальной связи по трем SPI линиям необходимо соединить общую землю ( GND ) на программаторе и программируемом устройстве.
Для входа и нахождения в режиме последовательного программирования используется линия сброса ( RESET ). Она должна удерживаться в активном состоянии (низкий уровень) во время программирования AVR. Также при стирании чипа на линии RESET должен быть сформирован импульс в конце цикла стирания.
Кроме того, может использоваться вывод контроллера XTAL1 для тактировки контроллера программатором.
При программировании AVR программатор всегда функционирует как ведущее устройство, а микроконтроллер как ведомое.
Программная часть |
В интернет можно найти множество программ, работающих с теми или иными типами устройств для программирования микроконтроллеров AVR. Большинство из этих программ совершенно бесплатны.
AVRDUDE
В состав пакета WinAVR входит мощная утилита AVRDUDE. Она позволяет загружать программы и данные в память микроконтроллера, а также считывать их оттуда. AVRDUDE использует SPI-интерфейс. Существуют версии для Windows и Linux. Первоначальный код был написан Брайеном Дином (Brian S. Dean) и имел название avrprog.
AVRDUDE может использоваться через командную строку, чтобы читать или записать все типы памяти кристалла, или при помощи графического интерфейса. Использование AVRDUDE из командной строки удобно для полного программирования всей памяти кристалла, в то время как графический интерфейс полезен для исследования содержания памяти, изменения отдельных байтов EEPROM, fuse и lock битов и т.д.
AVRDUDE поддерживает множество типов программирующих устройств, работающих через USB-интерфейс, параллельный порт (LPT) и последовательный порт (COM).
AVRDUDE_PROG И AVRDUDE В ЧЕМ ОТЛИЧИЕ | КОМАНДНАЯ СТРОКА AVRDUDE | 2020
Для работы с AVRDUDE через графический интерфейс можно воспользоваться программой USBASP AVRDUDE PROG, предназначеной для работы с программатором USBASP, о котором пойдет речь дальше.
Аппаратная часть |
USBASP — USB-программатор для AVR
Программатор USBasp — наиболее распространенный бюджетный программатор, работающий с USB-портом. Его цена, как правило, не превосходит 300 рублей (2017 г.).
Обычно программатор USBasp комплектуется кабелем с двумя разъемами на концах. Расположение выводов на ISP-разъеме программатора и на кабеле можно увидеть на следующем рисунке. ( NC означает «not connected» – не подключен.)
Перед установкой драйвера следует вставить USB-разъем программатора в свободный USB-порт компьютера. При этом в диспетчере устройств должно появиться новое устройство.
Чтобы установить драйвер USBasp необходимо запустить файл InstallDriver.exe из распакованного архива. В Windows XP можно просто указать мастеру установки нового оборудования папку с распакованными файлами драйвера.
После окончания установки драйвера в диспетчере устройств должен появиться значок программатора без желтого восклицательного знака.
После установки драйвера в Windows XP, перед началом работы с программатором может понадобиться перезагрузка.
Простейший программатор AVR
Схема простого программатора AVR
Разъем, подключаемый к параллельному порту ПК, показан со стороны пинов
Если у вас есть компьютер с параллельным портом и операционной системой Windows XP и ниже, можно использовать самый простой программатор, который состоит из 25-контактного разъема для параллельного (LPT) порта, 4-х резисторов (150 Ом) и соединительного кабеля, длина которого не должна превышать 1,5 метра. Резисторы необходимы для предохранения параллельного порта в случае неправильного монтажа и некоторых других неприятностей.
Схема получила свое название от отладочных плат Atmel для быстрого начала работы с микроконтроллерами AVR. Если вы хотите, чтобы ваш программатор почти в точности соответствовал программатору STK200, то следует поставить перемычку для определения программатора программным обеспечением (для AVRDUDE не обязательно). Перемычка должна соединять выводы 2-12.
Следует обратить внимание, что схема не имеет промежуточного буфера и не имеет гальванической развязки по отношению к параллельному порту, поэтому во избежание вывода из строя параллельного порта подключать и отключать кабель следует при выключенном питании на плате, где установлен контроллер. Кроме того, когда программатор подключен к параллельному порту, следует избегать короткого замыкания его выводов.
При использовании этого программатора в make-файле необходимо указать:
Настройка AVRDUDE при работе с параллельным портом
В Windows 2000 и Windows XP запрещена прямая работа с параллельным (LPT) портом, поэтому для нормальной работы AVRDUDE необходимо установить драйвер giveio.sys . Для установки этого драйвера зайдите в папку WinAVRbin и запустите файл install_giveio.bat (удалить драйвер из системы можно, запустив файл remove_giveio.bat ).
В Windows 98 никаких специальных настроек не требуется.
Для работы с простейшим LPT-программатором подойдет также свободная GNU-утилита PonyProg , преназначенная для программирования Flash-микросхем с последовательным доступом. PonyProg существует в Windows и Linux версиях. Имеет поддержку русского языка. Может использовать стандартный последовательный порт (COM) или параллельный (LPT) порт.
Это оригинальная статья myROBOT.ru Постоянный адрес статьи: http://myrobot.ru/stepbystep/mc_programmer.php |
Статьи раздела
МИКРОКОНТРОЛЛЕРЫ
Источник: myrobot.ru
AVRDUDE
Консольная программа для считывания, изменения и записи содержимого памяти микроконтроллеров архитектуры AVR, применяющая технологию внутрисхемного программирования.
AVRDUDE (сокращение от AVR Downloader-Uploader) представляет собой мощную утилиту, позволяющую посредством консольного интерфейса работать с памятью и прошивать микроконтроллеры от компании Atmel. AVRDUDE основана на распространенном интерфейсе обмена данными с микросхемами – SPI. Программа позволяет прошивать FLASH- и EEPROM-память, программировать фьюзы, выполнять верификацию FLASH-памяти с выбранным HEX-файлом, работать в терминальном режиме и многое другое.
Данный софт получил огромную популярность вследствие поддержки широчайшего спектра микроконтроллеров и программаторов (FT2232, Atmel AVR ISP, Altera ByteBlaster, Atmel STK500 и STK600, USBasp, Brian Dean’s Programmer, Dontronics DT006, Pony Prog STK200, Bascom SAMPLE programming cable и многих-многих других), работающих через интерфейсы параллельного и последовательного портов. Кроме официальных программных аппаратных средств от Atmel возможна работа с любительскими изделиями, не поддерживаемыми AVR Studio.
Главной особенностью программы является консольный интерфейс, требующий определенных навыков работы. Однако сторонними разработчиками для AVRDUDE был создан ряд удобных графических оболочек полезных при изучении содержимого памяти микроконтроллеров, изменения отдельных байтов EEPROM, Lock- и Fuse-битов. Программировать же всю память кристалла удобно из командной строки AVRDUDE.
В отличие от AVR Studio, полезной лишь в процессе создания и отладки программного кода, AVRDUDE больше подходит для серийного прошивания готовых продуктов. Для работы с повседневными однотипными задачами пользователю не требуется каждый раз набирать команды вручную, поскольку программа может работать с пакетными файлами. Для этого необходимо создать bat-файл и прописать в нем ключи, указать файл с прошивкой и, самое главное, верно внести в командную строку Fuse-биты. В дальнейшем будет достаточно лишь запускать bat-файл на выполнение. Для разных устройств необходимо создавать свой батник.
Программное обеспечение AVRDUDE имеет статус GNU GPL, что дает возможность каждому пользователю свободно скачивать ее, изменять по собственному желанию и распространять дальше. Благодаря этому AVRDUDE вошла в состав различных сред для разработки программ микроконтроллеров AVR, например WinAVR.
Установить данный софт можно вместе с пакетом WinAVR (для запуска необходимо написать в командной строке: avrdude) или скачать все нужные файлы, включая исходный код, с официального сайта программы: http://download.savannah.gnu.org/releases/avrdude/.
Первоначальный код AVRDUDE был создан английским программистом Брайеном Дином (http://www.bsdhome.com/). Программа была написана для операционной системы FreeBSD и распространялась под названием AVRprog. В связи с растущим интересом к данному продукту Брайан решил портировать его на другие операционные системы и выложить в свободном доступе. Изменение названия на AVRDUDE произошло, чтобы не было путаницы с утилитой AVRprog, распространяемой компанией Atmel в составе AVR Studio.
Консольный интерфейс AVRDUDE представлен на английском языке, однако в Сети можно найти русифицированные графические оболочки рассматриваемой утилиты, например AVRDUDE_PROG.
Программа AVRDUDE представлена в вариантах для Windows и Linux. Windows-версия поддерживает все известные операционные системы Microsoft, включая Vista и 7. Поскольку в Windows 2000 и Windows XP возможность работать напрямую с параллельным портом компьютера заблокирована, для нормального функционирования AVRDUDE потребуется самостоятельно установить драйвер giveio.sys, поставляемый с программой. В Windows 98 дополнительные настройки не требуются.
Распространение программы: Freeware (бесплатная)
Источник: cxem.net
AVRDudeR — встраиваем avrdude в IDE
Arduino — хорошая платформа для самоделкиных вроде меня.
Удобная, все в ней уже есть.
В чем проблема?
Программная часть мне далеко не всем нравится. Особенно ужасна Arduino IDE. Каждый файл открывается в новом окне, оставляя пустое запущенное окно IDE. И прочие мелкие глупости, которые привыкших к удобству Visual Studio, Borland/Embarcadero RAD IDE расстраивают и вызывают неудовольствие.
К счастью, мы можем использовать любую IDE какая понравится. Для готовых проектов, которые только скомпилировать и прошить или собственных пробных поделок вполне годится тот огрызок Wiring, который компилируется Arduino IDE.
Для удобства работы я использую Visual Micro Arduino — удобство Visual Studio, быстрая компиляция, прошивка стандартными средствами.
Arduino без Arduino IDE
Ступенькой выше стоит прямая работа с микроконтроллером, тут уж в вольны делать что захотите. Часто это удобнее чем разбираться в начинке библиотек Arduino. Но приходится использовать либо AVR Studio либо стороннюю IDE и компилятор от Atmel (благо, он совершенно бесплатный и входит в AVR Tools).
Все бы хорошо, но про Arduino они ничего не знают и прошить ее не могут. И вот тут начинаются неудобства.
Кому неинтересны детали, переходите сразу к делу, скачиваем и настраиваем.
AVR Studio неплохая среда, правда версия 4 довольно примитивная, а 5я тяжеловесна. Ни та ни другая кроме как через фирменный программатор прошивать не умеют. Засада.
Я взял проект бутлоадера, который совместим с AVR Studio, притворяясь AVRISP программатором. Интерфейс же с ним в AVR Studio оказался далеко не самым удачным.
Что делать?
Есть AVRDUDE — бесплатный прошивальщик, который работает почти со всеми программаторами для ATMEL микроконтроллеров. Но он консольный. Вроде бы не проблема, написал cmd или bat файл и все дела, запускай его после компиляции и всего делов. Но у меня, как, наверное, у многих, не одна плата. А каждая плата Arduino видится в системе как отдельный COM-порт. Каждый программатор тоже.
В платах установлены разные микроконтроллеры (Atmega168P, Atmega328P). Не считая самодельных Arduino-совместимых плат или вообще с голым микроконтроллером и обвязкой.
Каждый раз лазать в bat файл и править настройки под разные платы или переключаться в другое приложение чтобы его запустить для прошивки, чтобы проверить работу когда я поменял пару байт в коде, лично мне надоедает, да и ошибок возникает немало, так и контроллер убить недолго. Хуже того, с FTBB программатором работает только отдельная версия avrdude, пропатченная под него и ничего не знающая про arduino. А значит, если мы прошиваем через него, то нужно держать еще один bat файл.
В Code::Blocks IDE, которая мне больше понравилась по возможностям форматирования и удобству работы с кодом, ситуация немногим лучше, разве что можно передавать внешней утилите параметры.
Автоматизация запуска avrdude с нужными параметрами
Мне эта ситуация надоела и я написал небольшую программку, которая получает в командной строке 2 параметра:
— имя конфигурационного файла
— имя файла прошивки
Утилита сама запускает avrdude с параметрами, указанными в конфигурационном файле (просто файл с готовыми настройками для прошивания), дожидается прошивки и закрывается. Это позволяет прошивать проект в любой имеющийся микроконтроллер в процессе отладки в 2 клика прямо из Code::Blocks.
Если запустить с одним параметром, прочитает соответствующий файл конфигурации, если с двумя, попытается автоматически залить прошивку из второго параметра.
Если заинтересовало, качаем
Для изменения настроек прописываем:
Для прошивки:
По сути в настройках прописаны: первый параметр — файл avrdude.ini, который мы сохраняем при настройке в папку проекта, второй параметр — имя файла прошивки.
- Подключаем программатор или плату Arduino с которой будем работать, чтобы в системе появился нужный COM порт.
- Запускаем Tools->R AVRduder: Setup, выбираем настройки и сохраняем файл с настройками в каталоге своего проекта под именем avrduder.ini (или то, которое указали в настройках). Закрываем утилитку
Теперь скомпилировав проект, выбираем в меню Tools->R AVRDudeR: Flash и готово.
Обе версии avrdude уже лежат в архиве, ничего настраивать и прописывать в AVRDudeR не нужно.
Немного о настройках:
MCU — микроконтроллер (понятное имя и код для командной строки avrdude программа берет из mcu.lst)
Programmer — программатор. FTBB, Arduino с соответствующей прошивкой в качестве ISP программатора (ArduinoISP), или подключенная напрямую Arduino. (Текст пунктов меню и коды для строки программатора в файле programmers.lst)
Port: ну собственно COM порт программатора или Arduino (поэтому нужно чтобы плата была подключена во время настройки).
Baud rate: скорость порта. Для Arduino до UNO — 57600, UNO — 115200. В вашем загрузчике сами знаете какую настроили, а для FTBB режима этот параметр игнорируется.
Dude type: как раз тут и выбираем какой avrdude — обычный или для FTBB программатора использовать.
Галка Show Result — открыть при прошивке окно, в котором виден процесс прошивки, если вам неинтересно и вы уверены что все работает верно, не ставьте ее, программа просто выведет сообщение, когда avrdude закончит работу и сама закроется.
Саму программу можно использовать для заливки прошивки напрямую, не встраивая.
просто дважды щелкаем в поле Firmware, выбираем файл прошивки (или просто вставляем путь к файлу руками) и жмем Flash Firmware. Файл конфигурации работает и в этом случае.
Если сменился контроллер или подключили в другой порт, через другой программатор, просто выбираем Tools->R AVRDuder: Setup и открывается файл с настройками этого проекта (или настройками по умолчанию, если в папке с проектом avrduder.ini отсутствует). Меняем порт или программатор, контроллер или что там у нас поменялось и сохраняем обратно avrduder.ini в папку проекта. Все.
Да, avrdude.ini можно просто таскать из проекта в проект, если работате с одинаковыми платами/программаторами. Просто скопируйте его в папку нового проекта и можно ничего не настраивать вообще.
Ах да, чуть на забыл, в Code:Blocks я выбрал GNU AVR GCC Compiler и указал только папку к AVR Tools. А проект настроил вот так:
Тогда компилятор создает файл .elf.hex, который мы и прошиваем. Если у вас по-другому, измените второй параметр, передаваемый в AVRDudeR, чтобы он передавал имя файла прошивки.
Надеюсь, кому-то это сбережет нервы, повысит производительность и позволит сосредоточиться на собственно работе над идеей, а не возиться с кучей приблуд при каждой компиляции и заливке проекта.
Если утилита окажется полезной, пользуйтесь на здоровье.
UPD Утилита все-таки пригодилась.
Новая версия доступна на google code
- arduino
- firmware flash
Источник: habr.com
Программа AVRDUDE_PROG: программирование микроконтроллеров AVR ATmega и ATtiny
Популярнейшая программа AVRDUDE_PROG 3.3 предназначена для программирования микроконтроллеров AVR ATmega и ATtiny:
1. Возможность самостоятельного добавления программаторов, настройки скорости программирования и т.п;
2. Возможность самостоятельного добавления МК;
3. Редактирование и настройка отображения Fuses битов;
4. Выбор инверсных или прямых Fuses битов;
5. Окна вывода значений Fuses битов в HEX формате;
6. Сохранение настроек программирования при закрытии программы, т.е. при последующем открытии все настройки восстановятся.
В прошлой статье я рассказал о простом (но очень хорошем) программаторе для прошивки микроконтроллеров AVR ATmega и ATtiny — USBASP AVR программатор. В той же статье я указал какие программы поддерживают данный программатор. Наиболее лучшей из них, на мой взгляд, является программа AVRDUDE_PROG автором которой является Сергей Боднар. О ней мы сегодня и поговорим.
Последняя версия программы AVRDUDE_PROG — 3.3 , из программы всегда можно попасть на сайт разработчика и скачать новые версии.
Программа очень проста в использовании, имеет приятный интуитивно понятный интерфейс на русском языке, поддерживает очень много различных программаторов и практически все микроконтроллеры ATmega и ATtiny. Немаловажно и то, что в программу можно самому вносить изменения — добавлять программаторы, микроконтроллеры, изменять некоторые настройки (все подробно расписано на сайте разработчика).
Программа не требует установки на компьютер, необходимо только разархивировать скачанный файл и можно сразу приступать к работе, поддерживаются все разновидности Windows — от ХР до 10.
Окно запущенной программы AVRDUDE_PROG:
Что есть что:
1:
— окно выбора типа микроконтроллера
— кнопка «Стереть все» — очищает все внутренности микроконтроллера
2:
— чтение калибровочных ячеек микроконтроллера
В данном примере показаны четыре калибровочные ячейки микроконтроллера ATmega8 для внутреннего RC генератора:
ВВ — для частоты 1 МГц (частота по умолчанию)
BD — для частоты 2 МГц
В2 — для частоты 4 МГц
В2 — для частоты 8 МГц
При тактировании микроконтроллера ATmega8 частотой 1 МГц от внутреннего RC генератора (по умолчанию) содержимое первой калибровочной ячейки автоматически учитывается микроконтроллером для подстройки внутреннего генератора. При других частотах — содержимое соответствующей калибровочной ячейки необходимо вручную вводить в регистр микроконтроллера для получения более стабильной частоты (если такое нужно). К примеру, в конструкции «Трехканальный термостат, термоморегулятор, таймер. «, которая работает с тактовой частотой 8 МГц от встроенного генератора с внутренней RC цепочкой, требуется перед прошивкой ЕЕPROM памяти записать в определенную ячейку HEX файла значение калибровочной ячейки для частоты 8 МГц.
3:
— выбор HEX файла для прошивки Flash памяти микроконтроллера, сверка записанного файла с оригиналом, чтение данных из памяти
4:
— выбор HEX или EEP файла для прошивки EEPROM памяти микроконтроллера, сверка и чтение
5:
— выбор программатора (по умолчанию — USBASP)
Если вы будете пользоваться программой скачанной с сайта разработчика то там, по умолчанию (первым в списке), будет идти «USBASP», у меня на картинке 4 разновидности USBASP программатора:
— Usbasp_1M
— Usbasp_4M
— Usbasp_8M
— Usbasp-32кГц
Дело в том, что программатор USBASP позволяет записывать файлы прошивки с двумя скоростями:
— для МК с тактовой частотой 1,5 МГц и выше (без перемычки на J3) — скорость записи 375 кГц
— для МК с тактовой частотой менее 1,5 МГц (с перемычкой на J3) — скорость записи 5 кГц
Для нормальной записи прошивки в МК требуется скорость в 4 раза меньше, чем установленная тактовая частота.
Для прошивки нового МК, у которого по умолчанию тактовая частота 1 МГц, необходимо устанавливать в программаторе перемычку на разъем J3, а сама скорость — 5 кГц, в некоторых случаях начинает нервировать.
Для того, чтобы не портить нервы, не дергаться с перемычкой, я программно установил 4 варианта скорости записи, которые выбираются в зависимости от текущей тактовой частоты МК:
— Usbasp_1M — скорость 187,5 кгЦ, для частот 1-4 МГц
— Usbasp_4M — скорость 375 кГц, для частот 4-8 МГц
— Usbasp_8M — скорость 750 кГц, для частот 8 и более МГц
— Usbasp-32кГц — скорость 4 кГц, для часового кварца
Все эти установки прописаны в самом начале файла «programm.ini» где скорость записи зависит от ключа «-В» и числа после него:
6:
— выбор отображения FUSE битов — прямой (как в UniProf и даташитах) и инверсный (как в PonyProg)
7:
— окно вывода служебной информации о выполняемых и выполненных операциях
Внешний вид окна «FUSES» программы AVRDUDE_PROG:
Тут все просто — расставляем в нужном виде галочки или убираем их и программируем FUSE биты. Если что-то намудрили — нажатие кнопки «По умолчанию» приведет установки FUSE битов в значения «по умолчанию» (сами FUSE биты в МК не изменятся!). Очень внимательно устанавливайте FUSE биты — ошибка может привести к отказу микроконтроллера.
Хочу обратить ваше внимание на самую распространенную ошибку при установки FUSE битов. В большинстве случаев мы изменяем только биты ответственные за выбор источника тактирования и частоту тактирования, к примеру для ATmega8 это: CKSEL0-CKSEL3. По умолчанию у ATMEGA8 тактовая частота 1 МГц от внутреннего генератора — сброшен бит CKSEL0 (стоит галочка).
Нам, допустим, нужно установить тактовую частоту 8 МГц от внутреннего генератора — сбросить бит CKSEL2 (поставить галочку), что мы и делаем. Но при этом ЗАБЫВАЕМ УСТАНОВИТЬ БИТ CKSEL0 (убрать галочку)!. В результате, программируя FUSE биты, мы получаем совершенно иной результат — программа не работает, а МК не реагирует на программатор.
Забыв сбросить бит CKSEL0 мы получаем другой источник тактирования МК — внешний RC. Отчаиваться не надо, главное разобраться в том, что вы получили в результате. В нашем примере — внешний RC, смотрим даташит, подсоединяем к соответствующим входам МК сопротивление и конденсатор (по схеме из даташита и с нужными номиналами) и восстанавливаем контроль над МК.
Внешний вид окна «Автоматическое программирование» AVRDUDE_PROG:
Здесь можно задать первоначальные настройки для разных случаев использования программы.
Как видите — программа AVRDUDE_PROG проста и понятна в использовании, за что и скажем спасибо Сергею Боднару!
Источник: microkontroller.ru
057-Программируем AVR-микроконтроллеры USBtiny + AVRdude + SinaProg.
В прошлой статье у нас появился USB программатор — USBtiny. В этой статье я расскажу как очень просто прошивать микроконтроллеры через этот программатор. USBtiny поддерживается программой AVRdude, а это очень облегчает нам задачу.
AVRdude консольная программа, что, несомненно, является ее плюсом, так как позволяет очень гибко себя использовать. Но консольные программы не очень удобны, так как нуждаются в прописывании длинных строк-ключей для задания всех необходимых для программирования параметров (а некоторые, например фьюзы, предварительно нужно еще и высчитать).
Частично эту проблему можно решить прописыванием батников под каждое устройство (что я и планировать, поначалу, делать), но теряется гибкость и очень сложно работать с ошибками. Решение этой проблемы — GUI — графические оболочки для AVRdude. Их существует немало! Но мне очень понравилась оболочка SinaProg.
SinaProg очень приятная в использовании программа. Я думал, что проще UniProf программатора быть не может. Oказывается — может! Не смотря на простоту и доступность SinaProg, автор сохранил всю гибкость AVRdude и возможность тюнинговать саму SinaProg под свой вкус (например, можно запросто русифицировать описание фьюзов, создать свои пресеты и т.д.).
Программа портативна — работает с любого места (как я люблю :)). SinaProg уже имеет в своем составе AVRdude — отдельно устанавливать не нужно. Из недостатков, пожалуй, можно отметить размер программы — чуть больше 20мБт (10 в архиве).
Программируем при помощи SinaProg.
Честно говоря, описывать процесс программирования через SinaProg просто нет смысла. Любой запустивший программу сразу поймет, что к чему. Вникать в подробности тонкой настройки я не буду — вещь не особо нужная, в данной ситуации — все и так хорошо работает. Рекомендую использовать для USBtiny-программатора версию 1.3.5.6. На данный момент есть несколько более новых версий и они тоже хорошо работают с USBtiny, но лишние настройки будут мешать.
После запуска программы мы увидим главное окно.
Сверху-вниз:
— окошко выбора пути и имени для HEX-файла;
— окошко системных сообщений;
— стрелочка вправо показывает/ прячет окно с логом сообщений от AVRdude (обычно не востребовано, но если появляются проблемы — открываем и смотрим что об этом «говорит» AVRdude;
— прогресс-бар — отображает процесс работы с микроконтроллером;
— поле работы с Flash-памятью микроконтроллера. Программирование, проверка (сравнивается содержимое памяти с HEX-файлом) и чтение (до процедуры чтения должен быть выбран HEX-файл в верхним окошке — в противном случае быдет выдаватся ошибка);
— поле работы с EEPROM-памятью — аналогично Flash;
— поле выбора микроконтроллера — в выпадающем списке выбираем микроконтроллер с которым будет работать программатор, кнопка «Search» запускает процесс проверки соответствия выбранного микроконтроллера подключенному (полезно для проверки работоспособности цепочки программатор-шлейф-микроконтроллер);
— работа с фьюзами. Окошко пресетов и кнопку «Program» не трогаем — это для работы с пресетами. Захотите использовать — нужно будет вручную прописывать эти самые пресеты — оно Вам нада? Кнопка «Advanced…» открывает окно установки фьюзов;
— поле выбора программатора. В выпадающем списке выбираем USBtiny, порт будет без вариантов USB. В новых версиях SinaProg есть возможность выбора различных портов и скорости работы с ними, но по факту все работает одинаково при любых настройках (недоработка программы?).
«Advanced…» окно работы с фьюзами.
Окно очень информативно. Содержит сигнатуру микроконтроллера (Device Signature), калибрационное значение для генератора (Calibration), и собственно, сами фьюз-биты, разбитые на четыре байта (Lock Bits, High Fuse, Low Fuse, Ext. Fuse). При открытии окна данные автоматически считываются с микроконтроллера.
Запись фьз-бит возможна в двух вариантах:
1 Записью в соответствующие окошки значений всего байта (шестнадцатеричные числа).
Этот способ более удобен (безопасен) если Вы повторяете готовое устройство и у Вас есть эти значения.
Впредь я постараюсь не забывать выкладывать эти значения вместе с прошивкой для своих устройств.
2 При помощи фьюз-калькулятора. Удобно если Вы создаете свое устройство и необходимо задать нужный Вам режим работы микроконтроллера. Для перехода в этот режим жмем «С» возле нужного байта фьзов. Откроется окно калькулятора, где и выбираются нужные режимы работы.
После того как все значения выставлены — жмем «Write».
Нижнее поле не трогаем.
Окно калькулятора фьюз-бит.
В окне в выпадающих списках и чек-боксах выбираем нужный режим, в окошке снизу сразу видим значение всего байта. Когда установка завершена — жмем ОК.
Внимание!
Значения фьюз-бит здесь не как по даташиту, а инверсно.
Галочкой разрешается выбранная функция.
В данном случае это логично, если воспринимать калькулятор как настройщик конфигурации микроконтроллера, а не как отображение фьюз-бит. Будьте внимательны — неправильная установка некоторых бит сделает невозможным дальнейшее использование микроконтроллера.
Процедура программирования проста:
— включаем программатор USBtiny в USB (драйвер уже должен быть установлен);
— подключаем программатор USBtiny к программируемому устройству;
— запитываем программируемое устройство (если оно не запитывается от USB);
— запускаем SinaProg, выбираем в окошке программатора «USBtiny», выбираем тип микроконтроллера;
— выбираем HEX-файл прошивки, в поле Flash жмем кнопку «Program» — микроконтроллер прошьется;
— нажимаем «Advanced…» и в новом окне выставляем фьюзы (как описано выше), жмем «Write» — прошиваем фьюзы;
— готово, микроконтроллер прошит. Отключаем питание, отключаем программатор, закрываем программу.
Вот и все описание. Ничего сложного!
Источник: www.getchip.net