Sheme in materiali. Posodabljanje vdelane programske opreme programatorja

Tako kot se gledališče začne z obešalnikom, se tudi programiranje mikrokontrolerjev začne z izbiro dobrega programatorja. Ker začenjam obvladovati mikrokontrolerje podjetja ATMEL, nato pa sem se moral temeljito seznaniti s ponudbo proizvajalcev. Ponujajo veliko zanimivega in okusnega, le po previsokih cenah. Na primer, šal z enim dvajsetkrakim mikrokontrolerjem s parom uporov in diod kot pasom stane kot "letalo". Zato se je pojavilo vprašanje samosestavljanja programerja. Po dolgi študiji razvoja izkušenih radioamaterjev je bilo odločeno sestaviti dobro preizkušen programer USBASP , katerega možgani so mikrokrmilnikAtmega8 (obstajajo tudi možnosti vdelane programske opreme za atmega88 in atmega48). Minimalno ožičenje mikrokontrolerja vam omogoča, da sestavite dokaj miniaturni programator, ki ga lahko vedno vzamete s seboj, kot je bliskovni pogon.

Ko je bilo odločeno, da sestavim miniaturni programator, sem v ohišje prerisal vezje za mikrokontroler Atmega8. TQFP32(pinout mikrokontrolerja se razlikuje od pinout-a v paketu DIP):

Jumper J1 se uporablja, če je potrebno utripati mikrokrmilnik z urno frekvenco pod 1,5 MHz. Mimogrede, tega skakalca lahko popolnoma odpravite tako, da postavite 25. nogo MK na tla. Potem bo programator vedno deloval z zmanjšano frekvenco. Osebno sem opazil, da programiranje z zmanjšano hitrostjo traja delček sekunde dlje, zato zdaj ne vlečem mostička, ampak nenehno šivam z njim.
Zener diode D1 in D2 se uporabljajo za uskladitev nivojev med programatorjem in vodilom USB; brez njih bo delovalo, vendar ne na vseh računalnikih.
Modra LED označuje, da je vezje pripravljeno za programiranje; rdeča LED sveti med programiranjem. Programski kontakti se nahajajo na konektorju IDC-06, pinout je v skladu s standardom ATMEL za 6-polni ISP konektor:


Ta konektor vsebuje kontakte za napajanje programabilnih naprav; tukaj je vzet neposredno iz vrat USB računalnika, zato morate biti previdni in se izogibati kratkim stikom. Isti konektor se uporablja tudi za programiranje krmilnega mikrokrmilnika, za to pa povežite le pine Reset na konektorju in na mikrokrmilniku (glejte rdečo pikčasto črto na diagramu). V avtorjevem vezju je to storjeno s skakalcem, vendar plošče nisem neredil in jo odstranil. Za eno strojno programsko opremo bo zadostoval preprost žični mostiček. Izkazalo se je, da je plošča dvostranska, dimenzij 45x18 mm.


Priključek za programiranje in mostiček za zmanjšanje hitrosti programatorja se nahajata na koncu naprave, kar je zelo priročno


Firmware krmilnega mikrokrmilnika

Torej, po sestavljanju naprave, ostane najpomembnejše, da utripamo krmilni mikrokrmilnik. Prijatelji, ki še vedno imajo računalnike z vrati LPT, so zelo primerni za te namene :)Najenostavnejši petžilni programator za AVR
Mikrokrmilnik je mogoče preklopiti iz konektorja za programiranje tako, da povežete Reset pine mikrokrmilnika (29 krak) in konektor. Vdelana programska oprema obstaja za modele Atmega48, Atmega8 in Atmega88. Priporočljivo je, da uporabite enega od zadnjih dveh kamnov, saj je bila podpora za različico Atmega48 ukinjena in zadnja različica vdelane programske opreme izvira iz leta 2009. Različice za 8. in 88. kamen se nenehno posodabljajo in zdi se, da avtor namerava funkcionalnosti dodati razhroščevalnik v vezju. Firmware dobimo z nemške strani. Za nalaganje krmilnega programa na mikrokontroler sem uporabil program PonyProg. Pri programiranju je treba nastaviti kristal, da deluje iz zunanjega vira takta na 12 MHz. Posnetek zaslona programa z nastavitvami mostičkov varovalk v PonyProg:


Po utripanju vdelane programske opreme mora zasvetiti LED, ki je priključen na nogo 23 mikrokrmilnika. To bo zanesljiv znak, da je bil programator uspešno programiran in pripravljen za uporabo.

Namestitev gonilnika

