Contacte

Facem un programator com pentru microcontrolere avr. Programator USB miniatural pentru microcontrolere AVR. Dispozitive cu adaptoare analogice

06-01-2011

Descriere

Acest simplu programator AVR vă va permite să încărcați fără durere programe hexadecimale în majoritatea microcontrolerelor ATM AVR, fără a vă sacrifica bugetul sau timpul. Este mai fiabil decât majoritatea altor programatori AVR simpli disponibili și durează mult mai puțin timp pentru asamblare.

Programatorul AVR constă dintr-un programator serial în circuit (cu un conector) și o placă mică de circuit imprimat cu o priză DIP în care puteți plasa microcontrolerul și îl puteți programa rapid.

De asemenea, puteți utiliza acest programator doar ca programator în circuit, cu ajutorul căruia puteți programa cu ușurință microcontrolerul AVR fără a-l scoate din dispozitiv.

Întregul programator AVR este asamblat din componente utilizate pe scară largă și se potrivește într-o carcasă a conectorului portului COM. O placă de circuit imprimat cu o priză DIP vă permite să introduceți un microcontroler AVR ATmega8 cu 28 de pini într-un pachet DIP în ea, dar puteți realiza plăci de circuite imprimate pentru microcontrolere în orice alte pachete. Acest programator este compatibil cu popularul software PonyProg, care vă arată progresul procesului de firmware sub forma unei bare de stare.

Programator serial AVR în circuit

Placa cu priza pentru AVR

Placa are un număr minim de componente și este utilizată pentru programarea microcontrolerelor în afara dispozitivului țintă.


Placa include o priză DIP cu 28 de pini, un rezonator cuarț de 4 MHz sau un rezonator cu doi condensatori de 22 pF și doi conectori. Conectorul cu doi pini este folosit pentru a conecta alimentarea de +5 V la microcontrolerul AVR, iar conectorul cu 6 pini este folosit pentru a conecta programatorul.

Alimentarea microcontrolerului de la o sursă de tensiune externă, mai degrabă decât direct de la portul serial, asigură că controlerul primește exact 5V și asigură un firmware fiabil și fără erori.

Software-ul PonyProg

Pentru a putea încărca fișiere hexadecimale de pe computer pe microcontroler, va trebui să descărcați și să instalați software-ul. După instalare, primul lucru de făcut este să configurați PonyProg să funcționeze cu programatorul AVR. Pentru a face acest lucru, accesați meniul „Configurare” și selectați „Configurare interfață”. Figura de mai jos evidențiază exact opțiunile pe care ar trebui să le selectați.

Următorul pas este să selectați „AVR micro” și tipul de microcontroler pe care doriți să îl programați (de exemplu ATmega8).

Acum configurația PonyProg este completă și putem deschide fișierul hex cu programul care va fi codificat în microcontroler. Accesați meniul „Fișier”, selectați „Deschideți fișierul programului (FLASH)...” și indicați fișierul hex care trebuie să fie flash. Ar trebui să vedeți valori hexazecimale similare cu cele afișate în imaginea de mai jos. Dacă încă nu ați conectat programatorul la portul serial al computerului, acum este momentul să o faceți. Asigurați-vă că programatorul dvs. este conectat fizic la microcontrolerul AVR printr-o placă priză sau un conector ICSP cu 6 pini. În cele din urmă, faceți clic pe pictograma „Write Program Memory (FLASH)” evidențiată sau accesați meniul „Command” și selectați „Write Program (FLASH)”.

Faceți clic pe butonul „Da” pentru a confirma intrarea.

Acum stați pe loc, relaxați-vă și urmăriți procesul de programare folosind indicatorul de stare. PonyProg va flash microcontrolerul AVR și va verifica dacă fișierul hex a fost încărcat fără erori. Acest proces durează de obicei între 10 și 30 de secunde, în funcție de dimensiunea programului pe care îl veți încorpora în microcontroler.

