""

Компания silicon labs выпустила экономичные микроконтроллеры на ядре arm cortex-m0+

Содержание

Silicon Labs выпускает самые малопотребляющие микроконтроллеры с ядром ARM Cortex-M0+

Silicon Labs EFM32 Zero Gecko EFM32ZG-STK3200

Недорогие микроконтроллеры EFM32 Zero Gecko отличаются лучшей в отрасли энергоэффективностью среди 32-разрядных устройств

Компания Silicon Labs представила самые малопотребляющие в отрасли 32-разрядные микроконтроллеры на базе процессора ARM Cortex-M0+. Благодаря сверхмалому энергопотреблению устройства семейства EFM32 Zero Gecko могут применяться в приложениях с батарейным питанием, таких как изделия для занятия спортом и фитнесом, умные часы, устройства мониторинга активности, интеллектуальные счетчики, охранные системы и беспроводные датчики, а также в безбатарейных системах с питанием от устройств сбора энергии. Семейство Zero Gecko является последним расширением серии микроконтроллеров EFM32 Gecko, созданных компанией Energy Micro, и содержит 16 недорогих микроконтроллеров, изначально разработанных для минимизации энергопотребления сетевых устройств, используемых для Интернета вещей.

В микроконтроллерах EFM32 Zero Gecko реализована наиболее сложная в отрасли система управления питанием с пятью режимами, позволяющими приложениям оставаться в оптимальном энергетическом состоянии при минимальном времени пребывания в активном режиме с большим потреблением мощности. В режиме глубокого сна устройствам Zero Gecko требуется всего 0.9 мкА, что является лучшим на сегодняшний день показателем для приборов подобного класса. В активном режиме микроконтроллеры потребляют 110 мкА/МГц на частоте 24 МГц. В режиме полного отключения (shut-off) потребление тока будет менее 20 нА.

Как и во всех продуктах EFM32 Gecko, в микроконтроллерах Zero Gecko реализована самая совершенная для такого класса приборов технология энергосбережения, названная Peripheral Reflex System (PRS), которая значительно повышает энергоэффективность на системном уровне. PRS контролирует сложные события системного уровня и предоставляет различным периферийным устройствам возможность непосредственно взаимодействовать друг с другом и работать автономно без участия центрального процессора. Благодаря PRS микроконтроллер может анализировать последовательности определенных событий, происходящих до пробуждения процессора, тем самым, оставляя ядро Cortex-M0+ в энергосберегающем режиме максимально возможное время и снижая общее энергопотребление системы.

В микроконтроллерах EFM32 Zero Gecko имеется множество малопотребляющих точных аналоговых периферийных устройств, типичных для популярных семейств Tiny Gecko, Giant Gecko и Wonder Gecko. В частности, это аналоговый компаратор, компаратор напряжения питания, встроенный датчик температуры и 12-битный АЦП, потребляющий ток 350 мкА при частоте дискретизации 1 МГц.

Устройства Zero Gecko являются единственными микроконтроллерами с ядром Cortex-M0+, которые содержат аппаратный блок шифрования AES128. Благодаря такой аппаратной поддержке ускорения шифрования Zero Gecko являются идеальными решениями для использования в радиочастотных передатчиках и трансиверах, применяемыми для организации Интернета вещей.

Чтобы ускорить время выхода на рынок и снизить стоимость разработки, устройства семейства EFM32 Zero Gecko поддерживаются средой Simplicity Studio, которая работает на платформах Microsoft Windows, Linux и Mac/OS X. Средства разработки сторонних фирм включают IAR Embedded Workbench, Keil MDK-ARM и CrossWorks компании Rowley Associates.

EFM32ZG-STK3200

Цена и доступность

Образцы микроконтроллеров EFM32 Zero Gecko с объемом flash-памяти от 4 до 32 КБ доступны в корпусах QFN и QFP. Стартовая цена при заказе свыше 100,000 компонентов составляет $0.49 за штуку. Легкий в использовании и недорогой оценочный набор EFM32ZG-STK3200 можно приобрести по цене $69.

Перевод: Mikhail R по заказу РадиоЛоцман

Микроконтроллеры Happy Gecko от Silicon Labs

Silicon Labs выпускает микроконтроллеры на базе архитектуры ARM M0 с поддержкой USB-интерфейса. Новые чипы под кодовым названием Happy Gecko должны упростить схемы подключения по интерфейсу USB и сократить утечки питания.

Стартовый комплект на базе микроконтроллера Happy Geck, извещает Datasheet.su .

По словам экспертов компании Silicon Labs реализация интерфейса USB в портативной, питающейся от батарей электронике может удвоить энергопотребление устройств. Новые микроконтроллеры Happy Gecko имеют 5 режимов энергопотребления, позволяя достичь оптимального энергетического состояния в схемах. Время работы активного режима сводится к минимуму.

В режиме «глубокого сна» микроконтроллеры Happy Gecko потребляют лишь 0,9 мкА тока. При этом активны часы реального времени с частотой 32,768 кГц, цепь сброса, сохраняется состояние центрального процессора и ОЗУ. Энергопотребление в активном режиме составляет 130 мкА/МГц. Время выхода из режима ожидания – 2 мкс.

Как и все микроконтроллеры EFM32, чипы Happy Gecko включают 6-канальную систему Peripheral Reflex System (PRS), осуществляющую мониторинг системных событий и позволяющую различной периферии взаимодействовать между собой без участия центрального процессора. Схема PRS отслеживает специфические события до подключения центрального процессора, поэтому ядро Cortex-M0+ остаётся в режиме энергосбережения как можно дольше, что сокращает энергопотребление системы и продлевает время автономной работы.

В периферию входит аналоговый компаратор, компаратор напряжения питания, встроенный датчик температуры, ЦАП с программируемым током (IDAC), 12-разрядный АЦП с потреблением 350 мкА и частотой дискретизации 1 МГц. Встроенный движок шифрования AES позволяет реализовать защищённую беспроводную связь. Данная функция найдёт применение в сфере устройств Интернета вещей (интеллектуальных измерителях и беспроводных сетях датчиков).

Семейство микроконтроллеров Happy Gecko не требует внешних дискретных компонентов: кварцевых генераторов, стабилизаторов. В специальной архитектуре без кварцевого генератора реализован полноценный интерфейс USB, интегрированы стабилизаторы и резисторы. Новые чипы выпускаются в корпусах QFN, QFP и CSP – достаточно компактных для интеграции в USB-разъёмы и тонкие носимые гаджеты.

Новые решения поддерживаются в фирменной платформе разработки Silicon Labs Simplicity Studio, упрощающей работу инженеров. Средства Simplicity Energy Profiler позволяют реализовать профилирование и отладку в реальном времени. Модуль Simplicity Battery Estimator рассчитает ориентировочное время автономной работы с питанием от батареи в зависимости от задействованного режима, периферии. Модуль Simplicity Configurator предоставляет графический интерфейс для конфигурации выводов микроконтроллера, автоматически генерируя необходимый код инициализации.

Семейство Happy Gecko включает 20 микроконтроллеров с различными опциями памяти, корпусов и периферии. Чипы совместимы по выводам и ПО со всей линейкой решений EFM32 от Silicon Labs. Образцы и серийные партии новых микроконтроллеров доступны для заказа. Чипы выпускаются в 24- и 32-выводных корпусах QFN, 48-контактных – QFP и корпусах CSP (3 х 2,9 мм). При заказе партий от 10 тыс. шт. стоимость за один чип стартует с $0,83 (USD). Также доступен для заказа стартовый комплект Happy Gecko SLSTK3400A ($29).

Читайте также последние новости электроники

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

Исследователи из Швейцарского федерального технологического института (Swiss Federal Institute of Technology, ETH) создали крошечный инфракрасный спектрометр, размеры которого позволяют уместить его на кристалле полупроводникового чипа, и который, тем не менее, “обеспечивает массу интересных возможностей”.

Компания Xilinx, один из ведущих производителей чипов программируемой логики (FPGA), побила собственный рекорд, выпустив новый чип под названием Virtex Ultrascale+ VU19P.

Инженеры из Массачусетского технологического института и специалисты известной компании Analog Devices совместными усилиями создали первый полностью программируемый 16-разрядный микропроцессор на углеродных нанотрубках.

Разработчики современных оптических устройств всеми силами пытаются сделать эти устройства все меньшими и меньшими.

Непосвященные люди считают, что электрический ток течет совершенно одинаково через одинаковые компоненты наших электронных устройств.

Ученые-физики из Стэнфордского университета создали устройство, которое можно назвать термином “квантовый микрофон”, чувствительность которого достаточно высока для того, чтобы при его помощи можно было измерить параметры отдельных звуковых частиц, называемых фононами.