Namestitev je bila izvedena na računalniku z operacijskim sistemom Windows 7 in ni bilo težav. Ko se prvič povežete z računalnikom, se prikaže sporočilo, da je bila zaznana nova naprava, in vas pozove, da namestite gonilnik. Izberite namestitev z navedene lokacije:


Izberite mapo, v kateri se nahajajo drva, in kliknite Naprej


Takoj se prikaže okno z opozorilom, da nameščeni gonilnik nima digitalnega podpisa za majhne programske:


Ignoriramo opozorilo in nadaljujemo namestitev, po kratkem premoru se prikaže okno, ki nas obvesti, da je bila operacija namestitve gonilnika uspešno zaključena


To je to, programator je zdaj pripravljen za uporabo.

Khazama AVR programer

Za delo s programatorjem sem izbral flasher Khazama AVR Programmer. Čudovit program z minimalističnim vmesnikom.


Deluje z vsemi priljubljenimi AVR mikrokontrolerji, omogoča flashanje flash in eeproma, ogled vsebine pomnilnika, brisanje čipa in tudi spreminjanje konfiguracije varovalk. Na splošno povsem standarden komplet. Nastavitev varovalke se izvede z izbiro vira ure iz spustnega seznama, s čimer se močno zmanjša verjetnost pomotoma zaklepanje kristala. Varovalke lahko menjate tudi tako, da v spodnjem polju postavite potrditvena polja, ne morete pa označiti neobstoječe konfiguracije, kar je tudi velik plus z vidika varnosti.


Varovalke se zapišejo v pomnilnik MK, kot morda uganete, s pritiskom na gumb Write All. Gumb Shrani shrani trenutno konfiguracijo, gumb Naloži pa vrne shranjeno. Res je, nisem mogel najti praktične uporabe teh gumbov. Gumb Privzeto je namenjen snemanju standardne konfiguracije varovalke, tiste, s katero prihajajo mikrokrmilniki iz tovarne (običajno 1 MHz od notranjega RC).
Na splošno se je ves čas, ko uporabljam ta programator, izkazal za najboljšega glede stabilnosti in hitrosti delovanja. Deloval je brez težav tako na starem namiznem računalniku kot na novem prenosniku.

Prenesite datoteko PCBv SprintLayout lahko sledite tej povezavi

Katere prve korake mora narediti radioamater, če se odloči sestaviti vezje na mikrokontrolerju? Seveda je potreben nadzorni program - "firmware", pa tudi programer.

In če s prvo točko ni težav - končano "firmware" običajno naložijo avtorji vezij, potem so s programerjem stvari bolj zapletene.

Cena že pripravljenih programatorjev USB je precej visoka in najboljša rešitev bi bila, da ga sestavite sami. Tukaj je diagram predlagane naprave (slike je mogoče klikniti).

Glavni del.

Montažna plošča MK.

Izvirni diagram je bil vzet s spletne strani LabKit.ru z dovoljenjem avtorja, za kar se mu zahvaljujemo. To je tako imenovani klon lastniškega programatorja PICkit2. Ker je različica naprave "lahka" kopija lastniškega PICkit2, je avtor svoj razvoj poimenoval PICkit-2 Lite, ki poudarja enostavnost sestave takšne naprave za začetnike radioamaterje.

Kaj lahko naredi programer? Z uporabo programatorja lahko bliskate najbolj dostopne in priljubljene MCU serije PIC (PIC16F84A, PIC16F628A, PIC12F629, PIC12F675, PIC16F877A itd.), kot tudi pomnilniške čipe EEPROM serije 24LC. Poleg tega lahko programator deluje v načinu pretvornika USB-UART in ima nekatere funkcije logičnega analizatorja. Posebej pomembna funkcija, ki jo ima programator, je izračun kalibracijske konstante vgrajenega RC generatorja nekaterih MCU-jev (na primer PIC12F629 in PIC12F675).

Nujne spremembe.

V vezju je nekaj sprememb, ki so potrebne, da je s programatorjem PICkit-2 Lite mogoče pisati/brisati/brati podatke iz EEPROM pomnilniških čipov serije 24Cxx.

Od sprememb, ki so bile narejene v shemi. Dodana povezava s pina 6 DD1 (RA4) na pin 21 plošče ZIF. AUX pin se uporablja izključno za delo s pomnilniškimi čipi 24LC EEPROM (24C04, 24WC08 in analogi). Prenaša podatke, zato je na diagramu programske plošče označen z besedo »Podatki«. Pri programiranju mikrokontrolerjev se pin AUX običajno ne uporablja, čeprav je potreben pri programiranju MK v načinu LVP.

Dodan je tudi 2 kOhm pull-up upor, ki je povezan med SDA in Vcc pinom pomnilniških čipov.

