Mikrokontrolery AVR – mały przewodnik

Share on facebook
Share on twitter
Share on linkedin
Czas czytania: 6 min.

Mikrokontrolery z rodziny AVR są popularne wśród hobbystów na całym świecie. Układy z tej rodziny są idealne do nauki programowania mikrokontrolerów dzięki szerokiemu wsparciu i dużej ilości materiałów szkoleniowych. Na pewnym etapie praktyki elektronicznej trafia na nie każdy.

Mikrokontroler został opracowany w 1971 roku przez firmę Intel Corporation w Stanach Zjednoczonych. Był to 4-bitowy mikrokontroler o nazwie i4004 zamówiony przez japońską firmę BUSICOM do kalkulatorów. Później zmieniono umowę i z powodzeniem był sprzedawany jako mikrokontroler ogólnego przeznaczenia. Następnie Intel Corporation opracowało 16-bitowy mikrokontroler “8086”, po 8-bitowych mikrokontrolerach takich jak “i8008”, “i8080A” i “i8085”. Z czasem 12-bitowy mikrokontroler firmy Toshiba został opracowany jako sterownik silnika samochodowego Forda. Pojawiły się kontrolery 32-bitowe. I tak to się zaczęło, stopniowo przechodząc do procesorów używanych obecnie w komputerach osobistych.

Mikrokontroler Intel 4004
4-bitowa jednostka centralna (CPU) Intel 4004 wydana w 1971 roku. Pierwszy komercyjnie produkowany mikroprocesor i pierwszy z długiej linii procesorów Intela. Widoczna biała ceramika.

Ludzie odbierają informacje za pomocą oczu i uszu, wykonują obliczenia i zapamiętują przez myślenie. Mówią i piszą używając swoich części ciała. Można powiedzieć, że to nasze mózgi i nerwy kontrolują ciała, aby zjednoczyć jego ruchy. Podobnie jak ludzie, mikrokontrolery przechowują informacje, ale wprowadzane z przełączników, klawiatur i czujników, wykonują obliczenia i wyprowadzają wyniki jako dane. Mikrokontroler musi również spełniać pięć podstawowych funkcji: wejście, obliczenia, przechowywanie, wyjście i sterowanie. Te elementy nazywane są pięcioma elementami mikrokontrolerów – trochę jak pięć ludzkich zmysłów.

Gdzie można znaleźć mikrokontrolery AVR

A co tu znaczy AVR? Automatyczny regulator napięcia (AVR) jest urządzeniem elektronicznym, które utrzymuje stały poziom napięcia w urządzeniach elektrycznych przy tym samym obciążeniu. Mikrokontrolery AVR znajdują wiele zastosowań jako systemy wbudowane. Są szczególnie powszechne w hobbystycznych i edukacyjnych aplikacjach wbudowanych, spopularyzowanych przez ich włączenie do wielu otwartych płyt rozwojowych sprzętu z linii Arduino .

Mały słownik elektronika

Lista pojęć i skrótowców niezbędna każdemu, kto operuje na mikokontrolerach AVR

  • ADC – Analog-to-Digital Converter. Przetwornik analogowo-cyfrowy.
  • AREF – Analog Reference Voltage. Napięcie, do którego odnosi się przetwornik analogowy.
  • CPU – Central Processing Unit. Jednostka centralna, procesor. 
  • DC – Direct Current. Prąd stały. 
  • DIP – Dual In-line Package. Czasem DIL: Dual-in-Line. Rodzaj obudowy dla układów scalonych i elementów elektronicznych. 
  • EEPROM, E2PROM – Electrically Erasable Programmable Read-Only Memory. Nieulotna pamięć komputerowa kasowana tylko z pomocą prądu elektrycznego. 
  • EMC – Electromagnetic Compatibility. Kompatybilność elektromagnetyczna. Zdolność urządzenia do pracy w środowisku elektromagnetycznym bez emisji zaburzeń pola elektromagnetycznego.
  • ESD – Electrostatic Discharge. ESD. Wyładowanie elektrostatyczne. Nagły i chwilowy przepływ prądu między dwoma obiektami. Przeważnie stosowany do określania niechcianych prądów mogących uszkodzić sprzęt. 
  • GND – Ground. Masa. 
  • HVPP – High-Voltage/Parallel Programmer. Programator HVPP.
  • Hz – Herz.
  • I/O – Input and Output. Wejście i wyjście układu.
  • IDE – Integrated Development Environment. Zintegrowane środowisko programistyczne, np. Arduino IDE. 
  • ISP – In-System Programming. Programowanie układu bez wyciągania układu z gniazda w urządzeniu. 
  • MCU – Microcontroller Unit. Skrótowiec od mikrokontrolera. 
  • MISO – Master In Slave Output. Linia do odbierania danych z układu peryferyjnego. 
  • MOSI – Master Out Slave Input. Linia do przesyłania danych dla układu peryferyjnego.
  • PCB – Printed Circuit Board. Płytka drukowana. 
  • PDI – Program and Debug Interface. Interfejs programowania i debugowania. 
  • RC – Filter Resistor-Capacitor Filter. Filtr RC. Rodzaj pasywnego filtra – dzielnika napięcia zależnego od częstotliwości. 
  • RST – Reset
  • SPI – Serial Peripheral Interface. Szeregowy interfejs urządzeń peryferyjnych.
  • TPI – Tiny Programming Interface. Interfejs TPI. Obsługuje zewnętrzne programowanie wszystkich pamięci nieulotnych.
  • UPDI – Unified Program and Debug Interface. Interfejs programowania i debugowania UPDI.
  • VCC – Supply Voltage. Napięcie zasilania.
  • XTAL – Crystal Oscillator. Rezonator kwarcowy. Stabilizuje częstotliwość drgań oscylatorów. 
