[059] ATtiny praktycznie

[059] ATtiny praktycznie

Jak chyba wszyscy wiemy, Arduino to nie jest żadna tajemnicza konstrukcja, a cała rodzina mikrokontrolerów ogólnego przeznaczenia, którą potraktowano według pewnych prawideł co do oprogramowania i schematu połączeń. Standardów montażowych płytek mamy już sporo i historycznie pierwszym jest Uno. Ale tak naprawdę do szczęścia wcale nie jest potrzebna płytka, żeby było Arduino wystarczy sam mikrokontroler.


Musi on spełniać pewne minimalne warunki… No właśnie, czy musi? Nie ma takiego obowiązku i jak tylko postało środowisko, zaadaptowano dlań mikrokontrolery o zasobach ograniczonych względem oficjalnych wymagań. Po co? Z różnych powodów, ze względu na cenę, wymiary, układy posiadane z zapasów lub z odzysku.

Z doświadczenia wiemy, że znakomita większość projektów nie wykorzystuje ani wszystkich pinów, ani całej pamięci dostępnej dla platformy minimum, czyli obecnie ATmega328. Przypomnę, układ ten dysponuje pamięcią FLASH w ilości 32 kB, 2 kB RAM-u i kilobajtem EEPROM-u. Do tego oferuje 23 porty, z czego Arduino powala bawić się dwudziestoma. Na pokładzie znajduje się też pewna liczba liczników, generatorów, przetworników i interfejsów. Mikrokontrolery, które mają co najmniej takie zasoby, pozwolą na zbudowanie klona Arduino w pełni z nim kompatybilnego. A co w wypadku użycia układów ograniczonych?

W takiej sytuacji przyporządkowuje się standardowi to co jest, a czego nie ma – tego używać nie można. Gdybyśmy zadeklarowali jakiś nieistniejący pin, podczas kompilacji wyskoczy błąd. Należy wówczas albo zmienić program, wykorzystując to co jest dostępne, albo zmienić kontroler. Zakładając jednak, że świadomie użyjemy ograniczonej platformy, możemy cieszyć się pracującym urządzeniem za pieniądze mniejsze albo mniejszego fizycznie, abo zbudowanego z zapasów czy wręcz z części z odzysku. Czas zatem na przedstawienie klasyków małych Arduino.

Tutaj oczywiście będzie w czym wybierać aż zadość, więc ograniczyłem się do rodziny Tiny. To mikrokontrolery Atmela, a obecnie Microchipa, które są okrojoną wersją ośmiobitowej serii AVR. Ograniczenia mogą być nieznaczne albo bardzo duże, a niektóre z układów, mimo uniwersalności są przeznaczone dla konkretnych zastosowań, na przykład w branży motoryzacyjnej albo do sterowania silnikami elektrycznymi. W poniższym zestawieniu pozwoliłem sobie na prezentację najczęściej spotykanych układów wraz z komentarzem, zaczynając od „kontrolera odniesienia”, czyli standardu serii Uno, Nano, Mini i pochodnych.

  • ATMega 328P

  • Pamięć FLASH: 32 kB

  • Pamięć RAM: 2 kB

  • Pamięć EEPROM: 1 kB

  • 23 linie wejścia/wyjścia (w Uno dostępnych 20)

  • 6/8 kanałów A/D 10 bit (w zależności od obudowy)

  • Napięcie zasilania: 2,7 - 5,5 V

  • Dostępny w obudowie DIP

Najmniejszym z układów jest seria 25, 45 i 85. Układy mają tylko 8 nóżek, oferując sześć pinów, ograniczoną ilość zasobów i skromną wielkość pamięci: odpowiednio 2, 4 i 8 kB. RAM-u też jest odrobina: 128, 256 bądź 512 bajtów. Mimo to układ zrobił karierę jako semistandard.

  • ATtiny 25/45/85

  • Pamięć FLASH: 2/4/8 kB

  • Pamięć RAM: 128/256/512 B

  • Pamięć EEPROM: 128/256/512 B

  • 6 linii wejścia/wyjścia

  • 4 kanały A/D 10 bit

  • Napięcie zasilania: 2,7 - 5,5 V

  • Dostępny w obudowie DIP