Vse te spremembe sem že naredil na tiskanem vezju, potem ko sem sestavil PICkit-2 Lite po avtorjevi originalni shemi.

Pomnilniški čipi 24Cxx (24C08 itd.) Se pogosto uporabljajo v gospodinjski radijski opremi in včasih jih je treba utripati, na primer pri popravilu televizorjev CRT. Za shranjevanje nastavitev uporabljajo pomnilnik 24Cxx.

LCD-televizorji uporabljajo drugo vrsto pomnilnika (flash pomnilnik). O tem, kako bliskati pomnilnik LCD televizorja, sem že govoril. Če koga zanima naj pogleda.

Zaradi potrebe po delu z mikrovezji serije 24Cxx sem moral "dokončati" programator. Novega tiskanega vezja nisem jedkal, le dodal sem potrebne elemente na tiskano vezje. To se je zgodilo.

Jedro naprave je mikrokrmilnik PIC18F2550-I/SP.

To je edini čip v napravi. MK PIC18F2550 je treba "utripati". Ta preprosta operacija pri mnogih povzroča zmedo, saj se pojavi tako imenovana težava "kokoš in jajce". Povedal vam bom, kako sem to rešil malo kasneje.

Seznam delov za sestavljanje programatorja. V mobilni različici povlecite tabelo v levo (povlecite levo-desno), da vidite vse njene stolpce.

Ime Imenovanje Ocena/parametri Znamka ali vrsta artikla
Za glavni del programerja
Mikrokrmilnik DD1 8-bitni mikrokrmilnik PIC18F2550-I/SP
Bipolarni tranzistorji VT1, VT2, VT3 KT3102
VT4 KT361
Dioda VD1 KD522, 1N4148
Schottky dioda VD2 1N5817
LED diode HL1, HL2 poljubni 3 volti, rdeča in zelenažareče barve
Upori R1, R2 300 ohmov
R3 22 kOhm
R4 1 kOhm
R5, R6, R12 10 kOhm
R7, R8, R14 100 ohmov
R9, R10, R15, R16 4,7 kOhm
R11 2,7 kOhm
R13 100 kOhm
Kondenzatorji C2 0,1 μ K10-17 (keramika), uvoženi analogi
C3 0,47 mikronov
Elektrolitski kondenzatorji C1 100uF * 6,3 V K50-6, uvoženi analogi
C4 47 uF * 16 V
Induktor (dušilka) L1 680 µH poenoten tip EC24, CECL ali domače izdelave
Kvarčni resonator ZQ1 20 MHz
USB vtičnica XS1 tipa USB-BF
Skakalec XT1 kakršen koli "skakalec"
Za namestitveno ploščo mikrokrmilnika (MK)
plošča ZIF XS1 katero koli 40-pinsko ploščo ZIF
Upori R1 2 kOhm MLT, MON (moč od 0,125 W in več), uvoženi analogi
R2, R3, R4, R5, R6 10 kOhm

Zdaj pa malo o podrobnostih in njihovem namenu.

Zelena LED HL1 zasveti, ko je programator priključen na napajanje, in rdeča LED HL2 sveti, ko se podatki prenašajo med računalnikom in programatorjem.

Da bi napravi zagotovili vsestranskost in zanesljivost, se uporablja USB vtičnica XS1 tipa "B" (kvadratna). Računalnik uporablja USB vtičnico tipa A. Zato je nemogoče zamenjati vtičnice priključnega kabla. Ta rešitev prispeva tudi k zanesljivosti naprave. Če kabel postane neuporaben, ga je mogoče enostavno zamenjati z novim, ne da bi se zatekli k spajkanju ali namestitvi.

Kot 680 µH induktor L1 je bolje uporabiti že pripravljen (na primer tipa EC24 ali CECL). Če pa ne najdete končnega izdelka, lahko plin naredite sami. Če želite to narediti, morate naviti 250 - 300 obratov žice PEL-0.1 na feritno jedro iz induktorja tipa CW68. Upoštevati je treba, da zaradi prisotnosti PWM s povratnimi informacijami ni treba skrbeti za natančnost ocene induktivnosti.

Napetost za programiranje visoke napetosti (Vpp) od +8,5 do 14 voltov ustvari regulator ključa. Vključuje elemente VT1, VD1, L1, C4, R4, R10, R11. Impulzi PWM so poslani iz nožice 12 PIC18F2550 v bazo VT1. Povratne informacije zagotavlja delilnik R10, R11.