Mikrokontrolery Atmel
Mikrokontrolery AVR - SMD i w obudowie THT

Mikrokontrolery AVR - na czym warto się skupić

Zasilanie

Zasilacz jest krytyczną częścią każdego projektu sprzętowego i ma bezpośredni wpływ na wydajność systemu. Dwa ważne aspekty, które należy rozważyć przy projektowaniu zasilania dla dyskretnych/cyfrowych elementów dyskretnych/cyfrowych urządzenia AVR to ochrona ESD i emisja szumów.

Zasilanie cyfrowe

Większość mikrokontrolerów AVR pracuje w szerokim zakresie napięć i pobiera tyle prądu zasilającego, ile wymagają podłączone do niego urządzenia. Może to sprawiać wrażenie, że zasilanie nie jest kwestią najważniejszą, ale jak w każdym układzie cyfrowym, prąd zasilania jest wartością średnią. Prąd jest pobierany w bardzo krótkich skokach. Jeśli linie I/O są przełączające, skoki będą jeszcze większe. Zależnie od rodzaju pracy, wartości i obciążenia linii I/O skoki mogą trwać nawet kilka nanosekund albo wynosić nawet kilkaset mA. Takie skoki prądu nie powinny być dostarczane przez długie linie zasilające; głównym źródłem powinien być kondensator filtrujący zakłócenia. 

Mikrokontrolery AVR ATmega w praktyce - R. Baranowski
Mikrokontrolery AVR ATtiny w praktyce - R. Baranowski

Zasilanie analogowe

Urządzenia AVR, które mają wbudowany przetwornik ADC, mogą mieć oddzielny pin analogowego napięcia zasilania, AVCC. To oddzielne napięcie zasilania zapewnia, że obwody analogowe są mniej podatne na szumy cyfrowe, które pochodzą z przełączania układów cyfrowych. Kondensator powinien znajdować się możliwie jak najbliżej pinów zasilających sekcje mikrokontrolera. Aby poprawić dokładność przetwornika ADC, analogowe napięcie zasilające musi być oddzielnie odsprzęgnięte, podobnie jak cyfrowe napięcie zasilania. AREF również musi być odsprzężone. Typowa wartość kondensatora wynosi 100 nF. Jeśli obecna jest oddzielna masa analogowa (AGND), masa analogowa powinna być oddzielona od masy cyfrowej, tak aby masa analogowa i masa cyfrowa były oddzielone. cyfrowego, tak aby masa analogowa i cyfrowa były połączone tylko w jednym punkcie (na zasilaniu GND).

Montaż THT, montaż SMD / SMT

Dwie metody montażu, SMD i THT, różnią się zasadniczo. Czasami zamiennie stosuje się określenie montaż powierzchniowy SMT (surface mount devices / surface mount technology).

Montaż powierzchniowy polega na automatycznym umieszczaniu komponentów na powierzchni płytki po nałożeniu pasty lutowniczej za pomocą szablonu. W wariancie przemysłowym tak przygotowana płytka trafia do pieca, a cały proces produkcyjny zakończony jest kontrolą. Kluczową rolę odgrywa tutaj precyzja maszyny. Montaż SMD, dzięki niewielkim rozmiarom komponentów, zapewnia większą wytrzymałość mechaniczną układu i odporność na wstrząsy czy wibracje, natomiast w samym procesie produkcji wymagana jest ochrona ESD, ponieważ komponenty są wrażliwe na wyładowania elektrostatyczne. To pełnoprawna “technologia produkcyjna”, więc do własnych działań w montażu powierzchniowym trzeba nieco wprawy z lutowaniem. Potrzebny jest dobry topnik w paście, nałożenie go na płytkę PCB, następnie nałożenie na tak przygotowany preparat układu i rozgrzana cyna. To zdecydowanie szybsze niż lutowanie przewlekane, o ile stosujemy układy scalone. W przypadku wielu elementów jak różne rezystory i kondensatory to już sprawa bardziej skomplikowana. 

Układ scalony z mikrokontolerem

Montaż THT (z ang. Through-Hole Technology, dosłownie: przez dziurę) to natomiast montaż przewlekany. Elementy umieszcza się w przygotowanych otworach i przylutowuje po drugiej stronie albo zalewając cyną obie strony lutowniczego otworu w przypadku płytki dwuwarstwowej. Tutaj również zakłada się montaż zautomatyzowany z udziałem maszyny oraz lutowanie natryskowe z udziałem dysz i roztopionej cyny. W przypadku robienia tego własnoręcznie, w porównaniu do SMD / SMT to montaż zdecydowanie bardziej czasochłonny, ale łatwiejszy w serwisowaniu niż SMD i przez to zalecany w początkowych projektach. 

Podłączenia pinu RST na urządzeniach AVR

Pin RESET na urządzeniu AVR jest aktywny-niski, a ustawienie go w stan niski z zewnątrz spowoduje zresetowanie urządzenia. Reset ma dwa cele:

  • zwolnienie linii, inicjalizację rejestrów I/O i wyzerowanie licznika programu (PC),
  • wejście w tryb programowania.

Wartość rezystora podciągającego, który musi być stosowany w przypadku konkretnych urządzeń oraz bardziej szczegółowe informacje na temat pinu RESET i jego działania można znaleźć w odpowiednich arkuszach danych urządzenia. Zazwyczaj w AVR odpowiednim rezystorem jest 4,7 lub 10 kOhm.

Podłączenie linii programatora/debuggera

Mikrokontrolery AVR posiadają jeden lub więcej interfejsów do programowania lub debugowania. In-System Programming (ISP) jest interfejsem programowania używanym do programowania pamięci Flash, EEPROM, Lock i Fuse w prawie wszystkich urządzeniach AVR. Fuse w prawie wszystkich urządzeniach AVR. Ta funkcja umożliwia zaprogramowanie mikrokontrolera AVR w ostatnim etapie produkcji docelowej płytki aplikacyjnej, przeprogramowanie go, jeśli błędy zostaną wykryte późno w procesie lub aktualizację urządzenia AVR. Niektóre interfejsy ISP mogą być również używane do debugowania onchip. Logiczną konsekwencją jest to, że zaleca się zaprojektowanie docelowej płytki aplikacyjnej w taki sposób, aby złącza ISP były łatwo dostępne – to częsty argument wśród wymienianych atutów danego układu. Takie debugowanie to jednak rzadkość, a w AVR zdecydowanie łatwiej debuguje się przy pomocy wyjść portu szeregowego (RX, TX). Kwestia dostępności pinów to nie cecha konkretnych mikrokontrolerów, a bardziej kwestia tego, jak zaprojektuje się konkretną płytkę PCB.

Interfejs SPI

Serial Peripheral Interface (SPI) jest magistralą interfejsu używaną do przesyłania danych pomiędzy mikrokontrolerami i małymi urządzeniami peryferyjnymi, takimi jak rejestry przesuwne, czujniki i karty SD. Wykorzystuje ona oddzielne linie zegara i danych, wraz z linią selekcyjną do wyboru urządzenia, z którym chcemy się “skomunikować”. W urządzeniach, które używają Serial Peripheral Interface (SPI) dla ISP, linie te są zwykle umieszczone na tych samych pinach, co zwykły SPI lub na pinach, które mogą być użyte do innych celów. W arkuszu danych urządzenia aby ustalić, które piny są używane do ISP. Nieco wbrew nagłówkowi: często zamiast z SPI do łączenia z zewnętrznymi peryferiami korzysta się z interfejsów I2C i UART. 

Którędy podążyć?

Każdy elektronik i maker na którymś etapie ścieżki swojego rozwoju zwróci wzrok w kierunku mikrokontrolerów AVR. Będzie chciał wykorzystać je w swoich projektach o rosnącym skomplikowaniu, i tak samo na pewnym etapie zabraknie mu wiedzy. Wielu zwraca się wówczas do for społecznościowych, gdzie i być może można odnaleźć sporo praktycznych porad, ale wiele informacji pozostaje tam zdezorganizowanych, z niepewnego źródła albo niepełnych. Warto wówczas zwrócić się po fachowe poradniki ze wsparciem praktycznym. To również doskonały sposób na usystematyzowanie zdobytej wiedzy.

Ilustrowane podręczniki zawierają pozycje rodzime, jak i napisane przez zagranicznych inżynierów. Wszystkie zostały opatrzone precyzyjnymi tłumaczeniami w przystępnym języku. To niemal 30 fachowych pozycji w ofercie. Wiele z nich dotyczy platform Arduino, Raspberry Pi, szeroko rozumianego programowania czy mikrokontrolerów STM32

Książki o mikrokontrolerach AVR i programowaniu
Książki o mikrokontrolerach

Podziel się:

Share on facebook
Share on linkedin
Share on twitter
Oskar Pacelt

Oskar Pacelt

Autor i redaktor ponad 200 wpisów na Botland Blog. Wierzy, że udany tekst jest jak list wysłany w przyszłość. W życiu najbardziej interesuje go prawda, pozostałych zainteresowań zliczyć nie sposób. Zajmuje się ciekawostkami ze świata technologii i nauki. Najlepszy pływak w Botland.

Zobacz więcej:

Dodaj komentarz