Опубликовано

Источники питания

По материалам книги “Занимательные проекты на базе микроконтроллеров tinyAVR” (глава 1. «Источники питания»)

Занимательные проекты на базе микроконтроллеров tinyAVR

Для работы любой системы необходим источник энергии. Без него любая система — всего лишь “кусок железа”. Очень важно правильно выбрать источник питания. Подключение малогабаритного переносного устройства к электрической сети привязывает его к розетке, и такое решение вряд ли можно считать приемлемым.

Батареи

Батареи — самый распространенный источник энергии для портативных электронных систем. Батареи различаются по типам, корпусам и энергетическим показателям. Энергетический показатель батареи характеризует количество хранящейся в ней энергии. Батареи бывают двух типов: одноразовые (гальванические элементы) и перезаряжаемые (аккумуляторы). Гальванические элементы дают энергию сразу же после их сборки и продолжают давать ее до тех пор, пока не разрядятся. Перезарядить их нельзя, поэтому после эксплуатации их приходится выбрасывать.

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

Широко распространен угольно-цинковый гальванический элемент. Его корпус сделан из цинка (который служит отрицательным полюсом). Корпус заполнен пастой из хлорида цинка и хлорида аммония (которая служит электролитом). Положительный полюс батареи — угольный или графитовый стержень, окруженный смесью диоксида марганца и угольным порошком. По мере использования цинковая оболочка становится тоньше (вследствие химической реакции, ведущей к окислению цинка) и в конечном итоге электролит начинает вытекать из корпуса. Угольноцинковые батареи — самые дешевые. Выпускаются также щелочные батареи (рис. 1.16), которые похожи на угольно-цинковые, но в качестве электролита здесь применяется гидроксид калия. Номинальное напряжение угольно-цинковых и щелочных гальванических элементов равно 1,5 В.

Часто встречаются гальванические элементы на основе оксида серебра и лития. Батарейки на оксиде серебра (их напряжение равно 1,8 В) имеют гораздо более высокую удельную энергию, чем угольно-цинковые. В литиевых батареях используются различные химические соединения, в зависимости от комбинации которых напряжение может составлять от 1,5 до 3,7 В. На рис. 1.17 показаны литиевые и щелочные батарейки в форме таблеток.

Главная проблема с одноразовыми батареями состоит в том, что после разряда их необходимо сразу перерабатывать. В этом плане аккумуляторы гораздо привлекательнее: их можно несколько раз перезарядить (до того, как вам придется отправить их на переработку). Аккумуляторные батареи изготавливают как стандартныхразмеров, так и на заказ. Самые распространенные — свинцово-кислотные, никелькадмиевые, никель-металлогидридные, а также литий-ионные батареи. На рис. 1.18 показана литий-ионная батарея. Для зарядки аккумуляторных батарей требуются специальные зарядные устройства. Так, например, заряжать литий-ионную батарею зарядным устройством для никель-металлогидридных батарей нельзя, поскольку при этом батарея будет повреждена, что может привести даже к ее взрыву и пожару.

Рис. 1.16. Щелочные батареи типоразмеров 9 В и AAA

Рис. 1.17. Маленькая LR44 — щелочная батарея, большая CR2032 — литиевая батарея

Рис. 1.18. Литий-ионная батарея

Батареи гальванических элементов и аккумуляторов выпускаются нескольких стандартных размеров. Некоторые из самых распространенных перечислены в табл. 1.2.

Таблица 1.2. Обозначения батарей и их размеры

Обозначение Форма Длина, мм Диаметр/Длина, мм Высота, мм
ААА Цилиндр 44,5 12
АА Цилиндр 50,5 14,5
9V Прямоугольный параллелепипед 48,5 17,5 26,5
C Цилиндр 50 26,2
D Цилиндр 61,5 34,2

При выборе батареи необходимо учитывать следующие характеристики:

  • Энергетическая емкость. Выражается в ампер-часах (или в миллиампер-часах). Это важная характеристика, которая показывает, как долго “продержится” батарея до полного разряда. Помните, что чем больше емкость батареи, тем больше ее размеры.
  • Напряжение, выдаваемое батареей.
  • Условия хранения (когда батарея не используется).
  • Срок хранения. Показывает, сколько времени пройдет до полного саморазряда батареи. Не стоит покупать батареи про запас на десять лет вперед, если срок хранения составляет, к примеру, всего один год.
  • Рабочая температура. Все химические источники тока имеют плохие температурные характеристики, т. к. скорость протекания химических реакций сильно зависит от температуры. При слишком низких (и высоких) температурах батареи работают очень плохо.
  • Рабочий цикл. Некоторые батареи работают лучше тогда, когда они используются с перерывами. Рабочий цикл батареи показывает, можно ли включать батарею в непрерывном режиме без потери ее характеристик.

