Думаю, в наше время нет радиолюбителя, который никогда не сталкивался с микроконтроллерами. Рано или поздно, но это происходит. Когда я в первый раз увидел схему с микроконтроллером, тут же закрыл страницу браузера, с мыслью: «А, все равно не соберу». Но время шло, схем с применением микроконтроллеров становилось все больше, и я все-таки решил начать. На деле все оказалось совсем не таким сложным, как я думал.
Для начала давайте разберемся: что вообще такое микроконтроллер (МК)? По сути, это миниатюрный компьютер, предназначенный для выполнения простейших задач. Все необходимое для работы микроконтроллера заключено в одном корпусе. В микроконтроллере имеется различная периферия — порты вводавывода, таймеры, интерфейсы связи и т.д. Микроконтроллер имеет три вида памяти, это RAM (оперативная память), FlashROM (Память программы), EEPROM (энергонезависимая память).
Главное отличие микроконтроллера от обычной микросхемы — это то, что микроконтроллер работает не по жесткой логике, установленной на заводе, а программируется. Программа, классически пишется в специальной среде на компьютере на одном из языков программирования, после чего переводится на машинный язык(компилируется) и записывается в память контроллера. В этом курсе все будет немного по-другому — программа будет не писаться, а буквально рисоваться в виде блок-схемы. Благодаря такому подходу программа выглядит более наглядно, а время на разработку программы сокращается в 3-5 раз, по сравнению с классическими приемами программирования.
Algorithm Builder — среда программирования
Algorithm Builder производит полный цикл разработки, начиная от ввода алгоритма, включая процесс отладки и заканчивая записью программы в память.
Начнем с краткого обзора интерфейса программы
Главное меню
- Файл. Служит для открытия, сохранения, закрытия проектов и отдельных алгоритмов, а так же выхода из программы.
- Редактировать. Действия, связанные с редактированием алгоритма: вырезать, копировать, выделить и т.д
- Отображение. Переключение алгоритм/таблица с переменными(о ней ниже) + шаблоны операций и условий.
- Поиск. Тут пояснять не нужно.
- Элементы. Алгоритм рисуется из специальных элементов: Текст, Вершина, Поле, Метка, Условие, Вектор б/у (безусловного) перехода, Настройщик. Со всеми ними мы познакомимся в процессе обучения. В меню находится еще несколько важных пунктов: Деактивировать, Макро, Прерывания. Деактивировать — данный компонент не будет компилироваться. Макро — для создания макросов. Прерывания — содержит список названии всех прерываний микроконтроллера. Об этой функции вы узнаете в следующих уроках, сейчас лишь скажу, что это чрезвычайно важная и необходимая для работы вещь.
- Программа. Действия, связанные с программой — компиляция (перевод на машинный язык), симуляция работы программы, чтение памяти контроллера (Flash и EEPROM) и т.д.
- Опции. Настройки проекта и среды.
- ?. Информация о Algoritm Builder и справка.
Панель инструментов
В пояснениях не нуждается. При наведении курсора на элементы панели всплывают подсказки.
Открытый проект
Тут есть особенность. Нельзя открыть два проекта одновременно.Чтобы открыть/создать новый проект нужно закрыть старый. После открытия проекта вы можете открыть/создать лишь отдельный файл-алгоритм. Файл проекта имеет расширение .alp, а отдельный файл-алгоритм имеет расширение .alg
Работа с переменными и константами
Организуется в виде специальной таблицы (переключить можно клавишей F12, либо через меню, либо клавишей на панели инструментов). Таким образом, сам алгоритм освобождается от лишних записей.
Огромное число меток, благодаря которым возможны переходы от одной части программы к другой, сильно загромождают код, и наглядность программы теряется. В Algorithm Builder переходы осуществляются намного проще — стрелкой (вектором). Но переходы по именованным меткам так же возможны.
Симуляция работы программы
Симулятор показывает все изменения, происходящие внутри виртуального микроконтроллера. Что бы проверить работу программы не обязательно даже покупать микроконтроллер! Симуляция может выполняться пошагово (с заходом в функции или нет), до установленной точки останова или до выделенного участка.
Отладка
Algorithm Builder обладает системой мониторной отладки на кристалле (On Chip debug) которая позволяет наблюдать содержимое памяти реального микроконтроллера в заданных точках. При этом для связи микроконтроллера с компьютером используется всего одна ножка микроконтроллера, причем по выбору пользователя. Мониторная отладка может быть применена практически к любому микроконтроллеру. Это программный вариант протокола debugWIRE.
Так почему же Algorithm Builder малоизвестен среди радиолюбителей? Во-первых, до 2010 программа была платной. Сегодня ПО распространяется абсолютно свободно. Во-вторых, отсутствие официальной поддержки программы. Вы не найдете ни одного апнота производителя в котором бы использовался Билдер. Интернет ресурсы, посвященные данной программе, можно пересчитать по пальцам.
Стоит немного рассказать о необходимых материалах и инструментах
Первое что понадобится — это паяльник. Основной инструмент радиолюбителя. Мощность паяльника должна быть в приделах 30-60 Вт. Почему нельзя больше? Мощный паяльник нагревается сильней, и повреждает дорожки платы и применяемые детали. Да и паять им не так удобно — такой паяльник намного больше и тяжелее. Подробнее о паяльниках и пайке
Для того, чтобы загрузить программу в микроконтроллер нужен программатор — в простейшем варианте состоит всего из нескольких резисторов и диодов (на порт LPT и COM). Если у Вас на компьютере нет порта COM либо LPT, USB программатор можно заказать на eBay, DealExtreame или Aliexpress (Поисковой запрос«avr programmer»; стоит примерно 4-6$). О выборе и сборке программатора я напишу в следующем уроке.
Для связи микроконтроллера с компьютером (например, чтобы передать от микроконтроллера к компьютеру данные с датчика температуры) необходим специальный переходник. Он не имеет прямого отношения к этому курсу, однако для некоторых устройств он может быть полезен. Называется он USB-UART (для USB) или COM-UART (для COM порта). Подробней я расскажу об этом в следующих уроках.
Ну и самое главное — микроконтроллер. В этом учебном курсе мы будем использовать микроконтроллер ATmega 88. Почему именно он? Это один микроконтроллер из серии ATmega 48, ATmega 88, ATmega 168, ATmega 328. Это значит, что если вы знаете один микроконтроллер из серии — вы знаете и всю серию! Отличаются они лишь объемом памяти. Если вы разрабатываете программу и понимаете, что программа не влезает в память — вы всегда сможете перейти на более «взрослый» микроконтроллер из серии, не меняя при этом самой программы.