Делаем LPT программатор для AVR микроконтроллеров.

Автор: | 27.02.2010

Титул LPT программатораОдним из самых простых программаторов AVR является программатор для LPT порта. Это обусловлено тем, что уровни сигналов LPT порта совместимы с уровнями сигналов необходимыми для программирования АВР. Поэтому сигналы с LPT порта можно напрямую подать на микроконтроллер (резисторы нужны лиш для защиты порта от случайных замыканий). Такой программатор можно собрать из подручных материалов буквально за 5 минут!


Как Вы видите схема LPT программатора для AVR предельно проста:

Схема LPT программатора для AVR

Для изготовления LPT программатора нам понадобится:

детали для LPT программатора

Резисторы можно использовать любые, какие найдете в пределах от 100 до 150 Ом. Можно программатор собрать вообще без резисторов, но тогда спалить порт станет еще легче. В качестве шлейфа можно заюзать IDE шлейф. При подключении шлейфа, для более устойчивой работы программатора, каждый «сигнальный» провод должен чередоваться с «земляным» проводом. Это позволит уменьшить уровень помех наводимых в линиях и за счет этого увеличить длину программирующего провода. Длина шлейфа должна быть в пределах 50 см. Еще нужен разъем для подключения к программируемому устройству.
Для внутрисхемного программирования Atmel рекомендует стандартные разъемы:


Если Вы планируете серьезно заняться микроконтроллерами, сделайте разъемы стандартными. Для разового программирования устройства я рекомендую использовать разъемы BLS «мамы» на программаторе (такими разъемами к материнской плате подключаются кнопки и светодиоды корпуса компьютера) и штырьки PLS «папы» на плате. Это позволяет максимально упростить разводку платы устройства, так как штырьки для программатора устанавливаются в непосредственной близости возле ножек микроконтроллера. Ножки MOSI, MISO, SCK у микроконтроллеров AVR всегда расположены вместе, поэтому для них можно применить строенный разъем. Отдельно делаем подключение для «земли»-GND и «сброса»-Reset.


Сборка LPT программатора за 5 шагов:

Как сделать LPT программатор для AVR

Перемычки между ножками разъема 2-12 и 3-11 нужны для того, чтобы наш программатор был виден для программ как программатор STK200/300 (STK200/300 своего рода стандарт и поэтому наш программатор станет виден для многих программами).

Для того чтобы наш LPT программатор заработал нужна программа для программирования через LPT порт, плата устройства к которой мы подключим программатор и тестовая прошивка для микроконтроллера.

