Contacte

Programator pentru ATS de pe un cablu de telefoane. Programator ISP USB pentru AVR: Un alt pas departe de arduinonizare. Programe pentru lucrul cu programatorul

Astăzi vă voi spune despre un programator USBAsp v.2.0 ieftin și foarte simplu pentru microcontrolere AVR (bazat pe designul lui Thomas Fischl), cu ajutorul acestuia puteți bloca controlere AVR prin intermediul interfeței ISP (fără a-l desolda de pe placă), și cel mai important, puteți bloca sectorul de pornire pe controlerele Arduino.

Specificatii tehnice

Tensiunea de alimentare: 5 V, DC
Interfață: USB 2.0
Programare / citire: Atmel (AVR)
Dimensiuni: 70mm x 18mm x 10mm
Suport sistem de operare: Windows XP / 7/8 / 8.1 / 10.

Informații generale

Programatorul USBAsp este distribuit și deschis cod sursa, deci, dacă doriți, îl puteți face singur descărcând placa de circuit imprimat și firmware-ul de pe site-ul Thomas, din această cauză, în diferite magazine online există diferite versiuni ale programatorului cu aceeași funcționalitate. În cazul meu, voi vorbi despre USBAsp V2.0 Producător chinez LC Tehnologie.

Programatorul este asamblat pe o placă de imprimare albastră, în stânga există un conector USB necesar pentru conectarea la un computer. În centru există un controler ATmega8A, un rezonator de cuarț de 12 MHz și conducte electrice (rezistențe, condensatori) sunt instalate în apropiere. În dreapta este un conector cu 10 pini (două rânduri, câte cinci pini fiecare, pas de 2,54 mm), care asigură schimbul de date cu un microcontroler firmware (interfață ISP). Kitul vine cu un cablu, pe fiecare parte a căruia este instalat un conector IDC (10 pini), pentru a ușura intermitentul unor plăci (de exemplu, Arduino), vă sfătuiesc să achiziționați un adaptor de 10 pini la 6 pini. Alocarea pinului programatorului USBAsp poate fi văzută în figura de mai jos, vizualizată pe partea programatorului.

Alocarea pinului:
1 - MOSI
2 - VCC
3, 8, 10 - GND
4 - TXD
5 - RESET
6 - RXD
7 - SCK
9 - MISO

Indicator luminos
LED roșu G - Aprins
LED roșu R - Schimb de date

Jumpers
JP1 - PUTERE, controlează tensiunea la conectorul ISP VCC (pinul 2), îl puteți seta la + 3,3 V, + 5 V sau puteți scoate jumperul complet dacă dispozitivul programat are propria sa sursă de alimentare.
JP2 - SERVICIU, Actualizări de firmware USBasp.
JP3 - ÎNCET, programarea la viteze mici, dacă ținta rulează sub 1,5 MHz, SCK (pinul 7) va reduce frecvența de la 375 kHz la 8 kHz.

O diagramă schematică a programatorului USBAsp V2.0 poate fi văzută în figura de mai jos.

Lista acceptată Microcontrolere AVR:
Mega Series:
ATmega8, ATmega8A, ATmega48, ATmega48A, ATmega48P, ATmega48PA, ATmega88, ATmega88A, ATmega88P, ATmega88PA, ATmega168, ATmega168A, ATmega168P, ATmega168PA, ATmega328, ATmega328P, ATmega103, ATmega8P128, ATmega12mega ATmega163, ATmega164, ATmega164A, ATmega164P, ATmega164PA, ATmega169, ATmega169A , ATmega169P, ATmega169PA, ATmega2560, ATmega2561, ATmega32, ATmega32A, ATmega324, ATmega324A, ATmega324P, ATmega329mega ATmega64A, ATmega640, ATmega644, ATmega644A, ATmega644P, ATmega644PA, ATmega649, ATmega649A, ATmega649P, ATmega6490, ATmega6490A, ATmega6490P, ATmega8515, ATmega8535,
Tiny Series: ATtiny12, ATtiny13, ATtiny13A, ATtiny15, ATtiny25, ATtiny26, ATtiny45, ATtiny85, ATtiny2313, ATtiny2313A
Seria clasică: AT90S1200, AT90S2313, AT90S2333, AT90S2343, AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90S8535
Seria Can: AT90CAN128
Seria PWN: AT90PWM2, AT90PWM3

Instalarea driverului USBAsp pe Windows 8/10

Conectăm programatorul la portul USB de pe computer, dacă totul este normal, LED-ul roșu de pe placă se va aprinde. Apoi, sistemul de operare va începe să caute driverul

Deoarece sistemul de operare nu are șofer necesar, în „ Manager de dispozitiv"Dispozitivul" USBAsp»Cu un semn de exclamare.

Descărcați arhiva cu o semnătură digitală, dezarhivați-o și rulați " InstallDriver.exe "

Driverul este instalat, în „ Manager de dispozitiv"Va disparea Semn de exclamare cu " USBAsp».

Instalarea driverului pe Windows XP și Windows 7 este aceeași, programatorul este gata să funcționeze.

Programul a fost dezvoltat de „ Bodnar Serghei», Funcționează nu numai cu programatorul chinez USBAsp v.2.0, ci și cu alți programatori. În primul rând, descărcați programul, dezarhivați și rulați " AVRDUDEPROG.exe».
De exemplu, am să flashez o placă chineză Arduino UNO R3 cu un cip ATmega328P. În program, faceți clic pe fila „ Microcontrolere”Și selectați ATmega328P.

Apoi, trebuie să selectați firmware-ul, în linia „ Flash"Clic" . . . ", Accesați dosarul" C: \ Program Files \ Arduino \ hardware \ arduino \ avr \ bootloaders \ atmega„Și alege” ATmegaBOOT_168_atmega328.hex", Faceți clic" Deschis»

Conectăm programatorul la placa " Arduino UNO R3", Și apăsați butonul" Programare».

La sfârșit, va apărea o casetă de dialog despre finalizarea cu succes a programării.

Microcontrolerele de la ATMEL au câștigat o popularitate largă. Programarea lor înainte de utilizare poate fi efectuată direct pe placa dispozitivului finit printr-un simplu cablu ISP conectat la portul LPT calculator personal sau un cablu ceva mai complicat conectat la portul COM. Dar în zilele noastre tot mai mult plăci de bază este produs fără ambele, iar LPT a dispărut mult timp în laptopuri, înlocuit Interfață USB... Cu toate acestea, există și sunt disponibili și programatori pentru această interfață.

Pentru cântar, LED-ul obișnuit de 5 mm este lângă el.
Acest programator USBASP acceptă următoarele microcontrolere:

Lista MCU-urilor acceptate

ATtiny11, ATtiny12, ATtiny13, ATtiny15, ATtiny22, ATtiny2313, ATtiny24, ATtiny25, ATtiny26, ATtiny261, ATtiny28, ATtiny44, ATtiny45, ATtiny461, ATtiny84, ATtiny85, ATtiny861
AT90S1200, AT90S2313, AT90S2323, AT90S2343, AT90S4414, T90S4433, AT90S4434, AT90S8515, AT90S8535
ATmega8, ATmega48, ATmega88, ATmega16, ATmega161, ATmega162, ATmega163, ATmega164, ATmega165, ATmega168, ATmega169, ATmega32, ATmega323, ATmega324, ATmega325,
ATmega3250, ATmega329, ATmega64, ATmega640, ATmega644, ATmega645, ATmega6450, ATmega649, ATmega6490, ATmega128, ATmega1280, ATmega1281, ATmega2560, ATmega2561, ATmega103, ATmega406, ATmega
AT90CAN32, AT90CAN64, AT90CAN128
AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B
AT90USB1286, AT90USB1287, AT90USB162, AT90USB646, AT90USB647
AT89S51, AT89S52
AT86RF401




Cu programatorul este furnizat un cablu de zbor cu 10 fire cu conectori.


Programatorul este alimentat de la portul USB al computerului.


Există un loc pe placa de programare pentru desoldarea regulatorului de tensiune LDO de 3,3V, dar el însuși nu este lipit.
Programatorul este susținut de programul AVRDUDE. Programul în sine este consolă, dar există unul pentru el. Utilitarul avrdude poate fi găsit în folderul / hardware / tools / din distribuție IDE Arduino sau descărcați pe Internet.
Înainte de a începe să lucrați cu programatorul, trebuie să descărcați driverul de la.
De asemenea, programatorul este susținut de mediul de dezvoltare Arduino.


Există un firmware pentru programator numit, care îl transformă în compatibil STK500 și perceput de mediul de dezvoltare proprietar ATMEL AVR Studio, dar datorită variabilității mari a hardware-ului chinezesc, îl puteți folosi numai pe propriul risc și risc. Am de gând să cumpăr +32 Adaugă la favorite Mi-a plăcut recenzia +17 +42

Publicat pe 23 februarie 2011

O scurtă prezentare generală a programatorilor utilizați în practică pentru microcontrolerele AVR. AVR ISP Prorgammerși Programator USB AVR / 89S Compatibil cu AVR910.

AVR ISP Prorgammer

Programator în circuit pentru programarea microcontrolerelor ATMEL®, atât în ​​producția în serie, cât și în procesul de dezvoltare și depanare a produselor.

Programatorul acceptă următoarele familii de cristale:

TinyAVR

ATtiny11L, ATtiny11, ATtiny12V, ATtiny12L, ATtiny13, ATtiny15L, ATtiny2313, ATtiny26L, ATtiny26, ATtiny28V, ATtiny28L

AT90S1200, AT90S2313, AT90LS2323, AT90S2323, AT90LS2343, AT90S2343, AT90LS4433, AT90S4433, AT90LS8515, AT90S8515, AT90LS8535, AT90S8535

MegaAVR

ATmega48, ATmega88, ATmega168, ATmega8, ATmega16, ATmega32, ATmega64, ATmega640, ATmega128, ATmega1280, ATmega1281, AT90CAN128, ATmega103, ATmega161, ATmega162, ATmega163L, ATmega16, ATmega15, ATmega16

Trăsături distinctive:

- programare în circuit (nu sunt necesare panouri adaptoare suplimentare, în timp ce pinii de programare sunt utilizați în proiect)

- Suport programator cu compilatoare populare AVRstudio, IAR AVR, Image Craft AVR.

- verificare automată (garanție 100% a conformității codului cu fir cu originalul)

- viteza mare de programare, capacitatea de a clipi număr de serie cristal

Eu perioadă lungă de timp am folosit cu succes și folosesc în continuare acest lucru de încredere și programator simplu care operează prin portul LPT.

Diagrama schematică a acestui programator simplu, dar de încredere:

Cardul pe două fețe se potrivește în slot:


Aveam nevoie de un al doilea programator, iar programatorul USB descris mai jos nu putea coase microcontrolerul de care aveam nevoie. Așa că am decis să reproduc acest programator LPT.



Tendințele informatice sunt de așa natură încât portul LPT va dispărea în curând. Prin urmare, este timpul să căutăm o alternativă.

Programator de microcontroler AVR / 89S Compatibil cu AVR910 (programator USB)

După ce am vizitat mai multe magazine, mi-am dat seama că prețul programatorilor nu este bătut de cele modeste, așa că am decis să mă confund și să-l fac singur pe programator.
După ce am arat prin Internet, am găsit mai multe implementări compatibile prin comenzi cu programatorul original AVR910 ATMEL.

Dezavantajul acestei modificări este lipsa unei siguranțe. Deși, așa cum a arătat practica, este puțin probabil că va fi posibil să ardeți portul USB cu un circuit blând. Cel puțin nu a funcționat pe computerul meu, dar nu merită experimentat.
LED-ul VL3 semnalizează sursa de alimentare către programator port USB... LED-uri VL1, programator de citire / scriere semnal VL2.
Jumper J1 - (MODIFICARE) este folosit pentru a programa microcontrolerul într-un programator nou. Când este închis, un programator extern este conectat la conectorul ISP și programul este încărcat în MC.
După acest jumper este necesar să deschideți și să închideți jumperul J2 - NORMal. Nu-l mai atingem.
Cu jumperul J3 LOW SCK, este posibilă scăderea frecvenței de ceas a portului SPI al programatorului MK la ~ 20 kHz. Când jumperul este deschis, frecvența SPI este normală, atunci când jumperul este închis, acesta este redus.
O caracteristică notabilă este că o undă pătrată cu o frecvență de 1 MHz este trimisă la ieșirea LED-ului conectorului ISP pentru a „revigora” MCU-urile, care au fost programate în mod eronat cu biți de siguranță responsabili de ceas. Lucruri FOARTE utile!

FUSE BITS Firmware
Pentru funcționarea normală a controlerului în circuit, este necesar ca biții SPIEN, CKOPT, SUT0 și BODEN să fie programați (setat la „0”). De obicei microcontrolere provenite din fabrică, adică cele noi au bitul SPIEN deja programat. Restul de biți trebuie să fie neprogramat (setat la „1”).

Instalare
Windows 2000 / XP / Vista / Seven pe 32 de biți

Blițează controlerul. Conectați programatorul proaspăt coapte la computer printr-un conector USB gratuit. Sistemul de operare va găsi un dispozitiv nou - Programatorul USB AVR910, când vi se solicită să găsească automat driverul, să refuze și să specifice calea către fișierul inf, în funcție de sistemul de operare instalat pe computer.
Există un folder în arhivă cu firmware-ul „ AVR910.Driver ”Care conține trei directoare pentru diferite opțiuni sisteme de operare:
-“2k_xp_32 "- pentru sisteme de operare Windows 2000 / XP pe 32 de biți (se folosește driverul obișnuit usbser.sys)
-“vista_xp_32 "- Pentru sisteme de operare Windows XP / Vista / Seven pe 32 de biți (usbser.sys + lowbulk.sys de la Osamu Tamura)
-“vista_xp_64 "- Pentru sisteme de operare Windows XP / Vista / Seven pe 64 de biți (usbser.sys + lowbulk.sys de la Osamu Tamura)

Caracteristici de instalare:

În principiu, instalarea nu diferă de cea pentru Windows XP, dar există una DAR - întârzieri în driverul usbser.sys al acestui sistem de operare strică lanțul de comenzi de la software-ul de pe PC la programator și, în consecință, lanțul de răspunsuri înapoi de la programator la software-ul de pe computer ... nu s-au instalat încă, dar există o soluție. Cu siguranță nu este cel mai frumos, dar funcționează fiabil 🙂 Este necesar să înlocuiți fișierul usbser.sys din sistem Dosare Windows 2000 la unul similar din Windows XP. Acestea sunt folderele ... \ winnt \ system32 \ drivers \ și ... \ winnt \ system32 \ dllcashe \. Fișierul usbser.sys din Windows XP SP1 poate fi găsit aici. Bineînțeles, driverul va trebui înlocuit prin bootarea sub un alt sistem de operare (de exemplu, de pe un disc de boot).

Pentru a utiliza driverele pe o platformă pe 64 de biți, trebuie să dezactivați verificarea semnăturilor digitale ale driverelor făcând clic cheie functionala F8 în timpul pornirii sistemului.
A doua opțiune este utilizarea programului „Driver Signature Enforcement Overrider”, care semnează driverul ca „testdriver” și activează „testmode”, astfel încât să puteți încărca driverul fără o semnătură digitală reală. Puteți găsi mai multe descriere detaliata pe pagina programului urmând linkul de mai sus.

Iată ce am primit:



Folosesc programatorul cu programe AVRProg v.1.4 din pachetul AVRStudio. Pe Windows XP Lucrați perfect.

Programatorul este instalat ca un port Com virtual. Singurul lucru de luat în considerare este că AVRProg verifică porturile de la 1 la 4. Va trebui să mutați portul pe COM4 în managerul de dispozitive sau să specificați ce port să căutați programatorul în setările AVRStudio.

Schema, placa, firmware-ul și driverele pot fi descărcate.

P.S. Când aveam nevoie să flashez controlerele PWM (AT90PWM3), trebuia să o fac folosind vechiul AVR ISP Prorgammer (prin portul LPT), AVRProg v.1.4 nu știe AT90PWM3. Nici situația nu este clară cu ATmega64. Prin urmare, principalul programator de lucru pentru mine rămâne LPTeshny AVR ISP Prorgammer.

P.S.P.S. Nu cu mult timp în urmă, un cunoscut a cumpărat acest programator USBasp

Vedeți driverele și software-ul aici: http://www.fischl.de/usbasp/
Funcționează, în timp ce absența erorilor observate în AVR / 89S compatibil cu programatorul AVR910 (USB) a fost bucuroasă.

Articolul descrie software-ul pentru lucrul cu acești și alți programatori.

