Курс лекций по микроконтроллерам. Дистанционное обучение программированию микроконтроллеров Описание технологии обучения

Целью программы является курс по изучению и практическому освоению архитектуры одно-го из самых распространенных семейств 8-разрядных микроконтроллеров – семейства AVR фирмы Atmel.

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

Внимание акцентировано на особенностях микроконтроллеров этого семейства и специфике работы отдельных блоков.

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

Компетенции

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

Целевая аудитория

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

Автор программы

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

Описание технологии обучения

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

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

Продолжительность программы

Программа рассчитана на 24 академических часа (количество видеоматериалов, доступных для изучения, составляет 16 видеолекций и 4 практических занятия).

Длительность курса составляет 6 недель. Средняя недельная нагрузка на обучающегося - 4 академических часа в неделю.

Курс включает в себя 16 лекций и 4 практических занятия:

  • Лекция 1. Введение. Архитектура микроконтроллеров семейства AVR. Центральное процессорное устройство. Операционное устройство.
  • Лекция 2. Центральное процессорное устройство. Устройство управления. Тактовый генератор и устройство синхронизации.
  • Лекция 3. Центральное процессорное устройство. Подсистема сброса. Блок режимов энергопотребления.
  • Лекция 4. Организация памяти.
  • Лекция 5. Система прерываний. Внешние прерывания.
  • Практическое занятие. Программирование внешних прерываний.
  • Лекция 6. Модуль параллельных портов ввода-вывода.
  • Практическое занятие. Программирование портов ввода-вывода.
  • Лекции 7 - 8. Таймеры/счетчики. Таймер/счетчик ТС0 (начало).
  • Практическое занятие. Формирование сигналов широтно-импульсной модуляции.
  • Лекции 9 - 11. Таймер/счетчик ТС2. Таймер/счетчик ТС1.
  • Лекция 12. Сторожевой таймер. Аналоговый компаратор.
  • Лекция 13. Аналого-цифровой преобразователь.
  • Практическое занятие. Программирование аналого-цифрового преобразователя.
  • Лекция 14 - 15. Универсальный синхронно-асинхронный приемопередатчик.
  • Лекция 16. Последовательный интерфейс SPI.

Итоговая аттестация

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

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

Контактная информация

пн. - пт. с 10:00 до 17:00
197376, Россия, Санкт-Петербург, ул. Профессора Попова, дом 5, корп. D, пом. D402
+7 812 346-28-18, +7 812 346-45-21
+7 812 346-45-21
[email protected]

Если хотитеобучаться по « S kype », то первое занятие проводитсяусловно-бесплатно (кроме индивидуальных программ), т.е. вы его проходите с целью понять, подходит вам такое обучение или нет. Вслучае принятия положительного решения, оно оплачивается. Минимальная предоплата - за 4 занятия. Для занятий по индивидуальным программам – только по предоплате.

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

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

1. Вы получите материалы этого занятия.

2. Изучите их, ответите на контрольные вопросы и вышлите ваши ответы (а также вопросы, возникшие у вас в процессе изучения материала) для проверки.

3. После проверки вы получите комментарии к вашим ответам (что правильно, что неправильно или не совсем верно) и ответы на ваши вопросы (см.).

Порядок оплаты:

Вы заказываете требуемые курсы обучения(при необходимости устройства или наборы деталей). Вам выставляется счет на оплату. Вы оплачиваете счет. После прихода денег Вам высылается учебный материал по электронной почте для обучения по e - mail (еслизаказаны устройства или наборы деталей, то они высылаются обычной почтой ценной бандеролью) или проводятся занятия по « Skype » (время по договоренности, можно по 1-2 занятию в день).

Варианты оплаты:

Оплата производится на расчетный счет ИП, возможны следующие способы:

Через Сбербанк или другой банк

Интернет-банк

Сервис «Оплата квитанций» платежной системы "Яндекс.Д еньги "

Сервис платежей "WebMoney "


