- Componente necesare programării ATtiny85 prin USB
- IC microcontroler ATtiny85 - Introducere
- Boot-loader intermitent pe ATtiny85 Folosind Arduino Uno
- Diagrama circuitului pentru programatorul ATtiny
- Instalarea driverelor Digispark
- Configurarea Arduino IDE în programul ATttiny85
Familia ATtiny este o serie a unuia dintre cele mai mici microcontrolere de pe piața AVR. Aceste microcontrolere sunt capabile să utilizeze multe dintre bibliotecile disponibile pe platforma Arduino. Cipul de microcontroler ATtiny85 este un microcontroler AVR cu 8 pini, 8 biți. Dimensiunea redusă și consumul redus de energie îl fac o potrivire excelentă pentru proiectele portabile cu amprente mici și cerințe de energie reduse. Dar introducerea codului pe cip poate fi o provocare, deoarece nu are nicio interfață USB, cum ar fi plăcile de microcontroler.
În tutorialul nostru anterior, am programat ATtiny85 folosind Arduino Uno. Dar conectarea Attiny85 la Arduino și utilizarea Arduino ca ISP poate fi dificilă și consumatoare de timp. Deci, în acest tutorial, vom construi o placă de programare ATtiny85, astfel încât să o putem conecta și programa direct ca alte plăci de microcontroler.
Componente necesare programării ATtiny85 prin USB
- Arduino UNO (Numai pentru prima dată când încărcați bootloader-ul)
- ATtiny85 IC
- Mufă USB tip A
- 3 rezistențe (2 × 47Ω și 1 × 1kΩ)
- 3 diode (2 × diodă Zener și 1 × diodă IN5819)
- Baza IC cu 8 pini
- Breadboard
- Sârme jumper
IC microcontroler ATtiny85 - Introducere
ATtiny85 de la Atmel este un microcontroler de 8 biți de înaltă performanță și putere redusă, bazat pe arhitectura RISC avansată. Acest cip de microcontroler are o memorie flash ISP de 8 KB, 512B EEPROM, SRAM de 512 octeți, 6 linii I / O de uz general, 32 de registre de lucru de uz general, un contor de 8 biți / contor cu moduri de comparare, un 8 biți de mare viteză temporizator / contor, USI, întreruperi interne și externe, convertor A / D pe 4 canale pe 10 biți, cronometru programabil de pază cu oscilator intern, trei moduri de economisire a energiei selectabile prin software și debugWIRE pentru depanarea pe cip. ATtiny85 Pinout este prezentat mai jos:
Majoritatea pinilor I / O ai cipului au mai multe funcții. Descrierea pinului ATtiny85 pentru fiecare pin este dată în tabelul de mai jos:
Pin nr. |
Nume PIN |
Descrierea pinului |
1 |
PB5 (PCINT5 / ADC0 / dW) |
PCINT5: Pin Change Interrupt 0, Source5 RESET: Resetați pinul ADC0: Canalul de intrare ADC 0 dW: depanare WIRE I / O |
2 |
PB3 (PCINT3 / XTAL1 / CLKI / ADC3) |
PCINT3: Pin Change Interrupt 0, Source3 XTAL1: Oscilator de cristal Pin1 CLKI: Intrare ceas extern ADC3: Canalul de intrare ADC 3 |
3 |
PB4 (PCINT4 / XTAL2 / CLKO / OC1B / ADC2) |
PCINT4: Pin Change Interrupt 0, Source 4 XTAL2: Pinul oscilatorului de cristal 2 CLKO: ieșire ceas sistem OC1B: Cronometru / Contor 1 Comparați rezultatul meciului B. ADC2: Canalul de intrare ADC 2 |
4 |
GND |
Pinul la sol |
5 |
PB0 (MOSI / DI / SDA / AIN0 / OC0A / AREF / PCINT0) |
MOSI: SPI Master Data Output / Slave Data Input DI: Intrare de date USI (modul cu trei fire) SDA: Intrare de date USI (modul cu două fire) AIN0: Comparator analogic, intrare pozitivă OC0A: Cronometru / Contor0 Compara ieșire Match A. AREF: Referință analogică externă PCINT0: Pin Change Interrupt 0, Source 0 |
6 |
PB1 (MISO / D0 / AIN1 / OC0B / OC1A / PCINT1) |
MISO: SPI Master Data Input / Slave Data Output DO: ieșire de date USI (modul cu trei fire) AIN1: Comparator analogic, intrare negativă OC0B: Cronometru / Contor0 Comparați rezultatul meciului B. OC1A: Cronometru / Contor 1 Comparați ieșirea potrivită PCINT1: Pin Change Interrupt 0, Source 1 |
7 |
PB2 (SCK / USCK / SCL / ADC1 / T0 / INT0 / PCINT2) |
SCK: Serial Clock Input USCK: Ceas USI (modul cu trei fire) SCL: USI Clock (modul cu două fire) ADC1: Canalul de intrare ADC 1 T0: Timer / Counter0 Clock Source INT0: Intrare externă 0 Intrare PCINT2: Pin Change Interrupt 0, Source 2 |
8 |
VCC |
Pin de tensiune de alimentare |
Boot-loader intermitent pe ATtiny85 Folosind Arduino Uno
Pentru programarea ATtiny85 fără Arduino, ar trebui mai întâi să încărcăm un bootloader în el folosind o placă Arduino UNO, acesta este un proces unic și după ce se face acest lucru, nu vom mai avea nevoie de placa UNO din nou. Boot-loader este un program special care rulează în microcontrolerul care trebuie programat. Una dintre cele mai convenabile modalități de a încărca datele programului pe microcontroler este prin intermediul unui boot-loader. Boot-loader-ul se află pe MCU și execută instrucțiunile de intrare, apoi scrie informații noi despre program în memoria microcontrolerului. Intermitentul unui boot-loader pe un microcontroler elimină necesitatea hardware-ului extern special (plăci de programare) pentru a programa microcontrolerul și îl veți putea programa direct utilizând o conexiune USB. Digispark ATtiny85placa rulează încărcătorul de încărcare „micronucleus tiny85”, scris inițial de Bluebie. Boot-loader-ul este codul care este pre-programat pe Digispark și îi permite să acționeze ca un dispozitiv USB, astfel încât să poată fi programat de Arduino IDE. De asemenea, vom bloca același bootloader digispark attiny85 pe ATtiny85.
Un ghid pas cu pas pentru a încărca bootloader-ul pe ATtiny85 folosind Arduino Uno și Arduino IDE este prezentat mai jos:
Pasul 1: Configurarea Arduino Uno ca ISP:
Deoarece ATtiny85 este doar un microcontroler, este nevoie de un ISP (In-System Programming) pentru a fi programat. Deci, pentru a programa ATtiny85, trebuie mai întâi să configurăm Arduino Uno ca ISP pentru a acționa ca programator pentru ATtiny85. Pentru aceasta, conectați Arduino Uno la laptop și deschideți Arduino IDE. După aceea, navigați la Fișier> Exemplu> ArduinoISP și încărcați codul ISP Arduino.
Pasul 2: Schema circuitului pentru încărcătorul de pornire intermitent pe ATtiny85:
Schema completă pentru încărcătorul de pornire intermitent pe ATtiny85 este prezentată mai jos:
Un condensator de 10 µf este conectat între Reset și pinul GND al Arduino. Conexiunile complete sunt date în tabelul de mai jos:
ATtiny85 Pin |
Pinul Arduino Uno |
Vcc |
5V |
GND |
GND |
Pinul 2 |
13 |
Pinul 1 |
12 |
Pinul 0 |
11 |
Resetați |
10 |
Acum conectați Arduino Uno la laptop și deschideți Arduino IDE. Găsiți la ce port COM este conectat Uno. În cazul meu, este COM5.
După aceasta, descărcați fișierele de încărcare ATtiny85 de pe linkul dat. Deschideți „ Burn_AT85_bootloader.bat ” și schimbați numărul de port COM „PCOM5” cu orice număr de port COM la care este conectat Uno. Salvați modificările înainte de a ieși.
Acum mutați fișierele editate „ Burn_AT85_bootloader.bat ” și „ ATtiny85.hex ” în folderul rădăcină Arduino IDE (C: \ Program Files (x86) Arduino).
După aceea, faceți clic dreapta pe „ Burn_AT85_bootloader.bat ” și selectați „Run as Admin”. Durează aproximativ 5 până la 6 secunde pentru a încărca încărcătorul de încărcare. Dacă totul a mers bine, ar trebui să primiți acest mesaj „AVRdude terminat. Vă mulțumim. Apăsați orice tastă pentru a continua…”.
Cu aceasta, Boot-loader-ul este instalat cu succes pe cipul ATtiny85. Acum este timpul să conectăm USB cu ATtiny85, astfel încât să îl putem programa direct. Schema de circuit pentru programarea ATtiny85 prin USB este prezentată mai jos:
Diagrama circuitului pentru programatorul ATtiny
Schema este preluată din schema de bord Digispark ATtiny85, dar ne dorim să construim un programator pentru ATtiny85, conectăm doar mufa USB masculină cu ATtiny85.
R3 este un rezistor pull-up care este conectat între pinii Vcc și PB3 ai IC, în timp ce diodele Zener (D1-D2) sunt adăugate pentru protecția totală a interfeței USB. După lipirea tuturor componentelor de pe placa de perf, va arăta cam ca mai jos:
Instalarea driverelor Digispark
Pentru a programa ATtiny85 utilizând USB, trebuie să aveți driverele Digispark instalate pe laptop, dacă nu le aveți, îl puteți descărca folosind linkul de mai sus. Apoi, extrageți fișierul zip și faceți dublu clic pe aplicația „ DPinst64.exe ” pentru a instala driverele.
Odată ce driverele sunt instalate cu succes, conectați placa ATtiny85 la laptop. Acum, accesați Device Manager pe Windows și dispozitivul ATtiny85 va fi listat sub „dispozitive libusb-win32” ca „Digispark Bootloader”. Dacă nu găsiți „dispozitive libusb-win32” în managerul de dispozitive, accesați Vizualizare și faceți clic pe „Afișare dispozitive ascunse”.
Configurarea Arduino IDE în programul ATttiny85
Pentru a programa placa ATtiny85 cu Arduino IDE, mai întâi, trebuie să adăugăm Suportul plăcii Digispark la Arduino IDE. Pentru aceasta, accesați Fișier> Preferințe și adăugați linkul de mai jos în adresele URL ale Managerului de plăci suplimentare și faceți clic pe „OK”.
După aceea, accesați instrumentele> Board> Board Manager și căutați „Digistump AVR” și instalați cea mai recentă versiune.
După instalare, acum veți putea vedea o nouă intrare în meniul Board intitulată „Digispark”.
Acum, accesați fișierul> Exemple> Noțiuni de bază și deschideți exemplul Blink.
Schimbați numărul PIN de acolo de la LED_BUILTIN la 0.
Acum reveniți la Instrumente -> Placă și selectați placa „ Digispark (implicit - 16mhz) ”. Apoi faceți clic pe butonul de încărcare din Arduino IDE.
Notă: Conectați placa ATtiny85 la computer, numai atunci când ID-ul Arduino afișează un mesaj care spune „Dispozitivul plugin acum”.
Odată ce codul este încărcat, LED-ul conectat la ATtiny85 ar trebui să înceapă să clipească.
Acesta este modul în care vă puteți construi propria placă de programare ATtiny85 Arduino. Un videoclip funcțional este prezentat mai jos. Dacă aveți întrebări, lăsați-le în secțiunea de comentarii. Pentru orice alte întrebări tehnice, puteți începe, de asemenea, o discuție pe forumurile noastre.