Skocz do zawartości

ARM czy dalsza droga w AVR


rubesom

Pomocna odpowiedź

Hej

Tworze hobbystycznie w AVRach i myślałem, żeby przejść na ARM ale mam na wstępie kilka pytań.

1. Czemu AVR są bardziej popularne od ARMów? Chodzi o to, że ARMy są "trudniejsze"?

2. Pascal to dobry początek dla programowania np. w takich językach jak C/C++ Java dla kompletnie zielonych - Czy ta analogia pasuje do AVR < ARM? Nie wiem jak to dokładnie umiejscowić.

Znam C++ i trochę bardziej Jave, odnajdę się w świecie ARMów?

3. Co zrobię na ARM a czego nie zrobię na AVR?

Link do komentarza
Share on other sites

1. A są? W pewnym momencie wśród hobbystów (głównie europejskich, bo w wielu innych regionach PIC był bardziej popularny) AVRki stały się popularne. Były tanie, miały wiele peryferiów, całkiem szybkie i dostępne w obudowach typu DIP...

Zdecydowanej większości armów w obudowie DIP nie masz co szukać, więc o ile nie robisz własnej płytki to pozostaje tylko kupić gotowy moduł, ale obecnie te są mega tanie (od ok. 50zł z wbudowanym programatorem...)

2. Analogia zupełnie bez sensu.

AVR i ARM to takie same mikrokontrolery i o ile znasz podstawy działania peryferiów bez większych problemów użyjesz ich zarówno na jednych jak i na drugich. Rzeczywiście ARMy z pewnych powodów wymagają na początku trochę więcej czasu ( większy wybór producentów / procesorów itd. powoduje, że środowiska nie zawsze jest tak samo dobrze dopracowane , dużo większy wybór często bardziej skomplikowanych peryferiów , duży nacisk na obniżenie poboru prądu co czasami wymaga kilku dodatkowych linijek kodu ).

Generalnie w teorii zrobisz na obu procesorach to samo, ale w praktyce:

a) ARMy często mają lepsze peryferia, których w popularnych AVR atmega/attiny nie uświadczysz typu szybkie 12bitowe przetworniki ADC, USB, CAN, ETHERNET, DAC, itd. itp.

b) ARMy mają dużo wyższe częstotliwości pracy (nowsze modele z niskiej półki potrafią osiągnąć 200MHz) i 32bitowe rejestry dzięki czemu wiele operacji wykonuje się wielokrotnie szybciej niż na starych AVR (często nawet 100 czy 1000x szybciej)

c) ARMy mają szybsze przerwania i kanały DMA, co pozwala bardzo wiele pracy wyrzucić poza bezpośrednią kontrolę CPU ( szybkie przerwania = mniej straconego czasu na ich obsługę, DMA pozwala na transfer danych np przez SPI czy z ADC bez udziału procesora - poza konfiguracją transferu).

d) Obecnie w tej samej klasie cenowej ARMy potrafią mieć kilkakrotnie większą pamięć FLASH i RAM...

3. Te popularne AVR typu attiny/atmega nie są już praktycznie rozwijane i jest to droga w jedną stronę. Pewnie projekty na nich będą tworzone nawet za 10 lat, ale to są już w pewnym sensie zabytki.

Atmel produkuje serię XMEGA, której osobiście nie znam, ale w moich oczach jest to taka próba powalczenia z ARMami... ale średnio udana, zresztą Atmel sam robi procesory ARM i mam wrażenie, że xmega powoli odchodzą w niepamięć.

ARM na ten moment ma gamę procesorów od dosyć prostych i bajecznie tanich Cortex M0/M0+ przez całkiem silne cortex M4/M7 po procesory będące konkurencją dla mobilnych procesorów Intela wykorzystywanych w high-endowych tabletach.

Obojętnie w którą stronę byś nie chciał iść coś z rodziny ARM sobie dobierzesz i to jest jedna z ich zalet.

Link do komentarza
Share on other sites

Kolega wyżej właściwie wyczerpał temat, ale tak od siebie powiem tak:

Jak dobrze znasz AVRy i dodatkowo C na nie, możesz jeszcze chwilę powalczyć z XMEGĄ, to taka przejściówka między AVR a ARM, bo ma rdzeń AVR, a programuje się już trochę jak ARMy, bo masz więcej peryferii i DMA.

Ogólnie ATMEL trochę za późno wypuścił XMEGA, aby sensownie mogło to walczyć z ARM, ale byly tez AVR32 które są 32-bitowymi AVRami. Niestety nie odniosły już takiego sukcesu.

Link do komentarza
Share on other sites

A mi się wydaje, że trochę przesadzacie. AVR ma swoje zastosowania i jeszcze długie lata będzie nie do pobicia przez ARM, nawet te najtańsze wersje. Mam tu na myśli głównie tanie, małe i energooszczędne mikrokontrolery do prostych zadań w rodzaju interfejsu użytkownika w młynku do kawy.

