Programatori de microcontrolere AVR. Programatori simpli. Realizarea unui programator LPT pentru microcontrolere AVR Programator folosind un port COM

Destul de des, mulți oameni dau peste un design interesant pe Internet, dar un lucru îl împiedică - este realizat folosind un controler. Și e atât de greu...

De fapt, totul este mult mai simplu. Dacă este posibil să achiziționați un controler, jumătate din muncă este deja făcută. Mai rămâne doar să „calcăm” placa, să o gravați și să o lipiți cu piese... Și acum vine vorba de controler. Cum să-l „reînvie”? Cum să „flash”? Începe căutarea dureroasă a circuitului și programului programatorului. Circuitul a fost găsit, dar ghinion - pe peretele din spate al computerului sunt deja 8 conectori USB, un port pentru o imprimantă și nu un singur port COM pentru care a fost găsit circuitul.

Există o altă opțiune pentru desfășurarea evenimentelor. Există un port COM pe computer. Dar dintr-un anumit motiv, programatorul refuză să „coase” controlerul - apare în mod constant o eroare. Dar adevărul este că adesea pe plăcile de bază moderne (și mai ales la laptop-uri) porturile COM sunt făcute foarte scăzut în curent. Din această cauză, procesul de programare se termină chiar înainte de a începe. În toate cazurile de mai sus, această diagramă simplă vă va ajuta.

Acesta este un programator pentru portul LPT. În ciuda întregii complexități aparente, schema este destul de simplă și începe să funcționeze imediat, fără a necesita nicio configurație. Piesele sunt disponibile și costă literalmente bănuți. Dar posibilitățile... Cu acest dispozitiv puteți flash cu ușurință controlerul nu numai în priză, ci și în circuit (acest lucru se aplică dispozitivelor a căror placă este cablată pentru o carcasă de controler SMD, dar nu doriți să cumpărați un priză pentru 20 USD pentru el).

Odata asamblat, arata asa:

Acest programator cu diferențe minore este în roaming pe internet de aproximativ 20 de ani.Este cunoscut sub numele de Clasic Tait Programmer, ProPIC2, ​​​​meProg. Este încă produs de unele companii și vândut cu succes.

Cele mai recente versiuni ale software-ului pot fi descărcate de aici:

  • http://www.winpic800.com/
  • http://melabs.com/support/progsoft.htm
  • http://members.aon.at/electronics/pic/picpgm/

Iată setările pentru WinPIC800:

Și aici este un adaptor pentru intermiterea controlerelor de ieșire 8-14-18-20.


Această diagramă este, de asemenea, adesea vizualizată:

Pentru începători, întrebarea este „cu ce vom folosi pentru a ne flash controler?” se trezește aproape imediat. Această problemă poate fi rezolvată în două moduri - cumpărăm un programator serial sau construim propriul nostru. Desigur, nu este recomandabil să achiziționați vreun programator în serie în stadiul inițial de cunoaștere a microcontrolerelor. Cea mai simplă soluție ar fi așa-numitul programator „cinci fire”. Această opțiune este destul de potrivită pentru o singură utilizare, dar există un mare pericol ca, mai devreme sau mai târziu, portul LPT de pe computer să se epuizeze. Ca opțiune ieftină și sigură pentru un programator cu port paralel, folosim un circuit mai avansat.

Vă prezentăm un programator de porturi paralele simplu și sigur. Circuitul de programare este destul de comun în diferite variante și se bazează pe utilizarea unui cip tampon 74HC 244N. Bufferul vă menține portul imprimantei în siguranță. În plus, în circuit este inclus un rezistor, al cărui scop este de a proteja împotriva electricității statice.

Programatorul este compatibil cu Atmel STK 200/300 și este susținut de multe compilatoare populare. Întregul set mic de piese pentru asamblarea acestuia este destul de comun și nu va provoca dificultăți la cumpărare. Placa de circuit imprimat este realizată într-o versiune cu o singură față cu mai mulți jumperi.

Pentru a conecta programatorul la un computer, este convenabil să utilizați un cablu prelungitor pentru portul LPT.

Schemă în format sPlan 6.0 și aspectul plăcii în format Aspect Sprint Puteți descărca 4.0 sub LUT de mai jos.

Dacă intenționați să construiți orice dispozitiv folosind microcontrolere Atmel AVR (sau chiar propriul dvs. Arduino de casă), pur și simplu nu vă puteți lipsi de un programator. Programatorul vă va permite să flashați microcontrolerul cu programul dorit sau, în cazul Arduino, să scrieți un bootloader adecvat în memoria microcontrolerului.