Общие рекомендации:
— LPT порт довольно нежен — его очень легко «пальнуть», поэтому при работе с портом будьте аккуратны.
— Отдельное подключение для «земли» я бы рекомендовал делать во всех программаторах. Это нужно для того, чтобы «землю» можно было подключить первой и уравнять потенциалы «земли» программируемого устройства и компьютера. (Для тех кто не знает — если у Вас компьютер включен в обычную розетку без заземляющего контакта, то в виду особенности фильтра блока питания компьютера, на корпусе компьютера всегда присутствует потенциал в 110В. При «удачном» подключении программатора этого вполне достаточно для того чтобы сжечь микроконтроллер или LPT порт компьютера.

Заключение:
-Если Вы надумали собрать свой первый программатор и у Вашего компьютера есть LPT порт, то программатор «5 проводков» лучший вариант! Он предельно прост и его повторить не составит труда. Кроме того, программатор совместим с классическими программаторами STK200/300, а значит, он будет поддерживаться многими программами для программирования AVR.
-Если Вы планируете программировать довольно часто, с целью обезопасить LPT порт, рекомендую собрать LPT программатор с буферными элементами (неплохой вариант LPT программатора можно посмотреть на изиэлектроникс) или собрать такой же простой COM программатор (COM порт гораздо выносливей и сжечь его трудней).

(Visited 62 627 times, 1 visits today)

Делаем LPT программатор для AVR микроконтроллеров.: 119 комментариев

  1. zhenya1995

    Тоесть при программировании соединять GND LPT порта с GND ATtiny2313 и еще сюда присоединять минус батарейки питания?

  2. ankar

    Это точно. Масса всегда общая.А пока у нас массой назначен минус питания.Хотя это необязательно.Но в данном случае старайтесь придерживаться именно этого соглашения.

  3. fake15051998

    Я собрал данный программатор но он не работает!!!
    Схему проверял — все верно, но почемуто его не видит ни одна программа!!!

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

    Сам порт работает? В унипрофе можно проверить работоспособность каждого пина порта.

  5. fake15051998

    Порт в биосе: Normal
    Как в унипрофе проверять?

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

    Кнопка «LPT pins» позволяет как назначать любые линии порта для программатора так и вручную их переключать/тестировать (тестером можно проверять результат переключения).

  7. fake15051998

    Я протестировал, при измене вывода напряжение меняется. Это значит что LPT рабочий?

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

    Да, значит рабочий.
    А соответствие выводов LPT-порта сигналам программирования выставлено (как на картинке в начале статьи)?

  9. fake15051998

    Да. Мне сказали что МК(ATmega8) должна потреблять на холосте до 6мА, а у меня 531мА.

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

    Сдох!

  11. 78L05

    У меня возникла проблема:
    Как мне сказал админ одного сайта, на котором я обитаю (на буду рекламить): «чтобы использовать у ATTiny13A-SU 1 ногу как вход надо снять фьюз RSTDISBL».
    Я так и сделал. Прога заработала, но после перезапуска программатор перестал определять тиньку.
    Что мне делать? Есть возможность её оживить?
    Можно конечно и заменить тиню, ни жалко(((

  12. 78L05

    «Можно конечно и заменить тиню, ни жалко(((»
    Я описался, хотел написать «НО жалко»

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

    RSTDISBL трогать нельзя — он должен оставаться таким какой он есть с завода. Теперь поможет только параллельный программатор.

  14. SimbioSiS

    Не получается…
    Сначала оказалось что Win 7 x64 не дружит с ЛПТ.
    Поставил виртуальную Хр.

    Но работать не стало, МК не определяется.
    Пробую прошить новый atmega8.
    Шлейф очень короткий, в ЛПТ Пинс выставил всё как по схеме.
    Питание на МК подаю с БП компьютера.
    В биосе 387h порт и ECР.
    Что ещё попробовать не знаю.

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

    Win 7, а тем более x64 довольно проблемная в плане работы старых драйверов. Даже не знаю что еще попробовать. По крайней мере нужно попробовать на другом компе с ХР-хой.

  16. Toxa12345

    если схема правильная то выскажите свои пожэлания по модернизации
    после сборки отпишусь

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

    Чего-то я не очень понял назначения платы.

  18. Toxa12345

    для програмирования тиньки: всунул и запрогромировал, потом всунул в устройство подал питание и вуаля!
    сделано для того чтобы с проводами не возится-одной платой по мне как-то лутше
    щас буду доробатывать- понял что питаньку будет не удобно подовать, сделаю-ссыльку кину

  19. Toxa12345

    обновлённую версию можно скеачать по той жэ ссылке
    Улутшения:
    1. Добавлены штырьки
    2. разьём питания выведен отдельно
    P.S. и снова прошу: проверьте схему на наличие ошибок особое внимание уделите проверки распиновке програматора данная плата является совмещением лпт програматора и отладочной платы для тиньки 2313

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

    Штырьки, те что слева от панельки, нужно немного отсунуть от панельки.

  21. Toxa12345

    это я учту, а по распиновке косяков нету?
    З.Ы. Штырьки наверно вовсе уберу, так как проще на отдельной макетке панельку со штырьками сделать
    И сново обычная рубрика:»вотт ссылочка» http://narod.ru/disk/62251789001.56024b4889561ec8d2a9f14a2d8174fc/1.lay.html
    И хочу сказать огромное спасибо Евгению (GetChiper) за то , что указал на косяки, помог и объяснил
    (После сборки могу напсать статейку, кинуть фоточки на мыло(Ну если очень хочется))

  22. Toxa12345

    @78L05
    расстование со сгоревшими компонентами дорожэ 100 рублей- очень уж долая процедура

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

    Не советую делать такую платку — оно себя не оправдывает (разве что при единичных программированиях). При наладке устройства его приходится препрошивать по сотне раз — это же замучаешься дергать МК из панельки.

  24. Toxa12345

    Учту. решил потратить 100 рублей и заказать на ибэй но лпт прогроматор всёжэ соберу адо будет только на выходных за разъёмчиком зайти

  25. V1ad

    Здравствуйте!
    Спасибо за подробную статью с картинками!
    А на ноутбуке этот программатор тоже должен работать или есть тонкости?
    Заранее спасибо!

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

    Нужно пробовать.

  27. V1ad

    @GetChiper
    Попробовал, в начале спаял на стандартных пинах тест LPT-портов не проходит, реакции либо нет, либо она не такая как должна быть, 9-го пина вообще в тестах нет и как его тестировать не понятно (наверно я что-то не допонял).
    Потестил 14-17 пины, работает как положено, в двух пинах выставил инверсию. Спаял — заработало, первый МК прошит 🙂
    Возможно это особенность LPT моего ноутбука Dell, но в целом может кому пригодится эта информация…
    Еще раз спасибо за подробнейшую статью с полезными картинками!

  28. Toxa12345

    вот блин, нигде печатку прогроматора с буферными элементами, стандартным 10 пиновым разъёмом и с ТН компонентами найти не могу…
    Помогите плиз!

  29. pashkent

    Здравствуйте!Помогите, пожалуйста! Собрал программатор и у меня почему-то на 10 выводе(MISO) lpt 4,3В. Соответственно на проводе питания, не подключая к питанию компа — 3,2В. Попробовал подсоединить к блоку питания компа, напряжения тогда вообще пропадает…

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

    4,3В — это нормально. Попробуйте подергать ногами LPT (Юнипроф это умеет http://www.getchip.net/posts/027-uniprof-programmiruem-avr-cherez-lpt-port/) если LPT отзывается — значит все нормально. Попробуйте прошить микроконтроллер, запитав его от внешнего источника питания, например, от батареек (4.5В будет вполне достаточно).

  31. pashkent

    спасибо! проверил прогой Юнипроф и странные результаты получил.( микруха не подключена, только лпт.) Взял светодиод на 3, 3 в, последовательно 150Ом. втыкал поочереди мисо, моси, резет, сцк и тестил(все по инструкции)…когда в мисо светодиод просто горит…во всех остальных ноль реакции, когда нажимаю тест. В мисо появился после теста мисо=0. Я так и не понял что это значит…

  32. zigler

    Доброго времени суток.
    Паяю свой первый программатор для LPT порта компьютера по Вашей инструкции.

    В качестве источника питания компьютерный БП AT. Красный провод +5, черный GND.
    С порта LPT тоже приходит GND.
    На МК Atmega16 11 ножка — GND.

    В общем, нужно ли их соединять друг с другом?
    Подавать GND с БП напрямую на микроконтроллер… какое-то смутное сомнение….

    И что подключать к ножке GND микроконтроллера в готовом устройстве?

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

    Все GND (блока питания, микроконтроллера, порта) нужно соединять вместе. В готовом устройстве GND как и в любом другом устройстве — это минус питания.

  34. Evgen-82

    Вопрос, будет ли этот программатор совместно с программой UniProf работать под ОС Windows 8?

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

    Нужно пробовать — могут быть варианты. Нужно будет или ковырять настройки LPT в биосе или искать спец драйвер под 8.

  36. ezhy

    Здравствуйте!

    Спаял схему. Подключил к порту — не работает. Питаю от УСБ.
    Помогите, пожалуйста, понять что делаю не так:
    0. Напряжение мерю между массой и каналом (reset, mosi, sck), верно?

    1. Померил напряжение — на всех ножках около 4 вольт (с питанием, без питания и даже без контроллера). Порт рабочий, ибо с него принтер печатает.

    2. Проверять пины можно без контроллера? Мультиметр довольно инертный, но нажатии на «тест» для любого из канала заметно, что напряжение падает на 0,2 в примерно, потом возвращается (то есть совсем до 0 не уходит). Если подключить светодиод картина такая же — яркость немного снижается, но диод не гаснет.

    Большое спасибо!

  37. ezhy

    Забыл добавить — win XP, порт настроен в режим spp, irq7 (который адрес не помню — там для 7го прерывания их два было), прога запускается в режиме совместимости с win98 от имени админа…

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

    Полностью освободите порт и проверяйте. Напряжение на выводах порта должно падать в ноль.
    И зачем режим совместимости win98?

  39. Георгий

    Вынул программатор, мерю напряжение на пинах от массы:

    4 0 4 0 4 0 0 0 0 4 4 4 4
    4 4 4 0 0 0 0 0 0 0 0 0

    Я вот что не понял:
    1. перемычка от 2 к 12 ноге подает на 2ую сигнал с 12, а как с 3 и 11 ногой?! Там же на обоих +4В..
    2. На 9 ноге (там, где резет) сейчас 0, нажимаем на «тест» — ни чего не происходит. Если поставить галочку «инверт» — результат тот же. Если переключить «резет» на 1 ногу (на ней сейчас 4в), нажимаю тест (с инвертом или без) — все неизменно..

    Что опять не так делаю?.. Режим порта SPP Должен быть?

    PS: совместимость по привычке уже — постоянно попадаются проги работы с портами, которые без этого не работают.

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

    Все выходы должны однозначно реагировать на тесты. Возможно проблема в драйвере, но скорей всего в настройках порта. Нужно «поиграться» ими. Работа принтера не показатель так как порт работает в разных режимах.

  41. Георгий

    К порту нужен какой-то драйвер кроме того, что стоит в WinXP? Для контроллера не ставится ни чего?

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

    Нет драйвер не нужен, все должно работать с тем что есть в винде. У юнипрофа есть свой драйвер для работы с LPT (LPTWDMIO.SYS). Вот похоже у этого драйвера какие-то проблемы при работе с Вашим портом. Настойки порта меняли?

  43. Георгий

    Все. С поротом разобрался. Проблема была именно в совместимости — ее ставить не надо было!
    Правда, контроллер не отвечает ( То ли лыжи не едут, то ли контроллер мертвый..

  44. Георгий

    Здравствуйте!
    Пока не успел дойти купить новый контроллер возник вопрос — если в МК стоит работа от внешнего кварца, то без него тоже получим ошибку «МК не откликнулся….» ?

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

    Да.

    Поставьте любой кварц в пределах 1-20МГц (желательно с конденсаторами по 15-25р) и проверьте.

  46. suxov

    Уважаемые гуру,подскажите можно ли приспособить этот программатор для прошивки смарт-карт FUNCARD.

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

    Вопрос наверное не сможет ли этот шнурок прошивать смарт-карты, а поддерживает ли программа для прошивки смарт-карт этот шнурок.
    Проверьте Вашу программу на предмет поддержки STK200/STK300

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