- Součásti potřebné k programování ATtiny85 přes USB
- IC mikrokontroléru ATtiny85 - úvod
- Blikající zavaděč na ATtiny85 pomocí Arduino Uno
- Schéma zapojení pro programátor ATtiny
- Instalace ovladačů Digispark
- Nastavení Arduino IDE na program ATttiny85
Rodina ATtiny je řada jednoho z nejmenších mikrokontrolérů na trhu AVR. Tyto mikrokontroléry jsou schopny využívat mnoho knihoven dostupných na platformě Arduino. Čip mikrokontroléru ATtiny85 je 8kolíkový, 8bitový mikrokontrolér AVR. Jeho malá velikost a nízká spotřeba energie z něj činí skvělý doplněk pro přenosné projekty s malými rozměry a nízkými požadavky na výkon. Ale dostat svůj kód na čip může být trochu výzva, protože nemá žádné USB rozhraní, jako jsou desky mikrokontroléru.
V našem předchozím tutoriálu jsme programovali ATtiny85 pomocí Arduino Uno. Ale připojení Attiny85 k Arduinu a používání Arduina jako ISP může být obtížné a časově náročné. V tomto tutoriálu tedy postavíme programovací desku ATtiny85, abychom ji mohli přímo pluginovat a programovat jako ostatní desky mikrokontroléru.
Součásti potřebné k programování ATtiny85 přes USB
- Arduino UNO (Pouze poprvé při nahrávání bootloaderu)
- ATtiny85 IC
- USB zástrčka typu A, zástrčka
- 3 rezistory (2 × 47Ω & 1 × 1kΩ)
- 3 diody (2 × Zenerova dioda a 1 × IN5819 dioda)
- 8kolíková základna IC
- Nepájivá deska
- Propojovací dráty
IC mikrokontroléru ATtiny85 - úvod
Atmel ATtiny85 je vysoce výkonný 8bitový mikrokontrolér s nízkým výkonem založený na Advanced RISC Architecture. Tento čip mikrokontroléru je vybaven 8KB ISP flash pamětí, 512B EEPROM, 512bajtovou SRAM, 6 univerzálními I / O linkami, 32 univerzálními pracovními registry, jedním 8bitovým časovačem / čítačem s režimy porovnání, jedním 8bitovým vysokorychlostním časovač / čítač, USI, interní a externí přerušení, 4kanálový 10bitový A / D převodník, programovatelný časovač hlídacího psa s interním oscilátorem, tři softwarově volitelné režimy úspory energie a debugWIRE pro ladění na čipu. ATtiny85 Pinout je uveden níže:
Většina I / O pinů čipu má více než jednu funkci. Popis pinů ATtiny85 pro každý pin je uveden v následující tabulce:
PIN č. |
Název PIN |
Popis kolíku |
1 |
PB5 (PCINT5 / ADC0 / dW) |
PCINT5: Pin Change Interrupt 0, Source5 RESET: Resetovat PIN ADC0: Vstupní kanál ADC 0 dW: ladění WIRE I / O |
2 |
PB3 (PCINT3 / XTAL1 / CLKI / ADC3) |
PCINT3: Pin Change Interrupt 0, Source3 XTAL1: Pin oscilátoru Crystal1 CLKI: Vstup externích hodin ADC3: Vstupní kanál ADC 3 |
3 |
PB4 (PCINT4 / XTAL2 / CLKO / OC1B / ADC2) |
PCINT4: Pin Change Interrupt 0, zdroj 4 XTAL2: Pin krystalového oscilátoru 2 CLKO: Výstup systémových hodin OC1B: Timer / Counter1 Porovnejte výstup Match B. ADC2: Vstupní kanál ADC 2 |
4 |
GND |
Uzemňovací kolík |
5 |
PB0 (MOSI / DI / SDA / AIN0 / OC0A / AREF / PCINT0) |
MOSI: SPI výstup hlavních dat / Slave datový vstup DI: Vstup dat USI (režim tří vodičů) SDA: Vstup dat USI (režim dvou vodičů) AIN0: Analogový komparátor, kladný vstup OC0A: Timer / Counter0 Porovnání výstupu shody A. AREF: Externí analogová reference PCINT0: Přerušení změny pinů 0, zdroj 0 |
6 |
PB1 (MISO / D0 / AIN1 / OC0B / OC1A / PCINT1) |
MISO: Vstup hlavních dat SPI / Výstup dat slave DO: USI datový výstup (třívodičový režim) AIN1: Analogový komparátor, negativní vstup OC0B: Timer / Counter0 Porovnání výstupu shody B. OC1A: Porovnání časovače / čítače1 odpovídá výstupu A. PCINT1: Přerušení změny pinů 0, zdroj 1 |
7 |
PB2 (SCK / USCK / SCL / ADC1 / T0 / INT0 / PCINT2) |
SCK: Sériový vstup hodin USCK: Hodiny USI (třívodičový režim) SCL: Hodiny USI (režim dvou vodičů) ADC1: Vstupní kanál ADC 1 T0: Zdroj časovače / čítače0 INT0: Vstup externího přerušení 0 PCINT2: Pin Change Interrupt 0, Zdroj 2 |
8 |
VCC |
Pin napájecího napětí |
Blikající zavaděč na ATtiny85 pomocí Arduino Uno
Pro programování ATtiny85 bez Arduina bychom do něj nejprve museli nahrát bootloader pomocí desky Arduino UNO, jedná se o jednorázový proces a poté již desku UNO nebudeme potřebovat. Boot-loader je speciální program, který běží v mikrokontroléru, který musí být naprogramován. Jedním z nejpohodlnějších způsobů, jak načíst data programu do mikrokontroléru, je zavaděč. Boot-loader sedí na MCU a provádí příchozí pokyny a poté zapisuje nové informace o programu do paměti mikrokontroléru. Blikání zavaděče na mikrokontroléru odstraňuje potřebu speciálního externího hardwaru (programátorské desky) k programování mikrokontroléru a budete jej moci programovat přímo pomocí připojení USB. Digispark ATtiny85na desce běží bootloader „micronucleus tiny85“, původně napsaný Bluebie. Zavaděč je kód, který je předem naprogramován na Digisparku a umožňuje mu fungovat jako zařízení USB, aby jej bylo možné naprogramovat pomocí Arduino IDE. Také chystáme flashovat stejný bootloader digispark attiny85 na ATtiny85.
Průvodce krok za krokem k zavedení flash bootloaderu na ATtiny85 pomocí Arduino Uno a Arduino IDE je uveden níže:
Krok 1: Konfigurace Arduino Uno jako ISP:
Protože ATtiny85 je pouze mikrokontrolér, vyžaduje programování ISP (In-System Programming). Abychom mohli programovat ATtiny85, musíme nejprve nakonfigurovat Arduino Uno jako ISP, aby fungoval jako programátor pro ATtiny85. Za tímto účelem připojte Arduino Uno k notebooku a otevřete IDE Arduino. Poté přejděte na Soubor> Příklad> ArduinoISP a nahrajte kód ISP Arduino.
Krok 2: Schéma zapojení blikajícího zavaděče na ATtiny85:
Kompletní schéma pro blikající zavaděč na ATtiny85 je uvedeno níže:
Mezi pin Reset a GND Arduina je připojen kondenzátor 10 µf. Kompletní připojení jsou uvedena v následující tabulce:
ATtiny85 Pin |
Pin Arduino Uno |
Vcc |
5V |
GND |
GND |
Pin 2 |
13 |
Pin 1 |
12 |
Pin 0 |
11 |
Resetovat |
10 |
Nyní připojte Arduino Uno k notebooku a otevřete Arduino IDE. Zjistěte, ke kterému portu COM je Uno připojeno. V mém případě je to COM5.
Poté si stáhněte soubory zavaděče ATtiny85 z daného odkazu. Otevřete soubor „ Burn_AT85_bootloader.bat “ a změňte číslo portu COM „PCOM5“ s jakýmkoli číslem portu COM, ke kterému je vaše Uno připojeno. Před ukončením uložte změny.
Nyní přesuňte upravené soubory „ Burn_AT85_bootloader.bat “ a „ ATtiny85.hex “ do kořenové složky Arduino IDE (C: \ Program Files (x86) Arduino).
Poté klepněte pravým tlačítkem myši na soubor „ Burn_AT85_bootloader.bat “ a vyberte příkaz „Spustit jako správce“. Blikání zavaděče trvá přibližně 5 až 6 sekund. Pokud vše proběhlo dobře, měla by se zobrazit zpráva „AVRdude hotovo. Děkuji. Pokračujte stisknutím libovolné klávesy…“.
Díky tomu je Boot-loader úspěšně nainstalován na čip ATtiny85. Nyní je čas připojit USB k ATtiny85, abychom jej mohli naprogramovat přímo. Schéma zapojení pro programování ATtiny85 přes USB je uvedeno níže:
Schéma zapojení pro programátor ATtiny
Schéma je převzato ze schématu desky Digispark ATtiny85, ale protože se snažíme vytvořit programátor pro ATtiny85, propojujeme pouze Male USB Plug s ATtiny85.
R3 je pull-up rezistor, který je připojen mezi Vcc a PB3 piny IC, zatímco Zenerovy diody (D1-D2) jsou přidány pro celkovou ochranu rozhraní USB. Po pájení všech komponent na desce perf bude vypadat asi takto:
Instalace ovladačů Digispark
Chcete-li programovat ATtiny85 pomocí USB, musíte mít ve svém notebooku nainstalované ovladače Digispark, pokud je nemáte, můžete si je stáhnout pomocí odkazu uvedeného výše. Poté rozbalte soubor zip a poklepáním na aplikaci „ DPinst64.exe “ nainstalujte ovladače.
Jakmile jsou ovladače úspěšně nainstalovány, připojte desku ATtiny85 k notebooku. Nyní přejděte do Správce zařízení v systému Windows a zařízení ATtiny85 bude uvedeno v seznamu „zařízení libusb-win32“ jako „Digispark Bootloader“. Pokud nemůžete ve správci zařízení najít „zařízení libusb-win32“, přejděte na Zobrazit a klikněte na „Zobrazit skrytá zařízení“.
Nastavení Arduino IDE na program ATttiny85
Chcete-li naprogramovat desku ATtiny85 na Arduino IDE, musíme nejprve přidat podporu desky Digispark do Arduino IDE. Za tímto účelem přejděte do Soubor> Předvolby a přidejte níže uvedený odkaz do URL Dalších Správců Boardů a klikněte na „OK“.
Poté přejděte do nástrojů> Board> Board Manager a vyhledejte 'Digistump AVR' a nainstalujte nejnovější verzi.
Po instalaci byste nyní mohli vidět nový záznam v nabídce Board s názvem „Digispark“.
Nyní přejděte do souboru> Příklady> Základní a otevřete příklad Blink.
Změňte tam číslo PIN z LED_BUILTIN na 0.
Nyní se vraťte zpět na Nástroje -> Deska a vyberte desku „ Digispark (výchozí - 16 MHz) “. Poté klikněte na tlačítko nahrávání v Arduino IDE.
Poznámka: Připojte desku ATtiny85 k počítači, pouze když Arduino IDE zobrazí zprávu „Nyní připojte zařízení“.
Jakmile je kód nahrán, LED připojená k ATtiny85 by měla začít blikat.
Takto si můžete postavit vlastní programovací desku ATtiny85 Arduino. Níže je uvedeno pracovní video. Pokud máte nějaké dotazy, nechte je v sekci komentářů. V případě dalších technických otázek můžete také zahájit diskusi na našich fórech.