Site Loader

Содержание

AVR Знакомство с семейством AVR

&nbsp

&nbsp

&nbsp

Урок 1

 

 

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

Почему именно с этой линейки?

Ну, может кто знает, может кто-то не знает, микроконтроллер AVR – это продукт компании Atmel.

Ну почему же всё-таки именно с линейки AVR?

Во-первых, микроконтроллеры AVR – они повсеместно доступны, они есть в любых магазинах, цена их невысока.

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

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

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

Поэтому, будем программировать мы именно под микроконтроллеры AVR.

Начнём мы с такого представителя этой линейки, как микроконтроллер Atmega 8.

ATMEGA 8A

Почему именно с него, с Atmega 8?

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

Имеет на своём борту три порта ввода-вывода. Мы не будем здесь вдаваться в подробности, что такое порты. Вкратце, порты – это такие шины данных, которые работают в двух направлениях – и на вывод, и на ввод.

 

 

Порт B.

У порта B, он у нас неполный, имеет 6 ножек.

0, 1 ножка, 2, 3, 4 и 5. То есть, 6 ножечек.
Порт C также у нас неполный, от нулевой до шестой ножки.
А вот порт D у нас полноправный порт, имеет все 8 ног, т.е. байт данных от 0 до 7.
Питается микроконтроллер от 5 вольт. Можно питать его также от 3,3 вольта, он также будет отлично работать. Но единственное, частота тактирования может быть выставлена только 8 мегагерц максимально. 16 мы не можем выставить при трёх вольтах, можем только при пяти вольтах. Подается питание на 7 ножку. Общий провод – восьмая.
Ну теперь давайте посмотрим, откуда мы можем взять программное обеспечение для программирования.

У компании Atmel имеется свой сайт www.atmel.com. На главной страничке, далеко ходить не нужно, в правой части страницы под главным баннером находится вот Download Atmel Studio.

Вот эту вот программку мы скачиваем, устанавливаем. Впоследствии мы будем создавать в ней свои проекты. А как создавать проекты, как писать код, мы с вами познакомимся на следующих занятиях. Так что пока, скачивайте, устанавливайте.
Прошивать контроллер мы поначалу будем вот в такой вот программе – avrdude.
Ссылка на скачивание avrdode 3.3    avrdudeprog33
Ну, на этом, с вашего позволения, я пока закончу Продолжение будет в следующих уроках.

 

Программирование МК AVR  Следующий урок

 

Смотреть ВИДЕОУРОК

 

 

Post Views: 24 134

Как я научился работать с микроконтроллерами — опыт новичка / Хабр

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

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



Вместо вступления

Впервые интерес к МК у меня возник, когда я учился в 10 классе. На тот момент был 2009 год. Я умел немного программировать на ПК в QBasic и Visual Basic — школьная программа, но так сложилась жизнь, что я особо не разбирался в программировании, да и отсутствие знающих людей по части электроники и МК рядом сделали своё дело — для меня это была новая ниша. Хотя я с детства ковырялся с платами и микросхемами найденными на помойках, но как оно работало я толком не понимал — толком никто не мог объяснить. Как работает транзистор нормально я узнал только спустя пару лет после описанных событий. Когда я выбирал первый МК то смотрел характеристики на сайте ЧИП-ДИП. Скажу честно — для меня это было как иероглифы. Так что не стоит этого бояться. И да, про Arduino тогда никто понятия не имел.

Как всё началось

Начал ковыряться в яндексах и гуглах. Понимал, что сам контроллер — половина дела, нужна ещё и программа. А как сказано во вступлении — с программированием у меня было не очень. В конце концов попал на какой-то сайт. Как стало позднее ясно, я с этим сайтом реально «попал». Создатель сайта написал ещё и учебник по программированию, я на радостях скачал учебник и первое что там увидел — «В качестве образца для работы я использовал PIC16F84A ». Собственно так я и выбрал свой первый МК. Теперь вопрос — почему я именно «попал». А попал я из-за того, что создатель этого учебника и сайта предлагал программировать МК на АССЕМБЛЕРЕ. Его не все практикующие проггеры то знают, а тут новичок… Контроллер я уже заказал, и только потом начал читать учебник, к сожалению.

Как я выходил из положения

После того, как я понял, что ничего не понял, я забросил МК на пару лет, но параллельно всё-таки шарился на форумах типа Схем.нет и прочих, и ко мне постепенно приходило понимание вопроса. Решил учиться кстати на модели PIC16F877A.

Итак, что нужно знать новичку:

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

  • Рабочие частоты от единиц до ~100 Мгц, я лично использую в своих устройствах как правило частоты 20 Мгц, именно МЕГАгерц, а не ГИГАгерц. Частота задаётся внешним источником тактирования — кварцевым или керамическим резонатором.

  • Объём ОЗУ — единицы и десятки Килобайт
  • Объём памяти под данные и программу — до нескольких десятков Килобайт. При желании можно расширить память для данных с помощью микросхем памяти. Для того чтобы использовать эти микросхемы для расширения памяти под программу — новичку стоит забыть, не всякий профессионал может это правильно сделать, да и не каждый микроконтроллер позволяет изменять свою прошивку во время работы.
  • Рабочее напряжение от 1 до 5 вольт в зависимости от модели и производителя.

Микроконтроллер рассчитан на работу на плате, скажем так, в конкретной «железке», на плате, в устройстве. Так что не стоит думать, что на нём можно поиграть в CS 🙂

Языки программирования

Начал выбирать язык программирования и среду в которой можно программировать. Так как я хоть как-то знал Basic, то и задумался, что было бы хорошо прогать на нём. Да, он не очень совершенный и ещё куча недостатков, но для начала подходил как нельзя кстати. Мне повезло, оказалось, что есть язык PIC-Basic. По нему есть учебник, автор Чак Хелибайк и переведённое на русский руководство, собственно до всего доходил дальше по учебнику и руководству. Среда работает из-под ДОС, но можно прикрутить CodeStudio и всё будет работать из-под Windows.

Программатор

Следующая проблема, стоявшая у меня на пути — чем записать программу в чип. Понятное дело, что нужен программатор, я решил экономить, попробовал собрать несколько схем из этих ваших интернетов. Одной схемы недостаточно, нужна ещё программа которая используя программатор (саму железку) занесёт код в память. Все мои опыты окончились неудачами, по причине малого опыта. Решил я больше не смотреть на то, как от чипов идёт дым и заказал PICKit3, после этого не знал проблем, поигрался пару дней с ним и всё заработало.

  • В настоящее время есть адаптированные языки программирования для МК, тот же Бэйсик, СИ и прочие.
  • После написания программы она компилируется в машинный код — файлик с расширением HEX, его-то и надо прошивать в память МК.
  • Для того, чтобы «прошить МК» — записать в него выполняемый код нужно две вещи:

    1) плата-программатор, которая является промежуточным устройством между разъёмом компьютера и самим чипом
    2) Программа-программатор, которая будет знать как работать с программатором, собранным по конкретной схеме.
    То есть нужно чтобы программа на ПК знала какая схема подключена к ПК чтоб правильно прошить чип. В моём случае это заводское решение — вместе с программатором PicKit идет диск с нужными программами.

  • Памяти в МК ограниченное количество, это надо учитывать, иногда приходится выкраивать каждый байт прошивки, лишь бы влезть в объём памяти чипа. Так же следует понимать, что в МК нет никакой операционной системы, и Ваша прошивка — единственные данные которые знает МК.

Несколько слов про периферию

Для связи с внешним миром и удобства работы и разработки в МК встраивают различные периферийные схемы, например АЦП — аналогово-цифровой преобразователь, так что можно без лишней обвязки измерять напряжение подаваемое на вывод МК, но оно должно быть не выше чем напряжение питания, иначе чип сгорит. Используя делитель напряжения можно сделать вольтметр, например. Периферия, количество встроенных функций и их характеристики тоже зависят от модели, как правило чем дороже модель — тем богаче комплектация. Так же следует не забывать, что у контроллера ограниченное число ножек, к которым можно подключиться.

Например у PIC16F877А их 40 штук, причем 7 штук вылетают сразу, т.к. используются для подачи питания, подключения резонатора и управления аварийным сбросом. Так же надо внимательно смотреть документацию на чип. Например тот же АЦП — в PIC16F877А он может измерять напряжение только на 8 конкретных ножках чипа, на других он это делать не может. То есть под каждую встроенную функцию отводятся конкретные выводы и поменять их нельзя.

Суть сей басни такова

Освоить МК реально даже самому и с нуля, но есть места где не очень понятно. Если с программированием никогда не сталкивались, то сначала выучите хотя-бы азы программирования и напишите «Hello World» на компьютере. После этого будет проще. Если не хотите особо заморачиваться — Arduino Ваше всё. МК расчитаны на использование в «железках» — блоки управления, платы, контроллеры итд итп, это не полноценный компьютер, а контроллер. И ожидать от него следует соответственно. Благо сейчас полно примеров на ютубе, и я надеюсь, что мой опыт начинания с нуля будет не таким горьким и моя статья кому-нибудь, да поможет.

Краткий Курс — Самоучитель — Программирование микроконтроллеров AVR — быстрый старт с нуля

 

— стр. 4 -

Краткий курс — Самоучитель — AVR — быстрый старт с нуля.

ПРОГРАММА  для  МК

ПО для микроконтроллеров

Компиляторы  и     Симуляторы 

 

Книги и учебники по электронике и микроконтроллерам  AVR

 

Это уже 4-я страница краткого курса !

вы уже должны представлять себе  

1) что такое МК AVR и в чем его особенности 

2) как МК взаимодействует с электроникой подключенной к нему 

3) как МК преобразует напряжения на его ножках  в  «1» или «0»

4) что является посредником в общении программы с МК

5) какие напряжения на своих выводах может создавать МК  AVR

6) с чего нужно начать разработку эл. устройства

7) какая документация по МК особенно полезна и необходима

8) где найти книги и дополнительные материалы


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

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

 

Итак …

- вы определились с тем какое электронное 
устройство творите, 

- понимаете что оно должно делать, 

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

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

 

Регистры…  регистры…  регистры… 


Короче — 

хотите что-то включить, выключить, поменять в МК - найдите
в ДШ те регистры и биты которые за это отвечают 
и выясните что именно нужно записать в них ! 

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

Особенно просто и правильно вы этого добьетесь с помощью
мастера интерактивного создания кода программы.

Про мастер начальной конфигурации МК написано ниже !

 

Программу для МК удобно создавать в специальных программах — называются 
они компиляторы. 


Если кроме компилятора в пакете есть отладчик-симулятор и/или программатор то это уже IDE (интегрированная среда разработки). 

Компилятор позволяет написать программу для МК на универсальном языке программирования — одинаковом
и для ПК и для различных МК (кстати для МК требуется всего 3-5%
всех возможностей языка программирования). 

