Простой, но универсальный программатор для микроконтроллеров семейства AVR.
UniProf использует технологию внутрисхемного программирования, то есть позволяет прошивать микроконтроллеры уже установленные в конечное устройство. Программное обеспечение имеет собственный «GUI», визуально отображает все этапы работы, может взаимодействовать с COM- и LPT-программаторами, проводить отладку в реальном времени. Рассматриваемый софт поддерживает широкий список микроконтроллеров AVR, среди которых популярные 2313, 8515, 8535, mega128, mega162, mega324, mega64, mega8, mega8515, mega8535, pwm23, tiny15, tiny13, tiny2313, а также многие другие.
Интерфейс UniProf прост и доступен, однако не теряет своей актуальности даже на фоне более мощных программаторов. Вместе с рассматриваемым ПО идет небольшая справка, доступным языком описывающая особенности работы. Меню у данного программного обеспечения как такового нет, главное окно вмещает весь функционал софта. Основным элементом рабочего экрана является таблица, в ячейках которой отображаются записываемые или прочитанные значения памяти контроллера.
UniProf позволяет читать, писать или сравнивать FLASH- и EEPROM-память программ (причем для FLASH это возможно даже в заданных границах), а также читать и писать fuse- и lock-биты. ПО распознает файлы прошивок типов BIN, HEX, Generic и сохраняет значения из рабочих окошек в файлы указанных форматов. Предусмотрена отправка любой команды протокола обмена «вручную», можно корректировать содержимое EEPROM-памяти, перемещать блоки FLASH, читать калибровочные байты OSCCAL, помещая их при необходимости в буфер FLASH или EEPROM. Программа может проверить контроллер на чистоту (во всех ячейках памяти должно быть установлено 0xFF), либо очистить микросхему памяти. Есть и более тонкие функции, например, установка задержки программирования, изменение размеров цифр в окошках EEPROM и FLASH, отмена текущего действия. В случае если микроконтроллер не определяется автоматически, его можно выбрать их предложенного списка самостоятельно. Для тех, кто не уверен в правильности подключения прошиваемого устройства, предусмотрена панель со всеми доступными вариантами портов. Перебирая их по очереди, можно найти подсоединенный микроконтроллер.
Если при чтении или записи возникают ошибки, то программа сразу объявит об этом. В этом случае можно воспользоваться замедленным режимом под названием «тормоз», уменьшающим риск неправильной записи, а также обязательном при работе с fuse-битами. Кроме этого режим «тормоз» необходим при низких тактовых частотах компьютера (программа нормально работает на частотах не менее 1 МГц).
В программе UniProf существуют два режима отладочного обмена: «попроще» и «посложнее». Они включают в себя возможность чтения таблицы имен Algorithm Builder и MAP-файла компилятора IAR. Здесь же присутствует опция «синхро», добавляющая «лишний» строб и восстанавливающая обмен при помехах.
Автором рассматриваемого программатора является житель России Михаил Николаев (http://avr.nikolaew.org/). С 1992 года он занимается созданием программного обеспечения для микроконтроллеров, принимает активное участие в удаленной разработке архитектуры и макетов различных устройств, пишет несложный стыковочный софт. Автор постоянно работает над улучшением UniProf. Программа избавилась от множества ранних ошибок, повысилась стабильность в процессе прошивки.
Программа UniProf совершенно бесплатна. Найти данное ПО на сайте автора в настоящее время невозможно. Пакет небольшой по размеру (около 1 МВ) и не требует установки. Для подключения к отлаживаемому устройству необходим один из двух шлейфов: для COM-порта или для LPT-порта. Из-за возможности сжечь порт LPT при подключении к функционирующему устройству с мощной силовой частью автор добавил возможность самостоятельно назначать линии порта. Таким образом, программа UniProf может быть настроена под любой шлейф для LPT-порта.
Программное обеспечение написано на русском языке.
UniProf был создан для работы в операционной системе Windows 98, однако проверена работоспособность пакета в Windows 2000, XP, Vista и 7.
Распространение программы: бесплатная
Скачать UniProf
Обсуждение программы на форуме
Программа обновлена до версии 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 — мощная вещь!
(Visited 66 082 times, 1 visits today)
Программа Uniprof нужна для того, чтобы мы могли воспользоваться программатором Громова.
В предыдущей статье мы с вами рассмотрели, что такое программатор и как собрать программатор Громова, подключаемый к СОМ порту, а также как подключить программатор к прошиваемому микроконтроллеру. Так как программатор подключается к компьютеру, то мы должны после подключения программатора к ПК запустить на компьютере специальный софт, называемый программой – оболочкой, для того чтобы мы могли прошить микроконтроллер. С программатором Громова работают две широко распространенные оболочки: Uniprof и Ponyprog, кто — то выбирает первую, кто-то вторую, я же предпочитаю работать с Uniprof. В этой статье мы как раз и рассмотрим, как работать в программе Uniprof. Оболочке Ponyprog, будет посвящен один из наших дальнейших обзоров.
Существуют несколько версий этой программы, но они мало чем отличаются. Некоторые чуть менее стабильны и имеют меньший список поддерживаемых типов микроконтроллеров.
После того, как мы распакуем архив с программой и откроем папку, мы увидим такой список файлов:
Рассмотрим, какие из них будут нам интересны. Это в первую очередь файл, в виде микросхемы с малиновой стрелкой. Именно он запускает программу оболочку.
Перед тем как начать разбирать интерфейс программы, хочу сказать, что создатели программы позаботились о том, чтобы облегчить нам работу с оболочкой настолько, насколько это вообще возможно. Они выпустили файл справки. Этот файл находится в общей папке и выглядит в виде страницы с желтым знаком вопроса. Те, кто много работают за компьютером, знают, что так выглядят Help файлы Windows. Что же мы увидим когда откроем его ? А увидим мы следующее:
Итак, перейдем к разбору интерфейса нашей оболочки. Такое окно мы видим после запуска программы:
На экране появилось сообщение: “МК не откликнулся. Проверьте порт и подключение.“ Так и должно быть. В данный момент программатор и МК у нас не подключены. Сразу хочу сказать, что программа работает не только с программаторами, работающими через СОМ порт, но и через LPT. Так вот, собирать программатор 6 проводков для прошивания через LPT порт я вам категорически не рекомендую. Если уж очень приспичит собрать программатор 6 проводков для разовой прошивки, используйте панельку под микросхему и подпаяйтесь непосредственно к её выводам. Дело в том, что СОМ порт намного более устойчив к замыканиям и перегрузкам, нежели LPT порт. С LPT-портом достаточно одного замыкания и вы можете безвозвратно его выжечь.
Вернемся к нашей оболочке, в правом нижнем углу мы видим, что программа работает аж с пятью СОМ портами и одним LPT портом. Путем выставления нужной галочки, мы должны выбрать наш СОМ порт
Что делать если вы не знаете к какому по счету СОМ порту у вас подключен программатор ? В таком случае открываете программу, изменяете СОМ порт на следующий по списку и выходите из нее. Обычно используются СОМ порты под номерами 1 и 2.
Разбираем дальше. В верхней части окна программы, мы видим надпись синим цветом “unknown”
После того как МК определится в программе, здесь будет показана модель нашего микроконтроллера и объем его памяти, например, Tiny 2313, 2k bytes.
Если нам помимо FLASH памяти требуется прошить еще и EEPROM, ставим на ней галочку так, как это сделано на рисунке ниже:
После нажатия на иконку READ, мы загрузим прошивку из памяти МК в буфер обмена программы. После этого у нас появятся какие — то значения в ячейках таблиц:
Это означает, что в буфер программы загружена прошивка. То же самое мы видим при записи прошивки в буфер обмена программы с жесткого диска. Другими словами буфер обмена — это то место, куда мы помещаем прошивку перед прошиванием или сохранением.
Бывают случаи, когда подключенный к программатору МК по каким-то причинам не определялся программой самостоятельно. В таком случае кликните в появившемся меню по нужной вам модели МК и проблема решена. Также в рабочем окне программы мы можем путем выставления галочки выбрать формат файла прошивки: привычный нам HEX, или двоичный BIN
Сразу скажу, если вы скачали прошивку в формате BIN, а вам требуется HEX (или наоборот), вы без труда сможете перегнать прошивку из одного формата в другой, с помощью специальных программ конвертеров, которые можно скачать на просторах интернета.
Остановлюсь на одном важном нюансе, без которого нормально работать с программой вообще невозможно. Частота процессоров современных ПК очень высока. Для работы программатора требуется значительно меньшая скорость. Что делать в таком случае, если у вас мощный современный компьютер, а работать с программатором как-то нужно? Все просто, создатели программы позаботились об этом и поставили в программе специальную опцию замедления для обеспечения стабильной работы, путем установки галочки “тОРОмоз”
Почему именно “тОРОмоз”, а не тормоз ?
А потому, что у создателей оболочки с чувством юмора все в порядке. В чем тут дело вы поймете, когда попробуете с помощью этого программатора, прошить например МК Mega 32. У этого МК очень большой объем памяти и прошивание занимает порядка двадцати минут и до получаса, тогда как USB программатор USBASP шьет такой же объем памяти за 30 – 60 секунд. Но тут есть один нюанс. Если вы что-то напутали с временем запуска тактового генератора МК или совершили подобную не критическую ошибку, то USB программатор может отказываться видеть МК. А программатор Громова после выставления типа МК вручную все сделает как надо. Он меня выручал в аналогичных ситуациях уже как минимум два раза. Не пытайтесь прошивать МК без использования галочки “торомоз”. Прошивка обязательно запишется с ошибками. Особенно это опасно при выставлении фьюзов.
И вот мы наконец добрались до главного пункта этой статьи. Что же нужно нажимать и в какой последовательности, для того, чтобы просто прошить МК?
Итак, сперва мы нажимаем иконку, с рисунком папки «HEX», и загружаем прошивку в буфер программы. Затем мы нажимаем «PROG» для того, чтобы прошить наш микроконтроллер. После этого мы нажимаем иконку «TEST», или верификация, сверяем прошивку в памяти микроконтроллера, с прошивкой в буфере обмена программы. Это необходимо сделать для того, чтобы убедиться, что программа у нас записалась без ошибок. Если нам требуется скачать прошивку, ранее записанную в МК, мы нажимаем иконку «READ», и считываем прошивку в буфер обмена.
Если же нам требуется сохранить эту прошивку на компьютере, мы должны нажать иконку «HEX» с изображением дискеты. Если у нас в памяти МК была ранее записана прошивка, мы стираем старую прошивку перед записью новой, путем нажатия на иконку «ERASE».
И наконец, последняя, самая сложная часть, иконка «FUSE», или выставление фьюзов. После того как мы прошили МК, мы должны выставить фьюзы, фьюз – биты, биты конфигурации. Все эти названия синонимы и означают одно и тоже. Разберем, что же мы видим после нажатия на кнопку «FUSE»:
Мы видим четыре окна без выставленных галочек. Не спешите здесь ничего нажимать, или рискуете залочить (заблокировать) МК! Будьте предельно внимательны или вам придется идти в магазин за новым микроконтроллером. Если, конечно, у вас нет для лечения МК сложного в сборке параллельного программатора, ну или не менее сложного реаниматора МК. Для начала нам требуется нажать во всех четырех окнах на кнопки «READ», то есть считать все четыре байта конфигурации. А их именно четыре, в каждом по восемь битов. Это слева направо LOCK (защитный байт), или байт с помощью выставления LOCK битов которого, мы защищаем прошивку от копирования. Дальше идут LOW (младший байт), HIGH (старший байт), EXT (дополнительный байт).
Еще один важный нюанс! Так уж повелось, что в МК AVR применяют и прямое, и инверсное выставление битов, в разных программах оболочках. Например, в Ponyprog мы должны при выставлении фьюзов выставить галочки там, где в Uniprof их нет, и наоборот. Как же не запутаться,? Ведь часто в статье, по которой мы собираем устройство, не указано, какое используется, прямое или инверсное представление битов. Ориентироваться нужно всегда по биту Spien. Он всегда запрограммирован, если мы имеем доступ к МК с помощью данных программаторов. Следовательно, если на нем стоит галочка, то и на других фьюзах, где должны стоять галочки, мы их ставим. Если же не стоит, то наоборот, убираем со всех фьюзов, где она не должна стоять. У нас будет посвящена разбору фьюз битов, отдельная подробная статья.
Приведу список фьюзов для программы Uniprof, которые нельзя изменять, иначе МК залочится и восстановить его будет проблематично
Никогда не изменяйте их, если вы прошиваете МК программатором Громова или программатором USBASP, или другим программатором, подключаемым по SPI интерфейсу.
Кто не понял, что да как, вот небольшой видос, поясняющий, как прошить МК:
Теперь такой вопросик: какая единица измерения силы тока ? Можешь зайти и увидеть ответ.
Форум РадиоКот • Просмотр темы — Программатор Громова+Win 7 64?(от новичка:))
Сообщения без ответов | Активные темы
ПРЯМО СЕЙЧАС: |
Автор | Сообщение | |||
---|---|---|---|---|
|
Заголовок сообщения: Программатор Громова+Win 7 64?(от новичка:)) Добавлено: Вс окт 03, 2010 13:12:44 |
|||
Родился
Зарегистрирован: Вс окт 03, 2010 12:50:20 Рейтинг сообщения: 0
|
Здравствуйте!Есть вопрос от новичка. Собрал программатор Громова, хочу прошить tiny 2313. На компе стоит 7-ка 64-битная, Uniprof пишет «МК не откликнулся. проверьте подключение». Даже не знаю в чём дело, то ли в софте, то ли не так собрал. Все выводы подсоединил прямо к МК, питание +5В взял с USB. Фото прилагаю, пожалуйста посмотрите, может сможете мне помочь:)
|
|||
Вернуться наверх |
Профиль
|
|||
Реклама | |
|
|
Profi
|
Заголовок сообщения: Re: Программатор Громова+Win 7 64?(от новичка:)) Добавлено: Вс окт 03, 2010 17:32:06 |
||
Зарегистрирован: Сб янв 20, 2007 21:37:54 Рейтинг сообщения: 0
|
А как фьюзы запрограммировал? |
||
Вернуться наверх | |||
Реклама | |
|
|
Eugene1985
|
Заголовок сообщения: Re: Программатор Громова+Win 7 64?(от новичка:)) Добавлено: Вс окт 03, 2010 17:46:23 |
Зарегистрирован: Вс окт 03, 2010 12:50:20 Рейтинг сообщения: 0
|
Дык а как их выставить, если МК не определяется? (она новая, из магазина…это так для справки:))Да забыл сказать, использовал резисторы по 1 кОм и диоды 1N4148…попробую завтра на работе проверить на XP 32 разрядной, посмотрим что выйдет:)Хехе:)Уже 5-й раз вроде редактирую сообщение:)Я всё такие победил. ПОставил виртуальную машину и о чудо, контроллер определился:) |
Вернуться наверх | |
Eugene1985
|
Заголовок сообщения: Re: Программатор Громова+Win 7 64?(от новичка:)) Добавлено: Пн окт 04, 2010 10:30:20 |
Зарегистрирован: Вс окт 03, 2010 12:50:20 Рейтинг сообщения: 0
|
Ну теперь другая проблема:)Определиться то он определился…но возникла другая проблема, при чтении фьюзов в Uniprof каждый раз при нажатии кнопки read выдаёт разные значения, и при записи прошивки выдаёт что-то типа «ош записи … повтор?».Я думаю проблема в том, что питание от USB?Или я не прав?Ну тиньку я вроде замучал, что теперь не определяется:)Придётся сегодня покупать новую… |
Вернуться наверх | |
Реклама | |
|
ER10450 – литий-тионилхлоридная батарейка FANSO EVE Energy формата ААА
Компания FANSO EVE Energy расширила номенклатуру продукции, разработав новый химический источник тока (ХИТ) – батарейку литий-тионилхлоридной электрохимической системы (Li-SOCl2; номинальное напряжение 3,6 В) типоразмера ААА – ER10450. Батарейка имеет бобинную конструкцию (тип Energy) и предназначена для долговременной работы при малых токах. Подробнее>> |
Foks
|
Заголовок сообщения: Re: Программатор Громова+Win 7 64?(от новичка:)) Добавлено: Пн окт 04, 2010 11:43:20 |
Поставщик валерьянки для Кота
Карма: 5 Рейтинг сообщения: 0
|
Повесь блокировочный конденсатор на питание МК (если это еще не сделано), уменьши скорость программирования в своем софте. |
Вернуться наверх | |
Реклама | |
|
|
Реклама | |
|
Выгодные LED-драйверы MOSO для индустриальных приложений Компэл представляет выгодные светодиодные драйверы MOSO для промышленных решений с высоким классом защиты от внешних воздействующих факторов, хорошей устойчивостью к импульсным помехам и высокой надежностью. В ряде серий реализована возможность дистанционного контроля, кроме того, отдельные версии драйверов могут программироваться на работу в автономном режиме по заранее заданному сценарию. Рассмотрим подробнее их характеристики. Подробнее>> |
Eugene1985
|
Заголовок сообщения: Re: Программатор Громова+Win 7 64?(от новичка:)) Добавлено: Пн окт 04, 2010 11:51:49 |
Зарегистрирован: Вс окт 03, 2010 12:50:20 Рейтинг сообщения: 0
|
Блокировочный…это обычный конденсатор, который ставится между +5В от USB и ногой VCC?А какой конденсатор брать?Спасибо, что не посылаете меня…эээ…в поиск:) |
Вернуться наверх | |
romazan
|
Заголовок сообщения: Re: Программатор Громова+Win 7 64?(от новичка:)) Добавлено: Ср окт 06, 2010 19:23:23 |
||
Зарегистрирован: Чт май 21, 2009 13:54:07 Рейтинг сообщения: 0
|
Между VCC и GND. 0.1МкрФ керамический |
||
Вернуться наверх | |||
dinets
|
Заголовок сообщения: Re: Программатор Громова+Win 7 64?(от новичка:)) Добавлено: Сб фев 26, 2011 23:02:21 |
Зарегистрирован: Чт авг 12, 2010 10:16:32 Рейтинг сообщения: 0
|
была таже фигня…. с помехами решил таким образом |
Вернуться наверх | |
Rinon Ninqueon
|
Заголовок сообщения: Re: Программатор Громова+Win 7 64?(от новичка:)) Добавлено: Пн фев 28, 2011 11:59:00 |
||
Карма: 15 Рейтинг сообщения: 0
|
забудь про Win7 + Uniprof |
||
Вернуться наверх | |||
Кто сейчас на форуме |
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13 |
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения |
Уже в продаже: первая в своем роде книга «BEAM-робототехника. От азов до создания практических устрйств». Книга для кружков робототехники и самостоятельного обучения на дому. Книга доступна по цене 699 руб Подробнее о книге
» 2012 » Апрель » 21 » ПРОСТОЙ ПРОГРАМАТОР МИКРОКОНТРОЛЛЕРОВ
13:36 ПРОСТОЙ ПРОГРАМАТОР МИКРОКОНТРОЛЛЕРОВ |
||
Перед начинающими осваивать микроконтроллеры нередко встаёт вопрос: чем запрограммировать микроконтроллер?. Программатор заводского изготовления может быть не у всех, а обилие схем в Проблемы могут Программатор рассчитан на микроконтроллеры фирмы Atmel. С его помощью можно программировать наиболее распространённые и недорогие Atmega8, 8A, 88, Attiny13, 25, 45, 85. Если есть необходимость программировать другие микроконтроллеры этой фирмы, то потребуется изготовить панельку-переходник и подключить соответствующие выходы программирования. |
$CUT$
1.ХАРАКТЕРИСТИКИ И ФУНКЦИОНАЛЬНОСТЬ.
Программатор
питается от импортной или отечественной батарейки типа 6F22 или
«Крона», «Корунд» напряжением 9 вольт. Подключение
батарейки осуществляют через клип-разъём. Стабилизатор на печатной плате
понижает это напряжение до 5 вольт, которое и поступает на программируемый
микроконтроллер. Выключатель питания кнопка с фиксацией типа MPS700. Подключение к
компьютеру осуществляется через COM-порт. Индикаторов включения питания является светодиод зелёного цвета свечения.
КОМПОНЕНТЫ КОНСТРУКЦИИ
1.Светодиод зелёного цвета свечения подключение напряжения источника питания. Примечание.1. Если программатор питается от батарейки 9 вольт, то клеммник винтовой устанавливать на плату программатора не нужно. Подключение программатора к батарейке осуществляется через клипсу-разъём.
Фото.1.Нажимайте фото для просмотра в полном размере. |
2.ПРИНЦИП РАБОТЫ.
На рис.1. Показана
электрическая схема программатора. Микроконтроллер программируется по
интерфейсу SPI. Согласование уровней выходных сигналов COM-порта с
входным напряжением программируемого микроконтроллера осуществляется с
помощью делителей на резисторах. Дело в том, что размах сигналов с
COM-порта изменяется от -12 вольт до +12 вольт. А микроконтроллеры
работают с сигналами от 0 до 5 вольт. Для того, чтобы согласовать эту
разницу и не испортить микроконтроллер по каждому входу установлен
делитель на двух резисторах. По входу инициации «сброс» установлены
резисторы R1,R5. По входу MOSI (сигнал от программатора к
микроконтроллеру) установлены R2,R6. По входу SCK (тактовый сигнал)
R3,R7. И так, каждая из пар резисторов делит входное напряжение пополам.
Но так как эти делители подключены через диоды, то сопротивление диодов
(а это около 800 Ом) нормирует потенциал в средней точке делителя
приближая его к значению 5 вольт. Ещё назначение диодов V1-VD3 выделение
из двуполярного сигнала однополярной положительной составляющей
(плюсика).
При описании программаторов часто вопрос питания схемы решается
подключением к блоку питания компьютера. На мой взгляд это не всегда
удобно, поэтому в данной схеме было решено ввести понижающий
стабилизатор напряжения 5 вольт. Конструктивно стабилизатор занимает
мало места, но зато добавляет автономии программатору. Список
радиокомпонентов и допустимой замены приведён на рис.2.
Авторство на статью принадлежит ©
[url=http://www.servodroid.ru]SERVODROI.RU -Робототехника для
начинающих своими руками[/url]. Если Вы читаете это сообщение
пожалуйста, [url=http://www.servodroid.ru]сообщите нам[/url].
Электрическая схема показана на рис.1. Микроконтроллер программируется по
интерфейсу SPI. Согласование уровней выходных сигналов COM-порта с входным
напряжением программируемого микроконтроллера осуществляется с помощью
делителей на резисторах. Дело в том, что размах сигналов с COM-порта изменяется
от -12 вольт до +12 вольт. А микроконтроллеры работают с сигналами от 0 до 5
вольт. Для того, чтобы согласовать эту разницу и не испортить микроконтроллер
по каждому входу установлен делитель на двух резисторах. По входу инициации
«сброс» установлены резисторы R1,R5. По входу MOSI (сигнал от
программатора к микроконтроллеру) установлены R2,R6. По входу SCK (тактовый
сигнал) R3,R7. И так, каждая из пар резисторов делит входное напряжение пополам.
Но так как эти делители подключены через диоды, то сопротивление диодов (а это
около 800 Ом) нормирует потенциал в средней точке делителя приближая его к
значению 5 вольт. Ещё назначение диодов V1-VD3 выделение из двуполярного
сигнала однополярной положительной составляющей. В некоторых
программаторах питание осуществляется подключением к блоку питания
компьютера. На мой взгляд это не всегда удобно, поэтому в данной схеме было
решено ввести понижающий стабилизатор напряжения 5 вольт. Конструктивно
стабилизатор занимает мало места, но зато добавляет автономии программатору.
Список радиокомпонентов и допустимой замены приведён на рис.2.
Рис.1.Принципиальная электрическая схема.
нажимайте фото для увеличения
3.ДЕТАЛИ И МАТЕРИАЛЫ.
Печатная плата изготовлена из
односторонне фольгированного листа стеклотекстолита толщиной 1-1,5мм. Размеры
печатной платы 45х40мм. Ссылка на архив с чертежами и разводкой под ЛУТ
размещена в конце статьи. В качестве источника питания используйте только
«свежую» батарейку! Список радиокомпонентов приведён в таблице.1.
Таблица.1.Список
радиокомпонентов.
4.МОНТАЖ РАДИОКОМПОНЕНТОВ.
Для
правильной сборки придерживайтесь инструкций по сборке. Редактировать,
масштабировать чертежи в архиве нельзя, так как все чертежи архива в точных
размерах.
1.Монтаж радиокомпонентов.
При подключении разъёма
COM-порта марки DB9F соедините шлейфовым кабелем цифры на печатной плате с
аналогичными цифрами указанными на разъёме. Будьте внимательны так как ножка 1
на разъёме обозначена не очень хорошо и плохо читается.
После изготовления
печатной платы проверьте токоведущие дорожки на возможные замыкания. В качестве
источника питания используйте только «свежую» батарейку. Для
программирования с внешним кварцем на печатной плате предусмотрена розетка ZQ1.
Сборочный (монтажный) чертёж показан на рис.2. Розетка изготавливается из кусочка панельки под микросхему, потребуется два
сдвоенных гнездовых посадочных места. Резистор R8 и диоды VD1-VD3 устанавливают
и запаивают в вертикальной позиции. На позиции для микроконтроллеров DD1,DD2
припаивают панельки соответственно 28 pin (28 ножек) и 8pin.
Рис.2.Монтажный чертёж.
2.Порядок
включения программатора.
Прежде чем включать программатор вам необходимо
скачать и установить управляющую программу Uniprof на компьютер. Скачать эту
программу можно по ссылке внизу статьи. Пользоваться программатором несложно.
Включите компьютер. Подсоедините разъём COM от программатора. Вставляйте в
панельку микроконтроллер для программирования. Включите питание программатора
нажатием на кнопку. Запустите управляющую программу Uniprof. В зависимости от
того, к какому порту будет подключен программатор в управляющей программе
выбираем порт COM1 или COM2 или COM3. С программой идёт help-инструкция,
достаточно подробная чтобы самостоятельно разобраться в этой программе.
2.Порядок включения
программатора.
Прежде чем включать программатор вам необходимо скачать и установить
управляющую программу Uniprof на компьютер. Скачать эту программу можно
по ссылке внизу статьи. Пользоваться программатором несложно. Включите
компьютер. Подсоедините разъём COM от программатора. Вставляйте в
панельку микроконтроллер для программирования. Включите питание
программатора нажатием на кнопку. Запустите управляющую программу
Uniprof. В зависимости от того, к какому порту будет подключен
программатор в управляющей программе выбираем порт COM1 или COM2 или
COM3. С программой идёт help-инструкция, достаточно подробная чтобы
самостоятельно разобраться в данной этой программе.Авторство на статью
принадлежит ©
[url=http://www.servodroid.ru]SERVODROI.RU -Робототехника для
начинающих своими руками[/url]. Если Вы читаете это сообщение
пожалуйста, [url=http://www.servodroid.ru]сообщите нам[/url].
2.Порядок включения
программатора.
Прежде чем включать программатор вам необходимо скачать и установить
управляющую программу Uniprof на компьютер. Скачать эту программу можно
по ссылке внизу статьи. Пользоваться программатором несложно. Включите
компьютер. Подсоедините разъём COM от программатора. Вставляйте в
панельку микроконтроллер для программирования. Включите питание
программатора нажатием на кнопку. Запустите управляющую программу
Uniprof. В зависимости от того, к какому порту будет подключен
программатор в управляющей программе выбираем порт COM1 или COM2 или
COM3. С программой идёт help-инструкция, достаточно подробная чтобы
самостоятельно разобраться в данной этой программе.Авторство на статью
принадлежит ©
[url=http://www.servodroid.ru]SERVODROI.RU -Робототехника для
начинающих своими руками[/url]. Если Вы читаете это сообщение
пожалуйста, [url=http://www.servodroid.ru]сообщите нам[/url].
3.Если
программатор не работает.
Если программатор не работает или не происходит
программирования микроконтроллера, то возможно вы допустили ошибки при монтаже
или выполняли процедуру программирования неправильно.
Для новичков
категорически не рекомендуется устанавливать и программировать фьюзы-биты,
собирайте конструкции где установка этих бит не требуется! В случае ошибок в
монтаже программатора используйте инструкцию поиска приведённую далее.
- Проверьте цифровым мультиметром
источник питания (батарейку), напряжение должно быть не ниже 7 вольт! Если
батарейка «свежая» то естественно напряжение составит не менее 9
вольт. - Проверьте цифровым мультиметром напряжение на выводе 1 микросхемы-стабилизатора DA1, оно должно быть 5 вольт. При этом светодиод HL1 должен светиться.
- Проверьте печатную плату на замыкания и разрывы токоведущих дорожек.
Проверьте установку диодов VD1-VD3. - Возможно вы ошиблись в подключении провода
для COM-разъёма. Проверьте подключение разъёма и исправьте. - Возможно
микроконтроллер неисправен. Установите в разъём аналогичный и вновь проведите
программирование. - Возможно до этого программирования микроконтроллер был запрограммирован с кварцевым
резонатором. Подключите кварцевый резонатор через разъём ZQ1 и проведите
повторное программирование. Если первоначально микроконтроллер был
запрограммирован с внешним кварцевым резонатором, то следующее программирование
нужно проводить с внешним кварцевым резонатором! Иначе микроконтроллер не будет
найден программой.
Сборка окончена!
В архиве: чертежи в точных размерах термоклише. Преобразовывать и редактировать чертежи нельзя! После скачивания
распечатайте чертежи на лазерном принтере. Термоклише распечатайте на глянцевой
бумаге. Используйте термоклише для перевода рисунка на стеклотекстолит по
методу ЛУТ.
Если у ВАС возникли вопросы пишите на ФОРУМЕ или в Online чат по робототехнике мы их обсудим!
автор Алексей
Высоковольтный
www.servodroid.ru
© Внимание! Полное либо частичное копирование материала без разрешения
администрации запрещено!
Привет! Желаешь собрать не сложного в сборке робота? Ты пришел по адресу! =) Именно у нас на сайте ты сможешь найти подробные статьи по сборке шаг-за-шагом своего первого робота, а так же многих других роботов, и даже для соревнований.
Мы очень рады,
что наши статьи помогут тебе — начинающему робототехнику, освоить эту интереснейшую сферу и прокачать свой скилл в этом направлении. Также хотим отметить, что по данным статьям мы — разработчики сайта SERVODROID проводим занятия в бесплатных кружках робототехники, и нам очень нравится учить и рассказывать что такое BEAM-робототехника всем желающих.
Помоги нашему проекту! Зарегистрируйся на нашем сайте и приходи в наш Online-чат или форум и делись своими поделками и своим прогрессом — ведь именно твоя активность привлекает к робототехнике все больше и больше внимания начинающих — они смотрят на твой успех и хотят стать такими же крутыми, а нам очень приятно видеть что у вас все получается. А если что-то не получается — мы поможем
Начни общаться на нашем Форуме или Онлайн-чате
[ Стать участником сайта / Авторизоваться ]
- 1
- 2
- 3
- 4
- 5
Категория: Программаторы |
Просмотров: 9566 |
| Рейтинг: 5.0/1
Всего комментариев: 10 | |
Порядок вывода комментариев: |
|
Всем привет. Сегодня у меня для вас новая статья, посвященная одному из самых простых и популярных программаторов AVRок — программаторе Громова — так его называют в сети.
Данную статью о программаторе, я планировал еще давно, но все было как-то не до нее . Но вот сейчас и приступим.
Запрограммировать контроллер AVR на сегодня возможно двумя способами:
1) С помощью высоковольтного параллельного программатора. Это скорее промышленный вариант, так как в этом случае корпус контроллера усаживается в специальную панельку и подав высокое напряжение (большее напряжения питания) зашивается заранее подготовленная программа. После чего контроллер запаивается в плату по месту назначения. Здесь есть ощутимый плюс — полный контроль над всем нутром контроллера. А процесс зашивки моментальный.
Но если выяснится, что зашитая программа имеет непростительный баг? И что же делать — контроллер ведь уже запаян? Снова выпаивать?
Для радиолюбительской практики такой вариант не подходит, хотя иметь в загашнике высоковольтный программатор будет полезно. В одной из следующих статей кстати будет очень полезная информация так что [urlspan]не пропустите[/urlspan].
2) Мы пойдем по другому пути — и к нашим услугам внутрисхемный программатор. При этом способе контроллер устанавливается сразу в схему без каких-либо промежуточных действий. В этом случае программа зашивается внутрисхемно. Что же это значит?
Все просто, при разработке какого-либо девайса мы заранее предусматриваем программирующий разъем. Программирующий разъем устанавливаем прямо на плату нашего устройства. В своей отладочной плате я именно так и поступил, там имеется разъем, причем разъем может быть любым, но под это дело есть некий стандарт. Обычно используется десятиштырьковый разъем PLS, похожий на те, что сидят на материнских платах компьютеров.
Так вот на этот разъем с контроллера выводится 5 сигналов: mosi, miso, sck, reset, GND. Через эти контакты и будет зашиваться программа. Причем делать это можно многократно — ведь выпаивать нам ничего не придется. Единственное что должно быть сделано так это то, что контроллер должен быть запитан и запущен. Впрочем питание можно подать и с программирующего разъема. Тогда у нас будет уже не пять сигналов а шесть, но это совсем не сложно. Только здесь есть небольшая особенность — нужно быть внимательным при простановке фьюзов (FUSE) перед зашивкой программы. Если при высоковольтном программировании неправильно зашитый фьюз бит легко правится, то при внутрисхемном программировании будет сложно что-либо исправить.
Небольшое отступление.
Фьюзы или фьюз биты — это биты конфигурации контроллера. Их нельзя выставить из тела программы. Фьюз биты обычно проставляются перед зашивкой программы — с помощью программатора и программы-прошивальщика.
С помощью фьюз битов можно изменить способ тактирования контроллера. Так вот, если в своей схеме контроллер тактируется от своего внутреннего генератора, а вы в фьюзах выставили способ тактирования от кварца, то схема работать не будет. Контроллер не запустится, а значит что -либо изменить не удастся. Но это дело поправимое. Нужно лишь подпаять нужный кварц и пару конденсаторов тогда все заработает и программу можно дальше править и перешивать.
Но есть фьюз бит, выставив который мы теряем возможность внутрисхемного программирования — нужен параллельный программатор. Так что будьте внимательны и прежде чем зашить фьюз биты хорошенько читайте даташит.
Разновидностей внутрисхемных программаторов на сегодня очень и очень много и выбрать приемлемый вариант бывает не просто. Все программаторы делятся по способу подключения к компьютеру, мне известны три : через LPT, COM, USB.
Программатор работающий через порт lpt я заранее не советую, так как его очень просто пожечь, и сколько схемных решений мне не советовали, я этот вариант отбросил сразу же. Кстати да, и самого порта lpt в моей рабочей машинке не было. Вот так-то.
В наше время когда порты com и lpt уходят в небытие, единственно рабочий вариант остается USB. Но тут есть ряд проблем. Как правило схемы программаторов, работающих от USB имеют в своем составе микроконтроллер, который естественно нужно прошить, а для прошивки нужен программатор. Вот такой вот замкнутый круг. Хотя в последнее время на просторах интернета появилась схема usb программатора, которая не требует прошивки. Схема простая, но я с ней плотно не разбирался поэтому говорить о ней я не буду — если очень интересно найдете сами.
Мы пойдем по более сложному пути — займемся изготовление программатора Громова. Этот программатор работает через com порт, который в отличие от lpt, редко но все еще встречается в современных компьютерах. И кстати если на задней стенке своего компьютера вы его не обнаружили, это еще не значит что его нет, так на многих материнских платах он может присутствовать в виде pls штырьков, нужно почитать документацию к материнской плате.
Схема.
Схема самого программатора на удивление простая и мне очень жаль, что я не встречал ее раньше.
Ее можно собрать даже навесным монтажом на коленке, но на плате все-таки будет смотреться солиднее. Для этого программатора нам потребуется семь резисторов по килоому каждый и три маломощных диода. Как известно напряжение с com-порта в пределах 12 В, а контроллер работает с 5-ти вольтовым напряжением. Так вот схема из диодов и резисторов послужит нам для согласования уровней. Резисторный делитель из 12 вольт дает нам 6 вольт, а остаток из одного вольта высаживается на диоде — получаем 5 вольт и это то что нам и нужно.
Схему я нарисовал в программе Eagle CAD, затем путем нескольких незамысловатых движений мышкой родилась вот такая платка.
Файлы проекта можете скачать по [urlspan]этой ссылке[/urlspan].
Рисунок ее был распечатан на лазерном принтере и подвержен зверской технологии ЛУТ. После всех манипуляций мне оставалось только напаять деталей и выставить сие творение на ваш суд. 🙂
Входы и выходы.
На плате слева расположены монтажные отверстия для подключения разъема DB-9F (мама) известного как разъема COM-порта. с нашей платой он будет соединен посредством проводов. На схеме для этого обозначены отверстия: DB9/2, DB9/3, DB9/4, DB9/5, DB9/7, DB9/8. На схеме контакты подписаны — не промахнетесь 🙂 Хочу добавить, что провод желательно брать не длиннее 25 см. При более длинном проводе возможны помехи, а в результате ошибки при зашивке программы.
В моем варианте питание будет подаваться от компьютера, поэтому для удобства я вывел контакты
питания PinGND и Pin+5. Затем они будут соединены с питающим разъемом, в принципе под это дело можно применить и отдельный блок питания с напряжением +5 В — проблемы не будет.
Для себя я припас вот такой разъемчик от старого компьютера. Подпаиваем +5 В к крайнему красному проводу, а земля подпаивается к черному. остальное можно выкусить чтобы не мешалось.
С правой стороны расположены контакты для подпайки десятиконтактного программирущего IDC разъема. У меня он выглядит так. Здесь он идет в связке с разъемом DB-9M (папа).
К плате программатора вся эта конструкция подключается через разъем DB-9F.
Теперь можно откинуться на спинку стула и отдохнуть, ведь можно сказать с задачей мы справились — собрали программатор Громова. Но долго расслабляться нельзя, ведь впереди нас ждут испытания нашего творения. Поэтому чтобы не устроить сюрприз своему компьютеру советую все хорошенько прозвонить мультиметром и проверить монтаж и только после этого переходить к испытанию нашего девайса.
Итак программатор у нас собран и лежит на столе в ожидании. Для того, чтобы воплотить в жизнь все то что мы задумали нам нужен управляющий софт — Программа Uniprof.
Программа Uniprof —это тот самый софт, с помощью которого наш программатор будет общаться с компьютером. Эту программу написал автор по фамилии Николаев за что целая армия радиолюбителей говорит ему — СПАСИБО. Кстати саму программу можно скачать с [urlspan]сайта автора[/urlspan] или [urlspan]у меня[/urlspan].
Выключаем наш компьютер и подключаем программатор разъемом DB-9F к COM-порту компьютера. Разъем питания я подключил к блоку питания родного компьютера. На этом этапе желательно подключить плату нашего программируемого пациента — плату с контроллером. Я подключил опытную плату с контроллером Attiny 45. Ну что, теперь минута молчания иии . . . жмем кнопку POWER системного блока компьютера. Ждем когда загрузится наше операционная система.
Запускаем Uniprof. При запуске он у немного ругнулся, выдав окошко со знакомым ERROR, говорит что у меня что-то неладное с LPT. . . хех, глуповато конечно но простим его на сей раз, ткнув по крестику.
На следующим этапе окошко программы все-таки открылось, но появилось сообщение о том, что контроллер не откликнулся. Но мы не паникуем.
Ведь программа совсем не в курсе к какому именно порту подрублен наш контроллер. Тут на выбор кроме ранее упомянутого LPT порта, есть еще набор с COM1 по COM5.Так что простым перебором добиваемся полного опознания нашего контроллера.
Контроллер определился, теперь нам нужно выполнить чтение — нажимаем на READ.
Если контроллер чистый, то в окне программы должны получиться прочерки, но в моем случае получилось иначе — прочерки чередовались с различными шестнадцатиричными числами. Возможно проблема была в длинном проводе, соединяющего программатор с компьютером или с высокой производительностью компьютера. Но в любом случае это вылечилось установкой галочки «ТОРМОЗ» . Время выполнения чтения оказалось несколько более длительным, но зато результат стал лучше.
Вот подходит время таки записать программный HEX файл в наш контроллер, но нужно также не забыть установить правильные фьюз биты. Доступ к ним открывается нажатием кнопки с надписью FUSE.
Выставляем все правильно, предварительно проштудировав даташит на нужный контроллер. Важный совет, выполните чтение фьюзов и убедитесь что фьюз бит SPIEN не установлен, так как установка этого фьюза не позволит вам в дальнейшем применять для этого контроллера наш программатор Громова.
Далее кликаем по кнопке с открытой желтой папкой под названием HEX и выбираем наш HEX. 🙂 Текст программы должен отразиться в окошке Uniprof. Ну что же, теперь остается только нажать на кнопку с красной стрелочкой с названием Prog и дело в шляпе.
Как видите запрограммировать контроллер с помощью данной программы совсем не сложно. Чтобы более полно ознакомиться с ней рекомендую почитать справку, там вы найдет ответы на возникшие вопросы.
Вот кстати почитайте об охранной GSM сигнализации, которую я спаял и запрограммировал. Чтобы ее сделать мне как раз и пригодился программатор.
Дорогие друзья, совершенно недавно появился очень удобный способ подписки, через сервис Email рассылок. Так что вы можете оставить свой email и получать новые статьи и материалы себе на почту. Кроме того каждый подписавшийся получает подарок, который пригодится каждому радиолюбителю, так люди подписываются и получают приятные бонусы, добро пожаловать.
Ну что же, думаю статья окажется для вас полезной и поможет сделать еще один шаг на пути освоения микроконтроллеров. На этом у меня все, желаю вам успехов и главное хорошего настроения!
С уважением, Владимир Васильев.
В качестве дополнения предлагаю посмотреть видеоролик на тему программирования контроллеров AVR. Чтобы не пропустить следующие статьи советую подписаться по [urlspan]RSS[/urlspan] или по [urlspan]электронной почте.[/urlspan]