
5.1 Выбор микроконтроллера
Выбор микроконтроллера (MPU) является одним из самых важных решений, от которых зависит успех или провал всего проекта.
Основная цель – выбрать наименее дорогой микроконтроллер (чтобы снизить общую стоимость системы), но в то же время удовлетворяющий спецификации системы, т.е. требованиям по производительности, надежности, условиям применения и т.д.
Перечислим основные критерии выбора микроконтроллера в порядке значимости, которыми будем руководствоваться при выборе:
имеет ли микроконтроллер требуемое число контактов/портов ввода/ вывода, т.к. в случае их недостатка он не сможет выполнить работу, а в случае избытка цена будет слишком высокой;
имеет ли он все требуемые периферийные устройства, такие как последовательные порты ввода/вывода, RAM, ROM, A/D, D/A и т.д.;
обеспечивает ли ядро процессора необходимую производительность, т.е. вычислительную мощность, позволяющую обрабатывать системные запросы в течение всей жизни системы на выбранном прикладном языке;
доступность;
производится ли оно сейчас;
поддержка разработчика;
ассемблеры, компиляторы, средства отладки, внутрисхемные эмуляторы, насадки для логических анализаторов, отладочные мониторы, отладчики программ в исходных текстах;
информационная поддержка;
компетентность, подтвержденная разработками;
надежность производства, т.е. качество продукции;
время работы в этой области.
Проведя поиск и сравнение различных микроконтроллеров и руководствуясь перечисленными выше критериями выбираем высокопроизводительный 8-разрядный RISC микроконтроллер семейства AVR ATmega64L.
Перечислим особенности данного микроконтроллера:
8-разрядный высокопроизводительный AVR микроконтроллер с малым потреблением
прогрессивная RISC архитектура;
130 высокопроизводительных команд, большинство команд выполняется за один тактовый цикл;
32 8-разрядных рабочих регистра общего назначения + регистры управления периферией;
полностью статическая работа;
производительность приближающаяся к 16 MIPS (при тактовой частоте 16 МГц);
встроенный 2-цикловый перемножитель;
энергонезависимая память программ и данных;
64 Кбайт внутрисистемно перепрограммируемой Flash памяти;
обеспечивает 1000 циклов стирания/записи;
дополнительный сектор загрузочных кодов с независимыми битами блокировки;
внутрисистемное программирование встроенной программой загрузки;
обеспечен режим одновременного чтения/записи (Read-While-Write);
2 Кбайта EEPROM;
обеспечивает 100000 циклов стирания/записи;
4 Кбайта встроенной SRAM;
до 64 Кбайтов пространства дополнительной внешней памяти;
программируемая блокировка, обеспечивающая защиту программных средств пользователя;
SPI интерфейс для внутрисистемного программирования;
интерфейс JTAG (совместимый с IEEE 1149.1);
возможность сканирования периферии, соответствующая стандарту JTAG;
расширенная поддержка встроенной отладки;
программирование через JTAG интерфейс: Flash, EEPROM памяти, перемычек и битов блокировки;
два 8-разрядных таймера/счетчика с отдельным предварительным делителем, один с режимом сравнения;
два 16-разрядных таймера/счетчика, с расширенными возможностями, с отдельным предварительным делителем и режимами захвата и сравнения;
счетчик реального времени с отдельным генератором;
два 8-разрядных канала PWM;
шесть каналов PWM с возможностью программирования разрешения от 1 до 16 разрядов;
8-канальный 10-разрядный аналого-цифровой преобразователь;
8 несимметричных каналов;
7 дифференциальных каналов;
2 дифференциальных канала с программируемым усилением в 1, 10 или 200 крат;
байт-ориентированный 2-проводный последовательный интерфейс;
сдвоенный программируемый последовательный USART;
последовательный интерфейс SPI (ведущий/ведомый);
программируемый сторожевой таймер с отдельным встроенным генератором;
встроенный аналоговый компаратор;
специальные микроконтроллерные функции;
сброс по подаче питания и программируемый детектор кратковременного снижения напряжения питания;
встроенный калиброванный RC-генератор;
внутренние и внешние источники прерываний;
шесть режимов пониженного потребления: Idle, Power-save, Power-down, Standby, Extended Standby и снижения шумов ADC;
программная установка тактовой частоты;
режим обеспечения совместимости с ATmega103 (перемычки);
53 программируемые линии ввода/вывода;
64-выводной корпус TQFP;
рабочие напряжения:
2,7-5,5 В (ATmega64L);
4,5-5,5 В (ATmega64);
рабочая частота:
0-8 МГц (ATmega64L);
0-16 МГц (ATmega64).
Успех AVR-микроконтроллеров объясняется возможностью простого выполнения проекта с достижением необходимого результата в кратчайшие сроки, чему способствует доступность большого числа инструментальных средств проектирования, поставляемых, как непосредственно корпорацией Atmel, так и сторонними производителями. Ведущие сторонние производители выпускают полный спектр компиляторов, программаторов, ассемблеров, отладчиков, разъемов и адаптеров. Отличительной чертой инструментальных средств от Atmel является их невысокая стоимость.
Другой особенностью AVR-микроконтроллеров, которая способствовала их популяризации, это использование RISC-архитектуры, которая характеризуются мощным набором инструкций, большинство которых выполняются за один машинный цикл. Это означает, что при равной частоте тактового генератора они обеспечивают производительность в 12 (6) раз больше производительности предшествующих микроконтроллеров на основе CISC-архитектуры (например, MCS51). С другой стороны, в рамках одного приложения с заданным быстродействием, AVR-микроконтроллер может тактироваться в 12 (6) раз меньшей тактовой частотой, обеспечивая равное быстродействие, но при этом потребляя гораздо меньшую мощность. Таким образом, AVR-микроконтроллеры представляют более широкие возможности по оптимизации производительности/энергопотребления, что особенно важно при разработке приложения с аккумуляторным питанием. AVR-архитектура оптимизирована под язык высокого уровня Си, а большинство представителей семейства megaAVR содержит 8-канальный 10-разрядный АЦП, а также совместимый с IEEE 1149.1 интерфейс JTAG или debugWIRE для встроенной отладки. Кроме того, все микроконтроллеры megaAVR с флэш-памятью емкостью 16 кбайт и более могут программировать через JTAG.
Возможности этого микроконтроллера достаточны для того чтобы cправиться с задачей обработки сигналов. Он имеет на кристалле достаточную для этого память программ, что избавляет от использования микросхем внешней памяти, дешифратора адреса, буферов. Сам контроллер имеет низкую цену и выпускается в 64-выводном PDIP корпусе. Из всего вышесказанного следует, что используя этот микроконтроллер можно сэкономить средства и уменьшить объём системы.
На рисунке 5.1 изображён внешний вид и расположение выводов микроконтроллера ATmega64L.
Рисунок 5.1 – Внешний вид микроконтроллера и назначение выводов