В этом году компания Asus отмечает свою 30-ю годовщину и, поскольку эта компания в 1989 году начала свою деятельность именно с производства компьютерных материнских плат, она представила свое видение того, какими будут материнские платы следующих поколения спустя некоторое время.

Читайте также:  Как правильно провести проводку в квартире?

Группа ученых, в которую входили Ральф Меркл (Ralph Merkle) и Роберт Фреитас (Robert Freitas), продемонстрировала, что при помощи нескольких базовых мироэлектромеханических компонентов может быть создана полноценная тьюринговая вычислительная система.

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

Книги по электронике

Пособие предназначено для руководителей малых предприятий, осуществляющих ремонт бытовой техники или ремонт квартир по заказам населения. Приводятся основные требования в области охраны труда и обеспечения его безопасности в соответствии с действующими нормативными правовыми актами по охране труда и порядок их выполнения. Может использоваться соответствующими органами исполнительной власти субъектов Российской Федерации, в том числе ведающими вопросами.

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

Digitrode

цифровая электроника вычислительная техника встраиваемые системы

Микроконтроллеры 8051, PIC, AVR и ARM: отличия и особенности

Различие между микроконтроллерами AVR, ARM, 8051 и PIC

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

Но на рынке сегодня представлено большое количество микроконтроллеров. Что они из себя представляют? И в чем их отличие друг от друга? В этой статье мы рассмотрим разницу между основными семействами микроконтроллеров: AVR, ARM, 8051 и PIC.

Микроконтроллеры 8051

Микроконтроллер 8051 – это 8-битное семейство микроконтроллеров, разработанное Intel в 1981 году. Это одно из популярных семейств микроконтроллеров, которые используются во всем мире. Кроме того, этот микроконтроллер изначально назывался «системой на кристалле», поскольку он имеет 128 байт оперативной памяти, 4 Кбайт ПЗУ, 2 таймера, 1 последовательный порт и 4 порта на одном кристалле. Процессор может обрабатывать до 8 бит данных одновременно. Если данные больше 8 бит, то они должны быть разбиты на части, чтобы процессор мог легко их обрабатывать. Большинство микроконтроллеров серии 8051 различных производителей содержат 4 Кбайт ПЗУ, хотя объем ПЗУ может быть расширен до 64 Кбайт.

Микроконтроллеры 8051 используются в огромном количестве устройств, главным образом потому, что их легко интегрироватьв проект. Ниже перечислены основные направления их применения.

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

Сенсорные экраны. Большое количество поставщиков микроконтроллеров включает сенсорные функции в свои устройства. Примерами сенсорных экранов на микроконтроллерах являются портативная электроника, такая как сотовые телефоны, медиаплееры и игровые устройства.

Автомобили: микроконтроллеры 8051 находят широкое применение в автомобильных решениях. Они широко используются в гибридных транспортных средствах для обработки данных с двигателей и управления ими. Кроме того, такие функции, как круиз-контроль и анти-тормозная система, более эффективны с использованием микроконтроллеров.

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

Микроконтроллеры PIC

Контроллер периферийного интерфейса (PIC) – это серия микроконтроллеров, разработанная компанией Microchip. Микроконтроллер PIC быстрее и проще реализует программы, если сравнивать с другими микроконтроллерами, такими как 8051. Простота программирования и простота взаимодействия с другими периферийными устройствами делает PIC более успешным микроконтроллером.

PIC – это микроконтроллер, который также состоит из центрального процессора, ОЗУ, ПЗУ, таймеров, счетчиков, АЦП (аналого-цифровых преобразователей), ЦАП (цифроаналоговых преобразователей). Микроконтроллер PIC также поддерживает протоколы, такие как CAN, SPI, UART для взаимодействия с дополнительными периферийными устройствами. PIC в основном использует модифицированную гарвардскую архитектуру, а также поддерживает RISC (сокращенный набор команд). Благодаря этому PIC быстрее, чем контроллеры на основе ядра 8051, которые основаны на фон-неймановской архитектуре.

Микроконтроллеры AVR

Первые микроконтроллеры AVR были разработаны в 1996 году компанией Atmel (теперь часть Microchip). Проект AVR был разработан Альф-Эгилем Богеном и Вегаром Волланом, поэтому AVR аббревиатура получила две первые буквы от имен разработчиков: Alf-Egil Bogen Vegard Wollan RISC, после эта аббревиатура стала расшифровываться более официально как Advanced Virtual RISC. AT90S8515 был первым микроконтроллером в линейке AVR, хотя первым микроконтроллером, который попал на коммерческий рынок, был AT90S1200 (в 1997 году).

