Attiny 2313 i Arduino IDE

Wiem, że był już jeden opis jak zacząć programować Attiny. Brakowało mu jednak znajomego środowiska Arduino IDE, sprawdzonych i dobrze znanych komend i prostoty kompilacji. Czyli tego, za co kochamy Arduino!

Okazuje się, że nie tylko mnie to bolało. Grupa ludzi wyprodukowała „plugin” do Arduino IDE, który oferuje w miarę prosty sposób przejścia ze starej dobrej, ale często aż za dużej Atmegi na Attiny. Poniżej postaram się najjaśniej jak potrafię opisać cały proces.

Po pierwsze! Działam na Arduino IDE 1.04. Z notatek znalezionych w internecie wynika, że podany niżej sposób NIE działa na wersji 1.02, więc upewnij się, na czym pracujesz.

Przede wszystkim plugin: trzeba go pobrać z tego miejsca. Następnie musisz znaleźć katalog, w którym Arduino zapisuje tworzone przez Ciebie projekty. U mnie to:  C:\Users\Marcin\Documents\Arduino\ (Windows 7). Tam utwórz katalog o nazwie: hardware (o ile go nie ma). Kolejnym krokiem jest wypakowanie wcześniej ściągniętego archiwum do katalogu hardware (wystarczy sam folder tiny. Folder Tools jest niepotrzebny) ostatecznie ścieżka powinna wyglądać mniej więcej tak: C:\Users\Marcin\Documents\Arduino\hardware\tiny

Nowe układy w Arduino IDE
Lista nowych układów w Arduino IDE

Kolejna rzecz to odpalenie Arduino IDE i sprawdzenie, czy wszystko zrobiliśmy dobrze. W zakładce Narzędzia -> Płytka powinieneś mieć teraz listę powiększoną o dość pokaźną rodzinę Attiny (tak jak na screenie). Nie zmieniaj jednak jeszcze ustawień.

Teraz musisz załadować projekt ArduinoISP (jest on dostępny w Plik -> Przykłady ->ArduinoISP). ArduinoISP to program, który przekształca twoją płytkę w programator bez konieczności wyciągania kości Atmegi, czy podłączania dodatkowych elementów. Poza potwierdzeniem płynącym z kompilatora, możesz dodatkowo podłączyć diodę do pinu 9-tego na Arduino (przez rezystor!). Dioda powinna rytmicznie pulsować. To sygnał, że Twoje arduino jest już gotowe do programowania innych!

Kolejny krok to połączenie Twojego Arduino (teraz jest programatorem) z Attiny (Ja posiadam Attiny2313 i takie tu też

Opis wyprowadzeń ATtiny
Opis wyprowadzeń ATtiny

opiszę, ale sposób powinien się sprawdzać dla innych mikrokontrolerów wymienionych na liście) Szybki rzut okiem w kartę techniczną 2313 i już wiesz co z czym połączyć:

Arduino (nr pinu)

Attiny2313 (nr pinu)

10

1

11

17

12

18

13

19

5V

20

GND

10

Ostatnia rzecz: Zmień ustawienia Narzędzia -> Płytka na posiadaną przez Ciebie płytkę (w moim przypadku Attiny2313 @8MHz. Teraz zmień Narzędzia -> Programator -> Arduino as ISP wybierz ponownie Narzędzia -> wypal bootloader i GOTOWE!

Opcja „wypal bootloader” tak naprawdę nie wgrywa żadnego kodu na Attiny, więc nie musisz się martwić, że ta operacja uszczupli i tak niewielkie zasoby pamięci. Ustawia ona tylko FuseBity, o których wspomnę w kolejnych artykułach.

UWAGA! W anglojęzycznych opisach znalazłem informacje, że powinno się podłączyć kondensator elektrolityczny 10 mikroF między RESET a GROUND na płytce Arduino. Ja jednak pominąłem ten krok i zdaje się nie mieć to wpływu na funkcjonowanie całości.

Żeby wszystko sprawdzić otwórz przykład Basis -> blink, zmień wartość zmiennej led na 1 i podłącz przez rezystor diodę do pinu nr 3 swojego Attiny 2313.

Masz przyjazne środowisko, łatwość kompilacji, programowania i dobrze znane Ci intuicyjne komendy!

Żeby dodać troszkę dziegciu do tej pięknej beczki miodu, to jestem zmuszony wspomnieć, że nie wszystkie komendy z Arduino IDE będą działać :/ Te najważniejsze jednak pozostają bez zmian! (oczywiście operatory typu if, case, for itp. pozostają bez zmian. tak samo jak zmienne boolean, byte, int, long, itp.)

Oto lista dostępnych komend:

 

pinMode()

digitalWrite()

digitalRead()

shiftOut()

pulseIn()

millis()

micros()

delay()

delayMicroseconds()

Dodatkowo są jeszcze AnalogRead i AnalogWrite, ale akurat Attiny2313 nie ma pinów z ADC. (Za to Attiny 45 i 85 jak narbardziej i tam te funkcje się przydadzą)

Jeśli Chcesz wrócić do programowania Arduino musisz zmienić:

  1. Narzędzia – > Płytka -> Arduino Uno
  2. Narzędzia -> Programator -> AVRISP mk ||

Jeśli potem znowu chcesz programować Attiny:

  1. Ładujesz: ArduinoISP do swojego Arduino
  2. Zmieniasz: Narzędzia -> Płytka –> Attiny2313
  3. Zmieniasz Narzędzia -> Programator -> Arduino as ISP

Prawda, że proste?

Pozostaje pytanie: Po co mi to?! Odpowiedź staje się oczywista, jeśli dodam wisienkę na torcie w postaci obsługi I2C (TWI) przez Attiny 2313. To oznacza, że po podłączeniu odpowiedniego źródła prądowego mamy olbrzymią ilość wejść/wyjść/PWM i nie tylko. Jeśli nie przychodzą Ci do głowy żadne praktyczne zastosowania takiego cudeńka, to poczekaj do następnego odcinka!

Do przetestowania tego opisu potrzebne Ci będą:

  1. Arduino Uno (lub kompatybilne) najlepiej Starter Kit bo zapewnia dostateczną ilość kabelków, diod, i płytkę prototypową.
  2. Attiny2313 – Wiadomo, na czymś trzeba prowadzić testy.