După programare, va apărea o fereastră „Scriere cu succes” care indică faptul că microcontrolerul AVR a fost programat și este acum gata de utilizare.

  • Verificați instalarea și conectarea la microcontrolerul țintă.
  • Ei bine, nu este nimic militar în acest circuit și nu este nevoie să-l fac, dar am conectat portul com al lui Lonic la computer și plec, deși mai am un tampon în portul meu pentru a nu arde accidental. În ceea ce privește utilizarea programului ponei, am uitat de unul dintre principalele lucruri de spus - despre siguranțe, deoarece dacă îl instalați incorect, cipul va fi blocat.
  • portul com este depășit. daca exista doar usb, atunci lucrarea cu controlere poate fi considerata terminata fara macar sa porneasca???? Nimeni din rețea nu oferă usb-com. Și dacă o fac, atunci există un controler în circuit. dacă îl asamblați singur, atunci de la zero. și nu așa cum fac mulți oameni acum, am comandat unui designer, am îndesat elemente în găuri, le-am lipit și gata. Există destui astfel de genii în serviciu. și dacă abordezi pe cineva ca asta cu o întrebare, el nu știe cu adevărat. dar vreau sa stiu in detaliu.
  • Ei bine, desigur, nimeni (ortografiat împreună!) nu oferă. Deoarece există o mulțime de microcircuite gata făcute în includerea tipică - punți USB-COM pentru alimentare de 5V și 3,3V. Dar cetățenii foarte alfabetizați nu știu desigur despre asta. De asemenea, nu știu despre analogul AVR910 de la Prottos, în care MK prin USB afișează un port COM virtual și îl programează prin ISP. De exemplu. Burghezia are, de asemenea, o grămadă de modele similare. Și, desigur, nu există descrieri detaliate - trebuie să cauți asta. Și vrei ceva gata imediat - apeși un buton și totul este pe un platou de argint. Sau poate este mai bine să predați lecții?
  • mult respectat SergeBS, acest forum nu este pentru greșeli de ortografie și mai ales nu pentru învățături despre ce este. aici cer ajutor si sfaturi de la oameni care cunosc si s-au confruntat cu aceasta sau cutare problema. dar faptul că este gata făcut și că îl poți cumpăra fără a te eforta este cu siguranță cool. P.S. Cu toate acestea, vă mulțumesc pentru participarea la problemă. SI VA MULTUMESC SPECIALE PENTRU INVATATURA FOARTE UTILE. Salutare burgheziei, dar nici nu puteam să știu ce au înainte? unde mergem la țărani?
  • Da. La fel ca cei „mișto” care scriu ce vor. Mai mult, ei nici măcar nu pot formula „problema”. Snot ca: „Vreau să știu întrebările frecvente, dar nu știu întrebările frecvente” - nu contează. :)
  • Încă nu știi din ce sunt făcute toate astea... La o piață de vechituri din China, piesele pentru circuitele tale se vând la greutate în kilograme și niciun standard de calitate nu are vreo legătură cu astfel de piese. Cumpărați numai produse de marcă de la companii relevante.
  • Comand din magazine online (rusa). Adio (ugh * 3) pentru defecte/hackwork etc. nu a zburat.
  • Buna ziua! La multi ani tuturor! :) Am asamblat un programator pentru AVR conform schemei specificate (verificat totul de 3 ori). Dar ponyprog 2000 refuză să vadă și să programeze controlerul ATMega168-20PU - dă un dispozitiv de eroare lipsă sau dispozitiv necunoscut (-24). Am folosit diode zener KS407G, tranzistorul KT3102AM și dioda KD522B. Am avut cuarț la 4.032 MHz. Alimentat de L7805. Înainte ca eroarea să apară, sosesc mesaje de service, pe care le monitorizez utilizând Advanced Serial Port Monitor, dar activează și dezactivează Break doar în timpul procesului de înregistrare. Nu se pierd date. Am configurat PonyProg2000 conform instrucțiunilor. Pas cu pas. Ce ar putea cauza această eroare? Trebuie să conectez pinul 22 la masă și pinul 20 la alimentare (împământare și alimentare analogice)? De ce nu se utilizează selectarea cipului (pinul SS 16 al controlerului)? Multumesc pentru ajutor!
  • Am asamblat acest programator și am folosit: Rezistoare - valorile indicate Tranzistor - KT3102GM Dioda H48 este un analog al 1N4148 diode Zener - BZX55C 5,1 volți De asemenea, cuarț la 4 MHz și 2 condensatoare ceramice la 22 pF, dar nu cred că sunt solicitate deoarece Setam folosirea quartzului intern/extern cu biti programabili, din fabrica mikruhi-urile sunt programate sa foloseasca quartz intern (daca nu ma insel).Este necesara alimentare externa de la +5V.L-am conectat de la sursa de alimentare a lui acelasi PC de pe care am incarcat firmware-ul. Dioda H48 (acest marcaj nu este prezent pe corpul acestei diode) pe internet spun că acesta este un analog al 1N4148. Totul funcționează pentru mine, PonyProg 2000 a încărcat cu succes firmware-ul pe ATmega8. Fotografie http://i.imgur.com/34GhDcN.jpg http://i.imgur.com/gCzAuzA.jpg
  • Aș recomanda unul dintre proiectele de clonă avr mk ii, bazat pe lib și un exemplu de la lufa. Controlerul at90usb168 vine de obicei cu un bootloader, care vă permite să încărcați firmware-ul prin USB după asamblare fără un programator extern. Suportă toate avr actuale, inclusiv xmega și noul protocol Tinki, pdi/tpi. Funcționează cu avrstudio și dude, firmware diferit pentru ei. Sursele sunt deschise, erorile au fost rezolvate. De exemplu, pentru studiourile noi este suficient să crești versiunea fw în setările firmware-ului. Firmware-ul este în curs de compilare pentru Winavr. Versiunea mea in acest topic, de la 12 ani. Cu o fotografie. http://m.radiokot.ru/forum/viewtopic...rt=700&t=26417
  • Buna ziua.Am asamblat acest programator pentru firmware-ul ATtiny 2313,totul functioneaza.Citim MK-ul fara probleme,dar aici este problema.Autorul circuitului pentru care flash MK a scris ca pentru prima data il poti flash fara un quartz extern, dar mai întâi încărcați firmware-ul MK și apoi schimbați Fuse Pe scurt, am încărcat firmware-ul, s-a instalat bine, apoi am schimbat Fuse și am dat clic pe Scriere, dar după ce am făcut clic pe Scriere a ieșit: Dispozitiv lipsă sau dispozitiv necunoscut ( -24) și după aceea MK-ul nu mai este lizibil, care ar putea fi problema?
  • s-a întors, vă rog să-mi spuneți, am încercat să flash ATtiny 2313 cu quartz extern și am instalat 2 condensatoare, cuarț 8 MHz, conector. programul.a citit MK, a deschis firmware-ul in ponei, a setat Fuse, care sunt necesare, astea sunt din fabrica http://i.imgur.com/rSdlENN.jpg si astea trebuie flashate http:/ /i.imgur.com/gc4yyxA.gif dar ce altceva am observat în setările din fabrică există o casetă de selectare care nu poate fi eliminată numită SPIEN și care trebuie să fie afișate nu există această casetă de selectare, ok, voi continua problema dupa ce am deschis firmware-ul si am setat Fuse ca in a doua poza, am dat click pe READ DEVICE, am trecut prin procesul de firmware si la sfarsit asta a iesit http://i.imgur.com/UpR5qhE.jpg apoi am inchis poneiul și l-am deschis din nou și am făcut clic pe citiți MK și am primit acest dispozitiv lipsă sau dispozitiv necunoscut (-24) la fel ca ceea ce am flashat fără cuarț extern, descris mai sus, iar după aceea acest MK nu a mai fost citit, cine poate să-mi spună ce este greșit, ce am greșit. Doar că am ucis deja 3 MK-uri, mulțumesc foarte mult, sunt nou în asta
  • Am primit această eroare doar când nu am conectat sursa externă de alimentare, bine, bineînțeles, s-ar putea să aveți erori în circuit, poate ați configurat pony prog pentru dispozitivul greșit (dar este puțin probabil pentru că sunt începător, Am încărcat firmware-ul.) SPIEN este o siguranță care îi permite să funcționeze MK prin interfața SPI. Toate microcontrolerele sunt eliberate cu bitul SPIEN deja setat. Considerată o siguranță periculoasă...
  • Bitul de siguranță SPIEN este setat implicit în microcontrolerele AVR (modul de programare în circuit) și nu poate fi îndepărtat folosind PonyProg. Și în general este mai bine să nu-l atingi... După ce ai instalat și programat biții Fuse ca în ultima poză, ai configurat microcontrolerul să funcționeze de la un quartz extern de 8 MHz, ai dezactivat divizorul de frecvență al ceasului intern cu 8 și ai activat Brown -Out Detector (modul de control al puterii) cu un nivel de 2,7 V. Și după aceea programatorul nu a văzut microcontrolerul, așa că ar fi logic să furnizeze energie externă microcontrolerului (nu de la PonyProg) și să încerce să-l citească din nou. PS: Desigur, dacă totul a fost făcut corect inițial (tipul de microcontroler din programator a fost selectat corect în timpul programării și biții Fuse au fost setați corect)
  • mulțumesc pentru răspuns, tocmai am flashat firmware-ul pentru 3 MK-uri și acum programul nu le vede și trebuie să le schimb, și am furnizat întotdeauna energie externă la flash-ul firmware-ului, dar poneiul tot nu îl vede, dar MK-ul funcționează, l-am introdus în dispozitivul pentru care l-am cusut Toți cei trei muncitori, dar trebuie să încarc și altele acolo. L-am întrebat pe autorul circuitului pentru care le-am cusut cum să le schimb, mi-a spus că dacă cuarțul extern nu este detectat, atunci trebuie să creați și un generator de ceas extern și să trimiteți un semnal către XTAL 1 MK și apoi să programați. va vedea MK dacă cineva poate arăta o schemă simplă de circuit a unui generator de ceas extern, am căutat mult pe google și nu am găsit nimic, sau poate altcineva are o cale, și Fuse, cu siguranță a trebuit să-mi amintesc cum în a doua imagine pentru ca nu va merge cu cele din fabrica, multumesc pentru ajutor
  • Multumesc pentru articol! Excelent adaptor. Funcționează rapid, fără erori. În primul rând, am lipit portul LPT; nu aveam o mufă COM la îndemână. Portul LPT sa ars la prima umplere. A trebuit să fug la magazin să iau o mufă COM. De asemenea, recomand să lipiți siguranța doctorului - un lucru foarte util. Am fost primul care a fuzionat atât de mult cristalul, că părea că și-a eliberat sufletul (fum albastru), dar nu! - Fusible Dokhdur l-a readus instantaneu la viață. Deci, se dovedește: acest adaptor + siguranță de andocare = un programator paralel cu drepturi depline.
  • După „ceața albastră” niciun doctor nu l-a mai putut readuce la viață. Și „Doctor Fuse” - da, poate fi util uneori. Dar este aproape întotdeauna posibil să faceți fără ea, trebuie doar să sincronizați MK nu din cuarț, ci de la un generator extern...
  • Dar am avut norocul, la prima configurație a siguranțelor, să-l trântesc, astfel încât niciun generator să nu-l poată salva. Nu știam că există 2 opțiuni pentru afișarea siguranțelor: Direct (istoric, canonic) și inversat (intuitiv convenabil). Așa că am pus caseta de selectare canonică cu fotografia inversată. Apropo, PonyProg funcționează cu siguranțe într-o reprezentare inversată.
  • Citiți pentru toată lumea:

Cea mai simplă opțiune de programare pentru AVR acestea sunt cinci fire lipite la portul controlerului și conectate la LPT port. Nu mă cert, e posibil. Dar Inca nu il recomand Pe aici. Nici măcar nu vă voi da o diagramă de cablare - dacă aveți nevoie de ea, o puteți găsi singur. Deoarece această metodă nu este foarte stabilă, este posibilă firmware-ul se blochează, lungimea firelor este limitată la douăzeci de centimetri (dacă este mai mult, va fi glitchy), așa că va trebui să găsești în fundul computerului tău. da si Portul LPT este ușor de ars. În general, nu guvernez.

Căutând pe internet, am găsit un programator excelent care funcționează RS232 aka COM port. Și, de asemenea, un program convenabil pentru intermiterea controlerului UniProf de la Nikolaev. Circuitul de programare a fost inventat de Gromov, creatorul Algorithm Builder.

Pentru a asambla programatorul veți avea nevoie de:

  • Trei diode, oricare dintre cele de mică putere. De exemplu 1N4148.
  • Șapte rezistențe de 1 kOhm. Am rezistențe de dimensiunea 1206
  • Dacă o faceți conform plăcii mele de circuit imprimat, puteți cumpăra și rezistențe de 3 0 ohmi - jumperi, nu le pasă.

Placa de circuit imprimat este fie desenată cu un marker, fie, ca a mea, realizată folosind un fier de călcat cu laser.

Am instalat conectorul DB9 din fotografie pentru comoditate. Am diferite cabluri intermitente conectate acolo sau un adaptor ca acesta:


Programatorul este lipit, controlerul este conectat la el. Este timpul să vă asigurați că totul este făcut corect.

Lansa UniProf.exeși alegeți un număr COM portul la care aveți conectat programatorul. Tipul de controler trebuie determinat imediat și afișat deasupra ferestrei de cod din stânga.

Nu a funcționat? Există trei opțiuni:

  • Programatorul este lipit strâmb.
  • Controler mort.
  • Am lipit greșit cablurile la microcontroler.

Încă o dată, verificați totul cu atenție și încercați din nou. Ar trebui să funcționeze.

Apoi, dacă nu ați mai lucrat niciodată cu controlere, este posibil să aveți nevoie de un program de testare. Nu va face nimic util, dar vă va permite să fiți sigur că tot ceea ce ați făcut înainte a fost făcut corect.

Descarca Atmel AVR Studio este mediul oficial pentru dezvoltarea programelor pentru microcontrolere AVR. Studioul acceptă toate microcontrolerele din familie Atmel AVR. Puteți găsi cea mai recentă versiune pe Atmel.com

Apoi, creați un nou proiect, selectați ca limbaj de programare Asamblatorși indicați folderul și numele în care va fi localizat proiectul dvs. Folosiți-l ca depanator AVR SIMULATORși indicați cu ce controler veți lucra. Apoi introduceți un program simplu în fereastra de text.

Iată textul său exemplu:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 .INCLUSE "m16def.inc" ; aceasta include o listă de definiții macro; fără ea, compilatorul nu va ști care dintre ele; este procesorul pe care asamblam programul; dacă aveți un controler diferit, înlocuiți-l; includerea corespunzătoare. Ei sunt in; folderul AVR Studio la; "AVR Tools\AvrAssembler\Appnotes\" .MACRO out LDI R16,@1 OUT @0,R16 .ENDMACRO ; Am stabilit o macrocomandă foarte convenabilă care permite; scrie un număr arbitrar dat oricărui; se înregistrează într-o singură linie de cod. .CSEG .ORG 0x0000 RJMP RESET .ORG 0x0030 ; Directiva începe codul de la adresa 0x0030; adresa a fost luată cu o marjă mare, pentru că; AVR-uri diferite au dimensiuni diferite de masă; întrerupe. Deci cu siguranță! RESET: ; marca de început OUTI DDRA,0xFF OUTI DDRB,0xFF OUTI DDRC,0xFF OUTI DDRD,0xFF ; Configurați direcțiile portului de ieșire; Dacă acest controler nu are, de exemplu, un port; C, atunci această linie ar trebui comentată. OUTI PORTA,0xAA OUTI PORTB,0xAA OUTI PORTC,0xAA OUTI PORTD,0xAA ; Ieșim 10101010 pentru a obține; o imagine clară a ceea ce s-a întâmplat în porturi; schimbări. După finalizarea programului; la ieșirile microcontrolerului într-un model de șah; Va exista fie tensiune de alimentare, fie masă. Ce; verificat usor fie cu un voltmetru, fie cu unul simplu; Sonda LED. RJMP RESET; Facem bucla programul.