În general, există o mare varietate de programatori, care diferă în complexitatea asamblarii, viteza firmware-ului și fiabilitatea operațională. Cea mai simplă dintre ele este opțiunea numită popular „Five Wiring”. Dar fiabilitatea sa lasă mult de dorit, deoarece este mai ușor să omorâți un port LPT cu el =) Mai fiabil este programatorul STK200, care conține un cip tampon și garantează funcționarea normală cu portul.

Dar, din cauza prezenței cipului, devine mult mai dificil de fabricat pentru un începător (adică pentru mine).

Cum să te descurci cu asta?

Pentru a proteja împotriva scurtcircuitelor, adăugăm rezistențe de 150 Ohm; pentru compatibilitate cu STK200 (acest lucru vă va permite să lucrați cu majoritatea programelor intermitente), conectăm pinii 2 la 12 și 3 la 11 în LPT. După cum puteți vedea, schema nu a devenit deloc mai complicată și, în același timp, a apărut o protecție suplimentară.

Să începem asamblarea!

Pe un conector LPT de tip masculin ( îl puteți lua de la un cablu antic la imprimantă), trebuie să conectați picioare de la 18 la 25 - acestea sunt ieșirile de masă. Pentru a vă proteja împotriva electrostatică, puteți lipi suplimentar un rezistor de 1 KOhm între masă și corpul conectorului LPT.

Apoi trebuie să conectați ieșirea 3 la ieșirea 11 și ieșirea 2 la ieșirea 12 (caracteristică distinctivă a STK200)

Rezistoarele cu o valoare nominală de 100 până la 150 ohmi sunt lipite la picioarele 6, 7, 9, 10. Acestea vor fi cele 4 ieșiri ale noastre de semnal.

Cablul poate fi luat din IDE, este mai bine să alegeți lungimea fără fanatism, 20-30 de centimetri ar trebui să fie suficienți =) Cu cât mai scurt, cu atât mai fiabil programatorul va fi în cele din urmă. Ar fi o idee bună să alternați fiecare fir de semnal cu masă (cum se face, de exemplu, în același cablu IDE) pentru a proteja împotriva posibilelor interferențe.

Conectori de programare în circuit...

Aici vă puteți lăsa imaginația să zboare =) Puteți separa un grup 2x3 din cablul IDE, puteți utiliza conectori BLS mame (aceia conectează panoul frontal al carcasei la placa de bază). Am tăiat două benzi de 3 ace dintr-o riglă de 40 de ace. Nu s-a dovedit mai rău =)

După ce lipim toată această bunătate, închidem conectorul LPT și admirăm creația mâinilor noastre.

Pentru începători, întrebarea este „cu ce vom folosi pentru a ne flash controler?” se trezește aproape imediat. Această problemă poate fi rezolvată în două moduri - cumpărăm un programator serial sau construim propriul nostru. Desigur, nu este recomandabil să achiziționați vreun programator în serie în stadiul inițial de cunoaștere a microcontrolerelor. Cea mai simplă soluție ar fi așa-numitul programator „cinci fire”. Această opțiune este destul de potrivită pentru o singură utilizare, dar există un mare pericol ca, mai devreme sau mai târziu, portul LPT de pe computer să se epuizeze. Ca opțiune ieftină și sigură pentru un programator cu port paralel, folosim un circuit mai avansat.

Vă prezentăm un programator de porturi paralele simplu și sigur. Circuitul de programare este destul de comun în diferite variante și se bazează pe utilizarea unui cip tampon 74HC 244N. Bufferul vă menține portul imprimantei în siguranță. În plus, în circuit este inclus un rezistor, al cărui scop este de a proteja împotriva electricității statice.

Programatorul este compatibil cu Atmel STK 200/300 și este susținut de multe compilatoare populare. Întregul set mic de piese pentru asamblarea acestuia este destul de comun și nu va provoca dificultăți la cumpărare. Placa de circuit imprimat este realizată într-o versiune cu o singură față cu mai mulți jumperi.

Pentru a conecta programatorul la un computer, este convenabil să utilizați un cablu prelungitor pentru portul LPT.

Schemă în format sPlan 6.0 și aspectul plăcii în format Aspect Sprint Puteți descărca 4.0 sub LUT de mai jos.

