ПРОГРАММАТОР ДЛЯ НАЧИНАЮЩИХ

Содержание

Что нужно для программирования микроконтроллеров? ⋆ diodov.net

ПРОГРАММАТОР ДЛЯ НАЧИНАЮЩИХ

Теперь, когда мы уже ознакомлены с некоторыми возможностями и функциями микроконтроллеров, естественно, возникает логичный вопрос: что нужно для программирования микроконтроллеров? Какие необходимы программы и устройства, где их взять?

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

Структура и порядок написания программы

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

Когда она определена и полностью понятна, тогда составляется алгоритм работы программы. Алгоритм – это последовательность выполнения команд.

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

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

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

Здесь мы не будем сравнивать преимущества и недостатки написания программ на Ассемблере и Си. Со временем, приобретя некоторый опыт в программировании МК, вы сами для себя сделаете полезные выводы.

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

Компиляция программы

Написанный нами код на Си еще вовсе не понятен микроконтроллеру, поскольку МК понимает команды только в двоичной (или шестнадцатеричной) системе, которая представляет собой набор нулей и единиц. Поэтому Си-шный код нужно преобразовать в нули и единицы. Для этого применяется специальная программа, называемая компилятор, а сам процесс преобразования кода называется компиляция.

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

Для прошивки МК применяется устройство, называемое программатор. В зависимости от типа программатора вход его подключается к COM или USB порту, а выход к определенным выводам микроконтроллера.

Существует широкий выбор программаторов и отладочных плат, однако нас вполне устроит самый простой программатор USBASP, который в Китае стоит не более 3 $.

После того, как микроконтроллер прошит, выполняется отладка и тестирование программы на реальном устройстве или, как еще говорят, на «железе».

Теперь давайте подытожим этапы программирования микроконтроллеров.

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

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

Необходимый набор программ

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

1) Atmel Studio

2) CodeVisionAVR

3) WinAVR

Все эти программы относятся к IDEIntegrated Development Environment – интегрированная среда разработки. В них можно писать код, компилировать и отлаживать его.

Следует обратить внимание на Code Vision AVR. Эта IDE позволяет упростить и ускорить написание кода. Однако программа платная.

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

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

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

Прошивка и отладка программы

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

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

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

Источник: https://diodov.net/chto-nuzhno-dlya-programmirovaniya-mikrokontrollerov/

AVR микроконтроллеры. Программирование для начинающих

ПРОГРАММАТОР ДЛЯ НАЧИНАЮЩИХ

 Итак, что такое микроконтроллер мы в общих чертах разобрались (смотрим Программирование для начинающих. часть1 ), теперь нам нужен программатор.
Самый простой программатор для AVR микроконтроллеров можно изготовить по вот такой схеме:

Называется он STK-200. В общем-то вполне и подошел-бы программатор PONY PROG, но у него есть один очень существенный минус- он не дает запрограммировать некоторые фьюзы, которые иногда еще называют опасными (например RSTDSBL, DWEN, SPIEN).

Если случайно запрограммировать такой опасный фьюз, то вы отключите возможность пользоваться ISP программатором, МК заблокируется, для восстановления МК нужен будет параллельный программатор (высоковольтный).

А вот для управления программатором STK-200 можно использовать программу от PONY PROG- об этом чуть ниже.

Есть еще вариант программаторов так называемый “5 проводков”- напрямую от LPT порта компьютера, но пользоваться программаторами типа “5 проводков” не рекомендуется.

Есть облегченный вариант программатора STK-200, который так-же построен на нескольких проводках, собирать его я так же не рекомендую, по той причине, что таким программатором очень легко спалить LPT порт, для сравнения – COM порт спалить в разы труднее.

Да и потом, программируя “5ти проводками” можно случайно замкнуть эти провода между собой, спалить МК или опять же порт. Использование буферного повторителя в микросхеме улучшает крутизну фронтов сигнала, а так же бережет LPT порт, от случайных КЗ и перенапряжений

Вернемся к схеме программатора STK-200: в нем применена всего-ли одна микросхема 74HC244 (аналог у нее КР1533АП5).

В схеме присутствуют 3 светодиода: питание, чтение, запись. Длина соединяющих проводов должна быть как можно короче.

Чуть ниже прилагаются фотографии готового программатора STK-200.

На фото, на плате программатора присутствует кварц и конденсаторы.

Кварц нужно ставить на 4 мГц, конденсаторы на 5-15 пФ, два штырька рядом со светодиодами на плате, используются для подачи питания, 5 вольт.

Если вы будете собирать переходник, то питание подается с платы переходника, т.к. там стоит “Кренка” на 5 Вольт, она защитит микроконтроллер и схему от переполюсовки или превышения напряжения.

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

Ниже в архиве прикреплены файлы для изготовления программатора- схема, печатная плата программатора и переходника для ATmega8/48/168, ATtiny2313.

Для того чтобы проверить работает ли наш программатор, подключаем его в порт LPT, кликаем правой кнопкой мыши на значке “Мой компьютер”, в появившемся списке выбираем “диспетчере устройств”, откроется окошко, кликаем обновить конфигурацию оборудования и на программаторе моргнут светодиоды чтения/записи. Кстати, питание берется от внешнего источника, а не с LPT порта, будьте внимательны.

Главным преимуществом параллельного программатора является способность восстанавливать некоторые неправильно установленные биты. После этого интерфейс ISP отключается, и при программировании последовательным программатором в таких случаях выдается сообщение об ошибке.

Выбор программы для прошивки микроконтроллера

Популярными программами для прошивки AVR микроконтроллеров  являются PonyProg и CodeVision AVR.

Я пользуюсь Code Vision AVR (далее CVAVR), но рассмотрим мы обе программы.

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

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

Для того, чтобы запрограммировать микроконтроллер нам нужны файлы прошивки, файл с расширением .hex, в некоторых проектах используется еще файл EEPROM .eep.

(электрически изменяемая память данных, в нем хранятся различного рода константы).

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

Прошивка микроконтроллера с помощью PonyProg

Конечно сначала надо скачать и установить саму программу. Она есть здесь. 
Скачали, установили, запускаем. Появилось вот такое окошко (еще и звук при запуске будет в виде лошадиного ржача…)

Затем- в списке устройств нужно выбрать наш МК: кликаем меню “Устройство”, затем выбираем AVRmicro ->ATmega8.

Потом, конечно-же нам нужен сам файл прошивки, для этого кликаем Файл -> Открыть файл программы (FLASH)… Откроется окошко, где нам нужно выбрать наш файл прошивки с расширением .hex.

не забываем в списке выбрать нужное нам расширение файла, иначе файл прошивки не обнаружится

После того как мы этот файл открыли, в окошке появятся куча всяких непонятных цифр и букв. Это так выглядит прошива в 16-тиричном коде.

Ужас, конечно, на первый взгляд, но пусть это вас не пугает: все это написано не нами, менять там ничего не надо и если сама прошивка рабочая, то можно даже  не вдаваться в подробности что там да как…

Теперь- нам точно так-же нужно выбрать файл прошивки EEPROM с расширением .eep, если конечно он нужен и прилагается.

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

Кликаем Установки -> Настройка оборудования. Все настройки выставляем как на рисунке ниже, затем нажимаем кнопку “Проверка” – должно выйти окошко “Тест ОК”

Если вдруг тест настроек PONY на прошел и выскочило окошко с надписью “Тест ОШИБКА”

Тогда нам надо проверить конфигурацию порта LTP.
Кликаем правой кнопкой мыши на значке “Мой компьютер” и выбираем “Диспетчер устройств” или можно зайти в Панель управления -> Система -> Оборудование -> Диспетчер устройств.

в списке находим Порты (COM и LPT ), кликаем правой кнопкой мыши на нем и нажимаем “Обновить конфигурацию оборудования”

Затем закрываем окно, и возвращаемся к PonyProg, заново запускаем тест, нажимаем “Проверка”, должно выйти окошко с надписью “Тест ОК”.

 Если все в порядке, то нажимаем “ОК”, далее переходим в меню Установки -> Калибровка, нажимаем Yes.

Выйдет сообщение об успешно проведенной калибровке, нажимаем ОК

Сейчас нам нужно будет выставить фьюзы, если в вашей конструкции фьюзы не выставляются, переходите к следующему пункту. Кликаем Команды -> Security and Configuration Bits… откроется окошко для установки фьюзов

Теперь все готово, и можно прошить микроконтроллер, нажимаем Команды -> Записать все. Если вы еще не передумали, то в окошке которое вышло, нажимаем “Yes”, и начнется процесс записи и проверки.

Если все прошло успешно, но в конце-концов должно появиться сообщение

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

Если по какой то причине устройство не заработало:1. Возможно допущены ошибки при сборке программатора, перепроверьте все и попробуйте еще раз перепрошить МК.

2. Возможно сама прошивка “битая”

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

В следующей статье Программирование для начинающих. часть3 мы будем рассматривать прошивку микроконтроллеров с помощью программы CodeVision AVR, ну а во вложении, как и было сказано выше, чертежи для программатора в формате lay. Это специальный файл для программы LAYOUT, которую можно скачать здесь

Вложения:

ФайлОписаниеРазмер файла:
stk200.rar21 Кб

Источник: http://radio-uchebnik.ru/txt/15-avr-mikrokontrollery/113-programmirovanie-dlya-nachinayushchikh-chast-2

Как прошить микроконтроллер AVR?

ПРОГРАММАТОР ДЛЯ НАЧИНАЮЩИХ

Как прошить микроконтроллер AVR? Именно этим мы и займемся в этой статье.

Что такое “прошить” и “прошивка”?

Давайте первым делом определимся, что означает слово “прошить”?  Думаю, вы часто слышали такие словосочетания, как “прошить телефон”, “слетела прошивка”, “кривая прошивка” и тд.  А что такое “прошивка”?

Прошивка – это грубо говоря, операционная система для маленьких устройств, таких как мобильный телефон, MP3-плеер, цифровой фотоаппарат и тд. То есть это  небольшая программка, которая управляет этим устройством. Также часто можно услышать и такое:” У меня “глючит” сотовый телефон, его надо срочно “перепрошить“.

В данном случае это означает, что надо заново установить операционную систему на мобильный телефон. Значит, “прошить МК”  означает закачать во внутрь него программу, которая бы управляла этим МК, а МК уже управлял бы каким-нибудь устройством.  То есть по идее, МК – это посредник между программой и каким-либо устройством, которым надо управлять 😉

Оборудование для прошивки МК

Итак, что нам потребуется, чтобы прошить МК?

  1. Cам микроконтроллер.
  2. Компьютер, с заранее установленным программным обеспечением (ПО).
  3. Программатор.
  4. Несколько джамперов.
  5. Макетная плата. Я бы порекомендовал сразу купить набор для начинающего AVRщика. Этот набор питается от USB.
  6. Прямые руки, растущие из нужного места.

Мы с вами договорились использовать МК Atiny2313 в корпусе DIP-20:

Подготовка МК к прошивке

В прошлых статьях мы с вами рассматривали программатор Громова.  Главный его минус в том, что нам требуется COM-порт, который с трудом можно сейчас найти в компьютере, а разъем USB зато есть на каждом компьютере. Поэтому, было принято решение о покупке самого дешевого USB программатора для AVR МК. Называется такой программатор USBASP и выглядит он примерно вот так

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

Если будете брать у другого продавца, то внимательно смотрите, чтобы его надписи и радиоэлементы располагались именно так, как  у меня на фото.

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

Вот его вид сзади:

Его  рабочий разъем выглядит примерно вот так:

С программатором также в придачу идет шлейф

который одним концом цепляется к рабочему разъему программатора:

Другой конец шлейфа мы будем цеплять к МК.

Если внимательно присмотреться, то можно узнать, какой вывод в разъеме является первым. Стрелка укажет на первый вывод разъема:

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

Дальше берем макетную плату с установленным на ней МК Tiny2313:

Итак, наша задача – соединить выводы МК с выводами программатора.

Для этого в разъем шлейфа втыкаем провода в гнезда MOSI, RST, SCK, MISO, VTG (VCC), GND. GND я взял 10 гнездо, можно и другое, где написано GND.  Итого 6 проводков-джамперов:

Далее качаем даташит на наш МК. В данном случае у нас Tiny2313. Ищем в даташите лист с его цоколевкой:

VTG (он же VCC) цепляем к 20 ножке МК

SCK(UCSK) цепляем на 19 ножку МК

MISO цепляем к 18 ножке МК

MOSI на 17 ножку

GND на 10 ножку

RST на первую ножку

Должно получиться как-то вот так:

После первого включения программатора в разъем USB ПК, Диспетчер устройств нам выдаст новое устройство:

Не пугаемся, качаем  вот этот архивчик, распаковываем его и указываем путь на него при установке “дров”. Когда “дровишки” на программатор установятся, то мы увидим что-то типа этого:

Все ОК, программатор готов к бою.

В этом же архиве находим папку “avrdudeprog”, открываем ее, находим там исполняемый файл AVRDUDEPROG и запускаем. Это и есть программная оболочка для прошивки МК с помощью нашего программатора.

Она выглядит  вот так. Не забываем выбрать наш МК в списке.

Для того, чтобы прошить МК, нам надо выбрать файл с расширением HEX. Итак,  вот  мой файлик. Первым делом я нажимаю кнопочку “Стереть все”.  А вдруг кто-то уже использовал МК и там залита уже какая-нибудь программа? Поэтому, перед прошивкой стираем память МК. Если “стирка” прошла удачно,  то программка выдаст нам примерно такое сообщение:

Прошиваем МК AVR

Нажимаем на кнопку выбора файла:

А теперь выбираем наш файл “Lesson 1.hex” . Это и есть наша программа.

А теперь жмем кнопочку “Программирование”

После того, как все прошло удачно, высветится что-то типа этого:

Но это еще не все! Как вы помните, в прошлой статье мы выставили частоту кварца 8 Мегагерц. Чтобы не было неразберихи, нам эту частоту теперь надо поделить на 8. Для этого существует фьюз, который делит тактовую частоту именно на 8. Ставим маркер на “прямые фьюзы”, потом ставим галочку на CKDIV.

После того, как сделали эти два шага, нажимаем на кнопку “Программирование”:

Проверяем МК в железе

Теперь собираем нашу схемку, о которой говорилось еще в прошлой статье:

и наслаждаемся результатом:

Источник: https://www.RusElectronic.com/kak-proshit-mikrokontroller/

USB программатор PIC своими руками

ПРОГРАММАТОР ДЛЯ НАЧИНАЮЩИХ

Микроконтроллеры

Какие первые шаги должен сделать радиолюбитель, решивший собрать схему на микроконтроллере? Естественно, необходима управляющая программа – “прошивка”, а также программатор.

И если с первым пунктом нет проблем – готовую “прошивку” обычно выкладывают авторы схем, то вот с программатором дела обстоят сложнее.

Цена готовых USB-программаторов довольно высока и лучшим решением будет собрать его самостоятельно. Вот схема предлагаемого устройства (картинки кликабельны).

Основная часть.

Панель установки МК.

Исходная схема взята с сайта LabKit.ru с разрешения автора, за что ему большое спасибо. Это так называемый клон фирменного программатора PICkit2. Так как вариант устройства является “облегчённой” копией фирменного PICkit2, то автор назвал свою разработку PICkit-2 Lite, что подчёркивает простоту сборки такого устройства для начинающих радиолюбителей.

Что может программатор? С помощью программатора можно будет прошить большинство легкодоступных и популярных МК серии PIC (PIC16F84A, PIC16F628A, PIC12F629, PIC12F675, PIC16F877A и др.), а также микросхемы памяти EEPROM серии 24LC.

Кроме этого программатор может работать в режиме USB-UART преобразователя, имеет часть функций логического анализатора.

Особо важная функция, которой обладает программатор – это расчёт калибровочной константы встроенного RC-генератора некоторых МК (например, таких как PIC12F629 и PIC12F675).

Необходимые изменения

В схеме есть некоторые изменения, которые необходимы для того, чтобы с помощью программатора PICkit-2 Lite была возможность записывать/стирать/считывать данные у микросхем памяти EEPROM серии 24Cxx.

Из изменений, которые были внесены в схему. Добавлено соединение от 6 вывода DD1 (RA4) до 21 вывода ZIF-панели. Вывод AUX используется исключительно для работы с микросхемами EEPROM-памяти 24LС (24C04, 24WC08 и аналоги).

По нему передаются данные, поэтому на схеме панели программирования он помечен словом “Data”. При программировании микроконтроллеров вывод AUX обычно не используется, хотя он и нужен при программировании МК в режиме LVP.

Также добавлен “подтягивающий” резистор на 2 кОм, который включается между выводом SDA и Vcc микросхем памяти.

Все эти доработки я уже делал на печатной плате, после сборки PICkit-2 Lite по исходной схеме автора.

Микросхемы памяти 24Cxx (24C08 и др.) широко используются в бытовой радиоаппаратуре, и их иногда приходится прошивать, например, при ремонте кинескопных телевизоров. В них память 24Cxx применяется для хранения настроек.

В ЖК-телевизорах применяется уже другой тип памяти (Flash-память). О том, как прошить память ЖК-телевизора я уже рассказывал. Кому интересно, загляните.

В связи с необходимостью работы с микросхемами серии 24Cxx мне и пришлось “допиливать” программатор. Травить новую печатную плату я не стал, просто добавил необходимые элементы на печатной плате. Вот что получилось.

Ядром устройства является микроконтроллер PIC18F2550-I/SP.

Это единственная микросхема в устройстве. МК PIC18F2550 необходимо “прошить”. Эта простая операция у многих вызывает ступор, так как возникает так называемая проблема “курицы и яйца”. Как её решил я, расскажу чуть позднее.

Список деталей для сборки программатора. В мобильной версии потяните таблицу влево (свайп влево-вправо), чтобы увидеть все её столбцы.

НазваниеОбозначениеНоминал/ПараметрыМарка или тип элемента
Для основной части программатора
МикроконтроллерDD18-ми битный микроконтроллерPIC18F2550-I/SP
Биполярные транзисторыVT1, VT2, VT3КТ3102
VT4КТ361
ДиодVD1КД522, 1N4148
Диод ШотткиVD21N5817
СветодиодыHL1, HL2любой на 3 вольта, красного и зелёного цвета свечения
РезисторыR1, R2300 ОмМЛТ, МОН (мощностью от 0,125 Вт и выше), импортные аналоги
R322 кОм
R41 кОм
R5, R6, R1210 кОм
R7, R8, R14100 Ом
R9, R10, R15, R164,7 кОм
R112,7 кОм
R13100 кОм
КонденсаторыC20,1 мкК10-17 (керамические), импортные аналоги
C30,47 мк
Электролитические конденсаторыC1100 мкф * 6,3 вК50-6, импортные аналоги
C447 мкф * 16 в
Катушка индуктивности (дроссель)L1680 мкГнунифицированный типа EC24, CECL или самодельный
Кварцевый резонаторZQ120 МГц
USB-розеткаXS1типа USB-BF
ПеремычкаXT1любая типа “джампер”
Для панели установки микроконтроллеров (МК)
ZIF-панельXS1любая 40-ка контактная ZIF-панель
РезисторыR12 кОмМЛТ, МОН (мощностью от 0,125 Вт и выше), импортные аналоги
R2, R3, R4, R5, R610 кОм

Теперь немного о деталях и их назначении.

Зелёный светодиод HL1 светится, когда на программатор подано питание, а красный светодиод HL2 излучает в момент передачи данных между компьютером и программатором.

Для придания устройству универсальности и надёжности используется USB-розетка XS1 типа “B” (квадратная). В компьютере же используется USB-розетка типа “А”. Поэтому перепутать гнёзда соединительного кабеля невозможно. Также такое решение способствует надёжности устройства. Если кабель придёт в негодность, то его легко заменить новым не прибегая к пайке и монтажным работам.

В качестве дросселя L1 на 680 мкГн лучше применить готовый (например, типов EC24 или CECL). Но если готовое изделие найти не удастся, то дроссель можно изготовить самостоятельно.

Для этого нужно намотать 250 – 300 витков провода ПЭЛ-0,1 на сердечник из феррита от дросселя типа CW68.

Стоит учесть, что благодаря наличию ШИМ с обратной связью, заботиться о точности номинала индуктивности не стоит.

Напряжение для высоковольтного программирования (Vpp) от +8,5 до 14 вольт создаётся ключевым стабилизатором. В него входят элементы VT1, VD1, L1, C4, R4, R10, R11. С 12 вывода PIC18F2550 на базу VT1 поступают импульсы ШИМ. Обратная связь осуществляется делителем R10, R11.

Чтобы защитить элементы схемы от обратного напряжения с линий программирования в случае использования USB-программатора в режиме внутрисхемного программирования ICSP (In-Circuit Serial Programming) применён диод VD2.

VD2 – это диод Шоттки. Его стоит подобрать с падением напряжения на P-N переходе не более 0,45 вольт.

Также диод VD2 защищает элементы от обратного напряжения, когда программатор применяется в режиме USB-UART преобразования и логического анализатора.

При использовании программатора исключительно для программирования микроконтроллеров в панели (без применения ICSP), то можно исключить диод VD2 полностью (так сделано у меня) и установить вместо него перемычку.

Компактность устройству придаёт универсальная ZIF-панель (Zero Insertion Force – с нулевым усилием установки).

Благодаря ей можно “зашить” МК практически в любом корпусе DIP.

На схеме “Панель установки микроконтроллера (МК)” указано, как необходимо устанавливать микроконтроллеры с разными корпусами в панель. При установке МК следует обращать внимание на то, чтобы микроконтроллер в панели позиционируется так, чтобы ключ на микросхеме был со стороны фиксирующего рычага ZIF-панели.

Вот так нужно устанавливать 18-ти выводные микроконтроллеры (PIC16F84A, PIC16F628A и др.).

А вот так 8-ми выводные микроконтроллеры (PIC12F675, PIC12F629 и др.).

Если есть нужда прошить микроконтроллер в корпусе для поверхностного монтажа (SOIC), то можно воспользоваться переходником или просто подпаять к микроконтроллеру 5 выводов, которые обычно требуются для программирования (Vpp, Clock, Data, Vcc, GND).

Готовый рисунок печатной платы со всеми изменениями вы найдёте по ссылке в конце статьи. Открыв файл в программе Sprint Layout 5.

0 можно с помощью режима “Печать” не только распечатать слой с рисунком печатных проводников, но и просмотреть позиционирование элементов на печатной плате.

Обратите внимание на изолированную перемычку, которая связывает 6 вывод DD1 и 21 вывод ZIF-панели. Печатать рисунок платы необходимо в зеркальном отображении.

Изготовить печатную плату можно методом ЛУТ, а также маркером для печатных плат, с помощью цапонлака (так делал я) или “карандашным” методом.

Вот рисунок позиционирования элементов на печатной плате (кликабельно).

