Компания atmel расширяет arm cortex-m4-совместимое семейство флеш-микроконтроллеров

Быстрый старт с SAM4S-EK (Cortex M4 от Atmel) — Community «Электронные Поделки» on DRIVE2

Недавно компания Rainbow подарила мне плату SAM4S-EK и отладчик SAM-ICE, правда с одним условием, нужно было написать обзор данной платы.
Я же решил проявить небольшую инициативу и сделать более полезную для сообщества статью.

Не сочтите за рекламу кого либо или чего либо, запись больше для саморазвития читателей.

Весь комплект

Итак плата SAM4S-EK, что же это за зверь, с чем его есть, что и как установить, чтобы написать и самое главное протестировать в железе первые строки кода.

Что есть на плате:

Микроконтроллер SAM4S (1024 Kb Flash, 128 Kb SRAM),2 Гигабайта NAND Flash, разъем под Micro-SD карту памяти, графический TFT дисплей, микрофон, выход на наушники, аналоговые входы и выходы, кнопки, переменные резисторы и прочие вещи, которые могут каким либо образом пригодится разработчику.

Буду сравнивать данное семейство микроконтроллеров с их прямыми конкурентами STM32, которые я активно использую в своих разработках в последнее время.

Писать код мы будем в Atmel Studio с использованием ASF библиотек.
ASF— это по сути подобие HAL у STM32, но есть и отличия. Например код, написанный на ASF будет работать как на XMEGA так и на SAM контроллерах, то есть не возникает проблем с переносом своих наработок с более раннего семейства на более позднее без перелопачивания тысяч строк кода. У STM с этим большие проблемы.

Так как я отношусь к категории олдфагов, сидящих на старом железе со старыми и давно не поддерживаемыми операционными системами, то мне пришлось попотеть, чтобы найти Atmel Studio 6 совместимую с Windows XP. Обладатели же Windows 7 и выше могут без проблем скачать последнюю версию студии с официального сайта

Весит много, но…

В дистрибутив уже входят драйвера для SAM-ICE и других популярных программаторов и отладчиков, а так же библиотека ASF.

Если же вы не планируете или не желаете ставить студию, а предпочитаете использовать другие среды разработки — ASF можно найти в виде отдельного пакета все на том же сайте.

Среда разработки бесплатна, что для меня немаловажный плюс, так как стараюсь последнее время не использовать пиратский софт.

Продолжим.
Студию установили, тысячу раз перезагрузились (а как вы хотели, это ж студия, пусть и переработанная компанией Atmel но в глубине всё же та самая, тормозная Visual Studio)

Теперь создадим новый проект File > New > Project

Создаем проект из шаблона, выбираем используемую плату C/C++ > User Board > User Board SAM4S-EK

Задаем имя, расположение проекта и имя рабочего пространства. Solution это то же самое, что и Workspace в IAR.

Все, мы создали первый проект. Перед нами окно Atmel Studio

Для добавления функционала из библиотеки ASF можно применить Wizard: Project > ASF WizardДобавляем необходимые драйвера.

Шаблон программы для микроконтроллера у нас есть, драйвера периферии тоже, осталось дописать логику работы.

Помигаем светодиодами на плате.

Они подключены к выводам PA19 и PC20.

Для сборки прошивки нажимаем Build > Build Solution — если ошибок в коде нет — то прошивка соберется

Заливаем прошивку в плату Debug > Start Without Debugging. Сначала правда указываем в открывшемся окне, через какой программатор это сделать.

Смотрим на результат, все получилось, ничего сложного.

PS Дабы не возникало комментариев вида: Зачем это здесь, у нас все равно нет такой платы, че она так дорого стоит, как ее в устройство запихивать и тд.
Во первых: я плату не покупал, сколько она примерно стоит представляю, но она и нужна постольку поскольку, можно и свою плату под выбранный микроконтроллер развести.

Во вторых: материал предоставлен в образовательных целях.
В третьих: плата оценочная, то есть на ней прикидывается функционал будущего устройство, а потом уже разводится и делается своя печатная плата в которую впаивается микроконтроллер.

Это не ардуино, котрую лепят целиком в готовое устройство, а лишь инструмент для разработки.

В дальнейшем планирую более глубокое знакомство с данным семейством микроконтроллеров, хочу попробовать портировать свой информер, который сейчас работает на STM32. Стоит ли публиковать продолжение моих экспериментов в данном сообществе в дальнейшем?

Источник: https://www.drive2.com/c/2534864/

Atmel пополнила семейство микроконтроллеров с ядром ARM Cortex-M4

» Новости » Микроконтроллеры

15-01-2013

Atmel » SAM4E

32-разрядные микроконтроллеры, работающие на частоте до 120 МГц, снабжены контроллером Ethernet, двухканальным контроллером CAN шины и расширенным аналоговым функционалом

Компания Atmel сообщила о пополнении своего семейства 32-разрядных Flash-микроконтроллеров с ядром ARM Cortex-M4 – в состав семейства вошла серия SAM4E. Новые микроконтроллеры имеют высокую производительность, снабжены дополнительными коммуникационными интерфейсами, модулем вычислений с плавающей точкой и расширенным функционалом аналоговой периферии.

Богатая периферия, вычислительная мощность и функционал делают идеальным применение микроконтроллеров SAM4E в системах автоматизации, системах управления зданиями, приложениях M2М, в системах управления и контроля энергопотребления. Также они могут применяться в приложениях, где требуется высокоскоростной обмен данными, как по проводным, так и по беспроводным интерфейсам.

Максимальная рабочая частота ядра ARM Cortex-M4 в представленных микроконтроллерах достигает 120 МГц, а интегрированный модуль арифметики с плавающей точкой и кэш обеспечивают нулевое время ожидания при доступе к Flash-памяти на максимальной тактовой частоте. В микроконтроллеры серии SAM4E интегрирована Flash-память различных объемов (максимальный объем 1 Мбайт), функции безопасности и коммуникационные интерфейсы, такие как Ethernet IEEE1588 MAC, USB 2.0 Device и два канала CAN.