În cazul meu, acesta este un deținător de record absolut în ceea ce privește viteza de livrare - aproximativ 5 luni de rătăcire fără griji, nu este clar unde. În ciuda întârzierii monstruoase, am primit totuși pachetul, care este incredibil de fericit, în ciuda neajunsurilor, despre care voi povesti mai jos. Din moment ce am o memorie foarte proastă, a trebuit să combin cele găsite Informatii utile undeva, într-un singur loc, sub forma unei note, colectarea ei câte puțin în diferite colțuri ale rețelei s-a dovedit a fi o chestiune non-banală, așa că voi face totul într-o postare separată.
USB ISP este cel mai ieftin programator de controler AVR care poate fi găsit pe piață, a fost luat pentru a extinde orizonturile și pentru a studia mai în profunzime AVR-ul.
Revizuirea include: o descriere a programatorului, cum să-l conectați la cip, configurarea funcționării acestuia în programele AvrDude Prog, Khazama, Atmel Studio 7 și multe altele.

Desigur, puteți folosi Arduino UNO în schimb cu schița ArduinoISP cusută în el, dar acest lucru nu este convenabil, jucând cu fire, mai ales dacă există un singur UNO, descurajează entuziasmul. Era mai ușor să obții un astfel de programator separat, sau mai bine zis doi. Din două motive:
1) Chiar înainte de cumpărare, din recenzii era deja clar că calitatea lipirii acestor dispozitive suferă, iar unele au venit și cu diode zener divizate. S-a decis să se joace în siguranță comandând două.
2) În plus, un programator poate fi cusut pe altul prin mutarea jumperului de pe dispozitivul slave.

Specificații

Sistem de operare acceptat: Windows, MacOS, Linux
CPU: Atmega8A
Interfață de conectare la PC: USB
Interfață de programare: ISP (în circuit)
Tensiunea de programare: 5V sau 3.3V (în funcție de poziția jumperului JP2)
Frecvența de programare: 375kHz (implicit) și 8kHz (cu jumperul JP3 închis)
Controlere acceptate: toate AVR-urile cu interfață SPI
Descriere:

Lista microcontrolerelor acceptate

Seria ATmega

ATmega8 ATmega48 ATmega88 ATmega168 ATmega328
ATmega103 ATmega128 ATmega1280 ATmega1281 ATmega16
ATmega161 ATmega162 ATmega163 ATmega164 ATmega169
ATmega2560 ATmega2561 ATmega32 ATmega324 ATmega329
ATmega3290 ATmega640 ATmega644 ATMEGA64 ATmega649
ATmega6490 ATmega8515 ATmega8535

Serie minusculă

ATtiny12 ATtiny13 ATtiny15 ATtiny26 ATTINY25
ATtiny45 Attiny85 ATtiny2313

Seria clasică

AT90S1200 AT90S2313 AT90S2333 AT90S2343 AT90S4414
AT90S4433 AT90S4434 AT90S8515
AT90S8535

Seria CAN

AT90CAN128

Seria PWM

AT90PWM2 AT90PWM3

Aspect

Setul de livrare este minim - un programator + o buclă fără bandă elastică. În cazul meu, dublați suma.

Cultura performanței este cu adevărat șchioapă, fagurii lipiți strâmb s-au repezit imediat în ochii mei. Ori de câte ori este posibil, există urme de flux și, cu oxizi, se pare că programatorii au rămas de mult timp în depozit și au fost asamblați cu viteza caracteristică chinezilor.















Unele găuri nu sunt complet umplute cu lipit



Elementele SMD sunt, de asemenea, lipite strâmb



Am nivelat pieptenele puțin mai târziu, a fost prea neplăcut să mă uit la o astfel de înclinare, elementele au dispărut și apoi am spălat tabla



Dimensiunile plăcii sunt puțin mai mari decât convertorul USB-TTL de pe CP2102



Lungimea trenului este de aproximativ 30cm, există părerea că cu cât trenul este mai scurt, cu atât mai bine. Unii oameni îl scurtează intenționat. Dacă comandați USBASP original - există deja un cablu complet de 50cm.



Controalele consiliului

Există trei jumperi pe placă care setează diferite moduri de operare ale programatorului:
JP1 - se închide în cazul actualizării firmware-ului programatorului în sine
JP2 - triplu jumper, aici selectați ce tensiune va fi furnizată microcontrolerului de firmware sau 5V (poziția stânga) și 3,3V (poziția dreaptă)
JP3 - dacă îl închideți, atunci programarea controlerului va avea loc cu o frecvență redusă, dar chinezii nu au lipit pieptenele aici, deoarece nu este necesar pentru acest firmware
Programatorul, după cum puteți vedea, se bazează pe Atmega8 cu un cristal de cuarț de 12 MHz. Elementul din dreapta sus, semnat F1, cu un număr inversat 4 este o siguranță de auto-vindecare care protejează portul USB al computerului / laptopului dacă scurt circuit... Sub buiandrug JP2 există un stabilizator LDO 662K, reducând tensiunea de la 5V la 3,3V, dacă jumperul este setat în poziția corectă.

Instalarea driverelor

Pentru a începe să utilizați programatorul, trebuie mai întâi să instalați driverul pe acesta. Introduc orice programator în portul USB al computerului, sună un semnal despre echipament nou, LED-ul de pe dispozitiv în sine este aprins, dar căutare automatășoferii nu se întâmplă.
Notă.înainte de a instala driverul, trebuie să dezactivați verificarea semnăturii digitale în Windows
1) Descărcați, despachetați într-un loc convenabil.
2) Accesați „Manager dispozitive”, de exemplu, plasați cursorul peste butonul acasă(Win10), apăsați RMB și selectați „Device Manager”.

3) În ramura „Alte dispozitive” puteți vedea dispozitiv neidentificat USBASP cu un triunghi portocaliu -> deplasați cursorul peste el, apăsați RMB -> "Actualizați driverele ..."

