Понятие микропроцессора, микроконтроллера, контроллера, микрокомпьютера, микро-ЭВМ. История микроконтроллеров.
Выбор наиболее подходящего микроконтроллера для начинающих.
Основные этапы эволюции языков программирования от машинных кодов и ассемблера до языков высокого уровня.
Обзор необходимых инструментов и литературы для изучения микроконтроллеров.
Краткие сведения о выбранном для изучения микроконтроллере.
Краткое описание основ работы в программе AVR Studio, описание основ языка ассемблера и краткие сведения об архитектуре микроконтроллеров AVR. Написание первой программы.
Трансляция программы и получение файла прошивки для микроконтроллера. Краткий обзор содержимого файла прошивки. Разбор файла описаний и листинга программы. Размещение программы в памяти микроконтроллера.
Последовательные и параллельные программаторы. Внутрисхемное программирование.
Описание простого и надежного программатора, который можно собрать «на коленках» за 10 минут. Рекомендации по сборке и использованию. Подробный разбор программы для работы с программатором.
Описание схемы программатора и управляющей программы AVR Dude.
Обзор более сложных и более функциональных программаторов. Изучение встроенной программы программатора в среде AVR Studio.
Внесение изменений в текст первой программы.
Подробный разбор файлов проекта и разбор содержимого файла прошивки. Редактирование кодов команд в файле прошивки.
Детальный обзор программы AVRStudio
Изучение режима отладки программы
Основы работы в программе ISIS PROTEUS
Считывание данных из портов ввода-вывода
Изучение команд ассемблера. nop, ser, clr, dec, inc, neg, com, andi, and, ori, or, sbr, cbr, sbi, cbi и других
Подробный разбор всех выражений языка ассемблера, которые значительно упростят и облегчат написание программ
Изучение флагов регистра статуса
Команды сдвига вправо, влево и сдвиги через бит переноса
16-разрядные регистры X, Y, Z и R24,R25. Команды для работы с регистрами
Сравнение 8- и 16-битных констант
Работа с командами ветвления программы, в зависимости от условий
Команды безусловного перехода на адреса в программной памяти
Команды перехода в зависимости от условий
Представление отрицательных чисел в двоичной системе счисления. Понятие прямого кода, инверсного кода, дополнительного кода, дополнение до единицы, дополнение до двух
Примеры перевода чисел из прямого кода в обратный и дополнительный. Сложение и вычитание отрицательных чисел
Организация памяти данных. Команды для чтения и записи байт памяти данных. Обращение к РОН и РВВ как к ячейкам памяти данных.
Понятие стека, инициализация и работа со стековой памятью. Регистр указателя стека
Использование стека без инициализации, нестандартное использование стековой памяти. Понятие срыва стека
Размещение байт в программной памяти. Альтернативная адресация. Работа команд для чтения байт памяти программ.
Макросы языка ассемблера, подключение библиотечных файлов, задание условий ассемблирования программы
Основные сведения о Fuse-битах, ячейках защиты программной памяти, ячейках идентификатора и калибровочных ячейках
Выбор режима тактирования при помощи конфигурации FUSE-бит
Защита памяти программ и EEPROM памяти от перезаписи и считывания
Основные сведения по подключению внешних электронных компонентов и компонентов "обвязки" микроконтроллера
Обзор популярных современных электронных компонентов
Обзор основных правил по разводке печатной платы с микроконтроллером
Понятие прерывания микроконтроллера. Вектора прерываний, таблица векторов прерываний. Сохранение адреса возврата в стековой памяти
Использование прерываний для обработки внешних событий
Понятие и назначение EEPROM-памяти
Основные советы по использованию EEPROM-памяти
Основные сведения о 8-разрядном таймере 0. Настройка режима работы прерывание по переполнению
Запуск таймера в режим прерывания по совпадению
Основные сведения о широтно-импульсной модуляции
Запуск таймера 0 в режим широтно-импульсной модуляции
Нормальный режим работы, сброс при переполнении, сброс при совпадении, прерывание по совпадению с регистром совпадения А и В, режим захвата
Различные режимы работы Watchdog-таймера. Настройка FUSE-бит для выбора режимов работы таймера
Инициализация аналогового компаратора. Конфигурация прерываний аналогового компаратора
Описание алгоритма управления индикаторами в динамическом режиме. Аппаратные особенности реализации динамической индикации
Управление четырьмя 7-сегментными индикаторами в динамическом режиме
Понятие и реализация матричного режима опроса кнопок клавиатуры
Понятие стандартного асинхронного протокола передачи данных
Электрические и логические параметры передачи данных через СОМ-порт ПК
Программы для передачи и приема данных передаваемых через СОМ-порт ПК
Прием и передача байт данных через СОМ-порт ПК
Работа с программой Terminal
Обзор программы для перехвата данных передаваемых и принимаемых через СОМ-порт ПК
Работа модуля USART в режиме бесконечного цикла ожидания приема байта
Настройка модуля USART на режим прерывания по приему байта и прерывания по передаче байта
Обзор основных способов передачи данных от микроконтроллера к ПК через USB
Примеры микросхем для создания моста USB-USART
Программная эмуляция USART на микроконтроллере
Виды энкодеров, принцип работы. Подключение инкрементного энкодера к микроконтроллеру и алгоритм опроса его состояния
Типы ЖК-индикаторов. Начальные сведения о символьных ЖК-индикаторах под управлением контроллера HD44780. Схема подключения индикатора к микроконтроллеру
Описание протокола передачи байт данных и команд
Описание памяти данных контроллера HD44780
Обзор основных подпрограмм, реализующих протокол передачи байт команд и байт данных
Подпрограмма для инициализации индикатора на базе HD44780. Аппаратные требования для надежной инициализации индикатора
Практика использования подпрограмм для работы с индикатором. Тест различных режимов работы индикатора
Библиотека подпрограмм для работы с символьными индикаторами на базе HD44780
Простая программа для компьютера, позволяющая легко сгенерировать байты данных для вывода сообщения на индикатор
Физические основы передачи данных по инфракрасному каналу
Основные методы кодирования данных. Манчестерский код, кодирование различной шириной паузы/импульса, другие методы кодирования
Перехват посылок при помощи логического анализатора. Разбор состава посылок с реальных пультов ДУ
Программа для перехвата принимаемых посылок и отправки но UART на терминальную программу компьютера
Улучшенная версия перехватчика посылок, принимаемых через инфракрасный канал
Обзор алгоритма для декодирования различных протоколов
Обзор подпрограмм для принятия и декодирования посылки
Простая программа, осуществляющая прием и дешифрацию посылок, использующих кодирование различной шириной паузы/импульса
Более сложная версия программы, позволяющая дешифровать посылки передающие манчестерский код
Основные сведения о интерфейсе I2C. Краткий обзор аппаратной и программной составляющей I2C
Обзор подпрограмм для эмуляции приема и передачи байт данных по интерфейсу SPI
Основные сведения о карах памяти форматов SD, SD micro, SDHC, SDHC micro, MMC
Контактные площадки для работы по интерфейсу SPI. Питание карты
Схема для считывания байт из секторов SD-карты и передачи их на ПК. Обзор шестнадцетиричного редактора WinHEX
Описание протокола считывания и записи секторов карт памяти
Набор подпрограмм для считывания и записи секторов карты
Практика использования подпрограмм для считывания и записи карт памяти
Основные сведения о интерфейсе I2C. Краткий обзор аппаратной и программной составляющей I2C
Описание работы протокола I2C
Набор подпрограмм для программной эмуляции протокола I2C
Краткие сведения о назначении микросхемы часов реального времени, ячейках памяти и схеме подключения к микроконтроллеру
Краткое описание подпрограмм для организации взаимодействия с микросхемой DS1307
Практика записи и считывания байт данных. Вывод показаний времени и даты на индикатор. Использование свободных ячеек памяти для хранения пользовательских данных
Краткие сведения о шине 1-WIRE. Обзор микросхем, использующих 1-WIRE
Описание физического, и логического уровней взаимодействия
Набор подпрограмм для организации программной эмуляции протокола
Основные сведения о микросхемах в корпусах MicroCan. Различные виды микросхем
Считывание 64-битного идентификационного кода микросхем и вывод на индикатор
Краткий обзор популярной микросхемы DS18B20
Разбор подпрограмм для взаимодействия с микросхемой
Набор подпрограмм для запуска преобразования, считывания 9 байт блокнотной памяти, изменения разрядности преобразования и др.
Преобразование считанных байт и вывод показаний на индикатор
Усложненная версия подпрограмм для работы с микросхемой DS18B20
Алгоритм расчета циклического избыточного кода. Реализация алгоритма в подпрограмме
Программная библиотека для работы с датчиками температуры DS18B20
Краткие сведения о типах модулей АЦП. Принцип работы АЦП
Обзор выводов микроконтроллера для подачи питания на модуль АЦП. Основные правила подачи питания, организация фильтров
Краткий обзор регистров и режимов работы модуля АЦП
Обзор регистров для запуска модуля АЦП в режиме одиночного преобразования
Запуск модуля АЦП в режиме одиночного преобразования
Обзор регистров для запуска модуля АЦП в режиме непрерывного преобразования
Запуск модуля АЦП в режиме непрерывного преобразования