Skeemid ja materjalid. Programmeerija püsivara värskendamine

Nii nagu teater algab riidepuust, nii algab ka mikrokontrollerite programmeerimine hea programmeerija valikuga. Kuna olen hakanud omandama ettevõtte mikrokontrollereid ATMEL, siis pidin end tootjate pakutavaga põhjalikult kurssi viima. Nad pakuvad palju huvitavat ja maitsvat, ainult ülikõrgete hindadega. Näiteks ühe kahekümnejalgse mikrokontrolleriga sall, millel on paar takistit ja dioodid rakmetena, maksab nagu “lennuk”. Seetõttu tekkis küsimus programmeerija isekomplekteerimisest. Pärast pikka uurimist kogenud raadioamatööride arengute kohta otsustati kokku panna end hästi tõestanud programmeerija USBASP , mille aju on mikrokontrollerAtmega8 (on olemas ka püsivara valikud atmega88 ja atmega48 jaoks). Mikrokontrolleri minimaalne juhtmestik võimaldab teil kokku panna üsna miniatuurse programmeerija, mille saate alati kaasa võtta, näiteks mälupulga.

Kui otsustati miniatuurne programmeerija kokku panna, joonistasin korpusesse mikrokontrolleri Atmega8 skeemi ümber TQFP32(mikrokontrolleri pinout erineb DIP-paketi pinoutist):

Jumper J1 kasutatakse juhul, kui on vaja vilgutada mikrokontrollerit, mille taktsagedus on alla 1,5 MHz. Muide, selle hüppaja saab üldse ära kaotada, kui asetada MK 25. jala maapinnale. Siis töötab programmeerija alati vähendatud sagedusega. Isiklikult märkasin, et vähendatud kiirusega programmeerimine võtab sekundi murdosa kauem aega ja seetõttu ei tõmba ma nüüd hüppajat, vaid õmblen sellega pidevalt.
Zeneri dioode D1 ja D2 kasutatakse programmeerija ja USB siini tasemete sobitamiseks; see töötab ilma nendeta, kuid mitte kõigis arvutites.
Sinine LED näitab, et vooluahel on programmeerimiseks valmis; punane LED süttib programmeerimise ajal. Programmeerimiskontaktid asuvad IDC-06 pistikul, pistikupesa vastab 6-kontaktilise ISP-pistiku ATMEL standardile:


See pistik sisaldab kontakte programmeeritavate seadmete toiteks; siin võetakse see otse arvuti USB-pordist, nii et peate olema ettevaatlik ja vältima lühiseid. Sama pistikut kasutatakse ka juhtmikrokontrolleri programmeerimiseks, selleks tuleb lihtsalt ühendada pesa ja mikrokontrolleri Reset-tihvtid (vt joonisel punast punktiirjoont). Autori ahelas tehakse seda hüppajaga, kuid ma ei ajanud tahvli segamini ja eemaldasin selle. Ühe püsivara jaoks piisab lihtsast juhtmest hüppajast. Tahvel osutus kahepoolseks, mõõtmetega 45x18 mm.


Programmeerimispistik ja hüppaja programmeerija kiiruse vähendamiseks asuvad seadme lõpus, see on väga mugav


Juhtiva mikrokontrolleri püsivara

Seega jääb peale seadme kokkupanemist kõige olulisem kontrollmikrokontrolleri vilkumine. Nendel eesmärkidel sobivad hästi sõbrad, kellel on veel LPT pordiga arvutid :)Lihtsaim viiejuhtmeline programmeerija AVR-i jaoks
Mikrokontrolleri saab programmeerimispistikust välja tõmmata, ühendades mikrokontrolleri (29 jala) Reset kontaktid ja pistiku. Püsivara on olemas mudelite Atmega48, Atmega8 ja Atmega88 jaoks. Soovitatav on kasutada ühte kahest viimasest kivist, kuna Atmega48 versiooni tugi on lõpetatud ja uusim püsivara versioon pärineb aastast 2009. Ja versioone 8. ja 88. kivide jaoks uuendatakse pidevalt ning autor näib plaanivat funktsionaalsusele lisada vooluringisisese siluri. Püsivara saame Saksa lehelt. Juhtprogrammi laadimiseks mikrokontrollerisse kasutasin PonyProg programmi. Programmeerimisel on vaja seada kristall töötama välisest kellaallikast 12 MHz juures. Ekraanipilt programmist koos PonyProgi kaitsme hüppaja sätetega:


Pärast püsivara vilkumist peaks süttima mikrokontrolleri jalaga 23 ühendatud LED. See on kindel märk, et programmeerija on edukalt programmeeritud ja kasutamiseks valmis.

Draiveri installimine

Installimine viidi läbi Windows 7-ga masinasse ja probleeme ei tekkinud. Kui ühendate arvutiga esimest korda, kuvatakse teade, mis näitab, et tuvastati uus seade, mis palub teil installida draiver. Valige installimine määratud asukohast:


Valige kaust, kus küttepuud asuvad, ja klõpsake nuppu Edasi


Kohe ilmub aken hoiatusega, et installitaval draiveril pole väikeste pehmete jaoks digitaalallkirja:


Me ignoreerime hoiatust ja jätkame installimist, pärast lühikest pausi ilmub aken, mis teavitab meid, et draiveri installimise toiming on edukalt lõpule viidud


See on kõik, programmeerija on nüüd kasutamiseks valmis.

Khazama AVR programmeerija

Programmeerijaga töötamiseks valisin vilkuri Khazama AVR Programmer. Suurepärane programm minimalistliku liidesega.


See töötab kõigi populaarsete AVR-i mikrokontrolleritega, võimaldab välku ja eeprom-i, vaadata mälu sisu, kustutada kiibi ja muuta ka kaitsmebittide konfiguratsiooni. Üldiselt täiesti standardne komplekt. Kaitsme seadistamine toimub ripploendist kella allika valimisega, seega väheneb kristalli kogemata lukustamise tõenäosus järsult. Kaitsmeid saab vahetada ka alumisele väljale märkeruutude asetamisega, kuid olematule konfiguratsioonile linnukesi panna ei saa ja see on ka turvalisuse mõttes suur pluss.


Kaitsmed kirjutatakse MK mällu, nagu võite arvata, vajutades nuppu Write All. Nupp Salvesta salvestab praeguse konfiguratsiooni ja nupp Laadi tagastab salvestatud. Tõsi, ma ei osanud nendele nuppudele praktilist kasutust välja mõelda. Vaikimisi nupp on mõeldud standardse kaitsmekonfiguratsiooni salvestamiseks, mille mikrokontrollerid tehasest tulevad (tavaliselt 1 MHz sisemisest RC-st).
Üldiselt kogu selle aja jooksul, mil ma seda programmeerijat kasutanud olen, on see stabiilsuse ja töökiiruse osas näidanud end parimana. See töötas probleemideta nii iidse lauaarvuti kui ka uue sülearvutiga.

Laadige alla PCB-failSprintLayoutis saate seda linki jälgida

Milliseid esimesi samme peaks raadioamatöör tegema, kui ta otsustab mikrokontrollerile vooluringi kokku panna? Loomulikult on vaja juhtimisprogrammi - "püsivara" ja ka programmeerijat.

Ja kui esimese punktiga probleeme pole - tavaliselt laadivad valmis “püsivara” üles vooluringide autorid, siis programmeerijaga on asjad keerulisemad.

Valmis USB programmeerijate hind on üsna kõrge ja parim lahendus oleks see ise kokku panna. Siin on kavandatava seadme skeem (pildid on klõpsatavad).

Põhiosa.

MK paigalduspaneel.

Algne diagramm on võetud autori loal LabKit.ru veebisaidilt, mille eest suur tänu. See on patenteeritud PICkit2 programmeerija niinimetatud kloon. Kuna seadme versioon on patenteeritud PICkit2 "kerge" koopia, nimetas autor oma arenduse PICkit-2 Lite, mis rõhutab sellise seadme kokkupanemise lihtsust algajatele raadioamatööridele.

Mida saab programmeerija teha? Programmeerija abil saate välgutada kõige hõlpsamini kättesaadavaid ja populaarsemaid PIC-seeria MCU-sid (PIC16F84A, PIC16F628A, PIC12F629, PIC12F675, PIC16F877A jne), aga ka 24LC-seeria EEPROM-i mälukiipe. Lisaks saab programmeerija töötada USB-UART muunduri režiimis ja tal on mõned loogikaanalüsaatori funktsioonid. Eriti oluline funktsioon, mis programmeerijal on, on mõne MCU (näiteks PIC12F629 ja PIC12F675) sisseehitatud RC-generaatori kalibreerimiskonstandi arvutamine.

Vajalikud muudatused.

Skeemis on mõned muudatused, mis on vajalikud selleks, et PICkit-2 Lite programmeerijat kasutades oleks võimalik 24Cxx seeria EEPROM-i mälukiipidelt andmeid kirjutada/kustutada/lugeda.

Alates muudatustest, mis skeemis tehti. Lisatud ühendus DD1 (RA4) viigust 6 ZIF-paneeli viiguni 21. AUX-pistikut kasutatakse eranditult 24LC EEPROM-i mälukiipidega (24C04, 24WC08 ja analoogid) töötamiseks. See edastab andmeid, mistõttu on programmeerimispaneeli diagrammil märgitud sõnaga “Data”. Mikrokontrollerite programmeerimisel tavaliselt AUX-pistikut ei kasutata, kuigi see on vajalik MK-de programmeerimisel LVP-režiimis.

Lisatud on ka 2 kOhm tõmbetakisti, mis on ühendatud mälukiipide SDA ja Vcc tihvtide vahele.

