Программа обновлена до версии 08.06.2010.
Автор UniProf не покладая рук работает над улучшением своей программы, делая ее еще лучше. Версия программы от 08.06.2010 значительно лучше шьет микроконтроллеры. Наблюдаемые в предыдущей версии частые сбои при программировании без галочки «тормоз» остались в прошлом. Все остальное, что нам так нравиться в UniProf, осталось на месте.
Честно говоря, по началу, я решил использовать для прошивки микроконтроллеров программу AVRDUDE («дудка»). AVRDUDE мощная программа, заслуживающая уважения – умеющая работать с огромным количеством программаторов, с кучей настроек и довольно широко используемая для AVR микроконтроллеров. Программа не имеет своего «GUI» (работает с командной строки) и я собирался писать батники под каждую прошивку, чтобы в «один тык» прошивать контроллер. Но, немного поразмышляв, пришел к выводу:
— программа должна быть простой и доступной – чтобы с ней мог разобраться даже человек ни разу не работавший с микроконтроллерами (ну вот такой я идеалист :));
— была небольшой, портативной, со своим ГУИем, визуально отображала все этапы программирования, поддерживала микроконтроллеры используемые в блоге.
К сожалению, под эти требования AVRDUDE не подходит.
Зато подходит другая программа — UniProf-универсальный программатор для AVR. Программа имеет определенные недостатки, но они компенсируются простотой и доступностью. Кроме того, UniProf умеет работать с нашими LPT и COM программаторами. Поэтому я решил сделать общий пост-обзор программы UniProf, а позже отдельно опишу программирование через LPT и COM порт. Итак …
Автор программы Михаил Николаев. Программа имеет довольно продолжительную историю, но не может похвастаться частыми обновлениями. В то же время программа настолько проста и удобна, что не теряет своей актуальности и сейчас даже на фоне более продвинутых программ.
Начнем ознакомление.
Главное окно UniProf вмещает в себя весь функционал программы. Вам не придется лазить по меню – все делается в «один тык». Программа имеет свою справку (нажимаем F1) в которой все подробно описано. Интерфейс UniProf интуитивно понятен, но давайте пройдемся по элементам окна.
Главным элементом является окошко PROGRAM. В нем (в ячейках таблицы) отображаются прочитанные или записываемые значения ячеек памяти контроллера. Если убрать галочку PROGRAM окошко скроется. Также есть галочка EEPROM для показа или скрытия окна EEPROM памяти контроллера (в большинстве случаев EEPROM нам не нужен – убираем галочку).
Верхний ряд кнопок (слева на право)
Прочитать содержимое контроллера. Прочитанное отображается в окошках. Потом это содержимое можно сохранить в файл. (при установленной галочке EEPROM – читается также область EEPROM).
Записать содержимое окошек (прошивку) в контроллер. Предварительно нужно загрузить в окошки прошивку из файла. (при установленной галочке EEPROM – записывается также область EEPROM).
Проверка (верификация) памяти контроллера со значениями в окошках. Отличия обозначаются звездочками. (После записи верификация производится автоматически – поэтому проверять не нужно).
Проверка контроллера на чистоту. У «чистого» контроллера все ячейки памяти содержат 0xFF, что и проверяется.
Установка FUSE битов. Внимательно установите галочки как на картинке прилагаемой к каждой прошивке.
Важно! До прошивки FUSE битов обязательно установите галочку «тормоз» это уменьшит риск их неправильной записи.
Низкоуровневая команда. Лучше не трогайте.
Очистка (Erase) контроллера. Перед каждым программированием делайте очистку кристалла.
Дальше идут кнопки работы с фалами прошивок.
Первые три открывают файл прошивки соответствующего типа (я буду выкладывать HEX-прошивки) и заполняют окошки значениями с открытого файла. Следующие три сохраняют в файл выбранного типа значения из окошек.
Идем дальше.
«osccal» — чтение калибровочных байт контроллера. Нам не нужно.
F1-помощь – вызов встроенной справки.
Следующие две кнопки отладка в контроллере – нам не нужно.
LPT pins – очень полезная штука для тех, кто уже успел пальнуть некоторые линии LPT порта или использует программатор другой конструкции. Позволяет назначить любые линии порта взамен выгоревшим.
Кружка – помощь автору.
Чекбоксы под кнопками.
Ставим как на картинке. Первый показывает прочитанные или готовые для записи в контроллер байты. Второй для принудительной записи 0хFF в пустую ячейку. Третий — инвертирование линий COM порта (при использовании буферной микросхемы в программаторе). Синеньким будет светиться название подключенного контроллера. Далее — вкл/выкл окошка EEPROM. Красненьким показывается системная частота.
Важно! Если кликать по красному программа повторно засинхронизируется с контроллером. Нажимайте, на всякий случай, до начала программирования.
Другие элементы окна.
Этими галочками убираются лишние кнопки (чтоб не путались). Ставим как на картинке.
Очень важно! Нужный чекбокс. В старой версии программы были определенные проблемы с надежностью программирования без этого чекбокса. В новой версии программы эта проблема решена! Но если при записи или чтении происходят ошибки — программа сразу честно признается в этом. Если у Вас выдается такое сообщение – ставьте галочку «тормоз» и все запишется без проблем! Только медленней. При записи фьюзов «тормоз» обязателен! Не надо рисковать.
Можно указать какую область прожечь – ставим «Все!».
Выбор порта, с которым будем работать. Если незнаем куда тыкнули программатор – по очереди перебираем все, пока синеньким не высветится Ваш контроллер.
Еще есть «горячие клавиши».
F2 Установка задержки записи, нормально = 6. Если ошибки — попробуйте увеличить (? какого либо эффекта не наблюдается).
F3 Покажет список поддерживаемых контроллеров.
Gray -,+ Уменьшить-увеличить шрифт циферок в окошках Flash и EEPROM — это может быть полезно при изменении размеров окна.
Esc – отмена текущего действия.
Есть еще, но не очень нужные – читайте встроенный хелп.
UniРrof можно скачать здесь:
uniprof_08_jun_10.zip (Одна Загрузка)
Или на сайте программы .
Ссылки:
Сайт программы UniProf.
Подробная инструкция как запрограммировать AVR микроконтроллер через LPT порт >
Подробная инструкция как запрограммировать AVR микроконтроллер через COM порт >
P.S. Все равно со временем заюзаем AVRDUDE — мощная вещь!
Жаль, что нет в числе программируемых ATMega1284P…
да, если не считать, то там просто пустые чекбоксы.
Получается, все таки, нужно при любом раскладе, предварительно в обязательном порядке честь фьюзы. Понадеялся что при открытии окна фьюзов, информация об их состоянии выводится не с потолка(ни в коем случае не хочу никого обидеть),хотя от состояния при пробном подключении и прочтении ничем не отличалась. Поэкспериментировал с Attiny 13 — все без проблем (Attiny 2313 боле пока нет).
Да,при, так сказать, контрольном подключении стер пустой контроллер,открыл фьюзы, предварительно прочитал — все хорошо. Отключил и подключил контроллер снова и здесь, после открытия окна фьюзов, их то предварительно и не прочитал, а только установил требуемую конфигурацию и огонь(в смысле прошил).
Write 0xFF — недолжно залочить МК. Походу где-то ошибка в фьюзах была. Перед записью фьюзов их предварительно прочитали?
Приветствую. Собрал COM программатор Громова(перед подключением перепроверил сборку). Подключил Attiny 2313. Питание+5 от USB. Все чинно,благородно. UniProf тиньку увидел без проблем. При включенном тормозе залил прошивку (для USB программатора)ошибок не было,затем фьюзы прошились (как на картинке),перед этим 10 раз сверил. Надо бы радоваться….. Однако рано. Больше тиньку никто не видел. Прокрутил видеорегистратор (тот что в голове)- в UniProf при всех операциях не поставил галку «Write 0xFF». Возможна ли из-за этого данная проблема?
И далее только доктор?. Спасибо.
Записывается повторно нормально?
почему не поручается стереть записанное сконтроллера?
Кстати, могу предложить новую графическую оболочку к avrdude.exe — [URL=»http://a-p-matveev.narod.ru»]DudeAVR[/URL] . Удобная, сам проверял с несколькими программаторами и с разными AVR-ами. Небольшая, все GUI-шные потребности вроде учтены 🙂
Получается да.
получается 2 года не обновлялся?
Это и есть последняя.
а какая чейчас последняя версия этого программатора?
Эта программа с STK500 не работает.
А вот Синапрог с дудкой — запросто! http://www.getchip.net/posts/057-programmiruem-avr-mikrokontrollery-usbtiny-avrdude-sinaprog/
У меня STK500, через USB порт, он не находит в этой программе меня((
нажимаю COM3, что то тужится тужится и бац «мк не откликнулся»
Новую версию пробовал? В ней значительно улучшен процесс программирования.
Когда собрал программатор для ком-порта не мог никак запрограммировать контроллер. Удалось только при установки максимальной задержки и опции «Тормоз». Всё-таки сильно там завязано на частоту проца. С LPT портом значительно проще в ней.
Почти всегда пользуюсь программой UniProf, кстати в ней фузы тоже ставятся инверсно по сравнению с даташитом.
С этим я полностью согласен. По возможностям и количеству поддерживаемых устройств с Дудкой ни что не сравниться! Но есть одно НО — программа довольно наворочана (в силу своей функциональности) и ГУИ не всегда спасают от этого.
Противоположностью функциональности Avrdude, есть простота UniProf.
Да, UniProf, примитивна, но это и является ее достоинством. Даже тот. кто в своей жизни ни разу не прошивал микроконтроллер, запустит UniProf и ему будет все понятно.
Avrdude значительно лучше.
«Программа не имеет своего «GUI» (работает с командной строки)»
— Да,своего не имеет,но есть для неё GUI ,например avr8-burn-o-mat
Работает отлично,имеет 2 способа записи фьюзов,для начинающих,галочками и для спецов.Доступно и для Windows и для Linux