Istnieje wiele platform MCU, a gdy ktoś się przyzwyczai, na ogół niechętnie przechodzi na inną platformę.
Moje pytanie brzmi: jeśli ktoś zacząłby dzisiaj używać MCU do zadań ogólnego przeznaczenia, jak mógłbyś wybrać jeden? Jakie są unikalne zalety różnych platform?
Odpowiedzi:
Rok później wygłosiłem wykład na temat wybierania mikrokontrolerów (zajęło to około 1,5 godziny). Publiczność stanowili programiści i twórcy oprogramowania na wysokim poziomie. Większość publiczności nie miała wcześniejszego doświadczenia μC, reszta grała tylko z Arduino. Liczba osób na widowni wynosiła około 30 osób. Była to więc multiemisja, w przeciwieństwie do kliniki jeden na jednego.
Kluczowym slajdem rozmowy było:
ps
Powinienem określić zakres, do którego ta moja odpowiedź jest ograniczona. Widzę to pytanie o wybór platformy przez dwa rodzaje soczewek. Pierwszy to prototyp. Drugi to producent profesjonalnego sprzętu o cenach ulicznych rzędu 3 tys. USD i ilościach w setkach rocznie. Obiektyw hobbystyczny też nie jest daleko. W takich przypadkach koszt przyrostowy mikrokontrolera jest niewielki, w porównaniu do kosztu opracowania lub kosztu profesjonalnego sprzętu, w który wchodzi mikrokontroler.
Istnieje oczywiście zupełnie inna perspektywa produkcji masowej. Gdy ktoś wybierze mikrokontroler do taniego urządzenia, które będzie produkowane w dużych ilościach (dobrym przykładem są zabawki z głównego nurtu), będą napędzane kosztami sprzętu. Skromna oszczędność kosztów sprzętu pomnożona przez dużą wielkość produkcji (w setkach tysięcy lub więcej) może uzasadnić ból związany z używaniem nieporęcznego środowiska programistycznego i okazyjnego mikrokontrolera z przeciętnym wsparciem.
źródło
Ponieważ to pytanie nie dało całkiem oczekiwanego porównania platform, sam próbowałem go stworzyć, studiując literaturę, a także inne odpowiedzi. Może to może pomóc komuś innemu w przyszłości.
Daj mi znać, jeśli są jakieś błędy lub są informacje, które mogę dodać.
Porównanie platform
Uwagi dotyczące porównania:
FOTKA:
AVR:
Ramię Cortex-M:
PSoc: (od odpowiedzi Rocketmagnet )
Śmigło: (z odpowiedzi Rocketmagnet)
Porównanie według aplikacji
USB:
„Legenda” dla poniższej listy:
Właściwości najtańszego urządzenia: (w przybliżeniu rzędu ceny)
Ethernet:
źródło
Twój wybór MCU zależy w dużej mierze od rodzaju projektów, nad którymi będziesz pracować. Czy produkujesz bardzo tanie, super tanie i proste urządzenia, takie jak migające światła rowerów? Czy opracowujesz złożone prototypowe roboty, które mają do czynienia z wieloma dziwacznymi urządzeniami IO i czujnikami?
Przeważnie pracuję nad tym drugim. Głównym problemem jest dla mnie próba znalezienia mikrokontrolerów, które mają zestaw peryferyjny, który chcę. Jest to bardzo trudne, ponieważ nasze wymagania nie wydają się być głównym nurtem. Chcemy takich rzeczy, jak 5 kanałów PWM, 5 dekoderów kwadraturowych, 2 niestandardowe porty SPI i UART z zanegowanym We / Wy.
Jedyne MCU, które widziałem i które z łatwością radzą sobie z tego rodzaju wymaganiami, to PSoC i śmigło.
Śmigło to w zasadzie osiem 32-bitowych MCU w jednym układzie. Jeśli chcesz mieć jakieś urządzenie peryferyjne, po prostu zaprogramuj jeden z MCU, aby wykonywał to zadanie. Możesz mieć wszystko, co chcesz.
PSoC występują w dwóch wersjach: 3 i 5. 3 to rdzeń 8051, a 5 to kora ARM M3. W układzie znajdują się również rekonfigurowalne bloki cyfrowe i analogowe, które można przekształcić w szeroką gamę urządzeń peryferyjnych: ADC, filtry, wzmacniacze operacyjne, DAC, SPI, UART, dekoder kwadraturowy, generator CRC itp.
Środowisko programistyczne jest fantastyczne. Masz zwykłą edycję kodu źródłowego typowego IDE, ale masz również edytor schematów. Możesz dosłownie podłączyć dowolny obwód cyfrowy, który chcesz, łącząc urządzenia peryferyjne z bramkami, klapkami itp. Potrzebujesz 5 PWM? Łatwo, po prostu włóż je do schematu, połącz je i gotowe. Możesz nawet pisać własne urządzenia peryferyjne w Verilog, jeśli chcesz czegoś, czego nie ma. Wiele aplikacji można po prostu zaimplementować na tego rodzaju sprzęcie.
Prawdziwą korzyścią jest to, że możesz trzymać się jednego chipa, wiedząc, że poradzi sobie on z wieloma projektami, które będziesz chciał wykonać w przyszłości. To, co mnie denerwowało w przypadku PIC, to ciągłe przeszukiwanie przez dziesiątki urządzeń szukających tego, które miało konkretny zestaw urządzeń peryferyjnych, których potrzebowałem. Teraz nie mam tego problemu.
źródło
Dla mnie najważniejszym wymaganiem było to, czy urządzenie / IDE jest dobrze obsługiwane na moim komputerze z systemem innym niż Windows (Linux). Okazało się, że dla mnie Atmel AVR miał lepszą obsługę (open source) niż PIC.
źródło
Korzystanie z więcej niż jednej platformy jest w porządku. Wybór najlepszego dla każdego zadania, a także dostępność kodu i przykładów związanych z zadaniem.
Większość z nich ma dobre narzędzia programistyczne, arduino ma studio wizualne, pic ma świetne narzędzie, podobnie jak inni. Więc dla mnie jest to, jak szybko i łatwo mogę dobrze wykonać pracę, + ile osób open source pracuje nad tym samym?
źródło
Mikrokontrolery to szybko zmieniający się świat, istnieje wiele zalet uczenia się na temat aktualnych układów „in”, a najpopularniejszym IDE jest uzyskiwanie pomocy od społeczności. Jako osoba PIC powiedziałbym, że Aduino prawdopodobnie ma obecnie najlepsze IDE i płyty programistyczne dla początkujących i możesz wiele dodać do podstawowej tablicy aduino bez dotykania lutownicy.
Każdy, kto używa aduino do prawdziwych rzeczy, może wkrótce chcieć przejść dalej, ale do tego czasu nauczysz się dużo podstawowej cyfrowej elektroniki i dobrego podzbioru C, aby łatwo użyć czegoś bardziej odpowiedniego.
Jak ktoś wspomniał, że wybierasz układ do swojego projektu, widziałem kilka projektów wykorzystujących układy ARM jako proste czujniki temperatury lub konwertery AD, tak samo jak widziałem, jak aduino i PIC 16 zostały wykorzystane do generowania gry Space Invaders, FPGA są bardzo dobre i dobrze jest zrozumieć HDL, jeśli poważnie zajmujesz się projektowaniem elektroniki. ale niestety nie ma wielu projektów w realnym świecie, w których będziesz musiał użyć jednego z większości zadań, to niewielka ilość, szybki projekt i ograniczona cena oraz to tutaj króluje 8-bitowy uC
źródło
Ponieważ wiele z opublikowanych odpowiedzi koncentruje się na użyciu hobbystów, oto różne rekomendacje skierowane tylko do profesjonalnych programistów.
Nagie minimalne wymagania
Jeśli MCU nie spełnia wszystkich z nich, nie należy go używać.
Znaki ostrzegawcze - sprzęt MCU
Są to rzeczy, z którymi nie powinieneś tracić czasu w roku 2019.
int
, co z kolei zawiera wszystkie ukryte niebezpieczeństwa związane z promocjami liczb całkowitych w języku C.Znaki ostrzegawcze - łańcuch narzędzi
źródło
Jeśli wybierasz się do zadań ogólnego przeznaczenia, które mogą mieć przetwarzanie analogowe i cyfrowe, wolałbym PSoC ze względu na IDE, debugger i wiele innych rzeczy, które możesz z nimi zrobić.
Używałem PSoC3 na studiach do moich projektów i jest dość prosty do opanowania. Jedyną rzeczą jest, jeśli potrzebujesz wydajnych układów, nadal będziesz musiał je zdobyć osobno. Ma wystarczająco dobre porty. Więc jeśli szukasz wydajnych układów wraz z zestawem programistycznym, lepiej wybierz osobne komponenty.
źródło