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

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

25.03.2019

Самый простой вариант программатора для 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.



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows