Как прошить микроконтроллер: Прошивка и программирование ATtiny13 при помощи Arduino UPD 17.03.2016 / Хабр

Содержание

7 способов прошивки бутлоадера | Амперка / Блог

Если по какой-либо причине «волшебный дым» покинул бренное кремниевое тело микроконтроллера вашей дорогой Ардуинки, это ещё не повод отчаиваться и покупать другую платформу. Достаточно обзавестись новым прошитым микроконтроллером или купить «лысый» и собственноручно вдохнуть в него жизнь, прошив бутлоадер и фьюзы.

Мы нашли целых 7 способов как это сделать:

1. Arduino + Arduino

Если у вас в ящике стола вдруг завалялась ещё одна платформа Arduino, вы можете использовать её в качестве ISP программатора.  Подробнее

2. Arduino + кварц + конденсаторы

Если второй Arduino под рукой не оказалось, посмотрите нет ли где-нибудь по близости Breadboard’а, кварцевого резонатора на 16МГц, двух керамических конденсаторов на 18-22 пФ и резистора на 10кОм. С помощью этой схемы вы тоже сможете прошить микроконтроллер. Подробнее

2.1. Без кварца и конденсаторов…

Можно обойтись и без обвязки МК, но придётся поменять порядок записи бутлоадера и фьюзов.

Подробнее

3. Программатор STK500

Можно заранее обзавестись программатором STK500 для прошивки микроконтроллеров. Подробнее

4. Программатор Громова

Можно и своими руками собрать программатор для AVR микроконтроллеров. Один из самых надёжных самодельных вариантов — программатор Громова, он позволяет программировать МК через COM-порт. Для его сборки необходимо умение держать паяльник и знание ЛУТ’а. Подробнее

5. «Пять проводков»

Программировать микроконтроллеры можно и через LPT-порт, используя так называемый метод «пяти проводков». Он менее надёжен чем COM-программатор, но значительно проще в сборке. Есть совсем простой, но ненадёжный вариант на резисторах, и посложнее, на случай, если у вас вдруг завалялась микросхемка 74HC244.

6. Программатор из клавиатуры

Распотрошив обычную компьютерную клавиатуру тоже можно собрать вполне сносный программатор.

Главное — наличие на ней блока из трёх светодиодов. Подробнее

7. Кнопочный программатор

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

  • Вконтакте
  • Facebook
  • Twitter

прошивка, установка драйвера [Амперка / Вики]

Переход контроллера в DFU-режим

  1. Отключите Arduino от компьютера.

  2. Замкните контакты, указанные на нижеприведённом рисунке.
  3. Подключите Arduino к компьютеру.

  4. Разомкните замкнутые ранее контакты.

  5. Зайдите в «Диспетчер устройств» и посмотрите как определяется платформа:

Установка драйвера для контроллера ATmega16U2

  1. Скачайте и установите Flip — программу для прошивки микроконтроллеров.
  2. Зайдите в «Диспетчер устройств» под учётной записью «Администратор»

  3. Нажмите правой кнопкой мыши на «Неизвестное устройство»

  4. В выпадающем меню нажмите «Свойства»

  5. Перейдите на вкладку «Драйвер»

  6. Нажмите «Обновить»

  7. Нажмите «Выполните поиск драйверов на этом компьютере». Драйвера находятся в директории, в которую был установлен Flip, в папке «usb».
  8. Нажмите «Далее» и согласитесь с установкой программного обеспечения для данного устройства. После установки драйверов, в «Диспетчере устройств» Arduino станет определяться так:

Прошивка микроконтроллера ATmega16U2

Если в диспетчере устройств вы видите «ATmega16U2» — значит, чип, который отвечает за коммуникацию между USB-интерфейсом и контроллером Arduino, не прошит.

Мы рассмотрим порядок действий по настройке контроллера для платы Arduino Uno. Для плат Mega2560 и ADK порядок действий аналогичен, необходимо только в использовать соответствующий платформе . hex-файл.

  1. Скачайте и установите Flip — программу для прошивки микроконтроллеров.
  2. Скачайте *.zip-архив, в котором находится файл прошивки контроллера ATmega16U2 для своей платформы.
  3. Распакуйте *.zip-архив.

  4. Сохраните распакованный *.hex-файл в корень диска «C»

  5. Запустите Flip
  6. В меню укажите целевой контроллер ATmega16U2.
  7. В меню выберите файл с прошивкой.

  8. В меню укажите связь по USB.

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

  1. Нажмите кнопку «Run» и дождитесь завершения прошивки.
  2. Отключите Arduino от компьютера и подключите её снова. Во вкладке «Порты (COM и LPT)» «Диспетчера устройств» вы должны увидеть следующую картину:

Всё получилось. Теперь можно смело переходить к продолжению «настройки платы» или к «экспериментам»

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

Написать комментарий

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

 

   Смотрите также:

     -Как написать код для AVR, программирование микроконтроллеров Atmel AVR на Си

     —Эмуляция AVR в Proteus, микроконтроллеры в Proteus

     —Простой ШИМ на ATTiny13.Регулируем всё

     —Работа с дисплеем HD44780 на AVR.Запись своих символов

 

Как и чем прошить avr микроконтроллер.

1)Прежде всего для прошивки микроконтроллеров Atmel AVR необходим программатор, например для прошивки через USB-порт такой  — USB ASP Программатор микроконтроллеров ATmega AVR

Купить можно здесьКупить usbasp программатор

2)Теперь нужно установить драйвера для вышеприведенного программатора

Для этого устанавливаем программу eXtreme Burner — AVR,  в процессе установки она автоматически установит правильные драйвера

Скачать можно здесь eXtremeBurnerAV_LampCORE_ru

3) Дальше требуется соединить микроконтроллер с программатором , быстрее и проще это сделать с Беспаечная макетная плата MB102 и с проводами-радугой с типом наконечников Male to Male или если программатор без шлейфа с  наконечниками Female to Male

Соединять в соответствии с картинкой , приведенной ниже(Это для микроконтроллеров ATMEGA8, у других мк смотрите соответствующую им распиновку!):

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

Обратите внимание, что контакт 22 — GND находится напротив по другую сторону мс контакта 7 — VCC, исходя из этого не нужно отсчитывать ножки микросхемы, а просто соединить контакт напротив по другую сторону микросхемы соответственно.

 

Соединение без макетной платы и с помощью обычных проводов

Смотрим распиновку разъема программатора:

Паяем к микроконтроллеру в соответствии с распиновкой.

Удобнее паять таким паяльником — Паяльник GJ 907.

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

 

Запускаем eXtreme Burner AVR , во вкладке Chip выбираем свой микроконтроллер(у нас ATmega8):

(Если при запуске у вас выдается сообщение — «не удается продолжить выполнение кода поскольку система не обнаружила libusb0.dll» то необходимо скачать  и установить эти драйвера

usbasp-win-driver-x86-x64-v3.0.7_LampCORE_ru

вручную, запустив файл InstallDriver.exe )

Затем выбираем вкладку Read и нажимаем Flash(считать прошивку(на многих коммерческих устройствах устанавливают бит защиты от считывания))

(Если выдается ошибка Power On Failed

 Cannot Communicate with Target Chip! значит , что какая или какие-либо ножки микроконтроллера не контактируют с программатором, логично проверить наличие контактов и исправить их отсутствие)

Flash — это прошивка

EEPROM — энергонезависимая память

Fuse Bits and Lock Bits — это настройка фьюзов, защиты, параметров микроконтроллера(например работать микроконтроллеру от внутренней частоты или от внешнего кварцевого резонатора, откуда брать опорное напряжение для АЦП и т. д.)

Если драйвера установлены, подсоединено всё правильно то имеем такой результат:

Мы считывали еще не прошитый микроконтроллер ATMEGA8, поэтому у нас будут считаны только нули(FFFF):

Попробуем прошить микроконтроллер

Прошивка микроконтроллера представляется в виде формата .HEX

Имеется прошивка HelloLED

Она мигает светодиодом на любом выводе D  микроконтроллера ATmega, так как в прошивке задана установка всех портов D как выход.

Запускаем eXtreme Burner

Нажимаем Open и в файлах выбираем прошивку в формате HEX

Дальше должно быть так:

Для запуска прошивки выбираем вкладку Write(Запись) и нажимаем Flash, должен пойти процесс прошивки

Прошивка успешно завершилась:

Теперь считаем её

Жмем Read — Flash, получаем:

Как видно нули заменились другими цифрами и видно оставшееся пустое мето в памяти для прошивки.

Теперь отсоединим микроконтроллер от программатора и проверим работу прошивки на практике.

Собираем все по такой схеме:

Собрали, всё должно работать(светодиод мигает 2 раза в секунду):

Если светодиод не горит или наоборот горит постоянно — проверьте надежность контактов.

Внимание! Не вешайте напрямую нагрузку на ножки микросхемы с потреблением больше 25 мА!

Не подавайте на микросхему больше 5.5 Вольт.

Цикл перезаписи прошивки не бесконечен — есть определенный ресурс.Не стоит микроконтроллер использовать  и перезаписывать как USB-флешку.

ОЦЕНИТЕ ДАННУЮ ПУБЛИКАЦИЮ:

Отправить рейтинг

Средний рейтинг / 5. Количество оценок:

Мы сожалеем, что эта публикация Вас не устроила.

Напишите, пожалуйста, что Вам конкретно не понравилось, как можно улучшить статью?(оценка будет засчитана только при наличии отзыва)

Отправить отзыв

Спасибо за ваш отзыв!

Прошивка AVR микроконтроллеров с «нуля» / Микроконтроллеры / Блоги по электронике

Микроконтроллеры семейства PIC мы уже научились прошивать вот из этой статьи. Но, существует не менее популярное семейство AVR микроконтроллеров. В этой статье для начинающих будет рассмотрено как же «залить прошивку» в контроллеры AVR.


Еще когда я только начинал осваивать контроллеры семейства AVR сразу встал вопрос, а чем же я буду их прошивать. Как и полагается «полез» в интернет. Много чего я там по находил!
Вариант 1. Прошивка контроллера при помощи технологии «пяти проводков»
Микроконтроллер AVR имеет следующие основные выводы программирования:
MOSI — вход данных
MISO — выход данных
SCK — вход синхронизирующих импульсов
REST — сигнал сброса
Так вот, суть технологии «пять проводков» заключается в том, что выводы программирования
контроллера подключаются напрямую к LPT порту компьютера. Пяты проводок — это общий провод.
Вот схема подключения:

Питание на программируемый микроконтроллер в этой схеме подается от отдельного источника.
Обратите внимание на перемычки между контактами 2-12, 3-11. По наличию этих перемычек программа «прошивальщик» определяет подключение к LPT порту программатора.
Кабель соединяющий компьютер и программатор должен быть экранированный, проводки, соединяющие контроллер должны быть минимальной длины, иначе, посыпятся ошибки при прошивке контроллера.
Это, конечно самый простой способ прошить AVR контроллер. Но у него есть и куча недостатков. Самый большой недостаток — это очень большая возможность «спалить» LPT порт, да и всю материнскую плату, так как никакой защиты для порта не предусмотрено. Но, не все еще потеряно.
Вариант 2. Существуют программаторы, в которых предусмотрена защита. Вот такой нам и нужно собрать, и компьютер цел останется и нервы в порядке.
А будем собирать программатор под названием STK200/300.
Этот программатор получил свое название от комплектующихся им отладочных плат фирмы Atmel для быстрого начала работы с микроконтроллерами At90s8515 и Atmega103. Но, им иожно прошивать и другие типы контроллеров.
Схем в сети этого программатора полно в различных вариация. Вот собственно его схема:

Тут все просто. На входе защитные резисторы от перегрузки по току, далее идет микросхема 74HC244. Это не инвертирующий буфер. Микросхема содержит два независимых четырехразрядных буфера. Каждый буфер имеет свой сигнал разрешения выхода (низкий активный уровень). На входах нет триггеров Шмитта. Микросхема выполнена по технологии “быстрый” КМОП, что обеспечивает высокое быстродействие. Мощный токовый выход делает возможным сохранение высокого быстродействия даже при емкостной нагрузке. Быстродействие 74HC244 сравнимо с быстродействием микросхем, основанных на диодах Шоттки, при этом 74HC244 сохраняет достоинства микросхем КМОП, т.е. высокая помехозащищенность и низкая потребляемая мощность.Входы микросхемы защищены от повреждения статическим электричеством при помощи диодов. Вот блок схема данной микросхемы:

Так что тут все ясно и просто. На входе питания для программатора и контроллера Vcc
сидит светодиод и сигнализирует о подачи напряжения питания. Светодиод на линии LED / XTAL 1(некоторые программы на эту линию выводят тактовую частоту для работы контроллера) помаргивает при программировании. Ну вроде и все! Перейдем к конструкции.
Была сделана печатная плата. Детали в основном SMD. Плату планировалось «запихнуть в стандартную коробочку для разъема DP-25C. Вот в такую:

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


В крышке разъема потом просверлил отверстия для светодиодов. С платы вывел проводки для подключения контроллера.
Вот файл печатной платы
Все собрано, теперь бы надобно все настроить и опробовать! Поехали!
прошивать будем из программы PonyProg.
Запускаем пони прог. С начала раздастся звук ржания пони, чтоб это в дальнейшем не напрягало, ставим галочку в поле Disable sound, нажимаем ОК. Далее выпрыгнет окошко такого плана:

тут программа нас просит произвести ее калибровку, это нужно для того, чтобы программа проверило „железо“ компа и подстроилось под него, компы ведь бывают шустрые и не очень!)
Нажимаем ОК. Выскочит теперь еще одно окошко:

Тут программа хочет от нас, чтоб настроили интерфейс программирования, проще говоря, указали с каким программатором ей предстоит работать.Нажимаем ОК.
Теперь заходим Setup -> Calibration. Появляется окно:

Нажимаем „YES“ и через некоторое время программа скажет, что „Calibration OK“. Хорошо!
Теперь лезем в Setup -> Interface Setup.

Выбираем параллельный порт ввода/вывода, жмем OK.
Далее лезем в Command -> Program Options. Настраиваем все как на картинке ниже.

Жмем OK. Вот теперь все готово к „прошивке“.
Теперь последовательность действий для „прошивки“ контроллера. Программатор должен уже быть подключен к LPT порту, контроллер к программатору и подано питание на программатор и контроллер.

1. Тут выбираем из списка тип семейства контроллеров „AVR micro“
2. Из другого списка выбираем „ATtiny2313“
3. Загружаем файл прошивки (File -> Open Device File), выбираем нужный файл.
4. Жмём кнопку „Launch program cycle“. Когда программирование завершится, прога скажет „Program successful“
5. Ну и напоследок надо запрограммировать так называемые Фьюзы (fuses). Для этого жмём кнопочку „Security and Configuration Bits“.

В появившемся окне жмём „Read“, потом выставляем галочки фьюзов так, как нам нужно для конкретной схемы и жмём „Write“. Все, все „прошито“ Подробнее об этих самых фьюзах можно почитать тут и тут — тут приводить описание не вижу смысла, уже все давно рассмотрено!
А если у нас есть в наличии современный компьютер или ноутбук, где нет LPT порта вообще?
Как тогда быть? А тогда надо делать USB программатор. В принципе, тут тоже уже все давно придумано. Я собрал себе USB программатор AVR910. Вот официальный сайт его разработчика. Повторюсь, и приведу тут схему данного программатора.

Описание работы здесь не привожу, кто захочет, почитает на страничке автора. Единственный недостаток этого программатора — для прошивки контроллера программатора нужен программатор. Но, думаю где-нибудь найти компьютер с LPT портом, чтоб прошить контроллер хоть „5 проводками“, думаю еще можно!) Была разведена печатная плата, все смонтировано. На плате было выведено +5 вольт с USB порта для питания программируемого контроллера.
Светодиоды HL1 и HL2 загораются при чтении/записи контроллера, светодиод HL3 сигнализирует о подачи питания с USB порта. Перемычкой J1 LOW возможно понижать тактовую частоту порта SPI МК программатора до ~20 кГц. При разомкнутом джампере частота SPI нормальная, при замкнутом — пониженная. Cкорость работы порта SPI МК программатора при разомкнутом джампере J1 равна 187,5 кГц. Это позволяет программировать контроллеры с тактовой частотой примерно от 570 кГц для tiny/mega, 750 кГц для 90S и 7,5 МГц для 89S.
На вывод LED разъема выведен меандр с частотой 1 МГц для „оживления“ МК, у которых были ошибочно запрограммированы фьюзы, отвечающие за тактирование. Сигнал генерируется постоянно и не зависит от режима работы программатора.
Программатор позволяет программировать все контроллеры AVR, поддерживающие ISP (In System Programming — Программирование В Системе), а так же МК серии 89S — 89S53 и 89S8252.
Джампер J2-J3 служит как для начального программирования микроконтроллера (замкнут J2 — MOD), так и для использования в качестве разъема программатора (замкнут J3 — NORM)
Была разведена печатная плата.


Микроконтроллер ATmega8 в программаторе был взят в корпусе TQFP32, если использовать в корпусе DIP28, то следует учесть, что нумерация выводов у МК в корпусах TQFP отличается от нумерации выводов МК в корпусе PDIP-28.
Подключил собранный программатор к программатору STK 200/300, поставил джампер J2, воткнул кабель от программатора в USB порт, запустил Pony Prog и прошил.
Вот файл прошивки.
После система определит новое устройство — AVR910 USB Programmer, при предложении автоматически найти драйвер, отказаться, и указать путь к файлу prottoss.avr910.usb.inf Качаем его здесь.
Система начнет устанавливать драйвер. Если установка драйвера прервется и система попросит указать путь к файлу lowcdc.sys
то указываем где он у нас лежит, вот ссылка для скачивания данного файла. Система должна его увидеть и закончить установку драйвера.
Программатор установлен в системе. Теперь настроим его для работы в программе прошивальщике. К сожалению этот программатор не работает в программе Pony Prog. Работает он в таких программах:AVRProg v.1.4 (входит в пакет AVRStudio), ChipBlasterAVR v.1.07 Evaluation, AVROSP (ATMEL AVR Open Source Programmer), CodeVisionAVR.
Рассмотрим настройку данного программатора в программном пакете CodeVisionAVR.
Качаем ее тут. Теперь самое главное. Щелкаем левой кнопкой на значке „Мой компьютер“,
в выпадающем меню выбираем „Свойства“
Вот так получится:

переходим на вкладку „Оборудование“

запускаем „Диспетчер устройств“

Выбираем „Порты (COM и LPT)“. Видим там „Virtual Communications Port“ и в скобочках указан номер присвоенного порта, в моем случае это COM5. Запоминаем этот номер.
Теперь запускаем CodeVision AVR. В основном меню нажимаем кнопку „Setting“, в выпадающем меню нажимаем „Programmer“:

Появится вот такое окошко:

В самой первой строчке из списка выбираем наш AVR910, во второй строчке выставляем номер
Com порта, который смотрели в диспетчере оборудования. Остальное оставляем без изменений.
Все, программатор настроен. Теперь немного о том как прошить контроллер в CodeVision AVR.
Итак, в основном меню выбираем „Tools“, далее нажимаем „Chip Programmer“,

появится вот такое окошко:

Рассмотрим, что тут есть и как это работает.
Программатор уже должен быть подключен к Usb, а к программатору подключен контроллер,
в моем случае это будет Atmega 8.
В списке Chip выбираем наш контроллер, теперь нажимаем в меню сверху Read.

В этом меню мы можем запустить чтение содержимого контроллера. Пока, что нас интересуют два пункта, это FLASH и Fuse Bit(s). Если нажать на FLASH, то начнется чтение содержимого
FLASH памяти контроллера, на программаторе будет мигать зеленый светодиод. Итак, FLASH прочитана, а где же глянуть, что же там прочиталось. А вот где. Нажимаем в главном меню
Edit, а выпавшем списке FLASH.

Появится вот такое окно:

Вот, собственно, все содержимое FLASH памяти контроллера, тут можно и отредактировать,
если нужно определенные блоки. Но, пока тут все чисто, во всех ячейка — FFFF.
Если нужно прочитать Fuse Bit(s), то делаем следующее — Read — Fuse Bit(s). Пройдет чтение и вот в таком окошке появятся заводские фьюзы контроллера (если он новый):

С этим думаю, понятно. А как же здесь загрузить прошивку в контроллер. Тоже просто!
Сперва нужно указать сам файл прошивки, которым будем загружать в контроллер. Делается это так. выбираем в меню File, далее выбираем Load FLASH.

Жмем Load FLASH и в появившемся окне выбираем файл прошивки.

Нажимаем Открыть.
Теперь заходим в меню Program.

Если в контроллере были какие-то данные, то сперва стираем его, нажав на Erase Chip, если контроллер новый, то стирать не надо. Теперь нажимаем на FLASH. Программа спросит, действительно ли хотите запрограммировать, на что ответьте ОК. Пойдет процесс прошивки.
Когда он закончился, то теперь нужно запрограммировать фьюз биты. Сперва необходимые фьюз биты выставляем в том же окошке

Запомните, если в квадратике, напротив названия фьюз бита стоит галочка, то фьюз бит не запрограммирован, если не стоит, то запрограммирован.
Когда выставили необходимые фьюз биты, то в пункте меню Program нажимаем Fuse Bit(s). Вот
теперь все. Можно еще раз прочитать содержимое FLASH и удостовериться, что все за программировалось.
Теперь немножко по доработке программатора AVR910. Когда я начал им пользоваться и активно шить контроллеры, то выявил один, вроде и не очень существенный недостаток.
Этот программатор достаточно медленно читает и прошивает контроллеры. Вроде, а куда спешить? Но бывает приходится по десять раз стирать и заново прошивать контроллер во время настройки устройства, вот тогда и надоедает ждать. Поискав по сети решение этой проблемы, нашел! Вот тут.
Автор там переделал прошивку самого программатора и теперь с этой прошивкой он работает намного шустрее. Перешивал при помощи того же STK200/300. Вот файл прошивки и драйвера для Windows. После перепрошивки так же устанавливаем драйвер, но только уже из архива, ссылка на который выше. В CodeVision AVR теперь настраиваем следующим образом:

Новая прошивка эмулирует теперь программатор STK 500. Вот такое превращение).
Далее работаем так же как и описывалось выше, но с заметным приростом скорости работы программатора.
Вот и все, что хотел рассказать. Конечно, все в одну статью не всунешь, так что если возникнут вопросы, задавайте! Думаю, статья поможет тем, кто только начинает осваивать
микроконтроллеры AVR!

Грызем микроконтроллеры. Урок заключительный. Прошивка.

Ну вот, писать программы для микроконтроллеров мы научились. Работоспособность прошивки тоже проверили, пусть и виртуально.
Пора переходить на следующую ступень. Раньше мы их боялись, а теперь — они нас!
Будем шить, шить и еще раз шить!!!
Микроконтроллеры корпорации Atmel имеют очень удобный, особенно нам, изобретателям, интерфейс программирования.
Называется он Serial Programming Interface (SPI), или, интерфейс последовательного программирования.

Причем, большинство контроллеров серии AVR поддерживают режим ISP (In System Programming) — Внутресхемное программирование.
Т.е., программировать мы можем уже впаянный в наше устройство микроконтроллер.

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

Называется эта схема «Пять проводков». Почему? Да потому, что пять проводов, подключенных к LPT порту компьютера и будут простейшим программатором.

Резисторы можно и не ставить, но без них можно спалить выходы LPT порта (не лучший исход!), что приведет к необходимости сборки более сложного программатора, или необходимости покупи новой материнской платы.

А еще лучше собрать программатор с буферной микросхемой. Это сохранит ваши LPT порт и нервы
Хотя я, в силу своей лени, так его и не собрал…

А на плате нашего устройства предусматриваем разъем для подключения этого самого программатора. К каким выводам МК всё это подключать смотрим в даташите, в разделе Memory Programming ->SPI.

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

Создаем новую или открываем готовую программу, компилируем.

В меню выбирам команду

И устанавливаем тип программатора STK200+/300

Теперь жмем кнопочку

Открылось окно, в котором уже любезно выбран наш тип микроконтроллера.

Обратите внимание на правую часть окна

Это фьюз биты. Они отвечают за настройку основных режимов работы микроконтроллера.
К примеру, фьюзы CKSEL и CKOPT отвечают за выбор тактового генератора микроконтроллера, а SUT — определяет время, необходимое для установления четкого тактового сигнала.

Для начала очень советую отключить галочку «Program Fuse Bit(s)», во избежание неприятных последствий. И по даташиту на ваш микроконтроллер изучить назначение каждого фьюза!

Вот таблица для настройки фьюз-битов для разных тактовых генераторов.

ОЧЕНЬ ВАЖНО! В таблице «1» означает НЕ запрограммированный бит! В CVAvr это означает СНЯТУЮ галочку. И вообще, если говорят, что фьюз запрограммирован, то это значит, что он равен НУЛЮ, а если НЕ запрограммирован, то он равен ЕДИНИЦЕ. Значение каждого вьюза лучше проверить десять раз, иначе потом будет много проблем!

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

Или, можно вручную очистить память МК

И прошить туда программу

Вот и всё! Отключаем программатор и наслаждаемся результатом

Схемы программаторов и таблица настройки фьюзов взяты с сайта //avr123.nm.ru/.
Советую почитать! Там можно найти много полезной информации по микроконтроллерам!

 

AVR. Учебный курс. Трактат о программаторах

Программа для микроконтроллера пишется на любом удобном языке программирования, компилируется в бинарный файл (или файл формата intel HEX) и заливается в микроконтроллер посредством программатора.
 

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

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

Программаторы бывают разные под разные семейства контроллеров существуют свои программаторы. Впрочем, бывают и универсальные. Более того, даже ту же простейшую AVR’ку можно прошить несколькими способами:
 

Внутрисхемное программирование (ISP)
Самый популярный способ прошивать современные контроллеры. Внутрисхемным данный метод называется потому, что микроконтроллер в этот момент находится в схеме целевого устройства — он может быть даже наглухо туда впаян. Для нужд программатора в этом случае выделяется несколько выводов контроллера (обычно 3. .5 в зависимости от контроллера).


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

  • MISO — данные идущие от контроллера (Master-Input/Slave-Output)
  • MOSI — данные идущие в контроллер (Master-Output/Slave-Input)
  • SCK — тактовые импульсы интерфейса SPI
  • RESET — сигналом на RESET программатор вводит контроллер в режим программирования
  • GND — земля

Сам же разъем внутрисхемного программирования представляет собой всего лишь несколько штырьков. Лишь бы на него было удобно надеть разъем. Конфигурация его может быть любой, как тебе удобней.
Однако все же есть один популярный стандарт:

 

Для внутрисхемной прошивки контроллеров AVR существует не один десяток разнообразных программаторов. Отличаются они в первую очередь по скорости работы и типу подключения к компьютеру (COM/LPT/USB). А также бывают безмозглыми или со своим управляющим контроллером.
 

Безмозглые программаторы, как правило, дешевые, очень простые в изготовлении и наладке. Но при этом обычно работают исключительно через архаичные COM или LPT порты. Которые найти в современном компьютере целая проблема. А еще требуют прямого доступа к портам, что уже в Windows XP может быть проблемой. Плюс бывает зависимость от тактовой частоты процессора компьютера.
 

Так что твой 3ГГЦ-овый десятиядерный монстр может пролететь, как фанера над Парижем.
 

Идеальный компьютер для работы с такими программаторами это какой-нибудь PIII-800Mhz с Windows98…XP.
Вот очень краткая подборка проверенных лично безмозглых программаторов:
 

  • Программатор Громова.
    Простейшая схема, работает через оболочку UniProf(удобнейшая вещь!!!), но имеет ряд проблем. В частности тут COM порт используется нетрадиционно и на некоторых материнках может не заработать. А еще на быстрых компах часто не работает. Да, через адаптер USB-COM эта схема работать не будет. По причине извратности подхода 🙂
  • STK200
    Надежная и дубовая, как кувалда, схема. Работает через LPT порт. Поддерживается многими программами, например avrdude. Требует прямого доступа к порту со стороны операционной системы и наличие LPT порта.
  • FTBB-PROG.
    Очень надежный и быстрый программатор работающий через USB, причем безо всяких извратов. C драйверами под разные операционные системы. И мощной оболочкой avrdude. Недостаток один — содержит редкую и дорогую микросхему FTDI, да в таком мелком корпусе, что запаять ее без меткого глаза, твердой руки и большого опыта пайки весьма сложно. Шаг выводов около 0.3мм. Данный программатор встроен в демоплаты Pinboard

Программаторы с управляющим контроллером лишены многих проблем безмозглых. Они без особых проблем работают через USB. А если собраны на COM порт, то без извращенских методик работы с данными — как честный COM порт. Так что адаптеры COM-USB работают на ура. И детали подобрать можно покрупней, чтобы легче было паять. Но у этих программаторов есть другая проблема — для того чтобы сделать такой программатор нужен другой программатор, чтобы прошить ему управляющий контроллер. Проблема курицы и яйца. Широко получили распространение такие программаторы как:

  • USBASP
  • AVRDOPER
  • AVR910 Protoss

Внутрисхемное программирование, несмотря на все его удобства, имеет ряд ограничений.
Микроконтроллер должен быть запущен, иначе он не сможет ответить на сигнал программатора. Поэтому если неправильно выставить биты конфигурации (FUSE), например, переключить на внешний кварцевый резонатор, а сам кварц не поставить. То контроллер не сможет запуститься и прошить его внутрисхемно будет уже нельзя. По крайней мере до тех пор пока МК не будет запущен.
Также в битах конфигурации можно отключить режим внутрисхемной прошивки или преваратить вывод RESET в обычный порт ввода-вывода (это справедливо для малых МК, у которых RESET совмещен с портом). Такое действо тоже обрубает программирование по ISP.
 

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

Параллельное программирование во много раз быстрей последовательного (ISP), но требует подачи на RESET напряжения в 12 вольт. А также для параллельной зашивки требуется уже не 3 линии данных, а восемь + линии управления. Для программирования в этом режиме микроконтроллер вставляется в панельку программатора, а после прошивки переставляется в целевое устройство.
 

Для радиолюбительской практики он особо не нужен, т.к. ISP программатор решает 99% насущных задач, но тем не менее параллельный программатор может пригодиться. Например, если в результате ошибочных действий были неправильно выставлены FUSE биты и был отрублен режим ISP. Параллельному программатору на настройку FUSE плевать с высокой колокольни. Плюс некоторые старые модели микроконтроллеров могут прошиваться только высоковольтным программатором.
Из параллельных программаторов для AVR на ум приходит только:

  • HVProg от ElmChan
  • Paraprog
  • DerHammer

 

А также есть универсальные вроде TurboProg 6, BeeProg, ChipProg++, Fiton которые могут прошивать огромное количество разных микроконтроллеров, но и стоят неслабо. Тысяч по 10-15. Нужны в основном только ремонтникам, т.к. когда не знаешь что тебе завтра притащат на ремонт надо быть готовым ко всему.
 

Прошивка через JTAG
Вообще JTAG это отладочный интерфейс. Он позволяет пошагово выполнять твою программу прям в кристалле. Но с его помощью можно и программу прошить, или FUSE биты вставить. К сожалению JTAG доступен далеко не во всех микроконтроллерах, только в старших моделях в 40ногих микроконтроллерах. Начиная с Atmega16.
 

Компания AVR продает фирменный комплект JTAG ICEII для работы с микроконтроллерами по JTAG, но стоит он (как и любой профессиональный инструмент) недешево. Около 10-15тыр. Также есть первая модель JTAG ICE. Ее можно легко изготовить самому, а еще она встроена в мою демоплату Pinboard.

 

Прошивка через Bootloader
Многие микроконтроллеры AVR имеют режим самопрошивки. Т.е. в микроконтроллер изначально, любым указанным выше способом, зашивается спец программка — bootloader. Дальше для перешивки программатор не нужен. Достаточно выполнить сброс микроконтроллера и подать ему специальный сигнал. После чего он входит в режим программирования и через обычный последовательный интерфейс в него заливается прошивка. Подробней описано в статье посвященной бутлоадеру.
Достоинство этого метода еще и в том, что работая через бутлоадер очень сложно закосячить микроконтроллер настолько, что он не будет отвечать вообще. Т.к. настройки FUSE для бутлоадера недоступны.
 

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

Pinboard II
Прошивка AVR с помощью демоплаты Pinboard II (для Pinboard 1.1 все похоже)

 