Батарея из фруктов

Для получения электричества можно использовать некоторые фрукты и овощи. Содержащиеся в них электролиты пригодны для изготовления простейших гальванических элементов. Для изготовления “фруктового” источника питания потребуется лимон, а также два электрода: медный и цинковый. Напряжение такого источника питания равно примерно 0,9 В. Величина тока зависит от площади электродов, контактирующих с электролитом, а также от качества самого электролита.

Для нашей “фруктовой” батареи потребуется несколько лимонов (это будет электролит) и несколько кусков меди и цинка (это будут электроды). В качестве меди мы возьмем кусок фольгированного текстолита, а в качестве цинка — полоски, вырезанные из корпуса обычной батареи.

Последовательность изготовления батареи.

  1. Начнем с куска текстолита. Его размер должен быть достаточным, чтобы на нем можно было создать три или четыре “острова”, на каждом из которых поместится половинка разрезанного лимона.
  2. Затем вскроем несколько батареек размера АА, сделаем из них цинковые полоски и зачистим их наждачной бумагой. Припаяем к каждой полоске по проводу. Вместо цинковых полосок подойдут даже гвозди. Гвозди обычно покрыты цинком, поэтому пригодны для изготовления батареи.
  3. На медной печатной плате нужно напильником (или пилой) вырезать “островки” и припаять к каждому из них второй конец провода (от цинковой полоски). На одну ячейку понадобится половина лимона, один медный островок и одна цинковая полоска.
  4. Положите половинки лимонов на медные островки. Сделайте на лимонах разрезы и вставьте в них цинковые полоски. На рис. 1.19 показана лимонная батарея из четырех элементов.

Рис. 1.19. “Лимонная” батарея

Адаптер переменного тока

Если вы используете адаптер переменного тока, то потребуется выпрямитель и емкостной фильтр (рис. 1.20). Выпрямитель можно собрать на отдельных диодах (например, 1N4001) либо взять готовый выпрямительный блок. Если источник питания выдает ток 500 мА, то диоды должны быть рассчитаны, по меньшей мере, на 1 А. Нужно учесть еще одну характеристику диода: максимальное обратное напряжение (Peak Inverse Voltage, PIV), которое диод может выдержать до пробоя. Так, например, максимальное обратное напряжение диода 1N4001 равно 50 В, а 1N4007 — 1000 В.

Рис. 1.20. Схема из выпрямителя и емкостного фильтра может использоваться как с переменным током, так и с постоянным

Амплитуда выпрямленного напряжения на конденсаторе фильтра в 1,4 раза выше среднеквадратического значения входного напряжения переменного тока. Значит, переменное напряжение в 10 В создаст на конденсаторе фильтра постоянное напряжение, равное примерно 14 В. Важно также правильно выбрать емкость и рабочее напряжение конденсатора фильтра. Чем больше емкость, тем меньше пульсации напряжения на выходе. При напряжении 14 В следует взять конденсатор с рабочим напряжением не менее 25 В. Схему, изображенную на рис. 1.20, можно использовать и с источником постоянного тока. При этом полярность подключенного источника тока не будет иметь значения.

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

Широко распространены трехвыводные стабилизаторы типа 78ХХ. Они выпускаются многими компаниями и изготавливаются в разных корпусах. Для питания процессора AVR следует выбрать стабилизатор 7805 с выходным напряжением 5 В. Он может выдавать выходной ток до 1 А и питаться постоянным напряжением от 9 до 20 В. Подойдет также микросхема LM317, напряжение на выходе которой (1,25 В и выше) можно настроить при помощи двух резисторов.

