Schemos ir medžiagos. Programuotojo programinės įrangos atnaujinimas

Kaip teatras prasideda nuo pakabos, taip ir mikrovaldiklių programavimas prasideda nuo gero programuotojo pasirinkimo. Kadangi pradedu įsisavinti įmonės mikrovaldiklius ATMEL, tada teko nuodugniai susipažinti su tuo, ką siūlo gamintojai. Jie siūlo daug įdomių ir skanių dalykų, tik už milžiniškas kainas. Pavyzdžiui, skara su vienu dvidešimties kojelių mikrovaldikliu su pora rezistorių ir diodų kaip diržas kainuoja kaip „lėktuvas“. Todėl iškilo programuotojo savarankiško surinkimo klausimas. Po ilgo patyrusių radijo mėgėjų raidos tyrimo buvo nuspręsta surinkti gerai patikrintą programuotoją USBASP , kurios smegenys yra mikrovaldiklisAtmega8 (taip pat yra atmega88 ir atmega48 programinės įrangos parinktys). Minimalus mikrovaldiklio laidas leidžia surinkti gana miniatiūrinį programuotoją, kurį visada galite pasiimti su savimi, pavyzdžiui, „flash drive“.

Kai buvo nuspręsta surinkti miniatiūrinį programuotoją, perrašiau Atmega8 mikrovaldiklio grandinę korpuse TQFP32(mikrovaldiklio kontaktas skiriasi nuo DIP paketo kontakto):

Jungiklis J1 naudojamas, jei reikia mirksėti mikrovaldikliui, kurio laikrodžio dažnis mažesnis nei 1,5 MHz. Beje, šis džemperis gali būti visiškai pašalintas ant žemės padėjus 25-ąją MK koją. Tada programuotojas visada veiks sumažintu dažniu. Asmeniškai pastebėjau, kad programavimas sumažintu greičiu užtrunka sekundės dalimi ilgiau, todėl dabar megztinį netraukiu, o nuolat juo siuvu.
Zener diodai D1 ir D2 naudojami lygiams tarp programuotojo ir USB magistralės suderinti; jis veiks be jų, bet ne visuose kompiuteriuose.
Mėlynas šviesos diodas rodo, kad grandinė yra paruošta programuoti; raudonas šviesos diodas užsidega programavimo metu. Programavimo kontaktai yra ant IDC-06 jungties, kištukas atitinka ATMEL standartą 6 kontaktų ISP jungtims:


Šioje jungtyje yra kontaktai, skirti maitinti programuojamus įrenginius; čia ji paimama tiesiai iš kompiuterio USB prievado, todėl reikia būti atsargiems ir vengti trumpųjų jungimų. Ta pati jungtis naudojama ir valdymo mikrovaldiklio programavimui, tam tiesiog prijunkite jungties ir mikrovaldiklio Reset kaiščius (žr. raudoną punktyrinę liniją diagramoje). Autoriaus grandinėje tai daroma su džemperiu, bet aš lentos neužgriozdinau ir nuėmiau. Vienai programinei įrangai pakaks paprasto vielinio trumpiklio. Lenta pasirodė dvipusė, išmatavimai 45x18 mm.


Programavimo jungtis ir trumpiklis programuotojo greičiui sumažinti yra įrenginio gale, tai labai patogu


Valdymo mikrovaldiklio programinė įranga

Taigi, surinkus įrenginį belieka mirksėti valdymo mikrovaldikliu. Šiems tikslams puikiai tinka draugai, kurie dar turi kompiuterius su LPT prievadu :)Paprasčiausias penkių laidų programuotojas, skirtas AVR
Mikrovaldiklį galima atjungti iš programavimo jungties sujungus mikrovaldiklio (29 kojelės) Reset kaiščius ir jungtį. Yra Atmega48, Atmega8 ir Atmega88 modelių programinė įranga. Patartina naudoti vieną iš dviejų paskutinių akmenų, nes Atmega48 versijos palaikymas buvo nutrauktas, o naujausia programinės įrangos versija yra 2009 m. O 8-ojo ir 88-ojo akmenų versijos nuolat atnaujinamos, ir atrodo, kad autorius planuoja prie funkcionalumo pridėti in-circuit derintuvą. Programinę įrangą gauname iš vokiško puslapio. Valdymo programai įkelti į mikrovaldiklį naudojau PonyProg programą. Programuojant būtina nustatyti, kad kristalas veiktų iš išorinio laikrodžio šaltinio 12 MHz dažniu. Programos ekrano kopija su saugiklio trumpiklio nustatymais „PonyProg“:


Sumirksėjus programinei įrangai, prie mikrovaldiklio 23 kojelės prijungtas šviesos diodas turėtų užsidegti. Tai bus tikras ženklas, kad programuotojas buvo sėkmingai suprogramuotas ir paruoštas naudoti.

Tvarkyklės diegimas

Diegimas buvo atliktas kompiuteryje su Windows 7 ir jokių problemų nekilo. Kai prisijungiate prie kompiuterio pirmą kartą, pasirodys pranešimas, nurodantis, kad aptiktas naujas įrenginys, raginantis įdiegti tvarkyklę. Pasirinkite diegimą iš nurodytos vietos:


Pasirinkite aplanką, kuriame yra malkos, ir spustelėkite Pirmyn


Iškart pasirodys langas su įspėjimu, kad diegiama tvarkyklė neturi skaitmeninio parašo mažiems minkštiesiems:


Mes ignoruojame įspėjimą ir tęsiame diegimą, po trumpos pauzės pasirodys langas, informuojantis, kad tvarkyklės diegimo operacija sėkmingai baigta


Viskas, programuotojas yra paruoštas naudoti.

Khazama AVR programuotojas

Norėdami dirbti su programuotoju, pasirinkau Khazama AVR Programmer blykstę. Nuostabi programa su minimalistine sąsaja.


Jis veikia su visais populiariais AVR mikrovaldikliais, leidžia įjungti flash ir eeprom, peržiūrėti atminties turinį, ištrinti lustą, taip pat pakeisti saugiklių bitų konfigūraciją. Apskritai, visiškai standartinis komplektas. Saugiklio nustatymas atliekamas išskleidžiamajame sąraše pasirenkant laikrodžio šaltinį, todėl tikimybė, kad kristalas per klaidą užsifiksuos, smarkiai sumažėja. Saugiklius taip pat galima keisti įdėjus žymimuosius langelius apatiniame laukelyje, tačiau ant neegzistuojančios konfigūracijos varnelių dėti negalima, o tai taip pat didelis pliusas saugumo požiūriu.


Saugikliai įrašomi į MK atmintį, kaip galima spėti, paspaudus mygtuką Write All. Mygtukas Išsaugoti išsaugo esamą konfigūraciją, o mygtukas Įkelti grąžina išsaugotą. Tiesa, praktiško šių mygtukų panaudojimo sugalvoti negalėjau. Numatytasis mygtukas skirtas įrašyti standartinę saugiklio konfigūraciją, su kuria mikrovaldikliai gaunami iš gamyklos (paprastai 1 MHz iš vidinio RC).
Apskritai per visą laiką, kol naudoju šį programuotoją, jis pasirodė kaip geriausias stabilumo ir veikimo greičio atžvilgiu. Jis veikė be problemų tiek senoviniame staliniame kompiuteryje, tiek naujame nešiojamajame kompiuteryje.

Parsisiųsti PCB failąSprintLayout galite sekti šią nuorodą

Kokius pirmuosius žingsnius turėtų žengti radijo mėgėjas, nusprendęs surinkti grandinę ant mikrovaldiklio? Natūralu, kad reikalinga valdymo programa - „firmware“, taip pat programuotojas.

Ir jei su pirmuoju tašku problemų nėra - baigtą „firmware“ paprastai įkelia grandinių autoriai, tada su programuotoju viskas yra sudėtingiau.

Paruoštų USB programuotojų kaina yra gana didelė ir geriausias sprendimas būtų jį surinkti patiems. Pateikiame siūlomo įrenginio diagramą (nuotraukas galima spustelėti).

Pagrindinė dalis.

MK montavimo skydelis.

Originali diagrama buvo paimta iš LabKit.ru svetainės su autoriaus leidimu, už ką jam labai ačiū. Tai vadinamasis patentuoto PICkit2 programuotojo klonas. Kadangi įrenginio versija yra „lengva“ patentuoto PICkit2 kopija, autorius pavadino savo plėtrą PICkit-2 Lite, kuris pabrėžia tokio prietaiso surinkimo paprastumą pradedantiesiems radijo mėgėjams.

Ką gali padaryti programuotojas? Naudodami programuotoją galite mirksėti labiausiai prieinamus ir populiariausius PIC serijos MCU (PIC16F84A, PIC16F628A, PIC12F629, PIC12F675, PIC16F877A ir kt.), taip pat 24LC serijos EEPROM atminties lustus. Be to, programuotojas gali dirbti USB-UART keitiklio režimu ir turi kai kurias loginio analizatoriaus funkcijas. Ypač svarbi programuotojo funkcija yra kai kurių MCU (pvz., PIC12F629 ir PIC12F675) integruoto RC generatoriaus kalibravimo konstantos apskaičiavimas.

Būtini pakeitimai.

Schemoje yra keletas pakeitimų, kurie būtini, kad naudojant PICkit-2 Lite programuotoją būtų galima įrašyti/ištrinti/skaityti duomenis iš 24Cxx serijos EEPROM atminties lustų.

Iš schemos pakeitimų. Pridėta jungtis nuo DD1 (RA4) 6 kaiščio iki ZIF skydelio 21 kaiščio. AUX kaištis naudojamas tik darbui su 24LC EEPROM atminties lustais (24C04, 24WC08 ir analogais). Jis perduoda duomenis, todėl programavimo skydelio diagramoje yra pažymėtas žodžiu „Data“. Programuojant mikrovaldiklius dažniausiai nenaudojamas AUX kaištis, nors jo reikia programuojant MK LVP režimu.

Taip pat buvo pridėtas 2 kOhm ištraukiamasis rezistorius, kuris yra sujungtas tarp atminties lustų SDA ir Vcc kaiščių.

