Абсолютно дешевый (простой) способ запуска программирования на микроконтроллерах ARM [закрыто]


18

Я хочу начать использовать процессоры ARM, переходя с PIC, которые я использовал слишком долго. 8-битные модели были доступны менее чем за 1 доллар, программисты - менее чем за 10 долларов, и я был избалован простотой и низкой стоимостью начала работы. Но, видя, что их мощность ограничена некоторыми ARM-чипами по той же цене, и, будучи перегруженным программным обеспечением с закрытым исходным кодом, я хочу сделать это.

Я бы предпочел не брать какие-либо платы для разработки, а вместо этого сразу перейти к ним с дешевой универсальной печатной платой (1 доллар) и на макете, используя любые внешние компоненты, необходимые для его работы.

Каковы мои варианты программирования чипов ARM таким образом? Есть ли такие программисты, как PICKit2, которые используют USB для подключения к ПК, программируя с помощью простого последовательного соединения (например, ICSP) с чипом? Какая разница в настройках требуется для разных производителей ARM, версий ARM и отдельных чипов? (ST, Atmel ...) Например, нужны ли каждому производителю свои компиляторы, программисты, IDE и т. Д.? Или есть общие инструменты для всех?

РЕДАКТИРОВАТЬ: Хорошо, так что после дополнительных исследований, я думаю, что я нашел относительно дешевое решение, плату разработчика stm32 можно прошить прошивкой DAPLINK, но я не верю, что официальная прошивка github будет работать изначально (все это предположение, пока я получить мою почту разработчика stm32 по почте). Но я обнаружил, что на плате daplink_usb, входящей в комплект readbear mk20, установлена ​​микросхема stm32, они выпустили прошивку, для которой необходимо изменить строку, чтобы сделать ее совместимой с кристаллом 8 МГц (подробнее в сообщении на форуме, связанном ниже). В противном случае замените кристалл на 16 МГц. Я обновлю, как только я подтвердил это, когда прибудет мой комплект разработчика.

GITHUB РЕПО

Хороший ресурс форума здесь .

Redbear Github вилка


4
Приятно осознавать, что 5 долларов дают вам Raspberry Pi Zero, который поддерживается совершенно нормальным (и бесплатным!) GCC. И если вы только что испытали шок от того, насколько быстры микроконтроллеры ARM, RPi снова вас ошеломит. Основная проблема IMO заключается в том, что ни один производитель ARM не понимает сообщение под RPi. Вы больше не будете много зарабатывать на микроконтроллерах ARM, но гораздо больше можно сделать, поставляя готовые к использованию модули ЦП.
MSalters

4
Иногда излишне использовать готовый модуль ЦП во встроенном приложении.
Бенс Кауликс

3
@MSalters, RPI громоздкий ... Мне просто не нужны дополнения, с которыми он поставляется. Мне нужны мелочи в очень компактном пространстве для быстрой обработки в реальном времени. Кроме того, RPI потребляет намного больше энергии, чем было бы приемлемо.
CL22

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

2
Подумайте о приобретении недорогой платы разработчика, которая поставляется со встроенным мостом USB-SWD. Это даст вам доступ к функциям отладки, а также к загрузке кода. Вы можете разделить доступ SWD к любой другой цели, когда она вам подходит.
Шон Хулихейн

Ответы:


14

Строки stm32F0 и stm32L0 имеют платы обнаружения стоимостью около $ 10, и Keil предоставит полнофункциональную IDE для этой линии при нулевой стоимости.

Инструкции по установке Keil free pro MDK ЗДЕСЬ

Кроме того, у ARM есть белый лист о переходе на Cortex M3 из PIC, который может оказаться полезным


7
+1 Но также стоит отметить, что большинство (все) плат обнаружения имеют встроенный STLINK, который также можно использовать для программирования автономных устройств путем настройки перемычек.
Роджер Роуланд,