Стабилизатор напряжения — это активный компонент, и при работе он потребляет некоторый ток. Этот ток называется током покоя и имеет порядок десятков миллиампер. Существуют специальные стабилизаторы напряжения с очень малым током покоя. Микросхемы LP2950 и LP2951 — это линейные микромощные стабилизаторы с низким током покоя (около 75 мА) компании National Semiconductor, имеющие очень малое падение напряжения (примерно 40 мВ при высокоомной нагрузке и 380 мВ при максимальном токе в 100 мА). Они идеально приспособлены для систем с питанием от батарей. Более того, ток покоя микросхем LP2950/LP2951 при повышении напряжения на них увеличивается очень незначительно. Это самые популярные трехконтактные стабилизаторы с низким током покоя, именно поэтому мы используем их во многих наших проектах.

Питание от разъема USB

USB — это популярный интерфейс, который есть и в персональных компьютерах, и в ноутбуках. В основном он служит для обмена данными между компьютером и периферийными устройствами (такими, как видеокамера, клавиатура и т. д.). USB — это четырехпроводной интерфейс с двумя контактами для питания и двумя для обмена данными. Питание на USB подается с компьютера. Номинальное напряжение равно +5 В, но по спецификации USB 2.0 оно может составлять от +4,4 до +5,25 В. Внешние устройства, подключаемые к компьютеру, например, мышь, могут получать питание от USB. Этим напряжением можно питать и другие внешние схемы, которые не связаны компьютером. Мы применяем питание от USB для устройств, расположенных недалеко от компьютера. С разъема USB можно взять ток до 100 мА (можно получить и больше, но для этого нужно дать запрос с устройства). В табл. 1.3 приведены питающие и сигнальные контакты порта USB.

Таблица 1.3. Контакты разъема USB (для форм-факторов Mini и Micro)

Контакт Наименование Цвет провода Назначение
1 Vcc Красный +5 В
2 D Белый Сигнал данных –ve
3 D+ Зеленый Сигнал данных +ve
4 ID Бесцветный Идентификация устройства
5 Gnd Черный Заземление

Солнечная энергия

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

Генератор на эффекте Фарадея

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

Рис. 1.21. Генератор напряжения на эффекте Фарадея

Рис. 1.22. Сигнал на выходе генератора Фарадея

Корпусом служит трубка из оргстекла подходящего диаметра и длины. Внутри нее находится магнит. Поверх трубки намотана катушка из нескольких сотен витков медного изолированного провода. Концы трубки закрыты заглушками. Для генерирования напряжения конструкцию встряхивают, магнит перемещается по трубке и создает в медном проводе переменное напряжение, которое можно выпрямить и отфильтровать, например, при помощи схемы, показанной на рис. 1.20. Единственная проблема состоит в том, что вам придется трясти эту трубку ровно столько времени, сколько вы хотите вырабатывать напряжение. Как только магнит останавливается, генерация напряжения прекращается и сохраняется только остаточное напряжение на конденсаторе. Но во многих случаях и этого оказывается достаточно. Одно из возможных решений — применение ионисторов. Однако для их зарядки до требуемого напряжения вам может понадобиться потратить много времени и сил.

В качестве стабилизатора к такому источнику рекомендуем использовать микросхему LP2950.

На рис. 1.22 показана осциллограмма сигнала на выходе генератора Фарадея. Ее размах превышает 17 В.

Питание от энергии радиоволн

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

Рис. 1.23. Принцип питания от источника радиочастоты

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

Выполненная по этому принципу реальная система описана в документе “Wireless battery energizes low-power devices”: www.edn.com/article/CA6501085.html.

Опубликовано

Обзор “малюток” Tiny

По материалам книги “Занимательные проекты на базе микроконтроллеров tinyAVR” (глава 1. «Обзор “малюток” Tiny»)

Занимательные проекты на базе микроконтроллеров tinyAVR

В соответствии с законом Мура степень интеграции микросхем по-прежнему увеличивается в два раза (ну, почти в два) каждые 18 месяцев. Это означает, что каждые полтора года изготовители интегральных полупроводниковых схем могут разместить на той же самой площади микросхемы в два раза больше транзисторов и прочих компонентов. Эта важная гипотеза была впервые высказана Гордоном Муром (одним из основателей компании Intel) в середине 1960 годов и, как это ни удивительно, по-прежнему остается верной (более или менее). Габариты персо- нального компьютера постоянно уменьшаются. Существуют различные модели компьютеров: настольные, переносные, карманные и т. д. Недавно появились так называемые компактные компьютеры (Small Form Factor PC). Это доступные по- требителю небольшие универсальные компьютеры со стандартным программным обеспечением. Действие закона Мура распространяется не только на персональные компьютеры, но и на бытовые электронные устройства: мой нынешний мобильный телефон (который имеет гораздо больше функций, чем предыдущий) значительно компактнее своего предшественника!