4) Specificați calea către folderul despachetat anterior cu drivere - „libusb_1.2.4.0”, faceți clic pe „OK”

5) „Instalați acest driver oricum”

6) Gata, acum triunghiul portocaliu a dispărut, driverele sunt instalate



Bărbat cu firmware

Știam deja înainte că chinezii vând acești programatori fără cel mai recent firmware. Am decis să actualizez mai întâi firmware-ul pe unul dintre ele și apoi, de dragul interesului, să compar ambii programatori în funcțiune. Pentru a face acest lucru, conectez ambele dispozitive cu o buclă, pe master (pe care îl introduc în portul USB) nu se ating nici jumperi, iar pe programatorul slave (pe care vom actualiza firmware-ul) am rearanjat jumperul de la JP2 pe JP1:



Mă duc în programatorul Khazama AVR, selectez ATmega8 din lista derulantă și citesc mai întâi memoria Flash prin elementul de meniu „Comandă” -> „Citiți FLASH în tampon” pentru a salva firmware-ul din fabrica chineză. Doar în cazul în care.

În acest caz, o astfel de eroare va renunța periodic, închizând fereastra, programul va continua să funcționeze.

Citirea este în curs, care se termină cu o fereastră pop-up despre citirea cu succes a memoriei FLASH în buffer

Acum trebuie să salvați conținutul bufferului: "File" -> "Save FLASH Buffer As ...". Alegeți un loc convenabil unde firmware vechi va fi salvat, dați un nume (de exemplu, l-am numit firmware_1) și adăugați extensia * .hex - dacă nu o scrieți, va fi salvată ca un fișier simplu, fără o extensie.


Descarc firmware-ul pentru programator de pe pagină, arhivă usbasp.2011-05-28.tar.gz(în aceeași arhivă există drivere pentru Windows, despachetez conținutul într-un loc convenabil.
Între timp, în Khazama voi încărca firmware-ul descărcat în buffer. „Fișier” -> „Încărcați fișierul FLASH în buffer”. Aleg firmware-ul, unde numele spune atmega8, deoarece programatorul este intermitent pe acest cip.

După cum puteți vedea, există trei programe aici - pentru Atmega8, 48 și 88. În cazul nostru, Atmega 8 este cel pe care îl aleg.

Sunt cusut. Comandă -> Scrieți fișierul FLASH în buffer. Eroarea apare din nou, dar după aceea există un proces care se încheie cu succes.



Deoarece, în sensul obișnuit, „program” înseamnă să setați 1, atunci când lucrați cu siguranțe totul este exact opusul, ceea ce provoacă confuzie și, în acest caz, puteți bloca din greșeală controlerul și atunci va fi imposibil să îl blocați. Programul Khazama AVR Programmer este convenabil pentru vizualizarea ritmurilor siguranței - puteți vedea clar și programat care sunt instalate și care nu.

Acestea sunt situate de-a lungul căii „Comandă” -> „Siguranțe și biți de blocare ...”, se va deschide o fereastră:

Unde, prin apăsarea butonului „Citește totul”, se contorizează siguranțele și blocarea, iar eroarea notorie va avea timp să se târască de până la 5 ori la rând. Erorile se revarsă asupra firmware-ului din fabrica chineză. Dar dacă introduceți un programator recent intermitent în portul USB, cu firmware-ul descărcat de pe linkul de mai sus, atunci aceste erori nu vor mai fi accesate cu crawlere, cu toate acestea, erorile vor apărea în alt loc, dar mai multe despre ele mai târziu.

Comunicare cu placa Pro Mini (Atmega 168, 3.3V / 8MHz)

În acest caz, pinii programatorului sunt conectați la pinii plăcii. Pro Mini așa cum este ilustrat în schema de mai jos. Jumperii nu sunt interschimbabili, adică rămâne în poziția 5V.
Deşi Tablă Pro Mini este semnat ca 3.3V, 5V pot fi furnizate la 168th Atmega. Apropo, stabilizatorul AMS1117 de 3,3V este, de altfel, îndepărtat de pe tablă.



AVRDUDE PROG 3.3
Program de consolă pentru microcircuite intermitente, interfață grafică nu are, funcționează în stoc din Linie de comanda, dar entuziaștii au scris o mulțime de scoici pe ea, pentru comoditatea de a lucra cu ea. Una dintre aceste cochilii se numește AVRDUDE PROG, creată de dezvoltatori de limbă rusă. Acest shell, în opinia mea, este convenabil doar pentru Flash-flashing MK. După pornire, se selectează controlerul, în acest caz Atmega168 și tipul de programator - USBasp. Apoi puteți scrie / citi memoria. Atât firmware-ul din fabrică, cât și noul firmware nu au avut probleme în comunicarea cu Atmega168 în ambele cazuri. Din motive de interes, am cusut o schiță standard intermitentă Arduin exportată într-un fișier HEX binar. Totul este lin.




Programator Khazama AVR
Aici este suficient să selectați un microcontroler din lista derulantă și puteți lucra deja cu memorie / biți.
Cu toate acestea, dacă programatorul în sine este instalat firmware din fabrică, din când în când vor fi turnate erori, după cum sa menționat mai sus, pe firmware nou- aceste erori au dispărut.


Comunicare cu controlerul ATtiny13A în pachetul SOIC8

Conexiune conform schemei de mai jos. Dar aici totul este puțin mai interesant.

Deoarece cipul gol este în pachetul SOIC8 SMD, în acest caz l-am pus în adaptorul SOIC8-DIP8 pentru o conexiune ușoară cu programatorul în viitor. Puteți citi o recenzie a acestui adaptor.

AVRDUDE PROG 3.3
Aici este selectat din listă controlorul cu același nume, programatorul USBasp și, dacă programatorul este intermitent din fabrică Firmware chinezesc, apoi toate operațiunile sunt netede și netede. Cu toate acestea, merită să înlocuiți programatorul cu altul, cu firmware-ul actualizat, apoi apare o eroare în timpul oricărei operațiuni.

Apare datorită faptului că nici programul, nici programatorul nu pot trece automat la modul de programare lent necesar pentru ATtiny13. Dar există cel puțin două căi de ieșire:
1) Fier: închideți jumperul JP3

