AVR microkontrollers

  • 01 нояб. 2011 г.
  • 1481 Слова
Программирование микроконтроллера AVR. Первые шаги.

Данные статьи посвящены программированию микроконтроллеров AVR фирмы Atmel на языках С и С++. AVR – это, пожалуй, самое распространенное семейство микроконтроллеров.
Итак, что вообще такое микроконтроллер (далее МК)? Это, условно говоря, маленький компьютер, размещенный в одной интегральной микросхеме. У него есть процессор(арифметическо-логическое устройство, или АЛУ), flash-память, EEPROM-память, множество регистров, порты ввода-вывода, а также дополнительные «навороты», такие как таймеры, счетчики, компараторы, USARTы и т. п. Микроконтроллер после подачи питания загружается и начинает выполнять программу, записанную в его flash-памяти. При этом он может через порты ввода/вывода управлять самыми разнообразными внешними устройствами.
Что же этоозначает? Это значит, что в МК можно реализовать любую логическую схему, которая будет выполнять определенные функции. Это значит, что МК – микросхема, внутреннее содержимое которой, фактически, мы создаем сами. Что позволяет, купив несколько совершенно одинаковых МК, собрать на них совершенно разные схемы и устройства. Если вам захочется внести какие-либо изменения в работу электронного устройства,то не нужно будет использовать паяльник, достаточно будет лишь перепрограммировать МК. При этом не нужно даже вынимать его из вашего дивайса, если вы используете AVR, т. к. эти МК поддерживают внутрисхемное программирование. Таким образом, микроконтроллеры ликвидируют разрыв между программированием и электроникой.
AVR – это 8-битные микроконтроллеры, т. е. их АЛУ может за один такт выполнятьпростейшие операции только с 8-ми битными числами. Теперь пора поговорить о том, какой МК мы будем использовать. Я работаю с МК ATMega16. Он очень распространенный и приобрести его можно практически в любом магазине радиодеталей где-то за 100 руб. Если вы его не найдете – тогда можно купить любой другой МК серии MEGA, но в этом случае придется искать к нему документацию, т. к. одни и те же «ножки» разных МКмогут выполнять разные функции, и, подключив, казалось бы, правильно все выводы, вы, может быть, получите рабочее устройство, а, может быть, лишь облако вонючего дыма. При покупке ATMega16 проверьте, чтобы он был в большом 40-ножечном DIP-корпусе, а также купите к нему панельку, в которую его можно будет вставить. Для работы с ним потребуются также дополнительные устройства: светодиоды, кнопки,разъемы и т. п..
ATMega16 обладает очень большим количеством самых разнообразных функций. Вот некоторые его характеристики:
• Максимальная тактовая частота – 16 МГц (8 МГц для ATMega16L)
• Большинство команд выполняются за один такт
• 32 8-битных рабочих регистра
• 4 полноценных 8-битных порта ввода/вывода
• два 8-битных таймера/счетчика и один 16-битный
• 10-разрядныйаналогово-цифровой преобразователь (АЦП)
• внутренний тактовый генератор на 1 МГц
• аналоговый компаратор
• интерфейсы SPI, I2C, TWI, RS-232, JTAG
• внутрисхемное программирование и самопрограммирование
• модуль широтно-импульсной модуляции (ШИМ)
[pic]
Полные характеристики этого устройства, а также инструкции по их применению можно найти в справочнике (Datasheetе) к этому МК.Правда, он на английском языке. Если вы знаете английский, то обязательно скачайте этот Datasheet, в нем много полезного.
Приступим, наконец, к делу. Я рекомендую изготовить для микроконтроллера специальную макетно-отладочную плату, на которой можно будет без паяльника (или почти без него) собрать любую электрическую схему с микроконтроллером. Использование такой платы значительно облегчит работу с МКи ускорит процесс изучения его программирования. Выглядит это так:
[pic]
Что для этого понадобится?

[pic]

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