Употребляя термин “компьютер”, мы чаще всего имеем в виду обычное вычис- лительное устройство для работы с текстовым редактором, выхода в Интернет и т. д. Но в наши дни почти любое электронное устройство обладает определенны- ми вычислительными способностями. Такие компьютеры называют “встроенны- ми”, поскольку они входят в состав более крупной системы и позволяют ей увели- чить свои возможности.

В стремлении к малогабаритным изделиям наше внимание привлекли компью- теры еще более компактных размеров: Tiny (“малютка”). В отличие от прочих ком- пьютеров, это миниатюрные специализированные компьютерные системы, кото- рые могут поместиться в нагрудном кармане рубашки. Многие изготовители поставляют наборы для сборки таких компьютеров (лидеры здесь — компании Microchip и Atmel). По размерам микросхема соизмерима с рисовым зернышком и все, что ей нужно, — это подходящий источник питания и схема сопряжения. За- программируйте микросхему соответствующим образом, и у вас получится свое собственное персональное электронное устройство, которое может быть совершен- но уникальным.

Что могут делать такие маленькие встроенные компьютеры? Есть ли от них хоть какая-то польза? Далее мы покажем, насколько маленькими они могут быть и что они могут делать.

Микроконтроллеры tinyAVR компании Atmel

Серия микроконтроллеров tinyAVR имеет много разновидностей. Число выво- дов может быть от 4 (у серии ATtiny4/5/9/10) и до 28 (у серии ATtiny48/88). Неко- торые микросхемы серии ATtiny48/88 имеют только 24 контакта. Широко приме- няется схема ATtiny13, которая имеет 8 контактов: два для питания и шесть для ввода/вывода. Это не слишком много, но даже при помощи шести контактов дос- тупны разнообразные возможности.

Из представленной далее в этой главе таблицы микросхем tinyAVR мы вы- брали для большинства наших проектов следующие: ATtiny13, ATtiny25/45/85 и ATtiny261/461/861. Они представляют собой весь спектр семейства Tiny. Все эти микросхемы снабжены статической памятью (SRAM) для программирования на языке С. Схема Tiny13 имеет всего 1 Кбайт памяти для хранения программ, а схемы Tiny861 и Tiny85 — 8 Кбайт. Схемы Tiny13 и Tiny25/45/85 совместимы по цоко- левке, но серия Tiny25/45/85 имеет больше памяти и функций. Если код не поме- щается в схеме Tiny13, то ее можно заменить схемой Tiny24/45/85 (в зависимости от требований к размеру памяти).

Почти все устройства, описанные в этой книге, отличаются привлекательным внешним видом благодаря большим светодиодным индикаторам. Новый метод управления большим числом светодиодов при помощи ограниченного числа управляющих выводов (Charlieplexing — “метод Чарли”) позволяет мультиплекси- ровать до 20 светодиодов, имея всего пять контактов ввода/вывода. Данный метод применялся для реализации привлекательных графических дисплеев и управления семисегментными индикаторами. В некоторых устройствах использованы графи- ческие жидкокристаллические дисплеи.

Любую описанную конструкцию можно собрать за один-два дня.

Микросхемы tinyAVR

Микросхемы tinyAVR отличаются друг от друга по нескольким признакам: по числу выводов, по размеру памяти, по типу корпуса (DIP — корпус с двумя рядами выводов по длинным сторонам; SOIC — то же для поверхностного монтажа; MLF — квадратный корпус для поверхностного монтажа), по периферийным функциям, по интерфейсам обмена и т. д. На рис. 1.1 показаны примеры микросхем tinyAVR в корпусах типа DIP, а на рис. 1.2 — в корпусах типа SOIC. Номенклатура микросхем постоянно меняется, поскольку компания Atmel регулярно добавляет новые устройства для замены старых. Последние изменения можно всегда посмот- реть на сайте по ссылке: www.avrgenius.com/tinyavr1.

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

Некоторые основные серии и схемы семейства tinyAVR приведены в табл. 1.1 и на рис. 1.1, 1.2.

Если в маркировке микросхемы имеется буква “А”, значит, схема выполнена по технологии picoPower и снабжена функцией для снижения потребления электро- энергии.

