Jak wybrać mikrokontroler ARM Cortex M3?

26

W oparciu o moje surowe wymagania bycia w zakresie od 36 do 72 MHz, mając 16 kb + SRAM, 128 kb + flash, będąc programowalnym w C, zdecydowałem, że do mojej aplikacji chcę użyć MCU ARM Cortex M3.

Pytanie brzmi: jakich kryteriów używają ludzie, aby wybrać wersję M3, której użyć? Istnieje wielu potencjalnych dostawców, takich jak TI, ST, NXP, Freescale itp. Itp.

Z mojego punktu widzenia głównym wyróżnikiem byłaby łatwość programowania. Idealnie testuję to na płycie Breakout / Development, a następnie wdrażam na własnej płytce drukowanej.

JDS
źródło
11
To jest przydatne pytanie, proszę, nie zamykaj go jako oparte głównie na opiniach .
Dzarda
2
Wybór sprzedawcy chipów to tylko część problemu. Czy zastanawiałeś się, jakiego zestawu narzędzi programistycznych będziesz używać?
kkrambo
5
Powiedziałbym, że znaczenie wyboru układu uC w takiej sytuacji jest poważnie przereklamowane. Wszystkie chipy, które spełniają podstawowe wymagania, wystarczą. Uważam, że trzymasz się C lub C ++ i nie potrzebujesz wymyślnych urządzeń peryferyjnych, które możesz nawet później zmienić przy niewielkim wysiłku. Mój wybór opierałbym na ilości wsparcia, jakie możesz uzyskać od www, dostawcy, grup (użytkowników), list, forów itp., Do których masz łatwy dostęp.
Wouter van Ooijen
5
„Jest kilkunastu twórców tego samego rdzenia. Na jakie rzeczy ludzie patrzą, aby pomóc im wybrać jeden?” wydaje mi się dobrym pytaniem.
Scott Seidman
5
To pytanie o najwyższym wyniku na liście naszych 250 najnowszych, z trzema ulubionymi markami. Przy tych statystykach, jeśli jest to OT, możemy rozważyć pytanie. Myślę, że jest całkiem jasne, że plakat uważa „łatwość programowania” za JEDEN z obecnie stosowanych kryteriów i prosi o więcej. Spośród czterech odpowiedzi tylko jedna zawiera jasne zalecenie dla kontrolera, a pozostałe omawiają, jakich kryteriów używają do dokonania wyboru. Dokonałem niewielkiej edycji, która powinna uczynić pytanie bardziej tematycznym, ale przed edycją wydawało mi się to dość jasne.
Scott Seidman

Odpowiedzi:

19

Myślę, że @markt jest z pewnością we właściwym miejscu: Toolchain, urządzenia peryferyjne, pakiety, devkity.

Dodam kilka i może zdejmę kilka. Toolchain jest z pewnością ważny, ale ZA DARMO może, ale nie musi. Czasami praca bez rzeczywistego wsparcia może być droższa niż myślisz, a użycie rozsądnego pakietu komercyjnego może być tego warte w danej sytuacji. Czasami ważna jest również możliwość dokładnego przeprowadzenia kontroli licencji, a użycie darmowego narzędzia z ograniczoną licencją może cię ugryźć później.

Dobra biblioteka CMSIS do obsługi mikrokontrolera jest dla mnie koniecznością. CMSIS - Cortex Microcontroller Software Interface Standard - arm.com/products/processors/cortex-m/… - to warstwa abstrakcji sprzętu dla mikrokontrolerów z serii Cortex-M. Teoretycznie, jeśli biblioteka jest zgodna z CMSIS, jest niezależna od dostawcy i łatwiej jest zamieniać różne rodziny i nie trzeba ponownie uczyć się środowiska od podstaw, aby móc korzystać z biblioteki. Jednym z atrakcyjnych aspektów środowiska ARM Cortex jest możliwość zmiany platform bez całej masy potu. Jeśli wybierzesz platformę, która nie wchodzi w strukturę CMSIS, możesz nie być w stanie poruszać się tak wygodnie.

Dla mnie tanie i wygodne płyty deweloperskie są koniecznością, ale może to być, ale nie musi, tak samo ważne jak niektóre inne rzeczy (myślę, że seria STM32 ma niesamowite płyty devboard). Jeśli rodzina ma bardzo wygodne i tanie tablice programistów, istnieje większe prawdopodobieństwo, że znajdziesz pomoc od większej grupy użytkowników, jeśli jej potrzebujesz. Ponadto te układy zwykle znajdują się w pakietach SMT. Kiedy nieuchronnie wysadzisz chip, port na chipie, lub port na chipie, wymiana chipa jest PITA wymagająca przeróbki SMD. Jeśli możesz kupić dwie lub trzy plansze po 10–15 USD każda i wymienić je w miarę niszczenia, nawet NIE MYŚLISZ o zrobieniu przeróbki SMD!

Pomyśl „Dodatki”. Możesz potrzebować czegoś ponad to, co jest uważane za „peryferyjne”. Na przykład, być może masz duże potrzeby związane z bluetooth i możesz wybrać Nordic Semiconductor, aby uzyskać takie wsparcie. Możesz wziąć pod uwagę inne rzeczy, takie jak łatwość ładowania systemu itp.

Pomyśl o dokumentacji. Byłem trochę mniej niż pod wrażeniem tego, jak trudno jest przedzierać się przez część dokumentacji STM.

Scott Seidman
źródło
+1 Całkowicie się zgadzam. W zeszłym roku zacząłem od ARM Cortex-M3 / M4 przy użyciu STM32. Prawie ukończyłem projekt STM32F207, kiedy dokonaliśmy przejścia na STM32F407 w oparciu o cenę / dostępność. To był spadek sprzętu, a zmiany oprogramowania były trywialne. Dokumentacja i złożoność sprawiły, że nauka była nieco bolesna, ale konstrukcja jest solidna i warta kłopotów. Używam kompilatora GCC (darmowego) do pisania kodu testowego i ograniczonej wielkością darmowej wersji ewaluacyjnej Keil do pisania / testowania przykładowych sterowników. Nasz programista ma licencję na pełny kompilator Keil. Oba wydają się solidne.
Tut
1
@NickHalden, „ARM” licencjonuje rdzeń ARM producentom chipów, którzy je pakują i dodają urządzenia peryferyjne. CMSIS - Cortex Microcontroller Software Interface Standard - arm.com/products/processors/cortex-m/… - to warstwa abstrakcji sprzętu dla mikrokontrolerów z serii Cortex-M. Teoretycznie, jeśli biblioteka jest zgodna z CMSIS, jest niezależna od dostawcy i łatwiej jest zamieniać różne rodziny i nie trzeba ponownie uczyć się środowiska od podstaw, aby móc korzystać z biblioteki.
Scott Seidman
1
@YoungMoney Idź po najtańsze, które zapewnią ci co najmniej dwukrotność zasobów, które Twoim zdaniem będą potrzebne.
markt
1
Rozwijaj na dużych, tylko po to, aby rzeczy nie utknęły. Kiedy już dobrze opanujesz zasoby, których potrzebujesz, ogranicz się.
Scott Seidman
1
Bezpłatne łańcuchy narzędzi są ważne w kontekście zawodowym, nie ze względu na koszty, ale ze względu na bezpieczeństwo dostępu - skorzystaj z zablokowanego łańcucha narzędzi, a twoja zdolność do utrzymania projektu jest zagrożona przez licencje, które mogą wygasnąć lub mogą nie być dostępne dla twojego laptopa podróżnego lub współpracownikiem, klucze sprzętowe, które mogą się zgubić, serwery licencji, które można odłączyć po kilku latach itp. Większość projektów osadzonych ma żywotność znacznie wykraczającą poza wersje sprzętu komputerowego i systemu operacyjnego użytego do ich opracowania, a także możliwość wskrzeszenia oryginału narzędzia w przyszłości są ważne!
Chris Stratton
14
  1. Szukaj bezpłatnego zestawu narzędzi, RTOS i taniego wsparcia JTAG / SWD.
  2. Zastanów się, z jakimi pakietami możesz / chcesz współpracować - jeśli DIP jest koniecznością, wyklucz dostawców krzemu, którzy nie oferują pakietów DIP.
  3. Sprawdź, jakie urządzenia peryferyjne są w ofercie i czego możesz chcieć / potrzebować.
  4. Poszukaj huku za grosze - skorzystaj z jednej lub kilku stron internetowych dużych dostawców elektroniki, aby porównać jabłka z jabłkami.

Biorąc pod uwagę twoje pragnienie tworzenia tablic deweloperskich, zastanów się, co tam jest dostępne.

Jeśli przechodzisz z innej platformy (PIC, Atmel itp.), Zaakceptuj, że w wielu obszarach przejścia na ARM będzie istniała uczciwa krzywa uczenia się, ale jest to naprawdę warte zachodu.

markt
źródło
Tak - bezpłatne łańcuchy narzędzi są ważniejsze dla bezpieczeństwa przyszłego / alternatywnego dostępu komputera / inżyniera do łańcucha narzędzi niż koszt. W przypadku części Cortex łańcuchy narzędzi są dość uniwersalne, więc lepiej wiedzieć, że można je zaprogramować za pomocą łatwego w obsłudze urządzenia interfejsu SWD, które będzie dostępne lub można je odtworzyć i które można sterować z obecnego (i przyszłego) systemu operacyjnego wybór.
Chris Stratton
5

Jeśli nie masz silnych preferencji (np. Cena, rozmiar, moc i to, co wymienili inni), zastanowiłbym się, kto cię wspiera. Jeśli producent nie odpowie na twoje pytania, może to stanowić problem. A może mają lokalnego dystrybutora z FAE (inżynierem ds. Uznania w terenie), o który możesz zapytać? Jest to szczególnie ważne dla małych firm i hobbystów.

Niektóre części mogą być niedostępne w małych ilościach. Na przykład te, które mają DRAM w tym samym pakiecie, są skierowane do dużych nabywców (> 10 tys. Jednostek).

Brian Carlton
źródło
2

Prawdopodobnie STM32L151VBT6 spełnia twoje wymagania. Nawet użyliśmy go w naszej firmie, ma umiarkowane koszty i dobre pod względem zużycia energii. dostaniesz także większość zasobów projektowych na http://www.st.com .

Kluczowe cechy MCU STM32L151VB to:

Platforma o ultra niskiej mocy Zasilanie od 1,65 V do 3,6 V.

Zakres temperatur od -40 ° C do 85 ° C / 105 ° C

Tryb czuwania 0,3 μA (3 styki budzenia)

0,9 μA Tryb gotowości + RTC

Tryb zatrzymania 0,57 μA (16 linii budzenia)

1,2 μA Tryb zatrzymania + RTC

Tryb pracy niskiej mocy 9 μA

Tryb pracy 214 μA / MHz

10 nA bardzo niski przeciek we / wy

Czas budzenia <8 μs

Rdzeń: 32-bitowy procesor ARM®Cortex ™ -M3

Od 32 kHz do 32 MHz maks

33,3 DMIPS peak (Dhrystone 2.1)

Moduł ochrony pamięci

Resetowanie i zarządzanie dostawami

Ultra-bezpieczny, energooszczędny BOR (reset wyłączania) z 5 wybieranymi progami

POR / PDR o ultra niskiej mocy

Programowalny detektor napięcia (PVD)

Źródła zegara

Oscylator kwarcowy 1 do 24 MHz

Oscylator 32 kHz do RTC z kalibracją

High Speed ​​Internal 16 MHz fabrycznie przycięte RC (+/- 1%)

Wewnętrzna niska moc 37 kHz RC

Wewnętrzna wielobiegowa niska moc od 65 kHz do 4,2 MHz

PLL dla zegara procesora i USB (48 MHz)

Wstępnie zaprogramowany program ładujący

Obsługiwane USART

Wsparcie rozwoju

Obsługiwane debugowanie drutu szeregowego

Obsługa JTAG i śledzenia

Do 83 szybkich operacji we / wy (tolerancja 73 operacji we / wy 5 V), wszystkie możliwe do zmapowania na 16 zewnętrznych wektorach przerwań

Wspomnienia:

Do 128 KB Flash z ECC

Do 16 KB pamięci RAM

Do 4 KB prawdziwej pamięci EEPROM z ECC

80-bajtowy rejestr kopii zapasowej

Sterownik LCD dla maksymalnie 8x40 segmentów

Wsparcie regulacji kontrastu

Obsługa trybu migania

Konwerter podwyższający na pokładzie

Bogate analogowe urządzenia peryferyjne (do 1,8 V)

12-bitowy ADC 1 Msp do 24 kanałów

12-bitowe kanały DAC 2 z buforami wyjściowymi

2x komparatory o bardzo niskim poborze mocy (tryb okna i funkcja budzenia)

Kontroler DMA 7x kanałów

8x interfejs komunikacyjny urządzeń peryferyjnych

1x USB 2.0 (wewnętrzny 48 MHz PLL)

3x USART (ISO 7816, IrDA)

2x SPI 16 Mb / s

2x I2C (SMBus / PMBus)

10x timery: 6x 16-bit z maksymalnie 4 kanałami IC / OC / PWM, 2x 16-bitowy podstawowy zegar, 2x timery watchdog (niezależne i okno)

Do 20 pojemnościowych kanałów czujnikowych obsługujących przycisk dotykowy, liniowe i obrotowe czujniki dotykowe Jednostka obliczająca CRC, 96-bitowy unikalny identyfikator

Myanju
źródło