Меню

Программатор через lpt своими руками

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

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

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

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

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


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

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

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

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

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

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

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

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

IC-Prog поддерживает STK200+/300 отсюда вывод что этим шнурком можно програмировать фанку.Но есть пара вопросиков,нужно ли подавать дополнительное питание на смарт карту или хватит лпт порта,если нужно то на какой сигнал.Далее как выглядит распиновка с сигналами смарт карта FUN 2.Помогите пожалуйста сам не разберусь.Заранее благодарен.

С ЛПТ питание не подается, его придется подать с другого источника. По смарткартам ничего не подскажу — никогда не шил, но я думаю тема довольно частая в сети — поисковик должен помочь 😉
Вот первая ссылка на топик описывающий процес http://viaccessfree.biz/forum/showthread.php?t=14208

GetChiper :
С ЛПТ питание не подается, его придется подать с другого источника. По смарткартам ничего не подскажу – никогда не шил, но я думаю тема довольно частая в сети – поисковик должен помочь
Вот первая ссылка на топик описывающий процес http://viaccessfree.biz/forum/showthread.php?t=14208

Вот распиновка FUNCARD 2 c подписаными сигналами

Если я правильно понял

VCC- +5В,VSS-ОБЩИЙ GND,а что за сигнал XTAL у Вас на схеме его нет.

Извиняюсь вот ссылка на распиновку

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

Вобщем собрал программатор установил ICprog,при попытке считывания программа выдает найдена плохая сигнатура FF-FF-FF что это может значить,подскажите.

Или проблемы с чтением МК (что-то с программатором или линиями) или проблема с самим МК (прошит неправильно или не рабочий)

Здравствуйте, можно ли подавать питание от БК через стабилитрон 3,3 вольта? Читал несколько статей про программаторы, где-то пишут, что нужно 3,3 вольта, а у Вас 4,5 вольта. Не могу определиться: давать питание через стабилитрон 3,3 вольта или 5 вольт через конденсатор.

При программировании МК должен быть запитан номинальным напряжением. Это напряжение можно посмотреть в даташите. Обычно МК нормально программируются при напряжении питании от 2.7 до 5 вольт (но лучше всетаки 5 вольт)

Добрый день! Сделал этот програматор все как написано в статье. Но когда пытаюсь запрограмировать ATtiny2313 программа не видит микросхему. Пишет «МК неоткликнулся». Подскажите в чом может быть проблема?

Читайте также:  Регулируемый светодиодный светильник своими руками

Питание на МК подано отдельно?
Шнурок не слишком длинный?
Не попутаны MISO и MOSI при подключению к МК?
LPT порт откликается на действие в программе? (это можно проверить прямо из юнипрога — там есть специальный инструмент)
МК до этого шился? Фьюзы не переставлены на внешний кварц (при его отсутствии)?

@GetChiper
Спасиба за ответ буду искать! если что отпишу!

@cSlowc
А как проверить фьюзы? Ато я не в курсе прошиались ли они до этого!

Какое программой шил? Этой-же программой можно их и прочитать.

@GetChiper
А каким образом проверить LPT через Юнипроф? ато чтото непойму!

Добрый день!
У меня такая проблема. Собрал программатор, как в статье, без резисторов правда.
Несколько дней всё работало прекрасно. Сегодня включил комп (а питание беру с USB), а микроконтроллер не запустился (ну скажем не замигал светодиод).
Стал разбираться, оказалось постоянно идет сигнал Reset. Как только отключаешь эту ножку, начинает работать и мигать. При этом прошивка и чтение проходят без проблем (даже при подключенной ножке).

Уже менял адрес порта в биосе, выключал полностью питание, не помогло…

P.S. Пока писал этот текст, сделал ещё раз чтение Flash и бах всё заработало нормально. Но на будущее может подскажете, что это было?))

Хотелось бы спросить,
-чтобы прошить attyny 2313 нужно ли добавлять питание мк с USB порта (5V)
или же лпт порт имеет это?общие провода (gnd) USB+LPT соединять ли вместе ?
-кварцевая развязка нужна ли?и куда общий провод припаивать его?
-и чем отличается attyny2313 от attyny2313a? я в буржуйских даташитах не силен.

Отдельное питание питание (или от USB, или от батареек) необходимо — LPT не имеет вывода питания. Все общие провода должны быть соединены. Для программирования развязка не обязательна. Буковка А указывает на модификацию контроллера — кроме каких то специфических случаев это не имеет значения.

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

Для отправки комментария вам необходимо авторизоваться.

Источник

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

На просторах интернета есть огромное количество различных схем построенных на микроконтроллерах PIC фирмы Microchip и микроконтроллерах семейства AVR фирмы Atmel.

И у начинающего радиолюбителя задумавшего собрать что либо на микроконтроллере сразу возникает вопрос как и чем его запрограммировать. Что касается микроконтроллеров PIC, то об этом довольно подробно описано здесь. В данной статье рассмотрим схему LPT программатора, а также как и чем можно запрограммировать контроллеры AVR. Существует множество устройств способных прошить AVR контроллер. Рассмотрим несколько из них.

Программирование при помощи пяти проводков.

У микроконтроллеров AVR для программирования имеются следующие выводы:

  1. вывод MOSI — предназначен для приема данных;
  2. вывод MOSO — для вывода данных;
  3. вывод SCK — вывод синхроимпульсов;
  4. вывод RESET — говорит сам за себя, это сброс.
  5. Пятым проводом является общий провод.

Подключив эти пять выводов через токоограничивающие резисторы к параллельному порту персонального компьютера получаем простой LPT программатор для микроконтроллеров AVR.

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

Программатор LPT на основе микросхемы 74HC244

Одним из минусов выше приведенной схемы является большая вероятность того что при ошибке монтажа схемы или не аккуратном ее подключении к компьютеру можно сжечь LPT порт. Чтобы защитить его и увеличить помехоустойчивость программатора данную схему необходимо дополнить буфером, применив микросхему 74HC244.

На схеме светодиод HL2 предназначен для индикации напряжения питания, а светодиод HL1 указывает на процесс программирования.

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

Источник

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

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

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

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

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


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

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

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

Читайте также:  Прямоток для нивы своими руками

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Посмотри статью http://www.getchip.net/posts/027-uniprof-programmiruem-avr-cherez-lpt-port/ Там пошаговая инструкция как программировать через LPT. Особенно обрати внимание на первый пункт!

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

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

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

Читайте также:  Рамка новорожденному своими руками

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Для отправки комментария вам необходимо авторизоваться.

Источник