Делаем 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 30 703 times, 77 visits today)

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

  1. alexandershahbazov

    «Каждый «сигнальный» провод должен чередоваться с «земляным» проводом»-
    это у меня вышло как-то интуитивно , также поступил .
    Иногда в схему включают резистор в 1 кОм от корпуса LPT-папы на землю для защиты от статического электричества .

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

    alexandershahbazov :

    Иногда в схему включают резистор в 1 кОм от корпуса LPT-папы на землю для защиты от статического электричества .

    Правильное решение — исключает большие уравнивающие токи.

  3. alexandershahbazov

    Наконец-то спаял STK200 с микросхемой SN74HC244N .
    Правда навесным монтажем и без SMD компонентов .
    Все уместил в корпус LPT разьема , даже 2 светодиода впаял .
    Проверил через CodeVisionAVR 2.04.4a , avrdude 5.8 .
    Что-то с PonyProg v207c не пошло .

    А так до сих пор сам пользовался схемой показанной выше .

  4. student

    Уважаемый getchip можете поподробнее объяснить как подсоединять шлейф, а то я только начинающий. А лучше что бы вы сняли видео о том как всё собрать!!!

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

    В данном случае на картинках получается более наглядней.
    Жилы шлейфа припаиваются следующим образом: GND, Reset, GND, MOSI, GND, MISO, GND, SCK, GND (сигнальные линии чередуются с земляными). Земляные провода спаиваются вместе как на стороне LPT-разъема, так и на другой стороне.
    В принципе, можно просто кинуть пять проводков от LPT-разъема до программируемого микроконтроллера (устройства), не заморачиваясь со шлейфом.

  6. sundoser

    А питание? МК без него не прошьётся

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

    Конечно не прошьется. Нужно подать на микроконтроллер 5в от блока питания или батареек. Я в полевых условиях использую квадратную батарейку 4.5в.

  8. Olzhabay

    а можно использовать резисторы 220 Ом?

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

    Да, можно. Их величина, в принципе, не критична.

  10. newsergei

    я как начинающий и особо не разбирающийся имею право задать вопрос, а какие микроконтроллеры он шьёт? интересуут мк PIC16F628A , прошьёт? если нет, то подскажите чем его можно прошить… за ранее спасибо!
    P.S. очень хороший сайт. молодец.

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

    Насчет PICов не подскажу, так как с ними не работал.

  12. newsergei

    спасибо за ответ!

  13. yademon

    какие микросхемы можно им прошивать

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

    Все AVR микроконтроллеры, за остальные не скажу — не пробовал.

  15. Thespawn007

    Почему у меня никакой реакции вообще нет на него? мк атмега8, питание подал всё как надо, может быть такое что у меня LPT отключен? и как его включить?

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

    В какой программе программируете?

  17. Thespawn007

    да я первый раз вообще пытаюсь, в avrdude пробовал и в Uniproа, 0 эмоций…

  18. Thespawn007

    единственное, у меня входного LPT разьёма нет и я воспользовался проволкой.. может это из-за этого

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

    Может не те отверстия разъема проволоку вставляете?
    Кстати, посмотрите в настройках LPT порта в UniProf правильно ли там сигналы расставлены (соответствует ли тому как вы подключаетесь)?

    Вообще программатор «деревянный» и работает всегда…

    Еще могут быть настройки работы LPT порта в биосе. Если не ошибаюсь там 2 варианта. Попробуйте поменять.

  20. Thespawn007

    Да там пронумерованы отверстия на сасос разьёме, ошибиться трудно, пины все правильно проверил, в биосе тоже посмотрел там IRQ7 должно стоять с spp(normal) настройками, попробую ещё щас провод сменить, я телефонным пользовался…

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

    Зайдите в настройки «LPT pins» (UniProf)и проверьте соответствие сигналов программирования с выбранными. Еще? здесь же можно проверить работоспособность линий LPT порта.

  22. cudi

    GetChiper, помоги пожалуйста, спаял я в точности по схеме программатор, подключаю его ни как не реагирует, у меня был шлейф, удлинитель от LPT порт 1,5 м, убрал его, сразу светодиод от схемы (не программатора) загарелся( т.е питание есть), стал сного побывать ни как… Несколько раз проверил схему, всё чисто и гладко…
    Вот схема устройства http://myrobot.ru/wiki/index.php?n=Experiences.SelfmadeDemoBoard2
    Вот схема:
    http://i062.radikal.ru/1103/8f/d3567247a0ac.jpg

    Помоги плиз

  23. Thespawn007

    GetChiper :
    Зайдите в настройки «LPT pins» (UniProf)и проверьте соответствие сигналов программирования с выбранными. Еще? здесь же можно проверить работоспособность линий LPT порта.

    Я же написал что провверил все пины, всё совпадает, а как проверить работоспособность линий LPT порта???

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

    В окне настроек линий порта есть кнопки «Test..» при нажатии на каждую соответствующая линия будет менять состояние, например 1>0>1. Тестером можно увидеть изменения (или светодиод поцепить через 1 кОм).
    Линия MISO работает на вход, поэтому при нажатии на клавише отобразиться текущее состояние линии. Прижимая линию к земле или 5В (через резистор конечно) можно увидеть видит ли юнипроф линию или нет.

    Если все порта живые, то значит программа их контролирует — драйвер и сам LPT работают правильно.
    Если микроконтроллер не определяется, то тогда причина может быть:
    — в неправильно выставленных фьюзах (это если микроконтроллер не новый. если новый то с фьзами там все должно быть нормально).
    — Может микроконтроллер сгоревший? — попробуйте другой.
    — Линии MOSI, MISO не перепутали при подключению к контроллеру — поменяйте местами.

    Вообще этот программатор штука безотказная — должен работать полюбому!

  25. NikAndrew

    Скажите, а возможна ли работа напрямую с МК без устройства?
    То есть, можно ли подав питание и подключив разъемы к нужным ножкам запрограмировать МК(ATmega8a)?

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

    Так программирование и происходит!

  27. NikAndrew

    А питание можно от USB подать?

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

    В принципе можно, но нужно быть осторожным — в процессе программирования/отладки можно случайно заворотить питание и потерять порт.

  29. NikAndrew

    Хм.. А через LPT, получить 5V можно?
    И на какую ножку подавать питание? (Сори что достаю вопросами, первый програматор)

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

    Вот что нужно сделать http://www.getchip.net/posts/prostaya-otladochnaya-plata-dlya-ustrojjstv-avr-atmega4888168-s-chasovym-kvarcem/
    mega48/88 совместима по ножкам с mega8 — все так само.
    Возьми макетку, панельку и сделай так-же (только часовой кварц не ставь).
    Для питания возьми квадратную батарейку 4.5в (точно ничего не спалишь).

  31. NikAndrew

    А перемычка на кварце нужна?

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

    В смысле заместо кварца? Нет. Если кварц не задействован то ножки используются как обычные порта ввода-вывода.

  33. NikAndrew

    Спасибо огромное! завтра буду паять.

  34. NikAndrew

    Сделал все как вы сказали, спаял, пишет МК не откликнулся.
    Прозвонил всё, все контакты в норме, питание с батарейки.
    Что можете посоветовать?

  35. ankar

    @NikAndrew
    В унипроге ОБЯЗАТЕЛЬНО проверь состояние портов с помощью тестера. Благо это тот программатор который такое позволяет. Если при нажатии на кнопки сигналы меняются, то перезазгрузи уньку и вперед. Если не определяет микруху при нормальном соединении, то меняй авр и пробуй на другой.В любом случае надо иметь запасную авр для проверки.
    И проверь на НОЖКАХ, не на пятачках к которым они припаяны. Этот непропай очень часто встречается.
    Кстати , по моему , это единственный программатор который без напоминаний проверяет какую микруху присоединил.И очень неприхотливый. Наверное потому, что его Николаев делал для себя , а не в угоду реклам.

  36. ankar

    @NikAndrew
    По моему минус батарейки и земля компа не завязаны. Померяй напругу миннус на корпус компа а плюс на плюсе батарейки.

  37. ploki

    если в схеме с контроллером неисполизуется кварц в каких случаях нужно подавать сигнал на ножку №5 XTAL1 а в каких нет, в программаторе который представлен выше выхода на эту ножку нет , а в программаторе STK200/300 который с микросхемой выход на XTAL1 есть

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

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

  39. Ghjuhfvvf

    При включении компа выходные биты Lpt порта по умолчанию стоят в 1. Сбросьте все выходные биты в 0. 4 бит автоматически перейдет в 1 (или переведите его вручную). По-крайней мере, пока не проведу эту процедуру, у меня тоже ничего не видит Lpt программатор (собран на SN74HC244N). Использую прогу XPLpt (легко найти).

  40. VLADIK

    разным номиналом можно

  41. 9vovka

    Привет всем. Собрал такой программатор (для аттини2313)но он не программирует. На тесте все с проводами от порта нормально (при 0 на MOSI и SCK 0,3 вольта — так и должно быть?), но когда начинаю вшивать программу на начале записи выскакивает ошибка «нужно ** а есть 53» если нажать «пропустить» выскакивает такая же ошибка на протяжении всей записи. Питание 4,9В через КРЕН5А.. микросхемы пробовал разные и для всех одна ошибка.

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

    В самом юнипрофе настроили ножки LPT как надо?
    В юнипрофе можно подергать выводами LPT-порта — проверить их работоспособность — пробовали дергать?

  43. 9vovka

    @GetChiper
    Я же говорю, ноги настроены правильно и при тесте ноги отвечают и соответствуют значению.

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

    Галочку «тормоз» ставили? Обычно помогает в таких случаях.

  45. ankar

    9vovka :
    Привет всем. Собрал такой программатор (для аттини2313)но он не программирует. На тесте все с проводами от порта нормально (при 0 на MOSI и SCK 0,3 вольта – так и должно быть?), но когда начинаю вшивать программу на начале записи выскакивает ошибка «нужно ** а есть 53″ если нажать «пропустить» выскакивает такая же ошибка на протяжении всей записи. Питание 4,9В через КРЕН5А.. микросхемы пробовал разные и для всех одна ошибка.

    Ну тут есть эта проблемма. Просто перед записью хекса, сотрите кристал. И заново перезапустите уньку. Прога пишет, в основном, только на чистый кристал. mosi и sck при нажатии кнопки переключаются на 1 и потом 0.Сброс с 1 на 0. А ,вот miso, тут уже посложнее. Там немного опыт дергается авометр. А то, что там 0,3 v это еще ни о чем не говорит. Я , обычно еще и тестером лишний раз проверяю.

  46. ankar

    Кстати, залоченый кристал приходится , иногда, раза два- три чистить.

  47. zhenya1995

    Вы в статье писали про не заземленный компьютер, у меня компьютер не заземлен, что нужно предпринять чтобы ничего не спалить?

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

    Если схема ни к чему не привязана, то ничего. Иначе нужно до подключения устройства соединить общие провода.

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