Za zaščito elementov vezja pred povratno napetostjo iz programirnih linij pri uporabi programatorja USB v načinu ICSP (In-Circuit Serial Programming) se uporablja dioda VD2. VD2 je Schottkyjeva dioda. Izbrati ga je treba s padcem napetosti na spoju P-N, ki ne presega 0,45 voltov. Prav tako dioda VD2 ščiti elemente pred povratno napetostjo, ko se programator uporablja v načinu pretvorbe USB-UART in logičnega analizatorja.

Pri uporabi programatorja izključno za programiranje mikrokontrolerjev v panelu (brez uporabe ICSP) lahko diodo VD2 popolnoma izločite (to sem naredil jaz) in namesto nje namestite mostiček.

Kompaktnost naprave zagotavlja univerzalna plošča ZIF (Zero Insertion Force - z ničelnim naporom pri vgradnji).

Zahvaljujoč njej lahko mikrokrmilnik "trdno povežete" v skoraj vsako DIP ohišje.

Shema "Namestitvena plošča mikrokrmilnika (MK)" prikazuje, kako morajo biti v ploščo nameščeni mikrokontrolerji z različnimi ohišji. Pri namestitvi MK bodite pozorni na to, da je mikrokontroler v plošči nameščen tako, da je ključ na čipu na strani zaklepne ročice ZIF plošče.

Tako morate namestiti 18-pinske mikrokontrolerje (PIC16F84A, PIC16F628A itd.).

In tukaj so 8-polni mikrokontrolerji (PIC12F675, PIC12F629 itd.).

Če morate bliskati mikrokrmilnik v paketu za površinsko montažo (SOIC), lahko uporabite adapter ali preprosto spajkate 5 nožic na mikrokrmilnik, ki so običajno potrebni za programiranje (Vpp, Clock, Data, Vcc, GND).

Končano risbo tiskanega vezja z vsemi spremembami najdete na povezavi na koncu članka. Z odpiranjem datoteke v programu Sprint Layout 5.0 v načinu »Natisni« lahko ne samo natisnete plast z vzorcem tiskanih prevodnikov, temveč si ogledate tudi položaj elementov na tiskanem vezju. Bodite pozorni na izoliran mostiček, ki povezuje pin 6 DD1 in pin 21 plošče ZIF. Natisniti morate risbo plošče v zrcalni podobi.

Tiskano vezje lahko izdelate po metodi LUT, pa tudi marker za tiskana vezja z uporabo tsaponlaka (to sem naredil jaz) ali metode "svinčnika".

Tukaj je slika pozicioniranja elementov na tiskanem vezju (klikabilno).

Pri montaži najprej spajkamo mostičke iz pokositrene bakrene žice, nato vgradimo nizkoprofilne elemente (upori, kondenzatorji, kvarc, ISCP pin konektor), nato tranzistorje in programiran MK. Zadnji korak je namestitev ZIF plošče, USB vtičnice in tesnjenje žic v izolacijo (mostički).

"Firmware" mikrokontrolerja PIC18F2550.

Datoteka vdelane programske opreme - PK2V023200.hex PIC18F2550I-SP MK morate zapisati v pomnilnik s katerim koli programatorjem, ki podpira mikrokontrolerje PIC (na primer Extra-PIC). Uporabil sem JDM programator JONIC PROG in program WinPic800.

Vdelano programsko opremo lahko naložite v PIC18F2550 MCU z uporabo istega lastniškega programatorja PICkit2 ali njegove nove različice PICkit3. Seveda lahko to storite z domačim PICkit-2 Lite, če ga je komu od vaših prijateljev uspelo sestaviti pred vami :).

Vedeti velja tudi, da je “firmware” mikrokrmilnika PIC18F2550-I/SP (datoteka PK2V023200.hex) se zapiše ob namestitvi programa PICkit 2 Programmer v mapo skupaj z datotekami samega programa. Približna lokacija datoteke PK2V023200.hex - "C:\Programske datoteke (x86)\Microchip\PICkit 2 v2\PK2V023200.hex" . Za tiste, ki imajo v računalniku nameščeno 32-bitno različico sistema Windows, bo pot lokacije drugačna: "C:\Programske datoteke\Microchip\PICkit 2 v2\PK2V023200.hex" .

No, če s predlaganimi metodami niste mogli rešiti problema "piščanec in jajce", potem lahko na spletnem mestu AliExpress kupite že pripravljen programator PICkit3. Tam stane veliko ceneje. Pisal sem o tem, kako kupiti dele in elektronske komplete na AliExpressu.

Posodabljanje vdelane programske opreme programatorja.

