Cuprins:
Video: Programarea ATTiny85, ATTiny84 și ATMega328P: Arduino Ca ISP: 9 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:46
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 de pe Arduino Uno
- 2 prize cu 28 pini ZIF Insertion Force (ZIF) DIP (pentru a ține ATMega328P, ATTiny85, ATTiny84)
- 1 scut prototip Arduino (îl am pe al meu aici;
- 2 LED-uri de 5 mm oprite
- 2 rezistențe de 1K
- 1 rezistor de 10K
- 4 off 22pF condensatori ceramici
- 2 cristale de 16 MHz
- 3 condensatori ceramici de 0,1 uF
- 1 off 47uF condensator electrolitic
- 1 off condensator electrolitic 10uF
- Sârmă de înfășurare de diferite lungimi.
De ce software am nevoie?
Arduino IDE 1.6.9
De ce abilități am nevoie?
- Cunoștințe despre Arduino IDE
- Câteva cunoștințe despre electronică și cum să lipiți
- O mare dexteritate manuală
- O încărcătură de răbdare și vedere bună
Subiecte acoperite
- Introducere generală la programarea microcontrolerelor Atmel
- ISP sau Bootloader: totul este puțin confuz
- Prezentare generală a circuitului
- Configurarea programatorului
- Utilizarea programatorului dvs. Arduino ISP
- Dezvoltarea codului pe sistemul dvs. țintă
- Gotchas
- Concluzie
- 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
Există două metode disponibile pentru programarea microcontrolerelor Atmel;
- În programarea sistemului (ISP),
- 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:
Lampă de birou LED Circadian Friendly (nu este necesară programarea!): 7 pași (cu imagini)
Lampă de birou LED Circadian Friendly (nu este necesară programarea!): Am proiectat această lampă pentru a fi compatibilă cu ritmul circadian. Noaptea, este mai ușor pentru somn, deoarece numai LED-urile colorate calde se pot aprinde. În timpul zilei, vă poate menține treaz, deoarece atât LED-urile alb-rece, cât și cele de culoare caldă se pot aprinde la
Ceas LED cu 555 și 4017 (nu este necesară programarea): 8 pași (cu imagini)
Ceas LED cu 555 și 4017 (nu este necesară programarea): Aici voi introduce un proiect pe care l-am proiectat și l-am realizat acum aproximativ 7 ani. mâinile ceasului analogic
Programarea cipurilor cu Arduino - AVR ISP care acoperă ATTiny85, ATTiny2313 și ATMega328: 3 pași
Programarea cipurilor cu Arduino - AVR ISP care acoperă ATTiny85, ATTiny2313 și ATMega328: Am găsit acest lucru ca o schiță de acum mulți ani. Cel puțin este încă util pentru mine, așa că o voi publica! Acoperă programarea AVR Microco
Introducere în programarea 8051 cu AT89C2051 (Guest cu rol principal: Arduino): 7 pași (cu imagini)
Introducere în programarea 8051 cu AT89C2051 (Guest cu rol principal: Arduino): 8051 (cunoscut și sub numele de MCS-51) este un design MCU din anii 80 care rămâne popular astăzi. Microcontrolerele moderne compatibile 8051 sunt disponibile de la mai mulți furnizori, în toate formele și dimensiunile și cu o gamă largă de periferice. În acest instructab
Programarea Arduino Nano folosind UNO: 4 pași (cu imagini)
Programarea Arduino Nano folosind UNO: Hei băieți, recent tocmai cumpărasem o nouă clonă nano arduino (CH340) de pe eBay pentru proiectul meu mini arduino. După aceea am conectat arduino la computerul meu și am instalat driverele, dar nu funcționam încă, După câteva zile am aflat cum să programez