Site Loader

Содержание

ПРОГРАММАТОР МИКРОКОНТРОЛЛЕРОВ

   Недавно заинтересовался AVR микроконтроллерами, разумеется сразу же возникла надобность в программаторе. Программатор на LPT порту меня не устроил, из-за того, что есть вероятность сжечь порт компьютера. Можно было конечно собрать USB программатор, но его также нужно было бы чем-то прошивать. Тогда я наткнулся на схему программатора Громова и решено было собрать его. Писали, что программатор работает с оболочками UniProf и avrdude. Сама схема очень простая:


Схема электрическая программатора AVR COM


Схема программатора AVR COM — второй вариант

   Печатную плату скачал готовую, немного изменил, чтобы можно было нарисовать маркером, получилось следующее:

   Все резисторы, кроме идущего с катода светодиода на землю (он номиналом 470 Ом) на 1 кОм, всего в схеме этих резисторов 7 штук.
Резисторы на 1 ком ставятся для того, чтобы погасить часть напряжения идущего от СОМ порта с 12 вольт, до требуемых для микроконтроллера 5 вольт. Диоды взял КД522, 3 штуки. В схеме есть индикация питания на светодиоде, поставил зеленого цвета, советский 5 мм диаметром. У меня в запасах был кабель удлинитель COM 9M/9F, как раз подходящий для этих целей, разъем с обратной стороны кабеля был мной обрезан.


   Кабель был экранированный, что позволяет удобно расположить корпус с программатором в любом удобном месте, насколько хватает длины проводов, тогда как в случае с неэкранированными проводками, если бы нами был использован только разъем СОМ длина ограничена полуметром, иначе программатор может работать со сбоями.  


   Так как проводники, выходящие с программатора и идущие, в моем случае на цанговую макетную плату, на которой я буду собирать и отлаживать первые устройства, рекомендуют делать длиной не более 15 – 20 см, я сделал длиной 15 см обычным гибким разноцветным монтажным проводом. Кабель идущий с СОМ порта решено было прикрепить хомутом к плате, ввиду того что в процессе эксплуатации программатора он мог бы вырваться, так как он достаточно жесткий. Проводки выходящие из программатора и идущие на микроконтроллер также стянул проволочным хомутом. Плата была протравлена и залужена:


   В качестве корпуса хорошо подошла коробочка от губки для обуви. Питание микроконтроллера планируется мною от внешнего блока питания со стабилизатором напряжения на микросхеме 7805, пока еще не реализовано. Печатную плату выкладываю. Сборка устройства и описание: AKV.

   Форум по программатору Громова

   Форум по обсуждению материала ПРОГРАММАТОР МИКРОКОНТРОЛЛЕРОВ

Программатор Громова. Прошивка контроллера.

Всем привет. Сегодня у меня для вас новая статья, посвященная одному из самых простых и популярных программаторов AVRок — программаторе Громова — так его называют в сети.

Данную статью о программаторе, я планировал еще давно, но все было как-то не до нее . Но вот сейчас и приступим.

Запрограммировать контроллер AVR на сегодня возможно двумя способами:

1) С помощью высоковольтного параллельного программатора. Это скорее промышленный вариант, так как в этом случае корпус контроллера усаживается в специальную панельку и подав высокое напряжение (большее напряжения питания) зашивается заранее подготовленная программа. После чего контроллер запаивается в плату по месту назначения. Здесь есть ощутимый плюс —  полный контроль над всем нутром контроллера. А процесс зашивки моментальный.

Но если выяснится, что зашитая программа имеет непростительный баг? И что же делать — контроллер ведь уже запаян? Снова выпаивать?

Для радиолюбительской практики такой вариант не подходит, хотя иметь в загашнике высоковольтный программатор будет полезно. В одной  из следующих статей кстати будет очень полезная информация так что [urlspan]не пропустите[/urlspan].

2) Мы пойдем по другому пути — и к нашим услугам внутрисхемный программатор. При этом способе контроллер устанавливается сразу в схему без каких-либо промежуточных действий. В этом случае программа зашивается внутрисхемно. Что же это значит?

Все просто, при разработке какого-либо девайса мы заранее предусматриваем программирующий разъем. Программирующий разъем  устанавливаем  прямо на плату нашего устройства. В своей отладочной плате я именно так и поступил, там имеется разъем, причем разъем может быть любым, но под это дело есть некий стандарт. Обычно используется десятиштырьковый разъем PLS, похожий на те, что сидят на материнских платах компьютеров.

