Programatori de microcontrolere AVR. Programatoare pentru microcontrolere AVR (USB, COM, LPT) Programatoare pentru controlere AVR

Programator USBASP - dispozitiv, pinout, conexiune, firmware

Astăzi vom analiza cum, ieftin și rapid, să programăm orice microcontroler AVR care acceptă programarea în serie (interfața ISP) printr-un port USB al computerului. Ca programator, vom folosi un programator foarte simplu și popular USBASP, și ca program - AVRdude_Prog V3.3, care este destinat programării MK AVR.

Programator USBASP

Pentru a programa microcontrolerul, trebuie să aveți două lucruri:
- programator
- adecvat software pentru a scrie date către MK
Unul dintre cei mai simpli, populari și miniatori programatori AVR este Programator USBASP, creat de germanul Thomas Fischl.
Există multe soluții de circuite diferite pentru acest programator, puteți asambla programatorul singur sau cumpăra (cost - 2-3 dolari). Când îl asamblați singur, trebuie avut în vedere faptul că programatorul asamblat va trebui să fie intermitent cu un programator terț.

Vom lua în considerare cea mai „elegantă” versiune a programatorului:


Caracteristicile programatorului:
- funcționează cu diverse sisteme de operare - Linux, Mac OC, Windows (pentru sistemul de operare Windows, pentru ca programatorul să funcționeze, trebuie să instalați driverele - arhivați la sfârșitul articolului)
- viteza de programare până la (viteza de programare poate fi setată singură, de exemplu în AVRDUDE_PROG) 375 (5) kb / s
- are o interfață ISP cu 10 pini (este conformă cu standardul ICSP cu pinout cu 10 pini)
- acceptă două tensiuni de alimentare ale programatorului - 5V și 3,3V (nu toate port USBpC-urile funcționează la 5 volți)
- alimentat de port Computer USB, are protecție de supracurent încorporată (siguranță auto-resetabilă de 500 mA)

Alocarea jumperilor:
conector JP1 - conceput pentru intermitentul microcontrolerului programator (pentru intermitent - trebuie să închideți contactele)
conector JP2 - tensiunea de alimentare a programatorului - 5 volți sau 3,3 volți (implicit - 5 volți, ca în fotografie). Un microcontroler programabil sau structura în care este instalat, cu un consum de curent de 300-400 mA, poate fi alimentat de la programator, pentru aceasta există o ieșire + 5V (VCC) pe conector.
conector JP3 - determină frecvența ceasului datelor SCK: deschis - frecvență înaltă (375 kHz), închis - frecventa joasa (8 kHz)
Mai multe despre conectorul JP3
Jumper JP3 este conceput pentru a reduce viteza de scriere a datelor pe microcontroler. Dacă microcontrolerul are o frecvență de ceas mai mare de 1,5 MHz, jumper-ul poate fi deschis, în timp ce viteza de programare este mare. Dacă frecvența ceasului este mai mică de 1,5 MHz - este necesar să scurtcircuitați pinii jumperului - reduceți viteza de programare, altfel microcontrolerul nu va putea programa. De exemplu, dacă programăm un microcontroler ATmega8 (în principiu, aproape toate MCU-urile AVR sunt setate la o frecvență de ceas de 1 MHz în mod implicit), care are o frecvență de ceas implicită de 1 MHz, va fi necesar să se scurteze pinii jumperului (ca în fotografie). Probabil este mai bine să păstrați acest jumper închis permanent, astfel încât, uitând de existența sa, să nu vă faceți griji cu privire la motivele pentru care microcontrolerul nu este intermitent.

Dacă îl folosești pe cel postat pe site, atunci poți uita de jumper

Programatorul este acceptat de următorul software:
- AVRdude
- AVRdude_Prog
- Bascom-AVR
- Khazama AVR Prog
- AVR eXtreme Burner