INCLUDE „m16def.inc”; aceasta include o listă de definiții macro; fără ea, compilatorul nu va ști care dintre ele; este procesorul pe care asamblam programul; dacă aveți un controler diferit, înlocuiți-l; includerea corespunzătoare. Ei sunt in; folderul AVR Studio la; "AVR Tools\AvrAssembler\Appnotes\" .MACRO out LDI R16,@1 OUT @0,R16 .ENDMACRO ; Am stabilit o macrocomandă foarte convenabilă care permite; scrie un număr arbitrar dat oricărui; se înregistrează într-o singură linie de cod. .CSEG .ORG 0x0000 RJMP RESET .ORG 0x0030 ; Directiva începe codul de la adresa 0x0030; adresa a fost luată cu o marjă mare, pentru că; AVR-uri diferite au dimensiuni diferite de masă; întrerupe. Deci cu siguranță! RESET: ; marca de început OUTI DDRA,0xFF OUTI DDRB,0xFF OUTI DDRC,0xFF OUTI DDRD,0xFF ; Configurați direcțiile portului de ieșire; Dacă acest controler nu are, de exemplu, un port; C, atunci această linie ar trebui comentată. OUTI PORTA,0xAA OUTI PORTB,0xAA OUTI PORTC,0xAA OUTI PORTD,0xAA ; Ieșim 10101010 pentru a obține; o imagine clară a ceea ce s-a întâmplat în porturi; schimbări. După finalizarea programului; la ieșirile microcontrolerului într-un model de șah; Va exista fie tensiune de alimentare, fie masă. Ce; verificat usor fie cu un voltmetru, fie cu unul simplu; Sonda LED. RJMP RESET; Facem bucla programul.

Apoi, faceți clic pe butonul de compilare (sau F7) și accesați folderul proiect. Ar trebui să te aștepte deja acolo ****.hex fișier firmware.
Lansa UniProf.exe, faceți clic pe butonul cu un folder deschis și inscripția HEX. Selectați proiectul proaspăt compilat și apăsați ok.
A doua fereastră UniProf vă va cere să introduceți date EEPROM, avem EEPROM nefolosit, așa că apăsați pe anulare.
Asta e, acum poți să-l flash. Faceți clic pe săgeata roșie cu inscriptia Prog si asteapta. Când ați terminat, puteți să dați clic pe Citiți și să vedeți ce a fost scris pe controler - ar trebui să arate același lucru care a fost deja încărcat în fereastră.

Acum tot ce trebuie să faceți este să aplicați putere microcontrolerului și să vedeți ce apare pe porturi. Ați văzut un „pieptene” de niveluri de tensiune înaltă și joasă? Grozav! Ți-ai afișat primul controler din viața ta! Acum vă puteți scufunda cu capul întâi în a afla despre microcontrolerele AVR.

Dacă nu funcționează, atunci aici sunt posibile greble și soluții.

  • Calculatoarele moderne, cu procesoare gigahertz, Vista și Sevens noi, sunt foarte săraci prieteni cu acest programator. Nu numai că pur și simplu nu aveți un port COM, dar chiar dacă se întâmplă acest lucru, nu este un fapt că totul va funcționa așa cum ar trebui. Pentru experimente de inginerie radio, recomand să construiți ceva de genul unui PIII 800/Windows’98 din vechituri. Nu va fi o problemă să descoperi gratuit un astfel de miracol și nu te deranjează să-l arzi dacă ceva nu merge bine
  • Această schemă nu funcționează prin adaptoare USB-COM sau funcționează, dar FOARTE încet. Să presupunem că firmware-ul unui microcontroler poate dura o oră și jumătate.
  • Pentru prima dată, cel mai bine este să luați mâncare din blocul computerului. Mai puțin probabil să ardeți ceva sau să faceți o greșeală
  • Verifica diagrama de 3-4 ori! Pentru că, judecând după comentarii, majoritatea problemelor se datorează instalării strâmbe.
  • Înainte de a începe programul în MK TREBUIE SĂ DEZACTIVEȚI PROGRAMATORULși aplicați +5 volți la intrarea RESET printr-un rezistor de 1..10 kOhm. Nimic nu va funcționa cu programatorul conectat, pentru că... apasa RESET si nu permite cristalului sa porneasca.
  • Dacă UniProf nu detectează MK, computerul poate fi prea rapid. Pentru a compensa acest „dezavantaj”, trebuie să activați Caseta de selectare „Frână”. Apare dacă îl opriți debifând EEPROM Panou de afișare a datelor EEPROM.
  • Dacă caseta de selectare Frână nu a ajutat, atunci încercați pe alt computer. Deoarece aici portul COM este procesat într-un mod anormal, ceea ce înseamnă că nu este un fapt că portul dumneavoastră COM va înțelege totul corect.
  • În cel mai rău caz, dacă toate celelalte nu reușesc, încercați un programator cu 5 fire sau un alt program intermitent, cum ar fi avrdude. Păstrați firele cât mai scurte! 10-15 centimetri este MAXIMUL!
  • Citiți comentariile la postare. Multe dintre stâlpii de acolo fuseseră deja rezolvate. Poate că ai tăi vor fi printre ei.

Adaos de la străin:
1. Dacă nu există un conector de port COM pe spatele computerului, asta nu înseamnă 100% că nu există un astfel de port pe placa de bază, în principiu. Există încă conectori pe plăcile de bază cu 9 pini pe două rânduri - pentru mai multe detalii, trebuie să vă uitați la documentația pentru placa de bază. L-am găsit pe ASUS P5K SE și l-am folosit cu succes.

2. Da, +5 și GND nu sunt împământate și un contact de la portul COM, ci alimentare externă. Cel mai simplu mod de a-l obține este pe computer - +5 este în firul roșu de pe oricare dintre conectorii care alimentează hard disk-urile. Și GND se află pe corpul computerului însuși. Sau pe firul negru al aceluiași conector.

3. Dacă ceva nu funcționează cu UniProf, atunci puteți încerca avrdude. Pentru a face acest lucru, trebuie să scrieți următoarele în avrdude.conf:

programator
id = "nikolaew";
desc = "port serial bang, reset=dtr sck=rts mosi=txd miso=cts";
tip = serbb;
resetare = 4;
scck = 7;
mosi = 3;
miso = 8;
;

Și apoi rulați avrdude cu următorii parametri:

avrdude -n -c nikolaew -P com1 -p m16

Dacă totul este în ordine, programul va spune:
avrdude: dispozitiv AVR inițializat și gata să accepte instrucțiuni

Adăugare de la Riko
Sa constatat experimental că pentru o funcționare corectă acest programator Tensiunea de alimentare MK trebuie să fie de cel puțin 5 volți(dar nu mai mare de 5,5!!!). Adică dacă MK este conectat la trei baterii AA, atunci ești stricat, deoarece sunt 4,5 volți! Porniți-l de pe computer!!!

Adăugare de la SLY_DEr
Nu a funcționat. Am schimbat rezistențele de la 3k (nu erau pe 1k) la cele de 460 ohmi - a funcționat, dar cu erori.
Am decis, doar de dragul sportului, să reduc viteza portului com în managerul de dispozitiveși o, minune, totul a funcționat așa cum trebuia. Am redus viteza portului de la 9600k la 4800k și, de asemenea, am redus tamponul de recepție și transmisie (ibid.) la valori de 4, respectiv 6.

Dacă ceva nu este clar, nu ezitați să mă întrebați în comentarii.

ZY
Dacă nu funcționează deloc, atunci poate că placa ta de bază nu acceptă o astfel de manipulare non-standard a portului COM și merită să încerci alți programatori? De exemplu, sau. Deși sunt mai complicate, funcționează mai corect, fără distorsiuni.

Astăzi există mulți programatori de microcontrolere AVR de acest tip, dar ceea ce nu îmi place este prea mult „loose” (elemente discrete), în timp ce există microcircuite specializate care au deja totul în interior.

Alegerea mea a căzut pe microcircuit GD75232, unele dintre elementele cărora, atunci când sunt pornite corespunzător, le-am folosit pentru acest programator.Al 10-lea și al 11-lea picior al microcircuitului trebuie conectat la masă.(fir comun)

Acest microcircuit este amplasat pe plăcile de bază, rolul său este tocmai acela de a coordona semnalele de la dispozitivele externe cu portul COM. Ilustrația din fișa de date arată ce elemente sunt conectate și cum (nu voi descrie cum și de ce, puteți citi despre acest lucru în descrierea microcircuitului). Nu l-am cumpărat intenționat, ci l-am scos de pe o placă de bază „moartă”.

Nu includ placa de circuit imprimat, deoarece am tăiat o bucată de placă împreună cu microcircuitul cu foarfece metalice, în final dimensiunile plăcii s-au dovedit a fi de 20x30 mm, conductorii au fost lipiți la 3 conectori

1- alimentare +5V

Conector 2-com porturi

Conector 3-ISP pentru programare

Poți folosi programatorul cu cunoscutul program Pony Prog, în setări selectează interfața (Serial, COM1) pentru portul COM și oricare dintre cele 3 tipuri de interfețe care sunt enumerate acolo, nu are nicio diferență, funcționează cu toate (JDM API, SI Prog I/0, Si Prog API), imaginile explică acest lucru. Restul setărilor din setările portului rămân implicit în program.

Programatorul este atât de simplu încât nu conține nici rezistențe, nici condensatori, doar un singur microcircuit. Conectați sursa de alimentare +5V, conectați-o la priza în care este introdus microcontrolerul AVR, pregătit pentru programare, și programați ca de obicei în modul ISP.

Circuitul a fost încercat și testat.

Buffering

Programatorii simpli sunt eficienți atâta timp cât vorbim despre programarea microcontrolerelor fie într-un pachet DIP (convenient atunci când puteți scoate microcircuitul din priza de pe placa de lucru și îl puteți conecta la priza de pe programator, iar apoi, după programare, puneți este în poziție), sau când pinii microcontrolerului de pe placa de lucru nu sunt încărcați puternic cu elemente de circuit externe.