Так вот на этот разъем с контроллера выводится 5 сигналов: mosi, miso, sck, reset, GND. Через эти контакты и будет зашиваться программа. Причем делать это можно многократно — ведь выпаивать нам ничего не придется. Единственное что должно быть сделано так это то, что контроллер должен быть запитан и запущен. Впрочем питание можно подать и с программирующего разъема. Тогда у нас будет уже не пять сигналов а шесть, но это совсем не сложно. Только здесь есть небольшая особенность — нужно быть внимательным при простановке фьюзов (

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

Небольшое отступление.

Фьюзы или фьюз биты — это биты конфигурации контроллера. Их нельзя выставить из тела программы. Фьюз биты обычно проставляются перед зашивкой программы — с помощью программатора и программы-прошивальщика.

С помощью фьюз битов можно изменить способ тактирования контроллера. Так вот, если в своей схеме контроллер тактируется от своего внутреннего генератора, а вы в фьюзах выставили способ тактирования от кварца, то схема работать не будет. Контроллер не запустится, а значит что -либо изменить не удастся. Но это дело поправимое. Нужно лишь подпаять нужный кварц и пару конденсаторов тогда все заработает и программу можно дальше править и перешивать.

Но есть фьюз бит, выставив который мы теряем возможность внутрисхемного программирования  — нужен параллельный программатор. Так что будьте внимательны  и прежде чем зашить фьюз биты хорошенько читайте даташит.


Разновидностей внутрисхемных программаторов на сегодня очень и очень много и выбрать приемлемый вариант бывает не просто. Все программаторы делятся по способу подключения к компьютеру,  мне известны три : через LPT, COM, USB.

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

В наше время когда порты com и lpt уходят в небытие, единственно рабочий вариант остается USB. Но тут есть ряд проблем. Как правило схемы программаторов, работающих от USB имеют в своем составе микроконтроллер, который естественно нужно прошить, а для прошивки нужен программатор. Вот такой вот замкнутый круг. Хотя в последнее время на просторах интернета появилась схема usb программатора, которая не требует прошивки. Схема простая, но я с ней плотно не разбирался поэтому говорить о ней я не буду — если очень интересно найдете сами.

Мы пойдем по более сложному пути — займемся изготовление программатора Громова.  Этот программатор работает через  com порт, который  в отличие от lpt,   редко но все еще встречается в современных компьютерах. И кстати если  на задней стенке своего компьютера  вы его не обнаружили, это еще не значит что его нет, так на многих материнских платах он может присутствовать в виде pls штырьков,  нужно почитать документацию к материнской плате.

Схема.

Схема самого программатора на удивление простая и мне очень жаль, что я не встречал ее раньше.

Ее можно собрать даже навесным  монтажом на коленке, но на плате все-таки будет смотреться солиднее. Для этого программатора нам потребуется семь резисторов  по килоому каждый и три маломощных  диода.  Как известно напряжение с com-порта в пределах 12 В, а контроллер работает с 5-ти вольтовым напряжением. Так вот схема из диодов и резисторов послужит нам для согласования уровней. Резисторный делитель из 12 вольт дает нам 6 вольт, а остаток  из одного вольта высаживается на диоде — получаем 5 вольт и это то что нам и нужно.

Схему я нарисовал в  программе Eagle CAD, затем путем нескольких незамысловатых движений мышкой родилась вот такая платка.

Файлы проекта можете скачать по [urlspan]этой ссылке[/urlspan].

Рисунок ее был распечатан на лазерном принтере  и подвержен зверской технологии ЛУТ.  После всех манипуляций мне оставалось только напаять деталей и выставить сие творение на ваш суд.  🙂

Входы и выходы.

На плате слева расположены монтажные отверстия для подключения разъема DB-9F (мама) известного как разъема COM-порта. с нашей платой он будет соединен посредством проводов.  На схеме для этого обозначены отверстия: DB9/2, DB9/3, DB9/4, DB9/5, DB9/7, DB9/8. На схеме контакты подписаны — не промахнетесь 🙂 Хочу добавить, что провод желательно брать не длиннее 25 см.  При более длинном проводе возможны помехи, а в результате ошибки  при зашивке программы.

 В моем варианте питание будет подаваться  от компьютера,  поэтому для  удобства  я вывел контакты

питания PinGND и Pin+5.  Затем они будут соединены с питающим разъемом, в принципе под это дело можно применить и отдельный блок питания с напряжением +5 В — проблемы не будет.

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

С правой стороны расположены контакты для подпайки десятиконтактного программирущего IDC разъема. У меня он выглядит так. Здесь он идет в связке с разъемом DB-9M (папа).

К плате программатора вся эта конструкция подключается через разъем DB-9F.

Теперь можно откинуться на спинку стула  и отдохнуть, ведь можно сказать с задачей мы справились — собрали программатор Громова.  Но долго расслабляться нельзя, ведь впереди нас ждут испытания нашего творения. Поэтому чтобы не устроить сюрприз своему компьютеру советую все хорошенько прозвонить мультиметром и проверить монтаж и только после этого переходить к испытанию нашего девайса.

Итак программатор у нас собран и лежит на столе в ожидании. Для того, чтобы воплотить в жизнь все то что мы задумали  нам нужен управляющий софт — Программа Uniprof.

Программа Uniprof —это тот самый софт, с помощью которого наш программатор будет общаться с компьютером. Эту программу написал  автор по фамилии Николаев за что целая армия радиолюбителей говорит ему — СПАСИБО. Кстати саму программу можно скачать с [urlspan]сайта автора[/urlspan] или [urlspan]у меня[/urlspan].

Выключаем наш компьютер и подключаем программатор разъемом DB-9F к COM-порту компьютера. Разъем питания я подключил к блоку питания родного компьютера. На этом этапе желательно подключить плату нашего программируемого пациента — плату с контроллером.  Я подключил опытную плату с контроллером Attiny 45. Ну что, теперь минута молчания иии . . . жмем кнопку POWER системного блока компьютера. Ждем когда загрузится наше операционная система.

Запускаем Uniprof. При запуске он у  немного ругнулся, выдав окошко со знакомым ERROR, говорит что у меня что-то неладное с LPT. . . хех, глуповато конечно но  простим его на сей раз,  ткнув по крестику.

На следующим этапе окошко программы все-таки открылось, но появилось сообщение о том, что контроллер не откликнулся. Но мы не паникуем.

Ведь программа совсем не в курсе к какому именно порту подрублен наш контроллер. Тут на выбор кроме ранее упомянутого LPT порта, есть еще набор с COM1 по COM5.Так что простым перебором добиваемся полного опознания нашего контроллера.

Контроллер определился, теперь нам нужно выполнить чтение — нажимаем на READ.

Если контроллер чистый, то в окне программы должны получиться прочерки, но в моем случае получилось иначе — прочерки чередовались с различными шестнадцатиричными числами. Возможно проблема была в длинном проводе, соединяющего программатор с компьютером или с высокой производительностью компьютера. Но в любом случае это вылечилось установкой галочки «ТОРМОЗ» . Время выполнения чтения оказалось несколько более длительным, но зато результат стал лучше.

Вот подходит время таки записать программный HEX файл в наш контроллер, но нужно также не забыть установить правильные фьюз биты. Доступ к ним открывается нажатием кнопки с надписью FUSE.

Выставляем все правильно, предварительно проштудировав даташит на нужный контроллер.  Важный совет, выполните чтение фьюзов и убедитесь что фьюз бит SPIEN не установлен, так как установка этого фьюза не позволит вам в дальнейшем применять для этого контроллера наш программатор Громова.

Далее кликаем по кнопке с открытой желтой папкой под названием HEX и выбираем наш HEX. 🙂 Текст программы должен отразиться в окошке Uniprof. Ну что же, теперь остается только нажать на кнопку с красной стрелочкой с названием Prog и дело в шляпе.

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

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

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

 

 

Ну что же, думаю статья окажется для вас полезной и поможет сделать еще один шаг на пути освоения микроконтроллеров. На этом у меня все, желаю вам успехов и главное хорошего настроения!

С уважением, Владимир Васильев.

В качестве дополнения предлагаю посмотреть видеоролик на тему программирования контроллеров AVR.  Чтобы не пропустить следующие статьи советую подписаться по [urlspan]RSS[/urlspan]  или по [urlspan]электронной почте.[/urlspan]

Программатор Громова: назначение, описание

Для людей, которые любят конструировать радиоэлектронные приборы, рано или поздно возникает необходимость использовать в своих разработках микроконтроллеры. Применение этих устройств открывает огромные возможности перед радиоинженером. Микроконтроллеры выпускают всего несколько фирм, лидерами являются — Microchip Technology, ATMEL, ARM Limited. Особенностью таких устройств является необходимость их прошивки. Вот для этого и требуются программаторы. Существует много типов этих приборов, можно приобрести фирменный, а можно сделать своими руками. Если вы выбрали второй вариант, лучше всего воспользоваться готовым и проверенным решением, таким как программатор Громова. Устройство достаточно простое, собрать его под силу даже новичку.

СОМ(AVR)-программатор Громова

СОМ-программатор несложен в изготовлении. При условии применения альтернативного режима «СОМовского» порта Bitbang становится ненужным преобразование интерфейса RS232 СОМ-порта в SPI, который необходим для программирования. Останется только согласовать уровни сигналов в СОМ-порте, от -12В, +12В к 0В и +5В. Для этого и предназначена схема программатора для AVR-контроллеров. На фото ниже показан программатор Громова.

Впервые эта схема была предложена автором программы AlgoritmBuilder Геннадием Громовым и быстро завоевала популярность своей надежностью и простотой исполнения.

Для того чтобы приступить к сборке прибора, нам понадобятся:

  • Диоды КД510, КД522, 1N4148 или их аналоги.
  • Семь резисторов с номинальным сопротивлением 1кОм, мощность не имеет значение.
  • Шлейф – можно воспользоваться ненужным компьютерным IDE-шлейфом. Для более устойчивой работы схемы программатора необходимо чередовать сигнальные провода с нулевым проводом. Так мы сможем снизить уровень наводимых помех в цепях, а также удлинить программирующий провод. Однако не стоит увлекаться, длина шлейфа не должна превышать 50см.
  • Разъем для подсоединения к программируемому устройству, можно воспользоваться стандартными разъемами (между прочим, это же рекомендуют и фирмы-производители микроконтроллеров), а можно использовать разъем типа BLS («мама»), такими же разъемами в компьютерах на материнской плате подключены корпусные кнопки и светодиоды и штырьки типа PLS («папы»). Использование указанных разъемов позволяет существенно упростить плату устройства, т. к. штырьки программатора размещаются в непосредственной близости к ножкам микроконтроллера. Контакты SCK, MOSI, MISO микроконтроллера типа AVR располагаются вместе, соответственно для них следует применить строенный разъем. Отдельно подключаем «землю» и «сброс».

Как видите все очень просто, этим и ценится программатор Громова.

Для работы этого устройства необходима программа и тестовая прошивка микроконтроллера.

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

По такому же принципу можно собрать и программатор usb, но схема такого устройства несколько сложнее.

Программатор Громова: назначение, описание

Для людей, которые любят конструировать радиоэлектронные приборы, рано или поздно возникает необходимость использовать в своих разработках микроконтроллеры. Применение этих устройств открывает огромные возможности перед радиоинженером. Микроконтроллеры выпускают всего несколько фирм, лидерами являются — Microchip Technology, ATMEL, ARM Limited. Особенностью таких устройств является необходимость их прошивки. Вот для этого и требуются программаторы. Существует много типов этих приборов, можно приобрести фирменный, а можно сделать своими руками. Если вы выбрали второй вариант, лучше всего воспользоваться готовым и проверенным решением, таким как программатор Громова. Устройство достаточно простое, собрать его под силу даже новичку.

СОМ(AVR)-программатор Громова

СОМ-программатор несложен в изготовлении. При условии применения альтернативного режима «СОМовского» порта Bitbang становится ненужным преобразование интерфейса RS232 СОМ-порта в SPI, который необходим для программирования. Останется только согласовать уровни сигналов в СОМ-порте, от -12В, +12В к 0В и +5В. Для этого и предназначена схема программатора для AVR-контроллеров. На фото ниже показан программатор Громова.

Впервые эта схема была предложена автором программы AlgoritmBuilder Геннадием Громовым и быстро завоевала популярность своей надежностью и простотой исполнения.

Для того чтобы приступить к сборке прибора, нам понадобятся:

  • Диоды КД510, КД522, 1N4148 или их аналоги.
  • Семь резисторов с номинальным сопротивлением 1кОм, мощность не имеет значение.
  • Шлейф – можно воспользоваться ненужным компьютерным IDE-шлейфом. Для более устойчивой работы схемы программатора необходимо чередовать сигнальные провода с нулевым проводом. Так мы сможем снизить уровень наводимых помех в цепях, а также удлинить программирующий провод. Однако не стоит увлекаться, длина шлейфа не должна превышать 50см.
  • Разъем для подсоединения к программируемому устройству, можно воспользоваться стандартными разъемами (между прочим, это же рекомендуют и фирмы-производители микроконтроллеров), а можно использовать разъем типа BLS («мама»), такими же разъемами в компьютерах на материнской плате подключены корпусные кнопки и светодиоды и штырьки типа PLS («папы»). Использование указанных разъемов позволяет существенно упростить плату устройства, т. к. штырьки программатора размещаются в непосредственной близости к ножкам микроконтроллера. Контакты SCK, MOSI, MISO микроконтроллера типа AVR располагаются вместе, соответственно для них следует применить строенный разъем. Отдельно подключаем «землю» и «сброс».

Как видите все очень просто, этим и ценится программатор Громова.

Для работы этого устройства необходима программа и тестовая прошивка микроконтроллера.

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

По такому же принципу можно собрать и программатор usb, но схема такого устройства несколько сложнее.

Схема USB программатора на Atmega8 своими руками

Данная схема USB программатора, построенного на микроконтроллере  Atmega8,  довольно проста в изготовлении, ее можно собрать своими руками буквально за один вечер.

Фактически это AVR-910 популярной схемы Prottoss-a. USB программатор надежен и имеет в своем арсенале функцию, позволяющая восстанавливать микроконтроллеры с неверно установленными фьюзами.

Тестер транзисторов / ESR-метр / генератор

Многофункциональный прибор для проверки транзисторов, диодов, тиристоров…

Следует отметить, что для прошивки самого микроконтроллера Atmega8 программатора понадобится простой LPT-программатор.

Печатную плату можно сделать своими руками по известной технологии ЛУТ. Поэтому на описании  изготовления платы останавливаться не будем, а перейдем сразу к описанию.

Итак, у нас все детали схемы припаяны без ошибок и коротких замыканий, плата очищена от остатков флюса. Теперь переводим переключатель SA2 в положение «МОД», подсоединяем наше устройство к простому LPT-программатору и включаем питание.

Теперь необходимо занести программу  в память Atmega8. В качестве программного обеспечения можно применить Uniprof или Code Vision AVR. Перед программированием необходимо выставить следующие фьюзы (для Uniprof):

По завершению прошивки Atmega8, переводим переключатель SA2 в положение «НОРМ», подсоединяем программатора к USB разъему компьютера. Если все шаги выполнены  верно, то компьютер должен без проблем обнаружить новое подключенное устройство.

Система предложит найти драйвер — отказываемся и указываем драйвер из нашего архива. По завершению установки драйвера для программатора, он полностью готов к работе.

Поговорим о программном обеспечении которое необходимо для работы с данным программатором. Он поддерживает такие оболочки как:  AVR Prog, AVR Studio, ChipBlasterAVR  и, конечно же,  Code Vision AVR.

Достаточно удобной программой, я считаю, является Code Vision AVR, пример работы, которой подробно написано здесь.

 Для справки, приведем типовую распиновку USB:

Список необходимых деталей:

  • Atmega8 — 1 шт.
  • Кварц 12МГц — 1 шт.
  • Диод 1N4007 – 2 шт.
  • Светодиод — 3 шт.
  • Резисторы: 68 Ом — 2 шт., 330 Ом — 8 шт., 1,5 Ом — 1 шт., 100 Ом -1 шт., 1,5 кОм -1 шт., 10 кОм -1 шт., 1 мОм -1 шт.
  • Конденсаторы:  0,1мк — 3 шт., 22мк х 10В — 1 шт., 22p — 2 шт. 

Скачать прошивку, драйвера и печатную плату (853,5 KiB, скачано: 20 112)

Источник: http://www.tehnari.ru/f115/t71649/

Com программатор для микроконтроллеров avr – Тарифы на сотовую связь