2) Program: editați fișierul „program.ini” din folderul cu programul AVRDUDE PROG 3.3


Adăugați patru linii de cod acolo și salvați. (Luat)
progisp = jtag2pdiportprog = COM1portenabled = 1 progisp = Usbasp -B 3 portprog = usb portenabled = 0

Notă. Aici se folosește cheia „-B”, care este angajată în transferul programatorului la o frecvență de programare redusă. Valoarea „3” - timp în microsecunde

După aceea, porniți din nou AVRDUDE PROG 3.3 și selectați UsbaspSpeed ​​în lista derulantă a programatorilor. Acum, lucrul cu ATtiny13 la un programator cu un nou firmware va fi fără erori, iar jumper-ul JP3 nu va mai trebui închis în acest caz.

Programator Khazama AVR
Un controler este selectat din listă și situația este aproape aceeași.

Un programator cu firmware din fabrică funcționează bine cu ATtiny13, cu excepția ferestrelor care apar în mod constant cu o eroare, despre care am vorbit deja mai devreme.
Dar cu programatorul pe noul firmware, apare deja o altă eroare cu incapacitatea de a citi semnătura ( semnatura digitala) a controlerului.

Dar merită să închizi jumperul JP3, și puteți lucra în siguranță


Sau pur și simplu setați frecvența de lucru din lista derulantă de-a lungul căii „Comandă” -> „Opțiuni program”, am setat frecvența la 187,5 kHz.

Notă. Frecvența de programare trebuie să fie de cel puțin 4 ori mai mică decât frecvența de ceas a microcircuitului intermitent. Dar dacă te uiți la siguranțele citite din ATtiny13, atunci pe ultima linie Int.Rc.Osc. Este indicat 9,6 MHz.
Cel puțin, un începător va avea o întrebare - de ce apare aceeași eroare pe 1,5 MHz setată în KHazame? Și, de asemenea, de ce, dacă în AtmelStudio scrieți, de exemplu, un cod pentru clipirea unui LED cu o frecvență de o dată pe secundă și scrieți într-un macro:
#define f_cpu 9600000 apoi prin încărcarea codului în Attiny13, LED-ul va clipi foarte încet?
- să ne uităm la penultima linie, unde Împărțiți ceasul la 8 la nivel intern- acesta este prescalerul inclus, care împarte acest 9,6 MHz cu 8 și, prin urmare, frecvența reală a cipului este de 1,2 MHz. Prin urmare, atunci când selectați o frecvență de 187,5 kHz sau mai mică, erorile dispar și puteți lucra normal cu controlerul.

Nota 2. Metoda cu alegerea frecvenței în KHazame în ceea ce privește viteza de funcționare depășește de mai multe ori metoda cu închiderea fizică a jumperului JP3, deoarece în acest din urmă caz ​​frecvența este redusă la 8 kHz.

Integrarea programatorului în Atmel Studio 7

Atmel Studio este un mediu de dezvoltare de la Atmel, dar nu poate funcționa direct cu USBASP, în special cu cel chinezesc. Cu toate acestea, datorită aceluiași program AVRDUDE, care face parte din pachetul AVRDUDE PROG 3.3, care va juca rolul de intermediar aici, puteți construi o „cârjă” și apoi în mediul însuși, puteți adăuga capacitatea de a MC conectat prin USBASP.

În primul rând, trebuie să porniți mediul, se presupune că un anumit cod a fost deja scris și compilat pentru noi. În exemplul meu, acesta este un simplu clipire cu LED - Blink.

În bara de instrumente de sus, selectați „Instrumente” - „Instrumente externe ...”

Se va deschide fereastră mică, faceți clic pe „Adăugați”

În caseta de sus "Titlu:" introduceți orice nume convenabil, am scris „Atmega168”, pentru că configurația pe care o voi oferi puțin mai jos se referă în mod specific la acest controler, iar pentru orice alt controler este configurată individual.
În caseta mare din partea de sus, numele instrumentului va fi duplicat automat.

A doua linie, câmp "Comanda:"- aici trebuie să specificați calea către fișierul „avrdude.exe”, care se află în folderul cu programul de mai sus

A treia linie, câmp "Argumente:" trebuie să introduceți configurația propriu-zisă

Configurare pentru Atmega168

P m168 -c usbasp -P usb -U flash: w: $ (ProjectDir) Debug \ $ (TargetName) .hex: a
-p - numele controlerului
-c - care programator
-P - port prin care va fi încărcat firmware-ul
-U - ce operație cu ce memorie va fi efectuată (în acest caz, scrierea pe Flash)
Dacă trebuie să configurați un alt MK, atunci parametrul „m168” trebuie schimbat în controlerul corespunzător, care va fi intermitent. De exemplu „m8” pentru Atmega8 sau „m328p” pentru Atmega328p. Consultați parametrii pentru alte MCU - veți găsi și descrieri ale tastelor AVRDUDE.

Configurare pentru ATtiny13


După completarea câmpurilor, faceți clic pe „Aplicați” și „OK”. Fereastra se va închide

Acum, dacă faceți din nou clic pe „Instrumente”, instrumentul nou creat va apărea acolo. Și când faceți clic pe acesta, codul compilat va fi automat afișat în controler.