Napredek ne miruje in Microchip občasno izda posodobitve za svojo programsko opremo, vključno s programatorjem PICkit2, PICkit3. Seveda lahko posodobimo tudi nadzorni program našega domačega PICkit-2 Lite. Za to boste potrebovali program PICkit2 Programmer. Kaj je in kako ga uporabljati - malo kasneje. Medtem pa nekaj besed o tem, kaj je treba storiti za posodobitev vdelane programske opreme.

Če želite posodobiti programsko opremo programatorja, morate zapreti mostiček XT1 na programatorju, ko je odklopljen od računalnika. Nato povežite programator z osebnim računalnikom in zaženite programator PICkit2. Ko je XT1 zaprt, je način aktiviran zagonski nalagalnik za prenos nove različice vdelane programske opreme. Nato v programu PICkit2 Programmer prek menija »Orodja« - »Prenos operacijskega sistema PICkit 2« odprite predhodno pripravljeno šestnajstiško datoteko posodobljene vdelane programske opreme. Nato se bo zgodil postopek posodobitve programske opreme programerja.

Po posodobitvi morate odklopiti programator iz računalnika in odstraniti mostiček XT1. V normalnem načinu je mostiček odprt. Različico programske opreme programatorja lahko izveste v meniju "Help" - "About" v programu PICkit2 Programmer.

To so vse tehnične težave. In zdaj o programski opremi.

Delo s programerjem. Programator PICkit2.

Za delo z USB programatorjem bomo morali na računalnik namestiti program PICkit2 Programmer. Ta poseben program ima preprost vmesnik, enostaven za namestitev in ne zahteva posebne konfiguracije. Omeniti velja, da lahko s programatorjem delate z razvojnim okoljem MPLAB IDE, vendar za utripanje/brisanje/branje MK zadostuje preprost program - PICkit2 Programmer. Priporočam.

Po namestitvi programa PICkit2 Programmer povežite sestavljen USB programator z računalnikom. Hkrati se bo zasvetilo zelena LED (»napajanje«), operacijski sistem pa napravo prepozna kot "Programator mikrokontrolerjev PICkit2" in namestite gonilnike.

Zaženite program PICkit2 Programmer. V oknu programa se mora pojaviti napis.

Če programator ni povezan, bo okno programa prikazalo strašljivo sporočilo in kratka navodila "Kaj storiti?" v angleščini.

Če je programator povezan z računalnikom z nameščenim MK, ga bo program ob zagonu zaznal in nas o tem obvestil v oknu PICkit2 Programmer.

čestitke! Prvi korak je bil narejen. O tem, kako uporabljati program PICkit2 Programmer, sem govoril v ločenem članku. Naslednji korak .

Zahtevane datoteke:

    Uporabniški priročnik PICkit2 (ruščina) vzemite oz.

Z razvojem računalniške tehnologije je vedno manj računalnikov, opremljenih s priključki COM in LPT. To pa zlasti pri radioamaterjih povzroča težave pri povezovanju orodij za programiranje mikrokrmilnika z osebnim računalnikom.

V članku je opisan USB programator za AVR mikrokontrolerje, ki ga lahko sestavite sami. Zgrajen je na mikrokontrolerju Atmega8 in lahko deluje prek USB priključka računalnika. Ta programator je združljiv s STK500 v2.

Opis USB programatorja

USB programator je zgrajen na plošči iz enostranske folije iz steklenih vlaken. Na plošči sta 2 mostička: eden se nahaja pod konektorjem SPI, drugi mostiček se nahaja blizu istega konektorja.

Ko so vsi deli zapečateni, morate mikrokrmilnik Atmega8 preklopiti z vdelano programsko opremo, navedeno na koncu članka. Varovalke, ki jih je treba nastaviti pri programiranju mikrokontrolerja Atmega8, bi morale izgledati takole:

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

Ne smemo pozabiti, da so v nekaterih programih nastavitve varovalke nastavljene v nasprotni smeri od te. Na primer, v programu CodeVisionAVR morate označiti polja poleg zgoraj omenjenih varovalk, v programu PonyProg pa obratno.

Programiranje Atmega8 preko LPT vrat računalnika

Najhitrejši in najcenejši način programiranja Atmega8 je uporaba programatorja LPT za AVR. Podoben diagram je prikazan spodaj.

Mikrokrmilnik napaja preprost regulator napetosti 78L05. Program UniProf lahko uporabljate kot programsko lupino.

Ko prvič vklopite program in ko krmilnik ni povezan, morate s pritiskom na gumb "LPTpins" konfigurirati pine vrat LPT na naslednji način:

Ko se UniProf zažene, samodejno določi tip mikrokontrolerja. V pomnilnik UniProf naložimo firmware Atmega8_USB_prog.hex in zavrnemo povezavo EEPROM datoteke.