Rozwinięciem serii do dwunastopinowej jest ta, która w nazwie ma czwórki zamiast piątek. Bardzo dobry wybór tam, gdzie kilka pinów to za mało.

  • ATtiny 24/44/84

  • Pamięć FLASH: 2/4/8 kB

  • Pamięć RAM: 128/256/512 B

  • Pamięć EEPROM: 128/256/512 B

  • 12 linii wejścia/wyjścia

  • 8 kanałów A/D 10 bit

  • Napięcie zasilania: 2,7 - 5,5 V

  • Dostępny w obudowie DIP

Powyższe rodziny są chyba najtańsze. Kolejne będą odrobinę droższe i zwykle nie są już dostępne w wygodnych w zastosowaniach amatorskich obudowach do montażu przewlekanego. 441 i 841 to unowocześniona wersja poprzedniej, o większej uniwersalności pinów.

  • ATtiny 441/841

  • Pamięć FLASH: 4/8 kB

  • Pamięć RAM: 256/512 B

  • Pamięć EEPROM: 256/512 B

  • 12 linii wejścia/wyjścia

  • 12 kanałów A/D 10 bit

  • Napięcie zasilania: 1,7 - 5,5 V

1634 posiada 18 pinów i 16 kB pamięci, więc układ jest bliski oryginalnemu 328

  • ATtiny 1634

  • Pamięć FLASH: 16 kB

  • Pamięć RAM: 1 kB

  • Pamięć EEPROM: 256 B

  • 18 linii wejścia/wyjścia

  • 12 kanałów A/D 10 bit

  • Napięcie zasilania: 1,8 - 5,5 V

87 i 167 to rodzina podobnej klasy, ale przeznaczona dla przemysłu samochodowego.

  • ATtiny 87/167

  • Pamięć FLASH: 8/16 kB

  • Pamięć RAM: 512 B

  • Pamięć EEPROM: 512 B

  • 16 linii wejścia/wyjścia

  • 11 kanałów A/D 10 bit

  • Napięcie zasilania: 1,8 - 5,5 V

Sześćdziesiątki jedynki znowu są przeznaczone dla sterowań silnikami BLDC. Mamy 15 pinów i skromniejsze zasoby.

  • ATtiny 261/461/861

  • Pamięć FLASH: 2/4/8 kB

  • Pamięć RAM: 128/256/512 B

  • Pamięć EEPROM: 128/256/512 B

  • 16 linii wejścia/wyjścia

  • 11 kanałów A/D 10 bit

  • Napięcie zasilania: 2,7 - 5,5 V

  • Dostępny w obudowie DIP

48 i 88 to „duże tiny”, z aż 28 pinami, lecz skromnymi zasobami pamięci, jak na tę ilość wejść/wyjść. Bywają zastosowania, gdzie pinów trzeba dużo, ale już sterowanie nimi jest proste i te tanie układy przydadzą się tam.

  • ATtiny 48/88

  • Pamięć FLASH: 4/8 kB

  • Pamięć RAM: 256/512 B

  • Pamięć EEPROM: 64 B

  • 24/28 linii wejścia/wyjścia (w zależności od obudowy)

  • 6/8 kanałów A/D 10 bit (w zależności od obudowy)

  • Napięcie zasilania: 1,8 - 5,5 V