% PDF-1.3 % 1 0 obj > поток конечный поток endobj 2 0 obj > endobj 6 0 obj > endobj 7 0 объект > endobj 8 0 объект > endobj 9 0 объект > endobj 10 0 obj > endobj 11 0 объект > endobj 12 0 объект > endobj 13 0 объект > endobj 14 0 объект > endobj 15 0 объект > endobj 16 0 объект > endobj 17 0 объект > endobj 18 0 объект > endobj 19 0 объект > endobj 20 0 объект > endobj 21 0 объект > endobj 22 0 объект > endobj 23 0 объект > endobj 24 0 объект > endobj 25 0 объект > endobj 26 0 объект > endobj 27 0 объект > endobj 28 0 объект > endobj 29 0 объект > endobj 30 0 объект > endobj 5 0 obj > / ProcSet [/ PDF / Text] / ColorSpace> / Font >>> endobj 4 0 obj > поток hYr7} W * q4I ܈ áR ~ O7ѐ «) 9xS O_Nc-GOy [Dm4˜m ۜ f> z? MBtm,: ^ jDr ^ [# Ua> y1mmrQMWd! ~ C [EέVL ~ 9mPO7q: Htʊ ޏ ~ [4 f ݪ c`tY) gYtD $ kHRȑhYʉƬZiԑj-) jl5ɺ5 [c $ mmк {޿ M> xPNMTS Tc «MUĨm \ ԓ! ٻ 2 bBF3% XM /; zf; i9yS`r (s5iV {[reL! 촬 Yt ְ ‘- #’!) xaMMdSj {zFI & gveq; ‘* yɦh + H $ ˾hT # KN & ^ Nid9c`4ew7F

0 PDF-1. 3 % 1 0 obj > поток конечный поток endobj 2 0 obj > endobj 6 0 obj > / Rect [67. 26 693,08 527,94 707,54] >> endobj 7 0 объект > / Rect [67,26 661,04 527,94 675,56] >> endobj 8 0 объект > / Rect [67,26 629,06 527,94 643,58] >> endobj 9 0 объект > / Rect [67,26 597,08 527,94 611,54] >> endobj 10 0 obj > / Rect [123,96 578,24 527,94 590,72] >> endobj 11 0 объект > / Rect [123,96 559,22 527,94 571,7] >> endobj 12 0 объект > / Rect [123,96 540,2 527,94 552,74] >> endobj 13 0 объект > / Rect [123,96 521,24 527,94 533,72] >> endobj 14 0 объект > / Rect [123,96 502.22 527,94 514,7] >> endobj 15 0 объект > / Rect [123,96 483,2 527,94 495,74] >> endobj 16 0 объект > / Rect [123,96 464,24 527,94 476,72] >> endobj 17 0 объект > / Rect [67,26 432,02 527,94 446,54] >> endobj 18 0 объект > / Rect [123,96 413,24 527,94 425,72] >> endobj 19 0 объект > / Rect [123,96 394,22 527,94 406,7] >> endobj 20 0 объект > / Rect [123,96 375,2 527,94 387,74] >> endobj 21 0 объект > / Rect [67,26 343,04 527,94 357,56] >> endobj 22 0 объект > / Rect [123,96 324,2 527.94 336,68] >> endobj 23 0 объект > / Rect [123,96 305,18 527,94 317,72] >> endobj 24 0 объект > / Rect [123,96 286,22 527,94 298,7] >> endobj 25 0 объект > / Rect [67,26 254,06 527,94 268,52] >> endobj 26 0 объект > / Rect [123,96 235,22 527,94 247,7] >> endobj 27 0 объект > / Rect [123,96 216,2 527,94 228,68] >> endobj 28 0 объект > / Rect [123,96 197,18 527,94 209,72] >> endobj 29 0 объект > / Rect [67,26 165,02 527,94 179,54] >> endobj 30 0 объект > / Rect [123,96 146,18 527,94 158. 72] >> endobj 31 0 объект > / Rect [123,96 127,22 527,94 139,7] >> endobj 32 0 объект > / Прямоугольник [79,74 88,4 94,74 98,48] >> endobj 5 0 obj > / ProcSet [/ PDF / Text] / ColorSpace> / Font> / Свойства >>> endobj 4 0 obj > поток hY [o7 ~ ׯ 㨀 (/ @ Q q] 6b} P1] :! 9 «[ZmrHw> r2} bǾ ~: 4o] YwW7oGoglfdQ1_j8ϕcl v? BhfFTWnlx ܎ = (nXkKjl. ~% 66B1 + cdk ݨ 9 dQ00 9 dQ00 -1,3 % 1 0 obj > поток конечный поток endobj 2 0 obj > / Родительский 3 0 R / Тип / Страница / Содержание 4 0 R / Ресурсы> / ProcSet [/ PDF / Text / ImageC] / Font >>> / MediaBox [0 0 595. 27563 841.88977] / BleedBox [0 0 595.27563 841.88977] / Повернуть 0 >> endobj 4 0 obj > поток x] [䶱 ~ гy

Основы микроконтроллеров | Учебники по микроконтроллерам

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

Определение микроконтроллера

Что такое микроконтроллер ? По сути, это компьютер на одном чипе.

С технической точки зрения компьютер — это любое устройство, которому поручено выполнять математические или логические операции с помощью программ.Ваш компьютер и мой работают благодаря микропроцессору, который отличается от микроконтроллера. Микропроцессору для правильной работы требуются другие микросхемы — RAM, ROM и т. Д. Между тем, микроконтроллер уже имеет внутри микропроцессор, RAM и ROM.

Микроконтроллер — это компьютер, которым можно управлять с помощью программ. Но он не используется, как ваш собственный компьютер, так как в основном используется для автоматического управления продуктами и устройствами. Они используются в медицинских устройствах, приборах, игрушках, автомобилях и многом другом! В этих областях низкая стоимость микроконтроллеров является более выгодной по сравнению с микропроцессором (который и так дорог сам по себе), которому по-прежнему необходимы другие компоненты, называемые периферийными устройствами.

Внутри микроконтроллера

Микроконтроллеры бывают разных производителей, и у каждой марки свой способ подключения внутренних компонентов микроконтроллеров (который мы назовем архитектурой). Типичный микроконтроллер состоит из следующих частей:

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

Память представляет собой две части: программную память и оперативную память (ОЗУ) .Программа или флэш-память — это место, где хранится программа. ОЗУ — это расположение регистров, необходимых для создания приложений для микроконтроллера. В других микроконтроллерах ОЗУ является частью ЦП и называется файлом регистров.

В устройствах CISC (компьютер со сложным набором команд, также называемый архитектурой Von Neumann ) программная память и ОЗУ находятся в одном месте. С другой стороны, устройство RISC (компьютер с сокращенным набором команд, также называемое архитектурой Harvard ) отделяет память программ от ОЗУ.Микроконтроллеры — это в основном устройства RISC.

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

Блок ввода / вывода — это интерфейс между внешним миром и внутренней частью микроконтроллера. Блок ввода-вывода или порт могут принимать данные, отправлять данные или оставаться в подвешенном состоянии. Вывод на порт также может иметь другие функции, назначенные регистром в ОЗУ.

Все микроконтроллеры имеют таймеров , которые могут служить ряду целей. Таймер микроконтроллера может быть автономным (работает независимо от программы) или сторожевым (сбрасывается через определенный интервал времени). Автономный таймер используется, например, для подсчета нажатий кнопок или создания тактового сигнала.

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

Программа микроконтроллера

Программа — это набор инструкций, которые должны выполняться ЦП. Это может быть низкого уровня (сборка) или высокого уровня (C / C ++, Basic, Python) . Они преобразуются в комбинацию единиц и нулей или в машинный код .

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

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

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

Программа высокого уровня менее сложна для программиста и, как правило, является кроссплатформенной (может работать на нескольких устройствах). Самый популярный язык программирования высокого уровня — C / C ++. Платформа Arduino использует C / C ++ для своей IDE (интегрированной среды разработки). У PIC также есть среда программирования, использующая C. Большинство руководств на этом сайте будут использовать C / C ++ в качестве языка программирования.

Загрузка программы в микроконтроллер

Программа написана с использованием IDE, а затем собирается (если язык ассемблера) или компилируется (если язык высокого уровня). Машинный код, сгенерированный после компиляции и сборки, кодируется в так называемом двоичном файле . Файл HEX — это представление двоичных файлов в формате ASCII. Некоторые микроконтроллеры используют файлы BIN вместо файлов HEX. Файл HEX или BIN считывается и интерпретируется программным обеспечением. Затем декодированный машинный код записывается во флэш-память микроконтроллера.

Программатор необходим для загрузки программы во флэш-память микроконтроллера. Аппаратное обеспечение может использовать разные способы программирования устройства. Когда компьютеры были старше, программы загружались в микроконтроллер через параллельный порт. Размер параллельных портов является недостатком современных компьютеров и поэтому полностью устранен. В настоящее время микроконтроллеры программируются через USB с помощью внутрисхемных последовательных программаторов (ICSP). Для PIC оборудование ICSP известно как PicKit.Для AVR это Atmel-ICE. Вы также можете создать свою собственную схему ICSP.

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

Arduino имеет загрузчик, который принимает программу, отправленную пользователем через USB.PIC и AVR также могут использовать загрузчики. ICSP по-прежнему нужен для загрузки загрузчика в первый раз.

Включение питания

Микроконтроллеры обычно не потребляют много энергии. Большинство устройств работают от 5 В, а некоторые работают от 3,3 В и потребляют около 200 мА. Обратите внимание, что микроконтроллеры должны работать от напряжения, указанного в их таблицах данных. В противном случае это приведет к повреждению устройства.

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

Сводка

  • Микроконтроллер — это устройство, которое может принимать программы для выполнения определенных задач
  • Типичный микроконтроллер имеет ЦП, память, блок ввода / вывода, таймер и другие периферийные устройства
  • Программа микроконтроллера может быть низкого или высокого уровня уровень. Для приложений, критичных к пространству и времени программы, предпочтительным является язык ассемблера низкого уровня. Язык высокого уровня, такой как C / C ++, проще в использовании.
  • Программа загружается в микроконтроллер через ICSP или через загрузчик
  • Микроконтроллеры чувствительны к колебаниям напряжения и должны работать в соответствии со спецификациями

Это основы микроконтроллера. Далее мы создадим нашу самую первую программу для микроконтроллера.

Далее >> PIC16F84A — микроконтроллер для начинающих

Начало работы с микроконтроллером 8051

Если вы ищете руководство для новичков по теме « Как начать работу с микроконтроллером 8051 », в этой статье я покажу вам, как работают с микроконтроллером 8051 практически.Я не буду вдаваться в подробности «Что такое микроконтроллер 8051» или «Как написать c-программу» и т. Д., Но цель этой статьи — рассказать об аппаратном и программном обеспечении, необходимом для работы с микроконтроллером, и о том, как использовать их.

Но прежде чем вдаваться в подробности, можно кратко рассказать о микроконтроллере 8051. Это 40-контактное устройство с 4 портами, каждый из которых состоит из 8-ми контактов, что означает 4X8 = 32 контакта. Эти выводы используются для операций ввода / вывода, некоторые выводы имеют двойные функции, такие как таймер, прерывания и т. Д.Среди этих 32 контактов два контакта предназначены для питания и заземления (контакты 40 и 20), два контакта для подключения кварцевого генератора (контакты 18, 19), 3 контакта для подключения внешней памяти (контакты 29, 30, 31) и один контакт. для функции сброса (вывод 9).

Он имеет два типа памяти RAM и Flash-память (EEPROM), они имеют разные размеры в зависимости от микроконтроллера, например, RAM составляет 256 байт, а Flash — 8K для AT89S52. Прочитав эту статью, вы можете перейти к разделу «Взаимодействие светодиодов с микроконтроллером 8051», чтобы получить хорошее представление о микроконтроллере 8051.

IDE для программирования

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

Теперь сначала нам нужна программа на C для запуска микроконтроллера, чтобы мы могли ее запрограммировать, и она будет работать в соответствии с программой. Итак, нам нужна IDE (интегрированная среда разработки) для написания и компиляции программы, доступно множество редакторов, но, несомненно, лучшей IDE является «keil uVision IDE».В Keil uvision вы можете писать, компилировать, отлаживать и запускать программы. Шаги по использованию Keil uvision:

  1. Загрузите последнюю версию keil uvision4 и установите программу.
  2. Перейдите в Project и выберите «New uVision Project», дайте ему имя и сохраните его. Слева вы найдете структуру папок «Target 1» и «Source Group 1».
  3. Щелкните правой кнопкой мыши цель 1, выберите «Параметры для целевой цели 1», щелкните вкладку «Вывод» и установите флажок «Создать файл HEX», затем нажмите «ОК».

  1. Щелкните меню «Файл» и нажмите «Создать», напишите программу на c и сохраните ее с расширением . c, например, led_blinking.c (обычно в той же папке, в которой мы создаем проект uVision)
  2. Щелкните правой кнопкой мыши «Source Group 1», выберите «Add files to Group Source Group 1», выберите файл программы c и нажмите «Добавить», затем нажмите «Close».

  1. Теперь перейдите в меню «Проект» и нажмите «Восстановить все целевые файлы» или нажмите кнопку, как показано на рисунке выше.В окне вывода вы можете проверить наличие ошибок и предупреждений. Он также создает файл HEX в той же папке, что и программный файл c. Этот HEX-файл нужен нам для программирования микросхемы 8051, как описано в следующем разделе.

Итак, в конце этого раздела у нас есть HEX-файл программы c, которую мы хотим запустить через микроконтроллер 8051.

Запись микроконтроллера 8051

Это также называется « Программирование микроконтроллера » или «передача программы микроконтроллеру».Здесь следует отметить, что микроконтроллер не понимает c-программу или язык высокого уровня, поэтому нам нужен файл HEX. Файл HEX находится на языке машинного уровня, который понимает микроконтроллер. Для этого мы проверили «Создать файл HEX» на шаге 3 выше, чтобы сгенерировать файл HEX. Теперь у нас есть HEX файл и чип 8051, но как его передать? Для этого нам понадобится оборудование, которое называется «Записывающее устройство» или «Программатор» .

На рынке доступно много типов аппаратного обеспечения Burner , и мы также можем его построить. Вы можете найти множество руководств в Интернете по теме «Создание горелки 8051».Но если вы новичок, рекомендую покупать, а не строить. Они доступны на рынке по разумной цене (от 5 до 10 долларов). ISP ( в системном программировании ) — это простой и лучший способ программирования микроконтроллера. В программаторе ISP вам не нужно каждый раз вынимать микроконтроллер из макета для его программирования.

Очень легко подключиться к микроконтроллеру 8051, просто подключите линию MOSI (ввод данных) к MOSI 8051, линию MISO (вывод данных) к MISO и так далее, как показано на схеме ниже. Его можно подключить через кабель ISP. И подключите USB-кабель к компьютеру.

Итак, как мы передадим код микроконтроллеру после всех подключений? Для этого нам понадобится программа Burner , которая будет записывать флэш-память микросхемы 8051. Существует множество доступных программ, таких как Flash magic, ProgISP и т. Д. Я рекомендую ProgISP. Ниже приведен снимок программного обеспечения ProgISP. Вот шаги, которые нужно записать:

  1. Загрузите ProgISP и установите драйверы, запустите.EXE файл.
  2. Установите флажки в соответствии со схемой.
  3. Выберите свой чип из раскрывающегося списка «Select Chip»,
  4. Щелкните меню «Файл», выберите «Загрузить Flash», выберите файл HEX и щелкните «Открыть»,
  5. И, наконец, нажмите кнопку Auto в ProgISP. Он запишет вашу программу в чип.

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

Вы можете столкнуться с проблемой при установке драйвера в Windows 7, Vista и 8, решение можно найти здесь.Или вы можете использовать другое программное обеспечение для записи микроконтроллера 8051.

Что дальше?

Как только вы начнете работать с микроконтроллером 8051, начните работать над некоторыми проектами микроконтроллера 8051. Вот несколько экспериментов для начинающих:

— Интерфейс светодиода с микроконтроллером 8051

— 7-сегментный дисплей, интерфейс с 8051

— Интерфейс ЖК-дисплея с 8051

Как загрузить MicroPython на плату микроконтроллера

Добавлено в избранное Любимый 5

pyboard

Pyboard является официальной платой MicroPython и поставляется с мощным микроконтроллером ARM Cortex-M4.

MicroPython pyboard v1. 1

В наличии DEV-14412

Pyboard — это компактная и мощная плата для разработки электроники, работающая под управлением MicroPython. Подключается к компьютеру через USB, g…

3

По умолчанию pyboard поставляется с предварительно загруженным интерпретатором MicroPython, что означает, что вы можете начать писать код для него, как только вытащите его из очаровательного футляра.Основные шаги:

  • Подключите pyboard к компьютеру, и он должен быть зарегистрирован как запоминающее устройство USB.
  • Перейдите (например, с помощью проводника или Finder) к диску pyboard (вероятно, называемому «PYBFLASH»).
  • Измените main.py своим кодом и сохраните файл (замените исходный main.py на диске pyboard).
  • Извлечь (размонтировать) диск из операционной системы (ОС).
  • Нажмите кнопку сброса (RST) pyboard, чтобы запустить вашу программу.

Обновление прошивки

Если вы хотите обновить интерпретатор pyboard, вам нужно будет выполнить несколько дополнительных шагов. Для начала убедитесь, что питание от pyboard отключено. Используйте кусок провода или перемычку, чтобы соединить контакты P1 (DFU) и 3V3 вместе (соединение показано красным ниже).

Подключите pyboard к свободному USB-порту на вашем компьютере. Далее скачиваем файл прошивки:

  • Найдите версию своего pyboard (например, PYBv1.0 или PYBv1.1), который следует написать на доске белым шелкографией.
  • Загрузите последнюю версию файла микропрограммы .dfu для своей платы со страницы загрузок MicroPython.
    • Убедитесь, что вы выбрали микропрограмму из раздела, в котором указана версия вашей платы (например, PYBv1.1).
    • Вы можете видеть, что для каждой версии pyboard есть разные версии прошивки, которые были скомпилированы с разными функциями (с плавающей запятой, многопоточностью и т. Д.). Если сомневаетесь, скачайте стандартную прошивку , так как с ней поставляется pyboard.

Загрузив файл прошивки, воспользуемся dfu-util для прошивки платы новой прошивкой. Установка dfu-util в разных операционных системах (ОС) отличается, поэтому для вашей конкретной ОС см. Ниже:

Окна

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

Убедитесь, что ваш pyboard подключен и находится в режиме DFU (например,г. перемычка P1 на 3V3). В Zadig выберите Options> List All Devices . В раскрывающемся меню выберите STM32 BOOTLOADER . Следует рекомендовать заменить драйвер STTub30 на WinUSB, чего мы и хотим. Если вы этого не видите, выберите WinUSB в качестве заменяющего драйвера в меню драйвера справа.

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

Далее нам нужно использовать dfu-util для загрузки прошивки.Перейдите на сайт dfu-util и загрузите последнюю версию, которая на момент написания этой статьи (август 2018 г.) — 0.9. Кроме того, вы можете загрузить dfu-util v0.9 напрямую, перейдя по этой ссылке.

Разархивируйте его, откройте командную строку и перейдите в распакованную папку. Например, если вы сохранили и разархивировали файл в каталоге Downloads , это может быть:

  язык: Пакетный файл
cd Downloads \ dfu-util-0.9-win64 \ dfu-util-0.9-win64
  

Чтобы загрузить прошивку на pyboard, запустите следующую строку, заменив \ на расположение файла.dfu, который вы скачали (например, он может находиться в папке Downloads, который будет выглядеть примерно так: .. \ .. \ pybv11-20180821-v1.9.4-479-g828f771e3.dfu ):

  язык: Пакетный файл
dfu-util --alt 0 -D <путь к .dfu>
  

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

macOS и Linux

Если вы используете macOS, вам необходимо сначала установить Homebrew.Оттуда установите dfu-util с:

  язык: оболочка
brew install dfu-util
  

Если вы используете дистрибутив Linux на основе Debian, вы можете установить dfu-util с помощью:

  язык: оболочка
sudo apt-get install dfu-util
  

Если ни один из этих вариантов не работает, перейдите на домашнюю страницу dfu-util, чтобы загрузить пакет, двоичные файлы или исходный код.

Когда pyboard подключен и находится в режиме DFU (например, перемычка P1 на 3V3), выполните следующую команду, заменив \ на расположение файла.dfu файл. Например, это может быть ~ / Downloads / pybv11-20180821-v1.9.4-479-g828f771e3.dfu .

  язык: оболочка
sudo dfu-util --alt 0 -D <путь к .dfu>
  

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

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

Испытай это

Несмотря на то, что pyboard перечисляется как запоминающее устройство (что позволяет вам изменять main.py в его флэш-памяти для написания новых программ), вы можете взаимодействовать с REPL для проверки некоторых основных команд. REPL означает читать , оценивать , печатать , loop , и это, по сути, простая интерактивная оболочка, которая позволяет вводить и выполнять по одной команде за раз.

Перед проверкой убедитесь, что вы удалили провод или перемычку, соединяющую контакты P1 (DFU) и 3V3!

Для связи REPL мы будем использовать виртуальный последовательный порт на нашем компьютере.Если вы используете macOS или Linux, драйверы должны быть уже установлены для вас.

В macOS введите команду:

  язык: оболочка
ls -l /dev/tty. usbmodem*
  

Или в Linux введите команду:

  язык: оболочка
ls -l / dev / ttyACM *
  

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

В Windows история немного другая.Подключите pyboard к свободному USB-порту. Откройте диспетчер устройств и найдите порты (COM и LPT) . Разверните его, и вы должны увидеть свой pyboard в списке. Если вы видите «Последовательное USB-устройство», значит драйвер установлен и работает. Если вы видите желтый восклицательный знак (!), Вам необходимо установить драйвер вручную. Щелкните устройство правой кнопкой мыши и выберите Свойства и щелкните Установить драйвер .

Во всплывающем окне выберите Найдите на моем компьютере драйвер .Щелкните Обзор , чтобы открыть файловый менеджер, и выберите диск PYFLASH . Если вы не удалили флэш-память pyboard, она должна поставляться с файлом . inf драйвера, хранящимся на ее флэш-памяти.

Нажмите OK и Далее , и драйвер должен быть установлен для вас. Когда это будет сделано, вы должны увидеть USB Serial Device в списке Ports (COM & LPT) . Вы также можете записать или скопировать имя COM (например, COM6 ).Если вам нужна дополнительная помощь по установке драйвера в Windows, см. Этот документ.

Независимо от вашей ОС, загрузите и установите программу последовательного терминала для вашей операционной системы. Откройте его и запустите новое последовательное соединение с именем COM или расположением файла устройства и скоростью передачи 115200.

Нажмите клавишу , введите , чтобы получить командную строку REPL ( >>> ). Введите следующие команды:

  язык: питон
импорт pyb
led = pyb.Светодиод (1)
led.on ()
  

Это должен включить один из светодиодов на pyboard.

Введите следующую команду, чтобы выключить его:

  язык: питон
led.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *