Absolutnie najtańszy, (łatwy) sposób rozpoczęcia programowania na mikrokontrolerach ARM [zamknięte]


18

Chcę zacząć korzystać z procesorów ARM, migrując z PIC, których używałem zbyt długo. Modele 8-bitowe były dostępne za mniej niż 1 $, programiści za mniej niż 10 $, a mnie rozpieszczała łatwość i niski koszt rozpoczęcia. Ale widząc, że ich moc jest zmniejszona przez niektóre układy ARM w tej samej cenie i mając dość oprogramowania o zamkniętym źródle, chcę dokonać zmiany.

Wolałbym unikać jakichkolwiek płyt programistycznych, a zamiast tego zająć się nimi z tanią, generyczną płytką sterującą (1 USD) i na płycie chleba, używając jakichkolwiek zewnętrznych komponentów niezbędnych do uruchomienia.

Jakie są moje opcje programowania układów ARM w ten sposób? Czy istnieją programiści, tacy jak PICKit2, którzy używają USB do połączenia z komputerem, programując przez proste połączenie szeregowe (takie jak ICSP) z chipem? Jaka różnica w konfiguracji jest wymagana dla różnych producentów ARM, wersji ARM i poszczególnych układów? (ST, Atmel ...) Np. Czy każdy producent potrzebuje własnych kompilatorów, programistów, IDE itp.? Czy są wspólne narzędzia dla wszystkich?

EDYCJA: W porządku, więc po dalszych badaniach wydaje mi się, że wymyśliłem stosunkowo tanie rozwiązanie, płytę programistyczną stm32 można flashować oprogramowaniem DAPLINK, ale nie wierzę, że oficjalne oprogramowanie github będzie działać natywnie (wszystko to spekuluje, dopóki nie pobierz moją tablicę dev STM32 na maila). Ale odkryłem, że płyta daplink_usb dołączona do readbear mk20 działa na chipie stm32, wydali oprogramowanie, które wymaga zmiany linii, aby była kompatybilna z kryształem 8 MHz (szczegółowe informacje zamieszczono na forum poniżej). W przeciwnym razie zmień kryształ na 16 MHz. Zła aktualizacja po tym, jak to potwierdzę, kiedy przybywa mój zestaw deweloperów.

GITHUB REPO

Dobry zasób forum tutaj .

Widelec Redbear Github


4
Warto zdać sobie sprawę, że za 5 USD otrzymujesz Raspberry Pi Zero, który jest obsługiwany przez całkowicie normalny (i bezpłatny!) GCC. A jeśli właśnie przeszedłeś szok, o ile szybsze są mikrokontrolery ARM, RPi znów Cię ogłuszy. Główny problem IMO polega na tym, że żaden producent ARM nie rozumie komunikatu pod RPi. Nie będziesz już więcej zarabiał na mikrokontrolerach ARM, ale możesz dostarczyć znacznie więcej, dostarczając gotowe do użycia moduły CPU.
MSalters

4
Czasami przesada jest użycie gotowego modułu CPU we wbudowanej aplikacji.
Bence Kaulics,

3
@MSalters, RPI jest nieporęczne ... Po prostu nie potrzebuję dodatków, z którymi się wiąże. Potrzebuję rzeczy bez kości w bardzo kompaktowej przestrzeni do szybkiego przetwarzania w czasie rzeczywistym. Ponadto RPI zużywa DUŻO więcej mocy, niż byłoby to do zaakceptowania.
CL22,

3
Jasne, ale większość platform deweloperów będzie w ten sposób. Ale jedną z wielkich rzeczy w rozwoju MCU jest to, że rozwój sprzętu i oprogramowania można do pewnego stopnia odizolować.
Ignacio Vazquez-Abrams

2
Rozważ zakup taniej płyty deweloperskiej ze zintegrowanym mostkiem USB-SWD. Zapewni to dostęp do funkcji debugowania, a także pobierania kodu. Możesz podzielić dostęp SWD do dowolnego innego celu, kiedy ci to odpowiada.
Sean Houlihane,

Odpowiedzi:


14

Linia stm32F0 i stm32L0 ma tablice odkrywcze działające za około 10 USD, a Keil zapewni pełną funkcję IDE dla tej linii przy zerowym koszcie.

Instrukcje instalacji Keil free pro MDK są TUTAJ

Ponadto ARM ma białą kartkę na temat migracji do Cortex M3 z PIC, które mogą być pomocne


7
+1 Ale warto również zauważyć, że większość (wszystkie) kart odkrywców ma wbudowany STLINK, którego można również używać do programowania samodzielnych urządzeń poprzez konfigurację zworek.
Roger Rowland,

@RogerRowland - świetny punkt. Wcześniej używałem programatorów pokładowych do własnych płyt. Odkrycie jest ogólnie świetną linią. Chciałbym, żeby mieli otwory montażowe!
Scott Seidman

Czy poleciłbyś Nucleo lub Discovery? Wydają się być w tej samej cenie i oba mają ST-LINK.
David

@ David, nie użyłem jądra, ale mogę powiedzieć, że Odkrycia dobrze mi służyły. W tym przedziale cenowym zdobądź po jednym (choć wybrałbym dwa odkrycia!)
Scott Seidman


7

Najłatwiejszym wyjściem -> 10 000 USD dla w pełni funkcjonalnego kompilatora Keil Pro, kup debugger JLINK (może kolejny 1 000 USD - są tańsze z pewnymi ograniczeniami). IAR jest kolejną kosztowną możliwością (podano przykłady dla procesora STM32F7 Cortex M7, który działa na 30-dniowej wersji demo IAR)

Najtańszy sposób - pobierz i zainstaluj (bezpłatny) zestaw narzędzi GCC-ARM + Eclipse z wtyczkami debuggera JLINK. Zdobądź klon JLINK za około 20 USD, który moim zdaniem będzie działał dobrze - jeszcze nie przetestowany, do debugowania.

Istnieją szczegółowe instrukcje dla tych ostatnich w sieci, jednak przyjmują pewne założenia. Spodziewaj się, że spędzisz dzień lub dłużej, szczególnie w systemie Windows. Nie oczekuj, że będziesz w stanie korzystać z wielu przykładów dostarczonych dla innych IDE bez pracy. Imponująco, darmowy zestaw narzędzi może używać „paczek” (w tej chwili „eksperymentalnych”).

Istnieją inne systemy, takie jak Rowley Crossworks (które, jak sądzę, wykorzystuje gcc), które są mniej bolesne finansowo. Atmel Studio to kolejna, ale miałem bardzo gorzkie skargi ze strony mojego bardzo doświadczonego twórcy oprogramowania układowego (sam tylko z tym krótko grałem).

Jeśli Twój kod wymaga mniej niż 32 KB, możesz bezpłatnie korzystać z tego samego systemu Keil (wersja z ograniczonym kodem), ale pamiętaj, że ścieżka aktualizacji jest łatwa, ale dość droga. Na przykład nie skompiluje prostych przykładów Ethernet dla SAME70. Dobrze, jeśli zamieniasz PIC lub AVR na niskiej klasy ARM, ale nie tak wspaniale, jeśli korzystasz z ARM, ponieważ w rzeczywistości musisz rozmawiać z wyświetlaczami LCD i uruchamiać złożone protokoły komunikacyjne (ewentualnie wstępnie skompilowane moduły mogą być uwzględnione bez wpływu na Limit 32K, nie badałem tego konkretnego kąta).


7

Oto, czego używam:

  • STM32F103 „deska minimalny układ” (patrz przykład tutaj , Cortex-M3 rdzeń ), działa na 3.3V lub zasilania USB bez żadnych elementów zewnętrznych, klony przyjść za około USA 3 $ każda. To ładnie pasuje do twojej prośby „wejdź prosto w to z tanią, generyczną płytką drukowaną i na płycie”.
  • Klon programatora ST-Link V2 USB (wygląda jak ten ), zaczyna się od około 2 USD i obsługuje również debugowanie na chipie.
  • EmBitz (wcześniej Em :: Blocks) jako IDE z gcc toolchain, 0 USD
  • CubeMX firmy STM, aby pomóc w rozpoczęciu nowych projektów, 0 USD

5

Najłatwiejszym początkiem jest prawdopodobnie jedna z zewnętrznych płyt klonowych. Losowy przykład z ST . Wymaga to programisty używającego protokołu „SWD”. ST tworzą marki „ST-LINK”, nie jestem pewien, czy musisz używać ST-LINK z urządzeniami ST, czy też jest to naprawdę ogólne.

Niektóre kombinacje SWD i JTAG odgrywają rolę ICSP w systemach ARM, zapewniając możliwości programowania i debugowania.

Pod względem oprogramowania zazwyczaj można współpracować z GCC i OpenOCD na większości układów. Szczegóły są nieco inne dla każdego urządzenia. Specjaliści często używają łańcucha narzędzi Keil, który jest dość drogi.

