Делаем 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 83 942 times, 1 visits today)

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

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

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

  2. suxov

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

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

    Да.

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

  4. Георгий

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

  5. Георгий

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

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

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

  7. Георгий

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

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

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

  9. Георгий

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

    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: совместимость по привычке уже — постоянно попадаются проги работы с портами, которые без этого не работают.

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

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

  11. ezhy

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

  12. ezhy

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

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

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

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

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

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

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

  14. Evgen-82

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

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

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

  16. zigler

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

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

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

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

  17. pashkent

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

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

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

  19. pashkent

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

  20. Toxa12345

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

  21. V1ad

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

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

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

  23. V1ad

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

  24. Toxa12345

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

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

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

  26. Toxa12345

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

  27. Toxa12345

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

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

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

  29. Toxa12345

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

  30. Toxa12345

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

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

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

  32. Toxa12345

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

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

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

  34. SimbioSiS

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

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

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

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

  36. 78L05

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

  37. 78L05

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

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

    Сдох!

  39. fake15051998

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

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

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

  41. fake15051998

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

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

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

  43. fake15051998

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

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

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

  45. fake15051998

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

  46. ankar

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

  47. zhenya1995

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

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