Să aflăm ce este o interfață ISP și să ne uităm la un programator ISP USB ieftin și convenabil. Să ne uităm la diagramele schematice ale celor mai simple programatori pentru microcontrolere AVR care folosesc porturile COM și LPT pe un computer. Aceste informații sunt destul de suficiente pentru a flash cele mai multe modele de microcontrolere AVR nu numai în Linux, ci și în alte sisteme de operare.

Interfață de programare în sistem ISP

Pentru a scrie un program pe microcontrolerul AVR veți avea nevoie de un programator.

Programator este un mic circuit electronic care vă permite să conectați un microcontroler la unul dintre porturile computerului (COM, LPT, USB) pentru citirea și scrierea ulterioară a firmware-ului (programare).

Există destul de multe modele diferite de programatori pentru microcontrolere AVR care se conectează la diferite porturi de computer.

Cea mai fiabilă și convenabilă opțiune este un programator care se conectează la un port USB, deoarece porturile COM și LPT nu mai sunt instalate în noile computere desktop și laptopuri.

În dispozitivele finite, programatorul este conectat la microcontroler printr-o interfață ISP(În programarea sistemului) - interfață de programare în sistem. Interfața ISP constă din mai mulți conductori prin care se primesc un semnal de ceas și date pentru a conecta programatorul cu microcontrolerul.

De regulă, interfața ISP este plasată pe plăci sub formă de zece sau șase pini, la care programatorul este conectat printr-un conector adecvat printr-un cablu.

Orez. 4. Interfață ISP pe placă.

Scopul pinilor din interfața ISP:

  1. VCC - alimentare plus, de obicei +5V;
  2. GND - minus putere, masă (Ground);
  3. MOSI - intrare de date (Master Out Slave In);
  4. MISO - ieșire de date (Master In Slave Out);
  5. SCK - semnal de ceas (Serial Clock);
  6. RST - pentru a furniza un semnal de resetare.

Pentru programarea în circuit a microcontrolerului, sunt suficienti doar 4 pini, deoarece microcontrolerul poate fi alimentat de la circuitul în care este instalat.

Cum se conectează programatorul la cipul microcontrolerului AVR dacă nu este lipit în circuit? - foarte simplu, folosind aceiași pini ai interfeței ISP, dacă este necesar, alimentarea microcontrolerului de la sursa de alimentare.

Programator USB ISP ASP

Pentru a lucra cu cipuri AVR, am achiziționat un programator ISP USB ieftin pentru aproximativ 10 USD. Un astfel de dispozitiv este acum la vânzare în multe magazine online interne și străine, așa că nu ar trebui să existe probleme cu achiziția.

Orez. 5. USB ISP - programator cu cablu pentru programarea in circuit a microcontrolerelor AVR de la ATMEL.

Acest programator este sigur de utilizat, de dimensiuni mici și este susținut de majoritatea programelor pentru microcontrolere AVR intermitente. USB ISP rulează pe sistemele de operare Linux, Mac OS X și Windows. Pentru Linux, nu este nevoie să instalați niciun driver; după conectarea programatorului la portul USB, dispozitivul va fi imediat detectat și gata de utilizare.

Mai jos voi da pinout-ul conectorilor programatorului USB ISP - ne va fi util mai târziu când ne conectăm la microcontroler.

Orez. 6. Locația pinii de pe conectorul USB ISP (pinout).

Orez. 7. Locația contactelor în mufele conectate la programatorul USB ISP.

Ce să faci dacă nu poți cumpăra un programator USB ISP?- puteți programa microcontrolere folosind programatori de casă simpli care se conectează la un port COM sau LPT, dar este mai bine să faceți singur un ISP USB și să programați cipul de microcontroler pentru acesta o dată cu un programator simplu de casă printr-un port COM sau LPT.

Orez. 8. Schema schematică a unui programator USB ASP ISP de casă.

Informații detaliate despre fabricarea USB ASP, precum și plăcile de circuite imprimate, driverele și firmware-ul pentru microcontroler pot fi găsite pe site-ul oficial: http://www.fischl.de/usbasp/

În plus, există destul de multe resurse pe acest programator gratuit pe Internet, există multe modele de plăci de circuite imprimate gata făcute, inclusiv în programul SprintLayout, așa că nu ne vom opri în detaliu în acest articol.

Programator folosind portul COM