Особенностью аналоговой периферии микроконтроллеров является инеграция двух независимых 16-битных АЦП, которые поддерживают функции одновременного преобразования и удержания данных, корректировки смещения и ошибок усиления. Встроенный усилитель с программируемым коэффициентом усиления позволяет делать измерения различных сигналов в широком диапазоне и с высокой точностью.

Отличительные особенности:

  • 32-битный микроконтроллер с ядром ARM Cortex-M4, максимальная рабочая частота 120 МГц;
  • модуль арифметики с плавающей точкой;
  • встроенный модуль шифрования AES;
  • встроенная память:
    • 512 Кбайт и 1 Мбайт Flash с поддержкой функциии самопрограммирования;
    • до 128 Кбайт ОЗУ;
  • интерфейс внешней шины;
  • коммуникационные интерфейсы:
    • полноскоростной USB 2.0 Device, встроенный USB приемопередатчик;
    • Ethernet;
    • 3 канала SPI;
    • 2 канала TWI (I2C);
    • 2 канала CAN шины;
    • 4 канала UART;
  • аналоговая периферия:
    • два независимых 16-битных АЦП (до 24 каналов);
    • аналоговый компаратор;
    • двухканальный 12-битный ЦАП;
    • датчик температуры;
    • поддержка емкостного сенсорного интерфейса (32 канала);
  • до 117 линий ввода/вывода;
  • 2 канала квадратурного энкодера;
  • интерфейс карт памяти SD/MMC;
  • до 9 таймеров;
  • диапазон напряжения питания 1.6 – 3.6 В.

Серия SAM4E поддерживается в интегрированной платформе разработки Atmel Studio 6. Для оценки возможностей микроконтроллеров, разработки и отладки приложений компания предлагает оценочный набор ATSAM4E-EK.

Образцы микроконтроллеров серии SAM4E с 1 Мбайт Flash-памяти доступны для заказа. Массовое производство микроконтроллеров в корпусах BGA и QFP намечено на февраль 2013 г.

atmel.com

Источник: https://www.rlocman.ru/news/new.html?di=146752

Программирование и отладка микроконтроллеров ARM Cortex-M4 фирмы Atmel в среде операционной системы Linux. Часть 1

Представляем электронную версию статьи из номера №2 за 2016 год журнала Компоненты и технологии. Автор Курниц Андрей.

В статье описан процесс развертывания экосистемы разработки приложений для микроконтроллеров Atmel серии SAM4S в среде операционной системы Linux. Читатель познакомится также с оценочной платой SAM4S-EK и семейством ARM Cortex-M4 микроконтроллеров фирмы Atmel. Приведены рекомендации по работе с адаптером отладки SAM-ICE (он же J-LINK) и программой OpenOCD.

Введение

Выбор операционной системы Linux в качестве среды для программирования микроконтроллеров ARM Cortex-M4 фирмы Atmel сложно назвать общепринятой практикой. Напротив, для разработки под свои микроконтроллеры Atmel свободно распространяет среду Atmel Studio 7, предназначенную исключительно для операционных систем Windows.

Не будет секретом и тот факт, что разворачивание и настройка среды Atmel Studio 7 для новичка окажется куда проще, чем выбранный автором путь. Автор предлагает использовать среду разработки Qt Creator в связке с инструментарием для кросс-компиляции GCC и с пакетом OpenOCD для отладки.

В качестве операционной системы автор выбрал Linux Lubuntu 14.04 LTS (выполняющуюся на виртуальной машине, но это не существенно). Такой подход позволяет с легкостью переходить на другие ARM (и не только) микроконтроллеры, не меняя при этом привычный комплект инструментов.

Например, в [1] приводится пример разработки для микроконтроллеров STM32F4 фирмы ST microelectronics с применением такого же комплекта инструментов.

Несколько слов об используемой терминологии. Аппаратное устройство, которое подключается к целевому микроконтроллеру и к рабочей станции, далее называется отладочным адаптером. Отладчиком же будет называться компьютерная программа, служащая для пошагового выполнения программы, просмотра значений ячеек памяти и т.д.

Аппаратная платформа

Рис. 1. Внешний вид платы SAM4S-EK с подключенным отладочным адаптером.

В основе оценочной платы лежит микроконтроллер SAM4S16C фирмы Atmel, ключевые особенности которого приведены ниже:

  1. Ядро ARM Cortex-M4, максимальная тактовая частота 120МГц
  2. Объемы памяти на кристалле: 1 Мбайт flash-памяти и 128 кбайт ОЗУ
  3. Среди периферийных устройств можно выделить: USB контроллер (работа только в режиме Device), контроллер внешней NAND flash-памяти, контроллер SD карт памяти
  4. Контроллеры интерфейсов UART, I2C, SPI и др.
  5. 100-выводный корпус

Среди особенностей оценочной платы SAM4S-EK можно выделить следующие:

  1. Микросхема NAND flash-памяти Micron MT29F2G08ABAEA объемом 2 Гбит
  2. Цветной дисплейный модуль FTM280C34D разрешением 320×240 точек, с диагональю 2,8 дюйма и с резистивной сенсорной панелью. Дисплей содержит встроенный контроллер Ilitek ILI9320, подключенный к микроконтроллеру по параллельному интерфейсу.
  3. Контроллер резистивной сенсорной панели Texas Instruments ADS7843E
  4. Распаяны два DB9 разъема для двух портов RS-232 (один из них — с сигналами RTS, CTS), выведен также интерфейс RS-485
  5. Элементы сенсорного управления по технологии Atmel QTouch, расположены прямо на печатной плате (сенсорные кнопки 5 шт. и слайдер)
  6. Электретный микрофон и операционный усилитель TS922 для него
  7. Усилитель звуковой частоты для подключения наушников TPA022, а также 3,5мм гнездо типа «джек».
  8. Два коаксиальных BNC разъема, которые подключены к встроенным АЦП и ЦАП блокам микроконтроллера.
  9. Держатель micro-SD карты памяти
  10. 63 вывода общего назначения (GPIO) выведены на IDC разъемы с шагом 2,54 мм

Более подробно как о плате SAM4S-EK, так и о микроконтроллере SAM4S16C можно ознакомиться на сайте Atmel [12].

Комплект инструментов