Na koniec w zestaw wrzucę układ 43U, ciekawy o tyle, że z wbudowaną przetwornicą napięcia, pozwalającą pracować mu już od 700 mV. Jeden wyczerpany paluszek wystarczy, by zbudować urządzenie korzystające z 16 pinów, a do tego jeszcze dostaniemy w gratisie 30 mA przetworzonego napięcia dla własnych celów.

  • ATtiny 43U

  • Pamięć FLASH: 4 kB

  • Pamięć RAM: 256 B

  • Pamięć EEPROM: 64 B

  • 16 linii wejścia/wyjścia

  • 4 kanały A/D 10 bit

  • Napięcie zasilania: 0,7 - 1,8 - 5,5 V

I jeszcze jeden układ, który jest już raczej układem historycznym, ale z racji powszechności użycia, dostępnym nieraz za grosze z odzysku. Trzeba jednak pamiętać, że nie ma on przetworników analogowo-cyfrowych.

  • ATtiny 2313

  • Pamięć FLASH: 2 kB

  • Pamięć RAM: 128 B

  • Pamięć EEPROM: 128 B

  • 18 linii wejścia/wyjścia

  • Napięcie zasilania: 2,7 - 5,5 V

  • Dostępny w obudowie DIP

To oczywiście tylko fragment oferty rynku. Do celów arduinowych można przystosować nawet niektóre stare, ograniczone, a popularne niegdyś układy, jeśli będziemy potrzebować tylko migać diodami albo robić coś równie prostego. Weźmy teraz dwie kostki z początku zestawienia i zobaczmy jak się je programuje.

Sposobów jest wiele, ja zaprezentuję oryginalny. Do programowania małego Arduino użyjemy dużego Arduino, czyli wersji Uno, która tym razem nie będzie elementem docelowym, a tylko sprytnym interfejsem. Wykorzystam płytkę edukacyjną TME, ponieważ mam tu wygodny dostęp do portów. Na płytce uniwersalnej osadzę na początek najmniejsze tiny, czyli to z numerkiem 25 i połączę go w sposób tu widoczny, odpowiednio:

  • port 10 – nóżka 1

  • port 11 – nóżka 5

  • port12 – nóżka 6

  • port 13 – nóżka 7

  • 5 woltów - nóżka 8

  • masa - nóżka 4

Potrzeba będzie zatem sześciu przewodów i cały schemat jest tu wyjątkowo prosty.

Odpalamy Arduino IDE i w preferencjach dodajemy widoczny tu adres do narzędzi, które umożliwią nam stworzenie programatora z Uno.

Możemy też ściągnąć źródła i wrzucić je w zawiłą ścieżkę, którą widzimy teraz na górze.

W menedżerze płytek należy odnaleźć bibliotekę, którą widzimy i zainstalować ją.

W zestawieniu dostaniemy sterowniki, które należy potraktować jak typowe sterowniki systemowe, zgadzając się dwukrotnie na ich instalację, mimo braku możliwości ich zweryfikowania. Dlatego też tryb admina będzie niezbędny.

Teraz czas na nauczenie Arduino Uno bycia programatorem. Szkic odnajdziemy w przykładach jako ArduinoISP i programujemy nim nasze Uno.

Gotowe. Należy wybrać nasz układ wpięty w płytkę uniwersalną.

Następnie wybieramy typ programatora, czyli świeżo zaprogramowane Uno.

No i jeszcze trzeba wskazać konkretny układ z rodziny, czyli najsłabszą dwudziestkę piątkę, bo taką wstawiłem w płytkę.

Ostatnim etapem przygotowania małego Arduino jest ustawienie odpowiednich bitów trybu pracy, co opisane jest komendą Wypal Bootloarder’a

Oto małe Arduino jest już gotowe do pracy. W kolejnym artykule napiszemy jakiś użyteczny dla takiego maluszka program.

Powiązane tematy

Płytka edukacyjna TME-EDU-ARD-2Płytka edukacyjna TME-EDU-ARD-2Sprawdź tutaj

Przeczytaj również

Nasi partnerzy

TMETech Master EventTME EducationPoweredby
Copyright © 2024 arduino.pl