Programatoare miniaturale USB pentru microcontrolere avr. Programator USB ISP pentru AVR: Un alt pas departe de arduinoizare. Alte elemente de fereastră

Programul a fost actualizat la versiunea 08.06.2010.
Autor UniProf lucrează neobosit pentru a-și îmbunătăți programul, făcându-l și mai bun. Versiunea programului de la 08.06.2010 coase microcontrolere mult mai bine. Observat în versiunea anterioară Eșecurile frecvente la programarea fără caseta de selectare „frână” sunt de domeniul trecutului. Tot ceea ce ne place la UniProf rămâne în vigoare.

Sincer să fiu, la început, am decis să folosesc programul AVRDUDE pentru microcontrolere flash. AVRDUDE este un program puternic care merită respect - cu care poate funcționa o sumă imensă programatori, cu o grămadă de setări și destul de utilizat pe scară largă pentru microcontrolere AVR. Programul nu are propriul „GUI” (funcționează cu linie de comandă) și aveam de gând să scriu fișiere batch pentru fiecare firmware pentru a flash controler dintr-o singură mișcare. Dar după ce m-am gândit puțin, am ajuns la concluzia:
- programul ar trebui să fie simplu și accesibil - astfel încât chiar și o persoană care nu a lucrat niciodată cu microcontrolere să-și dea seama (ei bine, sunt un idealist :));
— era mic, portabil, cu propria sa interfață grafică, afișa vizual toate etapele de programare și suporta microcontrolerele folosite în blog.
Din păcate, AVRDUDE nu îndeplinește aceste cerințe.
Dar un alt program este potrivit - UniProf-programator universal pentru AVR. Programul are anumite dezavantaje, dar acestea sunt compensate de simplitatea și accesibilitatea sa. În plus, UniProf poate lucra cu programatorii noștri LPT și COM. Prin urmare, am decis să fac o post-revizuire generală a programului UniProf, iar mai târziu voi descrie separat programarea prin portul LPT și COM. Deci…

Autorul programului este Mihail Nikolaev. Programul are o istorie destul de lungă, dar nu se poate lăuda actualizări frecvente. În același timp, programul este atât de simplu și convenabil încât nu își pierde relevanța acum nici pe fundalul unor programe mai avansate.

Să începem să ne cunoaștem.
conține toate funcționalitățile programului. Nu trebuie să navigați prin meniu - totul se face cu un singur clic. Programul are propriul ajutor (apăsați F1) în care totul este descris în detaliu. Interfața UniProf este intuitivă, dar să trecem prin elementele ferestrei.
Elementul principal este fereastra PROGRAM. Acesta (în celulele tabelului) afișează valorile citite sau scrise ale celulelor de memorie ale controlerului. Dacă debifați caseta PROGRAM, fereastra va dispărea. Există, de asemenea, o casetă de selectare pentru EEPROM pentru a afișa sau ascunde fereastra EEPROM a memoriei controlerului (în majoritatea cazurilor nu avem nevoie de EEPROM - debifați-l).

Rândul superior de butoane (de la stânga la dreapta)

Scrieți conținutul ferestrelor (firmware) la controler. Mai întâi trebuie să încărcați firmware-ul din fișier în Windows. (dacă caseta de selectare EEPROM este bifată, se scrie și zona EEPROM).

Verificarea (verificarea) memoriei controlerului cu valorile în casete. Diferențele sunt indicate prin asteriscuri. (După înregistrare, verificarea se efectuează automat - deci nu este nevoie de verificare).

Verificarea controlerului pentru curățenie. Pentru un controler „curat”, toate celulele de memorie conțin 0xFF, care este verificat.

Setarea biților FUSE. Verificați cu atenție casetele ca în imaginea atașată fiecărui firmware.
Important! Înainte de a clipi biții FUSE, asigurați-vă că bifați caseta de selectare „frână”, acest lucru va reduce riscul înregistrării lor incorecte.

Echipa de nivel scăzut. Mai bine să nu-l atingi.

Ștergeți controlerul.Înainte de fiecare programare, curățați cristalul.

Primele trei deschideți fișierul firmware tipul adecvat (voi posta firmware-ul HEX) și umple ferestrele cu valori cu deschide fișierul. Următoarele trei salvați în fișier tipul de valoare selectat din casete.

"oscal"— citirea octeților de calibrare a controlerului. Nu avem nevoie de ea.

F1-ajutor– apelați ajutorul încorporat.

Următoarele două butoane depanare în controler– nu avem nevoie.

Pini LPT– un lucru foarte util pentru cei care au instalat deja niște linii de port LPT sau folosesc un programator de alt design. Vă permite să atribuiți orice linii de port pentru a le înlocui pe cele arse.

Casete de selectare de sub butoane.

O punem ca in poza. Primul arată octeții citiți sau pregătiți pentru a fi scrisi la controler. Al doilea este pentru scrierea forțată a 0xFF într-o celulă goală. În al treilea rând - inversarea liniilor Port COM(când utilizați un cip tampon în programator). Numele controlerului conectat va străluci în albastru. Apoi, porniți/dezactivați fereastra EEPROM. Frecvența sistemului este afișată cu roșu.
Important! Dacă faceți clic pe cel roșu, programul se va resincroniza cu controlerul. Apăsați, pentru orice eventualitate, înainte de a începe programarea.

Alte elemente de fereastră.

Aceste casete de selectare elimină butoanele inutile (pentru a nu fi confuzi). O punem ca in poza.

Foarte important! Caseta de selectare obligatorie. ÎN versiunea veche programele au avut anumite probleme cu fiabilitatea programării fără această casetă de selectare. ÎN noua versiune program aceasta problema este rezolvata! Dar dacă apar erori în timpul scrierii sau citirii, programul admite imediat acest lucru. Dacă îl aveți, bifați căsuța „frână” și totul va fi înregistrat fără probleme! Doar încetiniți. La înregistrarea siguranțelor, este necesară o „frână”! Nu este nevoie să vă asumați riscuri.

Puteți specifica ce zonă să ardeți - setați „Toate!”

Selectarea portului cu care vom lucra. Dacă nu știm unde am băgat programatorul, parcurgem totul unul câte unul până când controlerul tău se aprinde în albastru.

Există și „taste rapide”.

F2 Setarea întârzierii înregistrării, normal = 6. Dacă există erori, încercați să o măriți (nu se observă niciun efect).

F3 Afișează o listă de controlere acceptate.

Gri -,+ Scădeți sau măriți fontul numerelor din ferestrele Flash și EEPROM - acest lucru poate fi util când redimensionați fereastra.

Esc– anulați acțiunea curentă.

Există mai multe, dar nu foarte necesare - citiți ajutorul încorporat.

UniProf poate fi descărcat aici:
- Programator pentru AVR. Ne uităm la avr.nikolaew.org

P.S. Oricum, cu timpul vom folosi AVRDUDE - un lucru puternic!

(Vizitat de 48.833 de ori, 11 vizite astăzi)

Anterior, pentru a flash microcontrolere AVR, am folosit AvrUsb500 de la Petka (STK500) și AVR Studio 4. Totul a fost în regulă până când cipul FTDI FT232RL a eșuat și nu a vrut să funcționeze. După aceea am început să caut alternative și am dat peste Programator Khazama AVRȘi . Mi-a plăcut imediat programul datorită minimalismului și interfeței sale simple și intuitive. Mic și la distanță. De atunci am folosit acest minunat programator AVR.

Khazama AVR Programmer - caracteristici

Khazama Funcționează cu toate microcontrolerele AVR populare, vă permite să programați flash și eeprom, să citiți conținutul memoriei flash și eeprom, să ștergeți cipul și, de asemenea, să schimbați configurația biților siguranței (Siguranțe și biți de blocare). Tot ce aveți nevoie pentru a flash microcontrolere AVR. Siguranțele sunt configurate prin selectarea unei surse de ceas din lista derulantă, astfel că probabilitatea de a „ucide” controlerul din greșeală este redusă drastic. Siguranțele pot fi modificate și prin plasarea casetelor de selectare în câmpul inferior, dar nu puteți plasa casete de selectare într-o configurație inexistentă, ceea ce face configurația siguranței mai sigure. Și acesta este, de asemenea, un mare plus.

Siguranțe de înregistrare

Siguranțele sunt scrise în memoria microcontrolerului prin apăsarea butonului Write All. Există un buton Salvare pentru a salva configurația curentă, iar Încărcare returnează cea salvată. Butonul Default este conceput pentru a inregistra configuratia standard a sigurantei, cea cu care microcontrolerele vin din fabrica, de obicei la 1 MHz de la RC intern.
În general, în tot timpul în care am folosit acest programator, s-a dovedit a fi cel mai bun în ceea ce privește stabilitatea, securitatea și viteza de operare. Il recomand oricui doreste sa programeze microcontrolere AVR.

Khazama AVR Programmer este un shell grafic pentru programul de consolă avrdude, dezvoltat de un programator arab, susținut de sisteme Windows XP/Vista/7. Programul este conceput pentru microcontrolere Atmel din familia AT90/ATtiny/ATmega/ATXmega.

Khazama știe să citească și să scrie codul programului, ștergeți memoria și programați biții FUSE, există și o funcție de programare și configurare automată frecvența ceasului programare. Programul acceptă lucrul cu programatorul.

Configurare și firmware

Lansați programul

Pentru a configura programul, accesați Comandă -> Opțiuni program

Iată setările programului, dintre care marea majoritate sunt setări Program automat(programare automată) evidențiată cu roșu în listă. Folosind funcția de programare automată, operațiuni precum citirea, ștergerea, scrierea și verificarea sunt efectuate în secvență automat, ceea ce este foarte convenabil. Doar apăsați un buton Program automatși toate elementele verificate în setările programului vor fi finalizate.

1. Așezați fereastra programului deasupra altor ferestre
2. Încărcați ultimul fișier închis în buffer-ul programului
3. Citiți memoria FLASH a microcontrolerului în buffer-ul programului
4. Citiți memoria EEPROM a microcontrolerului în memoria tampon de program
5. Ștergeți memoria microcontrolerului
6. Scrieți firmware-ul în memoria FLASH a microcontrolerului
7. Scrieți firmware-ul în memoria EEPROM a microcontrolerului
8. Verificați octeții FLASH ai memoriei microcontrolerului după înregistrare
9. Verificați octeții EEPROM ai memoriei microcontrolerului după înregistrare
10. Scrieți biți de siguranță pe microcontroler
11. Verificați alegerea corectă a modelului de microcontroler
12. Setarea frecvenței ceasului de programare

Selectați microcontrolerul din lista derulantă

sau prin meniu Fișier -> AVR -> ...


Încărcarea fișierului firmware în program Fișier -> Încărcați fișierul FLASH în tampon, specificați fișierul și faceți clic Deschide

