Cuprins:

Programarea ATTiny85, ATTiny84 și ATMega328P: Arduino Ca ISP: 9 pași (cu imagini)
Programarea ATTiny85, ATTiny84 și ATMega328P: Arduino Ca ISP: 9 pași (cu imagini)

Video: Programarea ATTiny85, ATTiny84 și ATMega328P: Arduino Ca ISP: 9 pași (cu imagini)

Video: Programarea ATTiny85, ATTiny84 și ATMega328P: Arduino Ca ISP: 9 pași (cu imagini)
Video: TRONIK AVENTUR 301 : ATMEGA328P pour économiser des Arduino Uno 2024, Noiembrie
Anonim
Programarea ATTiny85, ATTiny84 și ATMega328P: Arduino ca ISP
Programarea ATTiny85, ATTiny84 și ATMega328P: Arduino ca ISP
Programarea ATTiny85, ATTiny84 și ATMega328P: Arduino ca ISP
Programarea ATTiny85, ATTiny84 și ATMega328P: Arduino ca ISP

cuvânt înainte

Recent am dezvoltat câteva proiecte IoT bazate pe ESP8266 și am descoperit că procesorul de bază se lupta să îndeplinească toate sarcinile de care aveam nevoie pentru a le gestiona, așa că am decis să distribui unele dintre activitățile mai puțin importante către un alt microcontroler (e) în astfel, eliberează ESP8266 pentru a-și continua treaba de a fi un dispozitiv IoT.

Având în vedere că am vrut să-mi public proiectul către un public cât mai larg, am ales să folosesc Arduino IDE ca platformă de dezvoltare la alegere, deoarece are o comunitate atât de larg susținută.

Constrângeri de proiectare

Pentru a asigura o răspândire rezonabilă a dispozitivelor țintă care să permită selectarea unui microcontroler adecvat pentru aplicația la îndemână, m-am bazat pe următoarele părți Atmel; ATMega328P, ATTiny84 și ATTiny85. Pentru a limita complexitatea programatorului necesar, am restricționat alegerea ceasului la intern pentru toate dispozitivele și la 16 MHz extern doar pentru ATMega328P și ATTiny84.

Ceea ce urmează este o colecție de note despre programarea cu Arduino și o descriere a modului în care am creat un programator simplu bazat pe Arduino Uno pentru aceste dispozitive (imagini de mai sus).

De ce piese am nevoie?

