ATSAM3S c ядром Cortex-M3 — новые кристаллы класса ARM7 корпорации Atmel
О главных нововведениях
В новых кристаллах ATSAM3S появились принципиально новые возможности, которые могут положительно повлиять на ключевые характеристики устройств, реализованных на прежней серии микросхем AT91SAM7S:
- Производительность процессорного ядра в 1,6 раза выше за счет повышения тактовой частоты и применения современного и производительного ядра Cortex-M3 ревизии 2. Производительность нового процессорного ядра достигает 1,25 MIPS/МГц, в то время как у SAM7S процессорное ядро ARM7-TDMI способно обеспечить 0,9 MIPS/МГц. Тактовая частота при этом повысилась с 55 до 64 МГц.
- Новые микросхемы имеют более низкое энергопотребление как в активном режиме, так и в режимах энергосбережения. В SAM3S нижний порог питающего напряжения снижен до 1,62 В, в то время как AT91SAM7S могут работать только в диапазоне напряжений от 3 до 3,6 В. Благодаря снижению напряжения питания и функции автоматического отключения питания Flash-памяти между циклами ее чтения, новое ядро потребляет не более 1,45 мВт/МГц (1 мВт/МГц на максимальной частоте) в сравнении с 2 мВт/МГц у AT91SAM7S. Помимо активного режима, тщательно переработана система энергосбережения: добавлены новые режимы «сна». Если сравнить два похожих режима, в которых периферия и ядро остановлены, а тактирование происходит от внутреннего RC-генератора, то у AT91SAM7S потребляемая мощность составит 37 мкВт при времени пробуждения 4 мс, а у ATSAM3S она не превысит 17 мкВт при пробуждении за 10 мкс и менее. В самом глубоком режиме сна — backup — у ATSAM3S потребляемая мощность не превысит 3 мкВт при включенных часах реального времени и хранении данных в 8 резервных регистрах.
- У новых микросхем более развита защита данных. Так, встроенный блок защиты памяти (MPU) у ATSAM3S обеспечивает защиту кода программы и надежность распределения доступа к памяти в многозадачных операционных системах, а данные во внешней ОЗУ могут быть шифрованы посредством пользовательского ключа. В кристаллы ATSAM3S также встроен уникальный 128-битный идентификационный номер, который может быть использован для реализации методов защиты от незаконного тиражирования изделий на базе этих микросхем. Встроенный аппаратный блок подсчета контрольной суммы (CRC) поможет контролировать целостность передаваемых/принимаемых данных без потери ресурсов процессора, причем сами данные могут быть переданы в блок подсчета CRC с помощью периферийного контроллера DMA, то есть без участия процессорного ядра.
- Обмен данными между периферийными блоками и памятью заметно ускорен благодаря 4-слойной матрице шин (AHB Bus Matrix), работающей на частоте до 64 МГц, и увеличению количества каналов DMA c 11 до 21, которые обеспечивают непрерывный обмен данными без участия процессорного ядра. Для решения проблемы быстродействия памяти программ, ограничивающей работу процессора на максимальной тактовой частоте, в новых кристаллах Flash-память уже имеет не 32-, а 128-битную шину, что позволяет контроллеру Flash-памяти считывать сразу до 4 команд и отдавать их ядру уже с большей скоростью.
- Связь с «внешним миром» у новых процессоров также ускорена: скорость обмена данными по SPI достигает 64 Мбит/с (при 30 Мбит/с у SAM7S). Для обмена данными с популярными типами карт памяти добавлен скоростной интерфейс MCI с максимальной скоростью обмена данными до 32 m6ot/c, поддерживающий спецификации MultiMedia Card (MMC) версии 4.3, SD Memory Card версии 2.0, SDIO версии 2.0 в 1- либо 4-битных режимах обмена данными и CE-ATA версии 1.1. Для реализации нестандартных протоколов чтения внешней памяти в кристаллах ATSAM3S реализован режим параллельного захвата 8-битных данных на линиях ввода/вывода, в том числе с помощью контроллера DMA. Такая функция, подменяющая интерфейс внешней памяти, может быть полезна для работы с дешевыми датчиками изображения, скоростным АЦП с параллельным интерфейсом либо для реализации протокола обмена данными с внешним DSP-процессором.
- Введены качественно новые аналоговые блоки. ATSAM3S снабжены 12-разрядным АЦП с частотой дискретизации до 1 млн отсчетов в секунду. Аналоговый мультиплексор позволяет подключить до 16 входных аналоговых сигналов в несимметричном либо 8 каналов в дифференциальном включении. На входе АЦП предусмотрен операционный усилитель с коэффициентами усиления 1, 2 или 4. В ATSAM3S появился также 12-разрядный ЦАП с двумя выходами с частотой преобразования 2 млн отсчетов в секунду при работе на один канал. Также интегрирован аналоговый компаратор с программируемым гистерезисом. А у AT91SAM7S из аналоговых блоков был предусмотрен только 10-битный АЦП с частотой дискретизации до 384 кбит/с.
- Ассортимент микросхем ATSAM3S расширен по сравнению с серией AT91SAM7S (табл. 1) — это обеспечено за счет более разнообразного сочетания корпусов, периферии, объемов памяти программ и данных.
Таблица 1. Сравнительная характеристика микросхем серии ATSAM3S
Серия | Flash-память, кбайт | ОЗУ, кбайт |
USB 2.0 Device | Аппаратная поддержка карт памяти SD/SDIO/MMC | интерфейсы UART/SPI/ TWI/I2S | интерфейс внешней памяти | 12-разрядный АЦП/ЦАП (каналов) | Корпус |
ATSAM3S4C | 256 | 48 | FS | + | 4/3/2/1 | + | 16/2 | LQFP100 BGA100 |
ATSAM3S2C | 128 | 32 | ||||||
ATSAM3S1C | 64 | 16 | ||||||
ATSAM3S4B | 256 | 48 | FS | + | 4/3/2/1 | — | 10/2 | LQFP64 QFN64 |
ATSAM3S2B | 128 | 32 | ||||||
ATSAM3S1B | 64 | 16 | ||||||
ATSAM3S4A | 256 | 48 | FS | — | 3/2/2/1 | — | 8/- | LQFP48 QFN48 |
ATSAM3S2A | 128 | 32 | ||||||
ATSAM3S1A | 64 | 16 |
Полезные «мелочи»
Незначительные изменения в существующих периферийных блоках могут существенно расширить возможности разработчика, которому приходилось программно реализовывать какие-то нестандартные пути использования имевшейся на кристаллах AT91SAM7S периферии, теряя при этом производительные ресурсы микроконтроллера. В микроконтроллерах ATSAM3S реализованы различные улучшения существующих периферийных блоков.
У микросхем ATSAM3S, выпускаемых в 48- и 64-выводных корпусах, увеличилось количество линий ввода/вывода общего назначения — до 32 и 47 линий соответственно. Это удалось получить за счет мультиплексирования этих новых выводов с сигналами встроенных периферийных модулей: АЦП, линиями JTAG, линией ERASE, сигналами интерфейса USB и кварцевым генератором. То есть если какие-то из этих сигналов не нужны, выводы могут быть задействованы в качестве линий ввода/вывода общего назначения. Также в ATSAM3S исключены линии фильтра ФАПЧ: он теперь встроен в кристалл, плюс удалось избавиться от линии питания Flash-памяти — это подключение теперь реализовано внутри кристалла.
У ATSAM3S появились новые интерфейсы: у микросхем в 48-выводном корпусе добавлен интерфейс USB, а у микросхем в 100-выводных корпусах — интерфейс внешней памяти. Расширена функциональность и уже имевшихся коммуникационных интерфейсов. Интерфейс USART теперь может работать в режиме эмуляции интерфейса SPI и поддерживает кодирование манчестерским кодом. Интерфейс USB теперь имеет 8, а не 4 конечные точки, а размер буфера увеличен с 64 до 512 байт. Двухпроводной интерфейс TWI (I2C) поддерживает режим Slave и Multi Master c использованием контроллера DMA, что для такого медленного интерфейса важно: процессор не теряет время на управление передачей данных, поручив это контроллеру DMA.
Система тактирования также претерпела некоторые изменения. В кристаллах ATSAM3S появился дополнительный генератор для часов реального времени, который предполагается использовать с внешним часовым кварцем. Если часы реального времени не используются, то линии подключения кварцевого резонатора могут быть использованы как линии ввода/вывода общего назначения. Также в кристалл интегрирован программируемый RC-генератор на 4, 8 и 12 МГц, причем для комнатной температуры частоты 8 и 12 МГц могут быть выставлены более точно, если задействовать калибровочные коэффициенты, записываемые в нестираемую область Flash-памяти при производстве кристаллов. Этот RC-генератор имеет малое время запуска и используется в качестве источника тактового сигнала при включении микроконтроллера, обеспечивая быстрый запуск кристалла на достаточно высокой тактовой частоте. Другой встроенный генератор, ориентированный на работу с внешним кварцевым резонатором, теперь поддерживает более дешевые керамические резонаторы на частоту от 3 до 20 МГц.
Что касается генератора с внешним резонатором, то можно сразу отметить, что для ассистента загрузчика SAM-BA расширился набор поддерживаемых частот. Ранее частота внешнего кварца для SAM-BA ограничивалась значением 18,432 МГц, а теперь поддерживаются частоты 11,289; 12; 16 и 18,432 МГц.
При этом сам загрузчик SAM-BA уже активирован в ATSAM3S, а значит, первичное программирование Flash-памяти процессора можно проводить уже без активации загрузчика. Следует отметить, что в нестираемой области (ROM), где хранится SAM-BA, размещена подпрограмма, которая может передавать команды контроллеру Flash-памяти, а так как Flash-память микроконтроллера не поддерживает функции RWW (read-while-write, считывание слова в момент записи слова), то эта подпрограмма позволит организовать непрерывное выполнение пользовательской программы из Flash-памяти при одновременном выполнении операций с ней.
Кратко перечислим другие нововведения, которые могут оказаться незаменимыми при реализации собственного проекта:
- В таймерах/счетчиках:
- Реализована логика для декодирования квадратурного сигнала.
- Добавлен режим 2-битного счетчика с кодом Грея для реализации управляющих сигналов для шаговых двигателей.
- В блоки ввода/вывода общего назначения (рисунок):
- Добавлены отключаемые pull-down резисторы номиналом 100 кОм.
- Добавлен триггер Шмитта в логику ввода цифровых сигналов.
- Добавлена функция фильтрации на входе помех продолжительностью менее половины периода системного тактового сигнала и защита от дребезга контактов продолжительностью менее половины периода сигнала генератора медленной тактовой частоты (slow clock generator).
- Интегрированы согласующие резисторы (On-Die Termination, ODT) номиналом 36 Ом.
- Функция генерации прерывания по изменению состояния линии ввода/вывода либо возрастающему/ниспадающему фронту реализована на всех линиях ввода/вывода.
Рисунок. Упрощенная схема логики линии ввода/вывода
- В ШИМ-контроллерах:
- Обновление регистров может происходить синхронно под управлением контроллера DMA, разгружая процессорное ядро и исключая задержки с его стороны.
- Интегрирован механизм защиты от ошибок с 6 входными сигналами об ошибках (линия ввода/вывода, контроллер управления питанием, АЦП, аналоговый компаратор и таймеры/счетчики), необходимый для исключения неправильных действий по управлению двигателем и исключения вероятности выхода его из строя в случае обнаружения нестандартных ситуаций.
- Для исключения случайного изменения регистров управления ШИМ предусмотрен механизм защиты их от записи.
- Появились полнофункциональные часы реального времени с выводом значений часов (24- или 12-часовой режим), минут, секунд и года с диапазоне от 1900 до 2099.
- Среди регистров конфигурации некоторых периферийных блоков появился регистр защиты конфигурационных регистров (Write Protect Mode Register) от непредвиденного изменения этих конфигурационных регистров.
- Улучшена системная периферия:
- Монитор питания на линии VDDIO может быть запрограммирован на пороговое напряжение питания в диапазоне от 1,9 до 3,4 В с шагом 100 мВ, а в случае события может генерировать сигнал сброса ядру либо же прерывание. При этом для регулировки соотношения значений времени реакции/энергопотребления предусмотрены режимы постоянного или периодического контроля питания.
- Монитор питания на линии VDDCORE активен при включении питания кристалла.
- Линия сброса при включении питания микросхемы теперь сконфигурирована на ввод.
- Добавлена функция детектирования отсутствия тактового сигнала при тактировании от генератора с внешним кварцем: при возникновении этого события происходит автоматическое переключение на внутренний RC-генератор.
Особенности перехода
Существует ряд принципиальных отличий, которые необходимо учесть при переходе на новую серию процессоров.
С программной точки зрения основные отличия связаны с тем, что в ATSAM3S пользователю предоставлено новое процессорное ядро, в котором по-другому организована программная работа с памятью, инициализация и обработка прерываний. Полный анализ этих отличий приведен в статье «Migrating ARM7 code to a Cortex-M3 MCU» [1]. Что же касается программирования периферии, то разработчики Atmel при проектировании ATSAM3S постарались обеспечить максимальную совместимость — особенно это заметно, если при разработке проектов на AT91SAM7S использовались готовые библиотеки от Atmel.
С аппаратной точки зрения производитель также постарался обеспечить максимальную совместимость. Но не все удалось: для некоторых проектов потребуются изменения. Во-первых, в ATSAM3S линии ввода/вывода не толерантны к 5-вольтовым уровням сигналов: максимально допустимый уровень цифровых сигналов на входе составляет 4 В.
Во-вторых, может потребоваться переразводка печатной платы. Микросхемы ATSAM3S предлагаются в корпусах с 48, 64 и 100 выводами. Если переход происходит с сохранением количества выводов, то 64-выводные микросхемы ATSAM3S могут быть поставлены на посадочное место 64-выводных AT91SAM7S, а для 48-выводных микросхем необходимо переразвести один вывод. Причем:
- Переработка платы при использовании 64-выводного микроконтроллера потребуется, если нужно задействовать новый функционал, либо же потребуются дополнительные линии ввода/вывода (табл. 2). Также следует учитывать тот факт, что интерфейс USB у ATSAM3S содержит встроенные резисторы, то есть схему включения USB можно упростить.
- У микроконтроллеров в 48-выводных корпусах (табл. 2, 3), в дополнение к изменениям микросхем в 64-выводных корпусах, возможные изменения таковы:
- С появлением интерфейса USB у 48-вы-водных кристаллов желание его задействовать потребует подключения двух соответствующих линий (D+ и D-) к разъему USB.
- Освободившаяся линия PLLRC фильтра ФАПЧ у ATSAM3S теперь предназначена для линии питания VDDIO — эта линия питания была выведена вторично для улучшения электромагнитной совместимости.
Таблица 2. Отличие назначения выводов микросхем AT91SAM7S и ATSAM3S в корпусе TQFP64 (выводы, претерпевшие изменения)
№ | SAM7S — TQFP64 | SAM3S — TQFP64 |
3 | AD4 | PB0/AD4 |
4 | AD5 | PB1/AD5 |
5 | AD6 | PB2/AD6 |
6 | AD7 | PB3/AD7 |
11 | PA21/PGMD9 | PA21/PGMD9/AD8 |
4 | PA22/PGMD10 | PA22/PGMD10/AD9 |
31 | PA8/PGMM0 | PA8/XOUT32/PGMM0 |
32 | PA7/PGMNVALID | PA7/XIN32/PGMNVALID |
33 | TDI | TDI/PB4 |
49 | TDO | TDO/TRACESWO/PB5 |
51 | TMS | TMS/SWDIO/PB6 |
53 | TCK | TCK/SWCLK/PB7 |
55 | ERASE | ERASE/PB12 |
56 | DDM | DDM/PB10 |
57 | DDP | DDP/PB11 |
58 | VDDIO | VDDIO |
59 | VDDFLASH | PB13/DAC0 |
61 | XOUT | XOUT/PB8 |
62 | XIN/PGMCK | XIN/PGMCK/PB9 |
63 | PLLRC | PB14/DAC1 |
Таблица 3. Отличие назначения выводов микросхем AT91SAM7S и ATSAM3S в корпусе TQFP48 (выводы, претерпевшие изменения)
№ | SAM7S — TQFP48 | SAM3S — TQFP48 |
3 | AD4 | PB0/AD4 |
4 | AD5 | PB1/AD5 |
5 | AD6 | PB2/AD6 |
6 | AD7 | PB3/AD7 |
23 | PA8/PGMM0 | PA8/XOUT32/PGMM0 |
24 | PA7/PGMNVALID | PA7/XIN32/PGMNVALID |
25 | TDI | TDI/PB4 |
37 | TDO | TDO/TRACESWO/PB5 |
39 | TMS | TMS/SWDIO/PB6 |
40 | TCK | TCK/SWCLK/PB7 |
42 | ERASE | ERASE/PB12 |
43 | VDDFLASH | DDM/PB10 |
44 | GND | DDP/PB11 |
45 | XOUT | XOUT/PB8 |
46 | XIN/PGMCK | XIN/PB9/PGMCK |
47 | PLLRC* | VDDIO* |
Примечание. * — повыводной совместимости нет.
При разработке печатной платы следует учитывать, что для упрощения задачи согласования волнового сопротивления линий связи, организованных на плате, в линиях ввода/вывода интегрированы согласующие резисторы номиналом 36 Ом (рисунок), образующие вместе с волновым сопротивлением выходных буферов ввода/вывода суммарное волновое сопротивление 50 Ом.
Средства поддержки разработок
Для быстрого освоения новых микросхем предлагается оценочный комплект ATSAM3S-EK, на плате которого размещены: • микроконтроллер SAM3S4C в корпусе LQFP100;
- кварцевые резонаторы на 12 МГц и 32,768 кГц;
- микросхема памяти NAND-Flash объемом 2 Гбит;
- цветной TFT-дисплей размером 2,8″ разрешением 320×240 точек, снабженный сенсорной панелью;
- разъемы интерфейсов RS-232, RS-485, USB, карт памяти SD/MMC, JTAG;
- микрофонный вход и аудиовыход;
- классические и сенсорные кнопки;
- два светодиода;
- регулятор питания;
- высокочастотные разъемы (BNC) для ввода и вывода аналоговых сигналов;
- потенциометр, соединенный с входом АЦП;
- разъемы для подключения линий ввода/вывода.
В качестве программных средств поддержки разработки подходят все пакеты третьих фирм, предназначенные для разработок с использованием процессоров класса ARM7.
Корпорация Atmel также бесплатно распространяет:
- Пакеты AT91Software Packages, содержащие готовые библиотеки с примерами использования для работы со всей встроенной в кристаллы SAM7/SAM3 периферией, с проектами для компиляторов IAR, Keil, GNU/GCC.
- Пакет AT91 USB Framework, реализующий различные классы USB.
- Ассистент загрузчика SAM-BA для Windows и Linux, осуществляющий программирование Flash-памяти микроконтроллера без программатора, работающий в паре с загрузчиком нижнего уровня, хранимым в отдельной нестираемой области памяти микроконтроллера, активируемым аппаратно.
Для уверенного продвижения проектов в развивающемся ассортименте микроконтроллеров фирмы Atmel с ядром Cortex-M3 производитель рекомендует активно использовать в своих разработках библиотеки AT91 Software Packages, распространяемые свободно в исходных кодах на сайте Atmel [2]. Их использование не только обеспечит быстрое освоение периферии кристаллов, но и сделает дальнейший переход на другие кристаллы семейства ATSAM3 более простым и быстрым.
Заключение
Новая серия микросхем ATSAM3S, предложенная на замену популярных кристаллов AT91SAM7S, получилась функционально более насыщенной и соответствующей текущим потребностям российского рынка на микроконтроллеры такого класса. Учитывая, что стоимость ATSAM3S даже несколько ниже, чем на предшествующие кристаллы, можно с уверенностью сказать, что переход на новые микросхемы вполне обоснован.
В качестве альтернативы ATSAM3S в ближайшее время будет предложен «младший» аналог — микросхемы серии ATSAM3N, которые будут ориентированы на класс бюджетных задач, где не востребован такой широкий набор возможностей ATSAM3S.
Литература
- Hixon T. Migrating ARM7 code to a Cortex-M3 MCU — http://www.embedded.com/design/220900313
- www.atmel.com/at91
- www.at91.com