Programatorul se bazează pe un driver de la Objective Development și este pe deplin compatibil în comenzi cu programatorul original AVR910 de la ATMEL. Descrierea dispozitivului. Siguranța protejează liniile electrice Port USB de la scurtcircuit accidental în circuitele de alimentare ale programatorului. Diodele VD1, VD2 sunt redresor siliciu sunt concepute pentru a reduce alimentarea microcontrolerului la 3,6 V. Conform documentației, controlerul poate funcționa la această tensiune de alimentare până la o frecvență de puțin peste 14 MHz. LED-urile VL1 (" R.D."), VL2 (" WR") semnalează acțiunile curente ale programatorului și indică modurile de citire și scriere. LED VL3 (" PWR”) indică faptul că este furnizată energie către .

Jumper J1 - ( Modifica) este utilizat pentru programarea inițială a programatorului de control MK. Când este închis, un programator extern este conectat la conectorul ISP și programul de control este încărcat în MK. După programarea programatorului de control MK, acest jumper trebuie deschis și jumperul J2 - NORMal trebuie să fie închis.

Jumper J3 SCK scazut scade frecvența de ceas a portului SPI al programatorului MK la ~20 kHz. Când jumperul este deschis, frecvența SPI este normală, când este închis, este redusă. Puteți comuta jumperul din mers, deoarece program de control Microcontrolerul programator verifică starea liniei PB0 de fiecare dată când accesează portul SPI. Nu este recomandat să comutați jumperul când procesul de rulare scrierea/citirea unui microcontroler programabil, deoarece cel mai probabil acest lucru va duce la distorsiunea datelor scrise/citite. Jumper J3 este introdus pentru a permite programarea microcontrolerelor AVR tactate de la un oscilator intern de 128 kHz.

Rezistoarele R10 - R14 sunt proiectate pentru a se potrivi cu nivelurile de semnal ale microcontrolerului programator și ale circuitelor externe (microcontroller programabil sau alt programator). Frecvența de ceas a portului SPI al programatorului MK cu jumperul J3 deschis este de 187,5 kHz. Acest lucru permite controlerelor să fie programate cu viteze de ceas variind de la aproximativ 570 kHz pentru ATtiny/ATmega, 750 kHz pentru 90S și 7,5 MHz pentru 89S. Controlerele sunt programate de la 10 la 30 de secunde (folosind utilitarul AVRProg v.1.4 din pachetul AVR Studio) împreună cu verificarea în funcție de cantitatea de memorie FLASH și de frecvența ceasului.

O undă pătrată cu o frecvență de 1 MHz este transmisă la ieșirea LED-ului conectorului ISP pentru a „reanima” MK-urile care au programat în mod eronat biții de siguranță responsabili de sincronizare. Semnalul este generat constant și nu depinde de modul de funcționare al programatorului. Programatorul a fost testat cu programele AVRProg v.1.4 (incluse în pachetul AVRStudio), ChipBlasterAVR v.1.07 Evaluation, CodeVisionAVR, AVROSP (ATMEL AVR Open Source Programmer). Pentru funcționarea normală a controlerului în circuit, este necesar ca biții să fie programați (setați la „0”) SPIEN, CKOPT, SUT0Şi BODEN. De obicei, microcontrolere care provin din fabrică, de ex. nou, au programat deja bit SPIEN. Biții rămași trebuie să fie neprogramați (setați la „1”).

Instructiuni de instalare si utilizare. Flash pentru controler. Conectați programatorul proaspăt copt la computer prin USB. sistem de operare va găsi un nou dispozitiv - AVR910 USB Programmer, când vi se va solicita 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.

Forumul conține toate fișierele, precum și PCB pentru programatorul nostru avr. Aici vă voi arăta tehnologia pentru asamblarea programatorului USB AVR și ambalarea acestuia într-o cutie. Mai întâi, descărcați arhiva și faceți o placă de circuit imprimat.

Apoi lipim toate detaliile pe el. Nu am putut găsi un cuarț mic, așa că am lipit unul mare, dar pe picioare lungi, pentru a-l putea îndoi mai târziu, astfel încât să nu interfereze cu instalarea plăcii în carcasă. Apoi, alegem o carcasă potrivită.

Ajustăm placa la carcasă, luăm toate măsurătorile, găurim și aici aveți un dispozitiv finit, cu o placă universală.

Dacă nu există un echipament special de măsurare, puteți verifica folosind un LED. LED-ul este conectat cu anodul la pinul LED, iar catodul la orice pin GND al conectorului ISP. Când este aplicată puterea, LED-ul ar trebui să lumineze la intensitate maximă. Când închideți picioarele oscilatorului de cuarț cu penseta, LED-ul fie ar trebui să strălucească la „intensitate maximă”, fie să nu existe strălucire.

Fără erori, programatorul asamblat cu un microcontroler programat corect nu trebuie configurat. Dar dacă intrarea RESET a unui MK programabil este conectată la tensiunea de alimentare printr-un rezistor, atunci valoarea rezistenței nu trebuie să fie mai mică de 10 kOhm - acest lucru se datorează tensiunii de alimentare reduse a controlerului de control în circuitul programatorului și introducerii. a rezistențelor de limitare pe magistrala conectorului ISP.

Discutați articolul AVR USB PROGRAMMER

În cazul meu, acesta este un deținător absolut de record pentru viteza de livrare - aproximativ 5 luni de rătăcire neglijentă. În ciuda întârzierii monstruoase, am primit totuși coletul, de care sunt incredibil de fericit, în ciuda neajunsurilor, despre care vă voi povesti mai jos. Din moment ce am o memorie foarte proastă, a trebuit să combin ceea ce am găsit informatii utile undeva într-un singur loc, sub forma unui memento, adunarea lui puțin câte puțin în diferite colțuri și colțuri ale rețelei s-a dovedit a fi o sarcină netrivială, așa că le voi pune totul într-o postare separată.
USB ISP este cel mai ieftin programator de controler AVR care poate fi găsit la vânzare, a fost luat pentru a ne lărgi orizonturile și a studia mai în profunzime AVR.
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 nu numai.

Desigur, în schimb puteți folosi un Arduino UNO cu o schiță ArduinoISP cusată în el, dar acest lucru nu este convenabil să te joci cu fire, mai ales dacă există un singur UNO, descurajează entuziasmul; Ar fi fost mai ușor să aveți un astfel de programator separat, sau mai degrabă doi. Din două motive:
1) Chiar și înainte de achiziție, din recenzii era clar că calitatea lipirii acestor dispozitive are de suferit, iar unele chiar le-au primit cu diode zener sparte. S-a decis să fie sigur, comandând două.
2) Un programator poate fi cusut și cu altul prin mișcarea jumperului pe dispozitivul slave.

Specificații

Sistem de operare acceptat: Windows, MacOS, Linux
CPU: Atmega8A
Interfata de conectare la PC: USB
Interfata de programare: ISP (în circuit)
Tensiune de programare: 5V sau 3,3V (în funcție de poziția jumperului JP2)
Frecventa de programare: 375 kHz (implicit) și 8 kHz (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

Serii mici

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 - programator + cablu fara banda elastica. În cazul meu, dublați suma.

Cultura performanței este într-adevăr șchiopătă, pieptenii lipiți strâmb mi-au atras imediat atenția. Oriunde este posibil există urme de flux, iar cu oxizi, se pare, programatorii zăceau de mult timp în depozit și au fost asamblați cu viteza obișnuită a chinezilor.















Unele găuri nu sunt complet umplute cu lipire



Elementele SMD sunt, de asemenea, lipite strâmb



Am îndreptat pieptenele puțin mai târziu, a fost dureros de neplăcut să privești o astfel de înclinare, am lipit elementele și apoi am spălat placa



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ă în mod special. Dacă comandați un USBASP original, cablul complet are deja 50 cm.



Comenzi la bord

Există trei jumperi pe placă care setează diferite moduri de operare ale programatorului:
JP1- se închide dacă firmware-ul programatorului însuși este actualizat
JP2- jumper triplu, aici selectați ce tensiune va fi furnizată microcontrolerului care se aprinde intermitent, fie 5V (poziția din stânga) și 3.3V (poziția din dreapta)
JP3- dacă îl închideți, atunci programarea controlerului va avea loc la o frecvență redusă, dar chinezii nu au lipit un pieptene aici, deoarece nu este necesar pentru acest firmware
Programatorul, după cum puteți vedea, este construit pe baza Atmega8 cu quartz de 12 MHz. Elementul superior din dreapta, semnat F1, cu un număr inversat 4, este o siguranță cu resetare automată care protejează portul USB al unui PC/laptop dacă ceva se întâmplă brusc pe placă care este flash scurt-circuit. Sub buiandrug JP2 Se află stabilizatorul LDO 662K, care scade 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 drivere pentru acesta. Intru orice programator în portul USB al computerului, se aude un semnal despre echipamente noi, LED-ul de pe dispozitiv se aprinde, dar căutare automatășoferii nu se întâmplă.
nota.Î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, treceți cursorul peste butonul principal(Win10), faceți clic dreapta și selectați „Manager dispozitive”.

3) În ramura „Alte dispozitive” puteți vedea un dispozitiv USBASP neidentificat cu un triunghi portocaliu -> plasați cursorul peste el, faceți clic dreapta -> „Actualizați driverele...”

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

5) „Instalează oricum acest driver”

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



Firmware-ul fratelui

Știam deja că chinezii vând aceste programatoare fără cel mai recent firmware. Am decis să actualizez mai întâi firmware-ul pe unul dintre ele, apoi, pentru distracție, să compar ambii programatori în funcțiune. Pentru a face acest lucru, conectez ambele dispozitive cu un cablu, pe master (pe care îl introduc în portul USB) nu sunt atinse jumperii, iar pe programatorul slave (pe care vom actualiza firmware-ul) am mutat jumperul de pe JP2 pe JP1:



Intru în programul Khazama AVR Programmer, selectez ATmega8 din lista derulantă și citesc mai întâi memoria flash prin elementul de meniu „Command” -> „Read FLASH to Buffer” pentru a salva firmware-ul din fabrică chineză. Doar în cazul în care.

În acest caz, o astfel de eroare va apărea periodic la închiderea ferestrei, programul va continua să funcționeze.

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

Acum trebuie să salvați conținutul bufferului: „Fișier” -> „Salvați tampon FLASH ca...”. Alege un loc convenabil unde firmware vechi va fi salvat, dați-i un nume (de exemplu, l-am numit firmware_1) și adăugați extensia *.hex - dacă nu o scrieți, atunci va fi salvat doar ca fișier fără extensie.


Descarc firmware-ul pentru programator din pagina, arhiva usbasp.2011-05-28.tar.gz(aceeași arhivă conține 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 în care este scris atmega8 în nume, deoarece programatorul care este flashat este pe acest cip.

După cum puteți vedea, există trei firmware-uri aici - pentru Atmega8, 48 și 88. În cazul nostru, Atmega 8 - asta aleg eu.

cusez. „Comandă” -> „Scrieți fișierul FLASH în buffer”. Eroarea apare din nou, dar apoi procesul continuă, terminându-se cu succes.



Deoarece, în sensul obișnuit, „program” înseamnă setarea la 1, atunci când lucrați cu siguranțe totul este exact invers, ceea ce provoacă confuzie și în acest caz puteți bloca din neatenție controlerul și atunci nu va mai fi posibil să-l flash. Programul Khazama AVR Programmer este convenabil pentru vizualizarea biților de siguranță - puteți vedea clar acolo programat, care dintre ele 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, când apăsați butonul „Citiți tot”, se numără biții de siguranță și de blocare, iar eroarea notorie va apărea de până la 5 ori la rând. Apar erori pe firmware-ul chinezesc din fabrică. Dar dacă introduceți un programator proaspăt flash în portul USB, cu firmware-ul descărcat din linkul de mai sus, atunci aceste erori nu vor mai apărea, totuși, 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. Juperii nu pot fi rearanjați, de exemplu. rămâne în poziţia 5V.
În ciuda faptului că placa Pro Mini este etichetată ca 3,3V, 168th Atmega poate furniza și 5V. Apropo, stabilizatorul de 3,3 V AMS1117 este complet lipit de pe placă.



AVRDUDE PROG 3.3
Program de consolă pentru microcircuite intermitente, dvs GUI nu, în stoc funcționează din linia de comandă, dar pasionații au scris o mulțime de shell-uri pentru el, pentru confortul de a lucra cu el. Unul dintre aceste shell-uri se numește AVRDUDE PROG, creat de dezvoltatori vorbitori de limbă rusă. Acest shell, în opinia mea, este convenabil doar pentru flash-ul MK. După lansare, controlerul este selectat, în acest caz Atmega168 și tipul de programator - USBasp. După care puteți începe să scrieți/citiți memoria. Fie pe firmware-ul din fabrică, fie pe cel nou - în ambele cazuri nu au existat probleme de comunicare cu Atmega168. Doar pentru distracție, am afișat schița intermitent standard Arduino, exportată într-un fișier binar HEX. Totul este lin.




Programator Khazama AVR
Aici trebuie doar să selectați un microcontroler din lista derulantă și puteți lucra deja cu memorie/biți.
Cu toate acestea, dacă programatorul însuși are firmware din fabrică, erorile vor apărea periodic, după cum sa menționat deja mai sus, pe firmware nou- aceste erori nu mai exista.


Comunicare cu controlerul ATtiny13A în pachetul SOIC8

Conexiune conform diagramei de mai jos. Dar aici lucrurile devin puțin mai interesante.

Deoarece cipul gol este într-un pachet SOIC8 SMD, în acest caz l-am plasat într-un adaptor SOIC8-DIP8 pentru ușurința conexiunii cu programatorul în viitor. Puteți citi o recenzie a acestui adaptor.

AVRDUDE PROG 3.3
Aici controlerul cu același nume este selectat din listă, Programator USB asp și, dacă programatorul este flash din fabrică Firmware chinezesc, atunci toate operațiunile decurg fără probleme și fără probleme. Cu toate acestea, dacă înlocuiți programatorul cu altul, cu firmware actualizat, va apărea o eroare în timpul oricărei operațiuni.

Se pare că nici programul, nici programatorul nu pot trece automat la modul de programare lentă necesar pentru ATtiny13. Dar există cel puțin două opțiuni:
1) Fier: închideți jumperul JP3

2) Software: editați fișierul „programm.ini” în folderul cu programul AVRDUDE PROG 3.3


Introduceți patru linii de cod acolo și salvați. (luat)
progisp=jtag2pdiportprog=COM1portenabled=1 progisp=Usbasp -B 3 portprog=usb portanabled=0

Nota. Aici se folosește comutatorul „-B”, care comută programatorul la o frecvență de programare mai mică. Valoarea „3” - timp în microsecunde

După aceea, rulați din nou AVRDUDE PROG 3.3 și selectați UsbaspSpeed ​​​​în lista derulantă a programatorilor. Acum, lucrul cu ATtiny13 pe un programator cu firmware nou nu va mai fi lipsit de erori, iar jumperul JP3 nu va mai trebui să fie î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ă normal cu ATtiny13, cu excepția ferestrelor de eroare care apar constant, despre care am vorbit deja mai devreme.
Dar cu programatorul pe noul firmware, apare o altă eroare cu incapacitatea de a citi semnătura ( semnătură digitală) controlor.

