- Zacznij od wymagań projektu
- Spójrz na wybrane parametry
- Napięcie robocze
- Docelowe złącza
- Zaawansowane interfejsy
- Środowisko programistyczne
- Cena i dostępność
- Inne funkcje
- Wniosek
Jeśli chodzi o wybór mikrokontrolera, jest to naprawdę mylące zadanie, ponieważ na rynku dostępnych jest wiele mikrokontrolerów o takich samych specyfikacjach. Dlatego każdy parametr nabiera znaczenia przy doborze mikrokontrolera. Tutaj porównujemy dwa najczęściej używane mikrokontrolery - mikrokontrolery PIC i mikrokontrolery AVR. Tutaj są porównywane na różnych poziomach, co będzie pomocne w doborze mikrokontrolera do Twojego projektu.
Zacznij od wymagań projektu
Zbierz wszystkie informacje o swoim projekcie, aby rozpocząć, zanim zaczniesz wybierać dowolny mikrokontroler. Bardzo ważne jest, aby zebrać jak najwięcej informacji, ponieważ odegrałoby to ważną rolę w wyborze odpowiedniego mikrokontrolera.
- Zbierz informacje o projekcie, takie jak rozmiar projektu
- Liczba używanych urządzeń peryferyjnych i czujników
- Wymaganie mocy
- Budżet projektu
- Wymagania dotyczące interfejsów (takie jak USB, SPI, I2C, UART itp.),
- Utwórz podstawowy schemat blokowy sprzętu,)
- Wypisz, ile GPIO jest potrzebnych
- Wejścia analogowo-cyfrowe (ADC)
- PWM
- Wybierz odpowiednią architekturę, np. (8-bitowa, 16-bitowa, 32-bitowa)
- Rozpoznaj wymagania dotyczące pamięci projektu (pamięć RAM, Flash itp.)
Spójrz na wybrane parametry
Po zebraniu wszystkich informacji przychodzi właściwy moment na wybór mikrokontrolera. W tym artykule porównane zostaną dwa konkurujące ze sobą mikrokontrolery marki PIC i AVR pod względem różnych parametrów. W zależności od potrzeby projektu, aby porównać te dwa elementy, spójrz na następujące parametry, takie jak:
- Częstotliwość: prędkość z jaką mikrokontroler będzie działał
- Liczba pinów I / O: wymagane porty i szpilki
- RAM: wszystkie zmienne i tablice zadeklarowane (DANE) w większości MCU
- Pamięć flash: dowolny kod, który napiszesz, trafia tutaj po kompilacji
- Zaawansowane interfejsy: zaawansowane interfejsy, takie jak USB, CAN i Ethernet.
- Napięcie robocze: napięcie robocze MCU, takie jak 5 V, 3,3 V lub niskie napięcie.
- Złącza docelowe: Złącza ułatwiające projektowanie i rozmiar obwodu.
Większość parametrów jest podobna zarówno w PIC, jak i AVR, ale są pewne parametry, które z pewnością różnią się w porównaniu.
Napięcie robocze
Dzięki większej liczbie produktów zasilanych bateryjnie, PIC i AVR zdołały ulepszyć operacje przy niskim napięciu. AVR są lepiej znane z pracy przy niskim napięciu niż starsze serie PIC, takie jak PIC16F i PIC18F, ponieważ te serie PIC wykorzystywały metodę wymazywania chipów, która wymaga co najmniej 4,5 V do działania, a poniżej 4,5 V programiści PIC muszą używać algorytmu usuwania wierszy które nie mogą wymazać zablokowanego urządzenia. Jednak tak nie jest w przypadku AVR.
AVR ulepszył i wprowadził na rynek najnowsze warianty P (pico-power), takie jak ATmega328P, które są wyjątkowo energooszczędne. Również obecny ATtiny1634 został ulepszony i jest wyposażony w tryby uśpienia, aby zmniejszyć zużycie energii, gdy używane jest wyłączanie prądu, co jest bardzo przydatne w urządzeniach zasilanych bateryjnie.
Wniosek jest taki, że AVR wcześniej koncentrowało się na niskim napięciu, ale teraz PIC został przekształcony do pracy przy niskim napięciu i wprowadził pewne produkty oparte na picPower.
Docelowe złącza
Docelowe złącza są bardzo ważne, jeśli chodzi o projektowanie i rozwój. AVR ma zdefiniowane 6 i 10-drożne interfejsy ISP, co sprawia, że jest łatwy w użyciu, podczas gdy PIC go nie ma, więc programiści PIC są dostarczane z wolnymi przewodami lub gniazdami RJ11, które są trudne do dopasowania w obwodzie.
Wniosek jest taki, że AVR uprościł to pod względem projektowania i rozwoju obwodu za pomocą złącz docelowych, podczas gdy PIC nadal musi to naprawić.
Zaawansowane interfejsy
Jeśli chodzi o zaawansowane interfejsy, PIC jest z pewnością opcją, ponieważ ma swoje zaawansowane funkcje, takie jak USB, CAN i Ethernet, co nie ma miejsca w AVR. Można jednak zastosować układy zewnętrzne, takie jak układy FTDI USB na szeregowe, kontrolery Microchip Ethernet lub chipy Philips CAN.
Wniosek jest taki, że PIC z pewnością ma zaawansowane interfejsy niż AVR.
Środowisko programistyczne
Poza tym istnieją ważne cechy, które sprawiają, że oba mikrokontrolery różnią się od siebie. Łatwość środowiska programistycznego jest bardzo ważna. Poniżej znajduje się kilka ważnych parametrów, które wyjaśnią łatwość tworzenia środowiska:
- Development IDE
- C kompilatory
- Monterzy
Środowisko programistyczne:
Zarówno PIC, jak i AVR mają własne środowiska programistyczne . Rozwój PIC odbywa się na MPLAB X, które jest znane jako stabilne i proste IDE w porównaniu do AVR Atmel Studio7, który ma duży rozmiar 750 MB i jest nieco niezgrabny z większą liczbą funkcji dodatkowych, co utrudnia i komplikuje początkującym hobbystom elektroniki.
PIC może być programowany za pośrednictwem narzędzi mikroukładowego PICkit3 i MPLAB X . AVR jest programowany za pomocą narzędzi takich jak JTAGICE i AtmelStudio7. Jednak użytkownicy przechodzą na starsze wersje AVR Studio, takie jak 4.18 z dodatkiem Service Pack3, ponieważ działa znacznie szybciej i ma podstawowe funkcje do programowania.
Wniosek jest taki, że PIC MPLAB X jest nieco szybszy i przyjazny dla użytkownika niż AtmelStudio7.
Kompilatory C:
Zarówno PIC, jak i AVR są dostarczane z kompilatorami XC8 i WINAVR C. PIC wykupił Hi-tech i uruchomił własny kompilator XC8. Jest to całkowicie zintegrowane z MPLAB X i działa dobrze. Ale WINAVR to ANSI C oparty na kompilatorze GCC, który ułatwia przenoszenie kodu i używanie standardowych bibliotek. Bezpłatna, ograniczona wersja kompilatora IAR C o rozdzielczości 4KB daje smak profesjonalnych kompilatorów, które kosztują dużo. Ponieważ amplituner AVR jest początkowo zaprojektowany dla języka C, kod wyjściowy jest mały i szybki.
PIC ma wiele funkcji, które sprawiają, że jest dobrze w porównaniu do AVR, ale jego kod staje się większy ze względu na strukturę PIC. Wersja płatna jest dostępna z większą optymalizacją, jednak wersja bezpłatna nie jest dobrze zoptymalizowana.
Wniosek jest taki, że WINAVR jest dobry i szybki pod względem kompilatorów niż PIC XC8.
Monterzy:
Dzięki trzem 16-bitowym rejestrom wskaźników, które upraszczają adresowanie i operacje na słowach, język asemblera AVR jest bardzo łatwy z dużą ilością instrukcji i możliwością wykorzystania wszystkich 32 rejestrów jako akumulatora. Podczas gdy asembler PIC nie radzi sobie dobrze ze wszystkim, co jest zmuszane do działania przez akumulator, wymusza używanie przełączania banków przez cały czas, aby uzyskać dostęp do wszystkich rejestrów funkcji specjalnych. Chociaż MPLAB zawiera makra upraszczające przełączanie banków, ale jest to żmudne i czasochłonne.
Również brak instrukcji gałęzi, wystarczy pominąć i GOTO, co wymusza na zawiłych strukturach i nieco zagmatwany kod. Seria PIC ma kilka serii mikrokontrolerów znacznie szybszych, ale ponownie ogranicza się do jednego akumulatora.
Wniosek jest taki, że chociaż niektóre mikrokontrolery PIC są szybsze, ale AVR jest lepszy do pracy w przypadku asemblerów.
Cena i dostępność
Jeśli chodzi o cenę, to zarówno PIC, jak i AVR są bardzo podobne. Oba są dostępne w większości w tej samej cenie. Pod względem dostępności PIC zdołał dostarczyć produkty w określonym czasie w porównaniu z AVR, ponieważ Microchip zawsze stosował politykę krótkich terminów realizacji. Atmel miał trudne czasy, ponieważ ich szeroki asortyment produktów oznacza, że AVR są niewielką częścią ich działalności, więc inne rynki mogą mieć pierwszeństwo przed AVR pod względem zdolności produkcyjnej. Dlatego zaleca się stosowanie PIC w odniesieniu do harmonogramów dostaw, podczas gdy AVR może mieć krytyczne znaczenie dla produkcji. Części z mikroczipami są zwykle łatwiej dostępne, zwłaszcza w małych ilościach.
Inne funkcje
Zarówno PIC, jak i AVR są dostępne w różnych pakietach. PIC wprowadza więcej wersji niż AVR. Wprowadzenie tej wersji może mieć wady i zalety w zależności od aplikacji, na przykład więcej wersji powoduje zamieszanie w wyborze odpowiedniego modelu, ale jednocześnie zapewnia większą elastyczność. Najnowsza wersja zarówno PIC, jak i AVR ma bardzo małą moc i działa w różnych zakresach napięcia. Zegary i timery PIC są dokładniejsze, ale pod względem szybkości PIC i AVR są bardzo podobne.
Atmel Studio 7 dodał produkcyjne pliki ELF, które zawierają dane EEPROM, Flash i fuse w jednym pliku. Podczas gdy AVR zintegrował dane bezpiecznika w ich formacie pliku szesnastkowego, więc bezpiecznik można ustawić w kodzie. Umożliwia to łatwiejsze przeniesienie projektu do produkcji dla PIC.
Wniosek
PIC i AVR to doskonałe, niedrogie urządzenia, które są wykorzystywane nie tylko w przemyśle, ale także chętnie wybierane przez studentów i hobbystów. Obie są szeroko stosowane i mają dobre sieci (fora, przykłady kodu) z aktywną obecnością w Internecie. Oba mają dobry zasięg i wsparcie społeczności, a oba są dostępne w szerokich rozmiarach i formatach z niezależnymi podstawowymi urządzeniami peryferyjnymi. Microchip przejął Atmel i teraz zajmuje się zarówno AVR, jak i PIC. Na koniec dobrze wiadomo, że nauka mikrokontrolera jest jak nauka języków programowania, ponieważ nauka innego będzie znacznie łatwiejsza, gdy się nauczysz jednego.
Niezależnie od tego, kto wygrywa, ale w prawie wszystkich gałęziach inżynierii nie ma takiego słowa jak „najlepszy”, podczas gdy „najbardziej odpowiednie do zastosowania” jest dobrze dopasowanym zwrotem. Wszystko zależy od wymagań konkretnego produktu, metody rozwoju i procesu produkcyjnego. Więc w zależności od projektu można wybrać dobrze dopasowany mikrokontroler spośród PIC i AVR.