При монтаже первым делом необходимо запаять перемычки из медного лужёного провода, затем установить низкопрофильные элементы (резисторы, конденсаторы, кварц, штыревой разъём ISCP), затем транзисторы и запрограммированный МК. Последним шагом будет установка ZIF-панели, USB-розетки и запайка провода в изоляции (перемычки).

Файл “прошивки” – PK2V023200.hex необходимо записать в память МК PIC18F2550I-SP при помощи любого программатора, который поддерживает PIC микроконтроллеры (например, Extra-PIC). Я воспользовался JDM Programmator’ом JONIC PROG и программой WinPic800.

Ссылка на файл PK2V023200.hex, запакованный в архив rar, дана в конце статьи.

Залить “прошивку” в МК PIC18F2550 можно и с помощью всё того же фирменного программатора PICkit2 или его новой версии PICkit3. Естественно, сделать это можно и самодельным PICkit-2 Lite, если кто-либо из друзей успел собрать его раньше вас:).

Также стоит знать, что “прошивка” микроконтроллера PIC18F2550-I/SP (файл PK2V023200.hex) записывается при установке программы PICkit 2 Programmer в папку вместе с файлами самой программы.

Примерный путь расположения файла PK2V023200.hex  – «C:\Program Files (x86)\Microchip\PICkit 2 v2\PK2V023200.hex».

У тех, у кого на ПК установлена 32-битная версия Windows, путь расположения будет другим: «C:\Program Files\Microchip\PICkit 2 v2\PK2V023200.hex».

Ну, а если разрешить проблему “курицы и яйца” не удалось предложенными способами, то можно купить уже готовый программатор PICkit3 на сайте AliExpress. Там он стоит гораздо дешевле. О том, как покупать детали и электронные наборы на AliExpress я писал тут.

Обновление “прошивки” программатора

Прогресс не стоит на месте и время от времени компания Microchip выпускает обновления для своего ПО, в том числе и для программатора PICkit2, PICkit3.

Естественно, и мы можем обновить управляющую программу своего самодельного PICkit-2 Lite. Для этого понадобится программа PICkit2 Programmer. Что это такое и как пользоваться – чуть позднее.

А пока пару слов о том, что нужно сделать, чтобы обновить “прошивку”.

Для обновления ПО программатора необходимо замкнуть перемычку XT1 на программаторе, когда он отключен от компьютера. Затем подключить программатор к ПК и запустить PICkit2 Programmer.

При замкнутой XT1 активируется режим bootloader для загрузки новой версии прошивки.

Затем в PICkit2 Programmer через меню “Tools” – “Download PICkit 2 Operation System” открываем заранее подготовленный hex-файл обновлённой прошивки. Далее произойдёт процесс обновления ПО программатора.

После обновления нужно отключить программатор от ПК и снять перемычку XT1. В обычном режиме перемычка разомкнута. Узнать версию ПО программатора можно через меню “Help” – “About” в программе PICkit2 Programmer.

Это всё по техническим моментам. А теперь о софте.

Работа с программатором. Программа PICkit2 Programmer

Для работы с USB-программатором нам потребуется установить на компьютер программу PICkit2 Programmer.

Это специальная программа обладает простым интерфейсом, легко устанавливается и не требует особой настройки.

Стоит отметить, что работать с программатором можно и с помощью среды разработки MPLAB IDE, но для того, чтобы прошить/стереть/считать МК достаточно простой программы – PICkit2 Programmer. Рекомендую.

После установки программы PICkit2 Programmer подключаем к компьютеру собранный USB-программатор. При этом засветится зелёный светодиод (“питание”), а операционная система опознает устройство как “PICkit2 Microcontroller Programmer” и установит драйвера.

Запускаем программу PICkit2 Programmer. В окне программы должна отобразиться надпись.

Если программатор не подключен, то в окне программы отобразится страшная надпись и краткие инструкции “Что делать?” на английском.

Если же программатор подключить к компьютеру с установленным МК, то программа при запуске определить его и сообщит нам об этом в окне PICkit2 Programmer.

Поздравляю! Первый шаг сделан. А о том, как пользоваться программой PICkit2 Programmer, я рассказал в отдельной статье. Следующий шаг.

Необходимые файлы:

» Микроконтроллеры » Текущая страница

Также Вам будет интересно узнать:

  • Микросхемы КМОП.
  • RS-триггер.

Источник: https://go-radio.ru/usb-programmator-pic-svoimi-rukami.html

Вы еще не программируете микроконтроллеры? Тогда мы идем к вам!

ПРОГРАММАТОР ДЛЯ НАЧИНАЮЩИХ

Здравствуйте, уважаемые Хабражители! В этой статье я хочу рассказать о том, как однажды решил начать программировать микроконтроллеры, что для этого понадобилось и что в итоге получилось.

Тема микроконтроллеров меня заинтересовала очень давно, году этак в 2001.

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

Решил попробовать. Итак, что нам понадобится:

1. Программатор

На рынке предлагается много вариантов — от самых дешевых ISP (In-System Programming) программаторов за несколько долларов, до мощных программаторов-отладчиков за пару сотен. Не имея большого опыта в этом деле, для начала я решил попробовать один из самых простых и дешевых — USBasp. Купил в свое время на eBay за $12, сейчас можно найти даже за $3-4.

На самом деле это китайская версия программатора от Thomas Fischl. Что могу сказать про него? Только одно — он работает. К тому же поддерживает достаточно много AVR контроллеров серий ATmega и ATtiny. Под Linux не требует драйвера.

Для прошивки надо соединить выходы программатора VCC, GND, RESET, SCK, MOSI, MISO с соответствующими выходами микроконтроллера.

Для простоты я собрал вспомогательную схему прямо на макетной плате:

Слева на плате — тот самый микроконтроллер, который мы собираемся прошивать.

2. Микроконтроллер

С выбором микроконтроллера я особо не заморачивался и взял ATmega8 от Atmel — 23 пина ввода/вывода, два 8-битных таймера, один 16-битный, частота — до 16 Мгц, маленькое потребление (1-3.6 мА), дешевый ($2). В общем, для начала — более чем достаточно.

Под Linux для компиляции и загрузки прошивки на контроллер отлично работает связка avr-gcc + avrdude. Установка тривиальная. Следуя инструкции, можно за несколько минут установить все необходимое ПО.

Единственный ньюанс, на который следует обратить внимание — avrdude (ПО для записи на контроллер) может потребовать права супер-пользователя для доступа к программатору. Выход — запустить через sudo (не очень хорошая идея), либо прописать специальные udev права.

Синтаксис может отличаться в разных версиях ОС, но в моем случае (Linux Mint 15) сработало добавление следующего правила в файл /etc/udev/rules.d/41-atmega.rules:

# USBasp programmerSUBSYSTEM==”usb”, ATTR{idVendor}==”16c0″, ATTR{idProduct}==”05dc”, GROUP=”plugdev”, MODE=”0666″ После этого, естественно, необходим перезапуск сервиса service udev restart
Компилировать и прошивать без проблем можно прямо из командной строки (кто бы сомневался), но если проектов много, то удобнее поставить плагин AVR Eclipse и делать все прямо из среды Eclipse. Под Windows придется поставить драйвер. В остальном проблем нет. Ради научного интереса попробовал связку AVR Studio + eXtreme Burner в Windows. Опять-таки, все работает на ура.

Начинаем программировать

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

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

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

БАЦ! Вот она — идея первого проекта! Можно было конечно заказать их на том же eBay, но захотелось сделать свои собственные часы, с блэк… эээ… с индикаторами и кнопочками. Сказано — сделано!
В качестве дисплея решено было использовать два 7-сегментных диодных индикатора.

Для управления достаточно было 5 кнопок — “Игрок 1”, “Игрок 2”, “Сброс”, “Настройка” и “Пауза”. Ну и не забываем про звуковую индикацию окончания игры. Вроде все. На рисунке ниже представлена общая схема подключения микроконтроллера к индикаторам и кнопкам. Она понадобится нам при разборе исходного кода программы:

Разбор полета

Начнем, как и положено, с точки входа программы — функции main. На самом деле ничего примечательного в ней нет — настройка портов, инициализация данных и бесконечный цикл обработки нажатий кнопок. Ну и вызов sei() — разрешение обработки прерываний, о них немного позже. int main(void){ init_io(); init_data(); sound_off(); sei(); while(1) { handle_buttons(); } return 0;} Рассмотрим каждую функцию в отдельности. void init_io(){ // set output DDRB = 0xFF; DDRD = 0xFF; // set input DDRC = 0b11100000; // pull-up resistors PORTC |= 0b00011111; // timer interrupts TIMSK = (1

Источник: https://habr.com/post/205972/

Программатор для начинающих

ПРОГРАММАТОР ДЛЯ НАЧИНАЮЩИХ

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

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

 Для начинающих пользователей программатора, в материале “программирование микроконтроллеров для начинающих”, представлена классификация устройств со встроенным ПЗУ. Принято считать, что устройство поддерживает микросхему, если оно:

  1. обеспечивает работу с микросхемой во всех режимах, предусмотренных разработчиком данной микросхемы;
  2. все алгоритмы реализованы в строгом соответствии с требованиями спецификации на данную микросхему.

Для выполнения своих функций, нормальный программатор, как минимум должен содержать:

– колодку, в которую можно вставить выбранную микросхему. Колодка должна обеспечивать электрический контакт с выводами микросхемы;

– интерфейс, позволяющий осуществлять ввод/вывод записываемой и считываемой информации;

 – программно аппаратные драйвера, способные формировать и считывать логические уровни и сложные тактовые сигналы.

По типу поддерживаемых микросхем

  1. Специализированный программатор. Устройство, программирующее микросхемы только одного типа, или микросхемы только одного производителя.
  2. Условно универсальный программатор.

    Устройство, программирующее (поддерживающее) микросхемы различных типов и/или микросхемы различных производителей.

  3. Универсальные программаторы. Устройства, программирующие (поддерживающие) микросхемы всех типов, и микросхемы всех производителей.

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

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

Универсальный программатор строится на базе универсальных аппаратных драйверов. Аппаратные драйвера подключаются к выводам колодки, и должны обеспечивать: – подачу и считывание логических уровней; – подачу сложных тактовых последовательностей в широком диапазоне частот;

– подачу напряжения в широком диапазоне и с высокой точностью.

В общем случае, чем более универсальны аппаратные драйвера, и чем больше их количество – тем более универсально подобное устройство.

По способу программирования микросхем

  1. Параллельный программатор. Программирование микросхем происходит в колодке программатора;
  2. Внутрисхемный, или ISP программатор. Программирование микросхем происходит непосредственно в устройстве пользователя. в режиме ISP (внутрисхемного) программирования, иногда его называют режимом последовательного программирования.

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

Колодка должна обеспечивать надежный электрический контакт между выводами микросхемы и аппаратными драйверами устройства. Как правило, универсальный программатор оснащается колодкой под DIP корпус микросхемы. Наиболее надежными и удобными для пользователя являются специальные колодки (сокетки) с нулевым усилием – (ZIF socket).

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

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

Как правило, подобные микросхемы имеют встроенные схемы, которые: – из внешнего напряжения питания генерируют напряжения необходимые для программирования;

– обеспечивают коммуникацию с внутрисхемным прoгрaммaтором по последовательному интерфейсу (вариации протокола JTAG, SPI, UART).

Для реализации режима внутрисхемного программирования, устройство пользователя должно обеспечивать: – необходимую коммутацию с выводами микросхемы;

– необходимые режимы по нагрузке и питанию на соответствующих выводах микросхемы в режиме программирования.

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

Отличительной особенностью моделей серии ChipProg-xx является то обстоятельство, что помимо поддержания параллельного режима программирования (программирования в колодке), они поддерживают и режим внутрисхемного программирования.

По подключению к компьютеру

Как правило, для подключения современного программатора к PC используется порт USB. Раньше для этих целей использовались LPT и/или COM порты. Некоторые модели могут работать и в автономном режиме, без подключения к PC.

Например, ChipProg-ISP2 помимо обычного управления от PC допускает управление: – кнопкой на корпусе; – через Ethernet (с гальванической развязкой);- от внешних программно аппаратных комплексов.

При этом, программируемая информация, все режимы и опции программирования хранятся на встроенной SD карте (до 256 проектов).

По количеству одновременно программируемых микросхем

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

Для тиражирования микросхем выпускаются специализированные промышленные копировщики.

Так например, наш ChipProg-G41 снабжен четырьмя ZIF сокетками, что позволяет в асинхронном режиме программировать до 4 микросхем одновременно, а нутрисхемный промышленный ISP CPI2-Gxxxx позволяет в асинхронном режиме программировать до 14 микросхем одновременно.

 Другая возможность существенно увеличить скорость тиражирования партий микросхем – воспользоваться функциональными возможностями некоторых устройств. В частности, модели ChipProg-XX  с USB интерфейсом предоставляют возможность мультипрограммирования. Что позволяет обеспечить программирование практически любого количества микросхем одновременно. 

По дополнительным функциональным и сервисным возможностям

Различные устройства, подчас существенно отличаются друг от друга по своим функциональным и сервисным возможностям.

Здесь можно посмотреть сравнительные характеристики универсальных программаторов нашего производства.

Программатор для начинающих

Начинающему пользователю программатора – завтрашнему коллеге:

1. Если Вам нужно устройство для программирования ограниченной номенклатуры микросхем, и в далнейшем Вы не планируете заниматься программированием микросхем профессионально – скорее всего Вы сможете найти в интернете описание подходящего устройства, которое можно воспроизвести обладая даже начальными радиолюбительскими навыками. Удачи.

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

Профессиональный, хорошо сделанный программатор обладает следующими опциями, полезными в том числе и начинающему пользователю: – развернутая документация, включая контекстные подсказки; – демо режим; – поддержка разработчика; – встроенные механизмы защиты от неправильных действий пользователя;

 – режим самодиагностики.

У вас все получится.

Поделиться:
Нет комментариев

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

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.