Когда аппаратная (плата SAM4S-EK) и программная (операционная система Linux Lubuntu) платформы определены, можно построить систему аппаратных и программных инструментов для программирования и отладки целевого микроконтроллера (рис. 2)

Рис. 2. Структурная схема процесса отладки микроконтроллера

Микроконтроллер по интерфейсу JTAG подключен к отладочному адаптеру SAM-ICE, который в свою очередь подключен к рабочей станции по интерфейсу USB. Питание отладочного адаптера подается также по интерфейсу USB, а питание платы разработчика вместе с микроконтроллером должно осуществляться отдельно (на рис.

2 не показано). На рабочей станции должна выполняться некая программа, которая будет взаимодействовать с адаптером отладки SAM-ICE с одной стороны и отладчиком GDB, входящим в инструментарий GCC, с другой.

На эту роль идеально подходит свободно распространяемая программа OpenOCD [4-6], которая помимо отладки может использоваться для загрузки прошивки во flash-память микроконтроллера и для внутрисхемного тестирования.

Программа OpenOCD поддерживает как адаптер отладки SAM-ICE (в действительности это аналог популярного J-LINK), так и оценочную плату SAM4S-EK (соответственно и микроконтроллеры Atmel SAM4). Кроме этого OpenOCD доступна в виде исходных кодов и может быть собрана для операционной системы Linux.

Интегрированная среда разработки Qt Creator (рис. 2) получает отладочную информацию через отладчик GDB и предоставляет в удобном для разработчика виде (точки останова, значения переменных, пошаговое выполнение программы и др.)

Программа OpenOCD работает в режиме сервера и допускает подключение других клиентов-программ, например, telnet-клиента (рис. 2). Это может быть удобно для серийного программирования микроконтроллеров на производстве.

Установка OpenOCD

Установить OpenOCD можно наименее трудоемким способом — из репозиториев Ubuntu, для чего следует выполнить команду:

sudo apt-get install openocd

Однако в этом случае будет установлена устаревшая версия 0.7.0 (проверить версию установленной программы OpenOCD можно выполнив команду openocd —version). Для получения актуальной версии (на момент написания статьи — 0.9.0), необходимо собрать OpenOCD из исходных кодов. Для этого надо выполнить следующие действия:

1. Загрузить исходные коды OpenOCD с сайта [2], выполнив команду:

cd ~ wget http://downloads.sourceforge.net/project/openocd/openocd/0.9.0/openocd-0.9.0.tar.bz2.

В результате в домашнем каталоге должен появиться файл-архив openocd-0.9.0.tar.bz2.

2. Далее следует разархивировать OpenOCD, выполнив команду:

tar xvf openocd-0.9.0.tar.bz2

В результате, в домашнем каталоге должен появиться каталог с исходным кодом openocd-0.9.0

3. Проверить, установлена ли библиотека libusb-dev, которая необходима для взаимодействия рабочей станции и адаптера SAM-ICE по USB интерфейсу. Чтобы проверить наличие библиотеки libusb-dev, следует выполнить команду:

sudo dpkg –get-selections | grep libusb

Если библиотека установлена, то вывод должен быть примерно такой:

libusb-0.1-4:i386 install libusb-1.0-0:i386 install libusb-1.0-0-dbg:i386 install libusb-1.0-0-dev:i386 install libusb-1.0-doc install libusbmuxd2 install

Если библиотека не установлена, то ее установить ее можно, выполнив команду:

sudo apt-get install libusb-dev

4. Для сборки OpenOCD также потребуются следующие пакеты:

  • make,
  • libtool,
  • pkg-config версии 0.23 и выше,
  • autoconf версии 2.64 и выше,
  • automake версии 1.9 и выше,
  • texinfo

Проверить их наличие можно тем же способом, что и библиотеки libusb-dev, как описано выше.

5. Теперь можно собрать пакет OpenOCD с поддержкой адаптера SAM-ICE, для чего следует последовательно выполнить следующие команды:

cd ~/openocd-0.9.0 ./configure –enable-jlink make sudo make install

Ключ —enable-jlink предписывает включить поддержку адаптера J-LINK. Дело в том, что адаптер SAM-ICE представляет собой модифицированный J-LINK BASE от фирмы Segger так, что он может работать только с микроконтроллерами фирмы Atmel. Однако программный интерфейс для работы с J-LINK полностью совместим с адаптером SAM-ICE.

Подключение адаптера SAM-ICE

Далее следует подключить адаптер SAM-ICE к рабочей станции и проверить список подключенных по USB устройств командой: lsusb

Если адаптер SAM-ICE подключен, то вывод команды должен содержать следующую строку:

Bus 002 Device 003: ID 1366:0101 SEGGER J-Link ARM

Где 1366 — VID-номер (код производителя USB-устройства), 0101 — PID-номер (код изделия). Эти номера потребуются в дальнейшем для настройки менеджера устройств udev.
Чтобы обеспечить взаимодействие сервера отладки OpenOCD с адаптером SAM-ICE по интерфейсу USB необходимо создать файл-правило для менеджера устройств udev, например, так:

sudo nano /etc/udev/rules.d/45-jlink.rules

В окне редактора Nano ввести следующий текст:

SUBSYSTEMS==”usb”, ATTRS{idVendor}==”1366″, ATTRS{idProduct}==”0101″, MODE:=”0666″, SYMLINK+=”jlink_%n”

Где поля idVendor и idProduct соответствуют полученным ранее номерам VID и PID. Далее следует перезагрузить рабочую станцию.

Если же сконфигурировать udev, как описано в [3], то запуск сервера отладки OpenOCD будет возможен только с правами суперпользователя, что в дальнейшем создаст проблемы с отладкой из среды QtCreator.

Совместная работа адаптера SAM-ICE и сервера отладки OpenOCD

Необходимо в каталоге проекта (автор использовал каталог ~/sam/) создать файл конфигурации openocd.cfg со следующим содержимым:

telnet_port 4444 gdb_port 3333 source [find interface/jlink.cfg] source [find board/atmel_sam4s_ek.cfg] gdb_flash_program enable

Файл openocd.cfg содержит предписания для сервера OpenOCD, а именно:

  • разрешить подключение к серверу по протоколу telnet через порт 4444,
  • установить порт 3333 для подключения отладчика GDB,
  • соединяться с адаптером J-LINK (SAM-ICE),
  • целевая платформа — оценочная плата Atmel SAM4S_EK,
  • разрешить программирование flash-памяти.

Теперь, когда необходимое программное обеспечение установлено, а отладчик подключен к рабочей станции и целевому микроконтроллеру, можно проверить работоспособность системы. Для этого следует, находясь в каталоге проекта (~/sam/), запустить сервер OpenOCD командой

openocd

Если все сделано правильно, в терминал будет выведено:

Open On-Chip Debugger 0.9.0 (2015-12-29-14:45) Licensed under GNU GPL v2 For bug reports, read http://openocd.org/doc/doxygen/bugs.html Info : auto-selecting first available session transport “jtag”. To override use 'transport select '. adapter speed: 500 kHz adapter_nsrst_delay: 100 jtag_ntrst_delay: 100 cortex_m reset_config sysresetreq Info : J-Link ARM V8 compiled Nov 25 2013 19:20:08 Info : J-Link caps 0xb9ff7bbf Info : J-Link hw version 80000 Info : J-Link hw type J-Link Info : J-Link max mem block 9296 Info : J-Link configuration Info : USB-Address: 0x0 Info : Kickstart power on JTAG-pin 19: 0xffffffff Info : Vref = 3.313 TCK = 1 TDI = 0 TDO = 0 TMS = 0 SRST = 1 TRST = 1 Info : J-Link JTAG Interface ready Info : clock speed 500 kHz Info : JTAG tap: sam4.cpu tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4) Info : sam4.cpu: hardware has 6 breakpoints, 4 watchpoints

При этом приглашение командной строки выведено не будет, что свидетельствует о том, что сервер успешно запущен и установлено соединение с целевым микроконтроллером через отладочный адаптер SAM-ICE.
Теперь можно подключиться к серверу отладки по протоколу telnet, для чего надо открыть второй терминал и выполнить команду:

telnet localhost 4444

Где 4444 – номер порта, заданный ранее в конфигурационном файле openocd.cfg. В результате будет установлено соединение с сервером отладки и появится приглашение для ввода команд:

Trying 127.0.0.1… Connected to localhost. Escape character is '^]'. Open On-Chip Debugger >

Когда соединение с сервером установлено, можно выполнить любую из команд OpenOCD (полный список — в [7]), например, просмотреть содержимое регистров ядра микроконтроллера. Для этого следует остановить выполнение программы в микроконтроллере командой halt:

> halt target state: halted target halted due to debug-request, current mode: Thread xPSR: 0x81000000 pc: 0x004003e6 msp: 0x20003488

Затем просмотреть непосредственно содержимое регистров командой reg:

> reg ===== arm v7m registers (0) r0 (/32): 0x00000013 (1) r1 (/32): 0x00000800 (2) r2 (/32): 0x004023D8 (3) r3 (/32): 0x00000000 (4) r4 (/32): 0x81CBF6AB (5) r5 (/32): 0x788E2033 (6) r6 (/32): 0x5C2195CC (7) r7 (/32): 0x20003488 … … …

Завершить работу сервера OpenOCD можно командой shutdown, при этом автоматически закроется и telnet соединение:

> shutdown shutdown command invoked Connection closed by foreign host. andy@andy-vm:~$

Связку «адаптер SAM-ICE – программа OpenOCD» можно использовать для серийного производства для загрузки готовой прошивки во flash-память микроконтроллера. Например, чтобы очистить всю flash-память микроконтроллера Atmel SAM4S16C, необходимо выполнить команду:

openocd -f interface/jlink.cfg -f board/atmel_sam4s_ek.cfg -c init -c halt -c “flash erase_address 0x00400000 0x100000” -c reset -c shutdown

Где 0x00400000 — адрес начала flash-памяти в адресном пространстве, 0x100000 — размер flash-памяти в шестнадцатеричной системе счисления, для микроконтроллера SAM4S16C составляет 1 Мбайт = 2^20 байт = 0x100000(16) байт. Адрес начала flash-памяти и ее размер получен из документации на данный микроконтроллер [12].
В случае успешного стирания вывод программы OpenOCD должен содержать строку:

erased address 0x00400000 (length 1048576) in 4.685278s (218.557 KiB/s)

Для непосредственно записи прошивки во flash-память надо выполнить команду:

openocd -f interface/jlink.cfg -f board/atmel_sam4s_ek.cfg -c init -c halt -c “flash write_image erase sam.hex” -c reset -c shutdown

Где sam.hex — имя файла с прошивкой в формате Intel HEX. OpenOCD принимает также другие форматы файлов с прошивкой, например binary и ELF.
В случае успешной загрузки прошивки во flash-память вывод должен содержать строки:

Info : sam4 does not auto-erase while programming (Erasing relevant sectors) Info : sam4 First: 0x00000000 Last: 0x00000000 Info : Erasing sector: 0x00000000 wrote 8192 bytes from file sam.hex in 2.979438s (2.685 KiB/s)

То есть в данном случае очищается лишь те сектора flash-памяти, в которые будет размещена прошивка.

Создание комплекта в Qt Creator

Теперь, когда связка «адаптер отладки — сервер отладки» настроена и готова к работе, можно приступать к настройке интегрированной среды разработки, в нашем случае — Qt Creator.

При этом предполагается, что на рабочую станцию уже установлен инструментарий GCC для сборки для микроконтроллеров ARM, а также установлена и настроена сама среда Qt Creator, процесс установки и настройки которых подробно описан в [1].

Прежде всего, необходимо добавить сервер отладки, для этого в Qt Creator следует вызвать настройки (пункт главного меню «Инструменты –> Параметры…»), выбрать вкладку «BareMetal» («Голое устройство»), нажать «Добавить» и выбрать пункт «OpenOCD».

Появится окно, где можно указать параметры запуска сервера (рис. 3). Следует отметить, что поддержка OpenOCD добавляется в среду Qt Creator при включении модуля «BareMetal», как это сделать — описано в [1].

Рис. 3. Добавление сервера отладки OpenOCD в Qt Creator.

Имя сервера отладки можно задать «OpenOCD + SAM-ICE» (рис. 3), «Режим запуска» следует установить в «Запуск в режиме TCP/IP», так как сервер OpenOCD будет выполняться на рабочей станции, то поле «Хост» должно содержать имя компьютера «localhost» и порт 3333, указанный ранее в конфигурационном файле openocd.cfg.

В поле «Исполняемый файл» следует вписать имя исполняемого файла openocd (или полный путь к нему, если необходимо). Поле «Файл конфигурации» должно содержать путь к файлу конфигурации OpenOCD, созданному ранее, в данном случае это ~sam/openocd.cfg. Поля «Команды инициализации» и «Команды сброса» по умолчанию содержат команды управления сервером, менять их содержимое не требуется.

Далее можно добавить новое устройство, для которого будет производиться сборка и отладка — микроконтроллер семейства Atmel SAM4S. Для этого в настройках Qt Creator следует выбрать вкладку «Устройства» и нажать «Добавить…». После чего ввести имя устройства, например «Atmel SAM» и выбрать настроенный ранее сервер отладки «OpenOCD + SAM-ICE».

Когда устройство добавлено, можно окончательно настроить комплект для сборки так, как показано на рис. 4.

Рис. 4. Добавление комплекта для микроконтроллеров Atmel SAM4S в Qt Creator.

Компилятор GCC и отладчик GDB заданы из состава инструментария GCC для микроконтроллеров ARM так, как описано в [1].

Продолжение статьи будет оформлено в виде отдельной публикации, чтобы не раздувать объем.

Литература

ссылка на оригинал статьи https://habrahabr.ru/post/281665/

Источник: http://savepearlharbor.com/?p=278384

Интересные семейства микроконтроллеров Cortex от Atmel

18 ноября 2015 в 18:33 (МСК) | сохранено19 ноября 2015 в 11:34 (МСК)<\p>

Общаясь с разработчиками различной электроники (как любителями, так и профессионалами), я и мои коллеги обратили внимание, что широкой публике практически неизвестны микроконтроллеры Atmel на платформе Cortex-M.

Я решил подготовить обзор по новым семействам микроконтроллеров, чтобы показать: не AVRом единым интересен Atmel.Немного историиЭпоха ARM Cortex-M началась с платформы Cortex-M3. Несмотря на то, что Atmel стал одним из первых производителей микроконтроллеров на платформе ARM7TDMI, компания не проявила интереса к новой платформе, сфокусировавшись на развитии собственных платформ.

В результате этого, первыми серийными контроллерами нового типа стали микроконтроллеры STM32 от компании ST. Вторым обстоятельством послужило то, что выпуск первых микроконтроллеров на платформе Cortex-M у Atmel пришелся не на лучшие времена. Следствием этого стали существенно более высокие цены на Atmel’овские контроллеры в сравнении с ST.

Оба этих обстоятельства закрепили приоритет за микроконтроллерами STM32. Причем это лидерство год за годом закреплялось все сильнее, поскольку в Сети стало появляться все больше и больше материалов по разработке на STM32. А к аналогам от Atmel на нашем рынке стал применяться один из двух стереотипов: 1. Atmel = AVR 2. Cortex’ы от Atmel дорогие и не интересны для использования.

Если первый стереотип развеивается заходом в соответствующий раздел на сайте Atmel, то со вторым все немного сложнее. С ним мы и попробуем разобраться.

В обзоре я не стану перечислять все семейства, расскажу только о тех, которые отвечают одному или обоим критериям: • уникальные особенности семейства; • цена лучше, чем у конкурентов, или сопоставима (здесь я вынужден сделать оговорку, что речь идет о сопоставимости оптовых цен).
Это микроконтроллеры на основе ядра ARM Cortex-M7, дебютировавшего в этом году у Atmel и у ST. Преимущества этого ядра по сравнению с предшествующим Cortex-M4 заключаются в наличии аппаратной поддержки вычислений с плавающей точкой двойной точности (у Cortex-M4 – только одинарной точности, и не во всех Cortex-M4, а только в Cortex-M4F), более высокой производительности (DMIPS/MHz примерно в 1,6 раза выше) и более высокой тактовой частоте ЦПУ (до 300 МГц). SAM S – это «базовое» семейство, SAM E – это семейство c Ethernet и CAN на борту. Микроконтроллеры доступны в корпусах LQFP (64, 100, 144 вывода) и LFBGA (100 и 144 вывода). Размеры Flash памяти – от 512 до 2048 КБ. Все контроллеры имеют на борту USB (Host, Device) и интерфейс для подключения КМОП-матриц. В некоторых модификациях (зависит от размера корпуса) имеется интерфейс внешней памяти и интерфейс работы с картами памяти. Кроме этих двух семейств есть еще семейство SAM V, но это аналоги названных ранее семейств для автомобильной промышленности. Столкнуться с ними Вы можете только в отладочном комплекте, общим для всех семейств с ядром Cortex-M7. Если сравнивать эти контроллеры с аналогами от ST, то в пользу Atmel выступают: • большая тактовая частота CPU (300 MHz vs 216 MHz), что обеспечивает большую производительность; • наличие чипов с памятью до 2048 MB Flash (у ST только до 1024 MB); • наличие семейства без CAN и Ethernet (что позволяет не переплачивать за эти функции, если они не требуются в проекте). Преимуществом контроллеров от ST является: • наличие интерфейса для подключения ЖК дисплеев (у Atmel для этого рекомендуется использовать интерфейс внешней памяти); • наличие семейства без криптографии (у Atmel криптография есть на борту всех микроконтроллеров). Микроконтроллеры от Atmel не проигрывают в цене ST, а потому вызвали большой интерес у наших клиентов. У микроконтроллеров этого семейства сохраняется pin-to-pin совместимость с «младшими» семействами на основе Cortex-M4 (SAM4S и SAM4E). Единственный подводный камень в том, что эта совместимость не распространяется на выводы USB. Это связано с тем, модули USB у этих семейств разные: у Cortex-M4 — USB Device, у флагманов — USB Host и Device. Это семейство микроконтроллеров на основе Cortex-M4 с тактовой частотой 48 МГц и технологией picoPower, что обеспечивает низкое потребление (меньше 90 мкА/МГц). По производительности это семейство занимает промежуточную нишу между семействами STM32 L1 (Cortex-M3, 32 MHz) и STM32 L4 (Cortex-M4, 80 MHz). Цены на этим микроконтроллеры приблизительно одинаковы. Набор периферии также схож, но у SAM4L есть два особенных модуля: 1. модуль измерения частоты; 2. программируемый логический модуль. Первый модуль позволяет измерять частоту внешнего сигнала, сравнивая измеряемую частоту с опорной. Второй модуль позволяет отказаться от использования логических микросхем на плате (если конечно не требуется очень сложной логики). Принцип работы прост: четыре входа составляют 16 возможных комбинаций, для каждой из комбинаций задается соответствующее состояние вывода (0 или 1), дальше модуль работает без участия ЦПУ согласно заданной таблице состояний. В микроконтроллере может быть один или два таких модуля, в зависимости от корпуса. Еще одно семейство микроконтроллеров Cortex-M4 с низким энергопотреблением. С точки зрения процессора основное отличие от предшествующего семейства в наличии модуля для вычислений с плавающей точкой (Cortex-M4F). В этом семействе также применена технология picoPower, потребление чуть больше чем у SAM4L, но все равно на достаточно низком уровне (меньше 100 мкА/МГц). Семейство состоит из 4 микроконтроллеров, которые отличаются между собой размером flash-памяти (256 или 512 КБ), максимальной тактовой частотой процессора (от 48 до 120 МГц), размерами корпуса (LQFP100/64, WLCSP49). Небольшое разнообразие вариантов микроконтроллеров с лихвой компенсируется ценами, которые существенно ниже цен конкурентов. Мощные производительные контроллеры — это, конечно, хорошо, но настоящую революцию в мире микроконтроллеров совершила все-таки платформа Cortex-M0. 32-разрядные микроконтроллеры уверенно вытесняют 8-битные контроллеры не только производительностью, но и ценой. Atmel также вывела на рынок ряд семейств на этой архитектуре. Отличительной особенностью этих семейств является модули SERCOM, которые в зависимости от конфигурации могут выполнять роль UART, SPI, I2C, при этом есть возможность выбирать выводы, которые используются этим модулем. Другая особенность: развитый аппаратный модуль PTC, с помощью которого можно создавать сенсорные интерфейсы с большим количеством элементов управления (кнопок, слайдеров и т.д.). Это базовое семейство, которое ложится в основу всех остальных семейств Cortex-M0. Если не принимать во внимание уже названные особенности, это семейство можно было бы считать вполне заурядным: обычный набор периферии, обычный набор корпусов, стандартная линейка размеров памяти, средняя цена на рынке. Тем не менее, это семейство заслуживает упоминания по двум причинам. Первая причина заключается в том, что старшие представители (SAM D20 и SAM D21) этого семейства служат основой для микроконтроллеров других семейств. SAM D20 обладает всеми описанными выше особенностями atmel'овских Cortex-M0+. SAM D21 является его дальнейшим развитием: добавлен USB, DMA, I2S. Между собой эти контроллеры pin-to-pin совместимы, имеют одинаковую линейку корпусов (LQFP32/48/64) и flash-памяти (от 16 до 256 КБ). Вторая причина — недавно анонсированные младшие представители: микроконтроллеры SAM D09, SAM D10, SAM D11. Корпуса имеют небольшое количество выводов: SOIC14/SOIC20, QFN24. Возможный размер flash-памяти — 8 или 16 КБ. Сами семейства отличаются набором доступной периферии, при этом SAM D11 имеет на борту USB Device. Цены на маленькие контроллеры тоже маленькие. Разумеется, что накопленный опыт в создании малопотребляющих микроконтроллеров не мог быть не использован для Cortex-M0+. Так появилось семейство SAM L. Отличительная черта этих микроконтроллеров — очень низкое для Cortex-M0+ потребление (меньше 35 мкА/МГц). Так же здесь есть модуль программируемой логики, причем значительно усовершенствованный по сравнению с модулем у SAM 4L. Модуль позволяет не только реализовывать логические операции (И, НЕ, ИЛИ и т.д.), но и создавать более сложные элементы логики — триггеры и защелки. SAM L бывают двух видов: SAM L21 — малопотребляющие микроконтроллеры с USB, pin-to-pin совместимые с SAM D21, и SAM L22 — тоже самое, но с LCD дисплеем. Таким образом, каждая из линеек является конкурентом соответствующих семейств STM32L0: STM32L0x2 и STM32L0x3. SAML21 уже доступны для заказа, массовое производство SAM L22 планируется в начале следующего года. Опять таки, по цене SAM L21 сопоставимы с аналогами от ST. Очень интересное семейство, производство которого начнется в начале следующего года. От микроконтроллеров Cortex-M0+ конкурентов его в первую очередь отличает диапазон напряжений: 2.7 — 5.5V. Другими особенностями являются: измеритель частоты, поддержка интерфейса LIN, модуль программируемой логики, аналогичный SAM L. Анонсированы два подсемейства: SAM C20 — pin-to-pin совместимые контроллеры с SAM D20, корпуса и варианты размера flash-памяти так же аналогичны. SAM C21 — обратно совместимые с SAM C21 контроллеры (по выводам, памяти и периферии), добавлены два контроллера CAN, аппаратный ускоритель деления и вычисления квадратного корня, датчик температуры выполнен в виде отдельного модуля (а не заведен на АЦП). Цены пока не известны. Как, я надеюсь, видно из этого обзора, Atmel прилагает серьезные усилия для возвращения себе лидерства на рынке микроконтроллеров. Это выражается как и в тенденции удешевления новых семейств микроконтроллеров, так и в наделении этих семейств интересными, а иногда и уникальными функциями. Конечно, достоинства каждого из перечисленных семейств не ограничиваются тем, что я назвал. Я это сделал сознательно, для того чтобы не раздувать текст и не сводить все к переписыванию параметров из даташитов. Перед написанием статьи я по памяти набросал план, перечислив те семейства, которые мне кажутся наиболее интересными, и те особенности этих семейств, которые мне запомнились.Ложка дегтя

Так как спрос на микроконтроллеры Cortex от Atmel в России пока очень мал, то могут возникнуть проблемы с доступностью понравившегося семейства. К сожалению, это объективный факт. Но не стоит унывать: если Вам требуются образцы для разработки (пусть небольшой или даже частной), обращайтесь — мы постараемся помочь.

Источник статей: Хабр.

Время указано в том часовом поясе, который установлен на Вашем устройстве.

Версия сайта: 0.8.
Об ошибках, предложениях, пожалуйста, сообщайте через Telegram пользователю @leenr, по e-mail i@leenr.ru или с помощью других способов связаться.

Источник: https://sohabr.net/habr/post/275395/?version=130708

Atmel ARM в DIY?! «Hello world» в Atmel Studio для Cortex M4

[private] Магазин роботов и робототехники бытовые роботы квадрокоптеры гироскутеры конструкторы роботы игрушки новости [/private]

У меня есть четкая ассоциация компании Atmel и супер-успешных контроллеров Atmega. Когда речь идет о чем-то немного более мощном, о следующей ступени, я сразу думаю о stm32.

Но совсем недавно мне удалось проверить на деле микроконтроллеры от Atmel SAM4S на базе ARM Cortex-M4. Это отличный вариант для перехода с Arduino, подумал я. У меня оказался не просто голый микроконтроллер, а отладочная плата Sam4S EK rev8. Для прошивки я использовал программатор SAM-ICE.

Мой вариант «Hello world!» или «Blink» под катом.

Взгляните на наших роботов

Компания Atmel, на мой взгляд, запоздала с входом в сегмент ARM-микроконтроллеров, здесь уже достаточно прочно обосновалась ST с контроллерами STM32. Я решил сравнить продукты от Atmel и ST.

Общие характеристики отладочной платы:

В плату впаян микроконтроллер ATSAM4S16C:

  • ядро Cortex-M4, 120МГц, с поддержкой DSP-инструкций
  • 1Мб Flash-памяти
  • 128Кб SRAM

периферия:

  • 4хUART
  • 3xSPI
  • 2xI2C
  • 1xUSB 2.0
  • 1хI2S
  • 1 интерфейс для карт памяти SDIO/SD/MMC
  • PWM: 4 канала, 16 бит
  • АЦП: 16 каналов, 12 бит
  • аналоговый компаратор
  • ЦАП: 2 канала, 12 бит
  • DMA: 24 канала

Взгляните на наших роботов

Datasheet. На самой отладочной плате видим следующее:

на штырьковые разъёмы (с шагом 2.54) выведены все выводы микроконтроллера (что не может не радовать). Кроме этого на плате:

  • 2 порта RS232
  • разъём RS485
  • разъём microSD карты памяти
  • порт для подключения ZigBee-модуля
  • 2.8″ LCD 320×240 на контроллере ILI9325 с резистивным сенсором
  • два BNC разъёма, один из них подключён к АЦП, второй к ЦАП.
  • встроенный микрофон
  • microUSB разъём (USB FS Device)
  • впаяна память NAND Flash 29F2G08ABAEA (256Мб)
  • сенсорные кнопки (Atmel QTouch), со слайдером
  • две пользовательские кнопки+кнопка сброса
  • энкодер, подключённый к АЦП микроконтрллера
  • JTAG-порт для подключения к SAM-ICE
  • mini jack для наушников + вывод для подключения динамика

Взгляните на наших роботов

Сравнение Atmel ARM с STM32

Цены в рублях STM32-691 и Atmel ARM-848 рублей

IDE

Взгляните на наших роботов

Радует присутствие бесплатного IDE, которое можно скачать с сайта Atmel. Да, это переработанная Visual Studio, со всеми вытекающими, но отлично подходит для быстрого старта. Скачиваем, устанавливаем, подключаем программатор к компьютеру и к плате. В установке и работе IDE скоростью не отличается, но в этом есть ряд плюсов для начинающих, дает время подумать.

Вместе со средой разработки будут доступны порядка 1600 примеров, среди которых примеры для рассматриваемой платы SAM4S-EK (работа с периферией, использование DSP, FatFS, FreeRTOS и т.д.).

Попробуем загрузить один из скриптов из примеров. New -> Project ->Example projects

Взгляните на наших роботов

Итак, после редактирования кода

Build > Build Solution, если нет ошибок все соберется, затем Debug > Start Without Debugging

Взгляните на наших роботов

Все ожидаемо работает.

Вывод

Сама плата, как ни странно, оправдала мои ожидания. Это хороший вариант для перехода с Arduino, так как позволяет быстро импортировать скетчи из Arduino IDE в полноценные C++ проекты.

Без пайки можно продумать устройство и написать скрипт, затем развести плату и на нее разместить микроконтроллер, это компактнее и производительнее.

Соглашусь, что отладочная плата дорогая, но платить за нее нужно один раз, плюс есть альтернатива за 450 руб. SAM D10 Xplained Mini.

Источник: http://robot-russia.ru/2016/09/21/atmel-arm-v-diy-hello-world-v-atmel-studio-dlya-cortex-m4/

Ссылка на основную публикацию
Adblock
detector
",css:{backgroundColor:"#000",opacity:.6}},container:{block:void 0,tpl:"
"},wrap:void 0,body:void 0,errors:{tpl:"
",autoclose_delay:2e3,ajax_unsuccessful_load:"Error"},openEffect:{type:"fade",speed:400},closeEffect:{type:"fade",speed:400},beforeOpen:n.noop,afterOpen:n.noop,beforeClose:n.noop,afterClose:n.noop,afterLoading:n.noop,afterLoadingOnShow:n.noop,errorLoading:n.noop},o=0,p=n([]),h={isEventOut:function(a,b){var c=!0;return n(a).each(function(){n(b.target).get(0)==n(this).get(0)&&(c=!1),0==n(b.target).closest("HTML",n(this).get(0)).length&&(c=!1)}),c}},q={getParentEl:function(a){var b=n(a);return b.data("arcticmodal")?b:(b=n(a).closest(".arcticmodal-container").data("arcticmodalParentEl"),!!b&&b)},transition:function(a,b,c,d){switch(d=null==d?n.noop:d,c.type){case"fade":"show"==b?a.fadeIn(c.speed,d):a.fadeOut(c.speed,d);break;case"none":"show"==b?a.show():a.hide(),d();}},prepare_body:function(a,b){n(".arcticmodal-close",a.body).unbind("click.arcticmodal").bind("click.arcticmodal",function(){return b.arcticmodal("close"),!1})},init_el:function(d,a){var b=d.data("arcticmodal");if(!b){if(b=a,o++,b.modalID=o,b.overlay.block=n(b.overlay.tpl),b.overlay.block.css(b.overlay.css),b.container.block=n(b.container.tpl),b.body=n(".arcticmodal-container_i2",b.container.block),a.clone?b.body.html(d.clone(!0)):(d.before("
"),b.body.html(d)),q.prepare_body(b,d),b.closeOnOverlayClick&&b.overlay.block.add(b.container.block).click(function(a){h.isEventOut(n(">*",b.body),a)&&d.arcticmodal("close")}),b.container.block.data("arcticmodalParentEl",d),d.data("arcticmodal",b),p=n.merge(p,d),n.proxy(e.show,d)(),"html"==b.type)return d;if(null!=b.ajax.beforeSend){var c=b.ajax.beforeSend;delete b.ajax.beforeSend}if(null!=b.ajax.success){var f=b.ajax.success;delete b.ajax.success}if(null!=b.ajax.error){var g=b.ajax.error;delete b.ajax.error}var j=n.extend(!0,{url:b.url,beforeSend:function(){null==c?b.body.html("
"):c(b,d)},success:function(c){d.trigger("afterLoading"),b.afterLoading(b,d,c),null==f?b.body.html(c):f(b,d,c),q.prepare_body(b,d),d.trigger("afterLoadingOnShow"),b.afterLoadingOnShow(b,d,c)},error:function(){d.trigger("errorLoading"),b.errorLoading(b,d),null==g?(b.body.html(b.errors.tpl),n(".arcticmodal-error",b.body).html(b.errors.ajax_unsuccessful_load),n(".arcticmodal-close",b.body).click(function(){return d.arcticmodal("close"),!1}),b.errors.autoclose_delay&&setTimeout(function(){d.arcticmodal("close")},b.errors.autoclose_delay)):g(b,d)}},b.ajax);b.ajax_request=n.ajax(j),d.data("arcticmodal",b)}},init:function(b){if(b=n.extend(!0,{},a,b),!n.isFunction(this))return this.each(function(){q.init_el(n(this),n.extend(!0,{},b))});if(null==b)return void n.error("jquery.arcticmodal: Uncorrect parameters");if(""==b.type)return void n.error("jquery.arcticmodal: Don't set parameter \"type\"");switch(b.type){case"html":if(""==b.content)return void n.error("jquery.arcticmodal: Don't set parameter \"content\"");var e=b.content;return b.content="",q.init_el(n(e),b);case"ajax":return""==b.url?void n.error("jquery.arcticmodal: Don't set parameter \"url\""):q.init_el(n("
"),b);}}},e={show:function(){var a=q.getParentEl(this);if(!1===a)return void n.error("jquery.arcticmodal: Uncorrect call");var b=a.data("arcticmodal");if(b.overlay.block.hide(),b.container.block.hide(),n("BODY").append(b.overlay.block),n("BODY").append(b.container.block),b.beforeOpen(b,a),a.trigger("beforeOpen"),"hidden"!=b.wrap.css("overflow")){b.wrap.data("arcticmodalOverflow",b.wrap.css("overflow"));var c=b.wrap.outerWidth(!0);b.wrap.css("overflow","hidden");var d=b.wrap.outerWidth(!0);d!=c&&b.wrap.css("marginRight",d-c+"px")}return p.not(a).each(function(){var a=n(this).data("arcticmodal");a.overlay.block.hide()}),q.transition(b.overlay.block,"show",1*")),b.overlay.block.remove(),b.container.block.remove(),a.data("arcticmodal",null),n(".arcticmodal-container").length||(b.wrap.data("arcticmodalOverflow")&&b.wrap.css("overflow",b.wrap.data("arcticmodalOverflow")),b.wrap.css("marginRight",0))}),"ajax"==b.type&&b.ajax_request.abort(),p=p.not(a))})},setDefault:function(b){n.extend(!0,a,b)}};n(function(){a.wrap=n(document.all&&!document.querySelector?"html":"body")}),n(document).bind("keyup.arcticmodal",function(d){var a=p.last();if(a.length){var b=a.data("arcticmodal");b.closeOnEsc&&27===d.keyCode&&a.arcticmodal("close")}}),n.arcticmodal=n.fn.arcticmodal=function(a){return e[a]?e[a].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof a&&a?void n.error("jquery.arcticmodal: Method "+a+" does not exist"):q.init.apply(this,arguments)}}(jQuery)}var debugMode="undefined"!=typeof debugFlatPM&&debugFlatPM,duplicateMode="undefined"!=typeof duplicateFlatPM&&duplicateFlatPM,countMode="undefined"!=typeof countFlatPM&&countFlatPM;document["wri"+"te"]=function(a){let b=document.createElement("div");jQuery(document.currentScript).after(b),flatPM_setHTML(b,a),jQuery(b).contents().unwrap()};function flatPM_sticky(c,d,e=0){function f(){if(null==a){let b=getComputedStyle(g,""),c="";for(let a=0;a=b.top-h?b.top-h{const d=c.split("=");return d[0]===a?decodeURIComponent(d[1]):b},""),c=""==b?void 0:b;return c}function flatPM_testCookie(){let a="test_56445";try{return localStorage.setItem(a,a),localStorage.removeItem(a),!0}catch(a){return!1}}function flatPM_grep(a,b,c){return jQuery.grep(a,(a,d)=>c?d==b:0==(d+1)%b)}function flatPM_random(a,b){return Math.floor(Math.random()*(b-a+1))+a}