Рис. 1.1. Микроконтроллеры tinyAVR в корпусах DIP

Рис. 1.2. Микроконтроллеры tinyAVR в корпусах SMD

Таблица 1.1. Некоторые основные серии и микросхемы семейства tinyAVR

Номер п/п Серия/ Микросхема Описание
1 ATtiny4/5/9/10 Максимум 4 контакта ввода/вывода, рабочее напряжение 1,8–5,5 В, 32 байта SRAM, производительность до 12 MIPS (на частоте 12 МГц), Flash-память для хранения программ (1 Кбайт в ATtiny9/10 и 512 байт в ATtiny4/5), аналого- цифровой преобразователь (в ATtiny9/10)
2 ATtiny13 Максимум 6 контактов ввода/вывода, рабочее напряжение 1,8–5,5 В, 64 байта SRAM, 64 байта EEPROM, производи- тельность до 20 MIPS (на частоте 20 МГц), 1 Кбайт Flash- памяти для хранения программ, аналого-цифровой преобра- зователь (ADC)
3 ATtiny24/44/84 Максимум 12 контактов ввода/вывода, рабочее напряжение 1,8–5,5 В, 128/256/512 байт SRAM и 128/256/512 байтEEPROM (соответственно), производительность до 20 MIPS (на частоте 20 МГц), 2/4/8 Кбайт Flash-памяти для хранения программ (соответственно), аналого-цифровой преобразова- тель (ADC), температурный датчик (на кристалле), универ- сальный последовательный интерфейс (USI)
4 ATtiny25/45/85 Максимум 6 контактов ввода/вывода, рабочее напряжение 1,8–5,5 В, 128/256/512 байт SRAM и 128/256/512 байтEEPROM (соответственно), производительность до 20 MIPS (на частоте 20 МГц), 2/4/8 Кбайт Flash-памяти для хранения программ (соответственно), аналого-цифровой преобразова- тель (ADC), универсальный последовательный интерфейс (USI)
5 ATtiny261/461/8 61 Максимум 16 контактов ввода/вывода, рабочее напряжение 1,8–5,5 В, 128/256/512 байт SRAM и 128/256/512 байтEEPROM (соответственно), производительность до 20 MIPS (на частоте 20 МГц), 2/4/8 Кбайт Flash-памяти для хранения программ (соответственно), аналого-цифровой преобразова- тель (ADC), универсальный последовательный интерфейс (USI)
6 ATtiny48/88 Максимум 24/28 контактов ввода/вывода (в зависимости от корпуса), рабочее напряжение 1,8–5,5 В, 256/512 байт SRAM (соответственно), 64 байта EEPROM, производительность до 12 MIPS (на частоте 12 МГц), 4/8 Кбайт Flash-памяти для хранения программ (соответственно), аналого-цифровой преобразователь (ADC), последовательный внешний интер- фейс (SPI)
7 ATtiny43U Максимум 16 контактов ввода/вывода, рабочее напряже- ние 0,7–1,8 В, 256 байт SRAM, 64 байта EEPROM, произ- водительность до 1 MIPS на мегагерц, 4 Кбайт Flash- памяти для хранения программ, аналого-цифровой пре- образователь (ADC), температурный датчик (на кристал- ле), универсальный последовательный интерфейс (USI). Микросхема с низким энергопотреблением, встроенный преобразователь автоматически генерирует стабильное напряжение питания 3 В от низковольтного источника пи- тания (не ниже 0,7 В)

Архитектура tinyAVR

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

Память

В архитектуре AVR предусмотрено два основных адресных пространства: па- мять данных и память программ. Кроме того, микросхемы имеют стираемую па- мять типа EEPROM для хранения данных. Flash-память для хранения программ организована как линейный массив 16-разрядных ячеек (поскольку размер всех команд AVR равен 16 или 32 бита). Адресное пространство внутренней памяти SRAM, внутренних регистров и регистров ввода/вывода общее. Младшие 32 байта заняты внутренними регистрами, следующие 64 байта — регистрами ввода/вывода; затем адресация SRAM продолжается с адреса 0х60. Внутренняя память EEPROM предназначена для временного хранения данных. На рис. 1.3 показана карта памяти микроконтроллеров семейства Tiny.

Рис. 1.3. Карта памяти микроконтроллеров семейства Tiny

