Programowanie AVR. Programowanie mikrokontrolerów AVR dla początkujących

Mikrokontrolery są niewielkimi, ale jednocześnie bardzo wygodnymi urządzeniami dla tych, którzy chcą stworzyć w domu różne niesamowite roboty lub zautomatyzowane rzeczy. W ramach tego artykułu zostanie rozważone programowanie AVR dla początkujących, różne aspekty i niuanse tego procesu.

Informacje ogólne

Mikrokontrolery można znaleźć wszędzie. Są w lodówkach, pralkach, urządzeniach, obrabiarkach w produkcji, inteligentnych domach, a nawet w wielu różnych urządzeniach technicznych. Ich powszechne zastosowanie wynika z możliwości zastąpienia bardziej złożonych i wielkoskalowych urządzeń analogowych. Programowanie MC AVR pozwala na autonomiczne sterowanie urządzeniami elektronicznymi. Mikrokontrolery te można przedstawić jako najłatwiejszy komputer, który może wchodzić w interakcje z zewnętrznym sprzętem. Tak, są w stanie otwierać /zamykać tranzystory, odbierać dane z czujników i wyświetlać je na ekranach. Ponadto mikrokontrolery mogą wykonywać różne przetwarzanie informacji wejściowych, podobnie jak w komputerze osobistym. Jeśli AVR programowanie od podstaw nauczyć i osiągnąć poziom profesjonalny, otwarto prawie nieograniczone możliwości kontrolowania różnych urządzeń poprzez porty I /O, a zmiana ich kodu.


Trochę o AVR

