BrSTU-ARM

Материал из BrSTU Robotics Wiki
Перейти к: навигация, поиск

Страница содержит материалы по оценке использования архитектуры ARM Cortex (Что такое ARM) в проектах СНИЛ "Робототехника".

Особенности

Возможность применения процессоров ARM Cortex-M в наших проектах обусловлена следующими особенностями. Они могут идти в плюс или в минус в зависимости от конкретного проекта, но примерно можно раскинуть так:

В плюс:

  • Рабочие частоты до 100 МГц
  • Разрядность 32 бита
  • Большая линейка взаимозаменяемых чипов
  • Большой объем памяти у старших процессоров в линейке
  • Наличие развитой периферии - по нескольку UART, I2C, SPI, развитая система прерываний
  • Наличие встроенной поддержки USB
  • Высокое быстродействие АЦП - до 1 МГц
  • Сравнительно низкая цена на чипы
  • Возможность использовать ЯВУ с виртуальной машиной на старших моделях
  • Приемлемое энергопотребление

В минус:

  • Несколько производителей - нужно выбрать
  • Корпуса только для поверхностного монтажа - максимальный по размеру TQFP с 0,3 мм шагом
  • Отсутствие крупного проекта по типу Arduino, который бы объединил сообщество открытых исходников
  • Зоопарк отладочных плат
  • Необходимость осваивать новый инструментарий разработки
  • Напряжение питания 3,3В - нужны преобразователь и согласование с датчиками и периферией 5В

Демо платы

  • Rapid Prototyping for Microcontrollers Британская команда из Кембриджа, которая поддерживается компаниями ARM и NXP (подразделение Philips). Продвигают 2 платы на процессорах NXP LPC. Из особенностей можно отметить, что:
    • железо очень хорошо доведено,
    • загрузка прошивки по протоколу usb mass storage (при подключении к компу плата определяется как флешка, удаление файла стирает текущую прошивку, запись файла - прошивка ПО в контроллер),
    • компилятор на сайте,
    • исходники загрузчика и библиотеки закрыты,
    • можно использовать сторонние средства разработки,
    • развитое сообщество,
    • для старшей платы предположительно поддерживаются Python, Lua, Java.
  • Leaflabs Open Electronics Команда из MIT продвигает платы на STM32.
    • Ключевая фишка проекта - стремление создать аналог Arduino, по возможности полный.
    • Программирование на С++.
    • Открытые исходники загрузчика и библиотеки.
    • Самое перспективное направление.
  • Yet Another Development Board или Mini64 - прямой аналог одной из плат Leaflabs, сделан украинцем. Очень профессионально, но почти невозможно для повторения в наших условиях. Плату нужно заказывать в Китае, ЛУТом не сделаешь. Компоненты у профессиональных поставщиков. Паять феном.

Средства разработки

  • Виртуальная машина Python - работает на голом АРМ, в наличии уже есть поддержка Arduino Mega и LeafMaple (заказывается с Seeedstudio), что еще нужно для счастливой жизни :). Проект очень молод. Подмножество языка Питон. Неразвитые библиотеки периферии.
  • Виртуальная машина Squawk - теоретически может использоваться для выполнения Java кода на ARM Cortex-M. Очень интересно, но вопросов больше чем ответов.
  • eLua порт ЯВУ Lua на ARM Cortex-M. Практически полная поддержка текущей спецификации Lua. Развитые библиотеки периферии. Большое количество поддерживаемых демо-плат.
  • GNU Tools for ARM Embedded Processors Одна из сборок С++ для ARM Cortex-M. Не тестировалась.

Ещё ссылки по теме