Текст программы набранный вами (или другими добрыми людьми) в компиляторе называют исходным кодом (или исходником или сырцом — англ: source code

Компилятор по вашей команде проверяет отсутствие ошибок в набранном исходнике и, если ошибок нет, преобразует исходник (компилирует его) в специальный файл обычно с расширением .hex  — его называют  «прошивка». 

Прошивку с помощью программатора  (для AVR это например 5 проводков с параллельного порта ПК) помещают во FLASH память программ МК и при
необходимости частично в его EEPROM.

 

 

Очень трудно написать программу 
сразу правильно и без ошибок

поэтому 

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

(программа МК называется — firmware).

 

Для отладки вы : 

— включаете ваше устройство с прошитым МК (либо симулятор МК)
— находите отклонения от требуемого алгоритма вызванные ошибками проги, 
— выявляете хитрыми способами эти ошибки, 
— вносите соответствующие изменения в исходный текст программы  
— опять компилируете  
— прошиваете новый .hex в МК и опять на верхний пункт этого списка

И так до победного конца — т.е. до тех пор 
пока устройство заработает 
          так как вам нужно.

 

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

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

В этих случаях я рекомендую использовать 
специальные программы — Симуляторы. 

 

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

Кроме того симуляторы позволяют вам: 

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

делать еще много полезного !

 

 

 

 

Теперь подробнее …

 

 

Компиляторы Си для AVR


Не пугайтесь ! я не предлагаю вам изучить еще и язык Си — мы
просто будем использовать несколько инструкций из
него — как я говорил всего несколько процентов языка. 

Я сам начинал изучать и применять МК сразу 
на Си — и очень доволен результатом.

 

Считаю, что : 

Для начинающих наиболее удобен в работе 

компилятор Си для AVR   CodeVisionAVR  ( или CVAVR)

Вам нужно скачать и установить эту программу! 
демо-версия доступна с официального сайта
  (< 4 Мб)

Полную версию можно найти на заглавной странице курса. 

 

Именно для начинающих ! — Компилятор содержит очень понятный и
очень мощный генератор начального кода программы по вашим
потребностям в конфигурации периферии МК AVR — называется он :

CodeWizardAVR

 

 

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

Затем  мастер («визад») создаст файл проекта .prj и файл  исходного текста программы на языке Си с расширением .c - в нем уже будет содержаться код на Си конфигурирующий МК по сделанному вами «заказу». 

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

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

 

     
 

Подробно и с картинками работу с КодВизадом - мастером начального кода CodeVisionAVR
я описал в задаче 1

 
     

 

 

Обязательно читайте Help  к компилятору — по сути это одновременно и учебник  по Си для AVR и именно в нужном вам объеме ! 

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

Читайте инструкцию и помощь !

Смотрите пробуйте изучайте ПРИМЕРЫ к программе ! 

 

Компилятор CodeVisionAVR  имеет и встроенный программный модуль  для прошивки МК  и конфигурирования фьюзов прямо в схеме.

 


Компания Atmel подсказывает как начать работать 
с этим компилятором Си для AVR: 

AN AVR033  «Getting Started with the CodeVisionAVR C Compiler»

Это  АпНоуто Atmel — надеюсь вы уже скачали хотя бы их список ! 
Если нет то скачайте обязательно их перечень.

Они ВСЕ нужны ВАМ !!! как справочник конкретно по AVR.

 

Для  полного цикла разработки устройства достаточно
только одного компилятора CodeVisionAVR. 

Однако, я рекомендую вам, скачать 
еще один компилятор: 

ICC AVR  от компании  Imagecraft


Я использую и его генератор начального кода на Си — 
конфигуратор периферии AVR — в паре с CodeWizardAVR.

Работая в паре, два мастера конфигурирования МК -
идеально дополняют друг друга! 

Например конфигурация Таймеров МК по моему лучше, понятней
и наглядней сделана в мастере ICC. 

Atmel — подсказывает как начать работать и с этим 
компилятором Си для AVR в Апликейшн Ноуте: 

AN AVR031 «Getting Started with ImageCraft C for AVR»

 

     
 

В компиляторах есть отличные 
примеры программ на Си для 
наиболее часто встречающихся 
задач на МК 

в CodeVisionAVR примеры в папке — CVAVR\Examples 

в ICC примеры находятся в папке — ICC\examples.avr

Примеры — это исходные тексты программ на Си для управления периферией МК и интерфейса (общения) с популярными внешними устройствами. 

Исходники снабжены подробными комментариями! 

Комментарии это то что написано :
— после двух косых черточек // — в одну строку !
— либо между  /*  и  */  —  в одну или несколько строк 

Не забывайте и вы комментировать тексты ваших программ! 

Иначе, буквально через пару месяцев, вам будет очень затруднительно понять, что делает тот или иной кусок даже ВАШЕЙ программы!

 
     

 

 

 

Существуют и другие компиляторы.


БЕСПЛАТНЫЙ ! и  великолепный !

WinAVR (размер 23 Mb) — по честному бесплатный пакет на основе
компилятора GCC — о нем очень хорошие отзывы, он создан и 
развивается энтузиастами. 

Создает очень правильный и компактный код!

Есть версия и под Linux. Есть вариант WinAVR в USB-флэшке.

Этот компилятор хорошо интегрируется с симулятором VMLAB
и фирменным симулятором Atmel - AVRstudio  

(о симуляторах ниже и в самом низу страницы) 

Вы ставите на ПК WinAVR  и забываете о нем!  

Вся работа идет из симулятора VMLAB  — в нем 
есть пример такой интеграции, находится в папке:

C:\VMLAB\WinAVRdemo 

 

Работать с WinAVR без VMLAB  начинающему трудновато.

 

 

 

AtmanAVR   C/C++ Compiler AVRGCC  - он как и WinAVR основан на GCC но 
имеет отладчик и ГЛАВНОЕ для начинающего: прекрасный генератор начального кода ! 

 

 

 

Самый лучший и дорогой !

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

Компилятор IAR генерирует самый 
быстрый и компактный код.

Demo версия на 30 дней — полностью рабочая без ограничений, нет только не нужных начинающему исходников включенных в пакет библиотек.  Вы можете скачать DEMO с сайта производителя — примерно 65 Мб. 

Лекарство спросите в конфе, там же и исходники библиотек от полной версии.

 

 

     
 

Примеры программ на Си подходят 
с незначительными изменениями для 
любых компиляторов и для любых МК ! 

Так как язык Си машино не зависимый — т.е. программы мало 
зависят от того для какого процессора они написаны.

Огромное количество НУЖНЫХ исходников 
(примеры программ) для AVR на Си здесь — AVRLib  
можно скачать все одним ZIP-архивом. 

 
     

 

Скачивать большие файлы рекомендую программой ReGet (~ 1,5 Мб) — эта качалка позволяет докачивать файлы после обрыв соединения, в несколько приемов. 

 

 

 

 

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

- найдите в DataSheet (ДШ) регистры и устройства МК о которых шла речь, прочитайте о  них подробней.

— если вопросы остались перечитайте снова !

- если вопросы не разрешены, ищите ответ:

1) в help и документации компилятора, симулятора, других используемых программ!

2) поиском Windows в папках и help компилятора и симулятора.

3) поиском Windows в папке где сохранен у вас курс. 

4) в моем не структурированном AVRFAQ — это сборник ответов на часто задаваемые мне по курсу вопросы и советы по применению МК от знающих людей.

Если все же не найдете ответа - задавайте вопрос в конференцию 

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

 

 

 

 

 

Средства отладки программ 
и устройств содержащих МК 

 

 

Симуляторы для AVR 
и электроники


Вы скачали компилятор Си для AVR CodeVisionAVR  и АпНоуты  инсталлировали его и получили  файл прошивку для МК.

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

Для этого удобно использовать специальные 
программы для ПК называемые симуляторами. 


Не имея МК, не покупая эл. компонентов и без пайки 

Без риска спалить что либо ! 

Вы можете проверить работу не только программы загруженной в модель МК но и работу модели целого электронного устройства!

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

 

В задачах-упражнениях курса я использую 

Бесплатный симулятор-эмулятор 
для AVR   —   VMLAB 

скачайте и установите на ПК
  

Несмотря на небольшой размер (около 4.2 Мб),  программа является самостоятельным средством разработки ПО на ассемблере для МК сразу двух производителей: ATMEL.com и ST.com !!! 
В одном флаконе! 

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

Юзер дефайн компонентс — в общем если вам нужен какой либо электронный компонент отсутствующий в списке VMLAB, вы можете создать его сами! 
в соответствии с ДШ или по вашим потребностям — даже 
не существующий в природе!

 

 

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

Симуляция в VMLAB используется и в других задачах курса

 

     
  В поставку VMLAB включено множество примеров программ и прошивок для немедленной симуляции — эмуляции устройства с МК.

Примеры находятся в папках:  Tutorial  и  AVR_demo

Запустите их и освойтесь, поиграйте 
с симулятором на досуге …

 
     

 

Есть пример работы VMLAB с CodeVisionAVR ! 
откройте файл проекта 

C:\VMLAB\AVR_demo\codevisi.prj

и по-симулируйте !

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


Уже упоминал: пример работы VMLAB с WinAVR вы устанавливаете winavr в папку по умолчанию и больше ни когда не заглядываете в неё ! 

Вся работа от написания кода на Си до отладки выполняется 
из VMLAB — это очень удобно.  

C:\VMLAB\WinAVRdemo\файлы.prj

захотите попробуете … 

 

 

     
 

Совет !

Скачайте мою заготовку (Шаблон, «РЫБА» - всего 6 Кб) 
для быстрого старта в совместном использовании 

компилятора CodeVisionAVR и 
симулятора VMLAB с МК ATmega16

Скриншот симуляции программы в VMLAB  
посмотрите здесь: http://avr123.nm.ru/vmlab.png

Распакуйте файлы из архива в папку:

С:\VMLAB\WORK

Теперь откройте проект cv.prj в компиляторе CodeVisionAVR. Вы можете править текст программы 
(исходник) и перекомпилировать его.

Для эмуляции работы устройства откройте 
в VMLAB проект vmlab.prj

Вы можете проверить работу программы на Си для МК ATmega16 мигающей светодиодами и посылающей сообщение через USART на монитор-терминал VMLAB.

Если добавить адаптер MK- rs232 (описан в задаче 6 курса, там же и рекомендации) то сообщения можно будет увидеть на экране ПК. 

В общем качайте ! — это нужно ВАМ !

 

Такая же по сути заготовка — но для компилятора 
ICC — это файлы к задаче 6

 
     

 

 


повторю :

На софт-эмуляторе симуляторе VMLAB мы будем проверять работу программы для разрабатываемого устройства.  


Файл-прошивку для МК (расширение  .hex) созданный в компиляторе будем прогонять в симуляторе МК с внешними компонентами и смотреть что работает, что нет, и как работает… 

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


Этот процесс называется — отладка программы или дебагинн — очистка от всякой нечисти - «тараканов» и «жучков»…

 

 

Скачав рекомендованные программы - установите 
их на диск С:\  в каталоги :  

CVAVR      ICCv7avr         VMLAB

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

Значит будет проще помочь, ответить на ваши вопросы.

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

 

     
 

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

НЕ забывайте их читать! 

Они написаны для ВАС ! 

Как, в прочем, и этот курс … 

 
     

 

 

 

Не обязательный для курса

но   ВЕЛИКОЛЕПНЫЙ ! 

Пакет для разработки электронных устройств 
от схемы до печатной платы 

PROTEUS

Действительно супер ! 

Очень советую !

Во первых PROTEUS может симулировать несколько МК  в одном устройстве, причем не только AVR но и PIC и Motorola и 8051 и даже ARM7 вперемешку !  

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