Olen kõik need muudatused trükkplaadil juba teinud, pärast PICkit-2 Lite'i kokkupanekut vastavalt autori esialgsele skeemile.

Koduraadioseadmetes kasutatakse laialdaselt 24Cxx mälukiipe (24C08 jne), mida tuleb vahel ka näiteks kineskooptelerite parandamisel välgutada. Seadete salvestamiseks kasutavad nad 24Cxx mälu.

LCD-telerid kasutavad teist tüüpi mälu (välkmälu). Olen juba rääkinud LCD-teleri mälu vilkumisest. Kui kedagi huvitab, siis vaadake.

Seoses vajadusega töötada 24Cxx seeria mikroskeemidega, pidin programmeerija “lõpetama”. Ma ei söövitanud uut trükkplaati, lisasin lihtsalt vajalikud elemendid trükkplaadile. Nii juhtus.

Seadme tuumaks on mikrokontroller PIC18F2550-I/SP.

See on seadme ainus kiip. MK PIC18F2550 tuleb "välgutada". See lihtne toiming tekitab paljudes segadust, kuna tekib nn “kana ja muna” probleem. Ma räägin teile veidi hiljem, kuidas ma selle lahendasin.

Programmeerija kokkupanemiseks vajalike osade loend. Mobiiliversioonis lohistage tabelit vasakule (pühkige vasakule-paremale), et näha kõiki selle veerge.

Nimi Määramine Hinnang/parameetrid Bränd või kauba tüüp
Programmeerija põhiosa jaoks
Mikrokontroller DD1 8-bitine mikrokontroller PIC18F2550-I/SP
Bipolaarsed transistorid VT1, VT2, VT3 KT3102
VT4 KT361
Diood VD1 KD522, 1N4148
Schottky diood VD2 1N5817
LEDid HL1, HL2 mis tahes 3 volti, punane Ja roheline säravad värvid
Takistid R1, R2 300 oomi
R3 22 kOhm
R4 1 kOhm
R5, R6, R12 10 kOhm
R7, R8, R14 100 oomi
R9, R10, R15, R16 4,7 kOhm
R11 2,7 kOhm
R13 100 kOhm
Kondensaatorid C2 0,1 μ K10-17 (keraamika), imporditud analoogid
C3 0,47 mikronit
Elektrolüütkondensaatorid C1 100uF * 6,3V K50-6, imporditud analoogid
C4 47 uF * 16 V
Induktiivpool (drossel) L1 680 uH ühtne tüüp EC24, CECL või isetehtud
Kvartsresonaator ZQ1 20 MHz
USB pesa XS1 tüüp USB-BF
Jumper XT1 mis tahes tüüpi "hüppaja"
Mikrokontrolleri paigalduspaneeli jaoks (MK)
ZIF-paneel XS1 mis tahes 40-kontaktiline ZIF-paneel
Takistid R1 2 kOhm MLT, MON (võimsus alates 0,125 W ja rohkem), imporditud analoogid
R2, R3, R4, R5, R6 10 kOhm

Nüüd natuke detailidest ja nende eesmärgist.

Roheline LED HL1 süttib, kui programmeerija toide on ühendatud ja punane HL2 LED süttib, kui andmeid arvuti ja programmeerija vahel edastatakse.

Seadme mitmekülgsuse ja töökindluse tagamiseks kasutatakse XS1 tüüpi “B” (ruudukujulist) USB-pesa. Arvuti kasutab A-tüüpi USB-pesa. Seetõttu on võimatu ühenduskaabli pistikupesasid segi ajada. See lahendus aitab kaasa ka seadme töökindlusele. Kui kaabel muutub kasutuskõlbmatuks, saab selle hõlpsalt uuega asendada ilma jootmise või paigaldustöödeta.

680 µH induktiivpoolina L1 on parem kasutada valmis induktiivpooli (näiteks tüübid EC24 või CECL). Kui te aga valmistoodet ei leia, saate gaasihoova ise valmistada. Selleks tuleb CW68 tüüpi induktiivpoolilt ferriitsüdamikule kerida 250 - 300 pööret PEL-0.1 traati. Tasub arvestada, et tänu tagasisidega PWM-i olemasolule ei pea muretsema induktiivsuse reitingu täpsuse pärast.

Kõrgepinge programmeerimise pinge (Vpp) vahemikus +8,5 kuni 14 volti loob võtmeregulaator. See sisaldab elemente VT1, VD1, L1, C4, R4, R10, R11. PWM-impulsid saadetakse PIC18F2550 kontaktilt 12 VT1 baasi. Tagasiside annab jagaja R10, R11.

Skeemielementide kaitsmiseks programmeerimisliinide pöördpinge eest, kui kasutate USB-programmeerijat ICSP (In-Circuit Serial Programming) režiimis, kasutatakse VD2 dioodi. VD2 on Schottky diood. See tuleks valida pingelanguga P-N-ristmikul mitte rohkem kui 0,45 volti. Samuti kaitseb VD2 diood elemente pöördpinge eest, kui programmeerijat kasutatakse USB-UART teisenduse ja loogikaanalüsaatori režiimis.