W ramach artykułu zostanie rozważona rodzina mikrokontrolerów wyprodukowanych przez firmę Atmel. Mają dość dobrą wydajność, dzięki czemu mogą być używane przez wieluurządzenia amatorskie. Szeroko stosowany w przemyśle. Możesz spotkać się w następujących technikach:
  • Krajowe. Pralki, lodówki, kuchenki mikrofalowe i inne.
  • Telefon komórkowy. Roboty, urządzenia komunikacyjne i tak dalej.
  • Obliczeniowe. Peryferyjne systemy zarządzania urządzeniami, płyty główne.
  • Zabawny. Ozdoby i zabawki dla dzieci.
  • Transport. Systemy bezpieczeństwa i kontrola silnika w samochodzie.
  • Wyposażenie przemysłowe. Systemy sterowania obrabiarek.
  • To oczywiście nie wszystkie sfery. Używane są tam, gdzie korzystne jest nie używanie zestawu sterujących układów, ale jednego mikrokontrolera. Jest to możliwe dzięki niskiemu zużyciu energii i uproszczonej produkcji. Do pisania programów używane są języki C i Asembler, nieco zmodyfikowane dla rodziny mikrokontrolerów. Takie zmiany są konieczne ze względu na słabe możliwości obliczeniowe, które są zwykle obliczane w dziesiątkach kilobajtów. Programowanie AVR bez nauki tych języków nie jest możliwe.


    Jak zdobyć swój pierwszy mikrokontroler?

    Programowanie AVR wymaga:
  • Dostępność wymaganego środowiska programistycznego.
  • Właściwie same mikrokontrolery.
  • Druga kwestia została omówiona bardziej szczegółowo. Istnieją trzy możliwości zdobycia niezbędnego urządzenia:
  • Kup bezpośrednio sam mikrokontroler.
  • Zdobądź urządzenie w projektancie (na przykład - Arduino).
  • Zbierz mikrokontroler samodzielnie.
  • W pierwszym akapicie nie ma nic skomplikowanego, więc natychmiast przejdź do drugiego i trzeciego.

    Uzyskajurządzenie w projektancie

    Jako przykład zostanie wybrane renomowane Arduino. Jest to elektroniczny projektant, połączenie wygodnej platformy do szybkiego i wysokiej jakości rozwoju różnych urządzeń elektronicznych. Płyta Arduino zawiera pewien zestaw komponentów do pracy (są różne konfiguracje). Musi mieć kontroler AVR. Takie podejście pozwala szybko rozpocząć projektowanie urządzenia, nie wymaga specjalnych umiejętności, ma duże możliwości w zakresie podłączania dodatkowych płyt, a także w Internecie można znaleźć wiele informacji na temat tego pytania. Ale nie było bez wad. Kupując Arduino, osoba pozbawia się możliwości głębszego zanurzenia się w programowaniu AVR, lepiej poznać mikrokontroler, specyfikę jego pracy. Negatywne i dodaje stosunkowo wąską linię modeli, z powodu których często trzeba kupić planszę do konkretnych zadań. Inną cechą jest to, że programowanie "SI" różni się tu znacznie od standardowej formy. Pomimo wszystkich jego wad, Arduino jest odpowiedni dla początkujących. Ale nie powinieneś nadużywać.

    Niezależny montaż

    Należy zauważyć, że mikrokontrolery AVR są wystarczająco przyjazne dla nowo przybyłych. Możesz je zbierać niezależnie od niedrogich, prostych i tanich komponentów. Jeśli mówimy o zaletach, to podejście pozwala na zapoznanie się z urządzeniem, niezależne wybieranie niezbędnych komponentów, dostosowywanie końcowego wyniku do wymagań, stosowanie standardowych języków programowania i taniość. O minusach można zauważyćtylko złożoność niezależnego zbioru, gdy jest przeprowadzana po raz pierwszy i nie ma niezbędnej wiedzy i umiejętności.

    Jak pracować?

    Załóżmy więc, że sprawa z mikrokontrolerem zdecydowała. Następnie zostanie założone, że został zakupiony lub zakupiony niezależnie. Co jeszcze jest potrzebne do opanowania programowania AVR? W tym celu potrzebne jest środowisko programistyczne (jako podstawa i zwykły komputer przenośny jest odpowiedni, ale polecam rozpracować Notepad ++). Chociaż istnieją inne aplikacje do programowania AVR, zapewnienie to będzie w stanie spełnić wszystkie wymagania. Potrzebujesz również programisty. Można go kupić w najbliższym sklepie, zamówić online lub zebrać samodzielnie. Nie koliduje to z płytką drukowaną. Nie jest to wymagane, ale jego użycie pozwala zaoszczędzić nerwy i czas. Kupiony /stworzony przez siebie. A ostatni to źródło mocy. W przypadku AVR konieczne jest zapewnienie dopływu 5V.

    Gdzie i jak się uczyć?

    Twórz arcydzieła od podstaw, nie wychodź. Wymaga wiedzy, doświadczenia i praktyki. Ale gdzie je zdobyć? Istnieje kilka sposobów. Na początku możesz samodzielnie wyszukiwać potrzebne informacje w sieci World Wide Web. Możesz pisać na kursach programowania (odległość lub oko), aby zdobyć podstawowe umiejętności. Każde podejście ma swoje zalety. Tak, kursy zdalnego programowania będą tańsze i być może za darmo. Ale jeśli coś nie wyjdzie, to na lekcji na lekcji doświadczony programista będzie w stanie szybko znaleźć przyczynę problemu. Nie jest również zbyteczne zapoznawanie się z literaturą, która jest wolnadostęp Oczywiście jedna książka nie opuści, ale można uzyskać podstawową wiedzę na temat urządzenia, programowania "SI", "asemblera" i innych momentów pracy.

    Porty wejściowe /wyjściowe

    To niezwykle ważny temat. Bez zrozumienia, jak działają porty I /O, programowanie AVR nie jest ogólnie możliwe. W końcu interakcja mikrokontrolera z urządzeniami zewnętrznymi odbywa się właśnie za pośrednictwem ich pośrednictwa. Na pierwszy rzut oka nowicjusz może wydawać się, że port jest dość skomplikowanym mechanizmem. Aby uniknąć takiego wrażenia, nie będziemy szczegółowo badać schematu jego pracy, ale tylko uzyskać ogólne wyobrażenie o tym. Rozważ realizację programu. Jako przykład urządzenia wybrano mikrokontroler AtMega8, jeden z najpopularniejszych z całej rodziny AVR. Port we /wy reprezentuje trzy rejestry odpowiedzialne za jego działanie. Na poziomie fizycznym są one implementowane jako nogi. Każdy z nich odpowiada pewnemu bitowi rejestru kontrolnego. Każda noga może pracować zarówno dla wprowadzania informacji, jak i dla danych wyjściowych. Na przykład może zawiesić funkcję zapłonu diody elektroluminescencyjnej lub przetwarzania za pomocą przycisku dotykowego. Nawiasem mówiąc, wspomniane trzy rejestry to PORTx, PINx i DDRx. Każda z nich jest ośmiobitowa (nie zapominajmy, że rozważamy AtMega8). Oznacza to, że jeden bit dotyczy pewnej nogi.

    Zarejestruj pracę

    Menedżer DDRx jest najważniejszy pod względem kierowania. Jest również ośmiobitowy. Wartości dla niego można zapisać 0 lub 1. W jaki sposób zmienia się praca kontrolera, gdy jest używanyzera i jednostki? Jeśli ustawisz 0 na określony bit, odpowiednia noga zostanie przełączona w tryb logowania. I z tego będzie można odczytać dane pochodzące z urządzeń zewnętrznych. Jeśli ustawisz 1, wtedy mikrokontroler będzie mógł sterować czymś (na przykład, dać tranzystorowi polecenie pominięcia napięcia i zapalenia diody LED). Drugim najważniejszym jest PORTx. Odpowiada za stan nogi. Spójrzmy na przykład. Załóżmy, że mamy port wyjściowy. Jeśli ustawimy jednostkę logiczną na PORTx, to sygnał z mikrokontrolera kontrolera zostanie wysłany, aby rozpocząć. Na przykład zapal LED. Gdy ustawione są zera, zostanie zgaszony. Oznacza to, że nie ma potrzeby pracy z menedżerem rejestru DDRx przez cały czas. I wreszcie porozmawiajmy o PINx. Ten rejestr jest odpowiedzialny za wyświetlanie stanu nogi kontrolera, gdy jest skonfigurowany do stanu wejściowego. Należy zauważyć, że PINx może działać tylko w trybie tylko do odczytu. Nagrywanie nie zadziała. Ale od czytania aktualnego stanu nóg - to żaden problem.

    Praca z analogami

    AVR nie jest jedynym mikrokontrolerem. Ten rynek jest podzielony między kilku dużych producentów, a także liczne chińskie urządzenia imitujące i kunszt. Pod wieloma względami są podobne. Na przykład programowanie PIC /AVR nie różni się zbytnio. A jeśli istnieje zrozumienie czegoś, wtedy wszystko inne będzie łatwe do zrozumienia. Zalecamy jednak rozpoczęcie od AVR ze względu na jego właściwą strukturę, dobrą wolę dla programisty i dostępność dużej liczby materiałów pomocniczych, dzięki czemu proces programowania może zostać znacznie przyspieszony.

    Technologia bezpieczeństwa

    Podczas programowania mikrokontrolerów AVR na "SI" lub "Asembler", trzeba bardzo ostrożnie pracować. Faktem jest, że umieszczając pewną kombinację rejestrów i zmieniając ustawienia wewnętrzne, można bezpiecznie zablokować mikrokontroler. Jest to szczególnie prawdziwe w przypadku fjuzes. Jeśli nie jesteś pewien poprawności swoich działań, lepiej odmówić ich użycia. To samo dotyczy programistów. Jeśli kupisz sprzęt fabryczny, to spowoduje to utrwalenie mikrokontrolerów bez problemów. Podczas składania własnych rąk może wystąpić smutna sytuacja, w której programista zablokuje urządzenie. Może się to zdarzyć z powodu błędów w kodzie programu i z powodu problemów w nim samym. Nawiasem mówiąc, o innym (tym razem pozytywnym) momencie, o którym wcześniej wspominano krótko, ale nie został w pełni ujawniony. Teraz praktycznie wszystkie współczesne mikrokontrolery mają funkcję programowania intracircuit. Co to znaczy? Załóżmy, że urządzenie zostało zaplombowane na płycie. I aby zmienić jego oprogramowanie, teraz nie musisz go pić, ponieważ taka interwencja może uszkodzić sam mikrokontroler. Wystarczy połączyć się z odpowiednimi wnioskami i przeprogramować za pomocą mediacji.

    Który model wybrać?

    W ramach artykułu rozważono AtMega8. Jest to dość przeciętny mikrokontroler, który jednak wystarcza dla większości produktów. Jeśli istnieje chęć stworzenia czegoś dużego, możesz już wziąć jakieś potwory, takie jak Atmega128. Ale są przeznaczone dla bardziej doświadczonychprogramistów. Dlatego, jeśli nie ma wystarczającego doświadczenia, lepiej zacząć od małych i prostych urządzeń. Ponadto są one znacznie tańsze. Zgadzacie się, jedną rzeczą jest przypadkowe zablokowanie mikrokontrolera za sto rubli, a całkiem indziej za pół tysiąca. Lepiej jest wypełnić swoją rękę i zrozumieć różne aspekty funkcjonowania, aby w przyszłości nie tracić znacznych sum. Najpierw zacznij od AtMega8, a następnie przejdź do swoich potrzeb.

    Wniosek

    A zatem temat programowania AVR został rozpatrzony w sposób najbardziej ogólny. Oczywiście wciąż jest dużo do omówienia. Na przykład etykietowanie mikrokontrolerów nie było brane pod uwagę. I może mieć wiele do powiedzenia. Tak, w zasadzie mikrokontrolery pracują pod napięciem 5V. Podczas gdy obecność, na przykład, litery L może powiedzieć, że dla urządzenia wystarczy tylko 27 art. Jak widać, czasami znajomość etykietowania może odgrywać bardzo ważną rolę w zakresie prawidłowego i trwałego działania urządzeń. Interesującym tematem jest również czas pracy mikrokontrolerów. Każde urządzenie jest zaprojektowane na określony czas. Tak, niektórzy mogą pracować przez tysiąc godzin. Inne mają gwarancję 10.000!

    Powiązane publikacje