Dar această operațiune are loc în două clicuri, ceea ce nu este foarte convenabil. Este necesar să aduceți acest instrument la bara principală de instrumente, astfel încât să fie întotdeauna la vedere.
Pentru a face acest lucru, mergeți din nou la „Instrumente”, apoi faceți clic pe elementul „Personalizați ...”
Se va deschide următoarea fereastră:

Accesați fila „Comenzi” - faceți clic pe „Adăugați comanda ...”

Va apărea o altă fereastră. În acesta - selectați „Instrumente” în coloana din stânga și selectați „Comandă externă 1” în coloana din dreapta. Faceți clic pe „OK”

„Comanda externă 1” va fi în partea de sus a listei și, acordați atenție bara de instrumente în sine - elementul „Atmega168” a apărut în interfață.

Dar mi se pare că locul acordat acestuia nu are un succes deplin, este indicat să-l mutați spre dreapta, pentru aceasta apăsați butonul „Deplasare în jos” (o apăsare = deplasați o poziție spre dreapta). După aceea, puteți închide fereastra făcând clic pe butonul „Închidere” și coaseți cipul direct din studio cu un singur clic prin programatorul monitorizat.


Când intermitem cipul în acest fel, fereastra consolei AVRDUDE apare pentru o secundă. Dar poate fi necesar să salvați cumva acest jurnal pentru o vizualizare ulterioară - apoi în fereastra „Instrumente externe” trebuie să bifați caseta „Utilizați fereastra de ieșire”.

Și acum jurnalul va fi afișat în fereastra de ieșire, care se află în partea de jos a ATmel Studio 7. Această casetă de selectare poate fi setată separat pentru fiecare controler adăugat la „Instrumente externe”.

Supliment pentru siguranțele programatorului

Din documentul READMI care vine cu driverele și firmware-ul pentru USBASP, s-a dovedit ulterior că dezvoltatorul recomandă setarea unei anumite configurații de biți de siguranță care determină funcționarea rezonatorului extern.
Dezavantajul khazam "s este că valorile HEX ale biților setați nu sunt afișate în fereastra cu siguranțele. Acest lucru se poate vedea deja în AVRDUDE PROG. Siguranțele din fabrică stabilite de chinezi arată astfel ( asigurați-vă că puneți un punct „invers” - evidențiat cu un dreptunghi albastru):

Este necesar să eliminați două neagră din „BODEN” și „SUT1” (evidențiată în oval roșu)
puneți două casete de selectare pe „CKOPT” și „SUT0” (evidențiat printr-un dreptunghi verde),
în dreapta în coloană, valorile HEX ale biților modificați vor fi afișate (evidențiate într-un dreptunghi roșu îngroșat): Blocare octeți 3F, Fuse High Byte: C9, Fuse Low Byte: EF.

Dacă totul se potrivește, puteți apăsa „programare”

ATENŢIE. Siguranță bătută în furie RSTDISBL- nu-l atingeți în nici un caz, altfel instalarea acestuia va bloca controlerul și nu va mai fi posibil să-l blocați prin USBASP.
_____________________________________

concluzii

Testat, funcționează. Dacă nu este planificat să se utilizeze khazam, atunci nu are rost să actualizăm firmware-ul pentru programator, deoarece funcționează excelent, iar în cazul ATtiny13, nu sunt necesare editări și jumperi. Cel mai recent firmware- dintr-un anumit motiv s-a dovedit a fi mai capricios în această privință. Singurul lucru, după primire, placa trebuie lipită și spălată.

Lista linkurilor

În acest articol vom descrie etapele de fabricație „pas cu pas” Programator USBasp pentru microcontrolere AVR... În articole separate, vom oferi o descriere a instalării driverelor pentru operare Sisteme Windows XP și Windows 7 (x64 / x86). La sfârșitul postării, există un link cu documentația necesară pentru realizarea unui programator USBasp cu propriile mâini.

Programatorul USBasp, datorită ușurinței sale de fabricare și a utilizării componentelor ieftine și disponibile pe scară largă, a devenit foarte popular în rândul radioamatorilor. Parametrii săi de funcționare nu sunt inferiori programatorilor de microcontroler AVR profesioniști și scumpi.

Principalele caracteristici ale programatorului USBasp

  • Funcționează cu multiple sisteme de operare- Linux, Mac OS X și Windows - inclusiv Windows 8!
  • Nu necesită alimentare externă.
  • Poate programa la viteze de până la 5kB / s
  • Există o opțiune (Switch 2) pentru a reduce viteza de programare - pentru procesoarele cu cuarț mai mici de 1,5 MHz
  • Oferă tensiune pentru programare (comutatorul 1) 5 volți
  • Indicarea funcționării programatorului prin LED

Înainte de a începe lucrul, ar trebui să vă familiarizați cu succesiunea tuturor acțiunilor efectuate, și anume:

  1. Alegerea schemei / modelului placă de circuit imprimat
  2. Transferul unei plăci cu circuite imprimate pe o fibră de sticlă îmbrăcată în folie
  3. Gravarea plăcii cu circuite imprimate în soluție de clorură ferică
  4. Găurirea găurilor
  5. Ansamblu element (lipire)
  6. Programator de programare Atmaga8
  7. Conectarea programatorului la computer
  8. Instalarea driverului - Windows XP, Windows 7
  9. Selectarea unui program cu suport USBasp

Există multe versiuni ale programatorului USBasp, dar toate se bazează pe circuitul principal de Thomas Fischl. Firmware-ul microcontrolerului programatorului este, de asemenea, autorul său.

Circuitul original al programatorului:

În acest caz, schema inițială a fost aleasă ca bază. Deoarece utilizarea jumperilor în circuitul original nu este foarte convenabilă, sa decis să se utilizeze comutatoare DIP. Unele valori ale rezistorului au fost, de asemenea, modificate.
Mai mult, în circuitul original, liniile TxD și RxD sunt direcționate către conectorul ISP, deși acest lucru nu este necesar (mai exact, ele nu sunt utilizate în practică).

Mai jos este diagrama cu modificările făcute:

Construirea programatorului USBasp

Există multe versiuni ale PCB-ului acestui programator, unele pot fi găsite pe site-ul oficial USBasp. Cu toate acestea, a fost realizată pe baza schemei de mai sus.

Din păcate, datorită utilizării comutatoarelor DIP, aspectul plăcii a devenit puțin mai complicat, ceea ce a condus la utilizarea a 2 jumperi scurți pentru a menține PCB-ul pe o parte.

Mai jos este rezultatul PCB:

După cum puteți vedea în figură, elementele SMD nu au fost utilizate în programator. Spațiul gol de pe tablă este „inundat” cu un câmp de masă, în principal pentru a nu se coroda un numar mare de cupru și, de asemenea, pentru a reduce influența interferențelor asupra programatorului.

Lista elementelor utilizate în programatorul USBasp:

  • R1: 10k
  • R2: 180
  • R3: 100
  • R5, R6: 68
  • R7: 2d2
  • C1, C2: 22p
  • C3: 10μ
  • C4: 100n
  • LED1: LED roșu la 20mA
  • LED2: LED verde la 20mA
  • D2, D3: diode Zener de 3,6 V
  • X1: conector USB tip B.
  • SV1: soclu IDC-10
  • Q1: Cuarț 12MHz, pachet HC49-S
  • SW1: Întrerupător 3 poziție
  • IC1: Atmega8 ( NOTĂ: Nu utilizați microcontrolerul Atmega8 - PU din cauza limitării sale maxime frecvența ceasului până la 8 MHz!)

Transferul plăcii de circuite imprimate a programatorului USBasp către fibra de sticlă se face folosind metoda LUT (). Nu vom descrie cum să faceți acest lucru, deoarece există o mulțime de aceste informații în rețea.

Pe scurt, mai întâi un desen 1: 1 este tipărit pe hârtie lucioasă, apoi se aplică pe fața de cupru curățată și degresată a fibrei de sticlă și fixată cu bandă de hârtie. Apoi, partea de hârtie este netezită cu grijă cu un fier de călcat pe un 3-ke. După aceea, totul este înmuiat în apă și curățat cu grijă de hârtie.

Următorul pas este gravarea plăcii într-o soluție de clorură ferică. În timpul gravării, este recomandabil să mențineți temperatura soluției de cel puțin 40 C, așa că scufundăm borcanul cu soluția în apă fierbinte:


După finalizarea procesului de gravare, îndepărtați tonerul cu acetonă.

Acum nu mai rămâne decât să găuriți găurile. După finalizarea procesului de fabricație a plăcii, puteți începe să lipiți elementele USBasp ale programatorului, începând cu jumperii.

Gata de tipărire (în Format PDF) o imagine a plăcii cu circuite imprimate este la sfârșitul articolului. De asemenea, puteți găsi mai multe opțiuni pe site-ul oficial al proiectului.

Prima lansare a programatorului USBasp

Acum, când toate detaliile sunt lipite, rămâne doar să „blițim” microcontrolerul Atmegę8 al programatorului însuși. Acest lucru necesită un programator separat, acesta poate fi, de exemplu, STK 200 (port LPT), STK500 etc. Programatorul LPT este conectat la USBasp prin conectorul IDC-10.

Vă rugăm să rețineți că distribuția pinilor în conectorul programatorului original (USBasp) este în dreapta, în timp ce în versiunea descrisă în acest articol este în stânga:

Distribuția prezentată în figura din dreapta corespunde celor utilizate de Atmel în programatorii lor originali. Această distribuție reduce riscul de interferență în timpul programării atunci când se utilizează fire lungi de la programator la controler, deoarece fiecare linie de semnal este protejată cu masă, cu excepția MOSI.

În timpul programării, activați modul SELF prin setarea comutatorului DIP # 3 la ON. Acest lucru face posibilă programarea Atmega8. După finalizarea programării, poziția comutatorului (3) trebuie setată la OFF.

Cea mai recentă versiune de firmware poate fi descărcată de pe site-ul oficial. Vă recomandăm versiunea pentru Atmega8, care se află în arhivă: usbasp.2011-05-28.tar.gz.

Vă rugăm să rețineți că, înainte de a programa Atmega8, trebuie să setați siguranțele care au următoarele valori:

  • # pentru Atmega8: HFUSE = 0xC9 LFUSE = 0xEF
  • # pentru Atmega48: HFUSE = 0xDD LFUSE = 0xFF

În cazul unei programări reușite, conectăm programatorul la conectorul USB al computerului, în timp ce LED-ul roșu ar trebui să se aprindă, iar computerul ar trebui să anunțe despre descoperirea de echipamente noi.

Instalarea driverelor de programare USBasp

Metoda de instalare a driverelor programatorului este descrisă în articole separate, există și driverele în sine. Mai jos sunt linkuri directe către aceste articole:

  • Instalarea driverelor pentru programatorul USBasp sub Windows XP
  • Instalarea driverelor pentru programatorul USBasp Windows 7 x64 / x86

Programe pentru programatorul USBasp

Cel mai popular program care acceptă programatorul USBasp este program de consolă AVRdude. Există, de asemenea, multe programe derivate, a căror utilizare este mult mai convenabilă. Acestea sunt prezentate în articolul Compararea programelor pentru a sprijini programatorul USBasp.



Ți-a plăcut articolul? Împărtășește-l