Există circuite dovedite bune pentru programatori simpli cu magistrale tampon, cum ar fi STK200/300, asamblate pe microcircuite din seria 244, 245, dar sunt proiectate pentru conectarea la un port LPT, care a devenit recent o raritate pe plăcile de bază moderne. În zilele noastre, doar porturile USB și COM sunt mai comune, iar programatorii USB sunt mai dificil de utilizat pentru radioamatorii începători.

Majoritatea programatorilor simpli cunoscuți care lucrează cu un port COM au un dezavantaj comun: nu toți au o capacitate de încărcare suficientă.

Recent, componentele SMD au fost folosite din ce în ce mai mult, iar microcontrolerele sunt folosite în pachete de tip SOIC și lipite direct în placă, fără prize. În acest caz, pentru a reprograma din nou, trebuie fie să-l programați direct pe placă, fie să deslipiți cipul și, în unele cazuri, trebuie să deconectați mai întâi sarcina de pe pinii săi din circuit dacă se dovedește că elementele externe „sup” programatorul emite impulsuri, cu excepția cazului în care magistralele sale au fost tamponate (cu curent crescut pentru a funcționa cu sarcină crescută).

Din experiența personală, voi spune că mulți programatori simpli cunoscuți suferă de aceste neajunsuri, de exemplu, cu 5 rezistențe sau circuitul binecunoscut cu un tranzistor, rezistențe și diode zener: cu sarcină crescută, problemele încep la programator autobuze. Pentru a nu face un nou programator, există o modalitate simplă de a îmbunătăți caracteristicile de încărcare ale programatorului - aceasta este să tamponați magistralele de semnal existente, doar prin adăugarea unui alt cip.

În acest caz, am luat ceea ce aveam la îndemână - un microcircuit 561PU4 ( sau poate analogul său occidental CD4050). Acest microcircuit conține șase elemente tampon neinversoare care repetă semnalul de intrare la ieșire fără a-i face modificări. Fiecare astfel de element are o anumită capacitate de încărcare; din ilustrația luată în fișa de date, puteți vedea structura acelor elemente discrete conținute în interiorul tamponului.

Prin conectarea unui astfel de adaos la programatorul nostru între pinii programatorului și conectorul de programare, vom obține un dispozitiv cu capacitate de încărcare crescută. Avem trei semnale de la portul COM pentru recepție și un semnal (MISO) pentru transmisie. După ce am lipit un alt cip tampon pe circuitul existent folosind fire scurte, am testat funcționarea noului circuit și, comparându-l cu ceea ce era înainte, am fost convins că există un efect. Pe acele plăci unde mai înainte întâmpisem o problemă similară în timpul programării, a trebuit să deconectez sarcina în timpul programării, dar acum cu noul circuit nu mai aveam nevoie să fac asta.

Recomand tuturor posesorilor de programatori simpli sa-ti modifice circuitul existent in acelasi mod, daca ai intampinat probleme similare in timpul programarii, adaugand un cip buffer, nu neaparat acesta, poti folosi si alte cipuri precum 74HC125, 74HC126 pe baza acestor microcircuite, puteți transfera ieșirile programatorului într-o stare de înaltă impedanță, ceea ce vă va permite să nu deconectați conectorul ICSP de la placă, acest lucru este deosebit de convenabil atunci când lucrați cu o placă de dezvoltare, există o mulțime de variații în utilizarea programatorului meu ca modul de bază, aceasta include programarea microcircuitelor precum 24Cxx 93Cxx, precum și pentru programarea controlerelor PIC, dar probabil că voi dezvolta acest subiect puțin mai târziu în acest articol.

Z - starea magistralelor de ieșire

Cel mai bun este dușmanul binelui (c).

Totul pare să funcționeze, dar de îndată ce adaugi altceva în circuit, acesta se transformă dintr-un mic într-un „monstru”, dar ce ar trebui să faci? Uneori, în timpul procesului de depanare, trebuie să faceți acest lucru de dragul confortului în muncă, deoarece uneori trebuie să conectați conectorul de câteva zeci de ori ICSP reprogramarea microcontrolerului în mod repetat, această activitate devine uneori plictisitoare, iar dacă lăsați programatorul conectat constant la circuit, atunci circuitul programatorului va afecta funcționarea dispozitivului, dar există o soluție pe care am menționat-o mai sus, aceasta este schimbarea starea autobuzelor la impedanță mare - Z stare, atunci circuitul programator poate fi conectat atâta timp cât se dorește și nu va mai ocoli magistralele microcontrolerului, pentru acest caz, am găsit acest cip și l-am folosit ca buffer.Vom efectua această procedură folosind butonul S1, care , când este închis, va comuta ieșirile programatorului în modul de funcționare , programând prin conectarea semnalelor acestuia la circuit. În momentul programării, trebuie să țineți apăsat butonul și, după ce procedura de programare a reușit, eliberați-l. Când butonul este deschis, ieșirile programatorului sunt comutate în starea Z