Visas šias modifikacijas jau padariau spausdintinėje plokštėje, surinkęs PICkit-2 Lite pagal originalią autoriaus schemą.

24Cxx atminties lustai (24C08 ir kt.) plačiai naudojami buitinėje radijo technikoje, kartais tenka blyksėti, pavyzdžiui, remontuojant kineskopinius televizorius. Nustatymams saugoti jie naudoja 24Cxx atmintį.

LCD televizoriai naudoja kitokio tipo atmintį (flash atmintį). Aš jau kalbėjau apie tai, kaip suaktyvinti LCD televizoriaus atmintį. Jei kam įdomu, pažiūrėkit.

Dėl poreikio dirbti su 24Cxx serijos mikroschemomis teko „baigti“ programuotoją. Aš negraužiau naujos spausdintinės plokštės, tiesiog pridėjau reikiamus elementus ant spausdintinės plokštės. Taip atsitiko.

Įrenginio šerdis yra mikrovaldiklis PIC18F2550-I/SP.

Tai vienintelis įrenginio lustas. MK PIC18F2550 reikia „blyksėti“. Ši paprasta operacija daugeliui sukelia painiavą, nes iškyla vadinamoji „vištienos ir kiaušinio“ problema. Aš jums pasakysiu, kaip aš tai išsprendžiau šiek tiek vėliau.

Programuotojo surinkimo dalių sąrašas. Mobiliojoje versijoje vilkite lentelę į kairę (braukite kairėn-dešinėn), kad pamatytumėte visus jos stulpelius.

vardas Paskyrimas Įvertinimas/parametrai Prekės ženklas arba prekės tipas
Pagrindinei programuotojo daliai
Mikrovaldiklis DD1 8 bitų mikrovaldiklis PIC18F2550-I/SP
Bipoliniai tranzistoriai VT1, VT2, VT3 KT3102
VT4 KT361
Diodas VD1 KD522, 1N4148
Schottky diodas VD2 1N5817
šviesos diodai HL1, HL2 bet kokie 3 voltai, raudona Ir žaliasšvytinčios spalvos
Rezistoriai R1, R2 300 omų
R3 22 kOhm
R4 1 kOhm
R5, R6, R12 10 kOhm
R7, R8, R14 100 omų
R9, R10, R15, R16 4,7 kOhm
R11 2,7 kOhm
R13 100 kOhm
Kondensatoriai C2 0,1 μ K10-17 (keramika), importuoti analogai
C3 0,47 mikrono
Elektrolitiniai kondensatoriai C1 100uF * 6,3V K50-6, importuoti analogai
C4 47 uF * 16 V
Induktorius (droselis) L1 680 µH unifikuotas tipas EC24, CECL arba naminis
Kvarcinis rezonatorius ZQ1 20 MHz
USB lizdas XS1 tipo USB-BF
Megztinis XT1 bet kokio tipo "džemperis"
Mikrovaldiklio montavimo skydeliui (MK)
ZIF skydelis XS1 bet koks 40 kontaktų ZIF skydelis
Rezistoriai R1 2 kOhm MLT, MON (galia nuo 0,125 W ir daugiau), importuoti analogai
R2, R3, R4, R5, R6 10 kOhm

Dabar šiek tiek apie detales ir jų paskirtį.

ŽaliasŠviesos diodas HL1 užsidega, kai įjungiamas maitinimas į programuotoją ir raudona HL2 šviesos diodas šviečia, kai duomenys perduodami tarp kompiuterio ir programuotojo.

Siekiant suteikti įrenginiui universalumo ir patikimumo, naudojamas XS1 tipo „B“ (kvadratinis) USB lizdas. Kompiuteris naudoja A tipo USB lizdą. Todėl neįmanoma sumaišyti jungiamojo laido lizdų. Šis sprendimas taip pat prisideda prie įrenginio patikimumo. Jei kabelis tampa netinkamas naudoti, jį galima lengvai pakeisti nauju, nereikalaujant litavimo ar montavimo darbų.

Kaip 680 µH induktorių L1, geriau naudoti jau paruoštą (pavyzdžiui, EC24 arba CECL tipo). Bet jei nerandate gatavo produkto, galite patys pasidaryti droselį. Norėdami tai padaryti, iš CW68 tipo induktoriaus ant ferito šerdies turite suvynioti 250–300 PEL-0.1 laido apsisukimų. Verta manyti, kad dėl PWM buvimo su grįžtamuoju ryšiu nereikia nerimauti dėl induktyvumo įvertinimo tikslumo.

Įtampa aukštos įtampos programavimui (Vpp) nuo +8,5 iki 14 voltų sukuriama rakto reguliatoriumi. Jį sudaro elementai VT1, VD1, L1, C4, R4, R10, R11. PWM impulsai siunčiami iš PIC18F2550 12 kaiščio į VT1 bazę. Atsiliepimus teikia skirstytuvas R10, R11.