Kui kasutate programmeerijat eranditult paneeli mikrokontrollerite programmeerimiseks (ilma ICSP-d kasutamata), saate VD2 dioodi täielikult eemaldada (seda ma tegin) ja selle asemel paigaldada hüppaja.

Seadme kompaktsuse teeb universaalne ZIF-paneel (Zero Insertion Force – null paigaldusvaevaga).

Tänu sellele saate mikrokontrolleri "juhtmega ühendada" peaaegu igasse DIP-paketti.

Diagramm "Mikrokontrolleri (MK) paigalduspaneel" näitab, kuidas erineva korpusega mikrokontrollerid tuleb paneeli paigaldada. MK paigaldamisel tuleks tähelepanu pöörata sellele, et paneelis olev mikrokontroller oleks paigutatud nii, et kiibil olev võti oleks ZIF paneeli lukustushoova küljel.

Nii tuleb paigaldada 18-kontaktilised mikrokontrollerid (PIC16F84A, PIC16F628A jne).

Ja siin on 8-kontaktilised mikrokontrollerid (PIC12F675, PIC12F629 jne).

Kui teil on vaja pindpaigalduspaketis (SOIC) olevat mikrokontrollerit flashida, võite kasutada adapterit või lihtsalt joota mikrokontrolleri külge 5 kontakti, mida tavaliselt programmeerimiseks vaja läheb (Vpp, Clock, Data, Vcc, GND).

Trükkplaadi valmis joonise koos kõigi muudatustega leiate artikli lõpus olevalt lingilt. Avades faili programmis Sprint Layout 5.0, kasutades režiimi "Prindi", saate mitte ainult printida prinditud juhtmete mustriga kihti, vaid vaadata ka elementide paigutust trükkplaadil. Pöörake tähelepanu isoleeritud hüppajale, mis ühendab DD1 tihvti 6 ja ZIF-paneeli tihvti 21. Peate printima tahvli joonise peegelpildis.

Trükkplaadi saab teha LUT meetodil, samuti markerit trükkplaatidele, kasutades tsaponlaki (seda tegin mina) või “pliiatsi” meetodit.

Siin on pilt elementide paigutusest trükkplaadil (klikitav).

Paigaldamisel tuleb esmalt jootma tinatatud vasktraadist džemprid, seejärel paigaldada madala profiiliga elemendid (takistid, kondensaatorid, kvarts, ISCP pin pistik), seejärel transistorid ja programmeeritud MK. Viimane samm on paigaldada ZIF-paneel, USB-pesa ja tihendada juhtmed isolatsiooni (džemprid).

Mikrokontrolleri PIC18F2550 "püsivara".

Püsivara fail - PK2V023200.hex peate PIC18F2550I-SP MK mällu kirjutama, kasutades mis tahes programmeerijat, mis toetab PIC-mikrokontrollereid (näiteks Extra-PIC). Kasutasin JDM Programmator JONIC PROG ja programmi WinPic800.

PIC18F2550 MCU-sse saate püsivara üles laadida sama patenteeritud programmeerija PICkit2 või selle uue versiooni PICkit3 abil. Loomulikult saate seda teha omatehtud PICkit-2 Lite'iga, kui mõnel teie sõbral õnnestus see enne teid kokku panna :).

Samuti tasub teada, et mikrokontrolleri PIC18F2550-I/SP “püsivara” (fail PK2V023200.hex) kirjutatakse programmi PICkit 2 Programmer installimisel kausta koos programmi enda failidega. Faili PK2V023200.hex ligikaudne asukoht - "C:\Program Files (x86)\Microchip\PICkit 2 v2\PK2V023200.hex" . Nende jaoks, kelle arvutisse on installitud Windowsi 32-bitine versioon, on asukohatee erinev: "C:\Program Files\Microchip\PICkit 2 v2\PK2V023200.hex" .

Noh, kui te ei suutnud pakutud meetoditega "kana ja muna" probleemi lahendada, saate AliExpressi veebisaidilt osta valmis PICkit3 programmeerija. Seal maksab palju odavamalt. Kirjutasin AliExpressis osade ja elektrooniliste komplektide ostmisest.

Programmeerija püsivara värskendamine.

Progress ei seisa paigal ja aeg-ajalt annab Microchip välja oma tarkvara värskendusi, sealhulgas PICkit2, PICkit3 programmeerija jaoks. Loomulikult saame värskendada ka omatehtud PICkit-2 Lite juhtimisprogrammi. Selleks vajate programmi PICkit2 Programmer. Mis see on ja kuidas seda kasutada - veidi hiljem. Vahepeal paar sõna selle kohta, mida tuleb püsivara värskendamiseks teha.