В третьих  вы можете симулировать любые электронные устройства и не 
содержащие МК и очень сложные и электро-механические системы — это очень полезно, 

 

Вам нужно проверить какую то идею 
или вариант реализации чего либо ? 

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

Просто «соберите» вашу схему в PROTEUS и посмотрите как 
она будет работать, каковы будут выходные параметры.

PROTEUS — симулирует очень реалистично ! 

И главное наглядно видна работа устройства, 
напряжения и токи в нем.

В четвертых  

PROTEUS — по сути справочник электронных компонентов 

Когда вы просматриваете библиотеки для добавления компонента на схему — вам сразу показываются его основные свойства и корпус компонента - какова его площадка на плате. Просто класс ! 

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

 

в пакет включены отличные 
примеры работы в  PROTEUS  

примерно 60 устройств готовых к симуляции.

Это : 

— дата логер на жесткий диск (есть модель IDE HDD ! ) 
— можно поиграть в шахматы с ATmega128 !!! (есть модель «точскрина» ) 
— есть пример работы с графическим LCD дисплеем 
— управление шаговым двигателем 
— управление электродвигателем
— управление servo

— радиочастотные схемы, трансформаторы, линии передачи.

— конечно кнопки, индикаторы, светодиоды, связь с ПК, разные датчики, память

— конечно есть виртуальные приборы.

- отладка интерфейсов UART  i2c  TWI  SPI

… Короче все примеры «весят» 16 Мб в распакованном виде !

Вы можете скачать DEMO версию (около 26 Мб) - она полностью рабочая !  Только одно ограничение — не позволяет вам сохранить результат вашей работы. 

Можно конечно захватывать изображение экрана кнопкой «PrtSc»

А можно поискать и поспрашивать полную версию программы …  

Кто реально ищет — тот находит всегда ! 

 

 

 

Читайте Краткий Курс  Самоучитель    PROTEUS                     

Симулятор электронных устройств ПРОТЕУС, поддерживает микроконтроллеры   AVR , 8051, PIC10, PIC16, PIC18, ARM7, Motorola MC68HC11 

Полная система проектирования !

От идеи до результатов работы устройства 
и файлов для платы.

Быстрый старт, самые первые шаги …

 

 

 

А если нет модели нужного 
вам компонента ?

     
 

Вот что я придумал ! 

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

Дело в том что симуляторы не против не реально высокой частоты работы симулируемого МК — я пробовал 500 МГц в PROTEUS и все работает. 

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

 

Преимущество моего метода 

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

Кроме того теперь PROTEUS не работает с моделями созданными без специально полученного кода для создания модели !  А по моему  методу вы сможете делать модели и при желании продавать их не имея такой лицензии и законно!

Надеюсь вы попробуете такой финт ушами …

 
     

 

 


Итог этой страницы курса :

Вам необходимы две программы — CVAVR  и  VMLAB 
для усвоения дальнейшего материала курса.

 

 

 

<- Назад                    Дальше ->

 

 

 

В низу этой страницы есть описание
настройки   WinAVR  и  AVRstudio

Прикладное программирование с нуля

Всем привет, рассмотрев в прошлой статье заключительную публикацию по объектному CAN протоколу, используем наработанный ранее материал для написания ПО диагностики системы управления (СУ). В качестве СУ используем промышленную плату СМ3, фирмы «НПП «Преобразователь комплекс», которая применяется для управления различных приводов, генераторов, реакторов и мн. др., с объектным CAN протоколом MicroMaster. Рассмотрим и реализуем следующую связь: вычитка данных в реальном времени из СУ, используя переходник CAN – wi-fi, прием данных в ПО под управлением ОС Android. Читать далее →

Рубрика: Android и микроконтроллеры., Программы на Си для ARM, Устройства на микроконтроллерах ARM | Метки: Android, CAN, JSON, Stm32 |

Всем привет. Рассмотрев в прошлой статье третий режим работы CAN модуля – LoopBack, опробуем 4-ый (последний) – Normal, т.е. нормальное использование ножек чтения и записи. Также познакомимся с протоколом верхнего уровня для взаимодействия с оборудованием, рассмотрим общую структуру и основные термины. Читать далее →

Рубрика: Программы на Си для ARM, Устройства на микроконтроллерах ARM | Метки: CANopen, Micro-Master, Normal |

Всем привет. В прошлых записях мы рассмотрели режимы Silent для прослушивания CANRX на прямую от процессора и через приемопередатчики (трансcиверы), а также режим Silent and Loopback — прослушивание самого себя. Сегодня разберем режим Loopback, т.е. передача данных в шину, на примере соединения контроллера STM32 and NXP. Выведем данные через отладчики CooCox and IAR. Читать далее →

Рубрика: Программы на Си для ARM, Устройства на микроконтроллерах ARM | Метки: CAN, LoopBack, Stm32 |

Всем привет. В прошлой записи мы с Вами рассмотрели настройку аппаратной части интерфейса CAN, настройку таймингов, скорости, а также один из 4-х режимов — LoopBack. В этой записи мы познакомимся с следующим режимом работы Silent (слушать шину). Подключимся к интерфейсу CAN промышленного контролера через трансивер и без. Читать далее →

Рубрика: Программы на Си для ARM, Устройства на микроконтроллерах ARM | Метки: CAN, Silent, Stm32, TJA1050, трансивер |

Всем привет. В этой статье мы познакомимся с одним из протоколов промышленной сети CAN. На примере микроконтроллера STM32 и библиотеки SPL, повторим примеры, которые предоставляются в библиотеках (stm32f30x_dsp_stdperiph_lib http://www.st.com). Используя данные настройки подключимся к промышленной сети для чтения и записи информации. Используемые девайсы и ПО для тестов:

Читать далее →

Рубрика: Программы на Си для ARM, Устройства на микроконтроллерах ARM | Метки: LoopBack, SPL, STM32f3discovery |

Урок 1. Вводная часть для работы с микроконтроллерами — Микроконтроллеры с нуля — Каталог статей

     Здравствуйте, дорогие друзья! И вот настало то время, когда наигравшись с готовыми платформами, наподобие Arduino, нам захотелось заняться чем-то более серьезным и на новом уровне. А именно — программированием микроконтроллеров (МК). Причем не на облегченном языке С, а именно на его оригинальном синтаксисе. Конечно программировать МК можно и на других языках, например Assembler, но учиться осваивать азы программирования мы рекомендуем именно на С.

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

1. Что такое микроконтроллеры?

 

     Для того чтобы начать программировать и использовать контроллеры в готовых устройствах, необходимо понять что же это такое. И так, микроконтроллер — это специальная микросхема, некий компьютер, который может объединять отдельные электронные узлы, и заставить их работать в единой системе. Не совсем понятно? Ну тогда давайте разберемся на примере.

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

2. Какие бывают микроконтроллеры?

 

     И так, мы узнали что такое микроконтроллер. Но легче нам от этого не стало. Хотя некое осознание все же появилось. Следующее что необходимо знать, это какие МК существуют. Вообще контроллеров большое множество. Мы остановимся на самых популярных:

  1. AVR (8-ми битные микроконтроллеры семейства Atmel) 
    Это основной конкурент для PIC. Может делать все, что делает PIC, но лучше, быстрее, дешевле и проще. Короче говоря, больше возможностей и меньше головной боли за те же деньги.
     
  2. PIC (микроконтроллеры компании Microchip Technology Inc)

    Классические микроконтроллеры от компании Microchip. Очень простые, проверенные, но в них часто отсутствуют многие функции, которые другие производители встраивают в свои микроконтроллеры.
     
  3. MSP 
    Очень неплохие микроконтроллеры от компании Texas Instruments (TI), но не столь популярные, как AVR или PIC. Однако они очень хороши для приложений, где важно низкое энергопотребление.     
     
  4. ARM 

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

 

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

     Наверное самый верный и правильный подход это выбирать не задачу под микроконтроллер, а именно контроллер под определенные задачи. Зачем использовать мощные микроконтроллеры, которые выполняют сотни миллионов операций в секунду, например,в устройствах для открывания/закрывания дверей гаража, или для полива газона, если есть более дешевые и простые варианты. Это Вы должны понять в первую очередь. 

3. Типы корпусов

 

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

  1. DIP (Dual Inline Package) — корпус с двумя рядами контактов. Количество ножек в корпусе — 8, 14, 16, 20, 24, 28, 32, 40, 48 или 56.
     
  2. SOIC (Small Outline Integrated Circuit) — планарная микросхема — ножки припаиваются с той же стороны платы, где находится корпус. При этом, микросхема лежит корпусом на плате. Количество ножек и их нумерация – такие же как у DIP.
     
  3. PLCC (Plastic Leader Chip Carrier) — квадратный (реже — прямоугольный) корпус. Ножки расположены по всем четырем сторонам, и имеют J -образную форму (концы ножек загнуты под корпус). Микросхемы либо запаиваются непосредственно на плату (планарно), либо вставляются в панельку.
     
  4. TQFP (Thin Profile Quad Flat Package) — среднее между SOIC и PLCC. Квадратный корпус толщиной около 1мм, выводы расположены по всем сторонам. Количество ножек – от 32 до 144.

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

main

main

Здравствуйте!

   Меня зовут Ceливaнoв Мaкcим. И если Вас интересует электроника, программирование и микроконтроллеры, и Вы хотите пополнить свой багаж знаний в этих областях, то, Вы попали на нужную страницу! 
   Вот уже почти 7 лет, я занимаюсь разработкой электронных устройств на микроконтроллерах. Сначала это было просто хобби, продолжение моего увлечения электроникой еще с детства. Разрабатывал и собирал всю электронику самостоятельно: от идеи до рабочей платы. Никогда не нравилось повторять чужие схемы из журналов или из интернета. Всегда доставляло удовольствие проектирование собственных устройств, с теми функциями, которые нужны мне, а не которые навязывает автор статьи. Все устройства собирал в основном для себя, иногда для знакомых и родственников. А c 2008 года я начал выполнять и индивидуальные заказы. И с тех пор это еще и дополнительный источник дохода.

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

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

Для кого этот курс?

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

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

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

Что Вы узнаете, изучив мой курс?

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

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

   Познакомитесь с популярными протоколами обмена: RS232, UART, I2C, SPI, 1-WIRE, Манчестерский код, кодирование без возврата к нулю.
   И обращаю внимание, что почти все протоколы будут реализованы программно, то есть в программе будет прописано, в какой момент времени какой уровень сигнала необходимо установить на выводах микроконтроллера, что бы передать либо логическую единицу, либо логический ноль.
   Благодаря программной реализации протоколов, у Вас появиться очень четкое понимание того, как организованы протоколы обмена данными на самом низком уровне и по какой логике происходит построение протоколов обмена!             Более того, Вам вполне по силам будет создать свой собственный протокол обмена!

   Вы научитесь использовать различные средства отладки и программирования: от программы виртуального моделирования электронных схем до логического анализатора. Без этих средств сегодня не обходиться ни один серьезный разработчик.

   Для того, что бы лучше понимать работу микроконтроллера, я научу Вас программировать на самом низкоуровневом языке – на Assembler’е . Почему на ассемблере, а не на Си? Потому что Ассемблер, в отличие от более высокоуровнего языка Си,  дает намного более глубокое понимание работы микроконтроллера. Изучение языка ассемблера дает программисту одно очень важное преимущество — он глубже начинает понимать принцип работы программ, написанных на любых других языках.
   На этом языке мы вместе напишем множество программ, и разберем работу программных библиотек для работы с различными микросхемами и модулями, а так же изучим популярные протоколы обмена.
   И обращаю ваше внимание, что все программы и программные библиотеки, которые будут встречаться в этом курсе, написаны мной лично. Подобных библиотек Вы не найдете ни в интернете, ни в книгах!

Но самое главное, что Вы приобретете — это бесценный практический опыт! Потому что все что мы будем изучать, мы ТУТ ЖЕ ПОСЛЕ ИЗУЧЕНИЯ, БУДЕМ ПРОДЕЛЫВАТЬ НА ПРАКТИКЕ!

А какие преимущества у обучающего курса?

   Благодаря видео урокам, Вы будете отслеживать каждое мое действие, которое я буду сопровождать подробными комментариями, и Вам не составит труда все проделанное повторить уже самостоятельно. Эффективность обучения по видео урокам НА ПОРЯДОК превышает все другие формы обучения! Как будто, рядом с Вами сидит преподаватель и разъясняет, почему он делает все так, а не иначе.

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

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

   Такого объема информации на одном диске вы не найдете больше нигде. Здесь есть почти ВСЕ, что бы успешно не только начать осваивать программирование микроконтроллеров, но и значительно дальше других продвинуться в понимании того, как работает вся современная электроника.

Еще никогда изучение такой сложной темы, как микроконтроллеры не было таким простым!

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

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

Что значит уровня «средней квалификации»?

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

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

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

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

И еще раз повторюсь: Самое главное — это не то, что Вы сможете собрать подобную электронику на микроконтроллерах, а то, что Вы получите ОЧЕНЬ ГЛУБОКОЕ и ЧЁТКОЕ понимание того, как все это работает!

Благодаря глубокому пониманию работы мик​роконтроллеров и различных протоколов обмена данными Вы на порядок лучше будете разбираться в современной электронике, чем те, кто программирует на высокоуровневых языках типа Си, Pascal или вообще использует arduino.

А какие темы будут рассмотрены в курсе?

Всего на диске записано 109 видеоуроков общей продолжительностью 60 часов!

    Все темы я условно разбил на семь разделов. Вот краткое содержание этих разделов и скриншоты из некоторых видеоуроков:

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

   Краткое ознакомление с архитектурой и командами микроконтроллеров AVR. Разбор файла описаний микроконтроллера. Написание первой программы. Трансляция программы и получение файла прошивки.
   Разбор содержимого файла прошивки и коррекция работы программы при помощи редактирования отдельных байтов hex-файла.
   Подробный разбор среды программирования AVR Studio и среды отладки AVR Simulator. Обзор программы PROTEUS.

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

   Байты конфигурационных ячеек. Выбор и настройка источника тактирования микроконтроллера. Конфигурирование FUSE-бит микроконтроллера на примере нескольких программаторов.
   Защита памяти программ и EEPROM памяти от считывания и перезаписи.
   Подключение внешних электронных компонентов к микроконтроллеру. Обзор наиболее интересных электронных компонентов и модулей. Элементы внешней «обвязки» микроконтроллера и их влияние на стабильность работы.
Основные правила трассировки печатных плат.

   Работа с EEPROM памятью микроконтроллера. Основные правила по предотвращению потери данных в EEPROM-памяти.
   Таймеры микроконтроллера. Работа таймера в режиме сброса по переполнению и сброса по совпадению. Прерывания таймера по совпадению и переполнению. Режим широтно-импульсной модуляции. Режим захвата.
   Понятие сторожевого таймера. Режимы работы сторожевого таймера. Модуль аналогового компаратора. Режимы работы аналогового компаратора и настройка прерываний.
   Понятие динамического режима индикации. Основные параметры динамической индикации и тонкости аппаратной реализации.

   Матричный способ опроса группы механических контактов.
   Модуль USART микроконтроллера. Конфигурирование модуля на режим асинхронной передачи данных. Связь микроконтроллера и компьютера. Обмен данными через USB.
   Виды энкодеров. Подключение инкрементного энкодера к микроконтроллеру.
   Жидкокристаллический символьный индикатор на базе контроллера HD44780. Подключение индикатора к микроконтроллеру. Программная библиотека для управления индикатором.
   Прием данных, передаваемых по инфракрасному каналу связи. Виды протоколов передачи. Универсальный алгоритм дешифрации принятых посылок.

   Шина SPI. Теория передачи данных по SPI в четырех режимах работы. Программная эмуляция шины. Flash-карты памяти формата SD и SDHC. Подключение карт памяти к микроконтроллеру. Чтение и запись данных в посекторном режиме.
   Шина I2C. Теория обмена данными по шине. Программная эмуляция протокола I2C. Микросхема часов реального времени. Считывание и запись байт данных. Вывод считанных данных на индикатор.
   Шина 1-WIRE. Теория обмена данными по шине 1-WIRE. Программная эмуляция работы шины. Микросхемы класса iButton. Считывание ID кода микросхем и вывод на индикатор. Микросхема температурного датчика. Команды транспортного и сетевого уровней. Запуск процесса преобразования температуры, считывание и преобразование байт данных. Программный подсчет контрольной суммы CRC-8. Понятие полиномного генератора. Программная реализация полиномного генератора.

Вот некоторые отзывы от тех, кто изучил мой курс


Некоторые из отзывов я специально просил оставить, а другие я взял из переписки через e-mail.


Если захотите оставить отзыв о курсе, то я его тоже опубликую.

«Не так давно решил расширить свои навыки и изучить МК. Довольно долго искал качественный самоучитель, но, скажу честно, осваивать с нуля эту сферу было не так легко, поскольку все самоучители написаны для людей, которым для полного понимания изложенного необходимо знать электронику на уровне не ниже «среднего» в интернете попал на страничку данного курса и почитав информацию решился (хотя в начале цена немного испугала). Если коротко, то ЭТО ПОТРЯСАЮЩЕ! Когда я просмотрел первые уроки, то был просто ошеломлен. Проделана гигантская работа! Информация по каждому разделу разжевывается так четко и подробно, что не понять просто нереально Кроме того, что подробнейшим образом рассмотрены все аспекты программирования МК автор не оставляет без внимания смежные темы, что я считаю одним из важнейших особенностей данного пособия Не пожалел ни копейки и до сих пор удивляюсь этому фантастическому по объему труду Советую всем кто интересуется данной тематикой — это безусловно лучшее пособие на данный момент! Максим оказывает качественную поддержку давая исчерпывающие ответы на все вопросы по электронной почте. Огромная благодарность
создателю!» 

Инженер-энергетик,

аспирант ГНУ «НИИ ВИЭСХ- Руцкой Андрей

“Уважаемый Максим! Никогда не думал что обучение может
приносить такое удовольствие. Я человек который в основном работал с периферией и цель моя была вовсе не программирование (в отличии от моего друга о котором я писал раньше). Но тот заряд, который я уже получил лишь пройдя 30% обучения превзошел мои ожидания и за это Вам огромное спасибо! Вы открыли мне глаза не то, что я раньше игнорировал и теперь понимаю что делал это зря. Хоть и сейчас придерживаюсь мнения что программирование это удел помешанных, очень умных и влюбленных в свое дело людей Вам частично удалось убедить меня что это очень интересно!
Замете — это только 30%. Вы доказали это не сложно, у Вас просто
талант учителя.»

Игорь, Украина.

Из переписки по е-mail

“Моя работа состоит в ремонте и обслуживании компьютеров и
периферийных устройств. Но меня давно — интересовали
микроконтроллеры, и несколько лет назад я реализовал несколько простых проектов. Когда после долгого перерыва понадобилось срочно решить простую задачу, все забуксовало. Я с крайним сожалением понял, что знания по программированию улетучились из моей головы. Потратить неизвестно сколько времени на повторное изучение или отказаться от проекта? Оба вариант никуда не годились! В первый раз у меня ушло несколько месяцев на изучение микроконтроллеров…

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

Надо прямо сказать, что программирование контроллеров — дело не из простых. Нужно не только подружить программу и «железо» микроконтроллера, но и добиться согласованной работы с периферией.
Это при том, что в книгах и даташитах могут быть ошибки и неточности!
Так что порог вхождения в эту область довольно высок.
К счастью, курс Максима сильно понижает этот порог и делает
программирование контроллеров гораздо более доступным. В курсе очень много информации из самых разных областей, связанных с микроконтроллерами. Кроме того, у Максима несомненный педагогический талант — объяснять сложные вещи просто. Это дорогого стоит! Есть немало «учителей», которые не столько объясняют, сколько гордятся своими знаниями. И, ко всему прочему, курсеще и недорогой.
Где еще такой найдешь? Аналогов ему действительно нет.

Спасибо за курс, Максим!“

Виктор Геронда, 

Россия.

“В процессе трудовой деятельности у нас возникла необходимость автоматизировать некоторые процессы. И если бы это был единичный случай, то никаких проблем бы не возникло. Можно было бы заказать схемку у профессионала и вопрос был бы решен. Но, к сожалению, одним случаем дело не ограничивалось, а постоянно заказывать все новые и новые разработки было не выгодно.
Мне когда-то приходилось сталкиваться с паянием схем, но дело было давно, и многое я уже подзабыл. Кроме того, мне никогда не приходилось сталкиваться с икроконтроллерами. Поэтому я полез в интернет и попытался разобраться во всем самостоятельно.
И чем больше я читал, тем страшнее становилось. Я начал понимать, что программирование микроконтроллеров — это тёмный лес. И тут мне повезло — я случайно наткнулся на этот курс.
Когда я прочитал аннотацию к курсу я понял, что это то, что мне
нужно, причём достаточно недорого. Весь курс стоил дешевле
стоимости одной разработки схемы контроллера, заказанной у
профессионалов! Курс был приобретен.
И оказалось, что объем учебных материалов и их качество превзошли все мои ожидания. Автор — профессионал высокого класса, очень подробно рассказывает о всех тонкостях работы с
микроконтроллерами. Благодаря ему я достаточно быстро разобрался в работе этих замечательных микросхем и за месяц сделал свой первый проект.
В курсе очень много дополнительных справочных материалов,
благодаря которым практически любой человек, у которого есть для этого желание, может стать профессиональным программистом микроконтроллеров и создателем на их основе различных схем автоматов для любого производства.

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

Максим, спасибо тебе большое

Александр Лаврентьев, 

Россия.

Сомневаетесь, нужен ли Вам этот курс?

   Без всякого стеснения могу сказать, что данный курс уникален, и аналогов ему нет. Запись всех видеоуроков у меня по времени заняло 1 год. В этот курс я вложил весь свой опыт и очень много сил, тщательно разжевывая каждую деталь, но при этом, стараясь не впадать в крайности и не зацикливаться на объяснении очевидных вещей.
   Отличительной особенностью этого видеокурса является очень глубокий подход к изучению работы микроконтроллеров на уровне их архитектуры и очень глубокое изучение протоколов обмена данными на уровне отдельных сигналов.
   Кроме того что значительная часть курса посвящена программной составляющей конструирования устройств на микроконтроллерах, так же немало времени уделяется и аппаратной составляющей: подбору электронных компонентов, составлению принципиальной схемы и правильной трассировке печатной платы.
   Конечно, при изучении такой сложной темы, как низкоуровневое программирование микроконтроллеров, не может не возникнуть вопросов.
   И поэтому каждый покупатель курса получает возможность обращаться ко мне со всеми возникающими вопросами по материалам видеокурса.
   Где Вы еще сможете получить бесплатные консультации по самому широкому кругу вопросов, связанных с программированием микроконтроллеров?

Для тех, кто «в теме»

   Мне иногда задают вопросы вроде такого: «Я знаком с микроконтроллерами AVR и умею писать программы на ассемблере для этих микроконтроллеров. Узнаю ли я что-нибудь нового из вашего курса?»
   Для того что бы уважаемый посетитель этой страницы смог самостоятельно ответить на этот вопрос, чуть ниже я привожу пример небольшой программы на ассемблере для микроконтроллеров AVR.
   Если Вы разбираетесь в том, как работает эта программа, то в плане понимания работы микроконтроллера, скорее всего, ничего нового не узнаете.

01  /*
02  Для МК tiny2313, mega8, mega88, mega48, mega16, mega32 и других,
03  где spl = 0x3D и ОЗУ начинается с 0x60
04  */
05
06  .cseg
07  .org  0x00
08            ldi R31,low(m0)
09            ldi R30,byte1((m0>>1) + 1)
10            sts 0x10,R30
11            eor R15,R15
12            lpm
13            sts 0x5F,R0
14            rjmp PC+(m0 — 8)                                ;Переход на строку 18
15  m1:   .dw 0x00,(main)+1,0xFF
16
17  .org  0x100
18  m0:    out 0x3D,R16
19            ldi R30,byte1((m1+1)*2)
20            ldi R31,byte2((-(m1+1)*2) — 1)
21            sbc R15,R31
22            sts 0x1F,R15
23            pop R16
24            pop R16
25            pop R16
26
27            lpm
28            sts 0x86,R0
29            adiw R30:R31,1
30            lpm
31            sts 0x85,R0
32            ret    ;Переход на строку 35
33
34  main: nop
35            inc R16
36  .db     «эПереход на main»                           ;Переход на строку 34
37  /*В последней строке в двойных кавычках прописать
38  русскими буквами «эПереход на main»*/

А можно ли посмотреть фрагменты из видеоуроков?

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

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

» AVR с нуля или как начать работать с микроконтроллерами ATMEL

Как начать программирование микроконтроллеров фирмы ATMEL если у вас не чего нету? а что собственно говоря нам надо?

  • Прямые руки и Чистый разум
  • Программатор
  • Микроконтроллер (далее МК)
  • Отладочная плата для МК
  • Собственно своя программа
  • Далее будет инструкция по созданию/приобретению/разработке все что требуется нам.

    Начнем по пунктам.

    1. Прямые руки и Чистый разум.

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

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

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

    Но если учесть тот факт что мы только начинаем наше погружение в мир Электроники то нам надо быть в чем то 100% уверенным и давай те этой константой сделаем программатор чтоб если у нас что то пойдет не так точно не смотреть в его сторону. По сколько сейчас COM порт на новых компьютерах встречается все реже и реже по этому я рекомендую смотреть в сторону программаторах с USB интерфейсом.

    Лично я рекомендую программатор BM9010 от Мастер Кит, я Сам им пользуюсь в течении 2 лет и не каких жалоб кроме того что он плохо дружит с 7 – нет.

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

    Ну тут совет у меня один берите тот у которого по больше памяти и ножек. мы ведь учимся зачем нам ещё думать об экономии? Лично я сам работаю с Atmega8515 16PU и нареканий не имею.

    4. Отладочная плата

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

    Если вы выбрали купить готовый то пропускайте все до 5 пункта.

    Если вы как и я решили сделать её своими руками то тут возникает сразу много вопросов первый из которых а что для этого надо.

    а) Паяльные принадлежности — паяльник, припой, канифоль/флюс, кисточка или шприц для нанесения канифоли/флюса + прямые не дрожащие руки. Желательна подставка под паяльник.

    б) Средства для тестирования нашей схемы — чаще всего подойдет обычный «китайский» тестер.

    в) Кусачки и Круглогубцы

    г) Макетная плата — При выборе макетной (контактной) платы встает вопрос какого размера брать и одно или двух стороннею, мой совет чем плата больше тем лучше мы же не готовое устройство делаем где размер имеет значение, со сторонами на оборот на практике мне нравятся одно сторонние платы потому что я делаю что компоненты с 1 стороны а разводка с другой. Но на вкус и цвет товарищей нет.
    д) DIP панелька — Очень совету купить DIP панельку под МК, чтобы ножек МК паяльником не касаться и не было даже маленького шанса что то испортить.
    е) Стандартная развязка платы — кварц на нужную частоту (совету брать 12/16 МГц) конденсаторы для кварца, порт под кабель от программатора
    ж) Вся остальная развязка платы — для начала рекомендую 1 светодиод и резистор под него.

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

    5. Программа…

    А где собственно писать программу и на чем? раньше вам бы точно сказали на асемблере но сейчас подчи везде используется С и лишь не большие куски кода вставками.

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

    Из начальных проектов рекомендую следующий порядок — моргающий светодиод, работа со светодиодным идикатором, кнопка, Матричная клавиатура, USB связь с компьютером, LCD знако-синтезирующий экран, связь друг МК между собой.

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

    Рекомендуемый мною программатор — www.masterkit.ru/main/set.php?code_id=276487

    Так же рекомендую почитать программирование микроконтроллеров с нуля.

    Программатор AVR для разработки и AVR Studio

    Таблица сравнения AVRISP и ICE


    АВРИСП-У JTAGICE MKII AVRISP MKII АРН ДВС
    Автономный графический интерфейс Есть
    Атмель Студия Есть Есть Есть Есть
    JTAG Есть Есть
    ATxmega Да (PDI) Да (JTAG)
    Целевая мощность Есть
    ДВС Да (JTAG) Да (JTAG / DebugWire)
    Обсаженный Есть Есть Есть
    Старый AT90S Некоторые
    Целевой интерфейс 6- и 10-ходовой 10-ходовой 6-ходовой 6- и 10-ходовой
    Поддержка AVR Все Limited Все Все
    ССЫЛКИ АВРИСП-У JTAGICE MKII AVRISP MKII ATATMEL-ICE

    Платы AVR Training и AVR


    Эти AVR ISP и блоки ICE также доступны в виде комплектов с нашими платами AVR,
    • STK200 для 8, 20, 28 и 40-контактных микроконтроллеров AVR
    • STK300 для 64-контактных микроконтроллеров TQFP AVR
    • Комплекты Xmega для 100-контактных микроконтроллеров ATxmega
    Все комплекты Kanda AVR поставляются с образцами кода, схемами, документацией и книгами, которые помогут вам начать работу с AVR. микроконтроллеры.Они широко используются в колледжах и университетах по всему миру для обучения Программирование AVR с нуля, на ассемблере и языке C.

    STK300 ATmega128 Стартовый комплект АРН с АРН ICE

    USB STK300 ATmega128 AVR Starter Kit с AVR ICE
    Плата AVR STK300, разработанная Kanda для Atmel, всегда была чрезвычайно популярной, и теперь Kanda обновил и улучшил эту 64-контактную плату TQFP AVR ATMega и включил USB ICE

    Код заказа
    STK300-ICE

    Цена: 159 долларов.00

    USB STK300 Стартовый комплект AVR

    USB-версия стартового комплекта STK300 AVR
    STK300 — это стартовый комплект с USB-программатором, разработанный для ATmega128 и других установленных 64-контактных микроконтроллеров TQFP AVR …

    Код заказа
    STK300

    Цена: 95 долларов.00

    Плата AVR Xmega и AVRISP-MKII

    Плата разработки и программатор AVR Xmega
    Этот комплект разработчика Xmega идеально подходит для начала работы с микроконтроллером AVR Xmega. Он включает в себя плату Xmega и программатор AVRISP MKII. На плате установлен 100-контактный ATxmega128A1

    .

    Код заказа
    AVR-XMEGA-KIT

    Цена: 149 долларов.00

    Новый комплект USB STK200 AVR

    STK200-X Стартовый комплект АРН
    Все, что вам нужно, чтобы научиться программировать микроконтроллеры AVR на языке ассемблера и C. Новая плата STK200-X со встроенным последовательным портом USB, программатором USB, учебными пособиями ….

    Код заказа
    STK200-X

    Цена: 75 долларов.00

    Стартовый комплект Atmel ICE

    Новая плата AVR STK200-X с Atmel ICE
    Изучите программирование микроконтроллеров с нуля. Этот комплект идеально подходит для начинающих, но включает в себя все необходимое для разработки собственных проектов.

    Код заказа
    STK200-X-ICE

    Цена: 149 долларов.00

    Учебники по микроконтроллерам

    — станьте экспертом в программировании микроконтроллеров и цифровой электронике!

    *** Новое эксклюзивное руководство ***

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

    Руководство по микроконтроллеру для начинающих

    Если вы новичок и хотите получить знания о микроконтроллерах, вы можете найти что эта серия руководств идеально подходит. В этом руководстве исследуются различные использует и особенности популярного микроконтроллера AVR Atmega32. В руководстве показано реальные программы пишутся и объясняются с помощью разработки схем. Базовый и средний концепции программирования и способы их использования также предоставляются.Через множество примеры, вы можете стать экспертом по встроенным системам в кратчайшие сроки.

    Микроконтроллер — Введение

    Изучите основные функции микроконтроллера AVR Atmega32 и некоторую информацию об использовании каждого контакта. Также кратко объясняется программирование микросхемы (получение программы на микросхеме).

    Программист MCU 1

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

    Программист MCU 2

    Установлен драйвер для программатора, который используется для передачи кода на микроконтроллер. Процесс установки совместим с операционной системой Windows 7, а также с предыдущими версиями Windows.

    Установка MCU WinAVR

    Драйвер и интерфейс готовы, но необходима среда программирования, чтобы фактически писать программы и передавать их в микроконтроллер.В этом руководстве мы создали среду программирования AVR-GCC под названием winavr.

    MCU Добавить светодиод и тест

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

    Первая программа MCU

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

    Светодиод MCU мигает

    Еще немного углубимся в программирование микроконтроллера и заставим светодиод мигать.

    Установка Atmel Studio 6

    Узнайте, как установить Atmel Studio 6 и настроить функции программирования микроконтроллера.

    MCU Добавить кнопку

    В этом руководстве мы добавляем возможность взаимодействия человека с микроконтроллером. Добавлена ​​кнопка для изменения скорости мигания светодиода.

    Кнопка Debouncing

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

    Программное обеспечение Debounce

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

    Игра в кнопку

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

    Создание библиотеки кнопок

    Абстрагирование кода кнопки и программного обеспечения в библиотеке, чтобы программирование основного микроконтроллера было более компактным.

    Таймеры Счетчики Базовые

    тик-так, тик-так.Узнайте, как микроконтроллер считает и время. Узнайте, как запрограммировать микроконтроллер для управления таймером и счетчиком.

    Введение в прерывания

    Здесь перерывы — это хорошее воспитание и даже желательно. Мы прерываем подпрограммы из событий в микроконтроллере и создаем программы микроконтроллера для обработки событий.

    Подключение к ЖК-дисплею

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

    Первая ЖК-программа

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

    ЖК-дисплей и струны

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

    Цифры на ЖК-дисплее

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

    Разделение ЖК-кода

    Пришло время разгрузить код main.c и перенести все процедуры LCD в их собственную библиотеку, чтобы файл main.c был более читабельным. Это сделает программирование микроконтроллера намного более увлекательным.

    Функция для отображения целых чисел

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

    Источники энергии

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

    Изготовление соединителей

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

    Потенциометры

    Вы действительно знаете, как работает потенциометр? Вы знаете, как сделать из него супер крутой делитель напряжения? Узнайте, как использовать потенциометр для получения переменного напряжения, чтобы его можно было использовать в АЦП (аналого-цифровой преобразователь) на микроконтроллере.

    Введение в АЦП

    Узнайте, как работает АЦП (аналого-цифровой преобразователь), и дайте несколько советов по поддержанию вашего аналогового сигнала и вашего микроконтроллера.

    ADC — Первая программа

    Давайте напишем нашу первую программу АЦП и пусть микроконтроллер считывает напряжение, поступающее с потенциометра.

    АЦП и 10-битные

    Увеличьте разрешение АЦП микроконтроллера, зафиксировав 10-битный результат (результат будет находиться в диапазоне от 0 до 1023).

    Акселерометры / АЦП

    Узнайте об акселерометрах и о том, как конкретная разновидность связана с микроконтроллером.

    Измерьте шум АЦП

    Вы постоянно слышите шум от АЦП, и это сводит вас с ума? Из этого туториала Вы узнаете, как измерить этот шум и увидеть, как результаты измерений падают при применении методов шумоподавления к сигналу и микроконтроллеру.

    Несколько каналов АЦП

    Итак, одного датчика или устройства, подключенного к АЦП микроконтроллера, недостаточно? Что ж, посмотрим, как использовать другие каналы АЦП.

    Введение в сервоприводы для хобби

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

    Введение в ШИМ

    Изучите детали ШИМ (широтно-импульсной модуляции) и узнайте, что нам нужно знать, чтобы начать выводить сигналы ШИМ с микроконтроллера на различные устройства.

    Управление сервоприводом с помощью ШИМ

    Теперь, когда у нас есть понимание некоторых концепций ШИМ, давайте управлять сервоприводом с микроконтроллера! Мы углубимся в суть настоящего понимания ШИМ и того, как ШИМ сможет управлять рогом сервопривода для хобби.

    Детали UART и USART

    Использование микроконтроллера для связи с функциями UART и USART.

    UART One Way Comm.

    Использование UART для связи от передающего микроконтроллера к принимающему микроконтроллеру.

    Программирование I2C (Эксклюзив)

    Получите подробные инструкции о том, как кодировать I2C / TWI (двухпроводной интерфейс) с помощью микроконтроллера Atmega 324p.В этом эксклюзивном видео мы будем общаться с ускорителем ADXL.

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

    Это серия видео и практических занятий, посвященных основам разработки микроконтроллеров AVR ® . Проекты разрабатываются с нуля с использованием таблицы данных, AVR LibC и более поздних примечаний к приложениям в качестве основных справочников по программированию (START не используется).
    В серии видео представлены несколько периферийных устройств AVR, включая GPIO, таймер / счетчик, USART и ADC. В процессе обучение развивается в направлении создания примера приложения, которое производит выборку аналогового светового датчика с помощью АЦП, а затем пропорционально обновляет рабочий цикл ШИМ на основе показаний датчика АЦП. Затем усредненное значение датчика отправляется через USART на терминал ПК.

    Автономное обучение можно загрузить как «Указание по применению AN17644 — Начало работы с микроконтроллером AVR» , которое содержит следующие проекты:

    1. Включить светодиод на кнопке
    2. Уменьшите яркость светодиода с помощью ШИМ, используя TC1
    3. Канал АЦП считывает каждые 500 мс и LED0 переключается
    4. Оптимизация энергопотребления и спящий режим

    Вы также можете получить доступ к этому обучению из базы данных Atmel START.
    Atmel Start Project — Начало работы с микроконтроллером AVR

    Этот тренинг является комбинированным решением вышеупомянутых проектов. В этом комбинированном решении добавлен код оптимизации мощности, спящий режим выбран как POWERDOWN, ADC channel0 считывается, а PWM генерируется на PB1 с использованием TC1.

    После инициализации периферийных устройств устройство переходит в спящий режим и выходит из спящего режима при прерывании PB7 смены вывода. При нажатии SW0 (PB7) на ATmega328PB устройство выходит из спящего режима, затем считывает ADC channel0 и ждет 10 секунд.В это время наблюдается затемнение светодиода на PB1 (подключите PB1 к PB5 на ATmega328PB Xplained Mini). Через 10 секунд устройство снова перейдет в спящий режим.

    ПОДДЕРЖИВАЕМЫЙ ОЦЕНОЧНЫЙ КОМПЛЕКТ

    • ATmega328PB Xplained Mini

    ЗАПУСК ДЕМОНСТРАЦИИ ПРОЕКТА

    1. Щелкните «Загрузить пакет» и сохраните файл .atzip.
    2. Импортируйте файл .atzip в Atmel Studio 7, файл > Импорт> Atmel Start Project .
    3. Выполните сборку и загрузите на поддерживаемую оценочную плату.
    4. На ATmega328PB Xplained Mini подключите PB1 к PB5, так как LED0 подключен к PB5. Затем подключите PC0 к 3V3, поскольку PC0 является каналом 0 АЦП.
    5. Устройство переходит в спящий режим.
    6. Нажмите «SW0» на ATmega328PB Xplained Mini, чтобы вывести устройство из спящего режима. Считывается канал АЦП, затем подождите 10 секунд. Наблюдайте за тем, как светодиод гаснет в течение 10 секунд.
    7. Через 10 секунд устройство снова переходит в спящий режим. В спящем режиме затемнение светодиода не наблюдается, так как в спящем режиме POWERDOWN TC1 также останавливается.

    Установка Arduino на макетной плате

    Создание Arduino на макетной плате

    Обзор

    Из этого туториала Вы узнаете, как создать макетную плату, совместимую с Arduino, с микроконтроллером AVR Atmel Atmega8 / 168/328 и коммутационной платой FTDI FT232 от SparkFun. Вы также можете использовать Arduino USB Mini.

    Первоначально созданный Дэвид А. Меллис
    Обновлено из версии ITP Карлин Мо
    Обновлено 23 октября 2008 г. Рори Ньюджент

    Детали

    Для этого вам понадобятся:


    Принадлежности
    Основные детали для подключения Arduino
    • Макетная плата
    • Провод 22 AWG
    • 7805 Регулятор напряжения
    • 2 светодиода
    • 22 резистора 220 Ом
    • 1 резистор 10 кОм
    • 2 конденсатора по 10 мкФ
    • Тактовый кристалл 16 МГц
    • 2 конденсатора 22 пФ
    • малая кратковременная нормально разомкнутая («выключенная») кнопка, т.е.е. Omron тип B3F
    USB к плате последовательной связи

    Вам понадобится плата FT232 USB Breakout от SparkFun. Из них доступны два варианта:

    • FT232RL Плата подключения USB к последовательному порту, SKU BOB-0071
    • Плата последовательного USB-порта Arduino, SKU DEV-08165

    Если вы планируете использовать верхний вариант и еще не припаяли разъемы к коммутационной плате, сейчас самое подходящее время.

    Загрузка ваших чипов Atmega

    Существует несколько вариантов загрузки ваших чипов Atmega, некоторые из которых описаны в этом руководстве.Если вы хотите загрузить свои чипы Atmega с помощью макетной платы, дополнительная часть значительно упростит вам жизнь, но в этом нет необходимости. Адаптер программирования AVR от Sparkfun, SKU. BOB-08508

    Добавление схемы для блока питания

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


    Верхние линии электропередач

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


    Нижние линии электропередач

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


    Добавьте конденсаторы 7805 и развязки

    Добавьте регулятор мощности 7805 и линии для питания платы. Регулятор представляет собой корпус TO-220, в котором вход от внешнего источника питания идет на вход слева, земля находится в середине, а выход 5 В находится справа (если смотреть на переднюю часть регулятора).Добавьте провода питания и заземления, которые подключаются к правой и левой направляющим на макетной плате.

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


    светодиод

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


    Вход источника питания

    Красный и черный провода слева от регулятора напряжения — это место, где будет подключаться ваш источник питания. Красный провод предназначен для ПИТАНИЯ, а черный провод — для ЗАЗЕМЛЕНИЯ. Убедитесь, что вы подключаете только источник питания с напряжением от 7 до 16 В. Немного ниже, и вы не получите 5В из регулятора. Если установить более высокое значение, регулятор может быть поврежден. Подходит аккумулятор 9 В, источник питания 9 В постоянного тока или источник питания 12 В постоянного тока.


    Пустой холст

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

    Основы ATMEGA8 / 168/328

    Схема контактов
    Arduino

    Прежде чем двигаться дальше, посмотрите на это изображение. Это отличный ресурс для изучения того, что делает каждый из контактов вашего чипа Atmega по отношению к функциям Arduino. Это прояснит большую путаницу, связанную с тем, почему вы подключаете определенные контакты именно так, как вы это делаете. Для получения более подробной информации взгляните на таблицу данных Atmega 168 (короткая версия) (длинная версия).Вот лист для atmega328 (короткая версия) (длинная версия)


    Добавить вспомогательную схему

    Начните с подключения подтягивающего резистора 10 кОм к + 5 В от вывода RESET, чтобы предотвратить самопроизвольный сброс микросхемы во время нормальной работы. Контакт RESET перезагружает микросхему при опускании на землю. В следующих шагах мы покажем вам, как добавить переключатель сброса, который использует это преимущество.

    • Контакт 7 — Vcc — Напряжение цифрового питания
    • Контакт 8 — GND
    • Контакт 22 — GND
    • Вывод 21 — AREF — Вывод аналогового опорного сигнала для ADC
    • Контакт 20 — AVcc — Подача напряжения для преобразователя АЦП.Должен быть подключен к источнику питания, если АЦП не используется, и к питанию через фильтр нижних частот, если он равен (фильтр нижних частот — это схема, которая снижает шум от источника питания. В этом примере он не используется)

    Добавить часы и крышки

    Добавьте внешнюю синхронизацию 16 МГц между контактами 9 и 10 и добавьте два конденсатора по 22 пФ, идущих на землю от каждого из этих контактов.


    Добавить переключатель сброса

    Добавьте небольшой тактильный переключатель, чтобы вы могли перезагрузить Arduino, когда захотите, и подготовить чип для загрузки новой программы.Кратковременное нажатие этого переключателя приведет к сбросу микросхемы при необходимости. Добавьте переключатель чуть выше верхней части микросхемы Atmega, пересекая щель в макетной плате. Затем добавьте провод от левой нижней ножки переключателя к контакту RESET микросхемы Atmega и провод от верхней левой ножки коммутатора к земле.


    светодиодных вывода на выводе 13 Arduino

    Чип, используемый на этой плате, фактически уже запрограммирован с помощью программы blink_led, которая поставляется с программным обеспечением Arduino. Если у вас уже работает печатная плата Arduino, неплохо было бы проверить макетную версию, которую вы собираете, с чипом, который, как вы знаете, работает.Вытащите чип из своего рабочего Arduino и попробуйте его на этой плате. Программа blink_led мигает контактом 13. Контакт 13 на Arduino НЕ является контактом 13 AVR ATMEGA8-16PU / ATMEGA168-16PU. На самом деле это контакт 19 на микросхеме Atmega.

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

    Светодиод
    на выводе 13 Arduino

    Наконец, добавьте светодиод. Длинная ножка или анод подключается к красному проводу, а короткая ножка или катод подключается к резистору 220 Ом, идущему на землю.


    Готово к Arduino!

    На этом этапе, если вы уже программировали свой чип в другом месте и не нуждались в этой макетной схеме для перепрограммирования чипа, вы можете остановиться на этом. Но часть удовольствия — это внутрисхемное программирование, так что продолжайте создавать полноценную схему USB-Arduino на макетной плате!

    Готовность к Arduino


    Добавить FT232 USB к последовательной плате

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

    Подключите VCCIO коммутационной платы к источнику питания, а GND к земле.


    Распиновка прорыва Sparkfun FT232

    Любопытно, какие контакты у коммутационной платы SparkFun FT232, просто переверните ее! В этой ситуации мы будем использовать VCC (для подачи 5 В от порта USB на вашу плату), GND, TXD и RXD.


    Подключение TX и RX

    Теперь пришло время подключить коммутационную плату USB к последовательному порту с вашей новой установкой Arduino. Подключите RX (контакт 2) вашего чипа Atmega к TX платы USB с последовательным интерфейсом и подключите TX (контакт 3) вашего чипа Atmega к RX USB на плате последовательного интерфейса.

    И вот он … готов к подключению, включению и программированию!

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

    Однако, если вы приобрели дополнительные чипы Atmega328 или Atmega168 в интернет-магазине, они НЕ были загружены с загрузчиком Arduino (за исключением Adafruit Industries).Что это значит? Вы не сможете запрограммировать свои чипы, используя плату USB для последовательного подключения и программное обеспечение Arduino. Итак, чтобы ваши новые чипы были полезны для Arduino, вы ДОЛЖНЫ загрузить их и ДОЛЖНЫ проверить шаг 4.

    Другие варианты макетных плат

    Установка uDuino от Tymn Twillman
    Эта конфигурация аналогична приведенной выше, но хитрость заключается в том, что на чип Atmega загружается загрузчик Arduino Lilypad. Lilypad работает с использованием внутренних часов вместо внешних, что устраняет необходимость в большей части вспомогательных схем.

    Boarduino от Ladyada
    Boarduino — это комплект, который вы покупаете и собираете для создания красивой, небольшой макетной платы, совместимой с Arduino. Все стандартные компоненты размещены на небольшой печатной плате, поэтому Boarduino можно легко добавить на макетную плату и даже удалить.

    Загрузка микросхем

    ДОПОЛНИТЕЛЬНО
    Параметры загрузки

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

    • Загрузка вашего чипа Atmega с помощью платы Arduino и программатора AVR
    • Загрузка микросхемы Atmega на свежеприготовленную макетную плату с помощью программатора AVR

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


    AVRISP MKII
    USBtinyISP
    ArduinoISP


    AVRISP mkII можно приобрести в Digikey (номер по каталогу ATAVRISP2-ND), в то время как USBtinyISP необходимо собрать, и его можно найти в Adafruit Industries.Документацию и ссылки на магазин Arduino и список дистрибьюторов можно найти на странице продукта ArduinoISP.

    Использование платы Arduino

    Загрузочная загрузка на плате Arduino

    Вставьте микросхему Atmega в плату Arduino так, чтобы выемка микросхемы была обращена наружу. Установите перемычку на внешний источник питания и подключите блок питания 12 В (ваша плата должна иметь внешнее питание при использовании AVR ISP mkII, но не требуется с AVRtinyISP). Затем прикрепите 6-контактный гнездовой штекер программатора AVR к 6-ти штыревым контактам ICSP так, чтобы пластиковый выступ головки ленточного кабеля был направлен внутрь.

    ПРИМЕЧАНИЕ: AVR ISP mkII загорается зеленым светом, когда они правильно подключены и готовы к программированию. Светодиод становится красным, если он подключен неправильно.

    Использование макета

    Адаптер для программирования AVR

    При загрузке микросхемы Atmega на макет невероятно удобен адаптер программирования AVR (SKU BOB-08508) от Sparkfun. Этот адаптер заменяет 6 контактов программатора на 6 линейных контактов для легкого прикрепления к макетной плате. Все контакты также промаркированы, что упрощает подключение к микросхеме.


    6-контактный кабель программатора AVR

    Не волнуйтесь, если у вас нет адаптера программирования AVR, вы все равно можете загрузиться без него. Однако его настройка будет более сложной задачей. Два изображения слева — отличные ссылки при подключении программатора к микросхеме Atmega без платы адаптера. На изображениях будет показано, какие отверстия в 6-контактном штекере AVR, и вам просто нужно будет вставить провода в конце и провести их к микросхеме Atmega.


    6-контактная кабельная головка программатора AVR

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


    Добавить мощность и землю

    Начнем!

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


    Подключите адаптер AVR

    Теперь подключите адаптер программирования AVR к макетной плате так, чтобы контакт GND совпадал с проводом заземления, который вы только что проложили, а контакт 5V — с проводом питания, который вы только что проложили.


    Добавьте провода MISO, SCK, RESET и MOSI

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

    • Контакт MISO вашего адаптера будет подключаться к контакту 18 или цифровому контакту Arduino 12 вашего чипа Atmega.
    • Контакт SCK вашего адаптера будет подключаться к контакту 19 или цифровому контакту 13 Arduino вашего чипа Atmega.
    • Контакт RESET адаптера перейдет к контакту 1 микросхемы Atmega.
    • Контакт MOSI вашего адаптера будет подключаться к контакту 17 или цифровому контакту 11 Arduino вашего чипа Atmega.

    Подключите кабель USB и кабель программирования AVR.

    Почти готово! Просто подключите кабель USB к коммутационной плате USB и подключите 6-контактный штекер программатора AVR к адаптеру программирования AVR.Черный выступ 6-контактной головки должен быть направлен вверх в сторону микросхемы Atmega. На следующем шаге мы покажем, что вам нужно использовать программное обеспечение Arduino для записи загрузчика!

    Пора гореть!

    Выберите тип платы

    Запустите Arduino, затем перейдите в «Инструменты» и «Плата». Выбор типа платы, которую вы хотите использовать, повлияет на то, какой загрузчик вы поместите на свой чип. Чаще всего вы будете использовать Diecimilia или самую последнюю версию Arduino для Atmega PDIP, однако, если вы хотите загрузить Arduino Lilypad, Arduino Mini, Arduino Nano или любую из более старых версий Arduino, выберите подходящую плату. .


    Выберите своего программиста. Гореть!

    Затем перейдите в «Инструменты» и «Записать загрузчик» и выберите программатор, который вы будете использовать.


    Горение

    После того, как вы выберете свой программатор, программатор AVR начнет загрузку вашего чипа Atmega, и в строке состояния появится сообщение «Запись загрузчика на плату ввода-вывода (это может занять минуту) …» Индикаторы будут мигать. ваш программист.


    Запись завершена!

    После завершения загрузки в строке состояния появится сообщение «Готово записать загрузчик.«Теперь ваш чип готов к программированию с помощью программного обеспечения Arduino! Поздравляем! Выключите и снова включите ваш Arduino, и ваш новый чип Atmega будет запускать простую программу мигания светодиода с выводом 13 (если это не так, попробуйте запрограммировать его с помощью одного) Если это сработает, значит, это был успех.

    ПРИМЕЧАНИЕ. Иногда процесс загрузки микросхемы Atmega с помощью AVR ISP mkII занимает чрезвычайно длительный период времени. Обычно это занимает всего пару минут, и на самом деле AVRtinyISP завершает работу намного быстрее.Однако бывают случаи, когда через 5-10 минут он все еще загружается. Я обнаружил, что это странный сбой (возможно, это тройная проверка потока данных), и, дав ему достаточно времени, 10 минут или около того, я обычно отключаю программатор только для того, чтобы обнаружить, что процесс записи прошел успешно и давно закончился . Я ни в коем случае не поддерживаю этот метод, и вы берете на себя всю ответственность за все, что может случиться с вашим чипом, но, по моему опыту, он был довольно безвредным, хотя вам следует действовать с осторожностью.Вполне возможно, что в процессе вы можете повредить свой чип.

    Учебные пособия по микроконтроллеру

    AVR для начинающих

    Руководства по микроконтроллерам AVR: В этой статье мы собираемся представить полный список руководств по микроконтроллерам AVR. Прочитав эту статью, вы получите полное представление о микроконтроллерах avr. Этот список содержит более 20 руководств по микроконтроллерам AVR. мы полностью узнаем о микроконтроллере AVR и взаимодействии с другим компонентом с помощью микроконтроллера AVR.Итак, мы обсудили здесь некоторое введение и некоторые важные особенности микроконтроллера AVR. Полный список руководств по микроконтроллерам avr приведен ниже:

    • Начало работы с микроконтроллером AVR : В этом руководстве мы обсуждали микроконтроллер AVR, поэтому сначала мы знаем, что такое микроконтроллер? Микроконтроллер AVR был впервые разработан компанией Atmel в 1996 году. Это усовершенствованная версия мини-компьютера, встроенного в небольшой чип, который имеет процессор, память и программируемые периферийные устройства ввода-вывода.AVR доступны от 8 до 100 контактов; Совсем недавно использовались 40-контактные ATmega16 или ATmega32.

    Характеристики микроконтроллера AVR

    • Многофункциональный
    • Несколько внутренних генераторов
    • Флэш-память до 256 КБ
    • Внутренние данные EEPROM до 4 КБ
    • InternalSRAM до 16 КБ
    • Два таймера 8-битные и один 16-битный
    • Микроконтроллер ATmega16: В этом руководстве мы полностью узнали о микроконтроллере Atmega16, а также его описание контактов. It — это 8-битный микроконтроллер Atmel’s. Он основан на улучшенной архитектуре RISC. ATmega16 — это 40-контактный микроконтроллер. Имеется 32 линии ввода / вывода (ввода / вывода), которые разделены на четыре 8-битных порта, обозначенных как PORTA, PORTB, PORTC и PORTD.
    • Учебное пособие по VMLAB для начинающих: В этом разделе мы обсудили «Лаборатория Visual Micro». Это специальный инструмент, который предоставляет виртуальную среду для мягкого моделирования и написания программного обеспечения. Также он используется для компиляции программы микроконтроллера AVR.
    • Учебник PonyProg для начинающих: В этом уроке мы узнали, как программировать микроконтроллер для программирования микроконтроллера AVR, нам нужен мощный программист, которым является PonyProg. Это программное обеспечение для программирования последовательных устройств с удобным графическим интерфейсом, доступное для Windows95 / 98 / ME / NT / 2000 / XP и Intel Linux.
    • Atmel Studio 6 Пошаговое руководство: В этом руководстве мы узнаем об Atmel Studio 6. Как использовать Atmel Studio 6 и что такое Atmel Studio 6? Что такое Atmel Studio 6? Это IDE от Atmel для разработки и отладки микроконтроллера Atmel AVR.Он предоставляет среду для написания, сборки и отладки ваших приложений, написанных на C / C ++ или ассемблерном коде.
    • Начало работы с Atmel Studio 6: В этом проекте мы узнали, как использовать Atmel Studio 6 и как создать первый проект в Atmel Studio 6. Он очень прост в использовании, в котором мы можем создавать любой тип. применения согласно требованию. Для получения полных рекомендаций мы следуем этим шагам, чтобы начать работу с Atmel Studio 6;
    • Загрузить Atmel Studio 6 Веб-сайт: www.atmel.com
    • Откройте Atmel Studio
    • После установки. Процесс установки очень простой
    • Создать новый проект
    • Выбор устройства
    • Написать программу
    • Составьте код
    • Выберите программист
    • Программирование устройств
    • Светодиод мигает с использованием микроконтроллера AVR ATMEGA32: В этом руководстве мы узнали об AVR Atmega32 и его программировании, а также о том, как разработать код для мигания светодиода через Atmeg32.Сначала мы напишем код на языке C в Atmel Studio 6. Для программирования Atmega32 мы использовали два регистра DDR и PORT. DDR сообщает нам контакт входа или выхода Atmega32, а ПОРТ сообщает нам, являются ли контакты активным низким или активным высоким. Для кода и моделирования для этого проекта посетите
    • Как использовать кнопку с микроконтроллером ATMEGA32 AVR : Это руководство предназначено для новичков в области программирования Atmel AVR. Я надеюсь, что вы прочитали мой первый учебник «Мигание светодиода» с использованием Atmega32 и Atmel Studio.В этом разделе мы узнаем, что такое кнопка и как мы можем использовать кнопку с микроконтроллером AVR Atmega32. Что такое кнопка? Это небольшое управляющее устройство, которое приводится в действие электрическим устройством путем нажатия. Здесь кнопка используется для переключения с микроконтроллером. Код и моделирование этого проекта можно найти на странице
    • .
    • Интерфейс ЖК-дисплея с микроконтроллером AVR ATMEGA32 микроконтроллер: В этом руководстве мы обсудим ЖК-дисплей и взаимодействие с микроконтроллером AVR Atmega32.ЖК-дисплей 16 × 2 — это модуль, который используется для отображения персонажа. Это очень простой модуль, который обычно используется во многих электронных устройствах и проектах. Он может отображать 2 строки по 16 символов. ЖК-дисплей 16 × 2 может быть сопряжен с микроконтроллером в 8-битном или 4-битном режиме. Они отличаются тем, как данные и команды отправляются на ЖК-дисплей. В 8-битном режиме символьные данные (как 8-битный ASCII) и ЖК-команда отправляются по линиям данных с D0 по D7. То есть 8-битные данные отправляются за один раз, а строб данных выдается через E ЖК-дисплея.
    • Двигатель постоянного тока, взаимодействующий с Atmega32 и L293D: В этом руководстве мы узнали о двигателе постоянного тока, о том, как взаимодействовать с микроконтроллером AVR, а также узнали о драйвере двигателя L293D. Прямое подключение двигателя постоянного тока к микроконтроллеру нецелесообразно, потому что двигателю требуется больше тока, иначе микроконтроллер будет обеспечивать ток. Итак, чтобы решить эту проблему, мы используем драйвер двигателя для взаимодействия с микроконтроллером. Мы используем микросхемы типа L293D или L298.
    • Интерфейс DS18S20 с микроконтроллером PIC и AVR: В этом руководстве мы обсудим DS18S20 и способ взаимодействия с микроконтроллером PIC и Atmega32.DS18S20 — это 9-битный цифровой термометр, который используется для измерения температуры в градусах Цельсия. Он связывается с микроконтроллерами только одним проводом.
    • Оптопара, взаимодействующая с микроконтроллерами AVR PIC и 8051: В этом разделе мы узнаем об оптопаре, работе оптопары и о том, как взаимодействовать с микроконтроллерами AVR, PIC и 8051. Что такое оптопара? Он также известен как оптоизолятор. Это электрический компонент, который соединяется с двумя отдельными электрическими элементами, которые используются для передачи входного сигнала с помощью светочувствительного элемента.
    • Как использовать таймеры микроконтроллера AVR : В этом разделе мы обсудили таймер AVR и способы использования таймеров AVR в различных проектах по мере необходимости. AVR ATmega32 состоит из трех таймеров Timer0, Timer1 и Timer2 соответственно. Два таймера — это 8-битные регистры, а один — 16-битный регистр.

    Язык C для микроконтроллеров AVR. С нуля до сложных приложений

    Подробнее

    *** Доступно новое издание этой книги.Щелкните, чтобы перейти на страницу продукта ***

    Представляем популярный дуэт: язык C и микроконтроллер AVR!

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

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

    Определенной трудностью для польских пользователей AVR является отсутствие литературы по использованию языков высокого уровня для их программирования, таких как C. Эта книга является попыткой восполнить этот пробел. Синтетическим образом он показывает различия между программированием ПК и микроконтроллеров на языке Си. В нем обсуждается программирование периферийных устройств, доступных в микроконтроллерах AVR, на языке C, стандартной библиотеке и ее расширениях, известных как AVR-libc. В результате даже те, кто плохо разбирается в основах языка C, без проблем «перейдут» на программирование микроконтроллеров AVR.С другой стороны, в книге описаны передовые методы программирования, связанные с поддержкой загрузчика, безопасностью и шифрованием кода приложений, а также с реализацией наиболее часто используемых протоколов обмена данными между устройствами на базе микроконтроллеров и ПК. В нем также рассматриваются темы, связанные со спецификой написания приложений для микроконтроллеров, а также с поиском и устранением ошибок.

    Основы программирования микроконтроллеров AVR

    • Мастерская для программиста AVR
    • Введение в язык C на AVR
    • Построение программы и ее компонентов
    • Использование аппаратных ресурсов микроконтроллера
    • Использование регистров и различных типов памяти
    • Применение преобразователя АЦП
    • Поддержка ЖК-дисплея
    • Использование интерфейсов
    • Обеспечение безопасности кода

    Программирование микроконтроллеров еще никогда не было таким простым!

    Начало работы с 8-разрядными микроконтроллерами Atmel AVR

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

    Для максимального количества функций, которые могут выполнять микроконтроллеры, существует столько же различных вариантов выбора процессора. Есть 8-, 16- или 32-битные процессоры. Существуют разные архитектуры, такие как 8051 / C51 / C52, PIC, AVR, ARM, выделенные процессоры DSP и т. Д. Выбор правильной линейки процессоров может быть запутанной, если не обескураживающей задачей.

    Для новичка в программировании процессоров некоторые критерии, вероятно, очевидны … какие процессоры имеют недорогие инструменты программирования, хорошо документированы, имеют множество исходных кодов, доступных в Интернете? Ответы для многих новичков — это часто используемые 8-разрядные процессоры, такие как Atmel AVR или процессоры Microchip PIC.[Arduino — тоже вариант … подробнее об этом позже.] Я работал со многими архитектурами MCU и обнаружил, что 8-битные процессоры Atmel AVR очень легко программировать, имеют недорогие инструменты для программирования устройств и бесплатную среду разработки. * в котором можно программировать, и иметь очень активное онлайн-сообщество программистов всех уровней знаний, которые помогут вам, когда вы застряли. Также здорово, что есть инструменты программирования, позволяющие писать код на C, C ++, ассемблере и даже на Basic.

    * Бесплатная IDE Atmel AVR Studio предназначена только для Windows.Для разработки AVR доступно множество других инструментальных средств

    Для начала вам понадобится программист. Это физическое устройство, которое подключается между компьютером [обычно через USB] и микроконтроллером. Программист может предлагать различные функции, такие как возможность отладки вашего кода в схеме, или использовать специальные режимы программирования высокого напряжения [очень полезно для восстановления неправильно запрограммированного чипа]. Но основная задача программиста — записать ваш скомпилированный код во флэш-память процессора для постоянного хранения.Микроконтроллеры Atmel допускают минимум 10 000 операций записи, поэтому вы можете бесконечно перепрограммировать чип. Atmel предлагает два очень недорогих варианта: AVRISP MKII и AVR Dragon. AVRISP MKII — это программатор стоимостью около 30 долларов, который позволяет вам программировать микросхему, даже если она находится в целевой схеме [ISP означает внутрисистемный программист]. AVR dragon предлагает гораздо больше функций, включая отладку, которая отсутствует в AVRISP MKII. AVR Dragon поддерживает более широкий список устройств, в том числе линейку 32-разрядных процессоров AVR от Atmel.AVR Dragon также поддерживает режимы HVSP и HVPP [высоковольтное последовательное или параллельное программирование]. Одна особенность AVR Dragon заключается в том, что он не поддерживает протокол Atmel TPI [Tiny Programming Interface] для программирования некоторых из самых маленьких процессоров AVR ATTiny… для этого вам понадобится AVRISP MKII.

    Вам также понадобятся несколько процессоров для работы. Я бы посоветовал начать с ATTiny24 или ATTiny44. Это 14-контактные процессоры DIP, поддерживающие макетные платы и поддерживаемые как AVRISP MKII, так и AVR Dragon.Они имеют 2k / 4k flash-память для программирования, 128/256 байт ОЗУ, один 8-битный и один 16-битный таймер, тактовую частоту до 20 МГц, 8 каналов АЦП [аналого-цифрового преобразователя], работают в диапазоне 1,8-5,5 VDC, поддержка внешних прерываний, последовательная связь [включает SPI], несколько режимов PWM. Они просто хорошие процессоры для многих проектов. Они также недороги — всего ~ 2 доллара за штуку в единичных количествах. Если ATTiny недостаточно мощный для вашего конкретного приложения, процессоры ATMega, вероятно, вам подойдут.Большинство Arduinos используют ATMegas для своего мозга.

    Кстати об Arduino — а как насчет того, чтобы начать работу с Arduino? Я лично не использовал Arduino. Я знаю, что у них очень яркое и активное сообщество энтузиастов. Я знаю, что существуют обширные библиотеки кода, которые позволяют мгновенно мигать светодиодами. Но когда вы впервые замигаете светодиодом, где вы останетесь? Вы несколько застряли на платформе Arduino. Это отличный способ изучения программирования микроконтроллеров и физических вычислений в целом.Но я лично считаю, что это скрывает от программиста базовую архитектуру MCU таким образом, чтобы программист не понимал, как на самом деле работает код. Я также понимаю, что код, скомпилированный на Arduino, относительно медленный и раздутый по сравнению с написанием кода C на голом железе … но у меня нет личного опыта работы с Arduino, поэтому я не могу это подтвердить. Я считаю, что если вы можете запрограммировать Arduino, вы можете запрограммировать AVR без фреймворка Arduino. Вероятно, просто нужно немного больше прочитать и понять таблицу данных процессора, что неплохо.

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

    AVRISP MKII
    AVR Dragon
    ATTiny44
    Макетная плата

    Есть и другие компоненты, которые вам, вероятно, понадобятся, если у вас их еще нет, например, источник питания 5 В постоянного тока, различные резисторы, конденсаторы, потенциометры, кристалл 20 МГц, если вы хотите запустить чип на полной скорости [вы можете запустить до 8 МГц без одного], светодиоды, перемычки и т.

    alexxlab

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

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