027-UniProf-программируем AVR через LPT порт.

Автор: | 03.04.2010

ТитлЭта статья – подробная инструкция как запрограммировать AVR микроконтроллер при помощи LPT программатора и программы UniРrof.

Сначала обязательно прочитайте обзор UniProf, многое станет понятней.
Скачайте программу UniРrof.
UniProf - Программатор для AVR. Смотрим avr.nikolaew.org

Кроме того, нам нужен LPT программатор, а также, отладочная плата с разъемами для подключения программатора (для примера возьмем отладочную плату с ATTiny2313). Вот пожалуй и все что нам нужно.

Окно UniРrof выглядит так:Главное окно uniprof

Теперь пошагово опишем сам процесс программирования при помощи LPT программатора:

1 Для начала нам необходимо «прописать» наш LPT программатор. Для этого нужно выбрать LPT порт в поле «Программатор подключен к», нажать кнопку «LPT pins» и мы увидим такую картинку. Это окно произвольного назначения линий порта под сигналы программатора. Установки по умолчанию предназначены для другого программатора. Чтобы заработал наш – ставим точки как на рисунке,

нажимаем «ОК» (в следующий раз устанавливать не придется – программа запомнит установки). Все — программатор «прописан».

2 Подключаем программатор к LPT порту.

3 Подключаем программатор к плате микроконтроллера, подаем питание на микроконтроллер.

4 Запускаем UniРrof (если уже не запущен), выбираем в поле «Программатор подключен к» LPT порт. Синим должно отобразиться название микроконтроллера. Для проверки надежности связи тыкаем несколько раз в красную системную частоту. Если на каком либо этапе выпадает такое окно, то связь ненадежна – ставим галочку «тормоз» — и проверяем заново.

5 Нажимаем кнопку загрузить «HEX», выбираем нужный файл-прошивку. В окошке «PROGRAM» появятся цифры – наша программа.

6 Нажимаем кнопку «Erase» — стираем микроконтроллер. Если происходят ошибки — ставим галочку «Тормоз».

7 Нажимаем кнопку «Prog» — записываем программу в микроконтроллер. Если происходят ошибки — ставим галочку «Тормоз», повторно стираем и снова программируем. Программа записана, осталось записать фьюзы.

8 Обязательно ставим галочку «Тормоз»! Нажимаем кнопку «FUSE», видим окошко, в котором 4 отделения (4 конфигурационных байта контроллера). В каждом отделении нажимаем кнопку «Read» считываем текущие значения (это уменьшит вероятность ошибки при вводе новых значений). Вводим новые значения фьюзов. Особое внимание обращаем на обведенные красным фьюзы. Они должны остаться в таком же состоянии, иначе дальнейшее программирование станет невозможным. Нажимаем «Write» в каждом из окошек (первое окошко – защитные биты – можно не трогать). Готово, фьюзы прошиты!

9 Снимаем питание с микроконтроллера, отключаем программатор от платы – микроконтроллер прошит, устройство готово!

Что делать если:

не найден микроконтроллер – проверьте правильность подключения программатора к контроллеру, проверьте питание контроллера (должно быть +5v), попробуете поменять порт (если есть несколько);

не распознается контроллер – поставьте галочку «тормоз», покликайте несколько раз красную системную частоту, поставьте керамический конденсатор на ножки питания контроллера, если длинна шлейфа большая, возможно большие помехи мешают – уменьшите длину шлейфа;

прошивка записывается с ошибками — поставьте галочку «тормоз», покликайте несколько раз красную системную частоту, поставьте керамический конденсатор на ножки питания контроллера, если длинна шлейфа большая, возможно большие помехи мешают – уменьшите длину шлейфа;

— после записи фьюзов контроллер перестал читаться / писаться что-то Вы напутали с установкой фьюзов – теперь Вам поможет только параллельный программатор . Как альтернативный вариант можно собрать «Atmega fusebit doctor»


