Jakie są zalety korzystania z ATmega32 od innych mikrokontrolerów? Czy to jest lepsze od PIC, ARM i 8051?Zalety atmega32
Odpowiedz
To zależy. Po pierwsze musisz wiedzieć, czego chcesz od mikroprocesora.
Ogólnie:
PIC:
- Stara architektura. Oznacza to, że to albo drogie albo powolne
- Targets tylko low-end (< kilka Mhz)
- Jest dużo kodu napisanego przez to
ARM
- Scalable
- fast/tanie
Atmega jest gdzieś pomiędzy
Niektóre z twoich uwag krytycznych dotyczących części PIC nie są ważne dla wszystkich części w zakresie. PIC24/dsPIC i PIC32 są bardzo zdolnymi częściami. Nie dlatego, że chcę być fanem Microchipa - nieprzyjemnych i drogich kompilatorów, a niezłomna IDE byłaby moją krytyką. – Clifford
Tak samo AVR32, ale nikt nie narzekał, że nie są wymienione. – avra
@avra: Moja krytyka zarówno AVR32, jak i PIC32 byłaby "zbyt późna, ARM już ma ten rynek zaszyty szerszą gamą dostawców, urządzeń peryferyjnych i opcji wydajnościowych". – Clifford
Cóż, nie jest łatwo odpowiedzieć. Zależy to głównie od tego, czego używałeś wcześniej. Jeśli jesteś już użytkownikiem AVR, to dobrze jest z niego korzystać. Z drugiej strony możesz znaleźć PIC o podobnych możliwościach, więc powiedziałbym, że to głównie osobiste preferencje. Myślę, że większość ARM jest bardziej zdolnych niż seria ATMEGA32. Jeśli chcesz uzyskać dobrą radę, powiedz nam, z czego zamierzasz skorzystać.
AVR mają płaski model pamięci i mają darmowe narzędzia programistyczne, a dla nich dostępny jest tani sprzęt programistyczny.
Nie wiem wystarczająco dużo o 8051, aby skomentować.
Aha, jeśli myślisz o oryginalnej atmega32, powiedziałbym, że to zły pomysł. Wkrótce zostanie wycofany, więc warto rozważyć nowsze modele z serii atmega32.
Tak długo, jak większość kodu w C, przeniesienie z jednego układu atmega na drugi jest dość bezbolesne. prototyp na wszystko, co się da, i zoptymalizuj później. – SingleNegationElimination
Na tym końcu spektrum istnieją naprawdę tylko dwa czynniki, które robią wielką różnicę. Po pierwsze, w mniejszych ilościach liczy się tylko to, która architektura najlepiej odpowiada Twoim potrzebom rozwojowym. Jeśli znasz już PIC, nie ma sensu uczyć się avr lub odwrotnie. Wybierz architekturę, która Ci się podoba, a następnie posortuj opcje tej architektury, aby sprawdzić, który model odpowiada Twoim potrzebom.
W ilości (powiedzmy 20 lub więcej jednostek) możesz odnieść korzyść, wybierając odpowiednią platformę, która dokładnie odpowiada potrzebom Twoich urządzeń, aby utrzymać koszty na jak najniższym poziomie.
Ogólnie rzecz biorąc, platformy Pic i Avr są dobre dla prostych, jednofunkcyjnych urządzeń, gdzie jako ramię stosowane jest w przypadkach, w których potrzebny jest pełny stos systemu operacyjnego, taki jak QNX lub Linux, na przykład w przypadku TCP lub w czasie rzeczywistym z usługami systemu operacyjnego.
Zalety
- nadal działa na 5 V, więc spuścizna 5 V interfejsy rzeczy czystsze
- choć to 5 V zdolny, nowsze części można uruchomić do 1,8 V. Ten szeroki zakres jest bardzo rzadki .
- Przyjemny zestaw instrukcji, bardzo dobra wydajność instrukcji w porównaniu do innych procesorów (HCS08, PIC12/16/18).
- Wysokiej jakości port GCC (brak zastrzeżonych kompilatorów kompilacji!)
- Warianty "PA" mają dobre możliwości trybu uśpienia w mikroamperach.
- Dobrze zaokrąglona zestaw obwodowych zdolność
- QTouch
Wady
- Mimo 8-bitowy. ARM jest 16/32-bitowym wozem roboczym i będzie wypychał znacznie więcej danych wokół, przy znacznie wyższych prędkościach zegara, niż jakikolwiek 8-bitowy.
- Koszt. Może być drogi w porównaniu do HCS08 lub innych okazyjnych 8-bitowych procesorów.
- GCC toolchain ma dziwactwa, takie jak model podzielonej pamięci i ograniczone wskaźniki 16-bitowe.
- Atmel nie jest najlepszym dostawcą na świecie (przynajmniej nie są one Maxim ...)
Krótko mówiąc, są one bardzo czyste i łatwe do pracy z mikrokontrolerem 8-bitowym.
8051 jest starsza: narzędzia są łatwe do przejścia, architektura jest dziwaczna (domyślnie ida? Xdata? Non-reentrant działa w większości kompilatorów?).
PIC przed PIC24 jest również dziwaczne (bankowość rejestrowa) i słaba przepustowość zegara> instrukcji. Nie ma też pierwszej klasy kompilatora C o otwartym kodzie źródłowym.
PIC32 konkuruje z ARM7TDMI i ARM Cortex-M3, w oparciu o dostosowany rdzeń MIPS i ma port GCC (bez głównej linii).
AVR32 konkuruje z Cortex-M3 i oferuje całkiem niezłą wartość, szczególnie w obszarze o niskim poborze mocy.
MSP430 jest królem urządzeń o ultra małej mocy i ma wygodny port GCC (jeśli nie kierujesz reklamy 430X).
HCS08 to bardzo tania, ale kiepska wydajność instrukcji. Urządzenia peryferyjne różnią się nieco.
ARM był punktem początkowym o wyższym koszcie, ale wraz z wprowadzeniem architektury Cortex-M3 cena spadła w porównaniu z 8-bitową. Na przykład seria LPC13xx jest pod wieloma względami porównywalna do ATmega32. Luminary (TI) ma dość imponujący zestaw peryferyjny.
znajdę rodziny PIC (przed wersją MIPS) korzystania z najbardziej bolesne zestaw instrukcji wszystkich, co oznacza assembler jest językiem wybór, jeśli chcesz zaoszczędzić miejsce, uzyskać wydajność, mieć kontrolę itp
8051 jest trochę mniej bolesny, więcej rejestrów, ale wciąż wykonuje garść instrukcji, by zrobić cokolwiek pożytecznego (co oznacza, że nie można ich porównać z innymi układami z perspektywy MHz). AVR pod wieloma względami podoba mi się, obejmuje społeczność homebrew i programistów, a jeśli nie, to w porównaniu z konkurencją jest znacznie lepsza rodzina programistów. Nie podoba mi się zestaw instrukcji, ale jest kilka dekad przed PIC i 8051. Bardzo podoba mi się zestaw instrukcji MSP430, jest to jeden z najlepszych zestawów instrukcji do nauczania asemblera, TI nie jest jednak tak przyjazny dla programisty, może to być walka.EZ430 był na dobrej drodze, ale dobra passa jest lepsza, ponieważ nie działa to, gdy nie działa co druga wersja jądra.
MSP430 i ARM mają najlepsze instrukcje, jeśli chodzi o mnie, co prowadzi zarówno do dobrego assemblera, jak i dobrych narzędzi kompilatora. Możesz znaleźć komercyjne narzędzia do wszystkich powyższych, a na pewno do bezpłatnych narzędzi 8051, MSP430 i ARM (MSP430 i ARM mogą używać GCC, 8051 nie mogą, poszukaj SDCC). Na razie mspgcc4.sf.net i CodeSourcery są miejscem dla narzędzi opartych na GCC dla MSP430 i ARM. LLVM obsługuje oba, byłem w stanie uzyskać LLVM 27, aby pokonać najnowsze GCC w dhrystone test, ale jest to jeden test, LLVM pozostawia w tyle wydajności, ale poprawia się.
Jeśli chodzi o znajdowanie i tworzenie darmowych kompilatorów krzyżowych, widzę, że LLVM jest już najłatwiejszy do zdobycia i wykorzystania, i, mam nadzieję, będzie jeszcze lepszy. Niestety, port MSP430 dla LLVM wyglądał tak, jak mogłem zrobić podczas popołudniowej prezentacji PowerPoint, a nie poważnego portu.
Moja odpowiedź brzmi, że to zależy od tego, co robisz, i polecam wypróbować je wszystkie. Obecnie płyty oceniające są w zakresie poniżej 50 USD, a niektóre w zakresie poniżej 30 USD. Nawet w rodzinie ARM (ST, Atmel, Stellaris, LPC itp.) Istnieje szeroki zakres funkcji i dziwactw, które można znaleźć tylko wtedy, gdy je wypróbujesz. Unikaj starterów LPCexpresso, mbed2 i STM32. Unikaj ogólnie LPC i ogólnie unikaj Cortex-M3, dopóki nie wyciśniesz zębów na ARM7. Spójrz na SparkFun dla Olimex i innych tablic. Chociaż prawdopodobnie jest to LPC, ARMmite PRO i Arduino Pro są dobrym wyborem. EZ430 jest dobrym startem MSP430 i nie pamiętam, kto robi 8051 rzeczy, Renasys (sp?), 8051 nie wszystkie są sobie równe, przestrzeń rejestru zmienia się od jednego do drugiego i trzeba się do tego przygotować. Prawdopodobnie będę szukał symulatora 8051, jeśli chcesz grać z 8051.
Widzę AVT i zdecydowanie ARM nadal dominuje, chciałbym, aby MSP430 był używany do rzeczy innych niż tylko super mała moc. Dzięki ARM, AVR i MSP430 możesz używać i przyzwyczajać się do narzędzi GCC teraz iw przyszłości, co ma wiele zalet, nawet jeśli GCC nie jest najlepszym kompilatorem na świecie, jest to zdecydowanie najlepszy obsługiwany kompilator. Uniknąłbym zastrzeżonych kompilatorów i narzędzi. Poszukałbym urządzeń, które mają niezastrzeżone interfejsy programistyczne, które można programować, JTAG jest dobre, ale na przykład nowy SWD JTAG na Cortex-M3 jest zły. TI MSP zostało zranione przez to, ale niektóre hakowanie rozwiązało to, przynajmniej na razie. Naprawdę nie mam wiele dobrego do powiedzenia na temat PIC i nie spróbuję. Dużą rzeczą, na którą należy zwrócić uwagę jest logika kleju, czy część lub rodzina ma SPI lub I2C lub jakąkolwiek autobus, z którego chcesz skorzystać, czy potrzebujesz wewnętrznego podciągnięcia lub połączenia przewodowego lub wejściowego?
Niektóre żetony po prostu nie mają tej opcji i trzeba dodać zewnętrzny sprzęt. Czy potrzebujesz przerwania z warunkowaniem? ARM ma tendencję do wygrywania tego, ponieważ jest to rdzeń używany przez wielu, więc każdy dostawca ARM umieszcza swoje własne wejścia/wyjścia, dzięki czemu możesz nadal żyć w świecie ARM i mieć wiele możliwości, AVR i MSP będą bardzo ograniczone przez porównanie. Dzięki ARM narzędzia staną się najnowocześniejsze, ARM jest obecnie najczęściej używanym procesorem. AVR i MSP są specjalnymi dodatkami projektowymi, mniej popularnymi i delikatnymi. Chociaż ARM ma niską moc w porównaniu do Intela na platformie SBC lub platformie komputerowej, prawdopodobnie nie ma tak małej mocy jak AVR lub MSP. Naprawdę musisz spojrzeć na swój projekt i wybrać odpowiedni procesor do pracy, nie chciałbym i nie ograniczę się do jednej rodziny. Są tak tanie jak tablice ewaluacyjne i prawie wszyscy mogą korzystać z darmowych narzędzi, to tylko kwestia spędzenia kilku nocy lub weekendów, aby się uczyć. Sugeruję uczenie się więcej niż jednego AVR i uczenia się więcej niż jednego mikroprocesora.
Jeśli potrzebujesz najszerszego wyboru urządzeń peryferyjnych, wydajności, cennika, oprogramowania i wsparcia narzędziowego oraz dostawców, trudno będzie pokonać część opartą na ARM Cortex-M3.
Ale adresując bezpośrednio twoje pytanie, cała seria AVR ma spójną architekturę i wspólny zestaw urządzeń peryferyjnych od Tiny do Mega (nie AVR32, który jest całkowicie inny). Jest to istotna różnica w porównaniu z PIC, gdzie przy przesuwaniu się w górę zakresu (PIC10, 12, 16, 18, 24, 32) otrzymujesz różne projekty peryferyjne, różne zestawy instrukcji i musisz inwestować w różne kompilatory i sprzęt do debugowania.
Zestaw instrukcji dla AVR został zaprojektowany do wydajnej kompilacji kodu C (również w przeciwieństwie do PIC).
8051 to architektura oryginalnie wprowadzona przez firmę Intel dekady temu, ale obecnie używana jako rdzeń dla urządzeń 8-bitowych od wielu dostawców. Ma kilka sprytnych sztuczek, takich jak wydajne wielozadaniowe przełączniki kontekstu za pośrednictwem 8 zduplikowanych banków rejestrów i blok bitowej adresowalnej pamięci, ale ma dziwną architekturę pamięci i ograniczony zakres adresów (jak większość 8-bitowych urządzeń). Doskonały do małych dobrze ukierunkowanych urządzeń, ale nie do końca uniwersalny.
ARM Cortex-M3 zasadniczo zastępuje ARM7TDMI i jest czystszym projektem o przemyślanej architekturze. Wymaga minimalnego kodu startowego asemblera, a nawet ISR i tabele wektorowe mogą być kodowane w C bezpośrednio, bez żadnych dziwnych rozszerzeń kompilatora lub kodu wejścia/wyjścia asemblera. Technika bitmapowania pozwala na to, by cała pamięć i urządzenia peryferyjne były adresowalne bitowo, co jest przydatne w przypadku szybkiego I/O i bezpiecznego wielowątkowości. Zasadniczo jest przeznaczony do zezwalania na kod C lub C++ na poziomie systemu bez niestandardowych rozszerzeń kompilatorów. Jest to oczywiście architektura 32-bitowa, więc nie ma ograniczeń zasobów ani arytmetycznych urządzeń 8-bitowych. Ceny części low-end konkurują z wydajniejszymi 8-bitowymi urządzeniami i wysysają większość 16-bitowych urządzeń z wody (czyniąc 16-bitową niemal przestarzałą).
Jeszcze jedną ważną rzeczą do zapamiętania jest to, że PIC i AVR pochodzą od pojedynczych dostawców, podczas gdy 8051 i ARM są licencjonowanymi rdzeniami. Każdy licencjobiorca dodaje swój własny zestaw urządzeń peryferyjnych, więc nie ma żadnych powiązań między dostawcami urządzeń peryferyjnych, więc kod sterownika urządzenia wymaga przeniesienia podczas zmiany dostawcy, a musisz upewnić się, że część zawiera potrzebne urządzenia peryferyjne. Jeśli dobrze zaprojektujesz swoją warstwę urządzenia, rzadko jest to problemem.
Rodzina AVR ma IDE oparte na GCC, które jest bezpłatne dla całej gamy ich procesorów. Od najmniejszego do największego, jeden kod, aby rządzić wszystkimi. AVR to 8-bitowy procesor i na tym samym zegarze jest 4 razy szybszy niż 8-bitowy PIC i 12 razy szybszy niż 8051. ARM jest 32-bitowy, mocniejszy i o wiele bardziej głodny mocy. Będzie szybko jeść baterię, podczas gdy AVR będzie działał przez kilka tygodni lub miesięcy. Nie znajdują się w tym samym zakresie i nie są używane do tych samych zadań. To tak, jakby porównać 4-pasmowy czterordzeniowy komputer typu blentium do małego ARM, który obsługuje twój telefon komórkowy. – avra
"Jeden kod, aby rządzić nimi wszystkimi" ... nie jest w 100% dokładny. rejestr/pin/timer i różnice ISR istnieją, oprócz kilku innych różnic. Tak, używasz zwykłego kompilatora C (C99), a IDE jest częsty. – icarus74