@RogerRowland - отличный момент. Я использовал встроенные программисты для своих собственных плат раньше. Discovery - отличная линия, в общем. Я желаю, чтобы у них были монтажные отверстия!
Скотт Сейдман

Вы бы порекомендовали Nucleo или Discovery? Они, кажется, имеют одинаковую цену, и обе функции ST-LINK.
Дэвид

@ Давид, я не использовал ядро, но могу сказать, что Открытия хорошо послужили мне. По этой цене, получите по одному (хотя я бы пошел с двумя Открытиями!)
Скотт Сейдман


7

Самый простой способ - выложить> 10 000 долларов США за полнофункциональный компилятор Keil Pro, купить их отладчик JLINK (возможно, еще один доллар США - есть более дешевые с некоторыми ограничениями). IAR - еще одна дорогая возможность (приведены примеры для процессора STM32F7 Cortex M7, работающего на 30-дневной демонстрационной версии IAR)

Самый дешевый способ - скачать и установить (бесплатно) GCC-ARM + Eclipse toolchain с плагинами отладчика JLINK. Получите клон JLINK за ​​20 долларов или около того, что, я думаю, будет работать нормально - пока не проверено, для отладки.

В сети есть подробные инструкции для последних, однако они делают определенные предположения. Ожидайте потратить день или больше, чтобы начать работу, особенно под Windows. Не ожидайте, что сможете использовать многие примеры, предоставленные для других IDE, без какой-либо работы. Впечатляет, что бесплатный набор инструментов может использовать «пакеты» («экспериментальные» прямо сейчас).

Есть и другие системы, такие как Rowley Crossworks (я полагаю, что они используют gcc), которые менее болезненны с финансовой точки зрения. Atmel Studio - это еще одна, но у меня были горькие жалобы от моего очень опытного разработчика прошивок по этому поводу (я только ненадолго поиграл с ней).

Если ваш код требует менее 32 КБ, вы можете использовать ту же систему Keil бесплатно (версия с ограниченным кодом), но имейте в виду, что путь обновления прост, но довольно дорог. Например, он не скомпилирует простые примеры Ethernet для SAME70. Хорошо, если вы заменяете PIC или AVR низкоуровневыми ARM, но не очень хорошо, если вы собираетесь ARM, потому что вам действительно нужно общаться с ЖК-дисплеями и запускать сложные протоколы связи (возможно, предварительно скомпилированные модули могут быть включены, не влияя на 32K предел, я не исследовал этот конкретный угол).


7

Вот что я использую:

  • STM32F103 «минимальная системная плата» (смотри , например , здесь , ядро Cortex-M3 ), работает на 3.3V или мощности USB без каких - либо внешних компонентов, клоны приходят около $ 3 каждый. Это прекрасно подходит для вашей просьбы «прямо в нее попасть с дешевой универсальной печатной платой и на макете».
  • ST-Link V2 USB программатор клон (выглядит как этот ), начинается около $ 2 и поддерживает на-чипе отладки , а также.
  • EmBitz (ранее Em :: Blocks) как IDE с набором инструментов gcc, $ 0
  • STM's CubeMX, чтобы помочь начать работу с новыми проектами, 0 долларов США

5

Самым простым началом, вероятно, является одна из сторонних клонированных плат. Случайный пример из ST . Для этого нужен программист, использующий протокол «SWD». ST делает фирменные ST-LINK, я не уверен, нужно ли вам использовать ST-LINK с устройствами ST или это действительно универсально.

Некоторая комбинация SWD и JTAG играет роль ICSP в системах ARM, предоставляя вам возможности программирования и отладки.

В программном плане обычно можно работать с GCC и OpenOCD на большинстве чипов. Детали немного отличаются для каждого устройства. Профессионалы часто используют набор инструментов Keil, который довольно дорог.

