LPT программатор для AVR / Хабр
Если вы задумали собрать какое-нибудь устройство на AVR микроконтроллерах Atmel (да хоть свою homemade Arduino), Вам просто не обойтись без программатора. Программатор позволит прошить микроконтроллер нужной программой или, в случае с Arduino, записать в память микроконтроллера подходящий bootloader.Вообще-говоря, существует превеликое множество программаторов, различающихся сложностью сборки, скоростью прошивки и надежностью работы. Самым простым из них является вариант, называемый в народе «Пять проводков». Но надежность его оставляет желать лучшего, так как убить им LPT порт легче легкого=) Более надежным является программатор STK200, который содержит буферную микросхему и гарантирует нормальную работу с портом.
Но из-за наличия микросхемы он становится гораздо сложнее в изготовлении для начинающего (то есть для меня).
Как с этим бороться?
Для защиты от замыканий добавляем резисторы по 150 Ом, для совместимости с STK200 (это позволит работать с большинством прошивающих программ) соединим выводы 2 с 12 и 3 с 11 в LPT. Как видите, схема совсем не усложнилась и в то же время появилась дополнительная защита.
Начинаем сборку!
На LPT разъеме типа папа (его можно взять от древнего кабеля к принтеру) необходимо соединить ножки от 18 до 25 — это выходы земли. Для защиты от статики между землей и корпусом LPT-разъема можно дополнительно впаять резистор на 1 КОм.
Затем нужно соединить выход 3 с выходом 11 и выход 2 с выходом 12 (отличительный признак STK200)
К ножкам 6, 7, 9, 10 припаиваются резисторы номиналом от 100 до 150 Ом. Это будут наши 4 сигнальных выхода.
Шлейф можно взять от IDE, длину лучше выбирать без фанатизма, сантиметров 20-30 должно хватить=) Чем короче, тем надежнее в итоге будет программатор. Хорошим тоном будет чередовать каждый сигнальный провод с землей (как это сделано, к примеру, в том же IDE шлейфе) для защиты от возможных помех.
Разъемы для внутрисхемного программирования…
Вот здесь можно дать фантазии разгуляться=) Можно отколоть группу 2×3 от IDE шлейфа, можно воспользоваться разъемы BLS типа «мама» (ими подключается передняя панель корпуса к материнской плате). Я отрезал две полоски по 3 пина от 40-пиновой линейки. Получилось не хуже=)
После спайки всего этого добра закрываем LPT-разъем и любуемся на творение рук своих.
LPT программатор для AVR
Вот схема самого простого, и в тоже время 100% рабочего программатора для AVR микроконтроллеров. Эта схема определяется софтом как ATMEL “STK200/STK300” Что позволяет использовать его совместно с софтом, поддерживающим данный вид программатора, например CodeVisionAVR, Pony-Prog или AVReal.
Схема программатора.
Вниамние! Если программируемый МК будет питаться внешним источником питания то объязательно надо соеденить минус компьютера (25 ножка LPT порта) с минусом микроконтроллера.
Этот программатор проверен лично мною с CodeVisionAVR.
Вот более сложный программатор для программирования AVR микроконтроллеров, фирмы ATMEL. В нём применена микросхема — буфер, для защиты прота микроконтроллера от повреждений. Данный адаптер аналогично подключается к LPT порту компьютера.
Технические характеристики программатора :
Подключение к порту : LPT
Потребляемый ток : 10 мА
Схема программатора :
Вниамние! Если программируемый МК будет питаться внешним источником питания то объязательно надо соеденить минус компьютера (25 ножка LPT порта) с минусом микроконтроллера.
Программатор и МК питаются от ПК, тем самым обеспечивается стабильное питание программатора и программируемого МК. Длина соединительных кабелей не должна превышать 20 см. Устройство собрано на микросхеме буфера U1 SN74HC244 которая сейчас достаточно легкодоступна. Программатор подключается к выводам MOSI, MISO, XTAL1, RESET, SCK, VCC, GND программируемого МК. Правильно собранному адаптеру не требуется настройка.
Для прошивки микроконтроллера данным адаптером, нужно использовать софт совместимый с программатором ATMEL “STK200/STK300” , например Pony-Prog или AVReal. Но мы используем программатор, который встроен в CodeVisionAVR. Ну что ж, от слов к делу…
Для начала вам нужен сам CodeVisionAVR. Думаю с установкой и запуском проблем возникнуть не должно…
И так. Запускаем CodeVision потом переходим в меню Settings > Programmer в появившемся окошке выбираем программатор Kanda Systems STK200+/300 и номер LPT порта. Обычно это LPT1: 378h .
Потом идём в Tools > Chip Programmer В появившемся окошке перейдите в меню File > Load FLASH . Выберите тип файла Intel HEX files (*.hex) потом укажите путь к файлу прошивки.
Если в устройстве вы хотите использовать внешний кварцевый резонатор то вам придется запрограммировать фьюз. Например если вам нужен кварц от 3 до 8 мГц, то фьюзы должны быть запрограммированы вот так:
Для того чтобы прошить МК и фьюзы, надо нажать на кнопку Program ALL.
Просмотров: 9792
LPT ПРОГРАММАТОР AVR
Для начала работы с микроконтроллерами AVR, необходимо обзавестись средствами внутрисхемного программирования. На начальном этапе вполне подойдет несложный адаптер STK 200/300. В приведенной схеме присутствуют перемычки для определения наличия как адаптера STK200 (выводы 2-12 разъема X1), так и STK300 (выводы 3-11). Для изготовления адаптера потребуется разъем DB25М с пластиковым корпусом, десятижильный плоский кабель, разъем IDC-10, стеклотекстолит и детали. Принципиальная схема LPT программатора AVR показана на рисунке.
Детали устройства монтируются на односторонней печатной плате, которая изготавливается по ЛУТ технологии. После монтажа планарных элементов можно припаивать микросхему 74HC244. С помощью многожильного или одножильного монтажного провода небольшого сечения припаиваем перемычки в соответствии со схемой AVR программатора.
Завершив распайку всех перемычек припаиваем десятижильный плоский кабель. Далее кабель складывается поперек за корпусом микросхемы и подготавливаются проводники, которые должны быть подключены к общему проводу. Подготовка сводится к подгонке длины этих проводников таким образом что бы их можно было припаять к корпусу разъема. После чего они зачищаются, скручиваются, лудятся и припаиваются в одной точке к корпусу, что позволяет отказаться от дополнительного крепления кабеля внутри корпуса.
Собираем корпус разъема и все — адаптер для внутрисхемного программирования готов. Что получилось — показано на рисунке. Можно проводить испытания. Подключаем к макетной плате с установленным микроконтроллером, запускаем программу для внутрисхемной прошивки с поддержкой STK200/300 (например CodeVisionAVR Programmer) и начинаем работу с МК. А тут архив с рисунком печатной платы программатора.
Не смотря на то, что длина кабеля не должна быть более полуметра, для обеспечения надежной работы адаптера, иногда использовали адаптер даже с двух метровым кабелем без всяких проблем. Надеюсь данная схема окажется полезной для тех, кто решится начать свою работу с микроконтроллерами AVR со сборки адаптера STK200/300.
Форум по LPT программаторам
Делаем LPT программатор для AVR микроконтроллеров. Начинающим › Простой программатор для параллельного порта (LPT)
Довольно часто многие встречают на просторах интернета интересную конструкцию но сдерживает одно — она выполнена с применением контроллера. А это так сложно…
На самом деле всё намного проще. Если есть возможность приобрести контроллер, пол дела уже сделано. Останется «отутюжить» плату, протравить и запаять её деталями.. И вот доходит дело до контроллера. Как же его «оживить»? Как «прошить»? Начинаются мучительные поиски схемы и программы программатора. Схема найдена, но вот незадача — на задней стенке компьютера аж 8 разъемов USB, порт для принтера и ни одного порта СОМ для которого была найдена схема.
Есть и другой вариант развития событий. СОМ порт в компьютере есть. Но программатор почему то отказывается «шить» контроллер — постоянно выскакивает ошибка. А дело в том, что часто на современных материнских платах (и особенно в ноутбуках) СОМ порты делаются очень слабыми по току. Из-за этого процесс программирования заканчивается не начавшись. Во всех вышеприведенных случаях Вам поможет эта несложная схема.
Это программатор для порта LPT. При всей кажущейся сложности схема довольно проста и начинает работать сразу, не требуя никакой настройки. Детали доступные и стоят буквально копейки. Зато возможности… Этим устройством Вам без труда можно будет прошить контроллер не только в панельке, но и внутрисхемно (это касается устройств у которых плата разведена под SMD корпус контроллера, а покупать панельку за 20 долларов под него ну никак не хочется).
Собранная она выглядит вот так:
Этот программатор с мелкими отличиями кочует по интернету уже лет 20. Он известен как Clasic Tait Programer, ProPIC2, meProg. До сих пор выпускается некоторыми фирмами и успешно продается.
Последние версии программного обеспечения можно скачать отсюда:
- http://www.
- http://melabs.com/support/progsoft.htm
- http://members.aon.at/electronics/pic/picpgm/
Вот настройки для WinPIC800:
А вот адаптер для прошивки 8-14-18-20 выводных контроллеров.
C этой схемой также часто просматривают: |
Перед начинающими вопрос “а чем мы будем прошивать свой контроллер?” встает практически сразу. Эта проблема решается двумя путями – покупаем серийный программатор или собираем свой собственный. Естественно нецелесообразно приобретать какой либо из серийных программаторов на начальном этапе знакомства с микроконтроллерами. Самым простым решением будет так называемый программатор «пять проводков». Это вариант вполне подойдет для разового применения, но существует большая опасность, что рано или поздно ваш LPT- порт в компьютере сгорит. В качестве бюджетного и безопасного варианта программатора для параллельного порта мы используем более совершенную схему.
Представляем простой и безопасный программатор для параллельного порта. Схема программатора достаточно распространена в различных вариациях и основана на использовании микросхемы-буфера 74HC244N. Буфер сохраняет ваш порт принтера в целости и сохранности. Дополнительно в схему включен резистор, задачей которого является защита от статического электричества.
Программатор совместим с Атмеловскими STK200/300 и поддерживается многими популярными компиляторами. Весь небольшой набор деталей для его сборки достаточно распространен и не вызовет трудностей с приобретением. Печатная плата выполнена в одностороннем варианте с несколькими перемычками.
Для подключения программатора к компьютеру удобно использовать кабель – удлинитель LPT-порта.
Правильно собранный программатор в настройке не нуждается.
Первым шагом по освоению микроконтроллера для каждого наверняка является сборка программатора. Купить программатор тоже можно, но за совсем неразумные деньги, как по мне.
Ее повторение не займет более часа, но гарантирует целостность вашего LPT порта и совместную работу с Pony Prog 2000 . Микросхема – буфер. Резистор R1 – 100k, конденсатор C1 – 0.1мкФ. Диод D1 – любой кремниевый. LPT разъем типа «папа». Теперь разберемся с ISP разъемом, который будет использоваться для программирования. Выводы MISO , MOSI , SCK , RESET – управляющие, вывод LED – к нему подключается светодиод, который сигнализирует чтение/запись прошивки в микроконтроллер, VDD и GND соответственно +5В и земля.
Для подсоединения микроконтроллера удобно использовать шлейф на 10 проводов и соответствующий IDC , но это дело вкуса и каждый сам решает, как ему нравиться, главное не делать его слишком длинным, во избежание наводок. У меня получилось вот так:
Для тех, у кого по тем или иным причинам нету LPT порта и лень бегать к соседу зашить прошивку могу посоветовать толковый USB программатор (сайт проекта prottoss.com). Достаточно просто повторить схему и правильно прошить управляющий контроллер (для этого, как ни крути понадобиться LPT или COM порт). Вот такой USB программатор собрал себе:
Перейдем к программной части. В начале говорилось, что программировать мы будет с помощью Pony Prog 2000 .
Первое включение и калибровка:
При первом использовании программатора не забываем корректно его настроить: Setup->Interface setup, в появившемся окне выбирай LPT порт, к которому подключен программатор, выбираем AVR ISP API в выпадающем списке, а флажки Polarity of control lines не трогаем, оставляем пустыми. Далее калибруем все это дело Setup->Calibration. Все, теперь мы можем с помощью нашей макетной платы программировать AVR»ки.
Выбор среды для написания программ:
Теперь осталось выбрать, в какой среде писать программы и на каком языке. Рекомендую писать на С, если не критичен размер и скорость выполнения программы.
Его освоение намного легче ассемблера, но знание ассемблера незаменимо для написания коротких и быстрых программ, понимания работы микроконтроллера. Я пишу свои программы в связке бесплатных программ и и очень доволен результатом, но здесь на вкус и цвет товарищей нет, выбор за вами.
Почти успех =) => =(
Спаял вроде все как на схеме)
Тоесть не вроде а так и есть)
Только вместо D1 поставил ИК диод незнаю скажется ли как то другово под рукой не было)
Первая проблема когда пытался прошить с настройкой AVR ISP API (LPT2 другово немог выбрать)
выбивало 16 ошибку, типа нет порта
После того как поменял настройки на AVR ISP I/O LPT1 выбило ошибку -24 типа я незнаком с вашим девайсом)
И пытается прошивать. . . пока без результатно(((
подскажите в чем проблема?
Слышал вроже нужно менять какие то настройке в биос?
так вот какие?7?
поздравьте с приобретением!
купил нечто миниатюрное, на usb, без корпуса и без всяких bells&whistles, в инструкции сказано что это аналог stk500, может определяться как avr910, но у меня определился как avr doper.
пока никуда не подключал — при попытке чтения фьюзов программа пишет programmer is not responding.
подозреваю, что так и должно быть.
теперь собственно вопрос. на самой плате есть разъемы на 6 и на 10 штырьков, но кабель — только на 10. для прошивки микроконтроллера мне надо только ножки к штырькам mosi, vcc, rst, miso и ground подключить? остальные могут пины микроконтроллера могут висеть свободными?
Для программирования МК
Для программирования МК требуется подключить к программатору MOSI, MISO, SCK, RESET и подать питание. Остальные можно не трогать. Смотри доку на программатор, какие из тех пинов нужно вывести.
тыкс
он отказывался у меня работать как avr910, как stk500, как stk500v1, зато прочитал фьюзы как stk2, и прошил флешку за пару секунд. попробую дособирать свой дивайс и запустить его))
микруха прошита!
первый раз, первый программатор, боюсь что-либо спалить)
Доброго времени суток всем!
Подскажите пожалуйста, а Выводы MISO, MOSI, SCK, RESET – управляющие, нужно напрямую подсоединять к МК или как здесь
Я имею ввиду через резисторы выводы MISO, MOSI, SCK, RESET подтягивать к питанию и земле надо?
Дело в том, что у меня мега16, там вывод RESET инверсный, сброс по нулю будет по идее, мне R3 на землю бросить?
Спасибо если кто откликнется!
p. s. Диплом с МК попался, а я не шарю:) Хочу разобраться, но тонкостей очень много…
Одним из самых простых программаторов AVR является программатор для LPT порта. Это обусловлено тем, что уровни сигналов LPT порта совместимы с уровнями сигналов необходимыми для программирования АВР. Поэтому сигналы с LPT порта можно напрямую подать на микроконтроллер (резисторы нужны лиш для защиты порта от случайных замыканий). Такой программатор можно собрать из подручных материалов буквально за 5 минут!
Как Вы видите схема LPT программатора для AVR предельно проста:
Для изготовления LPT программатора нам понадобится:
Резисторы можно использовать любые, какие найдете в пределах от 100 до 150 Ом. Можно программатор собрать вообще без резисторов, но тогда спалить порт станет еще легче. В качестве шлейфа можно заюзать IDE шлейф. При подключении шлейфа, для более устойчивой работы программатора, каждый «сигнальный» провод должен чередоваться с «земляным» проводом. Это позволит уменьшить уровень помех наводимых в линиях и за счет этого увеличить длину программирующего провода. Длина шлейфа должна быть в пределах 50 см. Еще нужен разъем для подключения к программируемому устройству.
Для внутрисхемного программирования Atmel рекомендует стандартные разъемы:
Если Вы планируете серьезно заняться микроконтроллерами, сделайте разъемы стандартными. Для разового программирования устройства я рекомендую использовать на программаторе (такими разъемами к материнской плате подключаются кнопки и светодиоды корпуса компьютера) и штырьки PLS «папы» на плате. Это позволяет максимально упростить разводку платы устройства, так как штырьки для программатора устанавливаются в непосредственной близости возле ножек микроконтроллера. Ножки MOSI, MISO, SCK у микроконтроллеров AVR всегда расположены вместе, поэтому для них можно применить строенный разъем. Отдельно делаем подключение для «земли»-GND и «сброса»-Reset.
Сборка LPT программатора за 5 шагов:
Перемычки между ножками разъема 2-12 и 3-11 нужны для того, чтобы наш программатор был виден для программ как программатор STK200/300 (STK200/300 своего рода стандарт и поэтому наш программатор станет виден для многих программами).
Для того чтобы наш LPT программатор заработал нужна , к которой мы подключим программатор и для микроконтроллера.
Общие рекомендации:
— LPT порт довольно нежен — его очень легко «пальнуть», поэтому при работе с портом будьте аккуратны.
— Отдельное подключение для «земли» я бы рекомендовал делать во всех программаторах. Это нужно для того, чтобы «землю» можно было подключить первой и уравнять потенциалы «земли» программируемого устройства и компьютера. (Для тех кто не знает — если у Вас компьютер включен в обычную розетку без заземляющего контакта, то в виду особенности фильтра блока питания компьютера, на корпусе компьютера всегда присутствует потенциал в 110В. При «удачном» подключении программатора этого вполне достаточно для того чтобы сжечь микроконтроллер или LPT порт компьютера.
Заключение:
-Если Вы надумали собрать свой первый программатор и у Вашего компьютера есть LPT порт, то программатор «5 проводков» лучший вариант! Он предельно прост и его повторить не составит труда. Кроме того, программатор совместим с классическими программаторами STK200/300, а значит, он будет поддерживаться многими программами для программирования AVR.
-Если Вы планируете программировать довольно часто, с целью обезопасить LPT порт, рекомендую собрать LPT программатор с буферными элементами (неплохой вариант LPT программатора можно посмотреть на изиэлектроникс) или собрать такой же простой (COM порт гораздо выносливей и сжечь его трудней).
(Visited 62 411 times, 6 visits today)
Схема lpt программатора для аркадии. Делаем LPT программатор для AVR микроконтроллеров. Для изготовления LPT программатора нам понадобится
Самый простой вариант программатора для AVR это пять проводков, припаиваемых к порту контроллера и втыкаемых в LPT порт. Не спорю, можно и так. Но я все же не рекомендую этот способ. Даже схему подключения давать не буду — если надо будет сам найдешь. Так как данный метод не очень стабилен, возможны сбои при прошивке , длина проводков ограничена двадцатью сантиметрами (если больше, то будет глючить), поэтому придется шариться в комповой заднице. Да и LPT порт спалить проще простого . В общем не рулез.
Шарясь по инету, я нашел отличный программатор, работающий через RS232 он же COM порт. А также удобную программу для прошивки контроллера UniProf от Николаева. Схему программатора придумал Громов, создатель Algorithm Builder.
Для сборки программатора потребуется:
- Три диода, любых из маломощных. Например 1N4148.
- Семь резисторов на 1кОм. У меня резисторы типоразмера 1206
- Если будешь делать по моей печатной плате, то можешь еще купить 3 резистора на 0 ом — перемычки, они же пофигисторы.
Печатная плата либо рисуется маркером, либо, как у меня, делается методом лазерного утюга.
Разьем DB9, что на фотке, я поставил для удобства. У меня туда подключаются разные прошивающие шнуры либо вот такой вот адаптер:
Программатор запаян, контроллер к нему подключен. Пора убедиться в том, что все сделано верно.
Запускай UniProf.exe и выбирай номер СОМ порта к которому у тебя подключен программатор. Сразу же должен определиться тип контроллера и высветиться над левым окном кода.
Не получилось? Тут три варианта:
- Программатор спаян криво.
- Дохлый контроллер.
- Неправильно припаял проводки к микроконтроллеру.
Еще раз все досконально проверяешь и пробуешь снова. Должно получиться.
Дальше, если до этого ты никогда не работал с контроллерами, тебе возможно потребуется тестовая программа. Она не будет делать ничего полезного, зато позволит тебе точно быть уверенным, что все что ты сделал до этого ты сделал правильно.
Скачиваешь Atmel AVR Studio — это официальная среда для разработки программ под микроконтроллеры AVR . Студия поддерживает все микроконтроллеры семейства Atmel AVR . Найти ее последнюю версию можно на сайте Atmel.com
Далее создавай новый проект, в качестве языка программирования выбирай Assembler и укажи папку и имя где будет располагаться твой проект. В качестве отладчика бери AVR SIMULATOR и укажи с каким именно контроллером ты будешь работать. После чего забивай в текстстовое окно простейшую программу.
Вот ее примерный текст:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | .INCLUDE «m16def.inc» ; это подключается список макроопределений; без него компилятор не будет знать под какой; именно процессор мы собираем программу; если у тебя другой контроллер, то подставь; соответствующий инклюдник. Они находятся в; папке AVR Studio по адресу; «AVR Tools\AvrAssembler\Appnotes\» .MACRO outi LDI R16,@1 OUT @0,R16 .ENDMACRO ; задаем весьма удобный макрос, позволяющий; записать произвольное заданное число в любой; регистров за одну строку кода. .CSEG .ORG 0x0000 RJMP RESET .ORG 0x0030 ; Директива начала кода с адреса 0х0030 ; адрес взят с большим запасом, потому как; у разных AVR разных размеров таблица; прерываний. Так что уж чтобы наверняка! RESET: ; стартовая метка OUTI DDRA,0xFF OUTI DDRB,0xFF OUTI DDRC,0xFF OUTI DDRD,0xFF ; Конфигурируем направления портов на выход; Если данный контроллер не имет, например, порта; С, то эту строчку надо закомментировать. OUTI PORTA,0xAA OUTI PORTB,0xAA OUTI PORTC,0xAA OUTI PORTD,0xAA ; Выдаем на выходы 10101010, чтобы получить; четкую картину того, что на портах произошли; изменения. После выполнения программы; на выходах микроконтроллера в шахматном порядке; будут либо напряжение питания, либо земля. Что; легко проверяется либо вольтметром, либо простейшим; пробником на светодиоде. RJMP RESET ; Зацикливаем программу. |
INCLUDE «m16def.inc» ; это подключается список макроопределений; без него компилятор не будет знать под какой; именно процессор мы собираем программу; если у тебя другой контроллер, то подставь; соответствующий инклюдник. Они находятся в; папке AVR Studio по адресу; «AVR Tools\AvrAssembler\Appnotes\» .MACRO outi LDI R16,@1 OUT @0,R16 . ENDMACRO ; задаем весьма удобный макрос, позволяющий; записать произвольное заданное число в любой; регистров за одну строку кода. .CSEG .ORG 0x0000 RJMP RESET .ORG 0x0030 ; Директива начала кода с адреса 0х0030 ; адрес взят с большим запасом, потому как; у разных AVR разных размеров таблица; прерываний. Так что уж чтобы наверняка! RESET: ; стартовая метка OUTI DDRA,0xFF OUTI DDRB,0xFF OUTI DDRC,0xFF OUTI DDRD,0xFF ; Конфигурируем направления портов на выход; Если данный контроллер не имет, например, порта; С, то эту строчку надо закомментировать. OUTI PORTA,0xAA OUTI PORTB,0xAA OUTI PORTC,0xAA OUTI PORTD,0xAA ; Выдаем на выходы 10101010, чтобы получить; четкую картину того, что на портах произошли; изменения. После выполнения программы; на выходах микроконтроллера в шахматном порядке; будут либо напряжение питания, либо земля. Что; легко проверяется либо вольтметром, либо простейшим; пробником на светодиоде. RJMP RESET ; Зацикливаем программу.
Далее жми на кнопку компиляции (или F7 ) и лезь в папку своего проекта. Там тебя уже должен поджидать ****.hex файл с прошивкой.
Запускай UniProf.exe , жми на кнопочку с открытой папкой и надписью HEX . Выбирай свой свежескомпиленный проект и жми ок.
Вторым окном UniProf попросит тебя ввести данные EEPROM , у нас EEPROM не используется, поэтому нажимай отмену .
Все, теперь можно прошивать. Жми на красную стрелку с надписью Prog и жди. По окончании можешь нажать чтение и поглядеть что записалось в твой контроллер — должно показать то же самое, что и было уже загружено в окно.
Теперь тебе остается подать питание на свой микроконтроллер и посмотреть что появилось на портах. Увидел «гребенку» из высоких и низких уровней напряжения? Отлично! Ты прошил свой первый в жизни контроллер! Теперь ты можешь с головой занырнуть в изучение микроконтроллеров AVR.
Если не заработало, то вот возможные грабли и пути решения.
- Современные компьютеры, с гигагерцовыми процессорами, новомодными Вистами и Семерками очень плохо дружат с этим программатором. Мало того, что у вас может банально не обнаружиться COM порта, а если и будет так еще не факт что все заработает как надо. Рекомендую собрать себе для радиотехнических опытов из подручного хлама что то вроде PIII 800/Windows’98. Бесплатно нарыть такое чудо проблем не составит и сжечь не жалко, если что не так
- Данная схема не работает через переходники USB-COM или работает, но ОЧЕНЬ медленно. Скажем прошивка одного микроконтроллера может длиться часа полтора.
- Питание, на первый раз, лучше всего брать с блока компа . Меньше вероятность что либо сжечь или ошибиться
- Проверяте схему по 3-4 раза! Т.к., судя по комментам, большая часть проблем из-за кривого монтажа.
- Перед запуском программы в МК НУЖНО ОТКЛЮЧИТЬ ПРОГРАММАТОР и подать на вход RESET +5 вольт через резистор в 1..10кОм. С подключенным программатором ничего работать не будет, т.к. он прижимает RESET и не дает кристаллу стартовать.
- Если UniProf не определяет МК, возможно у вас слишком быстрый компьютер. Для компенсации этого «недостатка» нужно включить галочку «Тормоз» Она показывается если отключить снятием галки EEPROM панель отображения данных EEPROM.
- Если галка Тормоз не помогла, то пробуйте на другом компе. Т.к. тут СОМ порт обрабатывается в нештатном режиме, а значит не факт, что ваш СОМ порт поймет все правильно.
- На худой конец, если ничего не помогает, попробуйте программатор из 5 проводков или другую прошивающую программу, например avrdude. Провода делайте как можно короче! 10-15 сантиметров это МАКСИМУМ!
- Читайте комменты к записи . Там многие косяки уже были разобраны. Возможно и ваш окажется среди них.
Дополнение от Outsider :
1. Если сзади у компа нет разъема COM-порта, то это не на 100% означает, что такого порта нет на материнской плате в принципе. Пока еще на матерях встречаются разъемчики с 9 штырьками в два ряда — подробнее нужно смотреть документацию к материнской плате. Я на своей ASUS P5K SE нашел и успешно заюзал.
2. Да, +5 и GND это не земля и контакт из COM-порта, а именно внешнее питание. Проще всего его добыть в компе — +5 есть в красном проводе на любом из разъемов, питающих жесткие диски. А GND — на корпусе самого компа. Или на черном проводе того же разъема.
3. Если с UniProf что-то не срастается, то можно попробовать avrdude. Чтобы это сделать, нужно прописать в avrdude.conf следующее:
programmer
id = «nikolaew»;
desc = «serial port banging, reset=dtr sck=rts mosi=txd miso=cts»;
type = serbb;
reset = 4;
sck = 7;
mosi = 3;
miso = 8;
;
А затем запустить avrdude со следующими параметрами:
avrdude -n -c nikolaew -P com1 -p m16
Если все в порядке, то программа скажет:
avrdude: AVR device initialized and ready to accept instructions
Дополнение от Riko
Эксприменатально было выяснено, что для правильной работы этого программатора напряжение питания МК должно быть не ниже 5 вольт (но не выше 5. 5!!!). То есть если МК подключен к трем пальчиковым батарейкам, то вы обламываетесь, так как там 4.5 вольта! Запитывайте от компа!!!
Дополнение от SLY_DEr
Не работало. Сменил резисторы с 3к (не было на 1к) на 460ом’ные — заработало, но с ошибками.
Решил чисто ради спортивного интереса снизить скорость ком-порта в диспечере устроиств и о, чудо, все заработало как надо. Скорость порта снизил с 9600к до 4800к и плюс убавил буфер приема и передачи (там же) до значений 4 и 6 соответственно.
Если что непонятно, то не стесняйся спрашивать у меня в комментах.
З.Ы.
Если не получается ну никак, то может быть ваша материнска плата не поддерживает столь нестандартное обращение с COM портом и стоит попробовать другие программаторы? Например, или . Они хоть и сложней, но зато работают более корректно, без извратов.
Вот схема самого простого, и в тоже время 100% рабочего программатора для AVR микроконтроллеров. Эта схема определяется софтом как ATMEL “STK200/STK300” Что позволяет использовать его совместно с софтом, поддерживающим данный вид программатора, например CodeVisionAVR, Pony-Prog или AVReal.
Схема программатора.
Этот программатор проверен лично мною с CodeVisionAVR.
Вот более сложный программатор для программирования AVR микроконтроллеров, фирмы ATMEL. В нём применена микросхема — буфер, для защиты прота микроконтроллера от повреждений. Данный адаптер аналогично подключается к LPT порту компьютера.
Технические характеристики программатора:
Подключение к порту: LPT
Напряжение питания: 5 В
Потребляемый ток: 10 мА
Схема программатора:
Вниамние! Если программируемый МК будет питаться внешним источником питания то объязательно надо соеденить минус компьютера (25 ножка LPT порта) с минусом микроконтроллера.
Программатор и МК питаются от ПК, тем самым обеспечивается стабильное питание программатора и программируемого МК. Длина соединительных кабелей не должна превышать 20 см. Устройство собрано на микросхеме буфера U1 SN74HC244 которая сейчас достаточно легкодоступна. Программатор подключается к выводам MOSI, MISO, XTAL1, RESET, SCK, VCC, GND программируемого МК. Правильно собранному адаптеру не требуется настройка.
Прошивка микроконтроллера.
Для прошивки микроконтроллера данным адаптером, нужно использовать софт совместимый с программатором ATMEL “STK200/STK300” , например Pony-Prog или AVReal. Но мы используем программатор, который встроен в CodeVisionAVR. Ну что ж, от слов к делу…
Для начала вам нужен сам CodeVisionAVR. Думаю с установкой и запуском проблем возникнуть не должно…
И так. Запускаем CodeVision потом переходим в меню Settings > Programmer в появившемся окошке выбираем программатор Kanda Systems STK200+/300 и номер LPT порта. Обычно это LPT1: 378h .
Потом идём в Tools > Chip Programmer В появившемся окошке перейдите в меню File > Load FLASH . Выберите тип файла Intel HEX files (*.hex) потом укажите путь к файлу прошивки.
Если в устройстве вы хотите использовать внешний кварцевый резонатор то вам придется запрограммировать фьюз. Например если вам нужен кварц от 3 до 8 мГц, то фьюзы должны быть запрограммированы вот так:
Для того чтобы прошить МК и фьюзы, надо нажать на кнопку Program ALL.
26.04.2014
sPlan — удобный инструмент для черчения электронных схем. Имеет простой и интуитивно понятный интерфейс. В программе заложены…
Очень удобная программа для чтения pdf Foxit Reader
26.04.2014
Foxit Reader — Компактная и шустрая программа для чтения PDF файлов. Может служить альтернативой для популярного просмотрщика PDF — Adobe Reader….
22.04.2014
Proteus VSM — программа-симулятор микроконтроллерных устройств. Поддерживает МК: PIC, 8051, AVR, HC11, ARM7/LPC2000 и другие распространенные процессоры….
01.04.2014
Проект сайт который долгое время находился в застывшем состоянии снова принимается за работу с новымы силами, с новыми статьями и с…
Proteus 7.7 SP2 + Crack v1.0.2 + RUS
22.04.2014
Proteus VSM — программа-симулятор микроконтроллерных устройств. Поддерживает МК: PIC, 8051, AVR, HC11, ARM7/LPC2000 и другие распространенные процессоры….
Splan 7.0.0.9 Rus + Portable + Viewer Fiinal
26. 04.2014
sPlan — удобный инструмент для черчения электронных схем. Имеет простой и интуитивно понятный интерфейс. В программе заложены…
Цифровая паяльная станция своими руками (ATmega8, C)
27.05.2012
Состав: ATmega8, LM358, IRFZ44, 7805, мост, 13 резисторов, один потенциометр, 2 электролита, 4 конденсатора, трехразрядный светодиодный семисегментный…
Тахометр на AVR микроконтроллере (ATtiny2313, C)
13.01.2010
Данное устройство представляет собой неплохой тахометр, предел его измерений
составляет 100 — 9990 об/мин. Точность измерения — ± 3 об/мин….
Перед начинающими вопрос “а чем мы будем прошивать свой контроллер?” встает практически сразу. Эта проблема решается двумя путями — покупаем серийный программатор или собираем свой собственный. Естественно нецелесообразноприобретать какой либо из серийных программаторов на начальном этапе знакомства с микроконтроллерами. Самым простым решением будет так называемый программатор «пять проводков». Это вариант вполне подойдет для разового применения, но существует большая опасность, что рано или поздно ваш LPT — порт в компьютере сгорит. В качестве бюджетного и безопасного варианта программатора для параллельного порта мы используем более совершенную схему.
Представляем простой и безопасный программатор для параллельного порта. Схема программатора достаточно распространена в различных вариациях и основана на использовании микросхемы-буфера 74HC 244N . Буфер сохраняет ваш порт принтера в целости и сохранности. Дополнительно в схему включен резистор, задачей которого является защита от статического электричества.
Программатор совместим с Атмеловскими STK 200/300 и поддерживается многими популярными компиляторами. Весь небольшой набор деталей для его сборки достаточно распространен и не вызовет трудностей с приобретением. Печатная плата выполнена в одностороннем варианте с несколькими перемычками.
Для подключения программатора к компьютеру удобно использовать кабель — удлинитель LPT -порта.
Схема в формате sPlan 6.0 и разводка платы в формате Sprint Layout 4.0 под ЛУТ вы можете скачать ниже.
Программатор из 5 проводков для микроконтроллеров AVR является самым простейшим программатором, который можно собрать на «коленке». Устройство подключается к ПК через LPT порт, что является недостатком программатора т.к. в современных материнских платах не часто можно встретить наличие порта.
Для изготовления программатора понадобятся:
1. Штекер из 25-и контактов для параллельного порта (LPT) DB-25M.
2. Резисторы любые 4 шт. номиналом 100-150 Ом для защиты порта от короткого замыкания и неправильного монтажа.
3. Шлейф или МГТФ провод. Для предотвращения ошибок от помех и наводок при чтении и записи микроконтроллера рекомендуется использовать провод длинной до 20см.
4. Термоусадочная трубка для изоляции оголенных участков проводников, которая предотвратит короткое замыкание.
Сборка программатора
На рисунке изображена схема распайки проводников и резисторов R1-R4, а так же перемычек.
Контакт №6: SCK — последовательный тактовый сигнал (англ. Serial Clock). Служит для передачи тактового сигнала для ведомого устройства.
Контакт №7: MOSI — выход ведущего, вход ведомого (англ. Master Out Slave In). Служит для передачи данных от ведущего устройства ведомому.
Контакт №9: RESET — сброс, используется для входа и нахождения в режиме последовательного программирования.
Контакт №10: MISO — вход ведущего, выход ведомого (англ. Master In Slave Out). Служит для передачи данных от ведомого устройства ведущему.
Контакт №18-25: GND — контакти земли, объединяться с контактом питания GND программируемого микроконтроллера. Можно подключить 1-н контакт на выбор не обязательно все.
Контакт №2,12; 3,11: Перемычки, для определения программатора как STK 200,300.
Видео к статье:
Для предотвращения вывода из строя параллельного порта подключать и отключать программатор следует при выключенном питании на микроконтроллере, а также не допускать замыкания контактов программатора.
Если программируемый микроконтроллер будет питаться внешним источником питания (батарейки, блок питания), то обязательно нужно соединить минус компьютера (GND 18-25 контакти LPT порта) с минусом микроконтроллера.
Прошивка микроконтроллера — это запись в его постоянную память заданной программы, которая представляет собой код в шеснадцатеричной системе счисления (файл с расширением hex). Прошивка происходит с помощью специального устройства — программатора. Они отличаются по способу подключения к персональному компьютеру, например через USB, LTP,COM интерфейсы.
Микроконтроллеров AVR для программирования имеют пять контактов: MOSI — предназначен для приема данных; MOSO — для вывода данных; SCK — вывод синхроимпульсов; RESET просто сброс и общий провод.
Подсоединим эти пять контактов через токоограничивающие резисторы к параллельному LPT порту компьютера и получим самый простой LPT программатор микроконтроллеров семейства AVR.
При сборке схемы нужно чтобы кабель был экранированный, особенно хорош для этих целей старый интерфейсный кабель от принтера. Если использовать обычный кабель, то его длина должна быть как можно короче, и то иногда возникают ошибки при программировании. Но главный недостаток этой схемы тот, что при не качественном монтаже или ошибки подключения можно вывести из строя LPT порт компьютера
Схема USB программатора для микроконтроллеров AVR, выполнена на микроконтроллере Atmega8. Схема очень надежная и имеет одну очень важную особенность, позволяющую восстанавливать микроконтроллеры с ошибочно установленными фьюзами.
Для прошивки микроконтроллера Atmega8 программатора необходимо использовать любую из рассмотренных схем выше для LPT.
Печатную плату можно изготовить своими руками по популярной среди радиолюбителей , а чертеж печатной платы в формате уже имеется в архиве с прошивками и драйверами.
В идеале у нас должен получится такой USB программатор
Остается лишь записать программу в память микроконтроллера, для этого лучше всего использовать утилиты Uniprof и Code Vision AVR.
Программа предназначенная для интегрированной среды разработки программного обеспечения под AVR микроконтроллеры. Основными особенностями CodeVisionAVR является то, что он легкий и очень понятный для самостоятельного изучения, а также поддерживает все существующие микроконтроллеры AVR.
Если вы решили использовать программу Uniprof необходимо задать следующие фьюзы.
По окончанию прошивки микроконтроллера Atmega8, переключаем тумблер SA2 в НОРМ, и подключаем программатор к USB . Компьютер должен найти устройство. После этого обязательно устанавливаем драйвер из архива. По завершению установки драйвера для программатора, он полностью готов к работе.
Программатор способен работать со следующими оболочками AVR Prog, AVR Studio, ChipBlasterAVR и, одна из самых удобных, Code Vision AVR.
Программаторы COM и LPT. Начинающим › Простой программатор для параллельного порта (LPT)
Для начала работы с микроконтроллерами AVR, необходимо обзавестись средствами внутрисхемного программирования. На начальном этапе вполне подойдет несложный адаптер STK 200/300. В приведенной схеме присутствуют перемычки для определения наличия как адаптера STK200 (выводы 2-12 разъема X1), так и STK300 (выводы 3-11). Для изготовления адаптера потребуется разъем DB25М с пластиковым корпусом, десятижильный плоский кабель, разъем IDC-10, стеклотекстолит и детали. Принципиальная схема LPT программатора AVR показана на рисунке.
Детали устройства монтируются на односторонней печатной плате, которая изготавливается по ЛУТ технологии. После монтажа планарных элементов можно припаивать микросхему 74HC244. С помощью многожильного или одножильного монтажного провода небольшого сечения припаиваем перемычки в соответствии со схемой .
Завершив распайку всех перемычек припаиваем десятижильный плоский кабель. Далее кабель складывается поперек за корпусом микросхемы и подготавливаются проводники, которые должны быть подключены к общему проводу. Подготовка сводится к подгонке длины этих проводников таким образом что бы их можно было припаять к корпусу разъема. После чего они зачищаются, скручиваются, лудятся и припаиваются в одной точке к корпусу, что позволяет отказаться от дополнительного крепления кабеля внутри корпуса.
Не смотря на то, что длина кабеля не должна быть более полуметра, для обеспечения надежной работы адаптера, иногда использовали адаптер даже с двух метровым кабелем без всяких проблем. Надеюсь данная схема окажется полезной для тех, кто решится начать свою работу с микроконтроллерами AVR со сборки адаптера STK200/300. Схему испытал: serh7000.
Имеющиеся схемы программаторов можно разделить на две категории: подключаемые к LPT порту компьютера и подключаемые к COM порту, причём это разделение весьма условно. Преимуществом LPT программатора является его простота: в простейшем случае он выглядит как несколько проводков, соединяющих непосредственно выводы LPT порта и программируемого микроконтроллера, более сложная схема представляет собой шинный формирователь, через который осуществляется связь компьютера с микроконтроллером. Несмотря на недостатки первой схемы (на разных компьютерах она ведёт себя по-разному из-за разброса характеристик микросхем LPT портов, наводки в кабеле, необходимость отключать программатор от программируемой микросхемы после программирования) она может оказаться полезной при необходимости запрограммировать одну-две микросхемы.
При постоянной работе с микроконтроллерами следует воспользоваться более сложной схемой. Шинный формирователь позволяет не отключать программатор от микроконтроллера после программирования, т.к. программа переводит его выводы в Z-состояние по окончанию работы. Однако у программаторов, подключаемых к LPT порту есть и недостатки. Самый главный из них заключается в том, что программатор занимает обычно единственный доступный в компьютере порт, который, к тому же, в большинстве систем занят принтером, и приходиться либо покупать мультикарту или новый принтер, либо постоянно переключать принтер и программатор, что не очень удобно. От этого недостатка свободны схемы для COM порта. Также, как и в случае с LPT программаторами, существуют простые схемы и более сложные. В простейшем случае схема представляет собой преобразователи уровней RS232 в TTL и наоборот для отдельных сигналов, необходимых для ISP (у COM порта три линии входа и пять линий выхода, для IS программирования требуется три линии выхода (SCK, MOSI, Reset) и одна линия входа (MISO)). Схема более сложного программатора на COM порт состоит из микросхемы интерфейса RS-232 и микроконтроллера, преобразующего команды программы на PC в команды, понятные программируемой микросхемой. К тому же такое построение схемы позволяет практически неограниченно «наворачивать» схему, — можно поставить любое количество индикаторов для индикации режима программирования, можно подключить микроконтроллер к ОЗУ, чтобы программа для программируемой микросхемы сначала переписывалась в ОЗУ, а затем, независимо от работы PC, переписалась в программируемую микросхему, можно также сделать программатор с одной универсальной панелькой для всех программируемых микросхем, — всё зависит от программы управляющего микроконтроллера и фантазии разработчика.
Программаторы можно разделить и по типу подключения к программируемой микросхеме: либо она вставляется в панельку программатора, либо программирование осуществляется внутрисхемно (с помощью специального разъёма, предусмотренного разработчиком устройства). Последний тип подключения очень удобен, но не все МК поддерживают такой режим программирования, к тому же при внутрисхемном программировании невозможно запрограммировать некоторые биты конфигурации и для их изменения следует воспользоваться параллельным программатором. Практически все МК Atmel поддерживают режим ISP, к тому же при повседневной работе с микроконтроллерами вполне достаточно внутрисхемного программатора.
Схема и плата варианта самодельного программтора показана ниже. Программатор конструктивно выполнен на небольшой печатной плате, которая подключается сразу к COM-порту.
Вот схема самого простого, и в тоже время 100% рабочего программатора для AVR микроконтроллеров. Эта схема определяется софтом как ATMEL “STK200/STK300” Что позволяет использовать его совместно с софтом, поддерживающим данный вид программатора, например CodeVisionAVR, Pony-Prog или AVReal.
Схема программатора.
Этот программатор проверен лично мною с CodeVisionAVR.
Вот более сложный программатор для программирования AVR микроконтроллеров, фирмы ATMEL. В нём применена микросхема — буфер, для защиты прота микроконтроллера от повреждений. Данный адаптер аналогично подключается к LPT порту компьютера.
Технические характеристики программатора:
Подключение к порту: LPT
Напряжение питания: 5 В
Потребляемый ток: 10 мА
Схема программатора:
Вниамние! Если программируемый МК будет питаться внешним источником питания то объязательно надо соеденить минус компьютера (25 ножка LPT порта) с минусом микроконтроллера.
Программатор и МК питаются от ПК, тем самым обеспечивается стабильное питание программатора и программируемого МК. Длина соединительных кабелей не должна превышать 20 см. Устройство собрано на микросхеме буфера U1 SN74HC244 которая сейчас достаточно легкодоступна. Программатор подключается к выводам MOSI, MISO, XTAL1, RESET, SCK, VCC, GND программируемого МК. Правильно собранному адаптеру не требуется настройка.
Прошивка микроконтроллера.
Для прошивки микроконтроллера данным адаптером, нужно использовать софт совместимый с программатором ATMEL “STK200/STK300” , например Pony-Prog или AVReal. Но мы используем программатор, который встроен в CodeVisionAVR. Ну что ж, от слов к делу…
Для начала вам нужен сам CodeVisionAVR. Думаю с установкой и запуском проблем возникнуть не должно…
И так. Запускаем CodeVision потом переходим в меню Settings > Programmer в появившемся окошке выбираем программатор Kanda Systems STK200+/300 и номер LPT порта. Обычно это LPT1: 378h .
Потом идём в Tools > Chip Programmer В появившемся окошке перейдите в меню File > Load FLASH . Выберите тип файла Intel HEX files (*.hex) потом укажите путь к файлу прошивки.
Если в устройстве вы хотите использовать внешний кварцевый резонатор то вам придется запрограммировать фьюз. Например если вам нужен кварц от 3 до 8 мГц, то фьюзы должны быть запрограммированы вот так:
Для того чтобы прошить МК и фьюзы, надо нажать на кнопку Program ALL.
26.04.2014
sPlan — удобный инструмент для черчения электронных схем. Имеет простой и интуитивно понятный интерфейс. В программе заложены…
Очень удобная программа для чтения pdf Foxit Reader
26.04.2014
Foxit Reader — Компактная и шустрая программа для чтения PDF файлов. Может служить альтернативой для популярного просмотрщика PDF — Adobe Reader….
22.04.2014
Proteus VSM — программа-симулятор микроконтроллерных устройств. Поддерживает МК: PIC, 8051, AVR, HC11, ARM7/LPC2000 и другие распространенные процессоры….
01.04.2014
Проект сайт который долгое время находился в застывшем состоянии снова принимается за работу с новымы силами, с новыми статьями и с…
Proteus 7.7 SP2 + Crack v1.0.2 + RUS
22.04.2014
Proteus VSM — программа-симулятор микроконтроллерных устройств. Поддерживает МК: PIC, 8051, AVR, HC11, ARM7/LPC2000 и другие распространенные процессоры….
Splan 7.0.0.9 Rus + Portable + Viewer Fiinal
26.04.2014
sPlan — удобный инструмент для черчения электронных схем. Имеет простой и интуитивно понятный интерфейс. В программе заложены…
Цифровая паяльная станция своими руками (ATmega8, C)
27.05.2012
Состав: ATmega8, LM358, IRFZ44, 7805, мост, 13 резисторов, один потенциометр, 2 электролита, 4 конденсатора, трехразрядный светодиодный семисегментный…
Тахометр на AVR микроконтроллере (ATtiny2313, C)
13.01.2010
Данное устройство представляет собой неплохой тахометр, предел его измерений
составляет 100 — 9990 об/мин. Точность измерения — ± 3 об/мин….
Первым шагом по освоению микроконтроллера для каждого наверняка является сборка программатора. Купить программатор тоже можно, но за совсем неразумные деньги, как по мне. Рассмотрим работоспособный программатор для AVR’ок, которым я пользуюсь вот уже 4-й год. В свое время показал отец, программа мне очень понравилась, и было решено делать под нее программатор. Порывшись на сайте программы, обнаружил простую схему программатора (COM порты я не рассматриваю по причине легкости их горения от статики):
Ее повторение не займет более часа, но гарантирует целостность вашего LPT порта и совместную работу с Pony Prog 2000 . Микросхема – буфер. Резистор R1 – 100k, конденсатор C1 – 0.1мкФ. Диод D1 – любой кремниевый. LPT разъем типа «папа». Теперь разберемся с ISP разъемом, который будет использоваться для программирования. Выводы MISO , MOSI , SCK , RESET – управляющие, вывод LED – к нему подключается светодиод, который сигнализирует чтение/запись прошивки в микроконтроллер, VDD и GND соответственно +5В и земля.
Для подсоединения микроконтроллера удобно использовать шлейф на 10 проводов и соответствующий IDC , но это дело вкуса и каждый сам решает, как ему нравиться, главное не делать его слишком длинным, во избежание наводок. У меня получилось вот так:
Для тех, у кого по тем или иным причинам нету LPT порта и лень бегать к соседу зашить прошивку могу посоветовать толковый USB программатор (сайт проекта prottoss.com). Достаточно просто повторить схему и правильно прошить управляющий контроллер (для этого, как ни крути понадобиться LPT или COM порт). Вот такой USB программатор собрал себе:
Перейдем к программной части. В начале говорилось, что программировать мы будет с помощью Pony Prog 2000 .
Первое включение и калибровка:
При первом использовании программатора не забываем корректно его настроить: Setup->Interface setup, в появившемся окне выбирай LPT порт, к которому подключен программатор, выбираем AVR ISP API в выпадающем списке, а флажки Polarity of control lines не трогаем, оставляем пустыми. Далее калибруем все это дело Setup->Calibration. Все, теперь мы можем с помощью нашей макетной платы программировать AVR»ки.
Выбор среды для написания программ:
Теперь осталось выбрать, в какой среде писать программы и на каком языке. Рекомендую писать на С, если не критичен размер и скорость выполнения программы.
Его освоение намного легче ассемблера, но знание ассемблера незаменимо для написания коротких и быстрых программ, понимания работы микроконтроллера. Я пишу свои программы в связке бесплатных программ и и очень доволен результатом, но здесь на вкус и цвет товарищей нет, выбор за вами.
Почти успех =) => =(
Спаял вроде все как на схеме)
Тоесть не вроде а так и есть)
Только вместо D1 поставил ИК диод незнаю скажется ли как то другово под рукой не было)
Первая проблема когда пытался прошить с настройкой AVR ISP API (LPT2 другово немог выбрать)
выбивало 16 ошибку, типа нет порта
После того как поменял настройки на AVR ISP I/O LPT1 выбило ошибку -24 типа я незнаком с вашим девайсом)
И пытается прошивать. . . пока без результатно(((
подскажите в чем проблема?
Слышал вроже нужно менять какие то настройке в биос?
так вот какие?7?
поздравьте с приобретением!
купил нечто миниатюрное, на usb, без корпуса и без всяких bells&whistles, в инструкции сказано что это аналог stk500, может определяться как avr910, но у меня определился как avr doper.
пока никуда не подключал — при попытке чтения фьюзов программа пишет programmer is not responding.
подозреваю, что так и должно быть.
теперь собственно вопрос. на самой плате есть разъемы на 6 и на 10 штырьков, но кабель — только на 10. для прошивки микроконтроллера мне надо только ножки к штырькам mosi, vcc, rst, miso и ground подключить? остальные могут пины микроконтроллера могут висеть свободными?
Для программирования МК
Для программирования МК требуется подключить к программатору MOSI, MISO, SCK, RESET и подать питание. Остальные можно не трогать. Смотри доку на программатор, какие из тех пинов нужно вывести.
тыкс
он отказывался у меня работать как avr910, как stk500, как stk500v1, зато прочитал фьюзы как stk2, и прошил флешку за пару секунд. попробую дособирать свой дивайс и запустить его))
микруха прошита!
первый раз, первый программатор, боюсь что-либо спалить)
Доброго времени суток всем!
Подскажите пожалуйста, а Выводы MISO, MOSI, SCK, RESET – управляющие, нужно напрямую подсоединять к МК или как здесь
Я имею ввиду через резисторы выводы MISO, MOSI, SCK, RESET подтягивать к питанию и земле надо?
Дело в том, что у меня мега16, там вывод RESET инверсный, сброс по нулю будет по идее, мне R3 на землю бросить?
Спасибо если кто откликнется!
p.s. Диплом с МК попался, а я не шарю:) Хочу разобраться, но тонкостей очень много…
Самый простой вариант программатора для AVR это пять проводков, припаиваемых к порту контроллера и втыкаемых в LPT порт. Не спорю, можно и так. Но я все же не рекомендую этот способ. Даже схему подключения давать не буду — если надо будет сам найдешь. Так как данный метод не очень стабилен, возможны сбои при прошивке , длина проводков ограничена двадцатью сантиметрами (если больше, то будет глючить), поэтому придется шариться в комповой заднице. Да и LPT порт спалить проще простого . В общем не рулез.
Шарясь по инету, я нашел отличный программатор, работающий через RS232 он же COM порт. А также удобную программу для прошивки контроллера UniProf от Николаева. Схему программатора придумал Громов, создатель Algorithm Builder.
Для сборки программатора потребуется:
- Три диода, любых из маломощных. Например 1N4148.
- Семь резисторов на 1кОм. У меня резисторы типоразмера 1206
- Если будешь делать по моей печатной плате, то можешь еще купить 3 резистора на 0 ом — перемычки, они же пофигисторы.
Печатная плата либо рисуется маркером, либо, как у меня, делается методом лазерного утюга.
Разьем DB9, что на фотке, я поставил для удобства. У меня туда подключаются разные прошивающие шнуры либо вот такой вот адаптер:
Программатор запаян, контроллер к нему подключен. Пора убедиться в том, что все сделано верно.
Запускай UniProf.exe и выбирай номер СОМ порта к которому у тебя подключен программатор. Сразу же должен определиться тип контроллера и высветиться над левым окном кода.
Не получилось? Тут три варианта:
- Программатор спаян криво.
- Дохлый контроллер.
- Неправильно припаял проводки к микроконтроллеру.
Еще раз все досконально проверяешь и пробуешь снова. Должно получиться.
Дальше, если до этого ты никогда не работал с контроллерами, тебе возможно потребуется тестовая программа. Она не будет делать ничего полезного, зато позволит тебе точно быть уверенным, что все что ты сделал до этого ты сделал правильно.
Скачиваешь Atmel AVR Studio — это официальная среда для разработки программ под микроконтроллеры AVR . Студия поддерживает все микроконтроллеры семейства Atmel AVR . Найти ее последнюю версию можно на сайте Atmel.com
Далее создавай новый проект, в качестве языка программирования выбирай Assembler и укажи папку и имя где будет располагаться твой проект. В качестве отладчика бери AVR SIMULATOR и укажи с каким именно контроллером ты будешь работать. После чего забивай в текстстовое окно простейшую программу.
Вот ее примерный текст:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | .INCLUDE «m16def.inc» ; это подключается список макроопределений; без него компилятор не будет знать под какой; именно процессор мы собираем программу; если у тебя другой контроллер, то подставь; соответствующий инклюдник. Они находятся в; папке AVR Studio по адресу; «AVR Tools\AvrAssembler\Appnotes\» .MACRO outi LDI R16,@1 OUT @0,R16 .ENDMACRO ; задаем весьма удобный макрос, позволяющий; записать произвольное заданное число в любой; регистров за одну строку кода. .CSEG .ORG 0x0000 RJMP RESET .ORG 0x0030 ; Директива начала кода с адреса 0х0030 ; адрес взят с большим запасом, потому как; у разных AVR разных размеров таблица; прерываний. Так что уж чтобы наверняка! RESET: ; стартовая метка OUTI DDRA,0xFF OUTI DDRB,0xFF OUTI DDRC,0xFF OUTI DDRD,0xFF ; Конфигурируем направления портов на выход; Если данный контроллер не имет, например, порта; С, то эту строчку надо закомментировать. OUTI PORTA,0xAA OUTI PORTB,0xAA OUTI PORTC,0xAA OUTI PORTD,0xAA ; Выдаем на выходы 10101010, чтобы получить; четкую картину того, что на портах произошли; изменения. После выполнения программы; на выходах микроконтроллера в шахматном порядке; будут либо напряжение питания, либо земля. Что; легко проверяется либо вольтметром, либо простейшим; пробником на светодиоде. RJMP RESET ; Зацикливаем программу. |
INCLUDE «m16def.inc» ; это подключается список макроопределений; без него компилятор не будет знать под какой; именно процессор мы собираем программу; если у тебя другой контроллер, то подставь; соответствующий инклюдник. Они находятся в; папке AVR Studio по адресу; «AVR Tools\AvrAssembler\Appnotes\» .MACRO outi LDI R16,@1 OUT @0,R16 .ENDMACRO ; задаем весьма удобный макрос, позволяющий; записать произвольное заданное число в любой; регистров за одну строку кода. .CSEG .ORG 0x0000 RJMP RESET .ORG 0x0030 ; Директива начала кода с адреса 0х0030 ; адрес взят с большим запасом, потому как; у разных AVR разных размеров таблица; прерываний. Так что уж чтобы наверняка! RESET: ; стартовая метка OUTI DDRA,0xFF OUTI DDRB,0xFF OUTI DDRC,0xFF OUTI DDRD,0xFF ; Конфигурируем направления портов на выход; Если данный контроллер не имет, например, порта; С, то эту строчку надо закомментировать. OUTI PORTA,0xAA OUTI PORTB,0xAA OUTI PORTC,0xAA OUTI PORTD,0xAA ; Выдаем на выходы 10101010, чтобы получить; четкую картину того, что на портах произошли; изменения. После выполнения программы; на выходах микроконтроллера в шахматном порядке; будут либо напряжение питания, либо земля. Что; легко проверяется либо вольтметром, либо простейшим; пробником на светодиоде. RJMP RESET ; Зацикливаем программу.
Далее жми на кнопку компиляции (или F7 ) и лезь в папку своего проекта. Там тебя уже должен поджидать ****.hex файл с прошивкой.
Запускай UniProf.exe , жми на кнопочку с открытой папкой и надписью HEX . Выбирай свой свежескомпиленный проект и жми ок.
Вторым окном UniProf попросит тебя ввести данные EEPROM , у нас EEPROM не используется, поэтому нажимай отмену .
Все, теперь можно прошивать. Жми на красную стрелку с надписью Prog и жди. По окончании можешь нажать чтение и поглядеть что записалось в твой контроллер — должно показать то же самое, что и было уже загружено в окно.
Теперь тебе остается подать питание на свой микроконтроллер и посмотреть что появилось на портах. Увидел «гребенку» из высоких и низких уровней напряжения? Отлично! Ты прошил свой первый в жизни контроллер! Теперь ты можешь с головой занырнуть в изучение микроконтроллеров AVR.
Если не заработало, то вот возможные грабли и пути решения.
- Современные компьютеры, с гигагерцовыми процессорами, новомодными Вистами и Семерками очень плохо дружат с этим программатором. Мало того, что у вас может банально не обнаружиться COM порта, а если и будет так еще не факт что все заработает как надо. Рекомендую собрать себе для радиотехнических опытов из подручного хлама что то вроде PIII 800/Windows’98. Бесплатно нарыть такое чудо проблем не составит и сжечь не жалко, если что не так
- Данная схема не работает через переходники USB-COM или работает, но ОЧЕНЬ медленно. Скажем прошивка одного микроконтроллера может длиться часа полтора.
- Питание, на первый раз, лучше всего брать с блока компа . Меньше вероятность что либо сжечь или ошибиться
- Проверяте схему по 3-4 раза! Т.к., судя по комментам, большая часть проблем из-за кривого монтажа.
- Перед запуском программы в МК НУЖНО ОТКЛЮЧИТЬ ПРОГРАММАТОР и подать на вход RESET +5 вольт через резистор в 1..10кОм. С подключенным программатором ничего работать не будет, т.к. он прижимает RESET и не дает кристаллу стартовать.
- Если UniProf не определяет МК, возможно у вас слишком быстрый компьютер. Для компенсации этого «недостатка» нужно включить галочку «Тормоз» Она показывается если отключить снятием галки EEPROM панель отображения данных EEPROM.
- Если галка Тормоз не помогла, то пробуйте на другом компе. Т.к. тут СОМ порт обрабатывается в нештатном режиме, а значит не факт, что ваш СОМ порт поймет все правильно.
- На худой конец, если ничего не помогает, попробуйте программатор из 5 проводков или другую прошивающую программу, например avrdude. Провода делайте как можно короче! 10-15 сантиметров это МАКСИМУМ!
- Читайте комменты к записи . Там многие косяки уже были разобраны. Возможно и ваш окажется среди них.
Дополнение от Outsider :
1. Если сзади у компа нет разъема COM-порта, то это не на 100% означает, что такого порта нет на материнской плате в принципе. Пока еще на матерях встречаются разъемчики с 9 штырьками в два ряда — подробнее нужно смотреть документацию к материнской плате. Я на своей ASUS P5K SE нашел и успешно заюзал.
2. Да, +5 и GND это не земля и контакт из COM-порта, а именно внешнее питание. Проще всего его добыть в компе — +5 есть в красном проводе на любом из разъемов, питающих жесткие диски. А GND — на корпусе самого компа. Или на черном проводе того же разъема.
3. Если с UniProf что-то не срастается, то можно попробовать avrdude. Чтобы это сделать, нужно прописать в avrdude.conf следующее:
programmer
id = «nikolaew»;
desc = «serial port banging, reset=dtr sck=rts mosi=txd miso=cts»;
type = serbb;
reset = 4;
sck = 7;
mosi = 3;
miso = 8;
;
А затем запустить avrdude со следующими параметрами:
avrdude -n -c nikolaew -P com1 -p m16
Если все в порядке, то программа скажет:
avrdude: AVR device initialized and ready to accept instructions
Дополнение от Riko
Эксприменатально было выяснено, что для правильной работы этого программатора напряжение питания МК должно быть не ниже 5 вольт (но не выше 5.5!!!). То есть если МК подключен к трем пальчиковым батарейкам, то вы обламываетесь, так как там 4.5 вольта! Запитывайте от компа!!!
Дополнение от SLY_DEr
Не работало. Сменил резисторы с 3к (не было на 1к) на 460ом’ные — заработало, но с ошибками.
Решил чисто ради спортивного интереса снизить скорость ком-порта в диспечере устроиств и о, чудо, все заработало как надо. Скорость порта снизил с 9600к до 4800к и плюс убавил буфер приема и передачи (там же) до значений 4 и 6 соответственно.
Если что непонятно, то не стесняйся спрашивать у меня в комментах.
З.Ы.
Если не получается ну никак, то может быть ваша материнска плата не поддерживает столь нестандартное обращение с COM портом и стоит попробовать другие программаторы? Например, или . Они хоть и сложней, но зато работают более корректно, без извратов.
Программирование микроконтроллеров AVR под LINUX: Делаем LPT программатор
Одним из самых простых программаторов AVR является программатор для LPT порта. Это обусловлено тем, что уровни сигналов LPT порта совместимы с уровнями сигналов необходимыми для программирования AVR. Такой программатор можно собрать из подручных материалов буквально за 5 минут!
Такой программатор будет совместим с классическими программаторами STK200/300, и соответственно будет поддерживаться многими программами для прошивания AVR.
Cхема LPT программатора для AVR предельно проста:
Для изготовления LPT программатора нам понадобится:
Резисторы можно использовать любые, какие найдете в пределах от 100 до 150 Ом. Можно программатор собрать вообще без резисторов, но тогда шанс спалить порт станет гораздо выше. В качестве шлейфа можно заюзать шлейф от IDE-шного жесткого диска. При подключении шлейфа, для более устойчивой работы программатора, каждый «сигнальный» провод должен чередоваться с «земляным» проводом. Это позволит уменьшить уровень помех наводимых в линиях и за счет этого увеличить длину программирующего провода. Длина шлейфа должна быть в пределах 50 см. Еще нужен разъем для подключения к программируемому устройству.
Для внутрисхемного программирования Atmel рекомендует стандартные разъемы:
Делайте разъемы сразу по стандарту. Для разового программирования устройства я рекомендую использовать разъемы BLS «мамы» (такими разъемами к материнской плате подключаются кнопки и светодиоды) и штырьки PLS «папы» на плате. Ножки MOSI, MISO, SCK у микроконтроллеров AVR всегда расположены вместе, поэтому для них можно применить строенный разъем. Отдельно делаем подключение для «земли»-GND и «сброса»-Reset.
Перемычки между ножками разъема 2-12 и 3-11 нужны для того, чтобы наш программатор определялся как STK200/300 (STK200/300 своего рода стандарт и поэтому наш программатор станет виден для многих программами).
Общие рекомендации:Отдельное подключение для «земли» я бы рекомендовал делать во всех программаторах. Это нужно для того, чтобы «землю» можно было подключить первой и уравнять потенциалы «земли» программируемого устройства и компьютера. Если у Вас компьютер включен в обычную розетку без заземляющего контакта, то на корпусе компьютера присутствует потенциал в 110В. Этого более чем достаточно чтобы сжечь микроконтроллер или LPT порт компьютера.
Программатор AVR
Программатор AVRЭто простые программисты AVR. Я спроектировал и построил четыре разных программатора для различных сред: параллельный программатор, управляемый LPT, адаптер ISP, управляемый LPT, адаптер ISP, управляемый COM, и общий мост SPI, управляемый COM. Кроме того, адаптеры, управляемые через COM, можно использовать в качестве кабеля связи между главным компьютером и целевой платой, это полезно для отладки.
Эти программаторы AVR не имеют контроллера на программаторе и напрямую управляются сигналами порта.Таким образом, время программирования сокращается по сравнению с любыми другими программистами, поскольку отсутствует какая-либо задержка связи, например, последовательность команд / результатов между ПК и программистом. Эти программаторы также можно использовать со студией AVR :-).
Если у вас есть кабель загрузки JTAG, управляемый через порт LPT для устройств Xilinx, Lattice или Altera, его также можно использовать для программирования AVR.
Метод программирования на AVR
AVR имеет два разных режима программирования: , режим параллельного программирования, (параллельный режим) и , режим последовательной загрузки, (режим ISP).
В параллельном режиме программируемое устройство подключается к гнезду программатора, и на его вывод RESET подается напряжение программирования +12 Вольт. Связь между программистом и устройством осуществляется с помощью команд параллельного программирования, поэтому скорость программирования в два раза выше, чем в режиме ISP. Этот режим программирования используется для предварительного программирования многих устройств или / и режим ISP не может использоваться из-за конструкции платы. Однако большинство программистов, за исключением STK500, похоже, не поддерживают этот режим программирования.
В режиме ISP устройство обменивается данными через интерфейс SPI для программирования и проверки. Этот режим требует только трех сигнальных линий без напряжения программирования +12 В, так что он также может программироваться в конечной системе, это называется ISP (внутрисистемное программирование). Однако режим ISP не может изменять бит предохранителя на некоторых устройствах, а некоторые устройства не имеют функции ISP. Такие устройства необходимо программировать в параллельном режиме. Но большинство программистов AVR используют этот режим программирования, даже если он имеет сокет, у них такая же проблема.
Кроме того, имеется режим последовательного программирования с использованием напряжения программирования +12 В, который называется Режим последовательного программирования высокого напряжения . Этот режим программирования эквивалентен режиму параллелизма и доступен только для устройств с 8/14 контактами. Подробные сведения о каждом режиме программирования см. В технических паспортах устройства.
Параллельный программист
Правое изображение показывает встроенный параллельный программатор, он компактен за счет использования множества устройств для поверхностного монтажа. Принципиальная схема этого программатора очень проста, но он поддерживает как режимы программирования высокого напряжения, параллельный режим, так и режим HVS.Этот способ программирования требуется в следующих случаях.
- Программирование tiny10 / 11/28, у которого нет возможности ISP.
- Замена любого предохранителя ранних устройств, 90S1200 / 2313/4414/8515.
- Замена предохранителя SPIEN или RSTDISBL.
Таким образом, параллельный программатор не является тем, что требуется в большинстве случаев, подойдет только адаптер ISP. Однако для 8-контактных устройств часто требуется режим программирования HVS, чтобы сконфигурировать контакт сброса как порт ввода-вывода.
Этот программатор использует 20-контактное гнездо ZIF для установки устройства, поэтому для программирования устройств не с 20-контактным разъемом требуется любой преобразователь гнезда (8,28,40).SOIC, TQFP, PLCC также требуют преобразователя гнезда для каждого пакета.
Выходное напряжение высокого уровня на LPT-порте на некоторых ПК может не достигать 3,5 В. В этом случае преобразователь уровня TTL-CMOS, такой как 74HC T 541, должен быть помещен в место, указанное пунктирной линией. Параллельный программатор управляется AVRPP.EXE (Win32).
Адаптер ISP (управляется через порт LPT)
Этот адаптер ISP разработан для снижения затрат и прост в сборке.В упрощенных адаптерах не используются полупроводниковые компоненты, сигналы портов напрямую связаны с целевым устройством, как показано на принципиальных схемах. Таким образом, этот адаптер очень прост, так что он будет собран в течение нескольких минут, и его можно будет использовать для ознакомления. Но этот программатор ограничивает диапазон целевого напряжения питания до 4,5-5,5 В, потому что они не преобразуют уровни сигнала между ПК и целью, это может не соответствовать целевому уровню сигнала.
Это программное обеспечение поддерживает пять типов программаторов, оригинальную схему, ключ STK200 и кабели JTAG для устройств Xilinx, Lattice, Altera, управляемых через порт LPT.Связь между сигналами JTAG и AVR-ISP: TDO-MISO, TDI-MOSI, TCK-SCK и TMS-RESET. В этом случае целевое напряжение питания может составлять 3–5 В. Тип программатора, подключенного к порту LPT, определяется автоматически. Программатор ISP, управляемый портом LPT, управляется с помощью AVRSP.EXE (Win32) .
Адаптер ISP (управляется через COM-порт)
Это адаптер ISP, управляемый через COM-порт. Уровни сигнала линии RS-232C преобразуются в целевой уровень, так что целевое устройство может работать во всем диапазоне VCC.А также его можно использовать в качестве коммуникационного кабеля для связи между главным компьютером и конечной программой (это объясняется в следующем разделе). Этого адаптера ISP будет достаточно для разработки большинства приложений AVR.
На правом изображении показан встроенный ISP-адаптер для COM-порта. Он имеет переключатель для подключения / отключения адаптера ISP от целевой платы. Эта функция хороша для отладки процесса, сказал, что «Load-Runner» (программа / запускает снова и снова).
При сборке преобразователь уровня лучше размещать рядом с целевой платой с точки зрения стабильности и управляемости.Я построил и использовал некоторые адаптеры ISP и настроил эту форму. Этот адаптер ISP управляется с помощью AVRSP.EXE (Win32) или avrdude 5.1+ .
USBspi — мост SPI для USB
Последние настольные ПК на рынке, как правило, не имеют устаревших портов (COM / LPT), в частности, устаревшие порты на ноутбуках полностью исключены, и они были заменены портами USB. USBspi — это мост SPI общего назначения, подключенный к USB-порту. На мосту SPI R4 добавляется специальная команда AVR и время программирования (Erase + Write + Verify) равно 6.Достигается 6 секунд при 32 Кбайтах. Это в два раза быстрее адаптера COM-порта.
Правое изображение показывает построенный мост SPI. Это довольно мало 46 мм / 15 мм / 6 мм (Д / Ш / Т) из-за использования устройств в упаковке MLF. Источник питания может быть выбран из «Питание от цели (от 3 до 5 вольт)» или «Подача 5 / 3,3 вольт на цель (может, зависит от цели)». Это позволяет программировать / отлаживать целевую плату без источника питания, если есть только ноутбук.
Поскольку он называется мостом General Purpose SPI, его можно использовать не только для AVR, но и для универсальных устройств SPI (ограничено режимом 0).Это пример дампа карты памяти SD. Конечно, он будет работать с адаптером ISP, управляемым портом, с небольшими изменениями в модуле управления SPI. 8 сентября 2007 г.
Использование управляющих программ
Есть несколько управляющих программ для каждого программиста AVR, и они запускаются в окне консоли. Их также можно использовать в операции быстрого перетаскивания с правильными настройками PIF (DOS) или .ini (Win32).
Основная особенность управляющих программ заключается в том, что они могут автоматически определять тип устройства и воздействовать на свойства обнаруженного устройства.Следовательно, достаточно указать только шестнадцатеричные файлы для программирования. Никаких опций устройства не требуется. Параметры командной строки также можно установить с файлом PIF или .ini по умолчанию.
Для параллельного программиста доступна тестовая программа на основе DOS, которая может вручную манипулировать любым выводом сокета. Программисту ISP avrsp -z выводит тестовый сигнал на линии SCK для проверки совместимости системы.
Проектирование схем с учетом ISP
При использовании AVR с режимом ISP целевая плата должна быть спроектирована с учетом функции ISP, контакты ISP, RESET, SCK, MISO и MOSI должны быть зарезервированы для функции ISP.Однако в реальном приложении количество портов может быть недостаточным.
контактов ISP смогут совместно использовать функции ввода-вывода и ISP, если соблюдены некоторые условия. При использовании любого вывода ввода / вывода, который также назначен для функции ISP, необходимо соблюдать следующее.
- Вставьте резистор между контактом сброса и цепью сброса, чтобы избежать помех от цепи сброса.
- Убедитесь, что действие интернет-провайдера не влияет на другие функции.
- Не подключайтесь к внешней цепи во время работы ISP, иначе необходимо вставить резистор.
- Не подключайте тяжелую нагрузку, например, влияющую на работу интернет-провайдера.
Стандартный разъем ISP
Atmel рекомендует эту схему расположения выводов, расстояние между выводами разъема 3×2 2,54 мм. При сборке кабеля ISP или печатной платы рекомендуется использовать эту схему расположения контактов разъема ISP.
Нет места для разъема ISP
Когда целевая плата не имеет разъема ISP, она сможет выполнять действия ISP с помощью контактной площадки, как показано на правом изображении.
Последовательная связь через кабель ISP
Это специальная функция адаптера ISP, управляемого через COM.Этот адаптер ISP может использоваться для связи между главным компьютером и целевой платой с любыми терминальными программами, поскольку он позволяет назначать управляющие сигналы как COM-порт. Таким образом, он может напрямую связываться или отлаживать с помощью кабеля ISP. Чтобы включить эту функцию, должны быть выполнены следующие условия.
- MISO и MOSI должны быть назначены для последовательной связи.
- Инициализировать MISO как выход и MOSI как вход.
- Обменивайтесь данными через MISO и MOSI в программно реализованном UART.
Запись устройств PIC24 через кабель ISP
Microchip выпустила 16-битное семейство PICmicro. Это мощные микроконтроллеры, такие как AVR, и кому-то из пользователей AVR будут интересны эти чипы. Я создал инструмент программирования PIC, используя кабели AVR-ISP. Это подойдет пользователям AVR, которые собираются ненадолго опробовать 16-битные PICmicros.
Инструмент программирования pic24sp основан на avrsp и имеет те же функции и использование. Поддерживаемые устройства: PIC24F , PIC24H и dsPIC33F .При использовании моста SPI он должен поддерживать набор команд расширения PIC (R3 или новее). 8-битные микросхемы PICmicro в настоящее время не поддерживаются, но когда устройства поддерживают функцию LV-ICSP, их можно будет программировать с помощью некоторых модификаций инструмента программирования. Устройства, которым требуется высокое напряжение на выводе MCLR во время ICSP, такие как dsPIC30F и старые PIC, не поддерживаются. Последовательная связь через кабель ISP по-прежнему поддерживается с учетом того, что целевое устройство должно управлять линией данных с открытым стоком Pch (Mark = H-Z, Space = High), потому что связь осуществляется через общую линию данных.10 декабря 2007 г.
Технические данные
- Принципиальная схема программатора параллельного / HVS 30 января ’06
- Сокет-преобразователи для параллельного программиста 11 ноября 2004 г. Схема
- для программатора HVS 8 / 14pin 30 января 2006 г.
- Принципиальная схема адаптера AVR ISP (COM). Оригинальная схема. 30 апреля 2004 г.
- Схема адаптера AVR ISP (LPT). Оригинальная схема. 30 апреля 2004 г. Мост
- SPI Rev.2. Документы, схема, прошивка и др.16 декабря 2007 г. Схема
- для электронного ключа ISP STK200 (LPT). Самый популярный адаптер ISP. 30 апреля 2004 г.
- Схема подключения кабеля Xilinx JTAG (LPT). 30 апреля 2004 г.
- Принципиальная схема кабеля Lattice ISP (LPT). 30 апреля 2004 г. Схема
- для Altera ByteBlasterMV (LPT). 30 апреля 2004 г.
- Управляющие программы на базе Win32 для Windows 9X / Me / NT / 2k / XP. Включая исходные файлы c. 16 июня ’15
- PIC24SP для Windows9X / Me / NT / 2k / XP с исходными файлами c 9 января 2009 г.
- Управляющие программы на базе DOS для DOS, Windoows3.X / 9X / Me и HP200LX. Включая исходные файлы asm. 11 ноя, ’04 (устарело)
- avrspx для USBasp (AVR-wiki [ja])
- Бранч AVRSP от BKK (Win32 (bcc), Linux (x86 / ARM))
- Программное обеспечение UART и образцы кодов монитора AVR (ASM) 29 мая ’02
- Программное обеспечение UART и образцы кодов монитора AVR (GCC) 30 января 2005 г.
- Запустить консольное окно в открытой папке: Реестр для установки | Добавлен пункт меню 24 сентября 2006 г.
Выбор программатора AVR — Embedds
Как мы говорили ранее, существует множество программистов AVR, из которых можно выбирать.Самые простые из них — программисты на битбэнге. Это прямолинейные программисты, которые могут быть построены с использованием всего лишь небольшого количества резисторов (или вообще без резисторов). Это может быть преобразователь COM, LPT или USB-to-TTL.
Программаторы Bitbang своими руками
Пример программатора LPT порта
Вероятно, их проще всего построить, поскольку нет необходимости преобразовывать какие-либо сигналы, поступающие из порта. Буферный чип используется только в целях безопасности для защиты порта компьютера.Еще более простой кабель для программатора можно найти здесь.
ПрограмматорCOM (RS232) немного сложнее, так как он должен преобразовывать сигналы RS232 в TTL. Обычно для этого используются микросхемы MAX232. Самый простой программатор COM, который я смог найти, — это даже без микросхемы MAX232:
ПрограмматорыLPT и RS232 устарели, так как COM, а порты LPT исчезают с компьютеров, особенно с ноутбуков. Так что, если вы собираетесь, лучше используйте USB. Также доступны несколько USB-программаторов, сделанных своими руками. Большинство из них работают одинаково — компьютер имитирует их как виртуальные COM-устройства.Какой из них выбрать — тоже ваше решение. Если вы не хотите связываться с другим программным обеспечением, но AVRStudio ищет AVRUSB500V2 на базе STK500. Отлично работает в AVRStudio 4:
Есть еще один отличный USB-программатор, который работает только с программным обеспечением AVRDUDE, это USBasp. Основным преимуществом этого является то, что он эмулирует USB чисто программно, поэтому не требуется дополнительных USB для последовательного чипа:
Если вы поищете в Интернете, вы найдете больше клонов программистов.Нет существенной разницы, самое главное то, что она доставляет программу на чип.
Профессиональные программисты AVR ISP
Если вы не хотите связываться с вещами, сделанными своими руками, откройте свой кошелек и получите профессионально сделанного программиста со схемой поддержки и защиты. С ними вы всегда будете уверены, что это работает. Они не такие уж и дорогие, так что купите. Это может быть AVRISP или AVRISPv2.
Или вы можете использовать STK500, который все еще активно используется в качестве платы для программирования и разработки.Он имеет различные заголовки для разных микросхем AVR. Единственным недостатком является то, что у него только последовательный интерфейс. Для работы с USB вам понадобится конвертер USB в последовательный.
Как более продвинутый дизайнер, вы можете выбрать AVRDragon, основанный на USB. IT работает как универсальный программатор AVR и эмулятор / отладчик. Если цена не кусается, дерзайте.
Загрузчики бутылок AVR
Это последняя опция, но достаточно полезная для программирования AVR. Загрузочная загрузка — это так называемое самопрограммирование, когда внутри микросхемы выполняется небольшая резидентная программа, которая принимает передачу через любой желаемый интерфейс.Вы можете подключить USB, последовательный кабель или даже карту флэш-памяти, например SD, и загрузить прошивку без программиста. Какими бы крутыми ни были загрузчики, вам понадобится программист, который поставит загрузчик первым. У загрузчиков есть ограничения, так как они не позволяют программировать плавкие биты. Мы вернемся к загрузчикам позже. А пока остановимся на программисте.
Заголовки для программаторов
Когда вы будете искать в Интернете, вы найдете множество вариантов программатора. Большинство из них в порядке, но убедитесь, что у них есть правильные программные заголовки.Есть два типа заголовков, которые распространены на большинстве плат AVR. Это 6-контактные и 10-контактные разъемы. Вы можете использовать любой из них.
Я предпочитаю 6 контактов, так как он занимает меньше места на плате. 10-контактный разъем имеет те же функции в другой компоновке, где 4 контакта потрачены впустую — подключены к земле или не подключены вообще. Чтобы использовать программатор на макетной плате, вам может понадобиться программный адаптер AVR, который выравнивает контакты по одной линии. Или вы можете провести некоторое подключение, чтобы достичь того же результата.
AVRISP Параллельный порт AVR ISP в системном программаторе — AVRISP
AVR в системном программаторе — параллельный порт (AVR ISP)
Оригинальный AVRISP с поддержкой всех микроконтроллеров AVR ATtiny, AT90S и ATmega, а также всех 32-битных операционных систем Windows.Недорогой программатор параллельного порта для всех микроконтроллеров AVR.
Это программное обеспечение не будет работать в 64-битной ОС Windows, даже в 32-битном режиме виртуальной XP под 64-битной Windows7.
Для поддержки 64-битной версии вам потребуется обновить наш USB-программатор.
Доступна недорогая USB-версия этого программатора AVR ISP. См. AVRISP-U USB AVR ISP Programmer.
Интерфейс ПК для этого программатора — параллельный порт. Подключаемая плата параллельного порта доступна, если на вашем ПК нет последовательной и параллельной платы параллельного порта
PCI.
Функции программатора
- ПК Интерфейс AVR ISP Dongle (порт принтера)
- 10-контактный ленточный кабель к стандартному разъему Kanda AVR ISP
- Программное обеспечение AVRISP с
- Управление проектами
- Буфер отображения и редактирования
- Поддержка большинства форматов файлов
- Стирание, программирование, чтение, проверка, автоматическая программа
- Версии DLL и командной строки доступны бесплатно — см. страницу загрузки
Поддержка микроконтроллера AVR
Новые устройства AVR будут поддерживаться по мере их выпуска
- ATtiny12, ATtiny13, ATtiny15, ATtiny22, ATtiny2313, ATtiny24, ATtiny26, ATtiny261
- ATtiny44, ATtiny45, ATtiny461, ATtiny84, ATtiny85, ATtiny861
- AT90S1200, AT90S2313, AT90S2323, AT90S2343, AT90S4433, AT90S8515, AT90S8535,
- ATmega103, ATmega128, ATmega1280, ATmega1281, ATmega16, ATmega161, ATmega162, ATmega163, ATmega164P, ATmega165, ATmega168, ATmega169, ATmega2560, ATmega2561,
- ATmega32, ATmega323, ATmega324P, ATmega325, ATmega3250, ATmega329, ATmega3290, ATmega48
- ATmega64, ATmega640, ATmega644, ATmega644P, ATmega645, ATmega6450, ATmega649, ATmega6490
- ATmega8, ATmega8515, ATmega8535, ATmega88
- AT90CAN32, AT90CAN64, AT90CAN128, AT90PWM2 / 3
- Эквивалентное низкое напряжение (L) Поддерживаются детали
Поддерживает микроконтроллеры L и LS AVR, но не рекомендуется для программирования низкого напряжения (sub 3.3В). Для программирования низкого напряжения мы рекомендуем недорогой USB-программатор AVR
AVRISP USB Programmer
или наш профессиональный USB-программатор AVR.
Операционные системы
- Win 95/98 / ME / NT4 / 2000 / XP / VISTA / 7
Этот программатор AVR такой же, как и тот, что поставляется с более старыми Стартовый комплект STK200 AVR и Стартовый комплект STK300 ATmega128 AVR.
6-ходовой адаптер
Теперь у нас есть адаптеры для преобразования стандартного 10-стороннего заголовка Kanda в другие 6-сторонние заголовки.
6-контактный адаптер DIL
6 односторонних проводов
6-контактный разъем Micromatch
См. Обзор линейки программаторов Kanda AVR
См. Руководство по схемам AVR ISP для схем рекомендуемых схем AVR ISP (новое окно).
Создайте свой собственный, сверхпростой, универсальный программатор AVR !! — Блог о встроенной электронике
В этом посте мы увидим, как сделать свой собственный, сверхпростой и универсальный программатор AVR. Могут быть построены два типа программаторов AVR:
1) Параллельный порт
2) Последовательный порт
Программатор последовательного порта (ссылка: At-Prog) показан здесь.Основное преимущество использования последовательного порта в том, что длина кабеля может достигать 2 м. Вы можете использовать программное обеспечение PonyProg2000 для программирования вашего AVR с помощью этого программатора. Последовательный порт генерирует + — 12 В на своих выводах, поэтому диоды и стабилитрон используются для ограничения +12 В до + 5,0 В (4,7 В из-за стабилитрона + 0,3 В из-за bat85) и от -12 В до -0,3 В (из-за более низкого напряжения Bat85 ). Вы можете заменить Bat85 на 1n4148, однако это не рекомендуется, потому что этот диод будет зажимать +12 В и -12 В до + 5,4 В и -0,7 В, что нежелательно в соответствии с таблицей данных микроконтроллера.Дело не в том, что микро сгорит, если использовать диоды 1N4148, но зачем рисковать !!
СХЕМА:
ПЕРЕЧЕНЬ КОМПОНЕНТОВ:
1) Резисторы | 1K, 1/4 Вт | 4 |
2) Конденсаторы | 27пФ, диск | 2 |
1 мкФ, электролитический | 2 | |
3) Кристалл | 4 МГц ИЛИ 8 МГц | 1 |
4) Регулятор напряжения | 7805 | 1 |
5) Разъем | D9 Женский | 1 |
6) Диод | Бат85 | 8 |
7) Стабилитрон | 4.7V | 1 |
8) Сетка PCB | 3 ″ x 3 ″ | |
9) Соединительные провода | – | – |
примерная стоимость: 90 рупий
НАСТРОЙКА И ИСПОЛЬЗОВАНИЕ PONYPROG2000:
- Все шаги такие же, как описано в разделе программатора параллельного порта, однако на третьем шаге выполните следующие настройки: выберите «последовательный», из списка выберите «SI prog I / O», выберите «COM1» (обычно последовательный порт находится на COM1 , если на вашем компьютере несколько последовательных портов, будут активны несколько параметров.Выберите подходящий, если знаете, иначе выполните метод проб и ошибок), отметьте «Инвертировать сброс». Щелкните ОК.
Примечание: это уже устарело! Эта информация была сохранена здесь только для устаревших целей. Вместо этого используйте программатор на базе последовательного порта .
На следующей принципиальной схеме показан сверхпростой микроконтроллер AVR (ИСТОЧНИК: неизвестен). Он требует очень мало компонентов и его очень просто построить на матричной печатной плате общего назначения. Вы можете использовать программное обеспечение PonyProg2000 для программирования вашего AVR с помощью этого программатора.
СХЕМА:
ПЕРЕЧЕНЬ КОМПОНЕНТОВ:
1) Резисторы | 220 Ом, 1/4 Вт | 4 |
2) Конденсаторы | 27пФ, диск | 2 |
1 мкФ, электролитический | 2 | |
3) Кристалл | 4 МГц ИЛИ 8 МГц | 1 |
4) Регулятор напряжения | 7805 | 1 |
5) Разъем | D25 Наружный | 1 |
6) Печатная плата с сеткой | 3 ″ x 3 ″ | |
7) Соединительные провода | – | – |
примерная стоимость: 55 рупий
• Поскольку схема программатора очень проста, вы можете использовать заменители, если конкретный компонент недоступен у вас.
• Вы не получите готовую плату GPCB размером 3 x 3 дюйма, вам придется вырезать печатную плату стандартного размера. 3 x 3 дюйма — это всего лишь приблизительная оценка
SNAPS:
На следующей фотографии показан программатор, который я сделал для микроконтроллеров AVR на 40 и 20 контактов. Контакты MISO, MOSI, SCK, RESET, X1, X2, VCC и GND 40-контактного и 20-контактного разъемов соединены вместе.
НАСТРОЙКА И ИСПОЛЬЗОВАНИЕ PONYPROG2000:
- Открыть PonyProg2000
- Выберите меню: Настройка> Настройка интерфейса
- Выберите «параллельно», в раскрывающемся списке выберите «Avr isp i / o», выберите «LPT1».Щелкните ОК.
- Теперь выберите меню «Настройка»> «Калибровка». В появившемся диалоговом окне нажмите ДА.
- Теперь PonyProg2000 настроен и готов к использованию.
- Чтобы записать файл .Hex в micro, выберите File> Open Program (FLASH) file.
- Выберите соответствующий микроконтроллер из списка устройств вверху справа. например>
- Подключите ваш программатор ckt к ПК, затем вставьте ваш микроконтроллер в программатор ckt и включите его питание.
- Теперь щелкните обведенный значок:
- Когда устройство будет запрограммировано, вы получите сообщение «Программа успешно завершена».
• Схемы, показанные выше, являются общими и подходят для любого микроконтроллера AVR, который поддерживает ISP (почти все AVR, вы можете обратиться на www.atmel.com).
• Подключите контакты (например, MISO, MOSI и т. Д.) AVR к соответствующим точкам показано на принципиальной схеме.
• Вы можете создать программатор для более чем одного устройства AVR, используя разные разъемы IC для каждого устройства и выполняя соответствующие соединения всех вышеперечисленных сигнальных линий (MISO, MOSI, SCK, RESET, X1, X2) и Vcc, Gnd каждого AVR.
• Предпочитайте использовать гнездо ZIF с основанием IC (см .: Как использовать гнездо ZIF в цепи без повторного сверления отверстий на печатных платах).Хотя это немного дорого, но оказывается чрезвычайно полезным.
[Всего: 7 Среднее: 3,1 / 5]
Нравится:
Нравится Загрузка …
СвязанныеISP Программист | Сайт Адама
Внимание!
ISP Programmer больше не поддерживается. Пожалуйста, купите наконец USB-кабели для программирования и начните использовать AVR Studio, avrdude и т. Д. Исходный код теперь заброшен, и он будет оставаться на Sourceforge на долгие годы.
Это программное обеспечение поддерживает программирование микроконтроллеров Atmel 89Sxx (’51), ATtiny , ATmega и 90Sxx (AVR).Он может стирать встроенную память Flash и EEPROM, а также читать и программировать их. ISP Programmer также поддерживает последовательные памяти Atmel DataFlash. Связь с устройствами осуществляется последовательно в системе ( ISP — Внутрисистемное программирование) без необходимости вынимать микросхему из гнезда или извлекать ее из припоя.
Микроконтроллер, который вы хотите запрограммировать, должен быть подключен к порту принтера (LPT) компьютера (напрямую с помощью проводов, без сигнала STROBE) в соответствии со следующим списком:
Микроконтроллер LPT порт LPT порт сигнал номер контакта сигнала [СТРОБ] ---- СТРОБ 1 СБРОС ---- AUTOLF 14 MOSI ---- INIT 16 SCK ---- SLCT-IN 17 MISO ---- ACK 10 GND ---- GND 25
Сигнал STROBE, подключенный к выводу 1 порта LPT, используется для управления включением 3-х состояний буферов программирования последовательной шины (SCK, MISO, MOSI).Использование не является обязательным. Но в случае подключения порта LPT напрямую к контактам микроконтроллера, вы должны использовать те же логические уровни (земля / 5 В), что и порт LPT на хосте, и убедиться, что программирование не нарушит нормальную работу периферийных устройств, подключенных к этому микроконтроллеру. Например, сигналы программирования не должны подключаться к разрешающему выводу ЖК-дисплея.
Ниже вы можете увидеть примерную схему кабеля для программирования с использованием буфера с 3 состояниями:
Подключение кабеля программирования к контактам микроконтроллера зависит от типа микроконтроллера, см. Документацию на сайте Atmel.
С ISP Programmer вы можете использовать любую распиновку кабеля для программирования, включая AT-Prog, SI-Prog, UISP, STK200 / 300 и AEC ISP. Вы можете выбрать любые выводы LPT порта для программирования сигналов, а также задать произвольный уровень сигнала RESET.
ВНИМАНИЕ: В случае программирования памяти Atmel DataFlash, сигнал RESET, определенный в распиновке, должен быть соединен с линией ChipSelect (/ CS) микросхемы.
Поддерживаемые микроконтроллеры:
- AT89S2051, AT89S4051, AT89S51, AT89LS51, AT89S52, AT89LS52, AT89S53, AT89S8252, AT89S8253
- AT90S1200, AT90S2313, AT90S2323, AT90S2333, AT90S2343, AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90S8535, AT90CAN32, AT90CAN64, AT90CAN128, AT90PWM2, AT79090WM2, AT79090USBUS
- ATtiny12, ATtiny13, ATtiny15, ATtiny24, ATtiny25, ATtiny26, ATtiny44, ATtiny45, ATtiny84, ATtiny85, ATtiny261, ATtiny461, ATtiny861, ATtiny2313
- ATmega48, ATmega48P, ATmega8, ATmega88, ATmega88P, ATmega8515, ATmega8535, ATmega16, ATmega161, ATmega162, ATmega163, ATmega164P, ATmega165P, ATmega168, ATmega168P, ATmega169, ATmega32, ATmega323, ATmega324P, ATmega325, ATmega328P, ATmega329, ATmega64, ATmega128, ATmega640 , ATmega644, ATmega644P, ATmega645, ATmega649, ATmega1280, ATmega1281, ATmega1284P, ATmega2560, ATmega2561, ATmega3250, ATmega3290, ATmega6450, ATmega6490
Поддерживаемая последовательная флэш-память:
- AT45DB011B, AT45DB011D, AT45DB021B, AT45DB021D, AT45DB041B, AT45DB041D, AT45DB081B, AT45DB081D, AT45DB161B, AT45DB161D, AT45DB321B32, ATD1245DB, AT245DB321D, ATD1245, ATD1245
- AT25DF021, AT25DF041A, AT25DF081, AT26DF081, AT25DF161, AT26DF161, AT25DF321, AT25DF641, AT25F512B, AT25FS010, AT26F004
Все настройки ISP Programmer хранятся в системном реестре, вы также можете сохранить их в текстовый файл.
Это программное обеспечение работает в Windows 95, 98, Me, NT 4.0, 2000, XP, 2003, Vista и Windows 7 (32-битные и 64-битные версии).
Скриншоты ISP Programmer, работающего в 64-разрядной версии Windows 7:
Дом
|
|
ChipBlasterAVR
ChipBlasterAVR Встроенные инструменты, которые
имеют значение ™
•
Приложение, работающее под Windows® XP, Vista, Windows 7, Windows 8 и Windows 10, 32-разрядная и 64-разрядная версии
•
Работает с программаторами на базе USB, последовательного (COM) и параллельного (LPT) порта
•
Загружает и сохраняет производственные файлы ELF, файлы Intel HEX и двоичные файлы
•
Позволяет визуализировать и редактировать содержимое флэш-памяти, EEPROM, байтов блокировки и предохранителя.
•
Поддерживает проекты, позволяя легко программировать устройства AVR одной кнопкой.Полностью совместим с проектами CodeVisionAVR, позволяет выполнять задачи программирования, указанные в меню CodeVisionAVR Project | Configure | After Build . Идеально подходит для производственной среды.
Поддерживаются следующие программисты:
ЧипБластер AVR
Универсальное внутрисистемное программное обеспечение для программирования микросхем AVR
•
Atmel STK500 (последовательное соединение)•
Atmel AVRISP (последовательное соединение)•
Atmel EDBG (подключение по USB)
•
Atmel mEDBG (подключение по USB)
•
Atmel nEDBG (USB-подключение)
•
Примечание по применению Atmel AVR910 (последовательное соединение)•
USBASP (USB-соединение)
•
Kanda Systems STK200 и STK300 (подключение через параллельный порт LPT)
•
Vogel Elektronic VTEC ISP (подключение через параллельный порт LPT)
•
Dontronics DT006 (подключение к параллельному порту LPT)
.