Выпуск #6/2007
Н.Королев, А.Шабынин.
ARM-микроконтроллеры ATMEL: аппаратные средства разработчика
ARM-микроконтроллеры ATMEL: аппаратные средства разработчика
Просмотры: 3114
Специалисты компании АРГУССОФТ на основе результатов анализа потребностей российских заказчиков разработали отладочные платы для микроконтроллеров семейства SAM7 корпорации ATMEL. Новые платы имеют расширенные аппаратные возможности и совместимы с платами
от ATMEL.
от ATMEL.
Корпорация ATMEL поставляет микроконтроллеры на базе ядра ARM уже достаточно давно, однако современное поколение микроконтроллеров на ядре ARM7TDMI (SAM7, Smart ARM7) производится лишь с 2005 года. Микросхемы изготавливаются по технологическим нормам 0,18 мкм и работают на частоте до 60 МГц. Практически все микросхемы SAM7 имеют "на борту" flash-память объемом 16...512 Кбайт и ОЗУ объемом 4...128 Кбайт, что существенно уменьшает габариты и стоимость конечного изделия. Все микросхемы, за исключением семейства SAM7A, содержат на кристалле память типа ROM, в которой находится загрузчик. Использование этого загрузчика позволяет обойтись без отдельного программатора, flash-память контроллеров можно загрузить через COM- или USB-порт компьютера посредством стандартного кабеля и бесплатной программы SAM-BA.
Общие характеристики микроконтроллеров серии AT91SAM7:
наилучшее соотношение производительность/потребляемая мощность;
производительность – 30–60 MIPS;
32/16-разрядная шина команд (ARM/THUMB);
32-разрядная внутренняя шина данных;
тип выхода – трехстабильный или открытый сток;
многоканальный контроллер прямого доступа к памяти (PDC);
интерфейс USB (2.0 Full Speed, 12 ВРS);
последовательный интерфейс SPI (Master/Slave режим);
последовательный интерфейс UART с функцией отладки;
последовательный интерфейс USART (скорость обмена до 25 ВРS);
двухпроводный интерфейс TWI (совместимый с I2C), поддержка режима Master Mode;
интерфейс SSC, поддержка режима I2S;
интерфейс JTAG;
встроенный микромощный RC-генератор и модуль ФАПЧ;
расширенный тактовый генератор и контроллер управления энергопотреблением;
четыре программируемых внешних источника тактирования;
контроллер прерываний с расширенными функциями;
четырехканальный 16-разрядный ШИМ-контроллер;
внутрисхемный эмулятор с коммуникационным отладочным каналом;
встроенный модуль отладки (через UART);
таймер реального времени (Real Тime Timer, RTT) с отдельным прерыванием;
два или три 3-канальных 16-бит таймера/счетчика;
20-разрядный интервальный таймер (Periodic Interval Timer, PIT);
32-разрядный таймер реального времени (Real Time Timer, RTT);
10-разрядный 8/16-канальный АЦП с временем преобразования 2,6 мкс;
схема задержки при включении питания (POR);
схема слежения за уровнем напряжения питания (BOD);
режимы снижения энергопотребления;
напряжение питания – 3,0...3,6 В;
защита памяти программ от несанкционированного чтения;
диапазон рабочих температур -40–85°С.
Доступ к flash-памяти программ в контроллерах SAM7 организован по 32-разрядной шине, время доступа к памяти –25 нс. Если частота ядра не превышает 30 МГц, выборка команды происходит без задержки. Если частота ядра находится в диапазоне 30–60 МГц, для выборки команды вводится такт задержки. Если контроллер работает в режиме THUMB (ширина команды 16 бит), за одно обращение к flash-памяти происходит выборка двух команд, которые затем выполняются последовательно.
Микросхемы имеют гибкую систему тактирования. В качестве источника тактирования можно выбрать встроенный RC-генератор (22–42 кГц), кварцевый генератор (частота 3–20 МГц) или внешний генератор (1–50 МГц). На кристалле находится модуль ФАПЧ с дробным коэффициентом умножения. После модуля ФАПЧ тактовые импульсы поступают на делитель, который формирует системную частоту и частоту работы периферийных модулей. Для получения частоты 48 МГц (интерфейс USB) используется отдельный делитель.
Известно, что общая производительность контроллера зависит не только от собственно тактовой частоты ядра, но, в большой степени, от организации потоков данных в кристалле. Преимущество микросхем SAM7 состоит в применении контроллеров прямого доступа к памяти (DMA-контроллер), причем для каждого периферийного модуля предусмотрен DMA-контроллер с отдельными каналами для приема и передачи.
Все микросхемы имеют на кристалле стандартный модуль АЦП с выделенным DMA-контроллером. Разрядность – 10 бит, число каналов – 8 для микросхем SAM7S, SAM7X, SAM7SE и 16 для SAM7A3. Скорость преобразования – 384 KSPS при частоте тактирования АЦП 5 МГц. Структурная схема модуля АЦП показана на рис. 1.
Микросхемы имеют раздельное питание ядра и периферийных модулей – 1,8 В и 3,3 В, соответственно. Встроенный преобразователь питания ядра снимает необходимость во внешнем стабилизаторе напряжения. Такое сочетание параметров позволяет применять микроконтроллеры SAM7 в самых различных приложениях, в том числе для построения низкопотребляющих систем, работающих в реальном времени. Серия микросхем SAM7 содержит четыре семейства: AT91SAM7S, AT91SAM7SE, AT91SAM7A и AT91SAM7X. Семейства различаются набором периферийных модулей и, соответственно, количеством выводов корпуса. Базовое семейство – SAM7S (64-выводной корпус) – содержит интерфейсы USART, UART, SPI, I2C, SSC и USB. Семейство AT91SAM7SE дополнено внешними шинами адреса и данных и может работать с различными видами памяти: SRAM, SDRAM, Compact Flash, NAND. Наличие нового интерфейса потребовало увеличения числа выводов корпуса до 128. Семейство SAM7A (100-выводной корпус) дополнительно оснащено CAN-контроллером с 1, 2 или 4 каналами, а семейство SAM7X (100-выводной корпус) – одноканальным CAN-контроллером и модулем Ethernet МАС 10/100 Mbit Base-T. В таблице приведены основные параметры контроллеров.
Семейство AT91SAM7X
Микроконтроллер AT91SAM7X (рис. 2), несмотря на малогабаритный 100-выводной корпус, имеет чрезвычайно богатый набор периферии. К стандартному набору периферийных модулей добавились следующие: дополнительный порт SPI, поддержка режима Master/Slave, 8- и 16-бит обмен; порт CAN, поддержка режима 2,0 А и 2,0 В; модуль Ethernet MAC 10/100.
Таким образом, пользователь получает систему на кристалле, позволяющую строить на ее основе высокоинтегрированные малогабаритные одноплатные контроллеры, которые работают с интерфейсами семи различных типов.
Старшая микросхема имеет 512-Кбайт flash-ПЗУ на кристалле. ПЗУ размещено в двух банках по 256 Кбайт, причем это не страничное, а линейное размещение. Банк 0 занимает адресное пространство 0x0000000…0x0013FFFF, а банк 1 – 0x1400000…0x17FFFF. Такая компоновка памяти дает возможность, например, перезаписывать содержимое одного банка flash-ПЗУ в то время, пока исполняется программа, размещенная в другом банке.
Максимальный ток потребления при частоте ядра 50 МГц составляет примерно 30 мА, в режиме ожидания – 16 мкА.
Семейство AT91SAM7SE
Семейство SAM7SE (см. таблицу) состоит из трех микросхем, которые различаются только размером памяти flash-ПЗУ и ОЗУ.
С внешним миром микроконтроллер SAM7SE общается через три порта ввода/вывода (порты A и B содержат по 32 линии, а порт C – 24 линии). В процессе инициализации каждая линия порта может быть назначена как универсальная линия ввода/вывода, вход прерывания или линия периферийного интерфейса. В семействе SAM7SE отсутствует возможность подключения внешних устройств с уровнями сигнала 5 В.
Вместо этого на каждую входную линию порта установлен триггер Шмитта.
Размер ОЗУ сравнительно небольшой – 8 или 32 Кбайт. Это обусловлено возможностью подключения внешнего ОЗУ по внешней шине. При этом можно применять микросхемы памяти достаточно большой емкости.
Модуль MPU (Memory Protection Unit) обеспечивает защиту внутренней памяти и периферии от несанкционированного чтения/модификации. Внутреннее адресное пространство может быть разделено на 16 областей размером от 1 Kбайт до 4 Mбайт. При этом для каждой области назначается один из режимов: "Доступ запрещен" (No Access), "Только запись" (Only Write), "Запись/Чтение" (Read/Write).
Наличие шины EBI подразумевает использование внешней памяти ОЗУ, а также, при необходимости, ПЗУ, поэтому в состав EBI включены контроллеры SRAM, SDRAM, Parallel ROM, NAND Flash, Compact Flash. Адресное пространство ограничивается шириной внешней шины адреса (23 разряда) и набором выводов Chip Select (8 линий). Особенность шины данных состоит в том, что для работы с памятью типа SDRAM используются все 32 разряда шины данных, тогда как для работы с остальными типами памяти доступны лишь младшие 16-бит шины данных.
Особенности микроконтроллеров серии AT91SAM7SE
Перечислим специфические характеристики микроконтроллеров серии AT91SAM7SE:
интерфейс внешней шины EBI;
модуль защиты памяти (MPU);
8 линий "Выбор кристалла" (Chip Select);
программируемая 8/16/32-бит внешняя шина данных;
88 линий ввода/вывода, каждая может быть источником прерывания;
триггер Шмитта по каждому входу;
встроенная программа-автозагрузчик для программирования flash-памяти через UART или USB-порт;
корпус: 128-выводной LQFP (шаг 0,5 мм) и 144-выводной LBGA (шаг 0,8 мм).
Интерфейс EBI (рис.3) содержит набор контроллеров памяти различного типа и мультиплексор, который подключает один из контроллеров к модулю PIO (Peripheral Input/Output).
Ширина внутренней адресной шины (32 разряда) позволяет не экономить при распределении адресного пространства между внутренней памятью, встроенными периферийными модулями и устройствами, которые подключаются к внешней шине.
На рис.4 представлена карта памяти контроллера AT91SAM7SE.
Внешнее адресное пространство разделено на 8 регионов, размером 256 Мбайт каждый. Оно предназначено для подключения внешней статической памяти, однако ряд выводов CS имеют также и специальные функции. Так, вывод CS1 используется при обращении к памяти SDRAM, выводы CS2 и CS4 – к памяти Compact Flash, а вывод CS3 – к памяти NAND Flash.
Как известно, память типа NAND Flash имеет особенность, определяемую технологией производства, – наличие секторов с дефектными битами памяти, причем число таких секторов увеличивается в процессе эксплуатации микросхемы. Таким образом, для корректной работы необходим механизм, управляющий процессом записи и проверяющий целостность записанных данных. Такой механизм реализует контроллер ECC (Error Corrected Code), который входит в состав микросхемы SAM7SE. В процессе записи он вычисляет контрольную сумму пакета данных и записывает ее в специально отведенную область памяти, а при чтении проверяет ее. С помощью механизма избыточного кодирования он может исправить одиночную ошибку в пакете и обнаружить двойную ошибку.
Максимальная частота работы шины EBI составляет 48 МГц. Следовательно, с точки зрения скорости выполнения программы оптимальное место для размещения кода программы (а также стоимости изделия) – это память типа SDRAM с разрядностью 32 бит.
Аппаратные средства для работы с контроллерами SAM7, разработанные в компаниИ АРГУССОФТ
На начальном этапе разработки имеет смысл использовать готовые отладочные платы, которые предлагает корпорация ATMEL. Специалисты АРГУССОФТ провели анализ потребностей заказчиков и разработали свои отладочные платы. Эти платы совместимы с платами от ATMEL, однако имеют расширенные аппаратные возможности и области применения.
Плата AS-SAM7S
Базовой платой АРГУССОФТ на контроллерах подсемейства SAM7S является плата AS-SAM7S на базе микроконтроллера AT91SAM7S256. На плате можно дополнительно установить: микросхемы АЦП и ЦАП, источник опорного напряжения, температурный датчик, две микросхемы flash-памяти AT45. Расширенные (относительно предложенной платы ATMEL) возможности схемы и установка дополнительных компонентов позволяют использовать плату не только в качестве макетной, но также применять в конечных устройствах.
В дополнение к примерам программ, предлагаемым ATMEL, специалистами АРГУССОФТ создан собственный пример, демонстрирующий работу с микросхемами АЦП, ЦАП и внешней flash-памятью.
Программирование в SAM-BA. Все микросхемы семейства SAM7S могут быть запрограммированы по порту USB или UART с использованием специальной утилиты SAM-BA (SAM Boot Assistant). Она входит в состав пакета AT91-ISP, разработанного корпорацией ATMEL. Программа взаимодействует с ROM-загрузчиком программируемой микросхемы, и, таким образом, образуется своеобразный программно-аппаратный комплекс. Загрузка файла программы производится при помощи стандартного кабеля с интерфейсом RS-232 или USB. Вид рабочего окна программы SAM-BA представлен на рис.5.
Программа предоставляет пользователю возможность программирования и чтения как flash-памяти кристалла, так и оперативной памяти, а также внешней Data Flash серии AT45.
Для загрузки кода в flash-память кристалла необходимо выбрать закладку "Flash", после чего указать путь к файлу, который нужно загрузить. Программирование микроконтроллера начинается после нажатия кнопки "Send". При необходимости правильность загрузки файла в микроконтроллер проверяют, нажав кнопку "Compare send file with memory". Можно программировать микросхему из командной строки при помощи tcl-скрипта. Пример командной строки может выглядеть так: sam-ba.exe COM1 MY_BOARD my_script.tcl.
Модули AS-SAM7S-M, AS-VGA
Модуль AS-SAM7S-M, разработанный в компании АРГУССОФТ, служит для облегчения сборки первой макетной платы. Модуль избавляет пользователя от необходимости монтажа микросхемы с шагом выводов 0,5 мм и аккуратной разводки чувствительных цепей. Он представляет собой плату размером 31х23 мм и может быть укомплектован микроконтроллером AT91SAM7S321/64/128/256/512. На нем установлены самые чувствительные к разводке компоненты: микроконтроллер, кварц, фильтр PLL и микросхема защиты порта USB. По периметру платы выведены все интерфейсы микроконтроллера. На плате модуля предусмотрено место для установки микросхемы-стабилизатора напряжения питания 3,3 В. При этом модуль можно подключить непосредственно к интерфейсу USB.
Поскольку все контроллеры семейства SAM7 оснащены функциями загрузки кода через интерфейс USB или UART, начинать свое знакомство с контроллерами SAM7 можно с более простой платы. При отладке удобно использовать интерфейс UART для вывода системных сообщений. Одновременно с модулем была разработана установочная плата AS-SAM7SV. На ней размещены интерфейсы USB, RS-232, RS-485, JTAG и стабилизатор питания. Кроме этого, на плату может быть установлена flash-память AT45 и трехосевой датчик ускорений. Схематика платы AS-SAM7S-V с установленным модулем AS-SAM7S-M совместима со схематикой платы AS-SAM7S.
Интересным применением этой пары плат является продукт AS-VGA. Он принимает команды по интерфейсу RS-232 и выводит монохромную картинку (с возможностью выбора цвета) формата VGA 640x480@60Hz на стандартный разъем D-SUB для подключения монитора. AS-VGA поддерживает команды вывода как текстовых, так и графических объектов, масштабирование шрифта, вывод графики, смену цвета выводимой картинки.
Плата AS-SAM7X
Подсемейство микроконтроллеров AT91SAM7X, как и все остальные контроллеры семейства SAM7, построено на ядре ARM7. Особенности конструкции – наличие поддержки сетей CAN и Ethernet, большее число линий ввода-вывода и улучшенная работа с загрузчиком SAM-BA. EMAC-контроллер позволяет стандартизировать протокол обмена с микросхемой PHY-уровня и унифицировать пользовательское ПО. Разработчик также может выбрать тип микросхемы физического уровня.
Специалисты компании АРГУССОФТ разработали плату AS-SAM7X (рис.6), которая программно совместима с фирменным комплектом, однако имеет ряд аппаратных расширений.
Технические характеристики платы
Аппаратные ресурсы:
микроконтроллер AT91SAMX256;
температурный датчик AD7415;
стабилизатор напряжения питания (3,3 В);
разъем Ethernet 10/100 Mbps;
разъем USB типа B, интерфейс USB;
разъем типа RJ45, интерфейс RS-485;
разъем DRB-9, интерфейс DBGU-RS-232;
разъем PLS-5, дополнительный интерфейс RS-232;
разъемы PLD-10 (2 шт.), интерфейс SPI, графический ЖКИ;
разъемы PLD-20 и PLD-40 для подключения внешних сигналов к портам контроллера;
разъем PLS-5, два опто-изолированных ключа с "сухими" контактами;
разъем PLS-6 для четырех аналоговых входов с питанием;
разъем PLS-5 для вывода аналоговых сигналов с внешнего ЦАП;
разъем PLD-20 для подключения JTAG-эмулятора (ATSAM-ICE);
штыревые разъемы для подключения внешних аналоговых сигналов (до 8);
5 пользовательских кнопок и кнопка "Reset";
4 пользовательских светодиода.
На плате предусмотрено место для распайки следующих
дополнительных компонентов:
микросхема ПЗУ серии DataFlash (AT45) в корпусе TSOP28;
микросхема ПЗУ серии DataFlash (AT45) в корпусе SOIC8;
микросхема двухканального 8/10/12-разрядного ЦАП AD5302/12/22;
микросхема трехосевого интегрального датчика ускорений ADXL330;
микросхема часов реального времени DS1307 с возможностью подключения батареи питания;
разъем карт памяти с интерфейсом SPI;
разъем PLD-28 для подключения модуля радиоинтерфейса на базе трансивера ATR2406;
генератор тактового сигнала для модуля радиоинтерфейса.
Программирование микроконтроллера и микросхем DataFlash производится при помощи бесплатного программного обеспечения SAM-BA через DBGU порт (кабель RS-232) либо через порт USB (кабель USB), либо же посредством эмулятора AT91SAM-ICE. Габаритные размеры – 103×75 мм.
Существует два типа комплектации плат. На старшей плате – AS-SAM7X-256 – установлен микроконтроллер AT91SAM7X256 и микросхемы физического уровня Ethernet. Также на внешние интерфейсные разъемы выведены полностью все сигнальные выводы контроллера. На младшей плате AS-SAM7X установлен контроллер AS-SAM7X-128 и отсутствуют некоторые интерфейсы.
Для микроконтроллеров SAM7X предусмотрена бесплатная операционная система реального времени – FreeRTOS. Она выполняет только функции RTOS и имеет минимальную аппаратную привязку. Работа TCP/IP-стека реализуется в виде отдельного задания FreeRTOS. Аналогично реализуются WEB- и telnet-сервер. На старшей плате AS-SAM7X-256 установлен микроконтроллер AT91SAM7X256 с 64 Кбайт SRAM и 256 Кбайт Flash. Выбор контроллера обусловлен использованием памяти при работе стека TCP/IP.
Модуль отладки AS-JTAG
Когда разработка начинается с проверенной и работоспособной аппаратной базы, к которой прилагаются примеры использования, актуальной задачей становится написание и отладка программного обеспечения контроллера. Для этих целей применяют отладочные сообщения, включенные в код программы, но большей эффективности можно достичь, используя внешние средства отладки. Во всех современных контроллерах в ядре имеется модуль для отладки. В контроллерах семейства SAM7 он называется ICE и подключается по линиям JTAG. Для работы с ним подходит отладчик AS-JTAG (рис.7). Это Wiggler-совместимый JTAG-эмулятор с полной гальванической развязкой. Он полностью совместим с бесплатной средой разработки, построенной на компиляторе gcc и оболочке Eclipse (рис.8).
Eclipse – это свободно распространяемая среда. На сайте yagarto.de можно найти дистрибутив Eclipse, подборку плагинов и компилятор GCC для ARM. Там же имеется подробная инструкция по настройке.
Среди примеров работы FreeRTOS есть два, созданные для контроллеров AT91SAM7X256. Один из них написан под IAR. После компиляции вместе с TCP/IP-стеком и WEB-сервером размер кода вплотную приближается к бесплатному пределу IAR Kickstart в 32 Кбайта. Второй пример написан для компиляции GCC и может быть скомпилирован, используя среду Eclipsе и подборку программ от yagarto.de. Соответственно при компиляции gcc никаких ограничений не будет.
Если графическая среда разработки не требуется, можно ограничиться установкой компилятора, например WinARM. Это еще один вариант сборки GCC для работы в Windows и компиляции под ARM.
Примеры программ можно загрузить со специализированного сайта корпорации Atmel – www.at91.com. Там же размещена документация и форум разработчиков.
Дополнительную информацию можно найти на сайте разработчика Си-компилятора – компании IAR Systems: www.iar.com.
Программное обеспечение для загрузки памяти программ микроконтроллеров семейства SAM7 SAM-BA загружается с сайтов www.atmel.com и www.argussoft.ru/atmel.
Литература
Королев Н. Микроконтроллеры на ядре ARM производства корпорации ATMEL. – Компоненты и технологии, 2006, №6.
Королев Н. Современные микроконтроллеры ATMEL: акцент на 32 разряда. – Электронные компоненты, 2006, №12.
Королев Н., Шабынин А. ARM-микроконтроллеры ATMEL: практические аспекты применения. – Электронные компоненты, 2007, №7, №8.
Материалы дистрибьюторских семинаров ATMEL на русском языке (http://atmel.argussoft.ru/seminars/).
Сайт проекта yagarto (Yet another GNU ARM Toolchain) http://yagarto.de.
Общие характеристики микроконтроллеров серии AT91SAM7:
наилучшее соотношение производительность/потребляемая мощность;
производительность – 30–60 MIPS;
32/16-разрядная шина команд (ARM/THUMB);
32-разрядная внутренняя шина данных;
тип выхода – трехстабильный или открытый сток;
многоканальный контроллер прямого доступа к памяти (PDC);
интерфейс USB (2.0 Full Speed, 12 ВРS);
последовательный интерфейс SPI (Master/Slave режим);
последовательный интерфейс UART с функцией отладки;
последовательный интерфейс USART (скорость обмена до 25 ВРS);
двухпроводный интерфейс TWI (совместимый с I2C), поддержка режима Master Mode;
интерфейс SSC, поддержка режима I2S;
интерфейс JTAG;
встроенный микромощный RC-генератор и модуль ФАПЧ;
расширенный тактовый генератор и контроллер управления энергопотреблением;
четыре программируемых внешних источника тактирования;
контроллер прерываний с расширенными функциями;
четырехканальный 16-разрядный ШИМ-контроллер;
внутрисхемный эмулятор с коммуникационным отладочным каналом;
встроенный модуль отладки (через UART);
таймер реального времени (Real Тime Timer, RTT) с отдельным прерыванием;
два или три 3-канальных 16-бит таймера/счетчика;
20-разрядный интервальный таймер (Periodic Interval Timer, PIT);
32-разрядный таймер реального времени (Real Time Timer, RTT);
10-разрядный 8/16-канальный АЦП с временем преобразования 2,6 мкс;
схема задержки при включении питания (POR);
схема слежения за уровнем напряжения питания (BOD);
режимы снижения энергопотребления;
напряжение питания – 3,0...3,6 В;
защита памяти программ от несанкционированного чтения;
диапазон рабочих температур -40–85°С.
Доступ к flash-памяти программ в контроллерах SAM7 организован по 32-разрядной шине, время доступа к памяти –25 нс. Если частота ядра не превышает 30 МГц, выборка команды происходит без задержки. Если частота ядра находится в диапазоне 30–60 МГц, для выборки команды вводится такт задержки. Если контроллер работает в режиме THUMB (ширина команды 16 бит), за одно обращение к flash-памяти происходит выборка двух команд, которые затем выполняются последовательно.
Микросхемы имеют гибкую систему тактирования. В качестве источника тактирования можно выбрать встроенный RC-генератор (22–42 кГц), кварцевый генератор (частота 3–20 МГц) или внешний генератор (1–50 МГц). На кристалле находится модуль ФАПЧ с дробным коэффициентом умножения. После модуля ФАПЧ тактовые импульсы поступают на делитель, который формирует системную частоту и частоту работы периферийных модулей. Для получения частоты 48 МГц (интерфейс USB) используется отдельный делитель.
Известно, что общая производительность контроллера зависит не только от собственно тактовой частоты ядра, но, в большой степени, от организации потоков данных в кристалле. Преимущество микросхем SAM7 состоит в применении контроллеров прямого доступа к памяти (DMA-контроллер), причем для каждого периферийного модуля предусмотрен DMA-контроллер с отдельными каналами для приема и передачи.
Все микросхемы имеют на кристалле стандартный модуль АЦП с выделенным DMA-контроллером. Разрядность – 10 бит, число каналов – 8 для микросхем SAM7S, SAM7X, SAM7SE и 16 для SAM7A3. Скорость преобразования – 384 KSPS при частоте тактирования АЦП 5 МГц. Структурная схема модуля АЦП показана на рис. 1.
Микросхемы имеют раздельное питание ядра и периферийных модулей – 1,8 В и 3,3 В, соответственно. Встроенный преобразователь питания ядра снимает необходимость во внешнем стабилизаторе напряжения. Такое сочетание параметров позволяет применять микроконтроллеры SAM7 в самых различных приложениях, в том числе для построения низкопотребляющих систем, работающих в реальном времени. Серия микросхем SAM7 содержит четыре семейства: AT91SAM7S, AT91SAM7SE, AT91SAM7A и AT91SAM7X. Семейства различаются набором периферийных модулей и, соответственно, количеством выводов корпуса. Базовое семейство – SAM7S (64-выводной корпус) – содержит интерфейсы USART, UART, SPI, I2C, SSC и USB. Семейство AT91SAM7SE дополнено внешними шинами адреса и данных и может работать с различными видами памяти: SRAM, SDRAM, Compact Flash, NAND. Наличие нового интерфейса потребовало увеличения числа выводов корпуса до 128. Семейство SAM7A (100-выводной корпус) дополнительно оснащено CAN-контроллером с 1, 2 или 4 каналами, а семейство SAM7X (100-выводной корпус) – одноканальным CAN-контроллером и модулем Ethernet МАС 10/100 Mbit Base-T. В таблице приведены основные параметры контроллеров.
Семейство AT91SAM7X
Микроконтроллер AT91SAM7X (рис. 2), несмотря на малогабаритный 100-выводной корпус, имеет чрезвычайно богатый набор периферии. К стандартному набору периферийных модулей добавились следующие: дополнительный порт SPI, поддержка режима Master/Slave, 8- и 16-бит обмен; порт CAN, поддержка режима 2,0 А и 2,0 В; модуль Ethernet MAC 10/100.
Таким образом, пользователь получает систему на кристалле, позволяющую строить на ее основе высокоинтегрированные малогабаритные одноплатные контроллеры, которые работают с интерфейсами семи различных типов.
Старшая микросхема имеет 512-Кбайт flash-ПЗУ на кристалле. ПЗУ размещено в двух банках по 256 Кбайт, причем это не страничное, а линейное размещение. Банк 0 занимает адресное пространство 0x0000000…0x0013FFFF, а банк 1 – 0x1400000…0x17FFFF. Такая компоновка памяти дает возможность, например, перезаписывать содержимое одного банка flash-ПЗУ в то время, пока исполняется программа, размещенная в другом банке.
Максимальный ток потребления при частоте ядра 50 МГц составляет примерно 30 мА, в режиме ожидания – 16 мкА.
Семейство AT91SAM7SE
Семейство SAM7SE (см. таблицу) состоит из трех микросхем, которые различаются только размером памяти flash-ПЗУ и ОЗУ.
С внешним миром микроконтроллер SAM7SE общается через три порта ввода/вывода (порты A и B содержат по 32 линии, а порт C – 24 линии). В процессе инициализации каждая линия порта может быть назначена как универсальная линия ввода/вывода, вход прерывания или линия периферийного интерфейса. В семействе SAM7SE отсутствует возможность подключения внешних устройств с уровнями сигнала 5 В.
Вместо этого на каждую входную линию порта установлен триггер Шмитта.
Размер ОЗУ сравнительно небольшой – 8 или 32 Кбайт. Это обусловлено возможностью подключения внешнего ОЗУ по внешней шине. При этом можно применять микросхемы памяти достаточно большой емкости.
Модуль MPU (Memory Protection Unit) обеспечивает защиту внутренней памяти и периферии от несанкционированного чтения/модификации. Внутреннее адресное пространство может быть разделено на 16 областей размером от 1 Kбайт до 4 Mбайт. При этом для каждой области назначается один из режимов: "Доступ запрещен" (No Access), "Только запись" (Only Write), "Запись/Чтение" (Read/Write).
Наличие шины EBI подразумевает использование внешней памяти ОЗУ, а также, при необходимости, ПЗУ, поэтому в состав EBI включены контроллеры SRAM, SDRAM, Parallel ROM, NAND Flash, Compact Flash. Адресное пространство ограничивается шириной внешней шины адреса (23 разряда) и набором выводов Chip Select (8 линий). Особенность шины данных состоит в том, что для работы с памятью типа SDRAM используются все 32 разряда шины данных, тогда как для работы с остальными типами памяти доступны лишь младшие 16-бит шины данных.
Особенности микроконтроллеров серии AT91SAM7SE
Перечислим специфические характеристики микроконтроллеров серии AT91SAM7SE:
интерфейс внешней шины EBI;
модуль защиты памяти (MPU);
8 линий "Выбор кристалла" (Chip Select);
программируемая 8/16/32-бит внешняя шина данных;
88 линий ввода/вывода, каждая может быть источником прерывания;
триггер Шмитта по каждому входу;
встроенная программа-автозагрузчик для программирования flash-памяти через UART или USB-порт;
корпус: 128-выводной LQFP (шаг 0,5 мм) и 144-выводной LBGA (шаг 0,8 мм).
Интерфейс EBI (рис.3) содержит набор контроллеров памяти различного типа и мультиплексор, который подключает один из контроллеров к модулю PIO (Peripheral Input/Output).
Ширина внутренней адресной шины (32 разряда) позволяет не экономить при распределении адресного пространства между внутренней памятью, встроенными периферийными модулями и устройствами, которые подключаются к внешней шине.
На рис.4 представлена карта памяти контроллера AT91SAM7SE.
Внешнее адресное пространство разделено на 8 регионов, размером 256 Мбайт каждый. Оно предназначено для подключения внешней статической памяти, однако ряд выводов CS имеют также и специальные функции. Так, вывод CS1 используется при обращении к памяти SDRAM, выводы CS2 и CS4 – к памяти Compact Flash, а вывод CS3 – к памяти NAND Flash.
Как известно, память типа NAND Flash имеет особенность, определяемую технологией производства, – наличие секторов с дефектными битами памяти, причем число таких секторов увеличивается в процессе эксплуатации микросхемы. Таким образом, для корректной работы необходим механизм, управляющий процессом записи и проверяющий целостность записанных данных. Такой механизм реализует контроллер ECC (Error Corrected Code), который входит в состав микросхемы SAM7SE. В процессе записи он вычисляет контрольную сумму пакета данных и записывает ее в специально отведенную область памяти, а при чтении проверяет ее. С помощью механизма избыточного кодирования он может исправить одиночную ошибку в пакете и обнаружить двойную ошибку.
Максимальная частота работы шины EBI составляет 48 МГц. Следовательно, с точки зрения скорости выполнения программы оптимальное место для размещения кода программы (а также стоимости изделия) – это память типа SDRAM с разрядностью 32 бит.
Аппаратные средства для работы с контроллерами SAM7, разработанные в компаниИ АРГУССОФТ
На начальном этапе разработки имеет смысл использовать готовые отладочные платы, которые предлагает корпорация ATMEL. Специалисты АРГУССОФТ провели анализ потребностей заказчиков и разработали свои отладочные платы. Эти платы совместимы с платами от ATMEL, однако имеют расширенные аппаратные возможности и области применения.
Плата AS-SAM7S
Базовой платой АРГУССОФТ на контроллерах подсемейства SAM7S является плата AS-SAM7S на базе микроконтроллера AT91SAM7S256. На плате можно дополнительно установить: микросхемы АЦП и ЦАП, источник опорного напряжения, температурный датчик, две микросхемы flash-памяти AT45. Расширенные (относительно предложенной платы ATMEL) возможности схемы и установка дополнительных компонентов позволяют использовать плату не только в качестве макетной, но также применять в конечных устройствах.
В дополнение к примерам программ, предлагаемым ATMEL, специалистами АРГУССОФТ создан собственный пример, демонстрирующий работу с микросхемами АЦП, ЦАП и внешней flash-памятью.
Программирование в SAM-BA. Все микросхемы семейства SAM7S могут быть запрограммированы по порту USB или UART с использованием специальной утилиты SAM-BA (SAM Boot Assistant). Она входит в состав пакета AT91-ISP, разработанного корпорацией ATMEL. Программа взаимодействует с ROM-загрузчиком программируемой микросхемы, и, таким образом, образуется своеобразный программно-аппаратный комплекс. Загрузка файла программы производится при помощи стандартного кабеля с интерфейсом RS-232 или USB. Вид рабочего окна программы SAM-BA представлен на рис.5.
Программа предоставляет пользователю возможность программирования и чтения как flash-памяти кристалла, так и оперативной памяти, а также внешней Data Flash серии AT45.
Для загрузки кода в flash-память кристалла необходимо выбрать закладку "Flash", после чего указать путь к файлу, который нужно загрузить. Программирование микроконтроллера начинается после нажатия кнопки "Send". При необходимости правильность загрузки файла в микроконтроллер проверяют, нажав кнопку "Compare send file with memory". Можно программировать микросхему из командной строки при помощи tcl-скрипта. Пример командной строки может выглядеть так: sam-ba.exe COM1 MY_BOARD my_script.tcl.
Модули AS-SAM7S-M, AS-VGA
Модуль AS-SAM7S-M, разработанный в компании АРГУССОФТ, служит для облегчения сборки первой макетной платы. Модуль избавляет пользователя от необходимости монтажа микросхемы с шагом выводов 0,5 мм и аккуратной разводки чувствительных цепей. Он представляет собой плату размером 31х23 мм и может быть укомплектован микроконтроллером AT91SAM7S321/64/128/256/512. На нем установлены самые чувствительные к разводке компоненты: микроконтроллер, кварц, фильтр PLL и микросхема защиты порта USB. По периметру платы выведены все интерфейсы микроконтроллера. На плате модуля предусмотрено место для установки микросхемы-стабилизатора напряжения питания 3,3 В. При этом модуль можно подключить непосредственно к интерфейсу USB.
Поскольку все контроллеры семейства SAM7 оснащены функциями загрузки кода через интерфейс USB или UART, начинать свое знакомство с контроллерами SAM7 можно с более простой платы. При отладке удобно использовать интерфейс UART для вывода системных сообщений. Одновременно с модулем была разработана установочная плата AS-SAM7SV. На ней размещены интерфейсы USB, RS-232, RS-485, JTAG и стабилизатор питания. Кроме этого, на плату может быть установлена flash-память AT45 и трехосевой датчик ускорений. Схематика платы AS-SAM7S-V с установленным модулем AS-SAM7S-M совместима со схематикой платы AS-SAM7S.
Интересным применением этой пары плат является продукт AS-VGA. Он принимает команды по интерфейсу RS-232 и выводит монохромную картинку (с возможностью выбора цвета) формата VGA 640x480@60Hz на стандартный разъем D-SUB для подключения монитора. AS-VGA поддерживает команды вывода как текстовых, так и графических объектов, масштабирование шрифта, вывод графики, смену цвета выводимой картинки.
Плата AS-SAM7X
Подсемейство микроконтроллеров AT91SAM7X, как и все остальные контроллеры семейства SAM7, построено на ядре ARM7. Особенности конструкции – наличие поддержки сетей CAN и Ethernet, большее число линий ввода-вывода и улучшенная работа с загрузчиком SAM-BA. EMAC-контроллер позволяет стандартизировать протокол обмена с микросхемой PHY-уровня и унифицировать пользовательское ПО. Разработчик также может выбрать тип микросхемы физического уровня.
Специалисты компании АРГУССОФТ разработали плату AS-SAM7X (рис.6), которая программно совместима с фирменным комплектом, однако имеет ряд аппаратных расширений.
Технические характеристики платы
Аппаратные ресурсы:
микроконтроллер AT91SAMX256;
температурный датчик AD7415;
стабилизатор напряжения питания (3,3 В);
разъем Ethernet 10/100 Mbps;
разъем USB типа B, интерфейс USB;
разъем типа RJ45, интерфейс RS-485;
разъем DRB-9, интерфейс DBGU-RS-232;
разъем PLS-5, дополнительный интерфейс RS-232;
разъемы PLD-10 (2 шт.), интерфейс SPI, графический ЖКИ;
разъемы PLD-20 и PLD-40 для подключения внешних сигналов к портам контроллера;
разъем PLS-5, два опто-изолированных ключа с "сухими" контактами;
разъем PLS-6 для четырех аналоговых входов с питанием;
разъем PLS-5 для вывода аналоговых сигналов с внешнего ЦАП;
разъем PLD-20 для подключения JTAG-эмулятора (ATSAM-ICE);
штыревые разъемы для подключения внешних аналоговых сигналов (до 8);
5 пользовательских кнопок и кнопка "Reset";
4 пользовательских светодиода.
На плате предусмотрено место для распайки следующих
дополнительных компонентов:
микросхема ПЗУ серии DataFlash (AT45) в корпусе TSOP28;
микросхема ПЗУ серии DataFlash (AT45) в корпусе SOIC8;
микросхема двухканального 8/10/12-разрядного ЦАП AD5302/12/22;
микросхема трехосевого интегрального датчика ускорений ADXL330;
микросхема часов реального времени DS1307 с возможностью подключения батареи питания;
разъем карт памяти с интерфейсом SPI;
разъем PLD-28 для подключения модуля радиоинтерфейса на базе трансивера ATR2406;
генератор тактового сигнала для модуля радиоинтерфейса.
Программирование микроконтроллера и микросхем DataFlash производится при помощи бесплатного программного обеспечения SAM-BA через DBGU порт (кабель RS-232) либо через порт USB (кабель USB), либо же посредством эмулятора AT91SAM-ICE. Габаритные размеры – 103×75 мм.
Существует два типа комплектации плат. На старшей плате – AS-SAM7X-256 – установлен микроконтроллер AT91SAM7X256 и микросхемы физического уровня Ethernet. Также на внешние интерфейсные разъемы выведены полностью все сигнальные выводы контроллера. На младшей плате AS-SAM7X установлен контроллер AS-SAM7X-128 и отсутствуют некоторые интерфейсы.
Для микроконтроллеров SAM7X предусмотрена бесплатная операционная система реального времени – FreeRTOS. Она выполняет только функции RTOS и имеет минимальную аппаратную привязку. Работа TCP/IP-стека реализуется в виде отдельного задания FreeRTOS. Аналогично реализуются WEB- и telnet-сервер. На старшей плате AS-SAM7X-256 установлен микроконтроллер AT91SAM7X256 с 64 Кбайт SRAM и 256 Кбайт Flash. Выбор контроллера обусловлен использованием памяти при работе стека TCP/IP.
Модуль отладки AS-JTAG
Когда разработка начинается с проверенной и работоспособной аппаратной базы, к которой прилагаются примеры использования, актуальной задачей становится написание и отладка программного обеспечения контроллера. Для этих целей применяют отладочные сообщения, включенные в код программы, но большей эффективности можно достичь, используя внешние средства отладки. Во всех современных контроллерах в ядре имеется модуль для отладки. В контроллерах семейства SAM7 он называется ICE и подключается по линиям JTAG. Для работы с ним подходит отладчик AS-JTAG (рис.7). Это Wiggler-совместимый JTAG-эмулятор с полной гальванической развязкой. Он полностью совместим с бесплатной средой разработки, построенной на компиляторе gcc и оболочке Eclipse (рис.8).
Eclipse – это свободно распространяемая среда. На сайте yagarto.de можно найти дистрибутив Eclipse, подборку плагинов и компилятор GCC для ARM. Там же имеется подробная инструкция по настройке.
Среди примеров работы FreeRTOS есть два, созданные для контроллеров AT91SAM7X256. Один из них написан под IAR. После компиляции вместе с TCP/IP-стеком и WEB-сервером размер кода вплотную приближается к бесплатному пределу IAR Kickstart в 32 Кбайта. Второй пример написан для компиляции GCC и может быть скомпилирован, используя среду Eclipsе и подборку программ от yagarto.de. Соответственно при компиляции gcc никаких ограничений не будет.
Если графическая среда разработки не требуется, можно ограничиться установкой компилятора, например WinARM. Это еще один вариант сборки GCC для работы в Windows и компиляции под ARM.
Примеры программ можно загрузить со специализированного сайта корпорации Atmel – www.at91.com. Там же размещена документация и форум разработчиков.
Дополнительную информацию можно найти на сайте разработчика Си-компилятора – компании IAR Systems: www.iar.com.
Программное обеспечение для загрузки памяти программ микроконтроллеров семейства SAM7 SAM-BA загружается с сайтов www.atmel.com и www.argussoft.ru/atmel.
Литература
Королев Н. Микроконтроллеры на ядре ARM производства корпорации ATMEL. – Компоненты и технологии, 2006, №6.
Королев Н. Современные микроконтроллеры ATMEL: акцент на 32 разряда. – Электронные компоненты, 2006, №12.
Королев Н., Шабынин А. ARM-микроконтроллеры ATMEL: практические аспекты применения. – Электронные компоненты, 2007, №7, №8.
Материалы дистрибьюторских семинаров ATMEL на русском языке (http://atmel.argussoft.ru/seminars/).
Сайт проекта yagarto (Yet another GNU ARM Toolchain) http://yagarto.de.
Отзывы читателей