Programmeerija tarkvara värskendamiseks peate sulgema programmeerija hüppaja XT1, kui see on arvutist lahti ühendatud. Seejärel ühendage programmeerija arvutiga ja käivitage PICkit2 Programmer. Kui XT1 on suletud, aktiveeritakse režiim alglaadur uue püsivara versiooni allalaadimiseks. Seejärel avage PICkit2 programmeerija menüüs "Tööriistad" - "Laadi alla PICkit 2 operatsioonisüsteem" värskendatud püsivara varem ettevalmistatud hex-fail. Järgmisena toimub programmeerija tarkvara värskendamise protsess.

Pärast värskendamist peate programmeerija arvutist lahti ühendama ja eemaldama XT1 hüppaja. Tavarežiimis on hüppaja avatud. Programmeerija tarkvara versiooni saate teada programmi PICkit2 Programmer menüüst "Abi" - "Teave".

See kõik puudutab tehnilisi probleeme. Ja nüüd tarkvarast.

Programmeerijaga töötamine. PICkit2 programmeerija.

USB-programmeerijaga töötamiseks peame arvutisse installima programmi PICkit2 Programmer. Sellel eriprogrammil on lihtne liides, seda on lihtne paigaldada ja see ei vaja erikonfiguratsiooni. Tasub teada, et programmeerijaga saab töötada MPLAB IDE arenduskeskkonda kasutades, kuid MK välgutamiseks/kustutamiseks/lugemiseks piisab lihtsast programmist - PICkit2 Programmer. Ma soovitan.

Pärast programmi PICkit2 Programmer installimist ühendage kokkupandud USB programmeerija arvutiga. Samal ajal süttib see roheline LED (“toide”) ja operatsioonisüsteem tunneb seadme ära kui "PICkit2 mikrokontrolleri programmeerija" ja installige draiverid.

Käivitage programm PICkit2 Programmer. Programmi aknasse peaks ilmuma kiri.

Kui programmeerija pole ühendatud, kuvatakse programmiaknas hirmutav teade ja lühikesed juhised "Mida teha?" inglise keeles.

Kui programmeerija on ühendatud arvutiga, kuhu on installitud MK, tuvastab programm selle käivitamisel ja teavitab meid sellest PICkit2 Programmeerija aknas.

Palju õnne! Esimene samm on astutud. Ja ma rääkisin eraldi artiklis, kuidas programmi PICkit2 Programmer kasutada. Järgmine samm .

Nõutavad failid:

    PICkit2 kasutusjuhend (vene keeles) võta või.

Arvutitehnoloogia arenguga jääb COM- ja LPT-portidega varustatud arvuteid iga korraga vähemaks. See omakorda tekitab raskusi, eriti raadioamatööridele, mis on seotud mikrokontrolleri programmeerimisvahendite sidumisega personaalarvutiga.

Selles artiklis kirjeldatakse AVR-i mikrokontrollerite USB-programmeerijat, mille saate ise kokku panna. See on üles ehitatud Atmega8 mikrokontrollerile ja on võimeline töötama arvuti USB-pistiku kaudu. See programmeerija ühildub STK500 v2-ga.

USB programmeerija kirjeldus

USB-programmeerija on ehitatud ühepoolsest fooliumklaaskiust plaadile. Plaadil on 2 hüppajat: üks asub SPI-pistiku all, teine ​​hüppaja asub sama pistiku läheduses.

Pärast kõigi osade pitseerimist peate Atmega8 mikrokontrolleri vilkuma artikli lõpus toodud püsivaraga. Kaitsmed, mida tuleb Atmega8 mikrokontrolleri programmeerimisel seadistada, peaksid välja nägema järgmised:

  • SUT1 = 0
  • BOOTSZ1 = 0
  • BOOTSZ0 = 0
  • CKOPT = 0
  • SPIEN = 0

Tuleb meeles pidada, et mõnes programmis on kaitsme seadistused seatud sellele vastupidises suunas. Näiteks CodeVisionAVR programmis tuleb märkida ülalmainitud kaitsmete kõrval olevad ruudud ja PonyProg programmis vastupidi.

Atmega8 programmeerimine arvuti LPT-pordi kaudu

Kiireim ja odavam viis Atmega8 programmeerimiseks on kasutada AVR-i jaoks LPT programmeerijat. Sarnane diagramm on näidatud allpool.

Mikrokontrolleri toiteallikaks on lihtne 78L05 pingeregulaator. Programmeerimiskestana saate kasutada programmi UniProf.

Programmi esmakordsel sisselülitamisel ja kui kontroller pole ühendatud, tuleb nuppu “LPTpins” vajutades konfigureerida LPT-pordi tihvtid järgmiselt.

Kui UniProf käivitub, määrab see automaatselt mikrokontrolleri tüübi. Laadime UniProfi mällu püsivara Atmega8_USB_prog.hex ja lükkame EEPROM-faili ühendamise tagasi.

