Mikrokontrolery AVR to rodzaj urządzeń opracowanych przez Atmel, które mają wyraźną przewagę nad konwencjonalnymi mikroukładami. Czym jest mikrokontrolery AVR? Najłatwiej to zrozumieć, porównując mikrokontroler z komputerem, na którym jest zainstalowana płyta główna. Na tej płycie znajduje się mikroprocesor (na chipie Intel lub AMD), który zapewnia urządzenie komputerowe, pamięć RAM i EEPROM oraz interfejsy innych systemów, na przykład porty szeregowe (obecnie głównie USB), dyski twarde i interfejsy graficzne. W mikrokontrolerze wszystkie te funkcje są zintegrowane w jednym układzie, co oznacza, że nie ma potrzeby płyty głównej i wielu innych komponentów, na przykład diodę LED można podłączyć bezpośrednio do AVR. W mikroprocesorach nie ma takiej możliwości.
Kiedy są potrzebne mikrokontrolery AVR?
Mikrokontrolery AVR są dostępne w kilku przypadkach, niektóre przeznaczone są do montażu w otworach, inne do montażu powierzchniowego. AVR są 8-stykowe i 100-stykowe, chociaż wszystko powyżej 64 styków służy wyłącznie do montażu w otworach. Większość ludzi zaczyna od 28-stykowego układu DIL (Dual Line), takiego jak ATmega 328 lub 40-pin ATmega 16 lub ATmega 32.
Mikroprocesory komputerowe są, co najmniej 32-bitowe, a teraz częściej 64-bitowe. Oznacza to, że mogą przetwarzać dane w blokach 32- lub 64-bitowych, jeśli są podłączone do magistrali. AVR jest znacznie prostszy i działa z 8-bitowymi blokami, przepustowość strumienia wynosi 8 bitów, chociaż teraz AVR 32 z 32-bitową magistralą zaczął się pojawiać.
System operacyjny ( Windows lub Linux) jest zainstalowany na komputerze i to w nim uruchamiane są programy takie jak Word, Internet Explorer lub Chrome . 8-Bitowy mikrokontroler, na przykład AVR, zwykle nie ma zainstalowanego systemu operacyjnego, chociaż w razie potrzeby można go zainstalować. Zamiast tego zaimplementowano możliwość uruchamiania jednego programu.
Podobnie jak komputer, który będzie bezużyteczny, jeśli nie zostaną zainstalowane żadne programy, a AVR wymaga instalacji programów. Program jest przechowywany we wbudowanej pamięci AVR, a nie na zewnętrznym dysku twardym, jak na komputerze. Ten program jest pobierany do AVR przy użyciu programatora AVR, zwykle, gdy AVR jest częścią systemu i jest programowany przez programistę lub programistę systemowego.
Czym więc jest ten program?
Składa się z szeregu instrukcji, bardzo prostych i mających na celu przetwarzanie danych. W większości aplikacji, które będą używane z AVR, na przykład w sterowniku urządzeń przemysłowych, konieczne jest odczytanie informacji z wejść, sprawdzenie stanu i odpowiednio przełączenie wyjść. Czasami trzeba zmienić dane, zarządzać nimi lub przenieść je na inne urządzenie, takie jak wyświetlacz LCD lub port szeregowy. Najprostszym sposobem na napisanie programu dla AVR jest użycie asemblera. Korzystanie z asemblera pozwala lepiej zrozumieć, jak działa AVR i jak to wszystko się łączy. Pozwala to również na użycie bardzo małego i szybkiego kodu. Wadą jest to, że jako programista musisz zrobić wszystko sam, w tym zarządzanie pamięcią i strukturą programu, co może być bardzo męczące.
Aby tego uniknąć, do pisania programów dla AVR używano języków programowania wyższego poziomu, C jest uważany za główny, można także używać języka Basic i Java. Poziom wysoki oznacza, że każdą linię kodu C można przetłumaczyć na wiele linii asemblera. Kompilator rozumie również strukturę programu i zarządzanie pamięcią, dzięki czemu wszystko staje się znacznie prostsze. Najczęściej używane procesy, takie jak opóźnienia lub obliczenia, można przechowywać w bibliotekach, a dostęp do nich jest bardzo prosty.
Wydaje się, że pisanie programów C dla AVR jest porównywalne z prowadzeniem samochodu. Pisanie najprostszych programów asemblera wyjaśnia, co dzieje się pod maską, jak działa i co można z tym zrobić. Następnie przełącza się na C, ale do tego momentu już wiadomo, jak działa AVR i zna się jego ograniczenia.