Преимущества микроконтроллеров ARM
20 ноября в 22:53
Техника не стоит на месте, микроконтроллеры эволюционируют и дешевеют, если в начале 2000-х самыми распространенными и доступными были два семейства – ARM и PIC, то в 2010-х на рынок вышел их серьезный конкурент на ядре Cortex-M – микроконтроллеры ARM.
Вернее будет сказать – архитектура ARM – это, в основном, 32-хбитные микроконтроллеры, которые стоят дешевле, а их функционал и производительность выше, чем у оппонентов, поэтому они стремительно завоевывают рынок. Почему так происходит? Давайте поговорим.
STM32 – мощные и доступные
Для примера рассмотрим недорогой микроконтроллер – STM32F100C4T6RBT, его цена в 2017 году немногим более 100 рублей. В этом ценовом сегменте ему нет равных.
STM32
Посмотрите его технические характеристики. Для наглядности его достоинств в скобках будут приведены характеристики более дорогого AVR-микроконтроллера (8 бит) ATmega48-20PU, он стоит порядка 200 рублей.
- Flash-память – 16 кб (4 кб у AVR).
- Оперативная память (RAM) – 4096 байт (512 б у AVR).
- Работает на частоте 24 МГц и выполняет 30 миллионов итераций в секунду (1.25 DMIPS) (AVR работает на 20 МГц).
- 16 каналов 12 битного АЦП и 12 битный ЦАП (у AVR – АЦП 8 каналов и 10 бит, а ЦАП – отсутствует).
- 5 таймеров и 7 каналов прямого доступа к памяти (3 и 0 соответственно).
- Поддержка всевозможных шин и интерфейсов – USART, CAN, I2C, USB, SDIO (поддержка SD-карт), SPI. Большинство из них есть либо в меньшем количестве, либо отсутствуют у AVR.
Конечно, сравнивать 32 и 8 бит не совсем корректно, так как разница в 4-хкратном размере, и, чтобы сделать операцию с 32-битным числом AVR микроконтроллеру нужно произвести более 4-х операций… Вывод простой – за меньшие деньги вы получаете большие возможности.
Если вести речь о семействе STM32, то есть два варианта прошивки для начинающих – это либо USART, либо USB.
Во-первых, эти микроконтроллеры очень сложно «убить» неверной прошивкой или прерыванием её, ведь загрузчик контроллера находится в system memory, изменить которые вы просто не сможете.
Это уже весомое преимущество перед конкурентами, в которых, при любом неправильном действии, нужен специальный программатор. Он с помощью логических уровней высокого напряжения может разблокировать «мёртвый» чип.
В случае прошивки через USART нужен преобразователь USB-UART, например, на базе микросхемы FT232RL.
Обратите внимание на схему: программатор подключен к USART1 на выводе Boot0 – логическая единица, а на boot1 – ноль. Если вы используете плату STM32F103C8, перемычки должны быть выставлены как на картинке ниже.
После этого нужно произвести сброс МК нажатием на «Reset» или подключить и отключить питание.
Чтобы залить прошивку, нужно скачать программу для прошивки микроконтроллера по последовательному порту. Она носит имя «Flash Loader Demonstrator». В бесплатном доступе находится на сайте St–link.com, кстати, одноименном с названием фирмы производителя микроконтроллеров этого семейства.
Вот теперь всё готово к прошивке и дальнейшей работе.
Важно! При прошивке с помощью официального программатора – ST-link выводы и перемычки Boot0 и Boot1 трогать не нужно, они должны быть в исходном состоянии, т. е. стоять по обе стороны от USB порта!
Выше было сказано о наличии «железного» USB порта в чипе. Его присутствие здесь не просто так, благодаря тому, что в этом семействе микроконтроллеров бутлоадер является неотъемлемой частью программы и стоит в начале памяти. Если загрузить вышеописанным способом (через usb-uart) бутлоадер STM32duino – в дальнейшем вы сможете шить его напрямую, через USB порт, подобно Arduino.
Кстати, Arduino выполнена на тех МК семействах AVR, в которых нет встроенного USB, и разработчикам пришлось использовать для этого дополнительные преобразователи (на тех же МК AVR с USB или на FT232RL или CH340 на младших платах Arduino). В случае с STM вы получаете полноценный аппаратно- и программно-поддерживаемый порт USB
Выводы
К сожалению, порог вхождения в работу с STM32 высокий, что не позволяет ему полностью заменить морально устаревшие микроконтроллеры. В то же время проект STM32duino позволил многим любителям-энтузиастам ускорить работу своих Arduino проектов, к тому же улучшив качество их работы.
Нельзя не упомянуть о том, что чипы STM32 взаимозаменяемы и совместимы в пределах одного корпуса. Поэтому, если вы ошиблись с микроконтроллерами, и вам не хватило его ресурсов – вы легко можете запаять более мощный, не изменяя при этом своей схемы и платы!
Источник: https://ArduinoPlus.ru/preimushhestva-mikrokontrollerov-arm/
ARM – это просто (часть 1)
В виду того, что перед многими желающими начать изучение микроконтроллеров встает множество вопросов, таких как «С чего начать?», «Какой микроконтроллер взять для изучения, ведь их столько много и все они такие разные?», «Какой язык программирования необходимо знать?», «Как запрограммировать микроконтроллер и что для этого нужно?», «Какую первую схему на нем собрать?», а также множество других вопросов. Многие в связи с таким большим обилием вопросов уже в самом начале изучения пугаются кажущейся им сложности освоения микроконтроллеров, ведь для этого необходимо знать как электронику, чтобы уметь собирать схемы с микроконтроллерами, так и быть программистом, для написания программ. Но в действительности не все так сложно, как это может показаться на первый взгляд, ведь для написания своих первых программ достаточно изучить только основы языка программирования, а дальнейший опыт написания программ придет сам с практикой. Что же касается электронной части, то в мире существуют недорогие и в тоже время хорошие отладочные платы с программаторами, приобрести которые не составит проблем. Моей же задачей, при написании данного цикла статей, будет донести читателю базовые знания необходимые для возможности дальнейшего самостоятельного изучения микроконтроллеров. Я постараюсь преподнести всю информацию в наиболее доступном и понятном, для начинающих, виде, а в качестве микроконтроллера для своего рассказа я выбрал один из самых распространенных, дешевых, и, на мой взгляд, перспективных контроллеров STM32. Надеюсь, данный цикл статей будет для Вас полезен и интересен, и Вы тоже начнете создавать свои устройства на микроконтроллерах, ведь это очень интересно, увлекательно и раскроет перед Вами широкие возможности в плане создания собственных электронных устройств.
Почему ARM?
Технический прогресс не стоит на месте, появляются различные все более сложные устройства, и соответственно производители микроконтроллеров спешат не отстать от технического прогресса, разрабатывая все более мощные и «навороченные» микроконтроллеры, при этом постоянно снижая цены на них.
В последнее время наметился рост популярности ARM микроконтроллеров, а с приходом бюджетных контроллеров с ядром Cortex-M цена стала настолько доступной, что уже может спокойно конкурировать с 8 и 16 битными контроллерами, такими как AVR, PIC, MSP430 и т.п., а зачастую она даже бывают меньше цены своих восьмибитных собратьев.
Помимо этого для ARM микроконтроллеров существует множество средств отладки и программирования, цены на которые, вполне доступные даже для покупки «для домашнего использования».
Так, например, официальная отладочная плата STM32VL Discovery имеющая на борту внутрисхемный отладчик ST-LINK и отлаживаемый микроконтроллер STM32F100RBT со 128 кБайт флеш памяти, 8 кБайт ОЗУ и 24МГц тактовой частотой в розницу стоит 10-15 долларов.
Для сравнения возьмем несколько популярных контролеров находящихся примерно в одной ценовой категории и сравним их с ARM контроллером STM32F100C4T6B продающимся по цене менее 1 доллара.
Таблица 1. Сравнительная таблица параметров распространенных микроконтроллеров
Параметр | STM32F100C4T6B | ATmega48PA-PU | ATtiny13A-SSU | PIC16F505-I/SL |
Средняя цена | 30 руб. | 55 руб. | 30 руб. | 35 руб. |
Объем флеш памяти (ROM, памяти программ) | 16 КБайт | 4 КБайта | 1 КБайт | 1 КБайт |
Объем оперативной памяти (RAM, памяти данных) | 4096 Байт | 512 Байт | 64 Байта | 72 Байта |
Тактовая частота | 24 МГц, 30 DMIPS | 20 МГц | 20 МГц | 20МГц |
Линий ввода/вывода | 37 | 23 | 6 | 12 |
АЦП | 16-каналов12-бит | 8-каналов10-бит | 4-канала10-бит | |
ЦАП | 12–битный | |||
USART | 2 | 1 | ||
SPI | 1 | 1 | 1 | |
I2C | 1 | 1 | ||
Количество таймеров | 5 | 3 | 1 | 1 |
DMA | 7 каналов |
Из таблицы явно видно, что ARM микроконтроллер STM32F100C4T6B по всем параметрам оставляет своих 8-и битных собратьев далеко отстающими.
Помимо указанных в таблице особенностей следует также принять во внимание тот факт, что ARM контроллеры являются 32 разрядными, что означает возможность работы с 32 битными данными за один такт процессора, для 8 битных же процессоров для этого требуется гораздо большее количество тактов.
Еще одной приятной особенностью использования микроконтроллеров STM32, является полная аппаратная совместимость в пределах одного корпуса, т.е.
если по каким-то причинам не хватает ресурсов заложенного в схему микроконтроллера, всегда можно на его место запаять другой подходящий микроконтроллер.
При этом иногда может потребоваться лишь небольшое изменение программы, и таких изменений в программе, как правило, необходимо сделать существенно меньше, чем например при портировании программы с одного микроконтроллера AVR на другой микроконтроллер AVR.
Как мы уже убедились, ARM микроконтроллеры имеют гораздо более высокие технические характеристики и возможности.
Мы провели сравнение на самом младшем микроконтроллере STM32, на текущий момент самым «навороченным» из этой серии можно назвать микроконтроллеры STM32F407, имеющий 1 мегабайт ROM памяти, 192 килобайта RAM памяти и работающем на частоте до 168 МГц, при этом выполняя до 210 миллионов операций в секунду.
Данный микроконтроллер включает в себя такие модули как:
- интерфейс камеры;
- крипто/хеш аппаратный процессор;
- Ethernet MAC10/100 с IEEE 1588 v2;
- 2 USB OTG;
- отдельный аудио PLL и 2 полнодуплексных I²S;
- до 15 коммуникационных интерфейсов включающих: – 6x USART; – 3x SPI; – 3x I²C; – 2x CAN;- SDIO
- 2x 12-bit АЦП;
- 3x 12-bit ЦАП;
- до 17 таймеров 16 и 32 битных работающих до 168 МГц;
- Шина (FSMC) подключения внешних RAM, ROM, NandFlash;
- Контроллер DMA используя его можно легко и непринужденно пересылать блоки данных между периферией и памятью без использования процессора.
Такому богатому набору периферийных модулей, пожалуй, может позавидовать любой 8и битный микроконтроллер.
Вопрос отладки и программирования также не является проблемой, поскольку за 10-15 долларов можно приобрести официальную отладочную плату STM32VL Discovery (см. рис. 1), имеющую выход для программирования внешних микроконтроллеров.
Рис. 1 Фотография STM32VLDiscovery
Но даже если у Вас нет такой платы, то Вы всегда сможете запрограммировать микроконтроллер, через имеющийся в нем заводской загрузчик (bootloader), подключив его через USART или USB к своему ПК, для этого не потребуется каких либо аппаратных программаторов.
Для программирования микроконтроллера имеющего встроенный USB бутлоадер, достаточно скопировать файл прошивки на контроллер, как на USB-накопитель.
Для программирования микроконтроллера через USART, необходимо произвести его подключение к ПК с помощью преобразователя уровней USART-RS232 либо USART-USB преобразователя и воспользовавшись программой Flash Loader Demonstrator произвести загрузку файла прошивки во флеш память микроконтроллера. Программу Flash Loader Demonstrator можно взять с официального сайта компании ST.
Кроме этого у микроконтроллеров с ядром ARM Cortex-M3, по сравнению, например с ATMega и т.п. нет фьюзов, все управление осуществляется полностью программно, таким образом, отсутствует вероятность испортить микроконтроллер неправильным программированием фьюз битов.
Так почему же, при всех этих преимуществах, ARM микроконтроллеры еще не вытеснили другие контроллеры? Причин этому несколько.
Во первых ядро ARM Cortex-M3, благодаря которому появились столь дешевые микроконтроллеры серии ARM, появилось относительно недавно и как следствие пока существует не так много примеров программ и библиотек, но их количество постоянно увеличивается с очень большой скоростью, в том числе большой вклад в это развитие вносят и сами производители микроконтроллеров ST и NXP, создавая различные апноуты и библиотеки. Другим фактором является лень многих людей осваивать новую для них архитектуру, а также необходимость приобретения средств для отладки, ведь им зачастую хватает и восьми битных микроконтроллеров, при этом они очень много сил и времени тратят на то, чтобы уложиться в имеющиеся в микроконтроллере ресурсы. Для начинающих же такое обилие имеющийся периферии и настроек пугает кажущейся сложностью в освоении, но в действительности это является заблуждением, поскольку производители микроконтроллеров позаботились и создали удобные библиотеки для работы с периферией, позволяющей практически не открывая даташит настроить основные периферийные модули. Также сдерживающим фактором на применение микроконтроллеров ARM Cortex-M3 в «домашних условиях» является наличие микроконтроллеров в корпусах LQFP с шагом ножек 0.5 мм, но тем не менее, такую плату при определенной сноровке изготовить ЛУТом не составит большого труда.
Таким образом, рассеяв последние опасения, и убедившись в том, что STM32 на ядре ARM Cortex-M3 это действительно достойный для изучения и применения микроконтроллер, можно смело переходить к первому шагу.
Для начала нам потребуется скачать и установить необходимые для работы программы, справочные материалы и библиотеки.
Поскольку большинство пользователей, работают под операционной системой Windows, то я буду рассматривать описание программ только для данной операционной системы, но хочу заметить, что пользователи других операционных систем также имеют возможность заниматься разработкой программ для МК ARM STM32.
Для этого им необходимо использовать ПО для своей операционной системы, например все необходимое ПО для Linux можно скачать здесь. Но в любом случае описанные мною программы для Windows. возможно запустить под Wine, за исключением возможности внутрисхемной отладки и программирования.
-Flash Loader Demonstrator – программа необходима для загрузки микропрограммы во флеш контроллер, через встроенный бутлоадер;
-ST-LINK Utility – программа для записи/чтения флеш памяти микроконтроллера через отладчик ST-LINK;
-ST-LINK USB – драйвер для отладчика ST-LINK;
-UM0627: ST-LINK in-circuit debugger/programmer for STM8 and STM32 microcontrollers – документ описывающий какие выводы и как подключать к программатору/отладчику;
-UM0919: STM32VLDISCOVERY STM32 value line Discovery – описание отладочной платы STM32VL Discovery, включающее в себя назначение выводов платы и схему электрическую принципиальную;
-DS6517: Low & medium-density value line, advanced ARM-based 32-bit MCU with 16 to 128 KB Flash, 12 timers, ADC, DAC & 8 comm interfaces – описание аппаратной части микроконтроллера STM32F100;
-RM0041: STM32F100xx advanced ARM-based 32-bit MCUs – описание всех регистров микроконтроллера STM32F100;
-STM32F10x standard peripheral library – стандартная библиотека для работы с периферией от компании ST;
IAR Embedded Workbench for ARM – мощная и эффективная среда разработки для ARM микроконтроллеров на языке C.
Поскольку программа является платной, то ссылку для скачивания не указываю, но хочу заметить, что помимо платной версии также существуют и бесплатные версии с ограничением по времени работы программы.
Официально бесплатные версии можно скачать с сайта производителя http://www.iar.com, пробная 30 дневная версия доступна по ссылке.
Официальная утилита для конфигурирования периферии microxplorer – Пока что данная программа находится на этапе разработке и в ней реализованы еще не все задуманные функции.
STM32 Генератор программного кода – бесплатная программа для наглядного создания кода настройки микроконтроллера. Данная программа пока что еще является развивающейся и содержит много недоработок, но автор работает над данной программой, постоянно исправляя ошибки, совершенствуя программу и добавляя новые возможности.
Ознакомительное руководство по ARM-микроконтроллерам Cortex-M3– Данное руководство будет полезно для ознакомления со структурой микроконтроллеров семейства STM32 Cortex-M3.
STM_DOC_RU – содержит переводы трех документов с сайта фирмы ST:
Частичный перевод файла “STM32F10xxx Cortex-M3 programming manual.PDF” ревизия 2 от 18.01.2010.
Частичный перевод файла “STM32F105_107_Reference manual.pdf”
Источник: http://cxem.net/mc/mc131.php
Процессоры ARM: особенности архитектуры, отличия и перспективы
Первые чипы ARM появились еще три десятилетия назад благодаря стараниям британской компании Acorn Computers (ныне ARM Limited), но долгое время пребывали в тени своих более именитых собратьев – процессоров архитектуры х86. Все перевернулось с ног на голову с переходом IT-индустрии в пост-компьютерную эпоху, когда балом стали править уже не ПК, а мобильные гаджеты.
Особенности архитектуры ARM
Начать стоит, пожалуй, с того, что в процессорной архитектуре x86, которую сейчас используют компании Intel и AMD, применяется набор команд CISC (Complex Instruction Set Computer), хоть и не в чистом виде.
Так, большое количество сложных по своей структуре команд, что долгое время было отличительной чертой CISC, сначала декодируются в простые, и только затем обрабатываются.
Понятное дело, на всю эту цепочку действий уходит немало энергии.
Чип ARM1 – первенец компании Acorn Computers, который производился на фабриках VLSI
В качестве энергоэффективной альтернативы выступают чипы архитектуры ARM с набором команд RISC (Reduced Instruction Set Computer).
Его преимущество в изначально небольшом наборе простых команд, которые обрабатываются с минимальными затратами.
Как результат, сейчас на рынке потребительской электроники мирно (на самом деле, не очень мирно) уживаются две процессорные архитектуры – х86 и ARM, каждая из которых имеет свои преимущества и недостатки.
Первым в истории устройством на базе процессора архитектуры ARM был персональный компьютер BBC Micro
Архитектура х86 позиционируется как более универсальная с точки зрения посильных ей задач, включая даже столь ресурсоемкие, как редактирование фотографий, музыки и видео, а также шифрование и сжатие данных. В свою очередь архитектура ARM «выезжает» за счет крайне низкого энергопотребления и в целом-то достаточной производительности для важнейших на сегодня целей: прорисовки веб-страниц и воспроизведения медиaконтента.
Архитектурные отличия процессоров x86 (набор команд CISC) и ARM (набор команд RISC)
Бизнес-модель компании ARM Limited
Сейчас компания ARM Limited занимается лишь разработкой референсных процессорных архитектур и их лицензированием. Создание же конкретных моделей чипов и их последующее массовое производство – это уже дело лицензиатов ARM, которых насчитывается превеликое множество.
Есть среди них как известные лишь в узких кругах компании вроде STMicroelectronics, HiSilicon и Atmel, так и IT-гиганты, имена которых у всех на слуху – Samsung, NVIDIA и Qualcomm.
С полным списком компаний-лицензиатов можно ознакомиться на соответствующей странице официального сайта ARM Limited.
Только компаний, получивших лицензию на производство чипов семейства ARM Cortex-A, насчитается несколько десятков, а ведь в портфолио ARM Limited есть и другие разработки
Столь большое число лицензиатов вызвано в первую очередь обилием сфер применения ARM-процессоров, причем мобильные гаджеты – это лишь вершина айсберга. Недорогие и энергоэффективные чипы используется во встраиваемых системах, сетевом оборудовании и измерительных приборах. Платежные терминалы, внешние 3G-модемы и спортивные пульсометры – все эти устройства основаны на процессорной архитектуре ARM.
Российская компания «ПКК Миландр» со штаб-квартирой в Зеленограде, что интересно, тоже получила лицензию на производство чипов архитектуры ARM
По подсчетам аналитиков, сама ARM Limited зарабатывает на каждом произведенном чипе $0,067 в виде роялти. Но это сильно усредненная сумма, ведь по себестоимости новейшие многоядерные процессоры значительно превосходят одноядерные чипы устаревшей архитектуры.
Однокристальная система
С технической точки зрения называть чипы архитектуры ARM процессорами не совсем верно, ведь помимо одного или нескольких вычислительных ядер они включают целый ряд сопутствующих компонентов. Более уместными в данном случае являются термины однокристальная система и система-на-чипе (от англ. system on a chip).
Так, новейшие однокристальные системы для смартфонов и планшетных компьютеров включают контроллер оперативной памяти, графический ускоритель, видеодекодер, аудиоокодек и опционально модули беспроводной связи. Узкоспециализированные чипы могут включать дополнительные контроллеры для взаимодействия с периферийными устройствами, например датчиками.
Схема строения однокристальной системы с четырьмя ядрами ARM Cortex-A9
Отдельные компоненты однокристальной системы могут быть разработаны как непосредственно ARM Limited, так и сторонними компаниями. Ярким тому примером являются графические ускорители, разработкой которых помимо ARM Limited (графика Mali) занимаются Qualcomm (графика Adreno) и NVIDIA (графика GeForce ULP).
Не стоит забывать и про компанию Imagination Technologies, которая ничем другим, кроме проектирования графических ускорителей PowerVR, вообще не занимается. А ведь именно ей принадлежит чуть ли не половина глобального рынка мобильной графики: гаджеты Apple и Amazon, планшетники Samsung Galaxy Tab 2, а также недорогие смартфоны на базе процессоров MTK.
Устаревшие поколения чипов
Морально устаревшими, но все еще широко распространенными процессорными архитектурами являются ARM9 и ARM11, которые принадлежат к семействам ARMv5 и ARMv6 соответственно.
ARM9.
Чипы ARM9 могут достигать тактовой частоты 400 МГц и, скорее всего, именно они установлены внутри вашего беспроводного маршрутизатора и старенького, но все еще надежно работающего мобильного телефона вроде Sony Ericsson K750i и Nokia 6300. Критически важным для чипов ARM9 является набор инструкций Jazelle, который позволяет комфортно работать с Java-приложениями (Opera Mini, Jimm, Foliant и др.).
ARM11.
Процессоры ARM11 могут похвастаться расширенным по сравнению с ARM9 набором инструкций и куда более высокой тактовой частотой (вплоть до 1 ГГц), хотя для современных задач их мощности тоже не достаточно.
Тем не менее, благодаря невысокому энергопотреблению и, что не менее важно, себестоимости, чипы ARM11 до сих пор применяются в смартфонах начального уровня: Samsung Galaxy Pocket и Nokia 500.
Чип Broadcom Thunderbird – один из немногочисленных представителей поколения ARM11, который до сих пор применяется в Android-смартфонах
Современные поколения чипов
Все более-менее новые чипы архитектуры ARM принадлежат к семейству ARMv7, флагманские представители которого уже достигли отметки в восемь ядер и тактовой частоты свыше 2 ГГц.
Разработанные непосредственно ARM Limited процессорные ядра принадлежат к линейке Cortex и большинство производителей однокристальных систем используют их без существенных изменений.
Лишь компании Qualcomm и Apple создали собственные модификации на основе ARMv7 – первая назвала свои творения Scorpion и Krait, а вторая – Swift.
Чип Apple A6 (ядро Swift) – первая попытка Купертино собственноручно модифицировать архитектуру ARMv7
ARM Cortex-A8.
Исторически первым процессорным ядром семейства ARMv7 было Cortex-A8, которое легло в основу таких известных SoC своего времени как Apple A4 (iPhone 4 и iPad) и Samsung Hummingbird (Samsung Galaxy S и Galaxy Tab).
Оно демонстрирует примерно вдвое более высокую производительность по сравнению с предшествующим ARM11. К тому же, ядро Cortex-A8 получило сопроцессор NEON для обработки видео высокого разрешения и поддержку плагина Adobe Flash.
Правда, все это негативно сказалось на энергопотреблении Cortex-A8, которое значительно выше чем у ARM11. Несмотря на то, что чипы ARM Cortex-A8 до сих пор применяются в бюджетных планшетниках (однокристальная система Allwiner Boxchip A10), их дни пребывания на рынке, по всей видимости, сочтены.
Однокристальная система TI OMAP 3 – представитель некогда популярного, но сейчас уже угасающего поколения ARM Cortex-A8
ARM Cortex-A9.
Вслед за Cortex-A8 компания ARM Limited представила новое поколение чипов – Cortex-A9, которое сейчас является самым распространенным и занимает среднюю ценовую нишу.
Производительность ядер Cortex-A9 выросла примерно втрое по сравнению с Cortex-A8, да еще и появилась возможность объединять их по два или даже четыре на одном чипе.
Сопроцессор NEON стал уже необязательным: компания NVIDIA в своей однокристальной системе Tegra 2 его упразднила, решив освободить побольше места для графического ускорителя. Правда, ничего хорошего из этого не вышло, ведь большинство приложений-видеопроигрывателей все равно ориентировались на проверенный временем NEON.
Почти все флагманские планшетные компьютеры образца 2011 года были построены на базе чипа NVIDIA Tegra 2
Именно во времена «царствования» Cortex-A9 появились первые реализации предложенной ARM Limited концепции big.
LITTLE, согласно которой однокристальные системы должны иметь одновременно мощные и слабые, но энергоэффективные процессорные ядра. Первой реализацией концепции big.
LITTLE стала система-на-чипе NVIDIA Tegra 3 с четырьмя ядрами Cortex-A9 (до 1,7 ГГц) и пятым энергоэффективным ядром-компаньоном (500 МГц) для выполнения простеньких фоновых задач.
ARM Cortex-A5 и Cortex-A7.
При проектировании процессорных ядер Cortex-A5 и Cortex-A7 компания ARM Limited преследовала одно и ту же цель – добиться компромисса между минимальным энергопотреблением ARM11 и приемлемым быстродействием Cortex-A8. Не забыли и про возможность объединения ядер по два-четыре – многоядерные чипы Cortex-A5 и Cortex-A7 мало-помалу появляются в продаже (Qualcomm MSM8625 и MTK 6589).
Схема строения однокристальной системы c четырьмя ядрами ARM Cortex-A5
ARM Cortex-A15.
Процессорные ядра Cortex-A15 стали логическим продолжением Cortex-A9 – как результат, чипам архитектуры ARM впервые в истории удалось примерно сравниться по быстродействию с Intel Atom, а это уже большой успех.
Не зря ведь компания Canonical в системных требования к версии ОС Ubuntu Touch с полноценной многозадачностью указала двухъядерный процессор ARM Cortex-A15 или аналогичный Intel Atom.
Источник: https://itc.ua/articles/protsessoryi-arm-osobennosti-arhitekturyi-otlichiya-i-perspektivyi/
Микроконтроллеры компании STMicroelectronics с ядром arm
Микроконтроллеры компании STMicroelectronics
с ядром ARM
В статье проводится сравнительный анализ основных характеристик Анатолий ЮДИН 32-разрядных микроконтроллеров компании STMicroelectronics, разра-
к. т. н. ботанных на основе ядра ARM7 с аналогичными микросхемами других
[email protected] фирм.
Компания STMicroelectronics (STM) — один из мировых лидеров по производству 8- и 16-разрядных микроконтроллеров. Начиная с 2004 года, она стремительно расширяет свое семейство 16/32-разрядных микроконтроллеров с архитектурой на основе ядра ARM7™.
Наш прогноз о том, что микроконтроллерные ядра английской компании ARM (Advanced RISC Machines) быстро выйдут на уровень глобального индустриального стандарта для приложений, требующих оптимального соотношения между ценой, производительностью и энергопотреблением, оправдывается.
Это объясняется тем, что вся линейка ядер ARM обладает программной совместимостью, имеется большое число продуктов для выбора и множество предложений от различных продавцов, накоплены большие проектные ресурсы для поддержки приложений.
Уже есть много инженеров, обученных для работы с ARM, на рынке появилось много программного обеспечения не только от ARM, но и других фирм, обеспечена доступность инструментальных средств и предложений для различных операционных систем.
Основными достоинствами ядра ARM являются:
• наименьшее энергопотребление для обеспечения одинакового значения производительности по сравнению с другими ядрами при более низкой тактовой частоте;
• возможность программирования с оптимизацией либо скорости 32-разрядного ядра ARM, либо с оптимизацией размера программного кода при использовании 16-разрядных Thumb-команд, что обеспечивает большую гибкость при проектировании.
Применение Thumb-команд обеспечивает сокращение размера программного кода до 30% при уменьшении производительности до 20%. Не следует также забывать, что 16-разрядные и 32-разрядные системы команд можно использовать одновременно.
Компания STM приобрела лицензию
на всю номенклатуру ядер ARM и последо-
вательно внедряет их в своем производстве ARM микроконтроллеров. В семействе микроконтроллеров STR7xxx в качестве базового ядра используется ARM7TDMI®, производительность (до 100 MIPS) и экономичность которого зависят от рабочей частоты (до 90 МГц) и используемого напряжения питания (1,8 В или 3,3 В).
Ядро ARM7 используют и другие производители микроконтроллеров, из которых на российском рынке кроме STM можно выделить компании Freescale (ранее Motorola), Atmel, Philips и др.
Однотипность ядра многих семейств микроконтроллеров различных производителей предопределяет их совместимость по аппаратно-программным средствам разработки, которые предоставляют большинство фирм поставляющих продукцию этого вида.
Среди фирм, специализирующихся на разработке компиляторов C/C++ для платформы ARM, отметим ARM, IAR Systems, KEIL Software и Green Hills. Программные средства на основе компиляторов с лицензией GNU производят Hitex, Nohau, Ashling и др. Среды разработки производят PLS, SEGGER и др.
Как видно, выбор достаточно большой, и вопрос возникает чаще всего в цене для определенного ряда возможностей, предоставляемых аппаратно-программными средствами.
Наличие большого предложения с одной стороны облегчает, а с другой стороны и затрудняет задачу выбора оптимального микроконтроллера для решения конкретной прикладной задачи. Поэтому при выборе чаще всего решающую роль приобретают интеграционные характеристики микроконтроллеров, и в первую очередь, наличие и возможности встроенных периферийных устройств ARM микроконтроллеров, наличие и доступность библиотек программ для встроенной периферии, экономичность.
Компания STMicroelectronics в настоящее время производит две серии ARM-микроконтроллеров: STR71xFxx и STR73xFxx. Обобщенные технические характеристики микроконтроллеров данных серий приведены в таблице 1.
Основными параметрами серии STR71xF являются:
• ядро ARM7TDMI с 32-бит и Thumb16-6rn набором команд, трехступенчатый конвейер, 32-бит АЛУ и мощные средства отладки;
• от 16 кбайт до 64 кбайт ОЗУ (SRAM);
• от 128 кбайт до 256 кбайт Flash-памяти с малым временем случайного доступа;
• рабочая частота CPU до 48 МГц с внешней синхронизацией 16 МГц с внутренней ФАПЧ (PLL) и нулевой режимы ожидания с ускорением;
• до 30 МГц и нулевой режимы ожидания без ускорения, без проблем при контекстном переключении и ветвлении, что необходимо в приложениях реального времени;
• до 10 соединительных интерфейсов, включая I2C, SPI, UART, CAN, а также интерфейсы USB, HDLC, MMC и Smart Card;
• 4 таймера, отдельный сторожевой таймер и часы реального времени со встроенным генератором 32 кГц для перехода в рабочий режим после дежурного режима (STANDBY);
• 5 режимов пониженного энергопотребления: WAIT, SLOW, LPWAIT, STOP и STANDBY;
• встроенный стабилизатор напряжения 1,8 В для ядра, позволяющий работать от одноканального источника питания 3,3 В;
• контроллер вложенных прерываний с быстрой обработкой нескольких векторов (32 вектора с 16 уровнями приоритетов IRQ, 2 источника маскируемых FIQ);
• до 48 портов входа/выхода (I/O) с 30/32/48 многофункциональными двунаправленными линиями I/O, из них 14 с возможностью прерываний по изменению уровня;
• интерфейс JTAG для отладки;
• индустриальный температурный диапазон от -40 до +85 °C.
Микросхемы изготавливаются в миниатюрных низкопрофильных корпусах TQFP64 или TQFP144. Серия в 144-штырьковом корпусе TQFP144 имеет интерфейсы CAN, USB и интерфейс с внешней памятью. Версии в 64-штырьковом корпусе TQFP64 имеют только CAN или USB интерфейс.
Тип Размер Размер Последовател^ые Число Пита- Д/Огие Рабочая темпе/ато/а, °C
Rom кбайт байт иRтерфейсы I/O B фОRкции МиR. Макс.
STR710FZ1 BGA 144; TQFP 144 FLASH 128 32768 4×12-bit 4x 16-bit таймера + WDG 2xSPI/2xI2C/4xUART/ HDLC/SC/CAN/USB 48 3,3 EMI, 16K Data Flash -40 85
STR710FZ2 BGA 144; TQFP 144 FLASH 256 65536 4×12-bit 4x 16-bit таймера + WDG 2xSPI/2xI2C/4xUART/ HDLC/SC/CAN/USB 48 3,3 EMI, 16K Data Flash -40 85
STR711FR0 BGA 64; TQFP64 FLASH 64 16384 4×12-bit 4x 16-bit таймера + WDG 2xSPI/2xI2C/4xUART/ HDLC/SC/USB 30 3,3 16K Data Flash -40 85
STR711FR1 BGA 64; TQFP64 FLASH 128 32768 4×12-bit 4x 16-bit таймера + WDG 2xSPI/2xI2C/4xUART/ HDLC/SC/USB 30 3,3 16K Data Flash -40 85
STR711FR2 BGA 64; TQFP64 FLASH 256 65536 4×12-bit 4x 16-bit таймера + WDG 2xSPI/2xI2C/4xUART/ HDLC/SC/USB 30 3,3 16K Data Flash -40 85
STR712FR0 BGA 64; TQFP64 FLASH 64 16384 4×12-bit 4x 16-bit таймера + WDG 2xSPI/2xI2C/4xUART/ HDLC/SC/CAN 32 3,3 16K Data Flash -40 85
STR712FR1 BGA 64; TQFP64 FLASH 128 32768 4×12-bit 4x 16-bit таймера + WDG 2xSPI/2xI2C/4xUART/ HDLC/SC/CAN 32 3,3 16K Data Flash -40 85
STR712FR2 BGA 64; TQFP64 FLASH 256 65536 4×12-bit 4x 16-bit таймера + WDG 2xSPI/2xI2C/4xUART/ HDLC/SC/CAN 32 3,3 16K Data Flash -40 85
STR715FR0 BGA 64; TQFP64 FLASH 64 16384 4×12-bit 4x 16-bit таймера + WDG 2xSPI/2xIxC/4xUART/ HDLC/SC 32 3,3 16K Data Flash -40 85
STR730FZ1 TQFP 144 FLASH 128 16384 16×10-bit 10×16-bit таймеров + 3x 16-bit TBU + 6x 16-bit ШИМ модулей + WDG + RTC 3xSPI/2xI2C/4xUART/ 3xCAN 112 16xDMA, внутр. RC-генератор -40 105
STR730FZ2 BGA 144; TQFP 144 FLASH 256 16384 16×10-bit 10×16-bit таймеров + 3x 16-bit TBU + 6x 16-bit ШИМ модулей + WDG + RTC 3xSPI/2xI2C/4xUART/ 3xCAN 112 16xDMA, внутр. RC-генератор -40 105
STR731FV0 TQFP 100 FLASH 64 16384 12×10-bit 6x 16-bit таймеров + 3x 16-bit TBU + 6x 16-bit ШИМ модулей + WDG + RTC 3xSPI/2xI2C/4xUART/ 3xCAN 72 16xDMA, внутр. RC-генератор -40 105
STR731FV1 TQFP 100 FLASH 128 16384 12×10-bit 6x 16-bit таймеров + 3x 16-bit TBU + 6x 16-bit ШИМ модулей + WDG + RTC 3xSPI/2xI2C/4xUART/ 3xCAN 72 16xDMA, внутр. RC-генератор -40 105
STR731FV2 TQFP 100 FLASH 256 16384 12×10-bit 6x 16-bit таймеров + 3x 16-bit TBU + 6x 16-bit ШИМ модулей + WDG + RTC 3xSPI/2xI2C/4xUART/ 3xCAN 72 16xDMA, внутр. RC-генератор -40 105
STR735FZ1 TQFP144 FLASH 128 16384 16×10-bit 10×16-bit таймеров + 3x 16-bit TBU + 6x 16-bit ШИМ модулей + WDG + RTC 3xSPI/2xI2C/4xUART 112 16xDMA, внутр. RC-генератор -40 105
STR735FZ2 BGA 144; TQFP 144 FLASH 256 16384 16×10-bit 10×16-bit таймеров + 3x 16-bit TBU + 6x 16-bit ШИМ модулей + WDG + RTC 3xSPI/2xI2C/4xUART 112 16xDMA, внутр. RC-генератор -40 105
STR736FV0 TQFP 100 FLASH 64 16384 12×10-bit 6x 16-bit таймеров + 3x 16-bit TBU + 6x 16-bit ШИМ модулей + WDG + RTC 3xSPI/2xI2C/4xUART 72 16xDMA, внутр. RC-генератор -40 105
STR736FV1 TQFP 100 FLASH 128 16384 12×10-bit 6x 16-bit таймеров + 3x 16-bit TBU + 6x 16-bit ШИМ модулей + WDG + RTC 3xSPI/2xI2C/4xUART 72 5 16xDMA, внутр. RC-генератор -40 105
STR736FV2 TQFP 100 FLASH 256 16384 12×10-bit 6x 16-bit таймеров + 3x 16-bit TBU + 6x 16-bit ШИМ модулей + WDG + RTC 3xSPI/2xI2C/4xUART 72 5 16xDMA, внутр. RC-генератор -40 105
RCCU/PLL
Ист. питания регулятор 1,8 В
ARM7TDMI ЦП 50 МГц
Интерфейс
JTAG
АЦП 12 бит 4 кан.
Таймер 0
Таймер 1 (ШИМ)
Таймер 1 (ШИМ) –
Таймер 1 (ШИМ) ■
э
S'
I
§
О.
Интерфейс внешн. памяти
64/128/256 кб Flash+16 кб доп.
64/32/16
SRAM
Контроллер внутр. прерыван.
Внешн. прерыв.
Генератор/RTC
Watchdog
48 I/O
QÛ –
О.
Источник: https://cyberleninka.ru/article/n/mikrokontrollery-kompanii-stmicroelectronics-s-yadrom-arm
Новые ARM-контроллеры от NXP: обзор областей применения
Константин Староверов
Новости Электроники 16, 2008
Компания NXP успешно работает над созданием самого обширного ассортимента 32-битных ARM-микроконтроллеров. Представленные за последние месяцы новые микроконтроллеры несут в себе множество преимуществ для различных областей применения электроники.
Осень ознаменовалась тремя важными анонсами от NXP. Во-первых, было объявлено о существенном расширении семейства микроконтроллеров (МК) с ядром ARM968E-S LPC2900 семью новыми представителями. Во-вторых, вышли в свет два новых микроконтроллера с ядром ARM926EJ (LPC3130 и LPC3131).
И, наконец, самый долгожданный анонс – доступность нового семейства микроконтроллеров LPC1700 на основе набирающего популярность ядра ARM Cortex-M3.
Это означает, что список производителей Cortex-M3-микроконтроллеров, в который прежде уже входили Luminary и STMicroelectronics, теперь будет представлен и NXP* (* Практически одновременно с NXP о выпуске микроконтроллера с ядром ARM Cortex-M3 сообщила компания Toshiba (прим. авт.)).
МК LPC1700 – рекордсмены по производительности среди Cortex-M3-микроконтроллеров
Ключевое превосходство новых Cortex-M3-микроконтроллеров NXP – способность работать на тактовой частоте 100 МГц. Их ближайшие по быстродействию конкуренты – микроконтроллеры из серии Performance Line компании STM – с максимальной тактовой частотой 72 МГц отстают на 28%.
Разрыв по сравнению с другими микроконтроллерами более существенен: 50% по сравнению с семейством Stellaris компании Liminary и 68% по сравнению с серией Access Line компании STM.
Благодаря этой особенности, микроконтроллеры LPC1700 идеальны для использования в применениях, где не только требуется более высокопроизводительная обработка, но также необходима одновременная и, при этом, эффективная (без образования узких мест) работа таких высокопроизводительных интерфейсов, как Ethernet, USB (в режиме On-The-Go, Host или Device) и CAN.
К числу таких применений могут относиться новое поколение электронных приборов учета потребления энергоресурсов, системы сигнализации, бытовое электрооборудование и HVAC-системы, отличающиеся улучшенными «интеллектом» и защищенностью, расширенными коммуникационными возможностями и пр.
Наличие у МК LPC1700 таких ресурсов, как MAC-контроллер 10/100 Ethernet, высокобыстродействующий 12-битный АЦП и 10-битный ЦАП, два интерфейса CAN и до 4 интерфейсов УАПП также делает их идеальными кандидатами для использования в промышленной электронике и, в частности, в программируемых логических контроллерах (ПЛК).
У МК LPC1700 также учтена возможность использования в блоках управления электроприводами. В них интегрирован оптимизированный под управление электроприводом блок широтно-импульсной модуляции (ШИМ) и интерфейс квадратурного энкодера, который существенно облегчает реализацию функций контроля положения, частоты вращения и направления.
МК LPC1700 выполнены на основе второй версии ядра Cortex-M3, которое отличается улучшенными энергосберегающими возможностями: в него входит специальный WIC-контроллер, который отвечает за более эффективный вход в энергосберегающие режимы работы и выход из них.
Если же еще учесть, что МК интегрируют сверхмаломощные часы реального времени с потребляемым током менее 1 мкА, то их прекрасно можно использовать в применениях с функциями хронометража и часов/календаря реального времени.
Помимо рассмотренных выше применений, такие функции могут потребоваться в светотехнических системах (например, системы интеллектуального управления освещением или электроника для управления информационными дисплеями), в системах сбора данных и регистрации событий («черные ящики») и др.
Благодаря широким возможностям по оптимизации энергопотребления, МК LPC1700 также прекрасно подходят для работы в применениях с батарейным питанием, к числу которых относятся портативная измерительная техника и беспроводные сенсоры, нуждающиеся в использовании сложных алгоритмов цифровой обработки.
Наконец, МК LPC1700, благодаря их совместимости по расположению выводов с популярными микроконтроллерами LPC2300 на основе ядра ARM7, могут использоваться для улучшения рабочих характеристик существующих решений на основе МК LPC2300, не требуя при этом повторной разводки печатной платы.
Новые МК LPC2900 и еще один рекорд быстродействия
Семейство микроконтроллеров LPC2900, в которое прежде входила только серия LPC291x, теперь дополнена семью новыми представителями. Их уникальной особенностью является возможность исполнения кода программы непосредственно из флэш-памяти на тактовой частоте 125 МГц.
Такой беспрецедентный уровень быстродействия позволяет существенно удешевить реализацию работающих на указанной тактовой частоте микропроцессорных систем за счет использования взамен более громоздкого способа «теневого» хранения кода программы полностью интегрированного решения.
Благодаря интегрированию многих устройств ввода-вывода (УВВ), подобных используемым в МК LPC1700, в т.
ч интерфейса USB Host/On-The-Go/Device, многоканального АЦП, двух CAN интерфейсов, нескольких УАПП, интерфейса квадратурного энкодера и блока ШИМ для управления электроприводом, данные МК могут использоваться в большинстве рассмотренных выше применений, для которых характеристики высокой производительности и повышенных объемов встроенных запоминающих устройств (флэш-память до 768 кбайт, 16 кбайт ЭСППЗУ и до 128 кбайт статического ОЗУ) более важны, чем характеристики низкого энергопотребления и себестоимости конечного решения. Кроме того, благодаря высокой производительности и интегрированию еще ряда коммуникационных интерфейсов, в т.ч. УАПП с поддержкой протоколов RS-485 и LIN, двух двухпроводных последовательных интерфейсов I2C и трех контроллеров Q-SPI, новые МК LPC2300 идеальны для использования в высокопроизводительных применениях с обширным использованием коммуникационных каналов. Примерами таких применений могут служить коммуникационные шлюзы промышленного назначения, выполняющие преобразование различных последовательных протоколов, и автоматизированное оборудование для торговых сетей.
Кроме того, встроенные УВВ микроконтроллеров LPC2900 полностью совместимы с популярным семейством ARM7-микроконтроллеров LPC2000. Это существенно ускорит разработку нового поколения встраиваемых систем, которые прежде выполнялись на основе МК LPC2000 и при улучшении рабочих характеристик должны отличаться конкурентной стоимостью.
Новинки для продукции с высокоскоростным портом USB 2.0 и поддержкой On-The-Go (OTG)
NXP представила два новых микроконтроллера LPC3130 и LPC3131, выполненных на основе ядра ARM926EJ с тактовой частотой 180 МГц. Новые МК отличает низкая для своего класса стоимость и интегрирование полноскоростного (480 Мбит/сек) порта USB 2.0 OTG.
Данные МК специально разработаны для продукции с универсальным портом USB, которая нуждается в улучшении производительности, функциональных возможностей и энергоэффективности одновременно с оптимизацией себестоимости конечного решения.
Примеров такой продукции достаточно много:
- потребительская электроника: мобильные телефоны, медиаплееры, КПК, электронные переводчики, навигаторы, цифровые фотокамеры и др.;
- промышленная электроника: ПЛК с функцией графического отображения данных, стационарные и переносные контрольно-измерительные приборы, встраиваемые системы управления;
- медицинская техника (лечебно-диагностическое оборудование);
- коммуникационные оборудование с графическим интерфейсом для настройки и мониторинга;
- офисная техника и торговое оборудование (печатающая и копировальная техника, торговые автоматы, кассовые терминалы).
Общими чертами данной техники являются наличие цветного или монохромного графического дисплея для отображения информации, возможность прямого подключения к USB-периферии (например, принтеру для печати без участия ПК), взаимодействие со съемными картами флэш-памяти, использование различных последовательных и параллельных интерфейсов, вывод аудиоинформации.
Реализация всех этих функций существенно облегчается за счет использования таких встроенных ресурсов, как 4/8/16-битный 6800/8080-совместимый контроллер ЖКИ, упомянутый ранее полноскоростной порт USB 2.
0 с поддержкой OTG, контроллер SDHC/MMC-карт флэш-памяти, параллельные (для подключения внешних NAND-флэш-памяти, статических и синхронных динамических ОЗУ) и последовательные (2хI2C, 1xSPI, УАПП с поддержкой IrDA и аппаратного управления потоком) интерфейсы, два интерфейса I2S для вывода цифровых аудиопотоков.
Кроме того, для измерения аналоговых сигналов и управления исполнительными устройствами в микроконтроллеры интегрированы 4-канальный 10-битный АЦП, порты ввода-вывода общего назначения и канал широтно-импульсной модуляции.
Помимо высокой степени интеграции, разработчики указанной выше продукции смогут использовать еще такие преимущества микроконтроллеров, как малое занимаемое на печатной плате место (МК размещены в корпусе TFBGA180 с размерами 12х12 мм и шагом выводов 0,8 мм) и возможность оптимизации энергопотребления в активном режиме работы. Для этого в МК встроен специальный блок CGU, который позволяет управлять распределением сигналов синхронизации и изменения их частоты.
Источник: https://www.rlocman.ru/review/article.html?di=52333
ARM. Учебный Курс. Вводная
Intro
Потихонечку, дабы не выпадать из модных течений, решил я запилить обучалку по ARM контроллерам.
Сразу говорю, относиться к ней надо критично, ибо я эти контроллеры не знаю, а все что буду описывать — продукт лично проделанного эксперимента, не более того. Так что будут и неточности, ляпы и прочие радости первопроходцев. Все же постараюсь быть последовательным. Ну и, разумеется, грабли на которые наступил флажками обозначать буду. Кто больше шарит не стесняйтесь поправлять и уточнять.
Disclaimer Информация будет не столько для тех кто начал с нуля, а тех кто уже наигрался с 8ми битными контроллерами и решил полезть выше.
И я буду отталкиваться от этого уровня, не сильно упираясь в разжевывание подробностей и мелочей (т.к. сам их еще не знаю 😉 ), а действуя по индийской методике, где часто доказательство теоремы выглядит в виде одного слова «смотри».
Также, по дефолту, буду считать, что читатель, раз освоился на PIC/AVR/C51, умеет читать даташиты и ковырять инфу сам. Это не значит, что я не буду отвечать на вопросы в комментариях. Буду, но знайте, что для этого мне придется вместо вас лезть в даташит и разбираться.
Я могу это делать — знаете как быстро в таком режиме идет самообразование! Метод «Я гуру и вам щас все вжую» пинает круче любой сессии, т.к. в отличии от сессии не кончается никогдааа 🙂 А могу не делать.
В зависимости от моего свободного времени и желания общаться 🙂 Да, у меня есть преимущество — освоив несколько разных архитектур я уже задницей чую где и что надо искать в даташите, но свою голову никто не отменял 🙂
Предыстория
Собралась как то раз банда талантливых инженеров и решили они сварганить свой собственный проц. Так родился ARM — Advanced Risc Machine. Причем своей фабрики у них нет и они просто лицензируют свою архитектуру всем кому ни лень. На сегодняшний день существует прорва разных видов ядра ARM, отличаются они не особо сильно, скорей это специализации, под разные задачи. Также выкристаллизовалась отдельная подветвь ядра — семейство Cortex которые для нас представляют наибольший интерес.
Ху из ху Так что контроллера ARM не существует. Есть контроллер с ядром ARM, а это две большие разницы.
Общее ядро гарантирует то, что код с контроллера фирмы STM можно будет перекомпилить, например, на контроллер фирмы NXP и он запустится, но вот как он будет работать вопрос совершенно другой. Т.к.
все адреса периферии, не относящиеся к ядру, будут совсем другими. Будет совершенно другое значение битов и функционал.
Но в целом, все будет очень похожим и это дает возможным сделать нормальный слой HAL (абстракция, позволяющая отделить функционал от железа, в простейшем случае набор макросов и дефайнов) и при грамотно написанной программе портирование не создаст проблем. А также не особо заморачиваясь скакать между семействами, не отказывая себе ни в чем 🙂 Даже если пишешь на ассемблере, впрочем на асме под арм пишут исключительно маньяки.
Оно нам надо?
Изучать или не изучать — интересный вопрос. Тут от ситуации и целей зависит.
Цена
ARM сильно подешевел и активно начинает вторгаться в нишу которую плотно занимают 8ми разрядные контроллеры. С другой стороны — цена штука скользкая и это не более чем маркетинг. Сейчас захват рынка, а потом могут и поднять. Восьмиразрядные же могут и в цене упасть.
Опять же цена играет роль только когда штампуешь изделия хотя бы сотнями. А когда для дома, для семьи, штучно, тут больше доступность решает. А то что, например, LPC дешевле чем AVR рублей на 50 еще не значит, что его проще и быстрей достать. Особенно в глубинке.
Плюс изучать заново и с нуля, тоже та еще проблема.
Корпус
Пожалуй для домашнего радиолюбительства это один из главных критериев. Толку от контроллера который не можешь запаять? А все ARM идут преимущественно в LQFP корпусах, а то и в QFN или BGA, под который дома даже плату не сделать.
Для примера, чтобы понять о чем идет речь, вот вам для сравнения, слева направо:
LQFP48 (LPC1343), SSOP28 (FT232RL), TQFP44 (Mega16), SOIC20 (Tiny2313) внизу монстровидный DIP40 (Mega16)
Внушает, да? 😉 Начиная с TQFP шаг уменьшается в среднем в полтора раза. А мне после LPC1343 корпус FT232RL показался слоноподобным.
Конечно джедаям, в совершенстве овладевшим искусством лазерного утюга, а также профессиональным фоторезистным каталам не составит проблем сделать такую плату.
А твердая рука и хороший флюс дадут запаять эту микросхему даже раскаленным гвоздем, не говоря уже о нормальном паяльнике.
У меня ЛУТом, на бумаге Lomond и Samsung ML1520, с уже почти пустым и полосящим картриджем, получилось примерно так.
Получилсь корявенько, но не особо старался и вторую попытку делать не стал. Впрочем многим до этого уровня еще далеко, а кому то уже и зрение не позволит. В общем, чисто технологическое ограничение. Но невозможного нет.
Мощность
Тактовые частоты у ARM, даже у слабых моделей, достигают 70МГц, при том что на операцию им требуется тот же такт. Больше флеша, больше оперативки.
32х разрядная архитектура позволяет быстрей считать большие числа, а также дает плоскую 4Гб адресацию, что дает четыре миллиарда адресов под что угодно. Так что проблем куда сунуть периферийную конфигурацию не бывает в принципе — места хватит всем.
До такой степени, что появляется такой изврат как BitBanding, когда в сегменте памяти размером в мегабайт есть биты связаные с dword’ами в другом сегменте. И для того ,чтобы выставить конкретный бит достаточно записать любой ненулевой dword в соответствующий адрес.
32 мегабайта адресного пространства потратили на руление битами, с другой стороны у нас его 4гигабайта, чего мелочиться 🙂
На борту бывает очень много периферии. По крайней мере тремя UART или SPI в компании с аппаратным USB (причем еще и как хост) и Ethernet (правда все без PHY так что одним корпусом не обойтись, а PHY микруха по цене не сильно отличается от W5100 у которой на борту еще и TCP IP стек, так что преимущество спорное), кучей таймеров и каналов ШИМ.
С другой стороны, если посмотреть на новые восьмиразрядники, такие как ATxMega, то фарша там тоже хоть ложкой загребай, причем по ряду показателей периферия превосходит ту, что стоит в конкурирующей ARM линейке. Плюс привычное окружение и паяемые корпуса.
Плюс надо учитывать, что в любительских разработках эта мощность нафиг не нужна. Потому как там где ее надо много (потоковая обработка, КПК всякие, промышленные компы), гораздо дешевле и качественней оказывается купить готовое решение.
Спаять самому КПК конечно можно, но по результату, качеству исполнения и затратам он даже рядом не будет валяться с копечным ширпотребным поделием из Китая.
Так что если электроника это не более чем прикольное хобби, то дергаться смысла нет — восьмиразрядников вам хватит еще всерьез и надолго.
Плюс они гораздо проще в изучении, по ним навалом проектов, инструкций, примеров кода.
Самообучение и профессиональный рост
А вот если электроника и embedded программирование для вас больше чем «посидеть вечерком с паяльником», профессиональная деятельность, не важно сейчас или в перспективе, то изучать, хотя бы одним глазком, ARM контроллеры необходимо. Т.к. это ядро один из столпов всей мобильной электроники, а сейчас и активно лезет в нишу малых контроллеров. Ну и просто интересно.
О курсе
Я пока не определился с целевым контроллером на котором все будет опробываться. Возможно это будет LPC1343 или LPC1751, а может и STM32 какой нибудь.
Пока же я распологаю LPC1343/LPC1751 и балуюсь на них, но меня огорчает тот факт, что несмотря на общее ядро (ARM Cortex-M3) и одного производителя, периферия их сильно отличается друг от друга.
Вот жду когда приедет посылка с STM32… Попробую запустить их в диком виде и побаловаться.
Источник: http://easyelectronics.ru/arm-uchebnyj-kurs-vvodnaya.html