Seadistame kaitsmed järgmiselt (UniProF programmi jaoks), vajutades nuppu FUSE:

Seadete meeldejätmiseks vajutage kõiki kolme "Kirjuta" nuppu. Seejärel klõpsates nuppu "Kustuta", tühjendame esmalt välgutava mikrokontrolleri mälu. Pärast seda klõpsake nuppu "Prog" ja oodake, kuni püsivara on lõpule viidud.

USB programmeerija seadistamine

Pärast meie mikrokontrolleri vilkumist tuleb see installida USB-programmeerija plaadile. Järgmisena ühendame programmeerija arvuti USB-porti, kuid ei anna veel toidet.

Pordi seadistus:

Terminali seadistamine:

ASCII seadistus:

Nüüd, kui kõik protseduurid on lõpetatud, varustame USB-programmeerijat toitega. HL1 LED-tuli peaks vilkuma 6 korda ja seejärel jääma põlema.

USB-programmeerija ja arvuti vahelise ühenduse kontrollimiseks vajutage programmis HyperTerminal kaks korda sisestusklahvi. Kui kõik on korras, peaksime nägema järgmist pilti:

Kui see nii ei ole, kontrollige installi uuesti, eriti TxD rida.

Järgmisena sisestame programmeerija versiooni 2.10, kuna ilma selleta ei tööta programmeerija “tipptasemel” programmidega. Selleks sisestage "2" ja vajutage "Enter", sisestage "a" (inglise keel) ja vajutage "Enter".

USB programmeerija suudab ära tunda programmeeritava mikrokontrolleri ühenduse. Seda tehakse lähtestamissignaali toiteallikale tõmbamise jälgimise vormis. See režiim lülitatakse sisse ja välja järgmiselt:

  • "0", "Sisesta" - režiim on keelatud.
  • "1", "Sisesta" - režiim on lubatud.

Programmeerimiskiiruse muutmine (1MHz):

  • “0”, “Enter” – maksimaalne kiirus.
  • “1”, “Enter” – vähendatud kiirus.

Sellega on ettevalmistustöö lõppenud, nüüd saab proovida mõnda mikrokontrollerit vilkuda.

(allalaadimisi: 1203)

Ühel päeval otsustasin pic16f628a jaoks lihtsa LC-mõõturi kokku panna ja loomulikult tuli see millegagi vilkuda. Varem oli mul füüsilise COM-pordiga arvuti, aga nüüd on ainult USB ja pci-lpt-2com plaat. Alustuseks panin kokku lihtsa JDM programmeerija, kuid nagu selgus, ei tahtnud see töötada ei pci-lpt-com plaadi ega usb-com adapteriga (RS-232 signaalide madalpinge). Siis tormasin usb pic programmeerijaid otsima, aga seal, nagu selgus, piirdus kõik kalli pic18f2550/4550 kasutamisega, mida mul loomulikult polnud ja kahju on nii kalleid MK-sid kasutada, kui ma väga. haruharva tee midagi tippajal (eelistan av- Jah, nende vilkumine pole probleem, need on palju odavamad ja mulle tundub, et neile on lihtsam programme kirjutada). Pärast pikka aega Internetis süvenemist ühes paljudest artiklitest EXTRA-PIC programmeerija ja selle erinevate variantide kohta kirjutas üks autoritest, et ekstrapic töötab kõigi kom-portide ja isegi usb-com-adapteriga.

Selle programmeerija vooluring kasutab max232 loogikataseme muundurit.

Arvasin, et kui kasutada usb adapterit, siis on väga rumal usb usb-i usart TTL-iks, TTL RS232-ks, RS232 kaks korda tagasi TTL tasemele konverteerida, kui saad lihtsalt RS232 pordi TTL signaalid usb-st võtta. usart-muunduri kiip.

Nii ma tegingi. Võtsin CH340G kiibi (millel on kõik 8 com-pordi signaali) ja ühendasin selle max232 asemel. Ja see juhtus.

Minu vooluringis on hüppaja jp1, mis ei ole ekstra tipus, paigaldasin selle, kuna ma ei teadnud, kuidas TX väljund TTL tasemel käitub, seega tegin selle allesjäänud vabal NAND-il võimalikuks inverteerida element ja nagu selgus, oli õige, TX viigul on loogiline ja seetõttu on sisselülitamisel VPP viigul 12 volti, kuid programmeerimise ajal ei juhtu midagi (kuigi saate tarkvaras TX-i inverteerida) .