P.S. Нужно прошить кроме Flash еще и EEPROM?
Все просто! Сначала ставим галочку EEPROM — появится окошко EEPROM (Галочку «тормоз» нужно поставить до этого!). Далее открываем HEX-файл, автоматически программа найдет и загрузит EEP-файл (заполнятся данными оба окошка PROGRAM и EEPROM). Если юнипроф сам не определил EEP-файл откроется диалог выбора файла. Далее действуем как описано выше. При нажатии кнопки «Prog» программируется и Flash и EEPROM. Вот и все!


Подробная инструкция по прошивке через COM порт >

(Visited 11 683 times, 1 visits today)

027-UniProf-программируем AVR через LPT порт.: 45 комментариев

  1. alexandershahbazov

    Почему-то с миросхемой SN74HC244N не пошло , а с 5 проводками пошло .
    Пишет «МК не откликнулся …» . Только кнопка «Read» заработала . И очень долго шло .
    Правда отладочная плата моя на ATmega8 .
    С обеими программаторами у меня все идет без запинок на CodeVisionAVR и
    avrdude 5.8 .

    Повторюсь , что с 5 проводками работает .

  2. GetChiper Автор записи

    Пробовали ставить галочку «Тормоз»?
    Не нужно привязываться к UniProf. Программа имеет определенные недостатки. Основное ее достоинство — с ней легко начать работать, даже если до этого Вы никогда не прошивали контроллеры. Неизбежно Вы будете расти в профессиональном плане — поменяете программатор, поменяются и программы.
    Avrdude — очень хорошая альтернатива — пользуйтесь ею!

  3. alexandershahbazov

    «027-UniProf – программируем AVR через LPT порт» прочитал внимательно ,
    галочку «Тормоз» ставил .
    avrdude 5.8 попробовал одновременно с UniProf и PonyProg v207c .
    Коммандная строка непривычна для меня , хотя свой самый первый светодиод зажег именно с помощью avrdude на Linux-e RHEL 4 AS .

  4. ec

    аха, с буфером не работает, по всей видимости, потому что юнипроф не дружит с STK, для котором на лпт-разъеме замыкаются 3-11 и 2-12 выводы.
    Зато у понипрог есть файл автоматизации — чудная вещь, если не хочется думать, какие куда ставить фьюзы и быстро прошить.

  5. GetChiper Автор записи

    Ну вот — еще плюс в копилку Юнипрофа. Но вот над помехоустойчивостью я бы, на месте автора программы, поработал. Хотя, если скорость не критична, режим «тормоз» решает все проблемы.

  6. ankar

    А мне он просто нравится тем, что не надо выбирать кристалл.Если не видит ищи косяк.В поньке записываешь, а только потом понимаешь, что потратил даром время. Не, если надо с кучей процов работать, то, конечно, берешь другой побыстрее. А если 1 или там 5 штук, то, для меня Унька (спасибо Николаеву) самое то. Кстати на своем аттлоне ХР3 2.2 гига ни разу не ставил «тормоз».LPT кабель длиной 1.5 метра. Безо всяких наворотов.

  7. Николай

    Успешно прошил ATmegu8 через LPT, но вот второй раз прошить не удаётся, программка пишит «МК неоткликнулся». Пожалуйста, подскажите, что нужно сделать чтоб прошить второй раз! кнопку рессет, на плату не вводил.

  8. GetChiper Автор записи

    А фьюзы шили?

  9. Николай

    Фьюзы шил, по инструкции. Везде понажимал Read, а затем Write. Сам галочки не менял. Контроллер работает, светодиод моргает по прошитому hex, но программа не находит его.

  10. Николай

    Проблема решена! Фьюзы в порядке. Проблема в некачественной пайке, оторвался MOSI на плате. Паяйте добротно и не спеша 🙂 !!!

  11. GetChiper Автор записи

    Николай :

    Паяйте добротно и не спеша :) !!!

    Слушайте Николая — дело говорит! 🙂

  12. NikAndrew

    А когда фиюзы прописываеш отмеченные галочной 0 или 1?

  13. NikAndrew

    все разобрался 0 нет галочки, 1 есть галочка)

  14. zhenya1995

    Здраствуйте, у меня программатор 5 проводков, также у меня не стандартный LPT порт я его докупал к компьютеру, и у этого порта другой адрес (С880) подскажите пожайлуста программу где можно задать именно этот адрес или еще способ какой, чтобы запрограммировать?

  15. GetChiper Автор записи

    Разве винда его не видит?

  16. ankar

    zhenya1995 :
    Здраствуйте, у меня программатор 5 проводков, также у меня не стандартный LPT порт я его докупал к компьютеру, и у этого порта другой адрес (С880) подскажите пожайлуста программу где можно задать именно этот адрес или еще способ какой, чтобы запрограммировать?

    Менять можно и в биосе, если он определился, и в самой винде в свойствах порта.

  17. ankar

    В ХР Мой комп. Диспетчер устройств. Порты СОМ LPT , ресурсы порта, снять галку Автомат И присвоить другие значения. Главное, чтоб не было конфликта.

  18. alexmif

    Недавно попался МК, который ни в какую не хотел шиться, вылетала ошибка. программатором этим определялся нормально. Оказалось причина — не заводские настройки фьюзов. выставив «родные» установки фьюзов проблема решилась. Будьте внимательны!

  19. Valeriy

    Уважаемый Евгений.Расскажите как программировать AVR м.к при помощи прог
    раммы Pony Prog и LPT программатора. Как в посту 027.
    С Уважением Валерий

  20. GetChiper Автор записи

    Если появится свободное время — займусь.

  21. pashkent

    Здравствуйте!Помогите, пожалуйста! Собрал программатор простецкий: http://www.getchip.net/posts/delaem-lpt … /#comments
    и у меня почему-то на 10 выводе(MISO) lpt 4,3В. Соответственно на проводе питания микрухи Attiny13a, не подключая к питанию компа – 3,2В. Попробовал подсоединить к блоку питания компа, напряжения тогда вообще пропадает…
    проверил прогой uniprof lpt и странные результаты получил. микруха не подключена, только лпт. Взял светодиод на 3, 3 в, последовательно 150Ом. втыкал поочереди мисо, моси, резет, сцк…когда в мисо светодиод просто горит…во всех остальных ноль реакции, когда нажимаю тест. В мисо появился после теста мисо=0. Я так и не понял что это значит…

  22. GetChiper Автор записи

    Для начала, нужно в настройках Юнипроф для LPT-порта установить нужные выхода (выставить как на картинке). Нажать «ОК». После этого подключить шнурок и проверить как реагируют соответствующие линии на нажатия кнопок тест (должен меняться уровень на некоторое время).
    С MISO отдельная история, так как это входная линия и по кнопке «MISO=?» проверяется уровень сигнала на соответствующем пине порта.
    Как ведет себя порт?

    Если порт не реагирует значит или он не рабочий или нет соответствующих драйвера (хотя драйвер автоматом идет с Юнипроф) или установки в биосе (в некоторых биосах он настраивается, включается/отключается — нужно смотреть).

    Кстати, винда случайно не семерка?

  23. pashkent

    Спасибо за ответ! все пины выставил, как на картинке и смотрел, как реагируют пины на нажатие кнопки тест. Я так понял, что можно смотреть с помощью светодиода. Я его подсоединил один конец к земле(лпт порта), другой через резистор 150 Ом втыкал в те пины, которые тестил — моси, сцк, резет. Но никакой реакции нет. светодиод не моргал. Когда втыкнул светодиод в мисо, то как я говорил там 4,3В, и соответственно светодиод зажегся. Я нажал на MISO=? и появилось MISO=0. Что это значит я не совсем понял из хелпа к проге.

  24. pashkent

    винда 7-ка)) а что с ней какие то особые настройки? А где в биосе можно лпт посмотреть?

  25. GetChiper Автор записи

    С семеркой немного сложнее в плане работы драйверов (особенно LPT) — нужно погуглить по этой теме (я что-то конкретное предложить не могу, но где-то в блоге уже осуждалась эта тема…)

  26. Andywight

    при открытии окна FUSE появляются только 3 окошка на тиньке13. это нормально?

  27. GetChiper Автор записи

    Да, у тини13 нет экстенденд-байт-фьюза

  28. den737

    как я не старался, а на 1533АП5 так и не увидел контроллер. попробовал 5-ть проводков через 100 Ом резисторы всё идеально.

  29. GetChiper Автор записи

    1533АП5 — а там случаем схема не с инверсией линий? тогда нужно поставить галочку в чекбоксе «~COM»

  30. den737

    поздно))) всё распаял феном и выбросил в мусорное ведро

  31. GetChiper Автор записи

    🙁

  32. Greider

    А программа в конце прошивки должна выдать какое-то подтверждение, мол все успешно?
    И обязательно ли прошивать фьюзы, если достаточно их значений по-умолчанию?

  33. GetChiper Автор записи

    Бежит полоска в процессе программирования.
    Фьюзы прошивать не нужно, если подходят те что стоят по умолчанию с завода.

  34. yuriy

    Прошу прощения за то, что не оригинален, но…
    1Собрал LPT программатор с буферной МС
    Собрал отладочную плату. Соединил их шлейфом 1 м. При этом сигнальные проводники чередуются с земляными.Скачал UniProf. Подключил программатор/плату/Attiny13/ к компу. Там ХР. Сразу пишет, что МК не определился. Галочка «Тормоз» не помогла. Нажатие на красную частоту тоже не дает результата.
    Проверил монтаж. Все ОК. Сымитировал подачу сигналов от компа — буфер работает нормально. При этом заметил, что светодиод питания программатора подсвечивает при втыкании в LPT порт еще до подключения питания. В чем может быть дело? Компу 5 лет, частота приличная

  35. GetChiper Автор записи

    тини13 не самый лучший кандидат на первые пробы программатора — частенько с ней бывают непонятки. Возьми другой МК.

  36. yuriy

    Я так понимаю, что дело в МК?

  37. GetChiper Автор записи

    Возможно

  38. yuriy

    Здравствуйте. Получил сегодня Attiny2313. Решил проверить. К сожалению ситуация не меняется — МК не виден. Конкретизирую подозрения: Системная частота компа 3213 МГц, Это может служить причиной? Или длинный шлейф от LPT программатора до платы с МС?

  39. GetChiper Автор записи

    Пункт 1 статьи выполнили? пины порта соответствуют пинам программатора?
    Буферная МК не инвертирует сигнал (в этом в настройках LPT нужно поставить галочки инверсии)

  40. yuriy

    Уважаемый GetChiper, пункт 1 выполнен. Микросхема 74CH224, насколько я понимаю, неинвертирующий буфер. Попробовал нажимать кнопки ТЕСТ, ожидая увидеть мультиметром изменения потенциала, но не увидел. Там импульсы проходят? Непонятки. Простая схема, а вот незадача.
    Попутно еще вопрос- при первичной попытке микросхему 2312 воткнул наоборот. Можно похороны ей устраивать?

  41. GetChiper Автор записи

    По идее при нажатии теста должен удерживаться уровень (может попробовать кнопку держать нажатой мышкой?)

    Можно похороны ей устраивать? Обычно МК такое выдерживает, но все может быть.

  42. yuriy

    Необходимо ли как-то особенно инсталировать программу?Хелп не то, что не вызывается, так он и отдельно не грузится. При нажатии на частоту вылезает только «МК не откликнулся….»
    Программатор на стенде работает (в статике).

  43. GetChiper Автор записи

    Ничего не нужно инсталлировать — все должно работать и так.

    Может все таки проблема со связью или ошибочной распиновкой на МК сигнальных линий программатора?

  44. yuriy

    Благодарю за потраченное на меня время. Сделал программатор Громова с шлейфом 20 см. Всё заработало сразу, без настроек скорости COM-порта

  45. GetChiper Автор записи

    Отлично!

Добавить комментарий