Nawet w elektronice hobbystycznej wróżę AVR jeszcze co najmniej 10 lat kariery, zanim nie zniknie pokolenie, które się na nim wychowało. Możecie sobie mówić, że ARM ma lepsze możliwości, większą szybkość i pewnie nawet niedługo może dorówna cenowo, ale co z tego, skoro mało który hobbysta tak naprawdę potrzebuje tych dużych prędkości, liczy się przede wszystkim wygoda i łatwość dla początkujących. A za 10 lat to równie dobrze może się już pojawić całkiem nowa platforma i ani AVR ani ARM się nie załapią.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

To nie jest kwestia, że AVR nie ma swoich zastosowań, bo ma i będzie miało...

To jest kwestia, że w tej chwili w podobnej cenie, albo nieco wyższej, możesz dostać ARMa o nieporównywalnie większych możliwościach.

Czy jest to potrzebne do migania diodami? Nie. Natomiast masz gwarancję, że za kilka miesięcy robiąc szybkiego LFa, sterowanie silnikami BLDC czy szybką konwersję ADC nie rozjedziesz się na zbyt słabym procesorze.

Jak ktoś zna AVRy i mu wystarczają nie ma sensu nic zmieniać. Natomiast jak ktoś chce ambitniej zacząć, albo po prostu zaczyna się obijać o kres możliwości AVRków to ARMy są jak najbardziej słusznym kierunkiem.

Link do komentarza
Share on other sites

Może i ARM jest bardziej popularny, ale nie ma co zapominać też o architekturze MIPS, czyli np. popularnych PIC32. Z tego co pamiętam, to właśnie Microchip zrobił najszybszy MCU taktowany 200MHz i wyciągający 330DMPIS'ów bijąc na głowę ARMy. Z drugiej strony, jest teraz mnogość ARMów, nawet takich dwurdzeniowych (jak Atmelowy SAM4C).

Można również celować po środku - jest kilka popularnych 16-bitowców, jak dsPIC Mircochipa czy MSP430 Texasa. I o ile ten pierwszy jest jeszcze ciekawy (DSP, taktowanie do 140MHz, obudowy DIP), o tyle ktoś kiedyś mi powiedział, że "16-bitowce to ślepa ścieżka w ewolucji" i faktycznie, chyba powoli już wymierają.

IMHO myślę, że wszystko zależy od zastosowań. Do prostego zegarka, który nawet nie ma daty, ethernetu, BT czy WiFi nie ma większego sensu dawać coś większego, niż 8-bitowca (czy to AVR czy to PIC). Natomiast jak wyżej wspomniano, budując LF-a z silnikami BLDC i tak dalej warto zapewnić sobie o wiele większą moc obliczeniową, sprzętowe mnożenie i dzielenie (ewentualnie jednostkę zmiennoprzecinkową), itp.

Link do komentarza
Share on other sites

Akurat współczynnikiem DMIPS to najmniej bym się kierował podczas wyboru mikrokontrolera. Oczywiście, są zastosowania, gdzie potrzebujemy dużej mocy obliczeniowej, ale prawdopodobnie w większości przypadków wystarczyłoby zoptymalizowac program.

Co do ARM to w tej chwili chyba najlepszy wybór z jednego powodu - układów opartych o rdzeń ARM jest dużo, a wygląda na to, że będzie coraz więcej. Masowa produkcja oznacza mniejsze koszty, więc tańsze układy. A dla nas - więcej ofert pracy 😉 Więc oczywiście można iść w stronę egzotycznych rozwiązań, ale np. MSP430 to raczej nisza rynkowa (układy ultra-energooszczędne) niż rozwiązanie przyszłościowe.

A jak już chcemy dyskutować o DMIPS-ach to można popatrzeć tutaj: https://en.wikipedia.org/wiki/Instructions_per_second

Link do komentarza
Share on other sites

Przepraszam, że się wtrącę - to mój pierwszy post na forum i nie jestem pewna, czy piszę w dobrym temacie. Żadnego lepszego nie udało mi się znaleźć przy pomocy wyszukiwarki.

Przytoczę najpierw post z innego forum:

Do embedded (czyli właśnie między innymi programowanie mikrokontrolerów) teraz bardzo prosto wejść. Można bardzo prosto zacząć pisać oprogramowanie migające diodami, wyświetlającego coś na LCD albo przesyłające dane do PC. Najpopularniejsze i w Polsce są (lub były kilka lat temu) są atmegi. Są do nich nawet polskojęzyczne książki. Od siebie mogę polecić rodzinę MSP430 z bardzo tanim zestawem rozwojowym od producenta. Są jeszcze arm cortex, które są trochę bardziej skomplikowane (w sensie więcej trzeba się naczytać i napisać, by napisać pierwszy program, ale na pewno jest to cenny kolejny etap). Odradzam Arduino i tego typu wynalazki i nie uzależniać się od jakiegokolwiek środowiska typu AtmelStudio, CodeComposerStudio, CooCox itp. (chociaż oczywiście warto próbować wszystkiego, by na końcu stwierdzić, że rzeczywiście Eclipse jest najlepszy 😉 ).

Odnoszę wrażenie, że rodzina MSP430 jest całkiem ciekawa i rzeczywiście warto ją poznać. Niestety, nie umiem znaleźć tego zestawu rozwojowego od producenta. Chodzi o zestaw z kamami czy zestaw z kristech?

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.