Pärast plaadi kokkupanemist oli aeg testimiseks. Ja siit tuli peamine pettumus. Programmeerija tuvastati koheselt (ic-prog programmiga) ja hakkas tööle, kuid väga aeglaselt! Põhimõtteliselt – ootuspäraselt. Seejärel määrasin kompordiseadetes maksimaalse kiiruse (128 kilobaudi) ja hakkasin kõiki leitud programme JDM-i jaoks testima. Selle tulemusena osutus PicPgm kõige kiiremaks. Minu pic16f628a välklamp (hex, eeprom ja config) pluss kinnitus umbes 4-6 minutit (lugemine on aeglasem kui kirjutamine). IcProg töötab ka, kuid aeglasemalt. Programmeerimisvigu ei olnud. Proovisin ka eeprom 24c08 vilkuda, tulemus sama - kõik õmbleb, aga väga aeglaselt.

Järeldused: programmeerija on üsna lihtne, ei sisalda kalleid detaile (CH340 - 0,3-0,5 $, k1533la3 võib üldiselt leida raadiorämpsu hulgast), töötab igas arvutis, sülearvutis (ja Windows 8/10-s saate kasutada isegi tahvelarvuteid ). Miinused: see on väga aeglane. See nõuab ka VPP-signaali jaoks välist toidet. Selle tulemusena tundus mulle, et harukordsete piikide vilkumise korral on see lihtsalt korratav ja odav variant neile, kellel pole käepärast iidset arvutit koos vajalike portidega.

Siin on foto valmis seadmest:

Nagu laul ütleb: "Ma tegin ta sellest, mis oli." Osade komplekt on väga mitmekesine: nii SMD kui ka DIP.

Kes julgeb skeemi korrata, siis usb-uart muunduriks sobib peaaegu iga (ft232, pl2303, cp2101 jne), k1533la3 asemel sobib k555, arvan, et isegi k155 seeria või mõni välismaa analoog 74als00, võib see töötada isegi k1533ln1 tüüpi loogiliste EI-elementidega. Kinnitan oma trükkplaadi, kuid igaüks saab seal juhtmestiku ümber joonistada nende elementide jaoks, mis olid olemas.

Radioelementide loetelu

Määramine Tüüp Denominatsioon Kogus MärgePoodMinu märkmik
IC1 KiipCH340G1 Märkmikusse
IC2 KiipK1533LA31 Märkmikusse
VR1 Lineaarne regulaator

LM7812

1 Märkmikusse
VR2 Lineaarne regulaator

LM7805

1 Märkmikusse
VT1 Bipolaarne transistor

KT502E

1 Märkmikusse
VT2 Bipolaarne transistor

KT3102E

1 Märkmikusse
VD1-VD3 Alaldi diood

1N4148

2 Märkmikusse
C1, C2, C5-C7 Kondensaator100 nF5 Märkmikusse
C3, C4 Kondensaator22 pF2 Märkmikusse
HL1-HL4 ValgusdioodÜkskõik milline4 Märkmikusse
R1, R3, R4 Takisti

1 kOhm

3
22. september 2011, kell 20:11

Miniatuurne USB programmeerija AVR mikrokontrollerite jaoks

  • Mikrokontrolleri programmeerimine

Nii nagu teater algab riidepuust, nii algab ka mikrokontrollerite programmeerimine hea programmeerija valikuga. Kuna hakkan ATMELi mikrokontrollereid valdama, pidin end tootjate pakutavaga põhjalikult kurssi viima. Nad pakuvad palju huvitavat ja maitsvat, ainult ülikõrgete hindadega. Näiteks ühe kahekümnejalgse mikrokontrolleriga sall, millel on paar takistit ja dioodid rakmetena, maksab nagu “lennuk”. Seetõttu tekkis küsimus programmeerija isekomplekteerimisest. Pärast pikka uurimist kogenud raadioamatööride arengute kohta otsustati kokku panna end hästi tõestanud USBASP programmeerija, mille ajuks on Atmega8 mikrokontroller (on olemas ka püsivara võimalused atmega88 ja atmega48 jaoks). Mikrokontrolleri minimaalne juhtmestik võimaldab teil kokku panna üsna miniatuurse programmeerija, mille saate alati kaasa võtta, näiteks mälupulga.

Selle programmeerija autor on sakslane Thomas Fichl, tema arendusleht diagrammide, trükkplaadi failide ja draiveritega.
Kui oli otsustatud miniatuurne programmeerija kokku panna, joonistasin TQFP32 paketis oleva mikrokontrolleri Atmega8 skeemi ümber (mikrokontrolleri pinout erineb DIP-paketi pinoutist):

Jumper J1 kasutatakse juhul, kui on vaja vilgutada mikrokontrollerit, mille taktsagedus on alla 1,5 MHz. Muide, selle hüppaja saab üldse ära kaotada, kui asetada MK 25. jala maapinnale. Siis töötab programmeerija alati vähendatud sagedusega. Isiklikult märkasin, et vähendatud kiirusega programmeerimine võtab sekundi murdosa kauem aega ja seetõttu ei tõmba ma nüüd hüppajat, vaid õmblen sellega pidevalt.
Zeneri dioode D1 ja D2 kasutatakse programmeerija ja USB siini tasemete sobitamiseks; see töötab ilma nendeta, kuid mitte kõigis arvutites.
Sinine LED näitab, et vooluahel on programmeerimiseks valmis; punane LED süttib programmeerimise ajal. Programmeerimiskontaktid asuvad IDC-06 pistikul, pistikupesa vastab 6-kontaktilise ISP-pistiku ATMEL standardile:

See pistik sisaldab kontakte programmeeritavate seadmete toiteks; siin võetakse see otse arvuti USB-pordist, nii et peate olema ettevaatlik ja vältima lühiseid. Sama pistikut kasutatakse ka juhtmikrokontrolleri programmeerimiseks, selleks tuleb lihtsalt ühendada pesa ja mikrokontrolleri Reset-tihvtid (vt joonisel punast punktiirjoont). Autori ahelas tehakse seda hüppajaga, kuid ma ei ajanud tahvli segamini ja eemaldasin selle. Ühe püsivara jaoks piisab lihtsast juhtmest hüppajast. Tahvel osutus kahepoolseks, mõõtmetega 45x18 mm.

Programmeerimispistik ja hüppaja programmeerija kiiruse vähendamiseks asuvad seadme lõpus, see on väga mugav

Juhtiva mikrokontrolleri püsivara
Seega jääb peale seadme kokkupanemist kõige olulisem kontrollmikrokontrolleri vilkumine. Nendel eesmärkidel sobivad hästi need sõbrad, kellel on veel LPT pordiga arvutid :) Lihtsaim viiejuhtmeline programmeerija AVR-ile
Mikrokontrolleri saab programmeerimispistikust välja tõmmata, ühendades mikrokontrolleri (29 jala) Reset kontaktid ja pistiku. Püsivara on olemas mudelite Atmega48, Atmega8 ja Atmega88 jaoks. Soovitatav on kasutada ühte kahest viimasest kivist, kuna Atmega48 versiooni tugi on lõpetatud ja uusim püsivara versioon pärineb aastast 2009. Ja versioone 8. ja 88. kivide jaoks uuendatakse pidevalt ning autor näib plaanivat funktsionaalsusele lisada vooluringisisese siluri. Püsivara saame Saksa lehelt. Juhtprogrammi laadimiseks mikrokontrollerisse kasutasin PonyProg programmi. Programmeerimisel on vaja seada kristall töötama välisest kellaallikast 12 MHz juures. Ekraanipilt programmist koos PonyProgi kaitsme hüppaja sätetega:

Pärast püsivara vilkumist peaks süttima mikrokontrolleri jalaga 23 ühendatud LED. See on kindel märk, et programmeerija on edukalt programmeeritud ja kasutamiseks valmis.

Draiveri installimine
Installimine viidi läbi Windows 7-ga masinasse ja probleeme ei tekkinud. Kui ühendate arvutiga esimest korda, kuvatakse teade, mis näitab, et tuvastati uus seade, mis palub teil installida draiver. Valige installimine määratud asukohast:

Kohe ilmub aken hoiatusega, et installitaval draiveril pole väikeste pehmete jaoks digitaalallkirja:

Me ignoreerime hoiatust ja jätkame installimist, pärast lühikest pausi ilmub aken, mis teavitab meid, et draiveri installimise toiming on edukalt lõpule viidud

See on kõik, programmeerija on nüüd kasutamiseks valmis.

Khazama AVR programmeerija
Programmeerijaga töötamiseks valisin vilkuri Khazama AVR Programmer. Suurepärane programm minimalistliku liidesega.

See töötab kõigi populaarsete AVR-i mikrokontrolleritega, võimaldab välku ja eeprom-i, vaadata mälu sisu, kustutada kiibi ja muuta ka kaitsmebittide konfiguratsiooni. Üldiselt täiesti standardne komplekt. Kaitsme seadistamine toimub ripploendist kella allika valimisega, seega väheneb kristalli kogemata lukustamise tõenäosus järsult. Kaitsmeid saab vahetada ka alumisele väljale märkeruutude asetamisega, kuid olematule konfiguratsioonile linnukesi panna ei saa ja see on ka turvalisuse mõttes suur pluss.

Kaitsmed kirjutatakse MK mällu, nagu võite arvata, vajutades nuppu Write All. Nupp Salvesta salvestab praeguse konfiguratsiooni ja nupp Laadi tagastab salvestatud. Tõsi, ma ei osanud nendele nuppudele praktilist kasutust välja mõelda. Vaikimisi nupp on mõeldud standardse kaitsmekonfiguratsiooni salvestamiseks, mille mikrokontrollerid tehasest tulevad (tavaliselt 1 MHz sisemisest RC-st).
Üldiselt kogu selle aja jooksul, mil ma seda programmeerijat kasutanud olen, on see stabiilsuse ja töökiiruse osas näidanud end parimana. See töötas probleemideta nii iidse lauaarvuti kui ka uue sülearvutiga.

PCB-faili saate alla laadida SprintLayoutis kasutades