Przykłady korzystania z nowych mikrokontrolerów ATtiny1614 z Arduino IDE

Przykłady korzystania z nowych mikrokontrolerów ATtiny1614 z Arduino IDEr_205_18_1_1

Korzystanie z nowych mikrokontrolerów ATtiny z Arduino IDE
r_205_18_1
Użyj najnowszych procesorów ATtiny w środowisku Arduino. Mają pojemność pamięci układów ATmega w mniejszych i tańszych obudowach.
Rzeczy wykorzystane w tym projekcie
Elementy sprzętowe:
Microchip ATTiny1614, 14-pinowy pakiet SOIC × 1
Rezystor 4K7 1/4 W × 1
Kondensator 10µF × 1
Arduino Nano R3 × 1
Aplikacje i usługi online: Arduino IDE
Zestaw prototypowy, płytka breadboard
r_205_18_3r_205_18_2

Być może znasz serię mikroprocesorów ATtiny firmy Microchip, takich jak ATtiny85 lub ATtiny2313.
Te układy zasilały małe systemy, takie jak seria Digispark. Niestety miały ograniczoną pamięć Flash (zwykle nie więcej niż 8K) i jeszcze bardziej ograniczoną pamięć RAM (zwykle mniej niż 1K).
Teraz dostępna jest nowa seria układów ATtiny z większą pamięcią i funkcjonalnością.
Konkurują nawet z droższą i większą gamą układów ATmega. ATtiny1614, na który będę patrzył, ma 16KB pamięci Flash i 2KB RAM w 14-pinowej obudowie SOIC (rysunek 1).
r_205_18_5r_205_18_6

Korzystanie z płyty breadboard

Jednym z problemów z eksperymentowaniem z tymi nowymi układami jest to, że nadają sie one tylko, jako urządzenia do montażu powierzchniowego (SMD).
Utrudnia to używanie na płytce breadboard.
Zrobiłem prostą płytkę adaptera, która pozwala na użycie układu ATtiny1614 jako standardowego urządzenia Dual-In-Line (DIL) (rysunek 2).
Pliki programu Eagle zostały dołączone, jeśli chcesz kupić płytkę adaptera w celach komercyjnych lub możesz zrobić to sam (Rysunek 3).

Zrobiłem mój metodą Toner.

Uwaga: Układ pinów DIL różni się od układu pinów SMD.
Zrobiłem to celowo, aby móc zastosować jednostronną płytkę drukowaną i zachować szerokość 0,3.
Piny UPDI/RESET, VCC i GND mają tam osobne złącze, dzięki czemu można podłączyć programator do płytki, nawet jeśli adapter został wlutowany w inną płytkę drukowaną.
Programowanie nowych procesorów ATtiny
Jedną z największych zmian w tych procesorach jest sposób ich programowania.
Używają systemu o nazwie Unified Program and Debug Interface (w skrócie UPDI).
Ten interfejs wykorzystuje pin RESET do programowania i/lub debugowania urządzenia.
W tym samouczku będę używać Arduino Nano do wysyłania prawidłowych sygnałów do pinu UPDI/RESET (Rysunek 4).
Po zaprogramowaniu procesora, Arduino Nano nie jest już wymagany.

Krok 1: Konfiguracja Arduino jako programatora
Rozpakuj dołączony plik „SpenceKonde – jtag2updi.zip” do folderu programu Arduino i zaprogramuj Arduino Nano.
Uwaga: Nie ma problemu, że plik jtag2updi.ino jest pusty, ponieważ rzeczywisty kod znajduje się w innych plikach.
Aby zatrzymać nadpisywanie szkicu Arduino podczas programowania ATtiny, musisz wyłączyć linię RESET na Arduino.
Robisz to, dodając kondensator 10 uF między RESETEM a GND.
Krótki impuls resetu spowoduje zresetowanie mikrokontrolera ATtiny, a nie Arduino.
Nadal możesz zresetować Arduino, przytrzymując przycisk RESET przez dłuższy czas.
Podłącz rezystor 4K7 między D6 na Arduino a pinem RESET/UPDI na mikrokontrolerze ATtiny, jak pokazano na schemacie powyżej.
Dodaj również połączenia +5V i GND z Arduino Nano, aby zasilić mikrokontroler ATtiny.

Krok 2: Instalacja megaTinyCore w środowisku Arduino IDE
Ten pakiet płytek można zainstalować za pomocą menedżera płytek.
Adres URL menedżera płytek to:
http://drazzy.com/package_drazzy.com_index.json
r_205_18_7r_205_18_8

Plik -> Preferencje, wprowadź powyższy adres URL w polu „Additional Boards Manager URLs”
Tools -> Boards -> Boards Manager…
Select „megaTinyCore by Spence Konde” and click „Install”.

Krok 3: Wybierz programator
Po zainstalowaniu płyty w IDE, wybierz ją z menu Narzędzia (Rysunek 5).
Upewnij się, że wybierasz Chip, który zamierzasz zaprogramować.
Również biblioteki, takie jak Adafruit Neopixel Library, nie będą działać na zegarze 20MHz, więc może być konieczne przywrócenie prędkości zegara do 16MHz lub 8MHz, jeśli używasz układu z zasilacza 3V3.
Programator musi być ustawiony na jtag2updi (megaTinyCore).
Mapowanie pinów i Arduino IDE
Aby uzyskać dostęp do fizycznych pinów we/wy w Arduino IDE za pomocą digitalRead, digitalWrite, analogRead lub analogWrite, użyj powyższej mapy pinów, aby określić numer pinów do użycia (Rysunek 6).
Uwaga: W przeciwieństwie do ATmega328, nowe procesory ATtiny nie mają oddzielnych pinów analogowych. To, czy pin jest analogowy czy cyfrowy, zależy od funkcji używanej do uzyskania dostępu.
Przykład z miganiem diody LED
Aby przetestować programator, podłącz diodę LED i rezystor 470Ω między pin 2 (PA4) ATtiny1614 i +5V (rysunek 7).
Otwórz plik Blink_ATTiny1614.ino w Arduino IDE i wybierz „Prześlij za pomocą programatora” z menu Szkic.
Zignoruj komunikat o błędzie „avrdude: jtagmkII_initialize (): Nie można znaleźć w opisie pamięci„ flash ”i„ boot ”.
Dioda LED powinna zacząć migać (rysunek 8).
r_205_18_9
Uwaga: Pin fizyczny 2 (PA4) to D0 w Arduino IDE
Przykład zmiany kolorów diody RGB LED
W tym przykładzie użyję biblioteki Adafruit Neopixel do sterowania WS2812B prowadzonego za pomocą potencjometru (rys. 9).
(Użyłem potencjometru 10k, ale w tym przypadku zadziała dowolna wartość od 1k do 100kΩ.)
Wniosek
Dzięki dodatkowej pamięci Flash i statycznej pamięci RAM wbudowanej w nowe procesory ATtiny, nie wspominając już o nowych funkcjach elementów wewnętrznych, otwiera nowe drzwi dla jeszcze mniejszych projektów.
Myślę, że przekonasz się, że warto będzie przeczytać dane katalogowe dla tych nowych procesorów.
To może być początek twojego kolejnego ekscytującego projektu.
Autor: John Bradnam

Pliki do pobrania:

ATtiny1614_Sketch_Examples

ATtiny1614_Sketch_Examples SpenceKonde_-_jtag2updi ATtiny1614_adapter_Board

Komentarze z Facebooka

Komentarze obecnie - OFF.