Niektóre urządzenia (np. Z serii Kinetis) mają bootloadery USB: urządzenie pojawia się jako urządzenie pamięci masowej, pobierasz na niego plik BIN i naciskasz przycisk. Najłatwiejsze możliwe rozwiązanie, nie wymaga programatora. Atmel AT91 ma bootloader USB, który współpracuje z zastrzeżonym protokołem o nazwie SAM-BA.


St Discovery i płyty nukleonowe mają stlink i kosztują o 30% mniej niż samodzielne klucze stlink. plus masz co najmniej jeden mcu do zabawy. Pobieranie stlink jest nadal dobre i możesz go używać z openocd do łączenia się poprzez swd z innymi układami st lub non-st cortex-m.
old_timer

1
Interesujący układ Kenetisis, którego próbowałem, nie mogę (jeszcze) użyć, ponieważ nie ma on bootloadera, jest tylko swd i nie chce się połączyć za pomocą stlink, potrzebuję cmsis-dap. podobnie samd21 nie przenosi już bootloadera, możesz go dodać, ale zasadniczo znajduje się on w przestrzeni flash aplikacji i jest dość trywialny, aby przypadkowo go usunąć. stm32s jeszcze bootloader podobnie jak NXP, być może, że odchodzi zbyt ...
old_timer

3

Na froncie IDE Silicon Labs zapewnia Simplicity Studio , oparte na Eclipse . Jest standardowo wyposażony w GCC.

Istnieje wbudowana obsługa wszystkich sprzedawanych zestawów startowych, dzięki czemu rozpoczęcie pracy jest stosunkowo bezbolesne.

Programowanie wykorzystuje sterownik Segger J-Link dla zestawów startowych (bezpłatny). Wystarczy podłączyć zestaw do USB i gotowe.

Atmel ma swoje Studio oparte na Visual Studio IDE i może łączyć się z dowolnym debuggerem Atmel. To również jest dostarczane z GCC.

Obaj dostawcy mają liczne (bardzo liczne) przykłady prowadzenia swoich urządzeń.

Użyłem obu i chociaż dokumentacja nie jest doskonała (nigdy nie jest), z pewnością była wystarczająca, aby uruchomić mnie stosunkowo bezboleśnie.

Wiele zestawów ST (i innych) ma włączoną funkcję mbed .


2

Cypress produkuje płyty przełamujące oparte na PSOC-4200 (ARM Cortex M0) o formacie DIP-40, które zawierają adapter programujący oparty na USB w części odłamywanej. Cena płyty Breakout Board i dołączonego (odłączanego) adaptera programistycznego to aż 3,99 USD od Digi-Key.


1

Polecam CooCox - jest to ta sama kombinacja GCC + Eclipse, ale nie ma potrzeby konfigurowania toolchain ręcznie, wystarczy zainstalować go i zacząć pisać.


Wygląda ładnie, chyba Atmel nie jest obsługiwany. Czy obsługiwany jest rdzeń ST M7?
Spehro Pefhany

Wygląda na to, że Atmel nie jest obsługiwany, w bibliotekach jest kilka bibliotek dla serii STM32F7. Muszę powiedzieć, że przyszłość CoIDE nie jest jasna - strona internetowa jest chaotyczna, aktualizacje są teraz rzadkie, ale nadal świetny wybór na rozpoczęcie programowania ARM (szczególnie w STM32).
Flanker

1

Uważam, że TI, NXP (składają się z NXP + Freescale) i ST są głównymi graczami w świecie kory M, szczególnie ST i NXP oferują naprawdę konkurencyjne narzędzia dla początkujących, kolejnym ważnym parametrem jest popularność w społeczności open source, która powoduje ilość samouczki, biblioteki, sterowniki urządzeń, narzędzia itp.

następnie :

  1. Kompilator online mbed + płyta mbed
  2. Płytka odkrywania STM32 (jak STM32F407discovery) + wbudowany debugger st-link + środowisko SPL lub HAL (STM CUBE) + darmowa licencja keil IDE.
  3. Płyta odkrywcza LPC + debugger LPC-link 2 + framework LPCOPEN + IDE LPCXPRESSO.

Numer 2 i 3 to lepszy wybór na wyższym poziomie niż hobby. Pamiętaj również, że korzystając z bezpłatnej licencji profesjonalnych narzędzi, takich jak IAR, Keil, a nawet LPCXPRESSO, odczuwasz mniej bólu podczas przeprowadzki do strefy profesjonalnej.


1
Biblioteki mcu ARM i toolchain są mbed- patrz [ developer.mbed.org] [developer.mbed.org]
Sean Houlihane
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.