Norint apsaugoti grandinės elementus nuo atvirkštinės įtampos iš programavimo linijų, kai USB programuotojas naudojamas ICSP (In-Circuit Serial Programming) režimu, naudojamas VD2 diodas. VD2 yra Schottky diodas. Jis turėtų būti pasirinktas, kai įtampos kritimas P-N sandūroje yra ne didesnis kaip 0,45 volto. Taip pat VD2 diodas apsaugo elementus nuo atvirkštinės įtampos, kai programuotojas naudojamas USB-UART konvertavimo ir loginio analizatoriaus režimu.

Naudodami programuotoją tik mikrovaldiklių programavimui skydelyje (nenaudojant ICSP), galite visiškai pašalinti VD2 diodą (tai aš padariau) ir vietoj jo įdiegti trumpiklį.

Įrenginio kompaktiškumą užtikrina universali ZIF plokštė (Zero Insertion Force – be nulinių montavimo pastangų).

Jo dėka galite „įjungti“ mikrovaldiklį beveik į bet kurį DIP paketą.

Diagramoje „Mikrovaldiklio (MK) montavimo skydelis“ nurodyta, kaip skydelyje turi būti sumontuoti skirtingų korpusų mikrovaldikliai. Montuojant MK reikėtų atkreipti dėmesį į tai, kad mikrovaldiklis skydelyje būtų taip, kad lusto raktas būtų ZIF skydelio fiksavimo svirties šone.

Taip reikia įdiegti 18 kontaktų mikrovaldiklius (PIC16F84A, PIC16F628A ir kt.).

O štai 8 kontaktų mikrovaldikliai (PIC12F675, PIC12F629 ir kt.).

Jei jums reikia mirkyti mikrovaldiklį paviršinio montavimo pakete (SOIC), galite naudoti adapterį arba tiesiog prilituoti prie mikrovaldiklio 5 kaiščius, kurie paprastai reikalingi programavimui (Vpp, Clock, Data, Vcc, GND).

Baigtą spausdintinės plokštės brėžinį su visais pakeitimais rasite nuorodoje straipsnio pabaigoje. Atidarę failą „Sprint Layout 5.0“ programoje, naudodami režimą „Spausdinti“, galite ne tik atspausdinti sluoksnį su spausdintų laidininkų raštu, bet ir peržiūrėti elementų išdėstymą spausdintinėje plokštėje. Atkreipkite dėmesį į izoliuotą trumpiklį, jungiantį DD1 6 ir ZIF skydelio 21 kaiščius. Reikia atsispausdinti lentos piešinį veidrodiniame vaizde.

Galite pagaminti spausdintinę plokštę naudodami LUT metodą, taip pat spausdintinių plokščių žymeklį naudodami tsaponlak (tai aš padariau) arba „pieštuko“ metodą.

Čia yra elementų išdėstymo spausdintinėje plokštėje paveikslėlis (spustelėti).

Montuojant pirmiausia reikia lituoti džemperius iš alavuotos varinės vielos, tada montuoti žemo profilio elementus (rezistoriai, kondensatoriai, kvarcas, ISCP kaiščio jungtis), tada tranzistorius ir užprogramuotą MK. Paskutinis žingsnis yra ZIF skydelio, USB lizdo montavimas ir laidų sandarinimas izoliacijoje (džemperiai).

PIC18F2550 mikrovaldiklio „programinė įranga“.

Firmware failas - PK2V023200.hex turite įrašyti PIC18F2550I-SP MK į atmintį naudodami bet kurį programuotoją, palaikantį PIC mikrovaldiklius (pavyzdžiui, Extra-PIC). Naudojau JDM Programator JONIC PROG ir programą WinPic800.

Galite įkelti programinę įrangą į PIC18F2550 MCU naudodami tą patį patentuotą programuotoją PICkit2 arba jo naują versiją PICkit3. Natūralu, kad tai galite padaryti su naminiu PICkit-2 Lite, jei vienam iš jūsų draugų pavyko jį surinkti anksčiau nei jūs :).

Taip pat verta žinoti, kad PIC18F2550-I/SP mikrovaldiklio „firmware“ (failas PK2V023200.hex) rašomas diegiant PICkit 2 programuotojo programą aplanke kartu su pačios programos failais. Apytikslė failo PK2V023200.hex vieta - "C:\Programų failai (x86)\Microchip\PICkit 2 v2\PK2V023200.hex" . Tiems, kurių kompiuteryje įdiegta 32 bitų „Windows“ versija, vietos kelias bus kitoks: "C:\Program Files\Microchip\PICkit 2 v2\PK2V023200.hex" .

Na, o jei nepavyko išspręsti „vištienos ir kiaušinio“ problemos naudodamiesi siūlomais metodais, „AliExpress“ svetainėje galite nusipirkti paruoštą PICkit3 programuotoją. Ten kainuoja daug pigiau. Rašiau apie tai, kaip pirkti dalis ir elektroninius rinkinius „AliExpress“.

Programuotojo programinės įrangos atnaujinimas.

Pažanga nestovi vietoje ir kartas nuo karto Microchip išleidžia savo programinės įrangos atnaujinimus, įskaitant PICkit2, PICkit3 programuotoją. Natūralu, kad galime atnaujinti ir mūsų naminio PICkit-2 Lite valdymo programą. Norėdami tai padaryti, jums reikės PICkit2 programuotojo programos. Kas tai yra ir kaip juo naudotis – šiek tiek vėliau. Tuo tarpu keli žodžiai apie tai, ką reikia padaryti norint atnaujinti programinę-aparatinę įrangą.

Norėdami atnaujinti programuotojo programinę įrangą, turite uždaryti trumpiklį XT1 programuotoje, kai jis yra atjungtas nuo kompiuterio. Tada prijunkite programuotoją prie kompiuterio ir paleiskite PICkit2 programuotoją. Kai XT1 uždarytas, režimas įjungiamas įkrovos įkroviklis norėdami atsisiųsti naują programinės įrangos versiją. Tada PICkit2 programuotojo meniu „Įrankiai“ - „Atsisiųsti PICkit 2 operacinę sistemą“ atidarykite anksčiau paruoštą atnaujintos programinės įrangos šešioliktainį failą. Tada prasidės programuotojo programinės įrangos atnaujinimo procesas.

Po atnaujinimo turite atjungti programuotoją nuo kompiuterio ir pašalinti XT1 trumpiklį. Įprastu režimu trumpiklis yra atidarytas. Programuotojo programinės įrangos versiją galite sužinoti per PICkit2 programuotojo programos meniu „Pagalba“ – „Apie“.

Visa tai susiję su techninėmis problemomis. O dabar apie programinę įrangą.

Darbas su programuotoju. PICkit2 programuotojas.

Norėdami dirbti su USB programuotoju, kompiuteryje turėsime įdiegti programą PICkit2 Programmer. Ši speciali programa turi paprastą sąsają, ją lengva įdiegti ir nereikalauja specialios konfigūracijos. Verta paminėti, kad su programuotoju galite dirbti ir naudodami MPLAB IDE kūrimo aplinką, tačiau norint pamirksėti/ištrinti/perskaityti MK užtenka paprastos programos - PICkit2 Programmer. Rekomenduoju.

Įdiegę PICkit2 programuotojo programą, surinktą USB programuotoją prijunkite prie kompiuterio. Tuo pačiu metu jis užsidegs žalias LED („maitinimas“), o operacinė sistema atpažįsta įrenginį kaip „PICkit2 mikrovaldiklio programuotojas“ ir įdiekite tvarkykles.

Paleiskite PICkit2 programuotojo programą. Programos lange turėtų pasirodyti užrašas.

Jei programuotojas neprijungtas, programos lange bus rodomas baisus pranešimas ir trumpos instrukcijos „Ką daryti? angliškai.

Jei programuotojas yra prijungtas prie kompiuterio, kuriame įdiegtas MK, programa jį aptiks paleidus ir praneš apie tai PICkit2 programuotojo lange.

Sveikiname! Pirmas žingsnis žengtas. O apie tai, kaip naudotis PICkit2 programuotojo programa, kalbėjau atskirame straipsnyje. Kitas žingsnis .

Reikalingi failai:

    PICkit2 vartotojo vadovas (rusiškai) imk arba.

Tobulėjant kompiuterinėms technologijoms, kaskart vis mažiau kompiuterių su COM ir LPT prievadais. Tai savo ruožtu sukelia sunkumų, ypač radijo mėgėjams, susijusių su mikrovaldiklių programavimo įrankių suporavimu su asmeniniu kompiuteriu.

Šiame straipsnyje aprašomas AVR mikrovaldiklių USB programuotojas, kurį galite surinkti patys. Jis sukurtas ant Atmega8 mikrovaldiklio ir gali veikti iš kompiuterio USB jungties. Šis programuotojas suderinamas su STK500 v2.

USB programuotojo aprašymas

USB programuotojas pastatytas ant plokštės, pagamintos iš vienpusės folijos stiklo pluošto. Plokštėje yra 2 trumpikliai: vienas yra po SPI jungtimi, antrasis trumpiklis yra šalia tos pačios jungties.

Užsandarinę visas dalis, turite paleisti Atmega8 mikrovaldiklį su programine įranga, pateikta straipsnio pabaigoje. Saugikliai, kuriuos reikia nustatyti programuojant Atmega8 mikrovaldiklį, turėtų atrodyti taip:

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

Reikia prisiminti, kad kai kuriose programose saugiklių nustatymai nustatomi priešinga kryptimi. Pavyzdžiui, programoje CodeVisionAVR reikia pažymėti langelius prie aukščiau minėtų saugiklių, o programoje PonyProg atvirkščiai.

Atmega8 programavimas per kompiuterio LPT prievadą

Greičiausias ir pigiausias būdas programuoti Atmega8 yra naudoti LPT programuotoją AVR. Panaši diagrama parodyta žemiau.

Mikrovaldiklis maitinamas paprastu 78L05 įtampos reguliatoriumi. UniProf programą galite naudoti kaip programavimo apvalkalą.

Kai pirmą kartą įjungiate programą ir kai valdiklis neprijungtas, paspausdami mygtuką „LPTpins“, turite sukonfigūruoti LPT prievado kaiščius taip:

Kai UniProf paleidžiamas, jis automatiškai nustato mikrovaldiklio tipą. Į UniProf atmintį įkeliame Atmega8_USB_prog.hex firmware ir atmetame EEPROM failo prijungimą.

Saugiklius nustatome taip (UniProF programai) paspausdami mygtuką „FUSE“:

Norėdami prisiminti nustatymus, paspauskite visus tris „Rašyti“ mygtukus. Tada spustelėdami „Ištrinti“ pirmiausia išvalome mirksinčio mikrovaldiklio atmintį. Po to spustelėkite „Prog“ ir palaukite, kol bus baigta programinė įranga.

USB programuotojo nustatymas

Po to, kai mūsų mikrovaldiklis užsidega, jis turi būti įdiegtas USB programavimo plokštėje. Toliau programuotoją jungiame prie kompiuterio USB prievado, bet maitinimo dar neduodame.

Prievado nustatymas:

Terminalo sąranka:

ASCII nustatymas:

Dabar, atlikę visas procedūras, tiekiame maitinimą USB programuotojui. HL1 šviesos diodas turi mirksėti 6 kartus ir tada likti šviesti.

Norėdami patikrinti ryšį tarp USB programuotojo ir kompiuterio, HyperTerminal programoje 2 kartus paspauskite klavišą „Enter“. Jei viskas gerai, turėtume pamatyti šį paveikslėlį:

Jei taip nėra, dar kartą patikrinkite diegimą, ypač TxD eilutę.

Toliau įvedame programuotojo versiją 2.10, nes be jos programuotojas neveiks su „aukščiausio lygio“ programomis. Norėdami tai padaryti, įveskite „2“ ir paspauskite „Enter“, įveskite „a“ (anglų kalba) ir paspauskite „Enter“.

USB programuotojas gali atpažinti programuojamo mikrovaldiklio jungtį. Tai atliekama stebint „Reset“ signalo „patraukimą“ į maitinimo šaltinį. Šis režimas įjungiamas ir išjungiamas taip:

  • „0“, „Enter“ - režimas išjungtas.
  • „1“, „Enter“ - režimas įjungtas.

Programavimo greičio keitimas (1MHz):

  • „0“, „Enter“ – maksimalus greitis.
  • „1“, „Enter“ – sumažintas greitis.

Tai baigia paruošiamąjį darbą, dabar galite pabandyti paleisti mikrovaldiklį.

(atsisiuntimai: 1 203)

Vieną dieną nusprendžiau surinkti paprastą LC matuoklį pic16f628a ir natūralu, kad jį reikėjo kažkuo blykstyti. Anksčiau turėjau kompiuterį su fiziniu COM prievadu, bet dabar turiu tik USB ir pci-lpt-2com plokštę. Pirmiausia surinkau paprastą JDM programuotoją, tačiau, kaip paaiškėjo, jis nenorėjo dirbti nei su pci-lpt-com plokšte, nei su usb-com adapteriu (žema RS-232 signalų įtampa). Tada puoliau ieškoti usb pic programuotojų, bet ten, kaip paaiškėjo, viskas apsiribojo brangių pic18f2550/4550 naudojimu, kurių natūraliai neturėjau ir gaila naudoti tokius brangius MK, jei labai retai ką darau piko metu (man labiau patinka av- Taip, blykstyti ne bėda, jie daug pigesni, ir man atrodo, kad ant jų lengviau rašyti programas). Ilgai naršęs internete viename iš daugybės straipsnių apie EXTRA-PIC programuotoją ir įvairius jo variantus, vienas iš autorių rašė, kad extrapic veikia su bet kokiais com prievadais ir net su usb-com adapteriu.

Šio programuotojo grandinėje naudojamas max232 loginio lygio keitiklis.

Pagalvojau, kad jei naudoji usb adapterį, būtų labai kvaila konvertuoti usb į usart TTL, TTL į RS232, RS232 atgal į TTL lygius du kartus, jei gali tiesiog paimti RS232 prievado TTL signalus iš usb- usart konverterio lustas.

Taigi aš padariau. Paėmiau CH340G lustą (kuris turi visus 8 com prievado signalus) ir prijungiau jį vietoj max232. Ir štai kas atsitiko.

Mano grandinėje yra trumpiklis jp1, kuris nėra papildomame pike, jį įdiegiau, nes nežinojau, kaip TX išvestis elgsis TTL lygiu, todėl padariau galimybę jį invertuoti ant likusio laisvo NAND elementas ir, kaip paaiškėjo, jis buvo teisingas, prie TX kaiščio yra loginis, todėl įjungus VPP kaištį yra 12 voltų, bet programuojant nieko neatsitiks (nors programinėje įrangoje galite invertuoti TX) .

Surinkus plokštę, atėjo laikas išbandyti. Ir čia atėjo pagrindinis nusivylimas. Programuotojas buvo nedelsiant identifikuotas (su ic-prog programa) ir pradėjo dirbti, bet labai lėtai! Iš principo – kaip ir tikėtasi. Tada kom porto nustatymuose nustačiau didžiausią greitį (128 kilobaud) ir pradėjau testuoti visas rastas JDM programas. Dėl to „PicPgm“ pasirodė greičiausias. Mano pic16f628a buvo visiškai išjungtas (heksa, eeprom ir konfigūracija) ir patikrinimas maždaug 4–6 minutes (skaitymas yra lėtesnis nei rašymas). IcProg taip pat veikia, bet lėčiau. Programavimo klaidų nebuvo. Bandžiau ir eeprom 24c08 blykstyti, rezultatas tas pats - viskas siuva, bet labai lėtai.

Išvados: programuotojas gana paprastas, jame nėra brangių dalių (CH340 - 0,3-0,5 $, k1533la3 paprastai galima rasti tarp radijo šiukšlių), veikia bet kuriame kompiuteryje, nešiojamajame kompiuteryje (ir net planšetinius kompiuterius galite naudoti Windows 8/10). ). Suvart: labai lėtas. VPP signalui taip pat reikalingas išorinis maitinimas. Dėl to man atrodė, kad nedažnam smailių mirksėjimui tai yra lengvai kartojamas ir nebrangus variantas tiems, kurie po ranka neturi senovinio kompiuterio su reikiamais prievadais.

Čia yra gatavo įrenginio nuotrauka:

Kaip sakoma dainoje: „Aš padariau jį iš to, kas buvo“. Detalių rinkinys labai įvairus: tiek SMD, tiek DIP.

Drįstantiems kartoti grandinę, kaip usb-uart keitiklis tiks beveik bet kuris (ft232, pl2303, cp2101 ir t.t.), vietoj k1533la3 tiks k555, manau kad ir k155 serija ar užsieninis analogas 74als00, jis netgi gali veikti su loginiais NE elementais, kurių tipas yra k1533ln1. Pridedu savo spausdintinę plokštę, bet bet kas gali perbraižyti turimų elementų laidus.

Radioelementų sąrašas

Paskyrimas Tipas Denominacija Kiekis PastabaParduotuvėMano užrašų knygelė
IC1 ChipCH340G1 Į užrašų knygelę
IC2 ChipK1533LA31 Į užrašų knygelę
VR1 Linijinis reguliatorius

LM7812

1 Į užrašų knygelę
VR2 Linijinis reguliatorius

LM7805

1 Į užrašų knygelę
VT1 Bipolinis tranzistorius

KT502E

1 Į užrašų knygelę
VT2 Bipolinis tranzistorius

KT3102E

1 Į užrašų knygelę
VD1-VD3 Lygintuvo diodas

1N4148

2 Į užrašų knygelę
C1, C2, C5-C7 Kondensatorius100 nF5 Į užrašų knygelę
C3, C4 Kondensatorius22 pF2 Į užrašų knygelę
HL1-HL4 Šviesos diodasBet koks4 Į užrašų knygelę
R1, R3, R4 Rezistorius

1 kOhm

3
2011 m. rugsėjo 22 d., 08:11

Miniatiūrinis USB programuotojas AVR mikrovaldikliams

  • Mikrovaldiklio programavimas

Kaip teatras prasideda nuo pakabos, taip ir mikrovaldiklių programavimas prasideda nuo gero programuotojo pasirinkimo. Kadangi pradedu įvaldyti ATMEL mikrovaldiklius, teko nuodugniai susipažinti su tuo, ką siūlo gamintojai. Jie siūlo daug įdomių ir skanių dalykų, tik už milžiniškas kainas. Pavyzdžiui, skara su vienu dvidešimties kojelių mikrovaldikliu su pora rezistorių ir diodų kaip diržas kainuoja kaip „lėktuvas“. Todėl iškilo programuotojo savarankiško surinkimo klausimas. Ilgai tyrinėjus patyrusių radijo mėgėjų raidą, buvo nuspręsta surinkti gerai pasiteisinusį USBASP programuotoją, kurio smegenys yra Atmega8 mikrovaldiklis (taip pat yra atmega88 ir atmega48 programinės įrangos parinkčių). Minimalus mikrovaldiklio laidas leidžia surinkti gana miniatiūrinį programuotoją, kurį visada galite pasiimti su savimi, pavyzdžiui, „flash drive“.

Šio programuotojo autorius yra vokietis Thomas Fichl, jo kūrimo puslapis su diagramomis, spausdintinės plokštės failais ir tvarkyklėmis.
Kai buvo nuspręsta surinkti miniatiūrinį programuotoją, perrašiau Atmega8 mikrovaldiklio grandinę TQFP32 pakete (mikrovaldiklio kontaktas skiriasi nuo DIP paketo kontakto):

Jungiklis J1 naudojamas, jei reikia mirksėti mikrovaldikliui, kurio laikrodžio dažnis mažesnis nei 1,5 MHz. Beje, šis džemperis gali būti visiškai pašalintas ant žemės padėjus 25-ąją MK koją. Tada programuotojas visada veiks sumažintu dažniu. Asmeniškai pastebėjau, kad programavimas sumažintu greičiu užtrunka sekundės dalimi ilgiau, todėl dabar megztinį netraukiu, o nuolat juo siuvu.
Zener diodai D1 ir D2 naudojami lygiams tarp programuotojo ir USB magistralės suderinti; jis veiks be jų, bet ne visuose kompiuteriuose.
Mėlynas šviesos diodas rodo, kad grandinė yra paruošta programuoti; raudonas šviesos diodas užsidega programavimo metu. Programavimo kontaktai yra ant IDC-06 jungties, kištukas atitinka ATMEL standartą 6 kontaktų ISP jungtims:

Šioje jungtyje yra kontaktai, skirti maitinti programuojamus įrenginius; čia ji paimama tiesiai iš kompiuterio USB prievado, todėl reikia būti atsargiems ir vengti trumpųjų jungimų. Ta pati jungtis naudojama ir valdymo mikrovaldiklio programavimui, tam tiesiog prijunkite jungties ir mikrovaldiklio Reset kaiščius (žr. raudoną punktyrinę liniją diagramoje). Autoriaus grandinėje tai daroma su džemperiu, bet aš lentos neužgriozdinau ir nuėmiau. Vienai programinei įrangai pakaks paprasto vielinio trumpiklio. Lenta pasirodė dvipusė, išmatavimai 45x18 mm.

Programavimo jungtis ir trumpiklis programuotojo greičiui sumažinti yra įrenginio gale, tai labai patogu

Valdymo mikrovaldiklio programinė įranga
Taigi, surinkus įrenginį belieka mirksėti valdymo mikrovaldikliu. Šiems tikslams puikiai tinka draugai, kurie dar turi kompiuterius su LPT prievadu :) Paprasčiausias penkių laidų programuotojas AVR
Mikrovaldiklį galima atjungti iš programavimo jungties sujungus mikrovaldiklio (29 kojelės) Reset kaiščius ir jungtį. Yra Atmega48, Atmega8 ir Atmega88 modelių programinė įranga. Patartina naudoti vieną iš dviejų paskutinių akmenų, nes Atmega48 versijos palaikymas buvo nutrauktas, o naujausia programinės įrangos versija yra 2009 m. O 8-ojo ir 88-ojo akmenų versijos nuolat atnaujinamos, ir atrodo, kad autorius planuoja prie funkcionalumo pridėti in-circuit derintuvą. Programinę įrangą gauname iš vokiško puslapio. Valdymo programai įkelti į mikrovaldiklį naudojau PonyProg programą. Programuojant būtina nustatyti, kad kristalas veiktų iš išorinio laikrodžio šaltinio 12 MHz dažniu. Programos ekrano kopija su saugiklio trumpiklio nustatymais „PonyProg“:

Sumirksėjus programinei įrangai, prie mikrovaldiklio 23 kojelės prijungtas šviesos diodas turėtų užsidegti. Tai bus tikras ženklas, kad programuotojas buvo sėkmingai suprogramuotas ir paruoštas naudoti.

Tvarkyklės diegimas
Diegimas buvo atliktas kompiuteryje su Windows 7 ir jokių problemų nekilo. Kai prisijungiate prie kompiuterio pirmą kartą, pasirodys pranešimas, nurodantis, kad aptiktas naujas įrenginys, raginantis įdiegti tvarkyklę. Pasirinkite diegimą iš nurodytos vietos:

Iškart pasirodys langas su įspėjimu, kad diegiama tvarkyklė neturi skaitmeninio parašo mažiems minkštiesiems:

Mes ignoruojame įspėjimą ir tęsiame diegimą, po trumpos pauzės pasirodys langas, informuojantis, kad tvarkyklės diegimo operacija sėkmingai baigta

Viskas, programuotojas yra paruoštas naudoti.

Khazama AVR programuotojas
Norėdami dirbti su programuotoju, pasirinkau Khazama AVR Programmer blykstę. Nuostabi programa su minimalistine sąsaja.

Jis veikia su visais populiariais AVR mikrovaldikliais, leidžia įjungti flash ir eeprom, peržiūrėti atminties turinį, ištrinti lustą, taip pat pakeisti saugiklių bitų konfigūraciją. Apskritai, visiškai standartinis komplektas. Saugiklio nustatymas atliekamas išskleidžiamajame sąraše pasirenkant laikrodžio šaltinį, todėl tikimybė, kad kristalas per klaidą užsifiksuos, smarkiai sumažėja. Saugiklius taip pat galima keisti įdėjus žymimuosius langelius apatiniame laukelyje, tačiau ant neegzistuojančios konfigūracijos varnelių dėti negalima, o tai taip pat didelis pliusas saugumo požiūriu.

Saugikliai įrašomi į MK atmintį, kaip galima spėti, paspaudus mygtuką Write All. Mygtukas Išsaugoti išsaugo esamą konfigūraciją, o mygtukas Įkelti grąžina išsaugotą. Tiesa, praktiško šių mygtukų panaudojimo sugalvoti negalėjau. Numatytasis mygtukas skirtas įrašyti standartinę saugiklio konfigūraciją, su kuria mikrovaldikliai gaunami iš gamyklos (paprastai 1 MHz iš vidinio RC).
Apskritai per visą laiką, kol naudoju šį programuotoją, jis pasirodė kaip geriausias stabilumo ir veikimo greičio atžvilgiu. Jis veikė be problemų tiek senoviniame staliniame kompiuteryje, tiek naujame nešiojamajame kompiuteryje.

PCB failą galite atsisiųsti naudodami „SprintLayout“.