Varovalke nastavimo takole (za program UniProF) s pritiskom na tipko “FUSE”:

Za shranjevanje nastavitev pritisnite vse tri gumbe »Write«. Nato s klikom na “Erase” najprej počistimo pomnilnik mikrokontrolerja, ki ga flashamo. Po tem kliknite »Prog« in počakajte, da se vdelana programska oprema konča.

Nastavitev USB programatorja

Ko je naš mikrokontroler flashan, ga je treba namestiti na programsko ploščo USB. Nato priključimo programator na USB vrata računalnika, vendar še ne napajamo.

Nastavitev vrat:

Nastavitev terminala:

Nastavitev ASCII:

Zdaj, ko so vsi postopki končani, napajamo USB programator. Lučka LED HL1 mora 6-krat utripati in nato ostati prižgana.

Če želite preveriti povezavo med programatorjem USB in računalnikom, v programu HyperTerminal dvakrat pritisnite tipko "Enter". Če je vse v redu, bi morali videti naslednjo sliko:

Če temu ni tako, ponovno preverite namestitev, še posebej linijo TxD.

Nato vnesemo različico programatorja 2.10, saj brez tega programator ne bo deloval s programi "najvišje ravni". Če želite to narediti, vnesite »2« in pritisnite »Enter«, vnesite »a« (angleško) in pritisnite »Enter«.

USB programator je sposoben prepoznati povezavo programabilnega mikrokrmilnika. To se izvede v obliki spremljanja "povleka" signala za ponastavitev na vir napajanja. Ta način se vklopi in izklopi na naslednji način:

  • “0”, “Enter” - način je onemogočen.
  • “1”, “Enter” - način je omogočen.

Sprememba hitrosti programiranja (1MHz):

  • “0”, “Enter” – največja hitrost.
  • “1”, “Enter” – zmanjšana hitrost.

S tem je pripravljalno delo zaključeno, zdaj lahko poskusite utripati nekaj mikrokrmilnika.

(prenosi: 1.203)

Nekega dne sem se odločil sestaviti preprost LC meter za pic16f628a in seveda ga je bilo treba z nečim utripati. Prej sem imel računalnik s fizičnim COM priključkom, zdaj pa imam samo USB in ploščo pci-lpt-2com. Za začetek sem sestavil preprost programator JDM, a kot se je izkazalo, ni hotel delati niti s ploščo pci-lpt-com niti z adapterjem usb-com (nizka napetost RS-232 signalov). Potem sem hitel iskati programatorje usb pic, vendar je bilo tam, kot se je izkazalo, vse omejeno na uporabo dragih pic18f2550/4550, ki jih seveda nisem imel, in škoda je uporabljati tako drage MK, če zelo redkokdaj kaj delam na konicah (raje imam av- Ja, flashati jih ni problem, so veliko cenejši in se mi zdi, da je lažje pisati programe na njih). Po daljšem brskanju po internetu v enem od številnih člankov o programatorju EXTRA-PIC in njegovih različnih različicah je eden od avtorjev zapisal, da extrapic deluje s katerim koli com portom in celo usb-com adapterjem.

Vezje tega programatorja uporablja pretvornik logičnega nivoja max232.

Mislil sem, da če uporabljate adapter usb, bi bilo zelo neumno dvakrat pretvoriti usb v usart TTL, TTL v RS232, RS232 nazaj na nivoje TTL, če lahko preprosto vzamete signale TTL vrat RS232 iz usb- usart pretvorniški čip.

Tako sem tudi naredil. Vzel sem čip CH340G (ki ima vseh 8 signalov com port) in ga priključil namesto max232. In to se je zgodilo.

V mojem vezju je mostiček jp1, ki ga ni v extra peaku, namestil sem ga, ker nisem vedel, kako se bo obnašal TX izhod na nivoju TTL, zato sem omogočil invertiranje na preostali prosti NAND element in, kot se je izkazalo, je bilo prav, da je logični na pin TX, zato je 12 voltov na pin VPP, ko je vklopljen, vendar se med programiranjem ne bo zgodilo nič (čeprav lahko TX obrnete v programski opremi) .

Po sestavi plošče je sledil preizkus. In tu je prišlo glavno razočaranje. Programator je bil prepoznan takoj (s programom ic-prog) in začel delovati, vendar zelo počasi! Načeloma - po pričakovanjih. Nato sem v nastavitvah com port nastavil največjo hitrost (128 kilobaud) in začel testirati vse najdene programe za JDM. Posledično se je PicPgm izkazal za najhitrejšega. Moj pic16f628a je bil v celoti flashan (hex, eeprom in config) in preverjanje za približno 4-6 minut (branje je počasnejše od pisanja). Deluje tudi IcProg, vendar počasneje. Programskih napak ni bilo. Poskušal sem tudi flashati eeprom 24c08, rezultat je enak - vse se šiva, vendar zelo počasi.

Zaključki: programator je precej preprost, ne vsebuje dragih delov (CH340 - 0,3-0,5 $, k1533la3 je na splošno mogoče najti med radijsko smeti), deluje na katerem koli računalniku, prenosnem računalniku (lahko pa celo uporabljate tablice v sistemu Windows 8/10 ). Proti: je zelo počasen. Za signal VPP potrebuje tudi zunanje napajanje. Posledično se mi je zdelo, da je za redko utripanje vrhov to enostavna ponovljiva in poceni možnost za tiste, ki nimajo starodavnega računalnika s potrebnimi vrati pri roki.

Tukaj je fotografija končane naprave:

Kot pravi pesem: "Naredil sem ga iz tega, kar je bilo." Nabor delov je zelo raznolik: tako SMD kot DIP.

Za tiste, ki si upajo ponoviti vezje, bo skoraj vsak primeren kot pretvornik usb-uart (ft232, pl2303, cp2101 itd.), Namesto k1533la3 bo primeren k555, mislim, da celo serija k155 ali tuji analog 74als00, lahko celo deluje z logičnimi elementi NE tipa k1533ln1. Tiskano vezje prilagam sam, lahko pa si vsak tam preriše napeljavo za elemente, ki so bili na voljo.

Seznam radioelementov

Imenovanje Vrsta Denominacija Količina OpombaTrgovinaMoja beležka
IC1 čipCH340G1 V beležnico
IC2 čipK1533LA31 V beležnico
VR1 Linearni regulator

LM7812

1 V beležnico
VR2 Linearni regulator

LM7805

1 V beležnico
VT1 Bipolarni tranzistor

KT502E

1 V beležnico
VT2 Bipolarni tranzistor

KT3102E

1 V beležnico
VD1-VD3 Usmerniška dioda

1N4148

2 V beležnico
C1, C2, C5-C7 Kondenzator100 nF5 V beležnico
C3, C4 Kondenzator22 pF2 V beležnico
HL1-HL4 Svetleča diodaKaj4 V beležnico
R1, R3, R4 upor

1 kOhm

3
22. september 2011 ob 20.11

Miniaturni USB programator za AVR mikrokontrolerje

  • Programiranje mikrokontrolerjev

Tako kot se gledališče začne z obešalnikom, se tudi programiranje mikrokontrolerjev začne z izbiro dobrega programatorja. Ker začenjam osvajati mikrokrmilnike podjetja ATMEL, sem se moral temeljito seznaniti s ponudbo proizvajalcev. Ponujajo veliko zanimivega in okusnega, le po previsokih cenah. Na primer, šal z enim dvajsetkrakim mikrokontrolerjem s parom uporov in diod kot pasom stane kot "letalo". Zato se je pojavilo vprašanje samosestavljanja programerja. Po dolgem preučevanju razvoja izkušenih radijskih amaterjev je bilo odločeno, da sestavi dobro preverjen programator USBASP, katerega možgani so mikrokrmilnik Atmega8 (obstajajo tudi možnosti strojne programske opreme za atmega88 in atmega48). Minimalno ožičenje mikrokontrolerja vam omogoča, da sestavite dokaj miniaturni programator, ki ga lahko vedno vzamete s seboj, kot je bliskovni pogon.

Avtor tega programatorja je Nemec Thomas Fichl, njegova razvojna stran z diagrami, datotekami tiskanih vezij in gonilniki.
Ko je bilo odločeno, da sestavim miniaturni programator, sem prerisal vezje za mikrokrmilnik Atmega8 v paketu TQFP32 (pinout mikrokontrolerja se razlikuje od pinout-a v paketu DIP):

Jumper J1 se uporablja, če je potrebno utripati mikrokrmilnik z urno frekvenco pod 1,5 MHz. Mimogrede, tega skakalca lahko popolnoma odpravite tako, da postavite 25. nogo MK na tla. Potem bo programator vedno deloval z zmanjšano frekvenco. Osebno sem opazil, da programiranje z zmanjšano hitrostjo traja delček sekunde dlje, zato zdaj ne vlečem mostička, ampak nenehno šivam z njim.
Zener diode D1 in D2 se uporabljajo za uskladitev nivojev med programatorjem in vodilom USB; brez njih bo delovalo, vendar ne na vseh računalnikih.
Modra LED označuje, da je vezje pripravljeno za programiranje; rdeča LED sveti med programiranjem. Programski kontakti se nahajajo na konektorju IDC-06, pinout je v skladu s standardom ATMEL za 6-polni ISP konektor:

Ta konektor vsebuje kontakte za napajanje programabilnih naprav; tukaj je vzet neposredno iz vrat USB računalnika, zato morate biti previdni in se izogibati kratkim stikom. Isti konektor se uporablja tudi za programiranje krmilnega mikrokrmilnika, za to pa povežite le pine Reset na konektorju in na mikrokrmilniku (glejte rdečo pikčasto črto na diagramu). V avtorjevem vezju je to storjeno s skakalcem, vendar plošče nisem neredil in jo odstranil. Za eno strojno programsko opremo bo zadostoval preprost žični mostiček. Izkazalo se je, da je plošča dvostranska, dimenzij 45x18 mm.

Priključek za programiranje in mostiček za zmanjšanje hitrosti programatorja se nahajata na koncu naprave, kar je zelo priročno

Firmware krmilnega mikrokrmilnika
Torej, po sestavljanju naprave, ostane najpomembnejše, da utripamo krmilni mikrokrmilnik. Prijatelji, ki še vedno imajo računalnike z vrati LPT, so zelo primerni za te namene :) Najpreprostejši programator s petimi žicami za AVR
Mikrokrmilnik je mogoče preklopiti iz konektorja za programiranje tako, da povežete Reset pine mikrokrmilnika (29 krak) in konektor. Vdelana programska oprema obstaja za modele Atmega48, Atmega8 in Atmega88. Priporočljivo je, da uporabite enega od zadnjih dveh kamnov, saj je bila podpora za različico Atmega48 ukinjena in zadnja različica vdelane programske opreme izvira iz leta 2009. Različice za 8. in 88. kamen se nenehno posodabljajo in zdi se, da avtor namerava funkcionalnosti dodati razhroščevalnik v vezju. Firmware dobimo z nemške strani. Za nalaganje krmilnega programa na mikrokontroler sem uporabil program PonyProg. Pri programiranju je treba nastaviti kristal, da deluje iz zunanjega vira takta na 12 MHz. Posnetek zaslona programa z nastavitvami mostičkov varovalk v PonyProg:

Po utripanju vdelane programske opreme mora zasvetiti LED, ki je priključen na nogo 23 mikrokrmilnika. To bo zanesljiv znak, da je bil programator uspešno programiran in pripravljen za uporabo.

Namestitev gonilnika
Namestitev je bila izvedena na računalniku z operacijskim sistemom Windows 7 in ni bilo težav. Ko se prvič povežete z računalnikom, se prikaže sporočilo, da je bila zaznana nova naprava, in vas pozove, da namestite gonilnik. Izberite namestitev z navedene lokacije:

Takoj se prikaže okno z opozorilom, da nameščeni gonilnik nima digitalnega podpisa za majhne programske:

Ignoriramo opozorilo in nadaljujemo namestitev, po kratkem premoru se prikaže okno, ki nas obvesti, da je bila operacija namestitve gonilnika uspešno zaključena

To je to, programator je zdaj pripravljen za uporabo.

Khazama AVR programer
Za delo s programatorjem sem izbral flasher Khazama AVR Programmer. Čudovit program z minimalističnim vmesnikom.

Deluje z vsemi priljubljenimi AVR mikrokontrolerji, omogoča flashanje flash in eeproma, ogled vsebine pomnilnika, brisanje čipa in tudi spreminjanje konfiguracije varovalk. Na splošno povsem standarden komplet. Nastavitev varovalke se izvede z izbiro vira ure iz spustnega seznama, s čimer se močno zmanjša verjetnost pomotoma zaklepanje kristala. Varovalke lahko menjate tudi tako, da v spodnjem polju postavite potrditvena polja, ne morete pa označiti neobstoječe konfiguracije, kar je tudi velik plus z vidika varnosti.

Varovalke se zapišejo v pomnilnik MK, kot morda uganete, s pritiskom na gumb Write All. Gumb Shrani shrani trenutno konfiguracijo, gumb Naloži pa vrne shranjeno. Res je, nisem mogel najti praktične uporabe teh gumbov. Gumb Privzeto je namenjen snemanju standardne konfiguracije varovalke, tiste, s katero prihajajo mikrokrmilniki iz tovarne (običajno 1 MHz od notranjega RC).
Na splošno se je ves čas, ko uporabljam ta programator, izkazal za najboljšega glede stabilnosti in hitrosti delovanja. Deloval je brez težav tako na starem namiznem računalniku kot na novem prenosniku.

Datoteko PCB lahko prenesete v SprintLayout z uporabo