Михаил РОДИОНОВ
info@electrosnab.ru
Введение
Уже длительное время 8-разрядные МК SiLabs представлены набором семейств, сбалансированных по функциональности, производительности, экономичности и стоимости. Но компания Silicon Laboratories не останавливается на достигнутом и продолжает активное развитие этой платформы. Основными тенденциями развития являются как улучшение параметров существующих, так и интеграция новых периферийных блоков при сохранении старых типоразмеров корпусов микросхем. С каждым годом МК SiLabs покрывают все более широкий спектр возможных приложений, захватывая все новые и новые ниши на рынке.
Последней разработкой компании Silicon Labs в сегменте 8-разрядных МК стало семейство C8051F41x, в котором реализованы несколько новых идей и технологических решений. Большинство из них связаны с интегрированными часами реального времени (модуль smaRTClock), которые впервые появились в структуре МК SiLabs и позволили покрыть целый класс приложений, специфика которых требует постоянно осуществлять контроль реального времени. Чаще всего в таких приложениях лишь изредка используется вся мощь процессорного ядра и встроенной периферии МК, а большую часть времени система ожидает появления каких-либо событий (т. е. работает по прерываниям) и выполняет одну единственную функцию — контроль реального времени. Традиционно при разработке таких систем использовались два подхода.
• Во-первых, для отсчета времени можно
использовать один из встроенных тайме-
Новые 8-разрядные микроконтроллеры Silicon Laboratories
с RTC-модулем
В статье рассмотрены особенности нового семейства микроконтроллеров SiLabs со встроенными часами реального времени RTC (Real Time Clock), описаны средства отладки, выпускаемые Silicon Laboratories для поддержки разработок на базе данных МК. В заключение дается сравнение с аналогичными изделиями других производителей элементной базы, а также представлен краткий обзор готовых решений, предлагаемых на сайте компании в качестве готовых примеров (Reference Design). Основная цель данной статьи — сформировать у разработчиков полное представление о функциях и возможностях нового семейства МК.
ров МК. Однако в этом случае невозможно достичь минимального энергопотребления, так как нельзя отключить задающий тактовый генератор, необходимый для функционирования таймера. Кроме того, такой подход обеспечивает весьма ограниченный набор RTC-функций, что делает его приемлемым только для самых простых приложений.
• Во-вторых, можно использовать внешний модуль RTC. В настоящее время такие модули широко представлены на рынке и обеспечивают достаточно хорошую функциональность. Однако они требуют дополнительного места на плате и для связи с ними необходимо выделить один из интерфейсов МК или несколько портов ввода/вывода.
Микроконтроллеры со встроенными RTC-модулями позволяют избавиться от недостатков, присущих традиционным способам построения систем с часами реального времени. В настоящее время в связи с бурным развитием рынка портативных устройств с батарейным питанием все более привлекательными становятся именно такие решения. И новое семейство C8051F41x, которое уже появилось на отечественном рынке, непременно займет среди них достойное место.
Структура МК C8051F41x
Новое семейство малогабаритных микроконтроллеров C8051F41x является продолжением линейки 8051-совместимых МК компании Silicon Laboratories и состоит из 4 устройств, которые отличаются друг от друга объемом встроенной Flash-памяти, количест-
вом портов ввода/вывода и типом корпуса (LQFP-32 или QFN-28). Со структурной схемой данных МК можно ознакомиться в работе [3, рис. 4]. Как и другие микроконтроллеры SiLabs, МК C8051F41x использует высокопроизводительное процессорное ядро CIP-51, максимальная частота тактирования которого может достигать 50 МГц. По системе команд ядро CIP-51 полностью совместимо с широко распространенным стандартом MCS-51™ (всего поддерживается 109 инструкций, на выполнение которых требуется от 1 до 8 тактовых циклов). Благодаря использованию конвейерной архитектуры, примерно 70% команд выполняются за 1 или 2 системных тактовых цикла, что при определенных условиях позволяет достичь максимальной производительности вплоть до 50 MIPS.
Развитая система прерываний (поддерживаются в общей сложности до 18 источников прерываний с двумя уровнями приоритета) позволяет аналоговым и цифровым периферийным модулям функционировать независимо от процессорного ядра и прерывать работу МК только при необходимости. Контроллер прерываний может перепрограм-мироваться в ходе работы для динамического изменения приоритетов и разрешений прерываний от различной периферии. Задержка обработки прерываний (от момента возникновения прерывания до начала выполнения первой команды процедуры ISR) составляет от 7 до 19 системных тактовых циклов в зависимости от конкретной ситуации.
Впервые МК компании Silicon Laboratories имеют расширенное напряжение питания — от 2,0 В до 5,25 В. Это обеспечивается наличием в C8051F41x встроенного стабилизатора
Таблица 1. Режимы электропитания C8051F41x
Режим SYSCLK Ядро CPU Периферийные модули Модуль smaRTClock Энергопотребление
Active Активен Активно Включены или отключены Максимальное
Idle в зависимости от настроек Включен Среднее
Suspend Остановлено (нет обращений к Флэш-памяти) Включены (но не работают) или отключены в зависимости от настроек или отключен Низкое
Stop Остановлен Цифровые — отключены; Аналоговые — включены (но не работают) или отключены в зависимости от настроек Отключен Очень низкое
напряжения [3, рис. 4]. Выходное напряжение этого стабилизатора (2,1 или 2,5 В) выдается на вывод VDD микросхемы и поэтому может использоваться для питания не только внутренних модулей МК, но и внешних устройств с общим током потребления не более 50 мА.
Все представители семейства C8051F41x содержат двухпроводный интерфейс C2, который предназначен для программирования Flash-памяти и выполнения внутрисхемной отладки уже готовых изделий с установленным (не в разъем, а припаянным на плату) МК. Для отладки необходимы только компьютер с запущенным отладчиком из комплекта SШcon Labs IDE и адаптер-переходник для интерфейса C2. В процессе отладки можно считывать и модифицировать ячейки памяти и регистры, расставлять точки останова, выполнять программу в пошаговом режиме. Отладка осуществляется в режиме реального времени «неинтрузивным» способом, то есть не используются внутренние ресурсы МК (память, таймеры, каналы связи), а все цифровые и аналоговые периферийные модули полностью сохраняют свою работоспособность.
Остальные структурные модули и особенности МК C8051F41x будут рассмотрены далее в соответствующих разделах.
Система тактирования и режимы электропитания
МК C8051F41x отличаются довольно простой, но в то же время достаточно эффективной системой тактирования (рис. 1). Для генерации системного тактового сигнала (SYSCLK) можно использовать четыре различных источника.
1. Программируемый внутренний генератор, который является источником сигнала SYSCLK по умолчанию (то есть после сброса системы) и не требует использования каких-либо внешних компонентов. В процессе производства МК частота этого генератора устанавливается равной 24,5 МГц, но может быть подкорректирована в небольших пределах с помощью специального регистра. Погрешность установки частоты не превышает ±2%. К выходу внутреннего генератора подключен делитель с программируемым коэффициентом деления от 1 до 128.
2. Внешний генератор, основная схема которого интегрирована внутри МК, а в качестве задающего элемента должен использоваться внешний кварцевый/керамический резонатор, RC-цепочка или конденсатор. Кроме того, через один из входов этого генератора может подаваться внешний тактовый сигнал (например, от КМОП-счетчика).
3. Умножитель частоты, на вход которого подается выходной сигнал внутреннего или внешнего генератора (напрямую или через делитель на 2). Умножитель частоты повышает частоту в четыре раза. К выходу
умножителя частоты подключен делитель с программируемым коэффициентом деления от 1 до 31/2.
4. Низкочастотный (32 кГц) генератор модуля smaRTClock.
Как известно, между тактовой частотой и энергопотреблением МК существует прямая зависимость: чем выше частота, тем больше энергопотребление. С учетом требований конкретного приложения (высокая производительность, минимальная стоимость, низкое энергопотребление) пользователь может выбрать конкретную конфигурацию системы тактирования, наилучшим образом подходящую для его случая. Кроме того, предусмотрена функция переключения источников тактирования «на лету». Это позволяет для каждого режима работы системы обеспечить наиболее оптимальное сочетание параметров (например, высокая производительность при цифровой обработке сигналов и низкое энергопотребление в режиме ожидания). Следует также отметить, что с целью уменьшения энергопотребления каждый из генераторов может быть остановлен, при этом останавливается тактирование всех структурных блоков, использующих выходной сигнал этого генератора.
Минимизация энергопотребления достигается не только за счет гибкого использования различных конфигураций системы тактирования. МК C8051F41x поддерживают также различные режимы электропитания: Active, Idle, Suspend и Stop (табл. 1). Общий ток потребления в каждом из этих режимов определяется конкретным набором включенных/отключенных модулей, поэтому с целью минимизации потребляемой мощности рекомендуется
всегда отключать неиспользуемые периферийные модули и тактовые генераторы. Для перехода из режимов пониженного потребления обратно в активный режим могут использоваться не только различные типы сброса, но также прерывания и события пробуждения. Это позволяет исключить практически все холостые циклы тактирования.
Таким образом, в МК C8051F41x реализован достаточно гибкий механизм управления энергопотреблением, позволяющий создавать очень эффективные системы. Используя различные режимы электропитания, меняя «на лету» источники тактирования и включая/отключая по мере необходимости периферийные модули, можно объединить в одном устройстве высокопроизводительные функции и низкое энергопотребление, что имеет огромное значение в условиях постоянно растущих требований к вычислительным возможностям портативных устройств.
Организация памяти
В МК C8051F41x доступны три типа памяти (рис. 2).
• Внутренняя Flash-память объемом 32 кбайт ^805^410/1) или 16 кбайт ^805^412/3).
• Внутреннее ОЗУ данных SRAM объемом 256 байт, отображенное в адресном пространстве внутренней памяти данных.
• Внутреннее ОЗУ данных XRAM объемом 2048 байт, отображенное в адресном пространстве внешней памяти данных. Встроенная Flash-память отображена в пространстве памяти программ и может использоваться как для хранения программного кода, так и для хранения данных. Возможно
ПАМЯТЬ ПРОГРАММ/ДАННЫХ (Flash)
Т410/1
ПАМЯТЬ ДАННЫХ (SRAM) Адресное пространство внутренней памяти данных
0x7 Е00 ЗАРЕЗЕРВИРОВАНО OxFF Старшие 128 байт SRAM (только косвенная Регистры специального назначения (только
0x7 DFF 0x80 адресация) прямая адресация)
32 кбайт Flash 0x7 F 0x30 (Память, доступная в режиме прямой и косвенной адресации) Ч Младшие 128 байт к БРАМ
(Возможно внутрисистемное 0x2F 0x20 Память с битовой адресацией ' (доступны в режиме прямой и косвенной адресации)
программирование секторами по 512 байт) 0x1 F 0x00 Регистры общего назначения /
0x0000 ПАМЯТЬ ДАННЫХ (ХРАМ)
Адресное пространство внешней памяти данных
‘F412/3 OxFFFF
0x4000 RESERVED Тот же самый 2048-байтный блок памяти ХРАМ (0x0000—0x0 7 ЕЕ), отображенный во всем диапазоне 64-кбайтной внешней памяти данных в виде 2048-байтных блоков
0x3FFF 16 кбайт Flash 0x0800
(Возможно 0x07FF
внутрисистемное
программирование секторами по 512 байт) XRAM - 2048 байт (Для доступа используется команда MOVX)
0x0000 0x0000
Рис. 2. Структура памяти C8051F41x
программное стирание и/или программирование памяти во время работы приложения, что значительно повышает гибкость использования микроконтроллера. Реализованы функции защиты флэш-памяти, которые позволяют не только защитить ее от случайного изменения со стороны программы, но и исключают возможность просмотра программного кода, являющегося объектом интеллектуальной собственности.
Так как время доступа к Flash-памяти составляет 40 нс, а минимальное время выполнения команды равно 20 нс (при SYSCLK = 50 МГц), то для выполнения программного кода без задержек в МК C8051F41x реализован двухбайтный механизм упреждающей выборки. Этот механизм считывает инструкции из Flash-памяти по два байта за раз и передает их для выполнения процессорному ядру CIP-51. Благодаря этому линейный программный код (то есть без каких-либо переходов и ветвлений) исполняется без задержек. Если встречается программный переход, то процессор может остановиться на время до двух тактовых циклов, пока следующий набор команд (кодов) не будет извлечен из Flash-памяти.
Внутренняя память данных организована достаточно оригинально. На старшие 128 адресов пространства внутренней памяти данных отображены два физически реализованных блока памяти (рис. 2): команды, использующие косвенную адресацию, обращаются к старшим 128 байтам памяти SRAM, а команды, использующие прямую адресацию, обращаются к регистрам специального назначения. Младшие 128 адресов пространства памяти данных используются только для памяти
SRAM в полном соответствии с архитектурой MCS-51™: доступ к младшим 128 байтам памяти SRAM возможен в прямом и косвенном режимах адресации, самые младшие 32 байта разбиты на четыре банка регистров общего назначения, следующие 16 байт могут адресоваться побитно как 128 битовых флагов.
В архитектуре MCS-51™ для работы с внутренней памятью данных используются 8-разрядные адреса, поэтому в пространстве внутренней памяти данных нельзя отобразить (одновременно) более 256 байт физически реализованной памяти, что явно недостаточно для современных приложений. Обычно в случае нехватки адресного пространства используются более сложные режимы адресации (например, через индексные регистры, страничная адресация). Компания Silicon Labs пошла несколько иным путем: дополнительное ОЗУ объемом 2048 байт отображено в адресном пространстве внешней памяти данных (XRAM — eXtemal RAM), хотя физически интегрировано внутри МК. Доступ к этой памяти осуществляется только с помощью команд MOVX, а значит, только через аккумулятор. Это следует иметь в виду при разработке приложений, критичных к скорости работы подсистемы памяти. МК C8015F41x не позволяют использовать действительно внешние устройства памяти (так как отсутствует интерфейс внешней памяти, как в некоторых других микроконтроллерах SiLabs), поэтому оставшиеся адреса пространства внешней памяти не резервируются, а разбиты на страницы размером по 2 кбайт, каждая из которых указывает на все тот же блок памяти XRAM. В некоторых случаях это позволяет
упростить процесс переноса программного обеспечения с одной версии МК на другую.
Кроме рассмотренных устройств памяти есть еще резервное ОЗУ модуля smaRTClock, но подробнее о нем будет рассказано далее в разделе, посвященном описанию цифровых модулей (см. ниже).
Аналоговые периферийные модули
Из всей аналоговой периферии МК C8051F41x наибольший интерес представляет модуль АЦП. Рассмотрим его поподробнее. Модуль АЦП обеспечивает производительность до 200 тыс. преобразований в секунду и содержит следующие основные блоки (рис. 3): входной 27-канальный аналоговый мультиплексор, схему выборки-хранения, непосредственно АЦП с 12-разрядным регистром последовательного приближения, программируемый детектор диапазона. Кроме того, в состав модуля АЦП входит специальная логика, обеспечивающая поддержку пакетного режима функционирования. Этот режим впервые реализован в МК SiLabs и позволяет автоматически (без вмешательства CPU) включать АЦП, производить одно или несколько преобразований, а затем снова отключать АЦП. Еще одна новинка — аппаратный аккумулятор-накопитель. Он позволяет автоматически накапливать (суммировать) до 16 результатов преобразований, причем как в нормальном режиме функционирования, так и в пакетном. Принцип управления модулем АЦП остался прежним — выбор режимов преобразования и условий запуска, настройка аналогового мультиплексора и детектора диапазона осуществляются программно с помощью регистров специального назначения.
Аналоговый мультиплексор позволяет измерять не только напряжения на любом порту ввода/вывода, но и уровни VDD и GND, а также выходной сигнал встроенного датчика температуры. Запуск преобразования может быть инициирован одним из четырех способов: программно путем установки соответствующего бита, переполнением таймера 2, переполнением таймера 3 или по фронту внешнего входного сигнала. Для тактирования АЦП используется либо сигнал, производный от SYSCLK (в нормальном режиме работы), либо выходной сигнал специального независимого генератора (в пакетном режиме).
Пакетный режим позволяет существенно уменьшить мощность, потребляемую модулем АЦП. В этом режиме по сигналу запуска преобразования АЦП «пробуждается» из режима пониженного энергопотребления, накапливает до 16 выборок, используя тактовый сигнал внутреннего генератора (приблизительно 25 МГц) и затем снова переходит в режим пониженного энергопотребления. Так как сигнал тактирования АЦП никак не связан с SYSCLK, то в пакетном режиме модуль АЦП может выполнить несколько
РО.О
Р2.ГЕ
х х х х х
ADC0TK
со f\j - о
г S г Ї Е
о о о о
§ 9 § 9 < < < <
ADCOCN
9 o' о о о о
< z> < g
< < <
VDD
Датчик
температуры
- Установка бита AD0BUSY
- Переполнение Таймера 3
- Вход CNVSTR
- Переполнение Таймера 2
ТГ со сч о о 1
W из (Л со а. о. IADC0LTH 11ADC0LTL 1
а О О а о о о
< < < < < < < 1 '
ADC0CF |adcogt h||adcogt l|
Детектор
диапазона
Рис. 3. Структурная схема АЦП
преобразований и затем отключиться даже в течение одного системного тактового цикла или при отключенном сигнале SYSCLK.
МК C8051F41x, как и большинство других микроконтроллеров SiLabs с модулем АЦП, содержат программируемый детектор диапазона. Он уведомляет систему с помощью прерывания при обнаружении соответствия (или несоответствия) результата преобразования заданному диапазону значений. Это особенно эффективно в управляемых прерываниями системах, так как позволяет уменьшить объем кода и улучшить производительность при одновременном уменьшении времени реакции системы.
В качестве источника опорного напряжения для АЦП можно использовать либо напряжение питания VDD, либо внешний источник опорного напряжения, либо внутренний стабилизатор напряжения с выходом 1,5 или 2,2 В. Кроме того, выходное напряжение внутреннего стабилизатора может быть выведено на внешний вывод и использоваться внешними схемами (с током нагрузки до 200 мкА).
Для обратного (цифро-аналогового) преобразования в структуре МК C8051F41x реализованы два 12-разрядных ЦАП с токовым выходом. Максимальное значение выходного тока может быть выбрано из следующего ряда: 0,25; 0,5; 1; 2 мА. Как и большинство микроконтроллеров SiLabs, данные ЦАП поддерживают индивидуальное включение/отключение, форматирование входных данных, запуск по переполнению таймеров, по фронту внешнего сигнала или программный запуск. Единственное нововведение — выходы обоих ЦАП можно объединить.
Еще один важный компонент аналоговой подсистемы — компараторы напряжения.
МК C8051F41x содержат два компаратора. К положительному и отрицательному входам этих компараторов подключены 12-канальные аналоговые мультиплексоры, посредством которых можно выбрать любой внешний порт МК. Каждый компаратор поддерживает следующий набор функций:
• программируемые петля гистерезиса и время срабатывания;
• высокоскоростной и низкоскоростной режимы работы (отличаются временем срабатывания и мощностью потребления);
• синхронный и асинхронный (доступен даже в режимах Stop и Suspend) выходы;
• программный опрос состояния выхода;
• генерация прерываний (как по переднему, так и по заднему фронту выходного сигнала компаратора).
Прерывания от компараторов могут «пробуждать» внутренний тактовый генератор из режима пониженного энергопотребления (Suspend). Кроме того, один из компараторов может использоваться в качестве источника сброса.
О системе сброса МК C8051F41x следует сказать несколько слов отдельно, так как она является одной из самых развитых в этом классе устройств. Кроме компаратора и включения питания системный сброс может быть инициирован программно (с помощью установки соответствующего бита), а также внешним сигналом, детектором исчезновения сигнала тактирования (если уровень сигнала SYSCLK остается неизменным в течение более 100 мкс), сторожевым таймером, контроллером Flash-памяти (в случае некорректного обращения к Flash-памяти), модулем smaRTClock, монитором питания (при понижении напряжения
ниже определенного уровня). При сбросе от монитора питания активный сигнал сброса появляется также на внешнем выводе МК. Это позволяет обеспечить синхронный сброс внешних систем в случае критического снижения питающего напряжения.
Цифровые периферийные модули
Прежде необходимо отметить модуль, который впервые появился в структуре МК — smaRTQock. Подробнее с возможностями и работой этого модуля, а также с его структурной схемой можно ознакомиться в [3].
Кроме модуля smaRTQock также впервые в структуре МК C8051F41x появился модуль аппаратного вычисления контрольной суммы CRC0, исчерпывающее описание которого также можно найти в работе [3].
Остальные цифровые модули являются типичными для микроконтроллеров SiLabs и присутствуют практически во всех выпускаемых модификациях МК. К ним относятся порты ввода/вывода с коммутирующей матрицей, последовательные интерфейсы, таймеры/счетчики и программируемый массив счетчиков. Рассмотрим кратко их особенности.
По количеству портов ввода/вывода (24 или 20) МК C8051F41x являются далеко не лидерами в своем классе устройств. Однако возможности портов поистине уникальны:
• каждый порт может функционировать в режиме цифрового или аналогового входа;
• выходной драйвер каждого порта можно настроить как обычный цифровой выход или как выход с открытым стоком;
• каждый порт имеет слаботоковую подтяжку, подключаемую/отключаемую программно;
• порты P0.x совместимы с 5 В КМОП-логи-кой;
• порты P0.x и P1.x могут генерировать прерывания при изменении логического уровня сигнала на входе. Эти прерывания могут вывести МК из режима Suspend и позволяют реализовать, например, простой интерфейс обслуживания клавиатуры с выходом из режима пониженного энергопотребления по нажатию клавиш.
Кроме того, с помощью коммутирующей матрицы порты ввода/вывода могут быть назначены различным внутренним ресурсам МК, при этом разработчик имеет полную свободу выбора комбинации внутренних ресурсов, ограничиваясь лишь количеством доступных внешних портов. Такую гибкость обеспечивает использование приоритетного декодера матрицы, управление которым осуществляется полностью программно.
При небольшом количестве портов ввода/вывода расширить возможности взаимодействия МК с внешними системами можно с помощью встроенных последовательных интерфейсов. МК C8051F41x содержат три аппаратно реализованных последовательных интерфейса: SMBus (PC-совместимый), SPI и UART. Все они полностью поддерживают соответствующие стандарты и способны работать одновременно, то есть не используют совместно никаких общих ресурсов. В дополнение к стандартным возможностям реализованы некоторые расширенные функции, например, усовершенствованный генератор скорости передачи данных UART, двойная буферизация принимаемых данных [1]. Все последовательные интерфейсы широко используют прерывания, требуя лишь незначительного вмешательства со стороны CPU.
Значительная роль в структуре МК SiLabs отводится таймерам. Они используются не только самостоятельно как таймеры/счетчики общего назначения, но и совместно с другими периферийными модулями, например, последовательными интерфейсами для генерации скорости передачи данных, отсчета таймаутов, или модулем АЦП для запуска преобразования. МК C8051F41x содержат четыре 16-разрядных таймера: два из них представляют собой 8051-совместимые таймеры/счетчики, а другие два поддерживают режим автоперезагрузки и обеспечивают реализацию более широкого набора функций. Все таймеры управляются программно, независимо друг от друга, и способны генерировать прерывания. В МК C8051F41x впервые для таймеров 2 и 3 реализован режим захвата, позволяющий измерить точную частоту генератора smaRTClock или внешнего генератора. Кроме того, частоты этих генераторов можно сравнить между собой.
Для расширения таймерных функций в структуру МК C8051F41x интегрирован программируемый массив счетчиков (ПМС). В состав ПМС входят выделенный 16-разряд-
ный таймер/счетчик и шесть модулей захвата/сравнения, каждый из которых имеет свою собственную линию ввода/вывода (которая через матрицу разводится на внешний порт ввода/вывода) и может работать в одном из следующих режимов.
1. Захват по фронту внешнего сигнала. Значение таймера ПМС захватывается по активному (положительному, отрицательному или по обоим) фронту сигнала на внешнем выводе МК.
2. Программный таймер. Значение таймера ПМС сравнивается со значением регистра захвата и в момент совпадения генерируется запрос прерывания.
3. Высокоскоростной выход. В момент совпадения значения таймера ПМС и значения регистра захвата логический уровень выходного сигнала на внешнем порту будет инвертироваться.
4. Выход заданной частоты. На внешнем порту генерируется сигнал прямоугольной формы с программируемой частотой.
5. 8-разрядный ШИМ. На внешнем порту генерируется сигнал с широтно-импульсной модуляцией (минимальная скважность составляет 0,39%).
6. 16-разрядный ШИМ. На внешнем порту генерируется сигнал с широтно-импульсной модуляцией (минимальная скважность составляет 0,0015%).
Кроме того, один из модулей захвата/сравнения ПМС можно использовать в режиме программируемого сторожевого таймера.
Отладочные средства для МК C8051F41x
После знакомства с микроконтроллерами C8051F41x перейдем к знакомству с программно-аппаратными средствами разработки и отладки приложений на их основе. Компания Silicon Laboratories уделяет большое внимание технической поддержке своих продуктов. Для всех микроконтроллеров выпускаются специальные отладочные комплекты, которые позволяют разрабатывать, конфигурировать, конструировать, тестировать и отлаживать любые разработки с использованием МК SiLabs, не нуждаясь в каких-либо дополнительных средствах. С помощью этих комплектов можно быстро ознакомиться с возможностями новых МК и приступить к самостоятельной работе с ними.
Для ознакомления с МК C8051F41x предлагается отладочный комплект C8051F410DK, в состав которого входит макетная плата с установленным МК C8051F410, сетевой блок питания (AC/DC-адаптер) и отладочный USB-адаптер с USB-кабелем. Схема соединения данных компонентов и подключения их к PC приведена на рис. 4.
С отладочным комплектом C8051F410DK поставляется CD-диск со следующим содержимым.
• Интегрированная среда разработки Silicon Laboratories IDE.
• Оценочная версия инструментария Keil C51 (ассемблер, линкер и Си-компилятор). Оценочная версия отличается от профессиональной лишь ограничением максимального размера объектного кода (4 кбайт) и отсутствием библиотеки функций для операций с плавающей запятой.
• Примеры исходного кода.
• Файлы описания регистров.
• Документация.
Ориентировочная стоимость C8051F410DK составляет примерно $130. В качестве более дешевой альтернативы предлагается недорогой (около $40) оценочный комплект C8051F411EK, который включает в себя демонстрационную плату с установленным МК C8051F411, компакт-диск с программными средствами, USB-кабель и две батареи питания. На демонстрационной плате кроме микроконтроллера размещены четыре кнопки, ЖК-индикатор, держатель для батарей питания, переключатель питания и USB-интерфейс, с помощью которого плата соединяется непосредственно с PC. Через этот же интерфейс плата может получать питание; в этом случае от использования батарей можно отказаться.
Демонстрационная программа, поставляемая с комплектом C8051F411EK, позволяет оценить наиболее значимые характеристики нового семейства C8051F41x — высокую производительность, низкое энергопотребление, расширенный диапазон питающих напряжений, экономичный модуль RTC.
Reference Design
Помимо выпуска аппаратно-программных средств проектирования компания Silicon Laboratories активно занимается информационно-технической поддержкой разработчиков. На официальном сайте компании
Таблица 2. Сравнительные характеристики МК с интегрированным модулем RTC
Параметр Условия C8051F410 SiLabs Atmega128 Atmel DS87C530 Dallas P89LPC930 Philips HT46R62 Holtek
Максимальная производительность F ери = max 50 MIPS 16 MIPS 8,25 MIPS 6 MIPS 2 MIPS
Fcpu = max, вся периферия активна 13,5 мА (Vdd = 2,5 В) 13 мА (Vdd = 2,7 В) 36 мА (Vdd = 5 В) 18 мА (Vdd = 3,6 В) 8 мА (Vdd = 5 В)
Fcpu = 1 МГц 0,43 мА (Vdd = 2,5 В) 1,3 мА (Vdd = 2,7 В) 5,3 мА (Vdd = 5 В) нет данных нет данных
Ток потребления F CPU = 32 кГц 17 мкА (Vdd = 2,5 В) 80 мкА (Vdd = 2,7 В) нет данных нет данных < ^ > В)
Режим Shutdown, вся периферия отключена 0,15 мкА (Vdd = 2,5 В) 10 мкА (Vdd = 3 В) 1 мкА (Vdd = 5 В) 1 мкА (Vdd = 3,6 В) 2 мкА (<dd = 5 В)
Активен только модуль RTC 0,7 мкА (Vdd= 1,5 В) нет данных 0,5 мкА (Vdd = 3,3 В) 1-5 мкА (Vdd = 3,6 В) нет данных
ПЗУ 32 кб 128 кб 16 кб 8 кб 2 к х 14
ОЗУ 2304 байт 4 кб 1256 байт 256 байт 88 байт
Интерфейс внешней памяти - - -
АЦП 12-разр. 10-разр. - - 9-разр.
ЦАП - - - -
Компараторы - 2 -
иАРТ 1 -
БМВив (!2С) - 1 -
БР! - 1 -
Таймеры 4 + ПМС 2 1
Драйвер ЖКИ - - - •
WDT 1 1 1 1 1
Тип корпуса LQFP-32 QFN-28 TQFP-64 MLF-64 PLCC-52 TQFP-52 TSSOP-28 SSOP-56
доступна для бесплатного скачивания подробная документация на все МК и отладочные комплекты. Кроме того, там же выложены примеры приложений и описания готовых проектов с программными кодами, призванные помочь разработчикам в освоении новых семейств МК и облегчить разработку собственных приложений.
В частности, в разделе Reference Designs [2] имеется проект цифрового диктофона (VOICE-RECORD-RD) на основе МК C8051F411, который включает полное описание, схемотехническую документацию и программное обеспечение. Этот проект демонстрирует все возможности использования C8051F411 в голосовых приложениях. Разработанное устройство использует дифференциальную импульсно-кодовую модуляцию (ДИКМ) для преобразования 12-битных голосовых выборок в 6-битные при частоте выборки 8 кГц. Такое сжатие позволяет сохранять четыре выборки АЦП в трех байтах памяти и обеспечивает воспроизведение практически без ухудшения качественных показателей (на уровне телефонных систем). Для улучшения качества используются пакетный режим и возможность накопления результатов преобразования, реализованные в модуле АЦП. В состоянии простоя с целью минимизации энергопотребления МК переходит в режим Suspend и выходит из него при нажатии на кнопки «Запись/Воспроизведение» или «Стирание».
В рамках данной статьи невозможно описать все проекты, предлагаемые Silicon Laboratories в качестве Reference Designs. Перечислим лишь некоторые наиболее интересные разработки, представленные на сайте SiLabs.
• Цифровой компас на базе C8051F350, магниторезистивных чувствительных элементов и двуосного акселерометра.
• Беспроводной голосовой трансивер на базе C8051F330, реализующий протокол быст-
рого сжатия и восстановления голосовых данных.
• Декодер DTMF на базе C8051F300.
• USB-накопитель на базе C8051F340DK, осуществляющий чтение/запись данных на SD-, MMC- и CF-карты памяти.
• USB-FM радиоприемник на базе высокопроизводительного МК C8051F321 с USB-интерфейсом и однокристального FM-радиоприемника Si4701.
• Устройство считывания кода с магнитных полосок на базе C8051F330.
• Контроллер шагового двигателя на базе C8051F301.
• Встраиваемый Ethernet-контроллер на базе C8051F120 и CP2200.
• Встраиваемый модем на базе C8051F120 и Si2457.
• RTC с температурной стабилизацией на базе C8051F300.
Заключение
В настоящее время в сегменте 8-разрядных МК есть три конкурирующие друг с другом архитектуры: это семейства х51, PIC и AVR-микроконтроллеров. Каждое из них имеет свои сильные и слабые стороны и содержит огромное количество модификаций с самыми различными сочетаниями параметров, покрывающие практически весь спектр возможных приложений. Рассуждать о том, какое семейство лучше, а какое хуже, можно бесконечно. Все они призваны решать схожие задачи, и оптимальный выбор зависит от специфики конкретного приложения, а зачастую определяется пристрастиями конкретного разработчика. Поэтому новые МК C8051F41x будут интересны прежде всего тем производителям, которые уже имеют опыт работы с 8051-совместимы-ми микроконтроллерами, так как позволяют использовать накопленные годами наработки
(как программные, так и аппаратные) и существенно уменьшить себестоимость проекта и сроки выхода его на рынок.
Однако уникальный набор характеристик нового семейства может склонить и приверженцев других архитектур к использованию данных МК в своих разработках. Немаловажное значение при этом имеет тот факт, что архитектура 8051 знакома практически всем разработчикам и не требует никаких усилий в освоении — все когда-то с нее начинали. А простота отладки (прямо на готовой плате, без использования эмуляторов, отладочных кристаллов, специальных кабелей и разъемов) окончательно должна убедить производителей электронной аппаратуры в необходимости перехода на МК семейства С8051Б41х.
В таблице 2 приведено сравнение МК С8051Б41х с аналогичными по типу и назначению устройствами других компаний. Мы взяли несколько микроконтроллеров различной архитектуры (со встроенным модулем RTC) и сопоставили их по некоторым, наиболее значимым параметрам — производительности, энергопотреблению, набору встроенной периферии, корпусному исполнению. Данное сравнение весьма условно и ни в коем случае не говорит о преимуществах одних МК перед другими. Каждый МК имеет огромную массу особенностей, которые в итоге и определяют степень его пригодности для реализации того или иного приложения.
На основе изложенного материала можно заключить, что наилучшим образом эти МК подходят для тех приложений, которые связаны с ведением календаря, учетом времени суток или просто отсчетом реального времени: управление освещением, уличным движением (светофорами), тепличным хозяйством, инкубаторы, нагревательные установки, медицинское оборудование, системы регистрации, приборы учета (например, двухтарифные счетчики электроэнергии) и т. п. Расширенный диапазон напряжения питания и режимы пониженного энергопотребления делают данные МК весьма привлекательным решением для современных мобильных приложений и устройств с автономным питанием, так как способны обеспечить реализацию достаточно высокопроизводительных функций при длительном сохранении работоспособности системы (практически до полного разряда аккумулятора или батареи). ■
Литература
1. Ы tp:/ М ww .silabs.c om/public/documents/ tpub_doc/dsheet/MkrocontroПers/ 8таП_Богт_Бас:ог/ en/C8051F41x.pdf
2. Ы :р:/ М ww .silabs.com/tgwW еЬАрр/риЫк/ web_content/products/Microcontrollers/en/ mcu_applications_refdesign.h :т
3. Родионов М. Новые компоненты 81ЬаЬ для 8-разрядных встраиваемых систем // Компоненты и технологии. 2006. № 6.