Jaki jest prawdziwy punkt odcięcia pod względem kompromisu między kosztem a wydajnością przy wyborze 32-bitowych mikrokontrolerów?
Innymi słowy, wraz ze wzrostem i dominacją architektur ARM, dlaczego nadal używamy 8-bitowych i 16-bitowych mikrokontrolerów? Czy nadal są znacznie tańsze?
Rozumiem, że bardzo tanie urządzenia nie potrzebują zasobów oferowanych przez większe i bardziej złożone architektury. Jaka jest jednak prawdziwa motywacja do dalszego korzystania z nich, jeśli koszty wydają się zbliżać do tego samego zakresu?
microcontroller
arm
cost
Bruno Morais
źródło
źródło
Odpowiedzi:
Być może rok temu istniała znacząca różnica między najniższymi 8-bitowymi gorzkami a najtańszymi 32-bitowymi mikrokontrolerami. Już nie tak.
Na podstawie cen hurtowych Digi-Key można uzyskać 8-bitowy PIC10F200 dla 35ȼ w 2500 ilościach w pakiecie SOT-23-6. Otrzymasz 32-bitowy CY8C4013SXI-400 (ARM Cortex-M0) za 36ȼ w 2500 ilościach w pakiecie SOIC-8. (Ceny hurtowe Digi-Key nie są realistyczne pod względem tego, co faktycznie płacą producenci, co prawdopodobnie jest znacznie niższe, ale myślę, że warto zastosować przybliżone porównanie cen różnych produktów dla podobnych ilości).
Więc OP ma rację, są zbieżne.
Dlaczego więc 32-bitowe układy nie są częściej używane? Cóż, jak powiedziałem w pierwszym akapicie, ten punkt cenowy i parytet wielkości wystąpiły dopiero w ostatnim roku lub 18 miesiącach. I wciąż mają przed sobą długą drogę, zanim będzie wystarczająco dużo żetonów, aby być konkurencyjnym.
Z 6875 układów ARM dostępnych w Digi-Key, są tylko cztery w magazynie z wyceną ilości poniżej dolara. Cztery . Tymczasem inżynierowie mogą wybierać spośród setek 8-bitowych układów za dolara.
Ale powiedzmy, że dostępnych było co najmniej kilkadziesiąt 32-bitowych mikrów z niższej półki. Czy byłyby automatycznie wybierane spośród tych 8-bitowych?
Przede wszystkim musisz uświadomić ich inżynierom. Zawsze istnieje duży opór przed zmianami. Nowe rzeczy do nauczenia - ze sprzętowego punktu widzenia, nauczenie się, jak włączyć nowy układ do obwodu. Pojawiły się nowe narzędzia, takie jak programatory w obwodzie, nowe kompilatory itp. Dla inżynierów oprogramowania układowego uczenie się korzystania z zupełnie nowego zestawu urządzeń peryferyjnych i timerów (głównie układów rejestrów i znaczeń bitowych).
32-bitowe jest fajne i tak dalej, ale o ile nie trzeba wykonywać dużo ciężkich obliczeń, jaki jest sens? Jeśli masz tylko cztery piny GPIO, dostęp do nich wewnętrznie jako rejestr 32-bitowy nie daje przewagi nad użyciem rejestru 8-bitowego.
Myślę, że zużycie energii zawsze będzie sprzyjać 8-bitowym mikrom.
Na przykład PIC10F200 pobiera 175 µA pracując przy 4 MHz i 2 V oraz 100 nA w trybie uśpienia. CY8C4013SXI-400 pobiera około 800 µA przy 4 MHz i 2 V i 1 μA w trybie uśpienia. (Arkusz danych dla CY8C4013SXI nie miał liczb ani dla 4 MHz, ani 2v, więc musiałem dokonać pewnych oszacowań - arkusz danych mówi, że pobiera 2 ma @ 6 MHz i 3,3 v.)
Tak więc ARM pobiera 4,5 razy więcej prądu po przebudzeniu i 10 razy podczas snu. Nie wydaje się to dużo, ale jest to różnica między uruchomieniem komórki na monety przez 3 miesiące lub przez rok. (Zakładam, że oba mikrokontrolery przeważnie wykonują synchronizację, aktualizują porty itp. I nie wykonują naprawdę ciężkich obliczeń. W takim przypadku 8-bitowa mikroprocesor musi wykonywać wiele arytmetyki wielobajtowej przez dłuższy czas czasu traci część swojej przewagi).
Interesujące jest to, że ARM pobiera około czterokrotnie więcej prądu niż 8-gorzki, a to z kolei ma wewnętrzne rejestry i ścieżki danych, które są czterokrotnie szersze. Nie sądzę, że to zbieg okoliczności. W przypadku CMOS zużycie energii jest w przybliżeniu proporcjonalne do liczby przełączanych tranzystorów, a ARM oczywiście robi znacznie więcej na wykonaną instrukcję.
Ponieważ coraz więcej dostawców ARM wprowadza na rynek chipy niskiej jakości, nie zdziwiłbym się, gdyby tacy dostawcy jak Microchip jeszcze bardziej obniżyli swoje ceny. W każdym razie, przy cenach mniej więcej równych, podobnych rozmiarach, ale o wiele mniej 32-bitowych układów do wyboru, myślę, że 8-bitowe mikrokontrolery będą jeszcze przez jakiś czas - szczególnie dlatego, że masz zapoznało się z nimi dziesiątki tysięcy inżynierów.
źródło
Trzy główne punkty:
50 centów przy zamawianiu 10 000 żetonów to raczej dużo pieniędzy. Jeszcze więcej, gdy zamawiasz 100 000 żetonów.
Możesz uzyskać 8-bitowe układy znacznie mniejsze niż 32-bitowe, takie jak PIC10, który jest dostępny w pakiecie SOT23-6.
Układy 32-bitowe, ponieważ generalnie są taktowane szybciej i robią więcej, zużywają znacznie więcej energii niż mały 8-bitowy układ. Baterie rozładowują się szybciej, systemy zasilania muszą zapewniać więcej prądu (a zatem być droższe) itp.
W końcu, po co kupować żonglera, żeby wziąć filiżankę cukru obok?
źródło
Aplikacje uC, które opracowałem dla produktów komercyjnych, prawie nigdy nie obsługiwały danych większych niż 8 bitów; więc nawet gdyby 32-gorzkie były w tej samej cenie co 8-gorzkie, nadal nie byłoby korzyści. Jak powiedział ktoś inny, wybieramy to, co znane, abyśmy mogli szybciej to wykopać. Ostatni, który opracowałem, okazał się jednak przesuwać PIC16, którego użyłem pod każdym względem - ale nie z powodu rozmiaru danych. Jeśli zrobię coś takiego, to naprawdę powinienem nauczyć się ARM.
źródło
Spodziewałbym się, że układy ARM przejmą większość funkcji, w których coś zachowuje się jak „komputer”. Z drugiej strony wiele 8-bitowych mikrokontrolerów przyzwyczaja się do robienia rzeczy, które można wykonać za pomocą stosunkowo prostego programowalnego urządzenia logicznego lub umiarkowanej liczby bramek, ale w rzeczywistości można to zrobić taniej i / lub przy mniejszym pobieraniu prądu za pomocą prosta 8-bitowa mikro. Przy projektowaniu bardziej skomplikowanych aplikacji często łatwiej jest używać 32-bitowego mikro niż 8-bitowego, ale jeśli celem całego układu jest np. Obejrzenie i usunięcie określonego wejścia, a jeśli jest wysokie, zacznij generować 200 pulsuje na określonym wyjściu w odstępach 1ms, następnie 100 w odstępach 2ms, następnie 100 w odstępach 3ms, następnie pauzuj na 100ms i kontynuuj robienie tego, dopóki sygnał wejściowy nie spadnie, projektowanie kodu dla tego może być w rzeczywistości łatwiejszena 8-bitowym mikroprocesorze niż na 32-bitowym. Różnica kosztów między 8-bitowymi i 32-bitowymi mikrami może nie być już wystarczająca w wielu przypadkach, aby uzasadnić dodatkowe wysiłki inżynieryjne, aby „dopasować” projekt do 8-bitowej mikroskopy, ale w przypadkach, gdy część 32-bitowa nie byłaby nie oszczędzasz wysiłku inżynieryjnego, nie ma powodu, aby wydawać nawet grosz.
źródło
Chociaż zgadzam się, że koszt procesora i zużycie energii są głównymi przyczynami, jeszcze jedną kwestią, której nie widziałem tutaj na liście, jest przestrzeń na płytce drukowanej. W przypadku wielu rodzajów systemów wbudowanych, takich jak, powiedzmy, elektroniczna waga łazienkowa, nie ma dużej potrzeby wielu wejść / wyjść, brak korzyści dla większego rozmiaru magistrali i brak korzyści dla szybszego przetwarzania. Jednak jestKorzyść z mniejszego pakietu z mniejszą liczbą styków, ponieważ upraszcza układ i układ płytki drukowanej, a często jest mniejszy. Jeśli płytę można zaprojektować jako płytę 2-warstwową, a nie 4-warstwową, istnieje znaczna oszczędność kosztów, a mniejsze liczby pinów, które często pochodzą z procesorów 8-bitowych, zwykle ułatwiają te oszczędności niż 32- procesory bitowe, które generalnie mają więcej pinów i fizycznie większe pakiety.
źródło
Nawet w 8-bitowym świecie wiadomo, że nowsze typy zajmują bardzo dużo czasu na rzecz starszych typów - patrz MCS51 wciąż żyje w swoich niszach, a MCS48 wciąż znajduje się w nieoczekiwanych miejscach.
W wielu przypadkach zmiana nie zachodzi, ponieważ nie przynosi żadnej dodatkowej wartości i wiąże się z kosztem nauki nowej technologii, która jeszcze nie udowodniła, że pozostanie i / lub oczekuje się, że nadal będzie ruchomym celem (co sprawia, że jest to interesujące dla osób, które chcą skupić się na technologii MCU, ale denerwujące dla osób, które chcą skupić się na swojej aplikacji, a nie stale naprawiać i ponownie testować oprogramowanie produkcyjne w celu dostosowania tegorocznego rocznika ARM!). Dla niektórych składnik, który nie został już opracowany, jest przestarzały, dla innych w końcu stał się stabilny i chociaż może wymagać obejścia wrastających błędów, zapewnia przynajmniej stabilną platformę dla nich. Strumień lawy nie zawsze jest antypatternem, który został rozbity - sprawia, że góry pozostają ...
źródło