Este foarte simplu să lucrați cu un astfel de programator - conectați pinii corespunzători ai programatorului la microcontroler, conectați-vă la portul USB al computerului - programatorul este gata să funcționeze.
Fixarea cablului de programare USBASP cu 10 pini :


1 - MOSI - ieșire de date pentru programare serială
2 - VCC - +5 (+3.3) Ieșire volt pentru alimentarea unui microcontroler programabil sau a unei plăci programabile de pe un port USB al computerului (curent maxim 200 mA - pentru a nu arde portul USB)
3 - NC - neutilizat
4 - GND - fir comun (minus alimentare)
5 - RST - conectat la pinul RESET al microcontrolerului
6 - GND
7 - SCK - ieșire ceas de date
8 - GND
9 - MISO - intrare date pentru programare serială
10 - GND

Instalarea driverelor pentru programatorul USBASP

Instalarea driverului pentru programatorul USBASB este foarte simplă:
- conectați programatorul la portul USB al computerului și un nou dispozitiv „USBasp” va apărea în managerul de dispozitive cu un triunghi galben și un semn de exclamare în interior, ceea ce înseamnă că nu sunt instalate drivere
- descărcați și dezarhivați fișierul „USBasp-win-driver-x86-x64-ia64-v3.0.7”
- rulați fișierul „InstallDriver” - driverele pentru programator vor fi instalate automat
- verificați managerul de dispozitive - triunghiul galben ar trebui să dispară (dacă nu, faceți clic dreapta pe dispozitivul „USBasp” și selectați „Actualizare”
- programatorul este gata să funcționeze

FUSE biți la programarea USBASP AVR:

Arhiva „usbasp.2011-05-28” conține dosare:
\u003d BIN:
- win-driver - drivere pentru programator
- firmware - firmware pentru microcontrolere Mega8, Mega88, Mega48
\u003d circuit - o diagramă a unui programator simplu în PDF și Cadsoft Eagle

Când intermitem un programator chinez, vă recomand să instalați bitul CKOPT FUSE. CKOPT este legat de frecvența limitată a ceasului. În mod implicit, CKOPT este resetat și funcționarea stabilă a microcontrolerului programatorului atunci când se utilizează un rezonator cuarț este posibilă numai până la o frecvență de 8 MHz (iar MC-ul programatorului funcționează la o frecvență de 12 MHz). Setarea bitului FUSE CKOPT crește frecvența maximă la 16 MHz. Chinezii nu ating acest bit FUSE, ceea ce duce destul de des la eșecul programatorului (de obicei sistemul nu detectează programatorul).

Arhivă „USBasp-win-driver-x86-x64-ia64-v3.0.7” conceput pentru a instala driverele așa cum se menționează în articol

(518,9 KiB, 13 188 accesări)

(10,9 MiB, 24 942 accesări)

Programatorul USBASP descris în articol a aprins intermitent ultima versiune programe testate în funcțiune, cu jumperi și jumperi instalați, puteți achiziționa în magazinul online „MirMK-SHOP”

Competiție radioamatori pentru începători
„Designul meu radioamator”

Programator USB AVR

Schema și software-ul unui programator AVR USB de mare viteză, pe care un radioamator novice îl poate asambla și cu propriile mâini

Proiectarea competitivă a unui radioamator novice -
„Programator USB AVR”

Buna dragi prieteni si invitati ai site-ului!
Prezint pentru judecata voastră a doua lucrare competitivă.
Autor de proiectare - Grigoriev Ilya Sergeevich.
Acum pe site-ul nostru nu numai „Gheața s-a spart”, ci și „Întâlnirea continuă”.

Programator USB AVR

Un pic despre acest design.
La prima vedere, se pare că această schemă este complicată, nu „dură” pentru începători, iar autorul este deja un radioamator destul de experimentat.
Îndrăznesc să îi asigur pe toată lumea că Ilya Sergeevich este un radioamator novice. Și prin designul său, a demonstrat că, dacă se dorește, perseverența, intenția, un design de o asemenea complexitate poate fi asamblat de orice radioamator novice.
Acum, lăsați autorul să vorbească.

Grigoriev Ilya Sergeevich, orașul Khabarovsk

Salutare tuturor!
Vă prezint pentru judecata dvs. cea de-a doua lucrare finalizată (prima este un simplu intermitent).
Am decis că în viitor voi asambla circuite bazate pe orice microcircuite care trebuie programate, pentru care, de fapt, este nevoie de un programator!
Există un număr imens de circuite pe Internet, pentru fiecare gust, dar principala problemă și un comentariu la circuite este că nu am nici LTP, nici port COM, rămâne opțiunea de programare USB. Dar chiar și aici există o captură - pentru majoritatea programatorilor, pentru a începe, microcircuitele lor trebuie să fie programate să funcționeze, iar pentru asta aveți nevoie ... - așa este, un programator! A fost posibil, desigur, să asamblăm programatorul lui Gromov, să trecem prin prieteni și să găsim un port LTP sau COM, dar nu am vrut asta. Ultima opțiune a fost utilizarea unui programator bazat pe microcircuitul FT232RL, minus acest programator și acest microcircuit are doar prețul acestuia din urmă - costă în jur de 230 de ruble în Khabarovsk. Am decis să nu economisesc bani pe acest tip de bani și să încep să asamblu programatorul pe FT232RL.

Deci, o listă de detalii:
Aceasta este inima programatorului - FT232RL. Preț - 230 ruble
Al doilea microcircuit este 74HC244, este necesar, deoarece acest programator mai are un dezavantaj - nu dă linia RESET la sfârșitul programării. Prin urmare, pentru a porni circuitul, este necesar să scoateți conectorul ISP de pe placă, ceea ce este foarte incomod. Acest lucru poate fi rezolvat pur și simplu prin adăugarea unui cip tampon 74HC244 la acest circuit. Preț 20-30 ruble
Și apoi un set de lucruri mici:
- 4 rezistențe de 47 Ohm
- 4 rezistențe de 100 Ohm
- 1 rezistor de 4,7 kohm
- 3 rezistențe 300 Ohm
- 3 conductoare de 0,1 u fiecare
- 3 LED-uri (k, s, g)
- 1 diodă Schottky (astfel încât un posibil curent invers de la dispozitivul care se aprinde intermitent să nu ardă programatorul și PC-ul)
– 1 Tip USB B, numită și imprimantă
Cam despre asta e! Lucrurile mici costă în jur de 50 de ruble
Am luat toate componentele în versiunea obișnuită și smd, tk. Nu știam până la final cum aș lucra cu componentele smd, brusc ar trebui să colectez o versiune mare.

Iată circuitul în sine:

Principiul de funcționare.
Programatorul este alimentat de la portul USB. Nivelurile semnalelor de ieșire ale programatorului folosind jumperul JP1 pot fi setate fie la 5 volți, fie la 3 volți.
Tensiunea de alimentare a programatorului poate fi alimentată prin conectorul X2 către placa programabilă, pentru care este necesar să închideți jumperul JP2.
Trebuie avut în vedere faptul că, cu o sursă de alimentare de 5 volți, tensiunea este furnizată de la portul USB. Iar curentul maxim care poate fi obținut de la programator este limitat la 500 mA. Cu toate acestea, pentru acest curent, FT232 trebuie configurat folosind utilitarul FT Prog.
Cu o sursă de alimentare de 3 volți, tensiunea este preluată de la ieșirea stabilizatorului intern al microcircuitului FT232, al cărui curent maxim este de aproximativ 50 mA.
Pentru a preveni alimentarea cu energie a portului USB dispozitiv extern o diodă Schottky este instalată pe programator (au o mică cădere de tensiune în direcția înainte). Dacă se dorește, dioda VD1 poate fi înlocuită cu o diodă convențională sau un jumper, dar aceasta este pe propriul pericol și risc.
De asemenea, programatorul poate fi folosit ca convertor USB-UART. Pentru a face acest lucru, semnalele RXD, TXD sunt aduse la conectorul X2 și LED-urile LED2, LED3 sunt conectate. Acestea clipesc când are loc transferul de date.
Programatorul nu trebuie să fie deconectat de la placa programabilă, deoarece după programare, microcircuitul DD1 transferă tampoanele de ieșire în a treia stare.
LED1 se aprinde când programarea este în desfășurare.
Pe tampon de contact JP poate emite semnal de ceas. Acest lucru necesită configurarea FT232 utilizând utilitarul FT Prog.

Procesul de asamblare în sine.
În primul rând, am imprimat diagrama pe o foaie de revistă lucioasă (am folosit atât hârtie foto, cât și hârtie adezivă pentru imprimantă, totul este greșit ... cel mai bun efect este imprimarea diagramei pe o revistă lucioasă). Apoi, după ce combinăm o foaie lucioasă cu o bucată de PCB, începem să călcăm cu un fier de călcat, punându-l pe el temperatura maximă... Mai întâi, am pus fierul drept pe frunză, astfel încât să se lipească de PCB, l-am ținut timp de 10 secunde, apoi am pus o bucată de hârtie deasupra și am început să călc 3-4 minute, apoi am îndepărtat bucata de hârtie și am aplicat fierul de călcat încă câteva secunde cu un colț ascuțit Am luat fierul în locurile în care vor exista viitoare căi pentru microcircuite.

După aceea, scoateți fierul de călcat și lăsați placa să se răcească complet. Apoi ne scufundăm textolitul cu o bucată de hârtie lucioasă în apă caldă timp de 5 minute, astfel încât hârtia să se ude și să cadă în spatele textolitului, apoi rulăm cu atenție hârtia. Iată ce se întâmplă:

Atunci otravim. Otravesc cu clorură ferică: turn aproape apă fierbinte, dizolv pulberea în ea, scufund textolitul și apoi turn apă caldă în lighean și scufund bolul cu clorură ferică acolo. Cu cât concentrația soluției și temperatura sunt mai mari, cu atât reacția va avea loc mai repede.
Iată ce s-a întâmplat:

Apoi am luat un tampon de bumbac cu acetonă și am scos tonerul, apoi l-am conservat.

Și a început să lipească:

Am asamblat programatorul, după care TREBUIE să verific totul pentru un scurtcircuit. În general, de când Am lucrat cu un astfel de fleac pentru prima dată, apoi după fiecare rezistor, după fiecare conductor, am verificat programatorul pentru joc (este foarte clar dacă lipirea a intrat pe pistele adiacente) și am verificat cu un multimetru o închidere a circuitului. Rezultatul este acesta - de 2 ori au existat scurtcircuite sub rezistențe ... totul a fost corectat cu succes.
De asemenea, după asamblarea programatorului, nu trebuie să îl conectați imediat la portul USB. Asigurați-vă că nu există scurtcircuite între masă și sursa de alimentare pozitivă, setați jumperii în poziția necesară și abia apoi conectați programatorul la computer.
Sincer, eram îngrijorat, deși eram sigur că nu exista scurtcircuit.
După conectare, am simțit că placa se încălzește, în zona FT232RL, iar PC-ul a emis un mesaj de conectare dispozitiv necunoscut cu munca greșită. Am oprit rapid programatorul și din nou, am examinat cu atenție toate pistele pentru aderența lipirii la pistele adiacente și am lipit din nou toate știfturile microcircuitelor. După aceea, am conectat din nou programatorul și, iată! , programatorul a fost hotărât și a cerut să instaleze lemne de foc! Am pus lemne de foc și au apărut 2 dispozitive noi în managerul de aplicații:

Ura! Acum vă puteți gândi serios să lucrați cu microcircuite!
Multumesc pentru atentie!

(666,9 KiB, 2.785 accesări)

Dragi prieteni și oaspeți ai site-ului!

Nu uitați să vă exprimați opinia cu privire la intrări și să participați la discuțiile de pe forumul site-ului. Mulțumesc.

Odată cu dezvoltarea tehnologiei informatice, de fiecare dată devine din ce în ce mai puțin mai puține calculatoare echipat cu porturi COM și LPT. Acest lucru, la rândul său, provoacă dificultăți, în special pentru radioamatori, asociați cu asocierea instrumentelor de programare a microcontrolerelor cu un computer personal.

Acest articol descrie un programator USB pentru microcontrolere AVR, pe care îl puteți asambla manual. Este construit pe microcontrolerul Atmega8 și este capabil să funcționeze de la un conector USB al computerului. Acest programator este compatibil cu STK500 v2.

Descrierea programatorului USB

Programatorul USB este construit pe o placă din fibră de sticlă îmbrăcată pe o singură față. Există 2 jumperi pe placă: unul este situat sub conectorul SPI, al doilea este situat lângă același conector.

După ce toate detaliile sunt lipite, trebuie să blocați microcontrolerul Atmega8 cu firmware-ul dat la sfârșitul articolului. Siguranțele care trebuie setate la programarea microcontrolerului Atmega8 ar trebui să arate astfel:

  • SUT1 \u003d 0
  • BOOTSZ1 \u003d 0
  • BOOTSZ0 \u003d 0
  • CKOPT \u003d 0
  • SPIEN \u003d 0

Trebuie reamintit faptul că în unele programe siguranțele sunt setate în sens invers. De exemplu, în programul CodeVisionAVR, bifați casetele opuse siguranțelor de mai sus, iar în programul PonyProg, invers.

Programare Atmega8 prin portul LPT al computerului

Cel mai rapid și mai ieftin mod de a programa Atmega8 este să folosiți programatorul LPT pentru AVR. O diagramă similară este prezentată mai jos.

Microcontrolerul este alimentat de un regulator simplu de tensiune 78L05. Programul UniProf poate fi folosit ca un shell pentru programare.

Când porniți programul pentru prima dată și fără controler conectat, apăsând butonul „LPTpins”, trebuie să configurați pinii portului LPT după cum urmează:

În momentul lansării UniProf, acesta determină automat tipul de microcontroler. Încărcați firmware-ul Atmega8_USB_prog.hex în memoria UniProf, respingeți conexiunea la fișierul EEPROM.

Setăm siguranțele după cum urmează (pentru programul UniProF) apăsând butonul „FUSE”:

Pentru a memora setările, apăsăm pe toate cele trei butoane „Scrie”. Apoi, făcând clic pe „Șterge”, mai întâi ștergem memoria microcontrolerului flash. După aceea, faceți clic pe „Prog” și așteptați finalizarea firmware-ului.

Configurarea unui programator USB

După ce microcontrolerul nostru este intermitent, acesta trebuie instalat pe placa de programare USB. Apoi, conectăm programatorul la portul USB al computerului, dar nu alimentăm încă energie.

Setarea portului:

Configurarea terminalului:

Setare ASCII:

Acum, după toate procedurile făcute, furnizăm energie programatorului USB. LED-ul HL1 ar trebui să clipească de 6 ori și apoi să se aprindă constant.

Pentru a verifica conexiunea dintre programatorul USB și computer, apăsați tasta Enter de două ori în programul HyperTerminal. Dacă totul este în ordine, ar trebui să vedem următoarea imagine:

Dacă nu este cazul, verificați din nou instalarea, în special linia TxD.

Apoi, introducem versiunea programatorului 2.10, deoarece fără aceasta programatorul nu va funcționa cu programe de „nivel superior”. Pentru aceasta, introduceți „2” și apăsați „Enter”, introduceți „a” (engleză) și apăsați „Enter”.

Programatorul USB este capabil să recunoască conexiunea unui microcontroler programabil. Acest lucru se face sub forma controlului „pull-up” al semnalului Reset la sursa de alimentare. Acest mod este activat și dezactivat după cum urmează:

  • „0”, „Enter” - modul este dezactivat.
  • „1”, „Enter” - modul este activat.

Schimbarea vitezei de programare (1 MHz):

  • „0”, „Enter” - viteză maximă.
  • „1”, „Enter” - viteză redusă.

Aceasta finalizează lucrările pregătitoare, acum puteți încerca să blocați un microcontroler.

(descărcat: 1 203)

Î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 profesioniști și costisitori de microcontrolere AVR.

Principalele caracteristici ale programatorului USBasp

  • Funcționează cu mai multe 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 unui aspect / desen PCB
  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 programator 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 rezistenței 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 dus 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 placă este „inundat” cu un câmp la sol, în principal pentru a nu extrage cantități mari de cupru și, de asemenea, pentru a reduce influența zgomotului 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 în 3 poziții
  • IC1: Atmega8 ( NOTĂ: Nu utilizați microcontrolerul Atmega8 - PU din cauza limitării frecvenței maxime a ceasului la 8 MHz!)

Transferarea modelului plăcii de circuite imprimate a programatorului USBasp pe laminatul din fibră de sticlă se realizează 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 partea 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 cu 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 programatorului USBasp, î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, 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 - în stânga:

Distribuția prezentată în figura din dreapta corespunde cu cea utilizată de Atmel în programatorii săi originali. Această distribuție reduce riscul de zgomot î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.

Pentru durata programării, activați modul SELF prin rotirea 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țe care au următoarele valori:

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

În caz de programare reușită, 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 programul de consolă AVRdude. Există, de asemenea, multe programe derivate care sunt mult mai convenabile de utilizat. Acestea sunt prezentate în articolul Compararea programelor pentru a sprijini programatorul USBasp.

Există multe circuite de programare cu microcontroler pe Internet. Vă prezint o variantă a unui programator USB universal în circuit cu capacitate de depanare, pe care îl folosesc. Puteți asambla acest programator cu propriile mâini.

Baza programatorului este microcircuitul FT2232D. Este un convertor USB în două porturi UART. Particularitatea constă în faptul că canalul "superior" A poate funcționa în modurile JTAG, SPI și I 2 C, care este necesar pentru programarea microcontrolerelor, a diferitelor cipuri de memorie etc.

Dezvoltarea acestui programator USB se realizează pe un computer folosind biblioteci de la compania FTDI Chip.

Dispozitivul este alimentat de interfață USB... Când este asamblat corect, circuitul nu trebuie configurat. Funcționarea dispozitivului depinde de abilitatea dezvoltatorului de software. Rezistoarele R8, R9, R12, R13, R14, R15, R16 limitează curentul dacă sunt conectate incorect la dispozitiv, respectiv ieșirile dispozitivului programat nu ar trebui să fie conectate la alte elemente din circuit sau să aibă astfel de tractiuni care, atunci când se formează divizoare de tensiune, nu ar distorsiona nivelurile logice. Chip U1 este utilizat pentru a salva setările utilizatorului.

Pinii U2 (canalul A):
24 - ADBUS0 - ieșire - în modul JTAG TCK, în modul SPI SK;
23 - ADBUS1 - ieșire - în modul JTAG TDI, în modul SPI DO;
22 - ADBUS2 - intrare - în modul JTAG TDO, în modul SPI DI;
21 - ADBUS3 - ieșire - în modul JTAG TMS, în modul SPI ca semnal auxiliar (CS);
20 - ADBUS4 - în modul JTAG intrare / ieșire, în modul SPI ieșire auxiliară. Acest pin este utilizat pentru a furniza semnalul RESET microcontrolerului;
15 - ACBUS0 - intrare / ieșire programabilă liber în toate modurile (utilizată opțional pentru a furniza energie dispozitivului programabil);
13 - ACBUS1 - intrare / ieșire programabilă liber în toate modurile.

În principiu, aceste descoperiri sunt multifuncționale. Comportamentul lor este determinat de modul selectat la deschiderea portului.

Canalul B este utilizat pentru depanarea dispozitivului care este programat. Pentru a face acest lucru, trebuie doar să aveți un port UART neutilizat în microcontroler. Mai mult, o chestiune de tehnologie. În programul de microcontroler, în locurile potrivite, folosim funcția de ieșire formatată printf ().

40 -BDBUS0 - ieșire - în modul UART TXD;
39 -BDBUS1 - intrare - în modul UART RXD;
28 - BCBUS2 - ieșire - în modul LED UART indicator (se aprinde la transferul de date prin USB);
27 - BCBUS3 - ieșire - în modul LED UART-indicator (se aprinde când primiți date prin USB).

Mai jos este PCB-ul programatorului

Astăzi acest programator universal acceptă microcontrolere AVR prin interfețe JTAG și SPI. Mai mult, viteza firmware-ului Atmega64 de către JTAG nu depășește 5 secunde, iar SPI nu depășește 8 secunde. Practic, puteți bloca orice microcontrolere la care se aplică specificațiile pentru programator. În prezent, de exemplu, este în curs de dezvoltare pentru a sprijini microcontrolerele NEC.

Forma de lucru este împărțită în două părți: în stânga tabelului pentru lucrul cu FLASH (sus) și EEPROM (jos), aici puteți deschide fișiere sau încărca firmware-ul de pe microcontroler, puteți verifica, edita conținutul celulelor de memorie; în dreapta este un câmp de text pentru depanare, aici sunt afișate datele de pe canalul B, puteți introduce acolo și text care va fi trimis la port (funcțional este analog cu HyperTerminal). Dezvoltarea se realizează pe platforma Visual C # pentru Windows. De asemenea, este posibil să se dezvolte în alte limbi. Programatorul poate funcționa și sub Linux.

Cărți folosite:
1. A.V. Evstigneev „Microcontrolere AVR ale familiilor Tiny și Mega ale ATMEL”, Editura M. „Dodeka-XXI”, 2005.
2. Future Technology Devices International Ltd. „FT2232D Dual USB UART / FIFO I.C.” , Foaie tehnică, 2006.
3. Future Technology Devices International Ltd. „Ghidul programatorului pentru dezvoltarea aplicațiilor software D2XX”, Document, 2009.
4. Future Technology Devices International Ltd. „Ghidul programatorilor pentru DLL FTCJTAG de mare viteză”, nota de aplicație AN_110, 2009.
5. Future Technology Devices International Ltd. „Ghidul programatorilor pentru DLL FTCSPI de mare viteză”, nota de cerere AN_111, 2009.
6. Andrew Troelsen „C # și platforma .NET” M., S-P. Peter, 2007.

Puteți descărca sursele software și placa de circuite imprimate în formatul de mai jos

Borisov Alexey () Syzran, regiunea Samara

Lista elementelor radio

Desemnare Un fel Denumire Cantitate NotăScorCaietul meu
U1 ChipAT93C46D-8S1 În blocnotes
U2 ChipFT2232D1 În blocnotes
VT1 Tranzistor MOSFET

BSS84

1 În blocnotes
C1 Condensator0,01 μF1 În blocnotes
C2, C3 Condensator27 pF2 În blocnotes
C4, C5, C7, C9, C10 Condensator0,1 uF5 În blocnotes
C6 Condensator0,033 μF1 În blocnotes
C8 Condensator electrolitic10 μF1 În blocnotes
R1 Rezistor

2,2 k Ohm

1 0,05W În blocnotes
R2 Rezistor

10 kΩ

1 0,05W În blocnotes
R3, R4 Rezistor

27 Ohm

2 0,05W În blocnotes
R5 Rezistor

470 Ohm

1 0,05W În blocnotes
R6, R7 Rezistor

1,5 k Ohm

2 0,05W În blocnotes
R8-R16 Rezistor