Порты ввода/вывода

Порты ввода/вывода контроллеров AVR состоят из отдельных контактов, каж- дый из которых можно сконфигурировать для ввода или вывода. К любому вход- ному контакту можно присоединить нагрузку. Это необходимо для подключения датчиков, которые не выдают электрического сигнала (например, микропереклю- чателей). Каждый выходной буфер обеспечивает ток 40 мA, что позволяет напря- мую подключать светодиоды. Все контакты ввода/вывода защищены диодами по шинам питания и земли. На рис. 1.4 показана блок-схема портов ввода/вывода кон- троллеров AVR.

Рис. 1.4. Блок-схема порта ввода/вывода контроллеров семейства Tiny

Таймеры

В микросхемах tinyAVR обычно есть встроенные синхронные или асинхронные восьмиразрядные таймеры. Для синхронного тактирования служит сигнал от внут- реннего тактового генератора (или от делителя частоты), для асинхронного — внешний тактовый сигнал либо цепь фазовой автоподстройки частоты (Phase Lock Loop, PLL), которая работает на частоте до 64 МГц.

Рис. 1.5. Блок-схема таймера AVR

В состав некоторых контроллеров входят также 10- или 16-разрядные таймеры. Помимо счетчика, эти таймеры также имеют блоки сравнения, которые генерируют ШИМ-сигнал на контактах ввода/вывода. Таймеры могут работать в разных режи- мах (нормальный, захват, режим широтно-импульсной модуляции, сброс таймера по результату сравнения и т. д.). Каждый таймер имеет несколько связанных с ним источников прерываний, которые описываются в следующем разделе, посвящен- ном прерываниям. На рис. 1.5 показана блок-схема таймера AVR.

Прерывания

В контроллерах AVR предусмотрено несколько различных источников преры- ваний, которым выделены соответствующие векторы в адресном пространстве про- грамм. По умолчанию векторы прерываний занимают первые адреса в адресном пространстве программ. Самый младший адрес (0х0000) назначен вектору сброса, который вообще говоря, не является источником прерывания. Адрес прерывания определяет также и его приоритет. Чем ниже адрес, тем выше уровень приоритета прерывания. Поэтому сброс имеет самый высокий приоритет. Если одновременно происходит несколько прерываний, то первым выполняется прерывание с самым высоким приоритетом, за ним прерывание с более низким приоритетом и т. д. Пре- рывание приостанавливает нормальное выполнение основной программы и пере- ставляет счетчик команд на подпрограмму обработки прерывания (Interrupt Service Routine, ISR). После обработки прерывания счетчик команд устанавливается снова на основную программу. На рис. 1.6 показано выполнение кода ISR.

Рис. 1.6. Обработка прерывания

Каждому прерыванию присваивается свой бит разрешения, который для активи- зации прерывания должен быть установлен в логическую единицу (так же как и глобальный бит разрешения прерываний в регистре состояния). Глобальный бит разрешения прерываний при выполнении ISR по умолчанию сбрасывается, поэтому никакие другие прерывания произойти не могут (если только программа пользова- теля не выставила явным образом глобальный бит разрешения прерываний, чтобы разрешить вложенные прерывания (прерывания внутри другого прерывания)). Пе- риферийные устройства AVR (таймеры, интерфейс USI, АЦП, аналоговые компа- раторы и т. д.) имеют разные источники прерываний для различных состояний или режимов.

USI: универсальный последовательный интерфейс

Интерфейс USI обеспечивает основные аппаратные ресурсы для последователь- ного обмена. Этот интерфейс можно сконфигурировать для работы либо по трех- проводному протоколу (который совместим с последовательным периферийным интерфейсом SPI), либо по двухпроводному протоколу (который совместим с двух- проводным интерфейсом TWI). При минимальном управляющем программном обеспечении интерфейс USI допускает значительно более высокие скорости пере- дачи и требует меньше памяти для программ (чем чисто программные решения). Прерывания применяются для уменьшения нагрузки на процессор.

Аналоговый компаратор

Контроллеры AVR имеют компаратор, который измеряет аналоговое входное напряжение на двух входах и выдает цифровой выходной сигнал (0 или 1) в зави- симости от того, на каком входе (положительном или отрицательном) есть на- пряжение.

Рис. 1.7. Блок-схема аналогового компаратора

