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.
microcontroller
arm
JDS
źródło
źródło
Odpowiedzi:
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.
źródło
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.
źródło
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).
źródło
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
źródło