Или через платежную систему « OnPay » (много вариантов оплаты картами, электронными деньгами, через терминалы и т.д.)

Скидки:

При заказе нескольких разных курсов по e - mail или обучение нескольких человек по одному курсу по e - mail (кроме «обучения на заказ»):

2,3,4 заказываемые курсы – скидка 10%,

5 ипоследующие – скидка 20%.

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

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

Или позвоните по телефону+79126195167 (с 8 до 18 по Московскому времени).

Часто задаваемые вопросы:

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

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

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

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

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

С точки зрения законодательства я являюсь частным преподавателем (репетитором).

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

Я хотел бы пройти обучение и изучить язык «С» для программирования микроконтроллеров проектирования радиолюбительских устройств, но не знаю какие микроконтроллеры выбрать: PIC ® или AVR ®

Сам язык «С» практически одинаков для разных микроконтроллеров.

Но в зависимости от используемого компилятора «С», его использование может отличаться.

Также существенно различается и архитектура микроконтроллеров PIC® и AVR® (регистры, настройка и работа периферийных устройств) .

Поэтому программирование для них требует изучения работы самого микроконтроллера, языка «С» и особенностей используемого компилятора. В связи с этим сделаны разные курсы для разныхмикроконтроллеров и компиляторов. Существенной разницы в процессе освоения программирования микроконтроллеров PIC® и AVR® по разным курсам нет (программы построены однотипно).

Если вы начинающий и хотите освоить программирование и PIC® и AVR® , то лучше освоить сначала один микроконтроллер и один компилятор (один курс). Потом вам будет проще освоить другой компилятор или другой тип микроконтроллера (пройдя другой курс). При одновременном изучении может возникнуть «каша» в голове и это не будет способствовать усвоению материалов.

Наиболее популярны курсы №18,34 для микроконтроллеров AVR® и №20 для микроконтроллеров PIC16® . Можете выбрать один из этих курсов.

Привет начинающим электронщикам. Перед вами статья-введение в рубрику «программирование микроконтроллеров» (для сокращения в дальнейшем будем использовать МК) . Эта рубрика будет знакомить вас с азами программирования таких МК, как AVR-ки и PIC-и.

Существует несколько способов начать программировать МК:

Можно купить готовую плату Arduino «Андурино» (в плате используется МК ATmega328)

или купить «камень» — микроконтроллер (AVRили PIC)

В этом случаем вам будет необходим программатор (в зависимости от купленного МК)

После того, как вы определитесь, что больше по душе: Андурино или «камушек» понадобится приобрести макетную плату (с проводами переходниками – джамперами). На фото вместе с макеткой и джамперами показан блок питания.

Светодиоды и резисторы 220 Ом (на начальном этапе этого будет достаточно);

Теперь по порядку:

Плата Андурино – кусок текстолита синего цвета (других не встречал) на котором смонтирован МК. Плата снабжена минимально необходимым набором для нормальной работы МК (индикация, стабилизатор питания, кварцевый резонатор (для тактирования МК), память и т. д.). Стоит порядка от 10 до 50 долларов.

Макетная плата – кусок белого пластика с множеством небольших отверстий. Стоимость 5-10 долларов.

По бокам «+» и «-» — это линии питания.

5 последовательных отверстий (например 1 a b c d e) – одна группа выводов. НЕ ПОДКЛЮЧАТЬ ПИТАНИЕ «+» и «-» в одну группу выводов напрямую, без радиоэлементов (может возникнуть опасность возгорания).

«джамперы» — провода со штырями на концах или гнездами.

Светодиоды – это думаю знаете) Стоимость до 1 доллара.

Резисторы – нужны для того, чтобы вы не попалили светодиоды. Стоимость до 1 доллара.

«Камень» AVR или PIC. Тут все понятно. Стоит от 1 доллара.

Программатор – это устройство (плата), что выполняет запись/считывания информации с памяти МК. Стоимость 5-10 долларов

