Ponieważ wydaje się, że szukasz odpowiedzi na opinię, oto moje 0,02 $. Niezależnie od tego, czy pracuję na ARM, czy AVR ma znaczenie (i dlatego zależy mi), głównie w oparciu o to, co próbuję zrobić. Są przypadki użycia, w których AVR ma sens, i są takie przypadki, gdy robi to ARM. Ogólnie rzecz biorąc, istnieje także kompromis między, powiedzmy, AVR i PIC.
Po pierwsze, podczas gdy prawdopodobnie będę miał kłopoty z powiedzeniem tego, „silny kontyngent w rodzinie Arduino” jest czymś w rodzaju głosowej mniejszości. Najbardziej znani ludzie (użytkownicy), z którymi się spotkałem, to tacy, którzy woleliby traktować swój sprzęt w taki sam sposób, jak wymyślili skrypt w języku Python, aby zrobić coś zabawnego, często z niższym poziomem zrozumienia zawiłości związanych z tym niż oni zrobiliby to, gdyby zrobili „z numpy import foo”. Chociaż sposób, w jaki Arduino robi rzeczy, ma pewne zalety, istnieje również wiele możliwości krytyki.
Myślę, że warto spojrzeć na AVR poza ekosystemem Arduino. Kontyngent Arduino również skorzystał bardzo dobrze z powodów, które uczyniły AVR czymś w rodzaju standardu dla hobbystów - płaszcz, który coraz bardziej przejmuje PIC, jeszcze zanim pojawił się arduino. Bezpośrednimi konkurentami AVR byłyby PIC oraz do pewnego stopnia MSP430, który zyskuje na popularności dzięki dużej sile marketingowej TI w połączeniu z narzędziami do subsydiowania.
Ekosystem
Jak wspomniano w innych odpowiedziach, AVR to jedna rodzina, która ma czysty, ustandaryzowany sposób na przejście od zera do cześć za pomocą bezpłatnych narzędzi. Port avr-gcc, elementy składające się na łańcuch narzędzi winavr, mnóstwo schematów programistycznych o różnym stopniu złożoności i cechach, ale wciąż związanych autorytetem wspieranym przez avrdude, znacznie ułatwia to niż radzenie sobie z opracowaniem łańcucha narzędzi.
Ekosystem PIC to koszmar, z dowolną liczbą kompilatorów, narzędzi programistycznych, asemblerów. Wiele z nich nie jest ze sobą kompatybilnych. Większość z nich jest płatna. Nie wszystkie są dobre. Co ważniejsze, nie ma standardu defacto. Alternatywne wersje darmowego / otwartego oprogramowania (powiedzmy SDCC) pozostawiają wiele do życzenia, ale ponadto nie udało im się uzyskać statusu standardu defacto, takiego jak avr-gcc i firma. Nawet po opracowaniu łańcucha narzędzi programowych będziesz musiał przynajmniej zainwestować w jakiegoś programistę. Zestaw PICkit może kosztować około 20 $, ale kiedy musisz dowiedzieć się, jak go kupić online (karty kredytowe, wysyłka międzynarodowa, problemy na rynku Forex), może być przełomem dla hobbystów. Nie ma dobra
MSP430 jest nieznacznie lepszy, głównie dlatego, że jest nowszy (co najmniej pod względem popularności) - Jest o wiele mniej hałasu, z którym trzeba się zmagać. TI dostarcza próbki IC z wydajnością, której nigdzie indziej nie widziałem. mspgcc jest w dobrej formie, a nawet oprogramowanie do debugowania open source, które nie jest trudne do znalezienia lub skonfigurowania. Problem polega jednak na tym, że nie jest tak przyjazny dla hobbystów, jak AVR. Nadal masz problem z Programistą, który jest droższy niż to, co musisz kupić za PIC. Operacja zasilania 3,3 V stanowi postrzeganą barierę dla osób przyzwyczajonych do logiki 5 V. I nie skaluje się w DIP - dostępne są te z niższej półki, ale nie po osiągnięciu bardziej rozwiniętych żetonów.
Łatwość użycia
Wydaje mi się, że DIP vs SMD jest ważniejszym rozróżnieniem, niż się często uważa. Układ DIP IC może być używany na desce do krojenia, na tablicach ogólnego przeznaczenia, jakkolwiek są nazywane w miejscu zamieszkania i tak dalej. Układ scalony SMD koniecznie wymaga uruchomienia produkcji lub zakupu kart adaptera, które nie zawsze są łatwe do uzyskania w pożądanym rozmiarze lub kształcie.
Istotna jest także jakość arkusza danych, uwagi dotyczące aplikacji i ich czytelność. Wydaje się, że Atmel wykonuje nieco lepszą pracę. Oczywiście jest to bardzo subiektywna ocena.
AVR mogą używać wewnętrznego RC, podczas gdy PIC często tego nie robią. Oni wymagają kryształu, co czyni go nieco ryzykowne w połączeniu z niedostatkiem zaufania.
AVR również wydawały się bardziej przyjazne w programowaniu systemowym w porównaniu do PIC kilka lat temu, chociaż bardzo łatwo mogłem się mylić.
AVR vs ARM
Twoje pytanie dotyczyło jednak AVR vs. ARM. Jak powiedziałem na początku, AVR i ARM zajmują różne przestrzenie w spektrum. Jeśli masz coś, co możesz zrobić za pomocą AVR, to dlaczego chcesz to zrobić za pomocą ARM? Procesory ARM są droższe, wymagają większej liczby części, zużywają więcej energii, tworzą bardziej skomplikowany kod, wymagają droższych procesów produkcyjnych. Lutowanie 100-pinowego TQFP jest droższe niż lutowanie 40-pinowego DIP / SOIC, w zależności od sposobu pomiaru kosztów. Może się to nie zdarzyć, jeśli produkujesz w dużych ilościach i korzystasz z przyjaznych technik produkcji, ale jeśli to robisz, różnica cen stanie się jeszcze bardziej przekonująca, aby wybrać tańsze rozwiązanie.
Jako podstawowy kontroler do ogólnego hakowania w domu lub co tam masz, powiedziałbym, że AVR jest łatwiejszy w użyciu, ponieważ: - Bardziej znormalizowany z perspektywy hobbystów, więcej kodu mogę ponownie użyć z Internetu, ponieważ nie ma tak wielu warianty kompilatora oraz różnice między nazwami rejestrów i API wśród członków rodziny. (Spróbuj przenieść kod LPC ARM na sprzęt ATMEL ARM, zobaczysz, co mam na myśli) - Kod staje się z natury bardziej skomplikowany (robi się. Naprawdę). - Zestaw narzędzi wymaga dodatkowej pracy przy konfiguracji. - Sprawia, że interfejs jest nieco łatwiejszy. Mechanizmy ARM generalnie upuszczają cię do logiki 3 na 3 lub 1 na 8, co sprawia, że połączenie z innymi zabawkami jest nieco problematyczne. - Tańsze - Uzyskanie układu ARM w lokalnym sklepie z narzędziami nie jest dla mnie opcją, gdzie mieszkam, uzyskanie AVR.