Некоторые устройства (например, серии Kinetis) имеют загрузчики USB: устройство отображается как запоминающее устройство, вы загружаете на него файл BIN и нажимаете кнопку. Самое простое решение, программист не требуется. У Atmel AT91 есть USB-загрузчик, который работает с проприетарным протоколом SAM-BA.


На платах St Discovery и Nucleo размещены ссылки, и они стоят на 30% дешевле, чем автономные ключи stlink. плюс вы получаете по крайней мере один MCU для игры. Получение stlink все еще хорошо, и вы можете использовать его с openocd для подключения через swd к другим чипам st или non-st cortex-m.
old_timer

1
Интересный чип Kenetisis, который я пробовал, я не могу использовать (пока), потому что у него нет загрузчика, он только swd и не будет подключаться с использованием stlink, якобы нужен cmsis-dap. аналогично, samd21 больше не несет загрузчик, вы можете добавить его, но он, по сути, находится во флэш-памяти приложения и довольно прост для случайного удаления. У stm32s по-прежнему есть загрузчик, как и у nxp, возможно, он тоже уходит ...
old_timer

3

На фронте IDE Silicon Labs предоставляет Simplicity Studio , основанную на Eclipse . Стандартно поставляется с GCC.

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

Программирование использует драйвер Segger J-Link для стартовых комплектов (бесплатно). Просто подключите комплект к USB и идите.

У Atmel есть Studio, которая основана на Visual Studio IDE и может подключаться к любому отладчику Atmel. Это также поставляется с GCC.

Оба поставщика имеют многочисленные (очень многочисленные) примеры управления своими устройствами.

Я использовал оба, и хотя документация не идеальна (никогда не бывает), этого было достаточно, чтобы заставить меня двигаться безболезненно.

Многие из комплектов ST (и других) включены в mbed .


2

Cypress выпускает коммутационные платы на основе PSOC-4200 (ARM Cortex M0) с форм-фактором DIP-40, которые включают в себя USB-адаптер для программирования в отрывной части. Цена на коммутационную плату и прилагаемый (отсоединяемый) программный адаптер составляет огромные 3,99 долл. США от Digi-Key.


1

Я бы порекомендовал CooCox - это та же комбинация GCC + Eclipse, но нет необходимости настраивать набор инструментов вручную, просто установите его и начните кодировать.


Выглядит хорошо, я думаю, Atmel не поддерживается. Поддерживается ли ядро ​​ST M7?
Спехро Пефхани

Кажется, Atmel не поддерживается, в компонентах есть несколько библиотек для серии STM32F7. Должен сказать, что будущее CoIDE неясно - веб-сайт запутан, обновления сейчас редки, но все же отличный выбор для начала с программирования ARM (особенно с STM32).
Фланкер

1

По моему убеждению, TI, NXP (состоят из NXP + Freescale) и ST являются главными ролями в мире Cortex M, особенно ST и NXP предлагают действительно конкурентоспособные инструменты для новичков, еще один важный параметр - популярность в сообществе открытого исходного кода, которая вызывает количество учебные пособия, библиотеки, драйверы устройств, инструменты и т. д.

тогда :

  1. онлайн-компилятор mbed + доска mbed
  2. Плата обнаружения STM32 (например, STM32F407discovery) + встроенный отладчик st-link + инфраструктура SPL или HAL (STM CUBE) + бесплатная IDE Keil лицензии.
  3. Плата обнаружения LPC + отладчик LPC-link 2 + инфраструктура LPCOPEN + бесплатная лицензия IDC для LPCXPRESSO.

Номера 2 и 3 - лучший выбор для высшего уровня, чем хобби. Также помните, что при использовании бесплатной лицензии профессиональных инструментов, таких как IAR, Keil или даже LPCXPRESSO, вы испытываете меньше боли при переходе в профессиональную сферу.


1
Библиотеки mcu и инструментарий ARM mbed- см. [ Developer.mbed.org] [developer.mbed.org]
Шон Хулихейн,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.