Одним из самых простых программаторов 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 порт гораздо выносливей и сжечь его трудней).
Вопрос наверное не сможет ли этот шнурок прошивать смарт-карты, а поддерживает ли программа для прошивки смарт-карт этот шнурок.
Проверьте Вашу программу на предмет поддержки STK200/STK300
Уважаемые гуру,подскажите можно ли приспособить этот программатор для прошивки смарт-карт FUNCARD.
Да.
Поставьте любой кварц в пределах 1-20МГц (желательно с конденсаторами по 15-25р) и проверьте.
Здравствуйте!
Пока не успел дойти купить новый контроллер возник вопрос — если в МК стоит работа от внешнего кварца, то без него тоже получим ошибку «МК не откликнулся….» ?
Все. С поротом разобрался. Проблема была именно в совместимости — ее ставить не надо было!
Правда, контроллер не отвечает ( То ли лыжи не едут, то ли контроллер мертвый..
Нет драйвер не нужен, все должно работать с тем что есть в винде. У юнипрофа есть свой драйвер для работы с LPT (LPTWDMIO.SYS). Вот похоже у этого драйвера какие-то проблемы при работе с Вашим портом. Настойки порта меняли?
К порту нужен какой-то драйвер кроме того, что стоит в WinXP? Для контроллера не ставится ни чего?
Все выходы должны однозначно реагировать на тесты. Возможно проблема в драйвере, но скорей всего в настройках порта. Нужно «поиграться» ими. Работа принтера не показатель так как порт работает в разных режимах.
Вынул программатор, мерю напряжение на пинах от массы:
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: совместимость по привычке уже — постоянно попадаются проги работы с портами, которые без этого не работают.
Полностью освободите порт и проверяйте. Напряжение на выводах порта должно падать в ноль.
И зачем режим совместимости win98?
Забыл добавить — win XP, порт настроен в режим spp, irq7 (который адрес не помню — там для 7го прерывания их два было), прога запускается в режиме совместимости с win98 от имени админа…
Здравствуйте!
Спаял схему. Подключил к порту — не работает. Питаю от УСБ.
Помогите, пожалуйста, понять что делаю не так:
0. Напряжение мерю между массой и каналом (reset, mosi, sck), верно?
1. Померил напряжение — на всех ножках около 4 вольт (с питанием, без питания и даже без контроллера). Порт рабочий, ибо с него принтер печатает.
2. Проверять пины можно без контроллера? Мультиметр довольно инертный, но нажатии на «тест» для любого из канала заметно, что напряжение падает на 0,2 в примерно, потом возвращается (то есть совсем до 0 не уходит). Если подключить светодиод картина такая же — яркость немного снижается, но диод не гаснет.
Большое спасибо!
Нужно пробовать — могут быть варианты. Нужно будет или ковырять настройки LPT в биосе или искать спец драйвер под 8.
Вопрос, будет ли этот программатор совместно с программой UniProf работать под ОС Windows 8?
Все GND (блока питания, микроконтроллера, порта) нужно соединять вместе. В готовом устройстве GND как и в любом другом устройстве — это минус питания.
Доброго времени суток.
Паяю свой первый программатор для LPT порта компьютера по Вашей инструкции.
В качестве источника питания компьютерный БП AT. Красный провод +5, черный GND.
С порта LPT тоже приходит GND.
На МК Atmega16 11 ножка — GND.
В общем, нужно ли их соединять друг с другом?
Подавать GND с БП напрямую на микроконтроллер… какое-то смутное сомнение….
И что подключать к ножке GND микроконтроллера в готовом устройстве?
http://www.getchip.net/posts/027-uniprof-programmiruem-avr-cherez-lpt-port/#comment-6510
спасибо! проверил прогой Юнипроф и странные результаты получил.( микруха не подключена, только лпт.) Взял светодиод на 3, 3 в, последовательно 150Ом. втыкал поочереди мисо, моси, резет, сцк и тестил(все по инструкции)…когда в мисо светодиод просто горит…во всех остальных ноль реакции, когда нажимаю тест. В мисо появился после теста мисо=0. Я так и не понял что это значит…
4,3В — это нормально. Попробуйте подергать ногами LPT (Юнипроф это умеет http://www.getchip.net/posts/027-uniprof-programmiruem-avr-cherez-lpt-port/) если LPT отзывается — значит все нормально. Попробуйте прошить микроконтроллер, запитав его от внешнего источника питания, например, от батареек (4.5В будет вполне достаточно).
Здравствуйте!Помогите, пожалуйста! Собрал программатор и у меня почему-то на 10 выводе(MISO) lpt 4,3В. Соответственно на проводе питания, не подключая к питанию компа — 3,2В. Попробовал подсоединить к блоку питания компа, напряжения тогда вообще пропадает…
вот блин, нигде печатку прогроматора с буферными элементами, стандартным 10 пиновым разъёмом и с ТН компонентами найти не могу…
Помогите плиз!
@GetChiper
Попробовал, в начале спаял на стандартных пинах тест LPT-портов не проходит, реакции либо нет, либо она не такая как должна быть, 9-го пина вообще в тестах нет и как его тестировать не понятно (наверно я что-то не допонял).
Потестил 14-17 пины, работает как положено, в двух пинах выставил инверсию. Спаял — заработало, первый МК прошит 🙂
Возможно это особенность LPT моего ноутбука Dell, но в целом может кому пригодится эта информация…
Еще раз спасибо за подробнейшую статью с полезными картинками!
Нужно пробовать.
Здравствуйте!
Спасибо за подробную статью с картинками!
А на ноутбуке этот программатор тоже должен работать или есть тонкости?
Заранее спасибо!
Учту. решил потратить 100 рублей и заказать на ибэй но лпт прогроматор всёжэ соберу адо будет только на выходных за разъёмчиком зайти
Не советую делать такую платку — оно себя не оправдывает (разве что при единичных программированиях). При наладке устройства его приходится препрошивать по сотне раз — это же замучаешься дергать МК из панельки.
@78L05
расстование со сгоревшими компонентами дорожэ 100 рублей- очень уж долая процедура
это я учту, а по распиновке косяков нету?
З.Ы. Штырьки наверно вовсе уберу, так как проще на отдельной макетке панельку со штырьками сделать
И сново обычная рубрика:»вотт ссылочка» http://narod.ru/disk/62251789001.56024b4889561ec8d2a9f14a2d8174fc/1.lay.html
И хочу сказать огромное спасибо Евгению (GetChiper) за то , что указал на косяки, помог и объяснил
(После сборки могу напсать статейку, кинуть фоточки на мыло(Ну если очень хочется))
Штырьки, те что слева от панельки, нужно немного отсунуть от панельки.
ой простите мой косяк : вотт ссылочка http://narod.ru/disk/62225765001.d8f4c1a38e19ccee945bc389c102be5f/1.lay.html
обновлённую версию можно скеачать по той жэ ссылке
Улутшения:
1. Добавлены штырьки
2. разьём питания выведен отдельно
P.S. и снова прошу: проверьте схему на наличие ошибок особое внимание уделите проверки распиновке програматора данная плата является совмещением лпт програматора и отладочной платы для тиньки 2313
для програмирования тиньки: всунул и запрогромировал, потом всунул в устройство подал питание и вуаля!
сделано для того чтобы с проводами не возится-одной платой по мне как-то лутше
щас буду доробатывать- понял что питаньку будет не удобно подовать, сделаю-ссыльку кину
Чего-то я не очень понял назначения платы.
если схема правильная то выскажите свои пожэлания по модернизации
после сборки отпишусь
проверьте плату програматора на наличие косяков пожайлуйсто вот ссылочка http://narod.ru/disk/62169353001.e10257fd2956e32bda45104c117ed8f7/1.lay.html
Win 7, а тем более x64 довольно проблемная в плане работы старых драйверов. Даже не знаю что еще попробовать. По крайней мере нужно попробовать на другом компе с ХР-хой.
Не получается…
Сначала оказалось что Win 7 x64 не дружит с ЛПТ.
Поставил виртуальную Хр.
Но работать не стало, МК не определяется.
Пробую прошить новый atmega8.
Шлейф очень короткий, в ЛПТ Пинс выставил всё как по схеме.
Питание на МК подаю с БП компьютера.
В биосе 387h порт и ECР.
Что ещё попробовать не знаю.
RSTDISBL трогать нельзя — он должен оставаться таким какой он есть с завода. Теперь поможет только параллельный программатор.
«Можно конечно и заменить тиню, ни жалко(((»
Я описался, хотел написать «НО жалко»
У меня возникла проблема:
Как мне сказал админ одного сайта, на котором я обитаю (на буду рекламить): «чтобы использовать у ATTiny13A-SU 1 ногу как вход надо снять фьюз RSTDISBL».
Я так и сделал. Прога заработала, но после перезапуска программатор перестал определять тиньку.
Что мне делать? Есть возможность её оживить?
Можно конечно и заменить тиню, ни жалко(((
Сдох!
Да. Мне сказали что МК(ATmega8) должна потреблять на холосте до 6мА, а у меня 531мА.
Да, значит рабочий.
А соответствие выводов LPT-порта сигналам программирования выставлено (как на картинке в начале статьи)?
Я протестировал, при измене вывода напряжение меняется. Это значит что LPT рабочий?
Кнопка «LPT pins» позволяет как назначать любые линии порта для программатора так и вручную их переключать/тестировать (тестером можно проверять результат переключения).
Порт в биосе: Normal
Как в унипрофе проверять?
Сам порт работает? В унипрофе можно проверить работоспособность каждого пина порта.
Я собрал данный программатор но он не работает!!!
Схему проверял — все верно, но почемуто его не видит ни одна программа!!!
Это точно. Масса всегда общая.А пока у нас массой назначен минус питания.Хотя это необязательно.Но в данном случае старайтесь придерживаться именно этого соглашения.
Тоесть при программировании соединять GND LPT порта с GND ATtiny2313 и еще сюда присоединять минус батарейки питания?