Dar merită să închideți jumperul JP3și poți lucra în pace


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

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

Nota 2. Metoda cu selectarea frecvenței în KHazame este de câteva ori mai rapidă decât metoda cu jumper JP3 cu închidere fizică, 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 chinez. Cu toate acestea, datorită aceluiași program AVRDUDE, inclus în pachetul AVRDUDE PROG 3.3, care va juca aici rolul unui intermediar, puteți construi o „cârjă”, iar apoi în mediul însuși puteți adăuga apoi posibilitatea de a flash-o MK conectat prin USBASP.

Mai întâi trebuie să lansăm mediul; se presupune că un cod a fost deja scris și asamblat. În exemplul meu, aceasta este intermitent simplu LED - Clipește.

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

Se va deschide fereastra mica, faceți clic pe „Adăugați”

În câmpul cel mai de sus "Titlu:" introduceți orice nume convenabil, am scris „Atmega168”, deoarece Configurația pe care o voi da mai jos se aplică în mod specific acestui controler, iar pentru orice alt controler este configurat individual.
În câmpul mare din partea de sus, numele instrumentului va fi automat duplicat.

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 reală

Configurare pentru Atmega168

P m168 -c usbasp -P usb -U flash:w:$(ProjectDir)Debug\$(TargetName).hex:a
-p - numele controlerului
-s - ce programator
-P - port prin care va fi încărcat firmware-ul
-U - ce operație va fi efectuată cu ce memorie (în acest caz, scrierea în Flash)
Dacă trebuie să-l configurați pentru un alt MK, atunci parametrul „m168” trebuie schimbat la controlerul corespunzător care va fi intermitent. De exemplu, „m8” pentru Atmega8 sau „m328p” dacă Atmega328p. Vedeți parametrii pentru alte MK-uri - veți găsi acolo ș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 clic din nou pe „Instrumente”, instrumentul nou creat va apărea acolo. Și când faceți clic pe el, codul compilat va fi afișat automat în controler.

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

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

Va apărea o altă fereastră. În el, selectați „Tools” în coloana din stânga și selectați „External Command 1” în coloana din dreapta. Faceți clic pe „OK”

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

Dar mi se pare că locul alocat acestuia nu este foarte bun, este indicat să îl mutați la dreapta, apăsați butonul „Mutare în jos” (un clic = mutați o poziție la dreapta); După aceasta, puteți închide fereastra folosind butonul „Închidere” și puteți coase cipul direct din studio cu un singur clic prin programatorul monitorizat.


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

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

Adăugarea siguranțelor programatorului

Din documentul READMI inclus cu driverele și firmware-ul pentru USBASP, s-a dovedit ulterior că dezvoltatorul recomandă setarea unei anumite configurații a biților de siguranță care determină funcționarea rezonatorului extern.
Dezavantajul lui Khazam este că fereastra cu siguranțe nu afișează valorile HEX ale biților setați. asigurați-vă că puneți un punct „invers” - evidențiat cu un dreptunghi albastru):

Acest lucru necesită debifarea a două casete de selectare din „BODEN” și „SUT1” (evidențiate cu un oval roșu),
bifați două casete pentru „CKOPT” și „SUT0” (evidențiate cu un dreptunghi verde),
în coloana din dreapta, vor fi afișate valorile HEX ale biților modificați (evidențiate cu un dreptunghi roșu aldine): Lock Byte: 3F Fuse High Byte: C9 Fuse Low Byte: E.F..

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

ATENŢIE. Bătaie furiosă RSTDISBL- nu-l atingeți sub nicio formă, altfel instalarea lui va bloca controlerul și nu va mai fi posibil să-l flash prin USBASP.
_____________________________________

Concluzii

Încercat și funcționează. Dacă nu intenționați să utilizați khazam, atunci nu are rost să actualizați firmware-ul pentru programator, din fericire funcționează bine, iar în cazul ATtiny13, nu sunt necesare modificări sau jumperi. Din anumite motive, cel mai recent firmware s-a dovedit a fi mai capricios în acest sens. Singurul lucru este că, după ce ați primit-o, placa trebuie lipită și spălată.

Lista de link-uri