Tutaj znajdują się informacje na temat mikrokontrolerów AVR (ATmega, ATtiny). Zamiast całej kosztownej płytki Arduino można do swoich projektów wykorzystać jeden z wielu dostępnych mikrokontrolerów z rodziny AVR, które mogą działać samodzielnie i wykonywać różne zadania. Poszczególne modele mikrokontrolerów ATmega mogą posiadać różną ilość wyjść i wejść, ilość pamięci flash, RAM i EEPROM. Mikrokontrolery ATtiny znakomicie nadają się do mniej skomplikowanych projektów, w których mamy zamiar wykorzystać jedynie jedno lub maksymalnie cztery wyjścia mikrokontrolera.

Mikrokontrolery ATmega

◾️ ATmega 88
◾️ ATmega 168
◾️ ATmega 328

Mikrokontrolery ATtiny

◾️ ATtiny 10
◾️
ATtiny 25/45/85
◾️ ATtiny 2313

Programatory do AVR ATmega i ATtiny

◾️ USB ASP
◾️ USB TTL konwerter Profili PL303HX
◾️ USB TTL konwerter CH340
◾️ USB FTDI 232
◾️ Arduino ISP

Jak programować mikrokontrolery ATtiny, Atmega w Arduino IDE

Aby programować dowolne mikrokontrolery AVR i nie tylko w środowisku Arduino IDE należy skonfigurować menadżera płytek do niestandardowych mikrokontrolerów np. ATtiny, których standardowo Arduino IDE nie obsługuje. Pierwszą czynnością jaką trzeba wykonać to kliknięcie w menu Plik otwarcie okna Preferencje i wpisanie w polu Dodatkowe adresy URL do menadżera płytek linku: https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json i wciśnięciu przycisku OK. Jeśli adresów w tym polu jest więcej należy oddzielić je przecinkami.

W przypadku gdy chcemy korzystać z osobnych układów Atmega jako dodatkowy adres należy dodać następujący link https://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json i jeśli adresów w tym polu jest więcej należy oddzielić je przecinkami.

Następnie należy zainstalować odpowiednią płytkę z menu Narzędzia dalej Płytka oraz Menadżer płytek, a w polu u góry należy wpisać ATtiny po czym poniżej powinny wyświetlić się wyniki wyszukiwania z widoczną płytka o nazwie attiny. Należy wybrać najnowszą dostępną wersję i wcisnąć przycisk Instaluj, a po instalacji zamknąć okno przyciskiem Zamknij.

Jeśli chcemy dodać możliwość programowania mikrokontrolerów Atmega w polu u góry należy wpisać microcore po czym poniżej powinny wyświetlić się wyniki wyszukiwania z widoczną płytka o nazwie MiniCore i dostępnymi układami Atmega. Należy wybrać najnowszą dostępną wersję i wcisnąć przycisk Instaluj, a po instalacji zamknąć okno przyciskiem Zamknij.

Po instalacji płytki w menu Narzędzia, a następnie Płytka dostępna jest nowa pozycja ATtiny Microcontrolers. Należy wybrać tam interesujący nas mikrokontroler i wybrać odpowiednią opcję z pozycji Clock czyli właściwą częstotliwość taktowania zależną od tego czy posiadamy podłączony do naszego mikrokontrolera dodatkowy oscylator kwarcowy czy nie. Jeśli takiego nie posiadamy mamy do wyboru częstotliwości pracy 1, 8 i 16MHz oznaczone jako Intrenal oraz możliwość korzystania z wszystkich dostępnych pinów lub 8, 16 i 20MHz jeśli korzystamy z zewnętrznego oscylatora taktującego nasz mikrokontroler oznaczone w opcjach jako Externel ale za to tracimy możliwość korzystania z pinów D3 i D4, do których podłącza się oscylator.

W przypadku programowania mikrokontrolerów ATmega klikamy w menu Narzędzia, potem Płytka, a następnie pozycja MiniCore pod którą kryją się różne mikrokontrolery ATmega. Z listy wybieramy interesujący nas mikrokontroler, a następnie wybieramy przynajmniej częstotliwość taktowania, najlepiej, którąś pozycję z nazwą Internal chyba, że posiadamy dodatkowy oscylator kwarcowy to wtedy wybieramy External.

UWAGA:

Przy pierwszym użyciu fabrycznie nowego mikrokontrolera ATtiny, ATmega lub przy zmianie częstotliwości taktowania tego układu w opcjach Arduino IDE należy jednokrotnie użyć opcji Wypal bootloader z menu Narzędzia w Arduino IDE.

Wybranie, którejkolwiek opcji taktowania Clock z dopiskiem External czyli przy użyciu zewnętrznego oscylatora kwarcowego i użyciu opcji Wypal bootloader powoduje, że układ będzie ustawiony do działania tylko i wyłącznie z podłączonym oscylatorem do pinów XTAL1 i XTAL2. Brak tego oscylatora uniemożliwi jego działanie, a tym samym dalsze programowanie tego mikrokontrolera.

Programowanie samodzielnych układów ATtiny ma jeszcze kilka innych niedogodności w porównaniu z płytkami Arduino pomijając małą ilość pinów, RAMu i pamięci na program, a także brak sprzętowego portu szeregowego takich jak np. używanie innych bibliotek w przypadku komunikacji za pomocą magistrali I2C zamiast standardowej biblioteki Wire.h należy korzystać z bibliotek TinyWireM i TinyWireS. Podłączenie opisywanego w innym dziale ekranu tekstowego LCD na magistrali I2C do ATtiny jest również możliwe ale tylko do mikrokontrolera największą ilością pamięci oraz stosując zmodyfikowaną bibliotekę ekranu LiquidCrystal_I2C_85.

Żeby zaprogramować samodzielnie mikrokontroler ATtiny, ATmega potrzebujemy jeszcze odpowiedniego programatora jednego ze sprzętowych programatorów podanych w sekcji Programatory do AVR Atmega i ATtiny lub korzystając po prostu z dostępnej pod ręką płytki Arduino. Każdą płytkę Arduino posiadającą port USB możemy zamienić w programator innych płytek i mikrokontrolerów AVR wgrywając na płytkę program znajdujący się w przykładach o nazwie ArduinoISP.

Podłączenie przykładowego mikrokontrolera ATtiny do programatora skonstruowanego z Arduino wygląda jak na rysunku poniżej.

ATtiny -> ArduinoISP
D0 -> 11
D1 -> 12
D2 -> 13
RESET -> 10

Dodatkowo będzie potrzebny kondensator elektrolityczny wpięty biegunem ujemnym do masy GND oraz drugą nóżką do pinu RESET w ArduinoISP.

Podłączenie przykładowego mikrokontrolera ATmega do programatora skonstruowanego z Arduino wygląda jak na rysunku poniżej.

ATmega -> ArduinoISP
D
11 -> 11
D12 -> 12
D
13 -> 13
RESET -> 10

Dodatkowo będzie potrzebny kondensator elektrolityczny wpięty biegunem ujemnym do masy GND oraz drugą nóżką do pinu RESET w ArduinoISP.

Ostatnim krokiem jest tylko w menu Narzędzia wybranie programatora o nazwie ArduinoISP i aktualnego portu COM pod, którym widoczne jest nasze Arduino w systemie. Dalej to już samo programowanie naszego właściwego mikrokontrolera AVR np. ATtiny używając standardowych opcji pisania programu, kompilacji, wgrywania oraz wypalania bootloadera.

Inne sprzętowe programatory do wgrywania programu na mikrokonktrolery AVR mogą wymagać używania opcji z menu Szkic o nazwie Wgraj używając programatora.