В 1990-х компании ATMEL и Microchip представили первую «электрически» перепрограммируемую интегральную схему. До этого для перепрограммирования микроконтроллера необходимо было подвергнуть его воздействию УФ-лучей, а затем использовать специальную программирующую схему, как правило, очень дорогую. Это нововведение сочеталось с возможностью использования языков программирования высокого уровня, таких как С, вместо машинного кода, способствовало распространению микроконтроллеров. Современные микроконтроллеры имеют возможность хранить небольшую программу-загрузчик, которая располагается в защищенной области памяти, так что она не может быть случайно перезаписана. Загрузчик, является особой программой, которую также можно записать на флеш-память. Таким образом, вам не нужен особо сложный программатор, но простой последовательный вентиль, который передает написанное нами программное обеспечение от нашего компьютера на микросхему. Схемы для программирования находятся внутри самого микроконтроллера, а загрузчик, который предназначен для написания нашей программы, находится во внутренней памяти.
Использование микропроцессоров
Перед началом проекта с использованием микроконтроллера мы должны выбрать наиболее подходящую модель. Выбор не такой простой: существуют десятки производителей, и каждый из них выпускает сотни продуктов.
Оценим, сколько входов и выходов нам необходимо, мощность, скорость и доступность памяти.
Подготовим рабочую зону, установив драйверы, комплекты разработки программного обеспечения и компиляторов. Большинство продуктов доступны только для Windows, и это может повлиять на наш выбор. В дополнение к официальной среде разработки иногда можно найти подходящие бесплатные альтернативы.
Последовательность операций, которую необходимо соблюдать при программировании микроконтроллера, проста:
• написать программу на С или другом языке;
• составить программу в понятном для микроконтроллера виде;
• перенести скомпилированную программу на микрочип.
Программы для микроконтроллеров также называются прошивками и обычно написаны на языке С. Программа, написанная в текстовом файле, читается программой под названием компилятор, который преобразует его в последовательность битов понятных для микроконтроллера.
Прошивка передается во флеш-память, находящуюся внутри микроконтроллера, с помощью программатора. Флеш-память подобна USB-флешке или карте памяти SD, но находится внутри микрочипа.
Каждый производитель чипов в дополнение к продаже интегральных схем также продает набор средств разработки, содержащий программатор, программное обеспечение и макетные платы, которые являются электронными платами с установленным конкретным микроконтроллером. Макетные платы оснащены входными и выходными разъемами, USB-портами, разъемами питания, светодиодами, кнопками и дисплеями и всем оборудованием, необходимым для тестирования чипа без необходимости конструирования и сборки схем. Отличный сайт, где вы можете найти множество материалов в свободном доступе, программаторы и аксессуары, это Olimex (http://www.olimex.com). На Olimex вы также можете найти инструкции по установке среды для программирования с открытым доступом, которая использует популярную интегрированную среду разработки (IDE) Eclipse.
Наиболее распространенными микроконтроллерами являются AVR компании ATMEL[5]
. Семейство AVR предлагает множество возможностей, от небольшого чипа с 6 выводами до ATmega с 50 входами/выходами. Для программирования AVR-чипа используются специальные USB-программаторы, или вы можете сделать программатор на основе «Ардуино».Другое широко распространенное семейство микроконтроллеров – это PIC компании Microchip. Для программирования PIC вы можете использовать программатор pickit3 и IDE Mplab. Компилятор компании Microchip требует лицензии. Мы можем использовать его бесплатно, но при этом оптимизатор будет выключен и прошивка будет иметь больший размер и занимать больше памяти.
Производители также предлагают микроконтроллеры с ARM-технологией. Для программирования чипа ARM мы можем использовать некоторые решения с открытым исходным кодом или программатор ULINK2 компании Keil, которая производит аппаратные и программные средства, а также макетные платы для основных производителей ARM-чипов.
Рис. 9.1.
Программатор для PIC Pickit3, ULink для ARM и самодельный FABIspПри использовании этих комплектов и макетных плат вам требуется немного терпения, потому что некоторые моменты могут быть сложными для понимания. Код написан на языке С, это непростой язык, поэтому среда разработки может быть достаточно сложной: множество функций и возможностей не всегда понятны. Вам потребуется время, чтобы разобраться и собрать информацию, читая руководства и справочники, и в этот момент ваше увлечение может превратиться в работу.