Acest programator este numit și „programatorul Gromov”, în onoarea celui care a venit cu această schemă, creatorul programului Algorithm Builder (un mediu grafic pentru programarea AVR sub Windows folosind un limbaj algoritmic) - G.L. Gromova.

Acest programator vă permite să programați cipuri AVR folosind portul COM al computerului - interfața RS232. Pentru a asambla un astfel de programator, veți avea nevoie de un minim de piese - 3 diode, 7 rezistențe, un conector DB-9 sau DB-25 (în funcție de conectorul de împerechere instalat în computer) și un conector ISP pentru conectarea la microcontroler (sau doar câțiva conductori la cip). Orice diode de putere redusă pot fi utilizate în circuit.

Orez. 9. Schema schematică a programatorului microcontrolerului AVR printr-un port COM al computerului.

Pentru a completa informațiile, mai jos voi furniza pinout-ul porturilor RS-232 pentru opțiunile DB-9 și DB-25.

Orez. 10. RS232 - Port COM, aspect DB-9 pini.

Orez. 11. Port COM RS232 DB-25 - amplasarea pinilor pe conectori.

Programator folosind portul LPT

După cum știm, portul LPT al unui computer este conceput pentru a conecta o imprimantă locală (Local Printer Port), dar cu toate acestea este adesea folosit pentru a conecta diverse dispozitive și produse de casă. În acest caz, îl putem folosi pentru a programa microcontrolere AVR prin asamblarea unui circuit foarte simplu în acest scop, care este prezentat mai jos.

Orez. 12. Schema schematică a unui programator pentru microcontrolere AVR folosind portul LPT al unui computer.

După cum puteți vedea, circuitul este chiar mai simplu decât în ​​versiunea cu, aici avem nevoie doar de 4 rezistențe de putere redusă și un conector (mascul, cu pini) pentru conectarea la portul LPT al computerului.

Orez. 13. Amplasarea pinilor pentru conectorii portului LPT.

Toate piesele și conexiunile pot fi plasate în carcasa conectorului LPT, iar pentru conectarea la microcontroler se poate scoate un cablu cu conector pentru interfața ISP sau pur și simplu conductorii necesari pentru conectarea la microcip.

Software și note

După ce ați conectat programatorul COM sau LPT la microcontroler, trebuie să vă amintiți să furnizați energie microcipului în sine. Puteți folosi baterii sau o sursă de alimentare cu stabilizator ca sursă de alimentare pentru microcontroler; aceasta va fi cea mai sigură atât pentru portul computerului, cât și pentru cip. Am discutat deja despre cum să-l folosim.

Sub Linux există un program foarte puternic care poate funcționa cu programatori USB ASP, COM și LPT - acest program AVRDUDE, acesta va fi discutat în secțiunile următoare.

Pentru a flash cipuri AVR sub Windows folosind date de la programatori COM și LPT, aveți nevoie de programul UniProf de la Nikolaev, care este un programator universal pentru AVR (avr.nikolaew.org).

ATENŢIE! Fiți extrem de atenți și atenți atunci când asamblați și utilizați programatori care utilizează portul COM sau LPT al unui computer, o simplă greșeală poate cu ușurință a dat foc acestor porturi. Pentru funcționarea normală a unor astfel de programatori, ar trebui să încercați să utilizați conductoarele cele mai scurte posibile de la conector la circuitul programatorului și la microcontroler. Este indicat ca microprocesorul computerului să aibă o frecvență de cel mult 1-2 GHz și este indicat să folosiți Win2000 sau WinXP ca sistem de operare pentru programarea cipurilor.

De asemenea, este important să știți că adaptoarele USB-RS232 (port USB-COM) cel mai probabil nu vor funcționa cu programatorul Gromov; doar cele cu cipuri mai noi vor funcționa, așa că este mai bine să căutați o mașină cu un port COM nativ.

Concluzie

Programatorii discutați în articol sunt doar câteva dintre cele mai accesibile și simple soluții dintr-o listă mare de programatori AVR: USBTinyISP, AVR-Doper, AVR vusbtiny, AVRISP-MkII, programatori FTDI și altele.

Acum, în orice caz, puteți asambla un programator disponibil pentru dvs. și puteți să flashați cel puțin un cip, pe baza căruia puteți asambla un alt programator mai convenabil sau un alt dispozitiv.

În următorul articol vom afla cum să conectăm diferite modele de microcontrolere AVR la programator și vom afla de unde să obținem informații despre pinout-ul microcontrolerelor.