32-разрядные микроконтроллеры AT91SAM7S с интерфейсом USB производства компании Atmel
Данный обзор посвящен новинке на рынке микроконтроллеров - 32-разрядным кристаллам AT91SAM7S семейства SmartARM.
До конца 2004 года компанией Atmel выпускалось более 10 наименований 32-разрядных микроконтроллеров, построенных на базе ядер ARM7TDMI и ARM920T. Наличие высокопроизводительного ядра и развитой периферии, достаточных для выполнения широкого круга задач, тем не менее, не способствовало широкому распространению этих кристаллов. Причины были разные: либо отсутствие интегрированной на кристалл оперативной и Flash-памяти, либо недостаточная пропускная способность шины внешней памяти данных и программ, либо неудобные для пайки "вручную" BGA-корпуса. Для некоторых разработчиков "барьером" была высокая стоимость средств разработки и отсутствие базовых примеров программ.
В 2004 году компания Atmel объявила о развитии нового направления 32-разрядных платформ, в которое были заложены следующие основные особенности (рис.1):
- высокопроизводительное 32-разрядное ядро ARM7TDMI;
- внутренняя Flash-память на 32-разрядной системной шине;
- внутреннее ОЗУ на 32-разрядной системной шине;
- доступные ручной пайки корпуса (TQFP);
- дешевые средства разработки и программирования.
Рис. 1. Упрощенная схема архитектуры микроконтроллеров SmartARM
Семейство микроконтроллеров этого направления было названо SmartARM (префикс в наименовании микросхем - AT91SAM7). В начале 2005 года начали появляться первые представители этого семейства - микроконтроллеры линейки AT91SAM7S с интерфейсом USB и AT91SAM7A (SAM7A1 и SAM7A2) с интерфейсом CAN. До конца 2005 года ожидается появление еще одной линейки - с интерфейсом Ethernet (AT91SAM7X) (табл.1).
Таблица 1. 32-разрядные микроконтроллеры SmartARM (AT91)
Первые микроконтроллеры линейки AT91SAM7A (AT91SAM7A1 и AT91SAM7A2) не содержат Flash-памяти, поэтому до появления микроконтроллера AT91SAM7A3 не вызывали большого интереса у разработчиков.
С микроконтроллерами серии AT91SAM7S получилась обратная ситуация: еще не успев начать серийный выпуск микросхем, компания Atmel получила очень много заказов на эти микроконтроллеры, а первые серийные партии были раскуплены до прихода на склад поставщиков. На сегодняшний день можно сказать, что серийный выпуск AT91SAM7S состоялся, и их можно смело закладывать в новые проекты.
Микроконтроллеры серии AT91SAM7S с интерфейсом USB
Микроконтроллеры серии AT91SAM7S разработаны под любую задачу, где требуется привычный набор возможностей микроконтроллера, но либо производительности 8-разрядной платформы уже не хватает, либо требуется заложить большой запас производительности на будущее.
Основные особенности:
- выпускаются в корпусах TQFP с небольшим (44, 64) количеством выводов;
- имеют интегрированный контроллер интерфейса USB 2.0 (full speed);
- стоимость сопоставима с 8-разрядными микроконтроллерами;
- поддержаны недорогими средствами разработки и примерами программ.
Таким образом, находясь в одинаковой ценовой группе с большинством 8-разрядных микроконтроллеров, 32-разрядные микроконтроллеры AT91SAM7S позволяют выполнять более широкий круг задач.
Если сравнивать с прочими 32-разрядными микроконтроллерами, предназначенными для аналогичной области применения, можно выделить высокую интеграцию блоков и компонентов на кристаллах AT91SAM7S. Примером показателя высокой интеграции является тот факт, что для "обвязки" микроконтроллера достаточно всего 20 внешних компонентов:
- стабилизатор на 3.3 Вольта;
- 2 конденсатора и 1 резистор для фильтра ФАПЧ;
- 2 конденсатора и 1 кварц для высокочастотного тактового генератора;
- 13 развязывающих конденсаторов.
Рис. 2. Функциональные блоки микроконтроллеров AT91SAM7S
Рассмотрим организацию и характеристики основных блоков AT91SAM7S (рис.2).
Flash-память
AT91SAM7S снабжен контроллером Flash-памяти, который выполняет следующие функции:
- обеспечивает работу ядра с Flash-памятью;
- позволяет увеличить производительность процессорного ядра при использовании 16-разрядного набора команд Thumb;
- осуществляет функции чтения и записи данных во Flash-память, установки и снятия битов защиты блоков памяти от случайного и несанкционированного чтения и записи.
Корпорации Atmel пока что не удалось достичь высокого быстродействия Flash-памяти. На сегодняшний день, быстродействие Flash-памяти является единственным "узким" местом на кристалле. Для решения этого недостатка производитель выработал рекомендации по увеличению производительности:
- При выполнении из Flash-памяти программы, содержащей в основном 32-разрядные команды набора ARM, максимальной производительности можно достичь на тактовой частоте 30 МГц:
- до 27 MIPS с использованием набора команд ARM;
- до 21 MIPS c использованием набора команд Thumb.
- При выполнении из Flash-памяти программы, содержащей в основном 16-разрядные команды набора Thumb, максимальной производительности можно достичь на тактовой частоте 50 МГц, но для этого необходимо использовать встроенную функцию кэширования второй 16-разрядной команды, полученной в результате чтения 32-разрядного слова. В результате, при выполнении второй команды образуется дополнительный цикл ожидания, позволяющий без программных задержек считывать данные из Flash-памяти. При использовании набора команд ARM необходимо программно добавлять цикл задержки. Этот способ позволяет получить следующие результаты:
- до 24 MIPS с использованием набора команд ARM;
- до 38 MIPS c использованием набора команд Thumb.
- Максимальной производительности (50 MIPS) можно достичь, если дать команду процессору выполнять программу из ОЗУ, предварительно её туда загрузив.
С точки зрения структуры содержимого, Flash-память микроконтроллеров разбита на страницы по 128 Байт и зоны по 4кБайта. Чтение данных можно производить по словам, а запись - постранично.
Записанная во Flash-память программа может быть защищена от несанкционированного считывания или случайного стирания установкой Lock-битов, которые осуществляют защиту памяти по зонам. Этим процессом управляет контроллер Flash-памяти, который хранит данные для каждой зоны (например, объем Flash-памяти 64 кБайта разбит на 16 зон, для каждой из которых можно установить индивидуальный бит защиты).
Функции стирания данных в незащищенной зоне можно производить постранично, после чего можно производить запись данных (время выполнения процедуры стирания/записи - 2мс/стр.). Также поддерживается функция полного стирания всего содержимого Flash-памяти (выполняется за 10 мс).
С целью защиты интеллектуальной собственности - данных во Flash-памяти - предусмотрена функция запрета доступа к Flash-памяти (на чтение и запись) из "внешнего мира" по интерфейсам внутрисхемного программирования и интерфейсу FFPI (Fast Flash Programming Interface). Для этого предназначен Security Fuse бит, после установки которого доступ к содержимому Flash-памяти по интерфейсам внутрисхемного программирования и интерфейсу FFPI можно будет осуществить только после полного стирания данных с использованием внешнего вывода Erase.
С точки зрения записи программы во Flash-память, существует несколько вариантов:
- Параллельный режим программирования по интерфейсу FFPI с использованием параллельных (gang) программаторов;
- Внутрисхемный последовательный режим программирования по интерфейсу JTAG с использованием внутрисхемных программаторов;
- Внутрисхемный последовательный режим программирования с использованием имеющихся на кристалле интерфейсов USB либо DBGU (DeBuG Unit - UART с усеченными возможностями). В этом режиме принимает участие загрузчик SAM-BA, который позволяет производить запись программы внутрисхемно без использования программатора.
Периферийный контроллер прямого доступа к памяти (PDC).
Для обмена данными между оперативной памятью и периферией в микроконтроллеры AT91SAM7S включен периферийный контроллер PDC (Peripheral Data Controller), задача которого заключается в организации обмена данными между памятью и периферией без участия ядра микроконтроллера. Основные преимущества такой реализации заключаются в высвобождении вычислительных ресурсов микроконтроллера с возможностью организации непрерывной передачи данных, не прекращающейся при возникновении прерываний в системе и при остановке процессорного ядра.
Для организации обмена данными с имеющейся на кристалле периферией контроллер PDC имеет каналы для каждого периферийного узла. Для управления процессами передачи каждый периферийный узел содержит регистры контроллера PDC:
- автоинкрементируемый 32-битный указатель на текущий адрес памяти;
- автодекрементируемый 16-битный счетчик объема данных на передачу (максимальный объем передаваемых данных за одну сессию 64 кБайта);
- автоинкрементируемый 32-битный указатель на адрес памяти для следующего этапа передачи данных;
- автодекрементируемый 16-битный счетчик объема данных, необходимых для передачи на следующем этапе.
Контроллер позволяет организовать обмен данными блоками по 8, 16 или 32 бита.
Коммуникационные последовательные интерфейсы
Для обмена данными с внешними устройствами в микроконтроллере предусмотрено 6 различных интерфейсов (рис.3).
Рис. 3. Функциональные блоки микроконтроллеров AT91SAM7S
Следует отметить, что для обмена данными в AT91SAM7S предусмотрено два USART, обеспеченных линиями квитирования для гибкого контроля процесса передачи данных, а для вывода отладочной информации предусмотрен дополнительный UART (DBGU). Скорость обмена данными по USART достигает 30 Мбит/с в синхронном режиме и 6.87Мбит/с - в асинхронном.
Таблица 2. Поддерживаемые режимы работы UART
Параметр |
Значение |
Бит данных |
5, 6, 7, 8 или 9 |
Стоповые биты |
1, 1.5 или 2 |
Выбор порядка битов в байте (MSB/LSB) |
Да |
Контроль четности |
Odd, Even, None, Mark, Space |
Контроль ошибок |
Parity, Framing, Overrun, Break detection |
Буферизация |
С использованием PDC (до 64кБайт) |
Интерфейс SPI в микроконтроллерах AT91SAM7S может работать в двух режимах (master и slave), обеспечивая передачу данных на скоростях до 30 Мбит/с.
В отличие от традиционных 32-разрядных микроконтроллеров, у AT91SAM7S интерфейс SPI снабжен 4-мя линиями Chip Select, что позволяет организовать обмен данными в режиме master с 4-мя внешними устройствами, с каждым из которых микроконтроллер может устанавливать связь на заданной скорости и осуществлять обмен данными блоками по 8 или 16 бит.
Как и прочая периферия, интерфейс SPI может работать под управлением контроллера PDC.
Интерфейс USB
Контроллер USB-интерфейса микроконтроллеров AT91SAM7S содержит интегрированный приемопередатчик, соответствующий спецификации шины USB 2.0 full-speed. Он имеет буфер FIFO объемом 328 Байт и поддерживает организацию четырех каналов передачи данных, два из которых могут работать в режимах bulk, interrupt и control, а два других - bulk, isochronous и control.
Для работы интерфейса USB используется единая (с ядром) схема генерации и распределения тактового сигнала, что позволяет использовать один кварц для ядра и USB.
Как было сказано выше, микроконтроллерам AT91SAM7S характерна высокая степень интеграции, и еще одним показателем этого служит схема включения USB, требующая всего 6 внешних элементов (рис. 4,5).
Рис. 4. Схема включения интерфейса USB
Рис. 5. Набор внешних элементов для подключения USB-интерфейса микроконтроллера
Помимо выполнения функции обмена данными, интерфейс USB можно использовать и для питания микроконтроллера (а также всего устройства) с целью продления времени работы устройства в автономном режиме.
Аналогово-цифровой преобразователь
Микроконтроллеры AT91SAM7S содержат 8-канальный аналогово-цифровой преобразователь (АЦП), который позволяет работать в двух режимах разрешающей способности - 8 и 10 бит. Максимальная частота дискретизации, обеспечиваемая АЦП, достигает 384 тыс. отсчетов в секунду (ksps). Как и прочая периферия, АЦП поддерживается PDC.
Запуск преобразования может быть осуществлен программно и аппаратно (рис.6).
Рис. 6. Схема запуска преобразования АЦП
По каждому сигналу запуска может выполняться как преобразование сигнала с одного канала (указанного в регистре ADC_CHER), так и последовательное преобразование сигналов с выбранных (указанных в регистре ADC_CHER) каналов. Помимо одиночных преобразований также поддерживается режим непрерывного преобразования сигнала с одного или нескольких каналов.
По окончании каждого преобразования результат может быть считан в заданном формате (рис.7) .
Рис. 7. Схема чтения результата преобразования АЦП
Все процедуры запуска преобразования и чтения результата преобразования АЦП могут также выполняться без участия ядра микроконтроллера под управлением контроллера PDC.
Питание АЦП осуществляется от 3.3-вольтовой линии питания VDDIN, и в момент преобразования ток потребления составляет 1мА. Для снижения энергопотребления в период между преобразованиями в АЦП предусмотрен режим энергосбережения (sleep mode), ток потребления АЦП в котором не превышает 1мкА.
В качестве источника опорного напряжения предполагается использование внешнего источника напряжением от 2.6 В до значения VDDIN.
Широтно-импульсный модулятор (ШИМ, PWM)
Контроллер ШИМ микроконтроллеров AT91SAM7S включает 4 независимых канала для генерации широтно-модулированных сигналов. На каждом канале можно устанавливать независимые значения частоты, скважности и полярности сигнала.
Блок ШИМ можно разбить на 2 части: контроллер блока ШИМ и модули каналов блока ШИМ.
Контроллер блока ШИМ выполняет функцию формирования и распределения набора тактовых сигналов, включающих два независимых тактовых сигнала clkA и clkB, а также набор сигналов равных системной тактовой частоте, деленной на число кратное 2n (где n - целое число 1..10). Каждый из сформированных сигналов может быть использован для работы любого канала ШИМ. Помимо функции распределения тактовой частоты контроллер блока ШИМ выполняет функцию включения и выключения модулей каналов, разрешения и запрещения прерываний от модулей каналов.
Модули каналов ШИМ выполняют выбор источников тактового сигнала, выбор режима работы канала (выравнивание импульсов по левому краю, правому краю и по центру), управление параметрами частоты и скважности сигнала, осуществляют счет импульсов. Для всех модулей каналов блока ШИМ предусмотрен общий регистр (PWM_CUPD), позволяющий производить синхронное изменение формы выходных сигналов в соответствии с новыми установками. Для формирования сигналов на разных каналах без взаимного перекрытия предусмотрена возможность синхронизации выходных сигналов (рис. 8).
Рис. 8. Генерация ШИМ-сигнала без перекрытия на двух каналах
Выходные сигналы ШИМ в режиме PIOA (в микроконтроллере предусмотрено 2 режима включения периферии на внешние выводы - PIOA и PIOB) мультиплексированы с внешними выводами PA0, PA1 и PA2, имеющими удвоенную нагрузочную способность, что позволяет осуществлять подключение внешних цепей с током нагрузки до 16 мА.
Энергопотребление
Параметры энергопотребления в микроконтроллерах AT91SAM7S регулируются встроенным контроллером управления питанием (Power Management Controller, PMC), выполняющем следующие функции:
- распределение тактовой частоты на ядро и периферийные модули;
- управление значениями частот;
- вывод тактовой частоты к внешним блокам (линии PCK).
Главным достоинством контроллера управления питанием является возможность гибкого управления характеристиками энергопотребления при различных конфигурациях рабочей частоты ядра и периферии. В качестве примеров можно привести следующие значения:
- 32 мА - тактовая частота периферии и ядра 55 МГц, вся периферия включена;
- 21 мА - вся периферия остановлена, тактовая частота ядра 55 МГц;
- 11 мА - ядро остановлено, тактовая частота периферии 55 МГц, вся периферия включена;
- 36 мкА - работа от внутреннего RC-генератора на частоте 32 кГц, периферия остановлена;
- 2.7 мкА - Работа от внутреннего RC-генератора на частоте 500 Гц (максимальные значения делителей), периферия остановлена.
Блок управления тактовыми частотами позволяет также выключать неиспользуемую периферию на различные промежутки времени (Рис.9).
Рис. 9. Схема управления и распределение тактовой частоты
Как видно из схемы на рисунке 9, источником тактовой частоты может быть внутренний RC-генератор либо кварцевый генератор. При работе от внутреннего RC-генератора тактовая частота может варьироваться в пределах от 22 до 42 кГц. Для внешнего высокочастотного генератора может быть использован кварцевый резонатор с частотой от 3 до 20 МГц. При использовании кварца с частотой менее 8 МГц необходимо подключить последовательно в цепь XOUT резистор сопротивлением 1 кОм.
Для повышения тактовой частоты (вплоть до 220 МГц), контроллер управления питанием содержит блок ФАПЧ, частота выходного сигнала которого задается параметрами внешнего фильтра (рис.10). Для расчета номиналов элементов фильтра можно использовать программу "PLL Filter Calculator", распространяемую свободно.
Рис. 10. Схема включения внешних элементов фильтра ФАПЧ
Одной из важных возможностей контроллера управления питанием является функция автоматического переключения на работу от RC-генератора как источника тактовой частоты в случае отказа внешнего высокочастотного тактового генератора. Эта функциональность может быть использована, например, для сохранения важной информации и извещения о критической ситуации.
Средства поддержки разработок
Основным стартовым набором для микроконтроллеров AT91SAM7S является набор AT91SAM7S64-IAR, в состав которого входят целевая плата с распаянным микроконтроллером AT91SAM7S64, внутрисхемный эмулятор J-LINK (производство SEGGER Microcontroller Systeme GmbH), 2 кабеля USB (A-B). Также в набор включено программное обеспечение - оценочная версия компилятора IAR (с ограничением на объем генерируемого бинарного кода в 32 кБайта). Набор также содержит CD с документацией, руководствами по применению и примерами программ. Стоимость такого набора составляет 295 долларов.
В качестве альтернативы можно приобрести еще более дешевую версию (~165 долларов) - набор AT91SAM7S-EK, включающий целевую плату с распаянным микроконтроллером AT91SAM7S256, 1 кабель USB (A-B) и диск с документацией. Для начинающих разработчиков рекомендуется использовать AT91SAM7S64-IAR, включающий полный набор необходимого аппаратного и программного обеспечения.
Основой обоих наборов является целевая плата (рис.11), на которую может быть распаян любой кристалл серии AT91SAM7S (есть дополнительная посадочная площадка для микроконтроллера AT91SAM7S32 в корпусе TQFP48).
Рис. 11. Функциональная схема и внешний вид целевой платы стартовых наборов AT91SAM7S64-IAR и AT91SAM7S-EK
Вся система построена таким образом, что запуск платы может быть выполнен за считанные минуты - имеется руководство по быстрому старту (Getting Started), где описана последовательность включения "железа", установки программного обеспечения, запуска демонстрационного проекта.
В качестве основного источника документации предлагается веб-сайт www.at91.com. Сайт регулярно обновляется и пополняется последними версиями документации на кристаллы, содержит описания и руководства на стартовые наборы, руководства по быстрому старту, библиотеки и примеры программ для различных программных средств разработки, программное обеспечение для работы с "железом".
При последующем серийном выпуске изделий на базе AT91SAM7S для программирования Flash-памяти микроконтроллера в системе можно использовать как имеющийся в комплекте внутрисхемный эмулятор J-Link, так и любой другой программатор из списка приведенных на сайте www.at91.com в разделе "Third Party".
Приведенные на сайте программаторы загружают программу в микроконтроллер по интерфейсам JTAG (внутрисхемные программаторы) или FFPI (параллельные программаторы). Можно также обходиться без программаторов, используя имеющийся на кристалле загрузчик SAM-BA (Smart ARM Boot Assistance), описание работы с которым находится на сайте www.at91.com в разделе "Getting Started".
В качестве программных средств разработки корпорация Atmel рекомендует использование компилятора IAR Embedded Workbench (www.iar.com) для написания программ на языках Ассемблер или С. Основными документами, которыми рекомендуется пользоваться при разработке программного обеспечения в среде IAR, являются базовые примеры программ (www.at91.com) и встроенные файлы справки компилятора, включающие практические руководства по использованию средств и инструментариев среды разработки IAR, руководство по эффективному программированию на С, описание системы команд и формата команд ARM-Ассемблера.
Альтернативой компилятору IAR является популярный в среде разработчиков пакет Multi2000 от компании GreenHills (www.ghs.com). Список прочих средств разработки приведен на сайте www.at91.com.
Для решения задач распараллеливания процессов предлагаются операционные системы реального времени. Самой популярной на сегодняшний день является Micrium uC/OS-II (www.micrium.com). Также доступна бесплатная операционная система Open Source FreeRTOS (www.freertos.org).
Заключение
Поддержанные доступным программным обеспечением и недорогими стартовыми наборами, микросхемы семейства SmartARM начинают активно внедряться в новые разработки. Хотя архитектура ARM уже давно была "обкатана" многими производителями, в том числе и Atmel, разработчики ждали чего-то более дешевого и понятного. На сегодняшний день многие из них признают, что ожидания оправдались в микросхемах серии AT91SAM7S производства фирмы Atmel.
Следует отметить, что Atmel планирует и в дальнейшем активно развивать направление SmartARM (рис.12).
Рис. 12. План развития микроконтроллеров SmartARM
Функциональность микроконтроллеров AT91SAM7S будет расширяться введением дополнительных блоков. Так, в ближайшем будущем ожидается выпуск микроконтроллеров с интерфейсом Ethernet. Также планируется выпуск кристаллов с интерфейсом внешней шины (EBI), а в дальнейшем - с драйвером ЖКИ. Что касается микроконтроллеров с интерфейсом CAN, то после выпуска AT91SAM7A3 с Flash-памятью объемом 256кБ, запланирован выпуск микроконтроллеров с увеличенным и уменьшенным объемами памяти.
Источники:
- Веб-сайт www.at91.com
- Материалы ARM Technical Training. Atmel Corp. Paris 2005
Алексей Курилин
|