Din fișa de date 74HC125, conform diagramei și tabelului de adevăr este clar că dacă aplicați la concluzii A„unul” circuitul transferă ieșirile într-o stare de impedanță ridicată (de fapt, este complet deconectat de la sarcină) și, în plus, acest microcircuit are o capacitate de încărcare și mai mare decât microcircuitul pe care l-am ales ca tampon în precedentul circuit..

În general, postez o altă diagramă și imagini însoțitoare pentru a fi luate în considerare.

Vladimir Naumenko

Kaliningrad.

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.

Microcontrolerele sunt din ce în ce mai utilizate în circuitele electronice moderne. Ce pot să spun, dacă astăzi nu puteți găsi nici măcar o ghirlandă obișnuită de pom de Crăciun fără un microcontroler în interior - setează diverse programe de iluminare.

Prima dată am dat peste microcontrolere când construiam primul meu. Atunci s-a dovedit că un controler fără firmware este doar o bucată de plastic cu picioare.

Și pentru a încărca firmware-ul necesar la ATMEG, nu puteți face fără un programator. În continuare, ne vom uita la cele două circuite de programare cele mai simple și mai testate în timp.

Schema unu

Folosind acest programator puteți flash aproape orice controler AVR de la ATMEL, trebuie doar să verificați pinout-ul cipului.

Conectorul COM din diagramă este „mama”.

Pentru orice eventualitate, vă prezint aspectul plăcii de circuit imprimat pentru atmega8 (), deși un astfel de circuit primitiv este mai ușor de desenat manual. Placa trebuie oglindită înainte de imprimare.

Deschideți fișierul PCB folosind popularul program Sprint Layout (dacă nu îl aveți încă instalat, atunci este mai bine imediat).

După cum este clar din diagramă, pentru a asambla programatorul veți avea nevoie de un număr neglijabil de piese:

În loc de KT315, am conectat un tranzistor SMD BFR93A, pe care îl mai aveam după asamblare.

Și aici este întregul programator asamblat:

Am decis să iau curent (+5V) de la portul USB.

Dacă aveți un microcontroler nou (și nimeni nu a încercat să-l flash înainte), atunci nu trebuie să instalați cuarț cu condensatori însoțitori. Funcționarea fără rezonator cu cuarț este posibilă datorită faptului că piatra vine din fabrică cu un pic la generatorul încorporat și, în consecință, circuitul este tactat de la acesta.

Dacă microcircuitul dvs. este utilizat, atunci fără cuarț extern este posibil să nu pornească. Atunci este mai bine să setați cuarțul la 4 MHz, iar condensatoarele sunt mai bune la 33 pF.

După cum puteți vedea, nu am instalat cuarț cu condensatoare, ci pentru orice eventualitate le-am oferit spațiu pe placă.

Cel mai bine este să încărcați firmware-ul folosind programul PonyProg (descărcare).

Firmware folosind PonyProg

Accesați meniul Configurare -> Calibrare -> Da. Ar trebui să apară fereastra „Calibrare OK”.

Acum conectăm microcontrolerul la priza programatorului și furnizăm 5 volți (puteți, de exemplu, de la o sursă de alimentare separată sau un port USB). Apoi faceți clic pe Command -> Read All.

După citire, apare fereastra „Citire cu succes”. Dacă totul este în regulă, atunci selectați fișierul cu firmware-ul necesar pentru a încărca: Fișier -> Deschideți fișierul dispozitivului. Faceți clic pe „Deschidere”.

Acum faceți clic pe Command -> Security and Configuration Bits și setați siguranțele după cum este necesar.

Asta e tot, MK este cusut și gata de utilizare!

Țineți cont de faptul că atunci când se flashează folosind alte programe (nu PonyProg), biții pot fi inversați! Apoi trebuie setate exact invers. Acest lucru poate fi determinat citind siguranțele și uitându-se la caseta de selectare „SPIEN”.

Schema doi

O altă versiune a programatorului, cu care puteți încărca firmware pe microcontrolerul ATMEG (așa-numitul programator Gennady Gromov). Circuitul este format din doar 10 părți:
Puteți lua orice diode cu impuls (de exemplu, KD510, KD522). Conectorul este "mama". Alimentarea la MK (+5V) trebuie să fie furnizată separat, de exemplu, de la același computer de la ieșirea USB.

Toate acestea pot fi asamblate prin montare montată direct pe conector, dar dacă ești un fier de lipit cool și știi ce este montarea SMD, o poți face frumos:

Algoritm de firmware folosind programatorul Gromov

Conectăm programatorul cu microcircuitul instalat la portul COM al computerului, apoi lansăm Uniprof, apoi furnizăm energie microcontrolerului. Și, în primul rând, verificăm dacă biții siguranței sunt lizibili.

Dacă totul este în regulă, selectați fișierul cu firmware-ul necesar și apăsați înregistrare.

Fiți extrem de atenți și atenți, deoarece dacă există o eroare la înregistrarea siguranțelor, atunci MK-ul fie va fi scos, fie va lipi circuitul medicului (și este complicat). Dacă schimbați bitul SPIEN cu cel opus, rezultatul va fi același (la medic).




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