Микроконтроллеры AVR доступны в трех основных подсемействах:

TinyAVR: меньше памяти, небольшой размер, подходит только для более простых приложений.

MegaAVR: это популярные микроконтроллеры, в основном имеющие относительно большое количество памяти (до 256 КБ), большее количество встроенных периферийных устройств и подходят для довольно сложных приложений.

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

Микроконтроллеры ARM

Микроконтроллеры с ядром ARM также являются одним из семейств процессоров на базе архитектуры RISC, разработанным компанией Advanced RISC Machines (ARM).

Микроконтроллеры ARM основаны на 32-битных и 64-битных многоядерных процессорах RISC. Процессоры RISC предназначены для выполнения меньшего количества инструкций, чтобы они могли работать с большей скоростью, выполняя дополнительные миллионы инструкций в секунду (MIPS). Устраняя ненужные инструкции и оптимизируя обработку информации, RISC-процессоры обеспечивают большую производительность по сравнению с большинством рассмотренных выше микроконтроллеров.

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

Cortex-M0+

Cortex-M0+

The Arm Cortex-M0+ processor is the most energy-efficient Arm processor available for constrained embedded applications.

Getting Started

The Cortex-M0+ processor builds on the very successful Cortex-M0 processor, retaining full instruction set and tool compatibility, while further reducing energy consumption and increasing performance.

The exceptionally small silicon area, low power and minimal code footprint of Cortex-M0+ enables developers to achieve 32-bit performance at an 8-bit price point, bypassing the step to 16-bit devices. The Cortex-M0+ processor comes with a wide selection of options to provide flexible development.

Specifications

ArchitectureArmv6-M
Bus InterfaceAMBA AHB-Lite, Von Neumann bus architecture with optional single-cycle I/O interface
ISA SupportThumb/Thumb-2 subset
Pipeline2-stage
Memory ProtectionOptional 8 region MPU with sub regions and background region
Bit ManipulationBit banding region can be implemented with Corstone Foundation IP
InterruptsNon-maskable Interrupt (NMI) + 1 to 32 physical interrupts
Wakeup Interrupt ControllerOptional
Enhanced InstructionsHardware single-cycle (32×32) multiply option
Sleep ModesIntegrated WFI and WFE Instructions and Sleep On Exit capability.
Sleep and Deep Sleep Signals
Optional Retention Mode with Arm Power Management Kit
DebugOptional JTAG or Serial Wire Debug ports. Up to 4 Breakpoints and 2 Watchpoints
TraceOptional Micro Trace Buffer
Start designing now

Arm Flexible Access gives you quick and easy access to this IP, relevant tools and models, and valuable support. You can evaluate and design solutions before committing to production, and only pay when you’re ready to manufacture.

Characteristics

Performance Efficiency 2.46 CoreMark/MHz* and 0.95/1.11/1.36 DMIPS/MHz**.

Arm Cortex-M0+ Implementation Data***
180ULL
(7-track, typical 1.8v, 25 °C )
90LP
(7-track, typical 1.2v, 25 °C )
40LP
(9-track, typical 1.1v, 25 °C )
Dynamic Power47.4 µW/MHz9.37 µW/MHz3.8 µW/MHz
Floor Planned Area0.098 mm 20.028 mm 20.0066 mm 2

** The first result abides by all of the “ground rules” laid out in the Dhrystone documentation, the second permits inlining of functions, not just the permitted C string libraries, while the third additionally permits simultaneous (”multi-file”) compilation. All are with the original (K&R) v2.1 of Dhrystone.

***Minimum configuration with full ISA support and Interrupt Controller, includes 1 IRQ + NMI, excludes ETM, MPU and debug.

Related IP

The Cortex-M0+ processor can be incorporated into a SoC using a broad range of Arm technology including System IP, and Physical IP. It is fully supported by Arm development tools. Related IP includes:

Cortex-M comparison table
Compatible IPToolsSoftware
FeatureCortex-M0Cortex-M0+Cortex-M1Cortex-M23Cortex-M3Cortex-M4 Cortex-M33Cortex-M35P Cortex-M55Cortex-M7
Instruction Set ArchitectureArmv6-MArmv6-MArmv6-MArmv8-M BaselineArmv7-MArmv7-MArmv8-M MainlineArmv8-M MainlineArmv8.1-M Mainline
Helium
Armv7-M
Thumb, Thumb-2Thumb, Thumb-2Thumb, Thumb-2Thumb, Thumb-2Thumb, Thumb-2Thumb, Thumb-2Thumb,
Thumb-2
Thumb,
Thumb-2
Thumb,
Thumb-2
Thumb,
Thumb-2
DMIPS/MHz range*0.87-1.270.95-1.360.80.981.25-1.891.25-1.951.51.51.62.14-3.23
CoreMark®/MHz*2.332.461.852.643.343.424.024.024.25.01
Pipeline Stages3232333346
Memory Protection Unit (MPU)NoYes (option)NoYes (option)
(2 x)
Yes (option)Yes (option)Yes (option)
(2 x)
Yes (option)
(2 x)
Yes (option) (2 x)Yes (option)
Maximum MPU Regions8168816161616
Trace (ETM or MTB)NoMTB (option)NoMTB (option) or
ETMv3 (option)
ETMv3 (option)ETMv3 (option)MTB (option) and/or
ETMv4 (option)
MTB (option) and/or
ETMv4 (option)
ETMv4 (option)ETMv4 (option)
Digital Signal Processing (DSP) extension
NoNoNoNoNoYesYes (option)Yes (option)Yes (option)Yes
Floating Point HardwareNoNoNoNoNoYes (scalar SP)Yes (scalar SP)Yes (scalar SP)Yes (scalar HP +
SP + DP) (vector
HP + SP)
Yes (scalar SP + DP)
Systick TimerYes (option)Yes (option)Yes (option)Yes (2 x)YesYesYes (2 x)Yes (2 x)Yes (2 x)Yes
Built-in CachesNoNoNoNoNoNoNoYes (option 2- 16kBYes (option)Yes (option 4-64kB
I-cacheI-cache and D-cacheI-cache, D-cache)
Tightly Coupled MemoryNoNoYesNoNoNoNoNoYes
(option 0-16MB
I-TCM/D-TCM)
Yes
(option 0-16MB
I-TCM/D-TCM)
TrustZone for Armv8-MNoNoNoYes (option)NoNoYes (option)Yes (option)Yes (option)No
Coprocessor InterfaceNoNoNoNoNoNoYes (option)Yes (option)Yes (option)No
Bus ProtocolAHB LiteAHB Lite, Fast I/OAHB LiteAHB5, Fast I/OAHB Lite, APBAHB Lite, APBAHB5, APBAHB5, APBAXI5 (main bus), AHB
(peripheral bus,
TCM slave port and debug)
AXI4, AHB Lite, APB, TCM
Wake-up Interrupt Controller SupportYesYesNoYesYesYesYesYesYesYes
Integrated Interrupt Controller (NVIC)YesYesYesYesYesYesYesYesYesYes
Maximum # External Interrupts
323232240240240480480480240
Hardware DivideNoNoNoYesYesYesYesYesYesYes
Single Cycle MultiplyYes (option)Yes (option)NoYesYesYesYesYesYesYes
CMSIS SupportYesYesYesYesYesYesYesYesYesYes
Dual Core Lock-Step SupportNoNoNoYesNoNoYesYesNoYes
Arm Custom InstructionsNoNoNoNoNoNoYesNoYes (available in 2021)No
Common Criteria certificationNoNoNoNoNoNoYesYesNoNo

*See individual Cortex-M product pages for further information.

SP = Single Precision

DP = Double Precision

HP = Half Precision

Get Support

Get support with Arm Training courses and design reviews. You can also open a support case or manage existing cases.

Community Blogs

Arm Education Media’s textbook, Embedded Systems Fundamentals, has been selected by Jisc, via competitive tender, for its e-Books for FE program.

Code size is always a popular topic in embedded software because most embedded systems face memory constraints. Compiler related meetings often discuss code size as a key care about. Arm has been migrating from Arm Compiler 5 to Arm Compiler 6 and…

As embedded devices become more prevalent and assume more responsibility in our daily lives, there is a need for functional safety to make sure that we are not put in danger by any faults that may occur.

The trickle-down effect from increased government regulations and from car consumers’ embrace of automotive electronics is far-reaching. These consequences challenge engineering teams more and more. Think about the shift from 8- and 16-bit micr

To those who are unfamiliar with the semiconductor supply chain, the process of producing silicon can seem complex and daunting. With many innovative ideas emerging, particularly relating of the Internet of Things, Sondrel is looking to highlight the

作者:jyiu ,2015年4月3日第五版更新 原文地址:Getting started with ARM Microcontroller Resources 1 – 总览 对于一个ARM微控制器的初学者来说,有时候要找到一些有用的设计参考信息是非常困难的一件事。因为在网上实在有太多资源了,最先遇到的困难可能就是能不能找到一个地方帮助你正确选择一款ARM的处理器 ,目前,主要有两种ARM处理器: 应用处理器Application processors – 这些都是能跑操

Alexander’s personal blog

пятница, 25 марта 2016 г.

Знакомство с микроконтроллерами ARM Cortex M на примере LPC1114

В последнее время всё большую популярность набирают микроконтроллеры построенные на основе архитектуры ARM. Есть мнение, что эра восьмиразрядных микроконтроллеров подходит к концу, так как им трудно тягаться в производительности с 32-разрядными ARM Cortex M-ядрами. Более того, ARM-чипы уже опережают 8-битных конкурентов не только по соотношение цена/производительность, но и просто по цене.

Архитектура процессоров ARM и семейство Cortex M

Обзор регистров и инструкций Thumb

В архитектуре ARM есть 12 регистров общего назначения. Они так и называются: R0-R12. Также имеется 2 регистра-указателя стека MSP (Main Stack Pointer) и PSP (Process Stack Pointer). Один из этих указателей отображается на регистр R13 (SP) (Stack Pointer). R13 и SP – просто взаимозаменяемые названия. В зависимости от бита 1 в регистре CONTROL SP будет соответсвовать MSP (0) или PSP (1). Link Register (LR) или R14 используется при вызове процедур и прерываний. В нём содержится адрес возврата. Program Counter (PC) или R15 – указатель текущей команды. Program Status Register (PSR).

Программа кодируется с помощью 2-байтных инструкций Thumb.

Регистры общего назначения R0-R12 делятся на LO-регистры (R0-R7) и HI-регистры (R8-R12). Многие команды Thumb работают только с LO-регистрами. Согласно документации, значение может передаваться из из LO-регистра в HI-регитр и из HI-регистра в LO-регистр, с помощью специального варианта инструкции MOV. Значения в HI-регистрах могут сравниваться с значениями в LO-регистрах с помощью инструкции CMP. Значения в HI-регистрах могут так же добавляться к значениям в LO-регистрах с помощью инструкции ADD.

Задействуем периферию

В стандартный набор периферии микроконтроллеров могут входить UART (универсальный асинхронный приёмопередатчик, тот что лежит в основе компьютерных COM-портов), шина I2C, шина SPI и, разумеется GPIO (General Purpose I/O или вводы-выводы общего назначения). Могут входить так же ADC (АЦП, аналого-цифровой преобразователь), DAC (цифро-аналоговый преобразователь), реализованный аппаратно PWM (ШИМ, широтно-импульсная модуляция). Внешние утстройства управляются с помощью регистров (не путать с регистрами процессора R0-R15), которые отображаются на определённые области в памяти.

Так, например, в LPC1114 по адресу 0x50008000 находится регистр GPIO0DIR, который определяет, какие ножки GPIO0 будут работать как вводы, а какие – как выводы. А по адресу 0x50003ffc находится регистр GPIO0DATA, с помощю которого можно установить значение на выводах (записывая значения в соответствующие биты регистра), или, соответственно, считать значения на тех ножках GPIO0, которые настрены как ввводы.

То есть в отличие от архитектуры x86 в ARM нет аналогов инструкций IN/OUT. Вместо записи значения в порт нужно просто записать значение по определённому адресу так же как мы бы записывали его в память. Это, кстати, позволяет при работе с внешними устройствами из языка C/С++ использовать только лишь адресную арифметику и указатели.

В процессоре LPC1114 (как и во многих других) можно “включать” и “выключать” периферию, оптимизируя таким образом потребляемую мощность. Как я понял, подключение/отключение блоков периферии производится с помощью подключения/отключения тактирования для этих блоков. Это делается установкой соответствующего бита в регистре SYSAHBCLKCTRL (по адресу 0x40048080). В нашем примере мы устанавливаем 6-й и 16-й биты, включая таким образом GPIO (6-й бит) и IOCON Block (блок конфигурации воода-вывода).

Начальная загрузка процессора ARM Cortex M.

Процедура начальной загрузки одинакова по крайней мере для контроллеров Cortex-M0/3/4. Процессор считывает по адресу 0x00000000 начальное значение указателя стека и инициализирует регистр MSP (который сразу после загрузки отображается на регистр R13) Затем, начиная с адреса 0x00000004 находится таблица исключений (таблица прерываний). Самое первое прерывание – Reset. Это значит, что по адресу 0x00000004 лежит адрес кода, который начнёт выпонятся сразу после сброса микроконтроллера. Вооружившись этими знаниями, а так же таблицей комманд Thumb и манулом к LPC1114 я покажу как реализовать мигание светодиодом – аналог “Hello world” в мире микроконтроллеров.

Реализация мигания светодиодом на ассемблере

Хорошая новость о разработке на ассемблере для ARM заключается в том, что можно обойтись совсем без ассемблера, и написать всю прошивку, начиная от начальной заргрузки и заканчивая общением с периферией на языке C или даже C++. Однако для знакомства с платформой написание программ на ассемблере будет очень полезным упражнением. С этого и начнём. В мире ARM популярны как минимум два транслятора ассемблерного кода GNU AS и ARMASM , и синтаксис у них отличается. Здесь рассмотрен GNU AS.

Инструменты

Я буду использовать набор утилит для сборки (toolchain) GNU и коммандную строку. Это позволит в максимально явном виде показать каждый этап сборки.

Сборка проекта

Используя этот скрипт можно скомпоновать объектный файл в ELF-файл:

PATH_TO_GNU_TOOLCHAIN/arm-none-eabi-gcc -nostartfiles -Tblink-lpc1114.ld blink-lpc1114.o -o blink-lpc1114.elf

Должен сгенерироваться файл blink-lpc1114.elf . Наконец, последний шаг – конвертация ELF-файла в BIN-файл, который будет из себя представлять двоичные данные в том виде, в котором они будут лежать во флеш-памяти микроконтроллера. Это делается с помощью утилиты objcopy:

PATH_TO_GNU_TOOLCHAIN/arm-none-eabi-objcopy.exe -O binary blink-lpc1114.elf blink-lpc1114.bin
В результате получим файл blink-lpc1114.bin.

Прошивка контроллера

Здесь я немного “срезал угол”. Я приобрёл чип LPC1114 вместе с mbed-совместимой платой. Она подключается к USB-разъёму, и определяется как файловая система (этакая небольшая флешка). На неё можно просто скопировать bin-файл. После перезагрузки плата “поймёт”, что есть новая версия прошивки для микроконтроллера и “зальёт” бинарник в его флеш-память. Остаётся убедиться, что всё работает.

Без ткой платы LPC1114 прошивается через UART с уровнями 3.3 В. Существуют по крайней мере две утилиты для прошивки: lpc21isp (opensource) и flashmagic (бесплатная, но исходники, вроде, закрыты). Если использовать компьютерный COM-порт, то необходимо использовать адаптер уровней (COM-порт выдаёт уровни +12/-12 вольт). Я планирую попробовать использовать плату Raspberry Pi и её UART-выводы, которые как раз выдают 3.3 В, и преобразование не требуется. Я надеюсь испытать этот метод на практике в ближайшем будущем и напишу о результатах в этом блоге.

Собираем схему. Немного об электрических характеристиках LPC1114

Нам достаточно одной ножки, чтобы подключить светодиод. Из datasheet’а я понял, что среди всех “стандартных” GPIO-ножек выделяется PIO0_7 (28-я ножка микросхемы), которая служит “выводом с большим током” (High-current output driver), и может выдавать аж 20мА, что вполне достаточно для подключения светодиода через ограничивающий ток резистор. С остальными выводами ситуация такая: если через вывод вытекает ток равный 4мА, то напряжение на этом выводе падает на 0.4В, то есть выходное сопротивление этих выводов равно 0.4В/4мА = 100Ом. При этом суммарный потребляемый микроконтроллером ток (часть из которого будет выходить через выводы GPIO) не должен превышать 100мА. В общем, к другим ножкам тоже можно подключить светодиоды. Я собрал вот такую схему на макетной платe:

Плата завелась без проблем

Я использовал плату Arduino Uno в качестве источника питания на 3.3В

Заключение

Я думаю, что мне удалось показать, что работа с микроконтроллерами ARM Cortex M не обязательно сложна как с программной так и со схемотехнической точек зрения. Надеюсь, этот пост поможет кому-то вьехать в разработку устройств на этой архитектуре. В следующих постах я планирую написать про использование языка C и заголовочных файлов, предоставляемых производителем контроллера для более быстрой и удобной разработки.

Компания silicon labs выпустила экономичные микроконтроллеры на ядре arm cortex-m0+

Дельта принтеры крайне требовательны к точности изготовления комплектующих (геометрия рамы, длины диагоналей, люфтам соединения диагоналей, эффектора и кареток) и всей геометрии принтера. Так же, если концевые выключатели (EndStop) расположены на разной высоте (или разный момент срабатывания в случае контактных концевиков), то высота по каждой из осей оказывается разная и мы получаем наклонную плоскость не совпадающая с плоскостью рабочего столика(стекла). Данные неточности могут быть исправлены либо механически (путем регулировки концевых выключателей по высоте), либо программно. Мы используем программный способ калибровки.
Далее будут рассмотрены основные настройки дельта принтера.
Для управления и настройки принтера мы используем программу Pronterface.
Калибровка принтера делится на три этапа:

1 Этап. Корректируем плоскость по трем точкам

Выставление в одну плоскость трех точек — A, B, C (расположенных рядом с тремя направляющими). По сути необходимо уточнить высоту от плоскости до концевых выключателей для каждой из осей.
Большинство (если не все) платы для управления трехмерным принтером (В нашем случае RAMPS 1.4) работают в декартовой системе координат, другими словами есть привод на оси: X, Y, Z.
В дельта принтере необходимо перейти от декартовых координат к полярным. Поэтому условимся, что подключенные к двигателям X, Y, Z соответствует осям A, B, C.(Против часовой стрелки начиная с любого двигателя, в нашем случае смотря на логотип слева — X-A, справа Y-B, дальний Z-C) Далее при слайсинге, печати и управлении принтером в ручном режиме, мы будем оперировать классической декартовой системой координат, электроника принтера сама будет пересчитывать данные в нужную ей систему. Это условность нам необходима для понятия принципа работы и непосредственной калибровки принтера.

  • Обнуляем высоты осей X, Y, Z командой M666 x0 y0 z0.
    И сохраняем изменения командой M500. После каждого изменения настроек необходимо нажать home (или команда g28), для того что бы принтер знал откуда брать отсчет.
  • Калибровка принтера производится “на горячую”, то есть должен быть включен подогрев стола (если имеется) и нагрев печатающей головки (HotEnd’а) (Стол 60град., сопло 185 град.) Так же нам понадобится щуп, желательно металлический, известных размеров. Для этих задач вполне подойдет шестигранный ключ (самый большой, в нашем случае 8мм, он предоставляется в комплекте с принтерами Prizm Pro и Prizm Mini)
  • Опускаем печатающую головку на высоту (условно) 9мм (от стола, так, что бы сопло еле касалось нашего щупа, т.к. высота пока что не точно выставлена.) Команда: G1 Z9.
  • Теперь приступаем непосредственно к настройке наших трех точек.
    Для удобства можно вместо g- команд создать в Pronterface четыре кнопки, для перемещения печатающей головки в точки A, B, C, 0-ноль.

  • Последовательно перемещаясь между тремя точками (созданными ранее кнопками или командами) выясняем какая из них находится ниже всего (визуально) и принимает эту ось за нулевую, относительно нее мы будем менять высоту остальных двух точек.
  • Предположим, что точка A у нас ниже остальных. Перемещаем головку в точку B(Y) и клавишами управления высотой в Pronterface опускаем сопло до касания с нашим щупом, считая величину, на которую мы опустили сопло (в лоб считаем количество нажатий на кнопки +1 и +0.1)
    Далее командой меняем параметры высоты оси Y: M666 Y <посчитанная величина>
    M666 Y0.75
    M500
    G28
  • Ту же операцию проделываем с оставшимися осями. После чего следует опять проверить высоту всех точек, может получится, что разброс высот после первой калибровки уменьшится, но высота все равно будет отличатся, при этом самая низкая точка может изменится. В этом случае повторяем пункты 6-7.
  • 2 Этап. Исправляем линзу

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

    Рейтинг
    ( Пока оценок нет )
    Загрузка ...
    ×
    ×
    Adblock
    detector