Вы можете спросить, так что же всё таки покупать: Андурино или микроконтроллер. Давайте разберемся. Кстати сразу отмечу – для начала мы познакомимся с МК AVR, ПИКи будут потом)

Плюсы АНДУРИНО:

  • Его проще программировать;
  • В любом радиомагазине вы сможет найти большое количество дешевых устройств (разные датчики контроля и т.д), которые без проблем будут работать с платой;
  • Безопасная «прошивка». Это вам не фьюзы в АVR выставлять. Чуть-чуть проморгал и прими мои поздравления, ты обладатель «камня» в прямом смысле этого слова;
  • На плате все выводы МК уже выведены в гнезда, в которые устанавливаются джамперы;
  • Андурино — Mega, Uno, Nano- имеют конвертер USB-Serial и разъем USB для заливки программы (на языке Arduino — скетча), поэтому нет необходимости покупать программатор.
  • Питание происходит либо от USB или от внешнего источника тока.

Минусу Андурино – цена!

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

Плат Андурино существует несколько видов (цена у каждой платы своя):

Arduino Uno

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

Arduino Nano

Проще некуда)).

Arduino Mega

Приставка даёт понять разработчику, что плата самая мощная.

За Pro Mini рассказывать не буду. Кому интересно могут почитать отдельно. Скажу только: ей нужен программатор USB-Serial и придется посидеть с паяльником, чтобы впаять гребенки штырьков, с помощью которых плата будет подключаться к макетной плате.

Среда программирования Arduino. Простая программа ничего лишнего нет. За неё поговорим отдельно в следующих статьях.

Для статьи-введения думаю достаточно. Спасибо за внимание. Продолжение следует.

Базовая часть

Тема 1. Введение. Программирование микроконтроллеров на языке С

Теория . Микроконтроллеры. Функции и применение микроконтроллеров. Основные параметры микроконтроллеров. Архитектура микроконтроллеров. Семейства микроконтроллеров ARM и их назначение. Устройство микроконтроллеров. Ядра Cortex -M 0/M 3/M 4F . Периферийные блоки микроконтроллеров: ввод-вывод общего назначения, тактирование, таймеры, прерывания.

Язык С для микроконтроллеров ARM . Особенности разработки программ для микроконтроллеров по сравнению с программированием для ПК. Ввод и вывод. Адресация. Двоичное и шестнадцатеричное счисления. Среда программирования IAR EWARM . Возможности отладки программ.

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

Тема 2. Прерывания

Теория . Прерывания. Виды прерываний. Контроллер прерываний NVIC в ядре Cortex -M . Вектора прерываний. Приоритеты. Флаги прерываний в контроллерах STM . Рекомендации по написанию обработчиков прерываний.

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

Тема 3. Таймеры

Теория . Таймеры. Виды таймеров. Режимы работы таймеров. Измерение малых промежутков времени. Система тактирования микроконтроллера и методы её настройки.

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

Тема 4. Широтно-импульсная модуляция

Теория . Широтно-импульсная модуляция. Применение ШИМ для управления электронными устройствами. Особенности реализации ШИМ на микроконтроллере. Сглаживание. Специальные режимы работы таймеров.

Практика . Разработка программы для генерации ШИМ сигнала с заданными параметрами.

Тема 5. Цифро-аналоговые и аналого-цифровые преобразования

Теория . АЦП и ЦАП. Частота дискретизации и разрядность. Основные виды АЦП (АЦП прямого преобразования, АЦП последовательного приближения, сигма-дельта АЦП) и их характеристики. Режимы запуска АЦП. Дифференциальный режим измерения. Алгоритмы усреднения измеряемых величин: скользящее среднее и экспоненциальное усреднение. Библиотека для работы с периферийными блоками HAL Driver .

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

Тема 6. Обмен данными

Теория . Последовательные и параллельные интерфейсы. UART . Принцип работы шины UART , протокол передачи данных. События блока UART на микроконтроллерах STM 32. Протоколы SPI и I2C, их принципы работы. Концепция ведущий-ведомые.

Практика . Разработка прошивки для микроконтроллера, осуществляющей приём и отправку данных по UART . Освоение программного обеспечения для работы с COM -портами на ПК.

Тема 7. Флеш-память

Теория. Принцип работы ячейки флеш-памяти (транзистор с плавающим затвором, чтение и запись данных). NOR и NAND конструкции флеш-памяти. Многоуровневые ячейки. Особенности работы с флеш-памятью из программ.

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

Дополнительные темы (читаются по усмотрению преподавателя)

Тема Д1. Дисплеи

Теория . Виды дисплеев. Электронно-лучевые трубки (принцип работы, развёртка). Жидкокристаллические дисплеи (принцип действия ЖК ячейки, устройство мониторов, адресация). Кодирование цветов, битность изображения. Плазменные дисплеи. Светодиодные дисплеи. Проекторы (3LCD , LC 0S , DLP ). Резистивные и ёмкостные сенсорные дисплеи. Перспективные виды дисплеев (OLED, интерференционные дисплеи, SED, PixelSense ).

Практика . Написание программы, осуществляющей вывод графических примитивов и текста на TFT -LCD дисплей тестовой платы. Освоение высокоуровневых библиотек для работы с периферийными блоками и внешними устройствами.

Тема Д2. Система тактирования микроконтроллера

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

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

Тема Д3. USB

Теория . Краткая история внедрения шины USB . Физический уровень (кабели и разъёмы, состояния шины, кодирование данных). Пакетный уровень (структура и виды пакетов). Транзакционный уровень (адреса, конечные точки). Логический уровень (виды каналов, передача данных по периодам). Дескрипторы и классы устройств. Краткий обзор спецификаций USB.

Практика . Передача данных с ПК на контроллер по USB c использованием CDC класса.

Тема Д4. Операционные системы реального времени

Теория . Операционные системы мягкого и жёсткого реального времени, а также их особенности. Диспетчеризация задач. Синхронизация задач. Операционная система Free RTOS . Некоторые функции для управления задачами во Free RTOS .

Практика . Настройка Free RTOS и создание многозадачной программы для управления светодиодами.

Программа курса (весенний семестр)

  • Тематические лекции
  • Дополнительные разделы программирования микроконтроллеров
  • Выполнение курсовой работы по программированию

Отчетность

Осенний семестр - зачет

Весенний семестр - зачет с оценкой

В конце осеннего семестра в течение 4 занятий выполняется зачетная работа.

Примеры тем зачетных работ:

  • Измерение частоты внешнего сигнала с выводом результата на дисплей.
  • Генерация ШИМ сигнала с регулировкой частоты и скважности.
  • Измерение ёмкости конденсатора путём анализа формы отклика RC
  • Измерение индуктивности путём анализа формы отклика RL -цепи на периодический сигнал.
  • Генерация гармонического сигнала путём модуляции одиночными импульсами.
  • Измерение расстояния между акустическим излучателем и микрофоном с помощью измерения задержки распространения звука.
  • Измерение скорости звука импульсным методом
  • Стабилизация напряжения в RC цепи с обратной связью. Напряжение задаётся с компьютера и выводится на дисплей.

В течение весеннего семестра выполняется курсовая работа.

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

Курсовые работы прошлых лет можно посмотреть .

Литература

  • Конспекты первых 2 лекций: лекция 1 , лекция 2 .
  • Мартин М. Инсайдерское руководство по STM32
  • Брайан Керниган, Деннис Ритчи "Язык программирования С"
  • Майоров С.А., Кириллов В.В., Приблуда А.А. "Введение в микро-ЭВМ"
  • Тревор Мартин, "Микроконтроллеры фирмы STMicroelectronics на базе ядра Cortex-M3. Серия STM32"
  • Фрунзе А.В. "Микроконтроллеры это же просто" (Том1, Том2, Том3)
  • К. Хамахер, З. Вранешич, С. Заки "Организация ЭВМ"
  • Paul Scherz. Practical electronics for inventors.
Вверх