Положительный и отрицательный входы могут быть выбраны из нескольких контактов ввода/вывода. Изменение выхода компаратора можно использовать как источник прерывания. Выход компаратора можно увидеть на контакте выхода ана- логового компаратора (АСО). На рис. 1.7 показана блок-схема аналогового компа- ратора.

Аналого-цифровой преобразователь

Аналого-цифровой преобразователь (АЦП, ADC) представляет собой 10-разрядный преобразователь последовательного приближения с несколькими несимметричны- ми входами. В некоторых микросхемах есть также дифференциальные входы (для преобразования разности аналоговых напряжений в двух точках в цифровой код). Для повышения точности измерений иногда усиливают входное напряжение (до преобразования). Опорное напряжение для измерения можно брать с контактов AREF, VCC и от внутреннего источника опорного напряжения. На рис. 1.8 показа- на блок-схема аналого-цифрового преобразователя.

Рис. 1.8. Блок-схема аналого-цифрового преобразователя

Источники тактовых сигналов

Источники сигналов тактовой частоты: калиброванный RC-генератор, внешний тактовый генератор, кварцевый генератор, сторожевой генератор, низкочастотный кварцевый генератор, а также генератор с фазовой автоподстройкой частоты (PLL). Источник тактового сигнала можно задать (из этих вариантов) при помощи fuse- битов (конфигурационных ячеек). Частота сигнала от выбранного источника может быть впоследствии подвергнута предварительному делению (при помощи выстав- ления битов в регистре предварительного деления) во время инициализации программного обеспечения пользователя. Тактовый сигнал поступает в разные модули микросхемы (CPU, I/O, Flash и ADC):

  • CLK_CPU — синхронизирует те части системы, которые обеспечивают работу ядра AVR (внутренние регистры, регистр состояния и т. д.).
  • CLK_I/O — используется большинством модулей ввода/вывода (тайме- ры/счетчики, интерфейс USI, синхронные внешние прерывания и т. д.).
  • CLK_FLASH — управляет работой интерфейса Flash-памяти.
  • CLK_ADC — в отличие от других модулей ввода/вывода, АЦП получает от- дельный тактовый сигнал, чтобы во время работы АЦП можно было прервать другие тактовые сигналы (для снижения помех остальных цифровых цепей). Это позволяет получить более точные результаты аналого-цифрового преобра- зования. На рис. 1.9 показаны разные варианты подачи сигнала тактовой час- тоты.

Рис. 1.9. Источники сигнала тактовой частоты

Управление электропитанием и режимы ожидания

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

Возможны следующие режимы ожидания: выключение, энергосбережение, про- стой, уменьшение шумов АЦП и др. Разные микросхемы поддерживают различные режимы, подробности относительно которых можно всегда найти в спецификациях.

Более того, каждый режим имеет свой набор источников пробуждения (для вы- хода из данного режима и перехода в полноценное рабочее состояние).

Сброс системы

Источники сигнала сброса контроллеров AVR:

  • Сброс по включению питания — микроконтроллер сбрасывается, когда напря- жение питания уменьшается до заданного порога срабатывания.
  • Внешний сброс — когда на контакте RESET присутствует низкий уровень сигнала.
  • Сброс по сторожевому таймеру — когда активизирован сторожевой таймер и его период ожидания истек.
  • Сброс по падению напряжения питания — когда активизирован детектор паде- ния напряжения и напряжение питания VCC оказывается ниже заданного порога срабатывания.

После сброса его источник может быть определен программно посредством проверки отдельных битов регистра состояния микроконтроллера. Во время сброса все регистры ввода/вывода устанавливаются в свои начальные значения, и про- грамма начинает выполнение с вектора сброса. На рис. 1.10 показана блок-схема различных источников сигнала сброса.

Рис. 1.10. Источники сигнала сброса

Программирование микроконтроллеров

Программирование контроллеров AVR включает в себя установку битов блокиро- вания, fuse-битов, программирование Flash-памяти, а также программирование внут- ренней памяти EEPROM. Эти данные могут быть считаны с контроллера вместе с байтами идентификации устройства. Микросхемы семейства Tiny можно запро- граммировать при помощи последовательного или параллельного способа. В этой книге (если не оговорено другое) мы применяли последовательное программирова- ние микроконтроллеров семейства Tiny. Здесь тоже есть два варианта: системное программирование (ISP) и последовательное программирование при высоком напря- жении (HVSP). HVSP применим (как альтернатива параллельному программирова- нию) только для восьмиконтактных микроконтроллеров (поскольку эти микросхемы имеют слишком мало контактов для параллельного программирования).