Pentru a construi programatorul veți avea nevoie de următoarele părți

  1. 1 de pe Arduino Uno
  2. 2 prize cu 28 pini ZIF Insertion Force (ZIF) DIP (pentru a ține ATMega328P, ATTiny85, ATTiny84)
  3. 1 scut prototip Arduino (îl am pe al meu aici;
  4. 2 LED-uri de 5 mm oprite
  5. 2 rezistențe de 1K
  6. 1 rezistor de 10K
  7. 4 off 22pF condensatori ceramici
  8. 2 cristale de 16 MHz
  9. 3 condensatori ceramici de 0,1 uF
  10. 1 off 47uF condensator electrolitic
  11. 1 off condensator electrolitic 10uF
  12. Sârmă de înfășurare de diferite lungimi.

De ce software am nevoie?

Arduino IDE 1.6.9

De ce abilități am nevoie?

  1. Cunoștințe despre Arduino IDE
  2. Câteva cunoștințe despre electronică și cum să lipiți
  3. O mare dexteritate manuală
  4. O încărcătură de răbdare și vedere bună

Subiecte acoperite

  1. Introducere generală la programarea microcontrolerelor Atmel
  2. ISP sau Bootloader: totul este puțin confuz
  3. Prezentare generală a circuitului
  4. Configurarea programatorului
  5. Utilizarea programatorului dvs. Arduino ISP
  6. Dezvoltarea codului pe sistemul dvs. țintă
  7. Gotchas
  8. Concluzie
  9. Referințe utilizate

Declinare de responsabilitate

Ca întotdeauna, utilizați aceste instrucțiuni pe propriul risc și acestea sunt neacceptate

Pasul 1: Introducere generală privind programarea microcontrolerelor Atmel

Introducere generală privind programarea microcontrolerelor Atmel
Introducere generală privind programarea microcontrolerelor Atmel
Introducere generală privind programarea microcontrolerelor Atmel
Introducere generală privind programarea microcontrolerelor Atmel
Introducere generală privind programarea microcontrolerelor Atmel
Introducere generală privind programarea microcontrolerelor Atmel

Există două metode disponibile pentru programarea microcontrolerelor Atmel;

  1. În programarea sistemului (ISP),
  2. Auto-programare (prin intermediul unui bootloader).

Fosta metodă (1) programează direct microcontrolerul prin interfața SPI după ce a pus primul dispozitivul în reset. Cu excepția cazului în care este indicat altfel, un program sursă executabil compilat este scris pe dispozitiv în mod incremental în memoria de cod de unde este executat la pornire. Există multe dispozitive ISP capabile să programeze dispozitive Atmel, dintre care câteva fiind (foto 1); AVRISPmkII, Atmel-ICE, Olimex AVR-ISP-MK2, Olimex AVR-ISP500. Imaginea 2 arată modul în care dispozitivul ISP se conectează la ATMega328P (ICSP marcat ciudat) de pe placa Arduino Uno R3 (imaginea 3 dă pinul ISP afară). De asemenea, este posibil să programați un microcontroler Atmel prin interfața SPI utilizând un Arduino Uno ca ISP (imaginea 4), aici Uno este folosit pentru a programa un ATMega328P.

Această din urmă metodă (2) folosește un cod mic de cod cunoscut sub numele de „bootloader” rezident permanent în memoria codului executabil (de obicei blocat pentru a preveni suprascrierea accidentală foto 5). Acest cod este executat primul lucru la pornire sau la resetarea dispozitivului și permite microcontrolerului să se reprogrameze singur cu un nou cod primit prin intermediul uneia dintre interfețele sale de la o sursă externă la sine. Metoda de încărcare este utilizată de Arduino IDE pentru a reprograma Arduinos mapat ca un port de comunicare USB pe PC (Sau MAC, casetă Linux etc., imaginea 6) și în cazul Arduino Uno comunică cu dispozitivul Atmel prin intermediul acestuia interfață serială pe pinii IC 2 și 3 ai ATMega328P. De asemenea, Arduino Uno (cu microcontrolerul ATMega328P eliminat) poate fi folosit pentru a programa un ATMega328P prin metoda bootloader care acționează eficient ca un dispozitiv adaptor USB la serial (imaginea 7).

Ce este un adaptor USB la serial?

Un adaptor USB la serial este o componentă hardware care se conectează la portul USB al computerului și arată ca un port serial serial (o moștenire din timpurile anterioare când computerele foloseau un standard de comunicații seriale cunoscut sub numele de EIA-232, V24 sau RS232), permițându-vă să trimite și primi date seriale la aceleași niveluri electrice ale microcontrolerului. Când selectați Instrumente -> Port -> COMx din Arduino IDE, vă conectați / interfațați computerul la Arduino.

Un dispozitiv ca acesta este uneori denumit FTDI (imaginea 8, care este de fapt un nume de marcă) sau CH340G etc. de mai jos.

Pentru claritate, imaginea 9 identifică cele două dispozitive Atmel și conectorii lor ISP respectivi de pe Arduino Uno R3.

Notă 1: Dacă alegeți să mergeți pe ruta dispozitivului FTDI, asigurați-vă că achiziționați de la un vânzător cu reputație, deoarece au existat pe piață o mulțime de dispozitive contrafăcute ieftine care nu au reușit la aplicarea unei actualizări Windows.

Recomandat: