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

Обзор “малюток” 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. Основные компоненты устройства

Добавить комментарий