Системное программирование использует внутренний последовательный перифе- рийный интерфейс (SPI) контроллеров AVR для загрузки кода в память Flash и EEPROM. При этом также программируются биты блокирования и fuse-биты. Для такого программирования требуются только контакты VCC, GND, RESET и три сиг- нальных линии. В некоторых случаях для ввода/вывода (или других целей) может потребоваться контакт RESET. Если этот контакт сконфигурирован как контакт для ввода/вывода (при помощи бита RSTDISBL), то программирование в режиме ISP не- возможно и микросхему следует программировать при помощи параллельного про- граммирования или последовательного программирования при высоком напряжении. Для программирования контроллеров AVR есть еще один метод — система отладки debugWIRE (описана в следующем разделе). Последняя серия шестиконтактных мик- росхем компании Atmel (ATtiny4/5/9/10) не поддерживает описанных ранее вариантов

программирования и имеет новый встроенный интерфейс программирования TPI.

Биты блокирования служат для защиты программного обеспечения пользовате- ля (во избежание дублирования), а fuse-биты применяются для начальной настрой- ки контроллера, которая не может (и не должна) выполняться программным обес- печением пользователя. На рис. 1.11 показаны сигналы для последовательного программирования ISP.

Рис. 1.11. Сигналы для последовательного программирования

Отладочная система debugWIRE

Отладочная система debugWIRE — это однопроводной интерфейс для аппарат- ной отладки и программирования памяти Flash и EEPROM. Этот интерфейс вклю- чается посредством программирования fuse-бита DWEN. После включения этого интерфейса обмен данными между микросхемой и эмулятором происходит через контакт RESET. Таким образом, при программировании через этот интерфейс внешний сброс не работает. Протокол программирования в данном случае анало- гичен JTAG ICE mkII (популярный инструмент отладки компании Atmel). На рис. 1.12 показан отладочный интерфейс debugWIRE.

Рис. 1.12. Отладочный интерфейс debugWIRE

Составляющие проекта

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

Как же создается система или проект, который до сих пор никому не приходил в голову? Конечно, вы должны обдумать, что вам нужно. Иногда толчком может по- служить другая разработка. Это абстрактный процесс, который можно проиллюстри- ровать примером. Предположим, что вы увидели использование светодиодов в какой-то системе: яркие и мигающие, они привлекли ваше внимание, и вы подума- ли, а что если я размещу эти веселенькие светодиоды на своей шапке и заставлю их мигать или менять интенсивность свечения? Самое главное — найти что-то ориги- нальное. На рис. 1.13 схематично изображен процесс проектирования и разработки.

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

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

Рис. 1.13. Процесс проектирования и разработки

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

Рис. 1.14. Элементы современного проекта с использованием микроконтроллера

Программные компоненты — это прикладная программа, которая выполняется в микроконтроллере. Однако этим термином может также обозначаться и програм- ма для обмена с микроконтроллером, работающая на персональном компьютере.

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

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

Для работы устройства очень важен источник сигнала тактовой частоты. К сча- стью, такой источник обычно есть в самом микроконтроллере. Обычно это RC- генератор, который не очень точен и частота которого зависит от рабочего напря- жения, но для многих устройств этого вполне достаточно. Внешний источник так- товой частоты понадобится только для тех приложений, которые критичны к изме- рению времени. Все микроконтроллеры семейства AVR снабжены встроенным источником сигнала тактовой частоты и в большинстве проектов этой книги мы используем именно его. Скорость выполнения программы напрямую зависит от тактовой частоты. Однако высокая тактовая частота имеет и недостаток: система потребляет больше электроэнергии. Между тактовой частотой и потреблением энергии существует линейная зависимость. Если вы удвоите тактовую частоту, то потребление энергии также возрастет в два раза. Поэтому неразумно выбирать са- мую высокую рабочую частоту, лучше определить ее исходя из требуемой скоро- сти выполнения программы. Как мы покажем в проекте 1 (далее в этой же главе), выбрав самую низкую тактовую частоту, мы можем снизить потребляемую мощ- ность до минимума. Основные компоненты устройства показаны на рис. 1.15.

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

Рис. 1.15. Основные компоненты устройства