GAZ-53 GAZ-3307 GAZ-66

PIC pertraukia. Impulsų generatorius. PIC16F84A ir AD9850 generatorius – Mikrovaldiklių įrenginiai – Mikrovaldiklių įrenginių grandinės Stačiakampio formos impulsų generatorius ant mikrovaldiklio pav.

Kadaise [L.1] buvo aprašytas valdomas TTL lygio kvadratinių bangų generatorius ATTiny2313 mikrovaldiklyje. Jis galėjo generuoti 31 fiksuotą dažnį (nuo 0,1 Hz iki 4 MHz), turėjo labai paprasta diagrama ir kontroliuojamas pašarais dvejetainis kodasįvestims valdyti. Priklausomai nuo penkių valdymo bitų loginio lygio, generatorius sugeneravo vieną iš savo programoje iš anksto nustatytų dažnių, kurių skaičius buvo nustatytas prijungus šiuos valdymo įėjimus prie žemės arba maitinimo magistralės. Greičiausiai ši grandinė buvo sukurta ne kaip nepriklausomas įrenginys, o kaip a komponentas, modulis, skirtas naudoti kitose srityse (pavyzdžiui, kaip pagrindinis osciliatorius dažnio matuokliuose, laikrodžiuose, eglučių girliandose ir kt.) – taigi, matyt, nelabai patogus valdymo būdas – grandinės autorius turėjo manyti, kad dažnis būtų nustatytas vieną kartą, gatavo įrenginio projektavimo etape, kuris apims jo grandinę.

Mane ši grandinė domino kaip paprastas laboratorinis generatorius. Žinoma, tai nėra alternatyva rimtiems pramoniniams įrenginiams, tačiau kai kur toks „mikrovaldiklio multivibratorius“ gali praversti (ypač atsižvelgiant į jo paprastumą, tikslumą ir mažą kainą) – pavyzdžiui, puikiai tinka dažnio matuokliams kalibruoti ir panašūs atvejai, kai reikia pakoreguoti kokią nors skalę; jį galima naudoti atliekant eksperimentus su skaitmeninės grandinės arba impulsinių maitinimo šaltinių išėjimo pakopos; transformatorių ir uždegimo ritių testavimui (per atitinkamą tranzistorinį jungiklį prijungiant juos prie galingo srovės šaltinio), įvairių filtrų ir kt. Taip, ir saugiau įsitikinti, kad naujai surinktas ULF veikia tinkamai, į jo įvestį siunčiant signalą iš tokio savadarbio generatoriaus, o ne iš mėgstamo MP-3 grotuvo ar „planšetinio kompiuterio“ – atsiradus diegimo klaidoms ( Pavyzdžiui, jei maitinimo įtampa nuteka į ULF įvestį), blogiausiu atveju bus sunaikintas pigus išėjimo tranzistorius, o ne brangus „žaislas“.

Tačiau aprašyta grandinė turėjo nemažai trūkumų, dėl kurių buvo sunku jį naudoti kaip laboratorinį įrenginį: pirma, jau minėtas valdymo nepatogumas (mygtukai tokiu atveju būtų tikslingiau); antra, nėra jokio pasirinkto režimo nuorodos; trečia, tarp išėjimo dažnių nėra tinklo dažnio (50 Hz), kurio kartais reikia dirbant su transformatoriais ar tinklo filtrais; ir ketvirta - nereguliuojamas išėjimo įtampos lygis (kuris kartais reikalingas bandant tą patį ULF). Todėl naudojant [L.1] pateiktą schemą kaip " techninė užduotis“, sukūriau naują įrenginį ir jam skirtą programinę įrangą, atitinkančią aukščiau nurodytus reikalavimus. Gauta diagrama pateikta 1 pav .

Kaip ir originale, tai generatorius, kuris sukuria stabilaus dažnio kvadratines bangas, kurių periodas yra 1:1 (t.y. kvadratinė banga su 50 % užpildymu), tačiau generuojamų dažnių skaičius padidintas iki 42. Reikšmės dauguma generuojamų dažnių skiriasi nuo [L.1]; be to, sumažintas mažesnių nei 1 Hz dažnių, kurių poreikis iškyla gana retai, skaičius. Pateikiamas visų įrenginio generuojamų dažnių sąrašas 1 lentelė (straipsnio pabaigoje).

Grandinės pagrindas – plačiai paplitęs mikrovaldiklis ATTiny2313, kurio taktinis dažnis stabilizuojamas kvarcu ties 10 MHz, kas užtikrina minimalią išėjimo signalo paklaidą. Išvesties impulsai generuojami dalijant MC laikrodžio dažnį naudojant 16 bitų vidinį laikmatį-skaitiklį T1, veikiantį „atstatymo atsitiktinumo atveju“ režimu, jie išvedami aparatine įranga į mikroschemos 15 kaištį. Vidinis 8 bitų laikmatis-skaitiklis T0, taip pat veikiantis „atstatyti atsitiktinumo atveju“ režimu, sudaro HG1 indikatoriaus skaitmenų perjungimo intervalus, taip realizuodamas dinaminę indikaciją. Dinaminės indikacijos išėjimai yra MK linijos PB0 ir PB1, jie yra sustiprinti tranzistorių jungikliai ant VT1 ir VT2.

Sugeneruotas išvesties signalas iš kaiščio 15 MK tiekiamas į srovės stiprintuvą, kuris yra sumontuotas ant VT3 tranzistoriaus, prijungto pagal emiterio sekimo grandinę. Stiprinimo pakopos naudojimas leido atsieti MC išėjimą nuo apkrovos ir apsaugoti nuo netikėtų įvykių (pavyzdžiui, nuo trumpojo jungimo arba nuo įtampos padavimo į įrenginio išvestį). Naudodami kintamąjį rezistorių R12, galite reguliuoti išėjimo signalo lygį - nuo nulio iki beveik maitinimo įtampos. Rezistorius R13 apriboja srovę per tranzistorių iki saugaus lygio (apie 125 mA), apsaugodamas pastarąjį nuo gedimo trumpojo jungimo metu apkrovoje. Rezistorius R14 „traukia“ išėjimą į įžeminimo potencialą - tai visų pirma reikalinga dirbant su skaitmenine logika: žinoma, kad jo įvestyje nėra įtampos (o kai log.0 prie 15 MK kaiščio, tranzistorius VT3 yra uždarytas, o jo emiteryje nėra įtampos) dauguma skaitmeninių mikroschemų interpretuoja tai kaip logiką 1. Rezistorius R14 "traukia" įrenginio išvestį į žemę tais momentais, kai VT3 yra uždarytas, o tai patikimai atpažįsta skaitmeninės mikroschemos, prijungtos prie šios išvesties kaip log.0. Įrenginys turi galimybę išjungti išvesties signalą mygtuku S1. Šioje būsenoje 15 kaištyje nėra impulsų, tranzistorius VT3 uždarytas, o log 0 visada yra įrenginio išvestyje. Dar kartą paspaudus S1 įjungiamas išvesties signalas. LED HL1 yra išėjimo impulsų buvimo indikatorius.

Įrenginys maitinamas iš stabilizuoto maitinimo šaltinio, kurio įtampa yra 3,5-5 V. Jei reikia maitinti įrenginį iš šaltinio, kurio įtampa viršija 5 V (pavyzdžiui, iš Krona arba maitinimo šaltinio iš žaidimų konsolės ), tada į grandinę reikia įkišti stabilizatorių su atitinkama išėjimo įtampa - pavyzdžiui, integruotą, 7805 tipo mikroschemą arba parametrinį, ant zenerio diodo ir tranzistoriaus. Diodas VD1 apsaugo grandinę nuo atsitiktinio maitinimo šaltinio perjungimo - tai gali būti bet kas, kurio srovė ne mažesnė kaip 150 mA (asmeniškai aš naudoju „retą“ D226 arba D7 iš senų atsargų - jūs turite juos kur nors įdėti: )). Nereikia montuoti diodo, jei maitinimo jungties konstrukcija neleidžia pakeisti poliškumo (arba jei esate tikri, kad jungdami maitinimą nesuklysite). Jei norite, taip pat galite pridėti maitinimo jungiklį.

Darbo su įrenginiu algoritmas yra toks: įjungus maitinimą, MK 15 kaištyje nėra impulsų, HL1 šviesos diodas neužsidega, o pasirinkto režimo numeris rodomas HG1 ekrane. . Kad prietaiso išvestyje atsirastų impulsai, turite paspausti mygtuką S1, po kurio užsidegs HL1, pranešdamas apie impulsų atsiradimą MK 15 kaištyje. Dar kartą paspaudus S1, išvesties signalas vėl išjungs (ty S1 veikia kaip trigeris). Įrenginio darbo režimus galite perjungti tiek įjungus, tiek išjungus išvesties signalą mygtuku S1. Mygtukas S2 padidina, o S3 sumažina režimo numerį. Režimai perjungiami ratu – po režimo Nr. 42 (5 MHz) ateina režimas OF (nėra išėjimo signalo); Dar kartą paspaudus S2, įjungiamas režimas Nr. 1 (0,5 Hz). Mygtukas S3 elgiasi panašiai, tik persijungia į priešingą pusę (Nr. 1-OF-Nr. 42). Pasirinkto režimo reikšmė išsaugoma nepastovioje atmintyje (EEPROM), todėl kitą kartą įjungus įrenginį bus aktyvus režimas, kuriuo įrenginys veikė prieš išjungiant maitinimą. Išvesties būsena neprisimena - kiekvieną kartą įjungus maitinimą, išėjimo signalo visada nėra - tai daroma siekiant apsaugoti grandinę, kuri bus prijungta prie generatoriaus, nuo visų rūšių nelaimingų atsitikimų: pirmiausia turite nustatyti reikiamą režimą ir minimalią išėjimo įtampą, ir tik tada mygtuku S1 įjunkite išėjimo signalą.

MK programinė įranga buvo parašyta grynuoju asambliu (naudojant šio lusto gamintojo laisvai platinamą AVR Studio-4 aplinką), kurios dėka ji savo „flash“ atmintyje užima tik 602 baitus. Saugiklių elementų montavimas programoje PonyProg rodomas 2 pav . (Dėmesio! Jei naudojamas nuoseklusis programavimas, nelieskite bitųSPIENIrRSTDISBL - jie turi būti tokie patys kaip ir naujiMK - kitu atveju tolesnis MK perprogramavimas nebus pasiekiamas! Tiesiog apsvarstykite prieš programuodamilydusis saugiklis- „šviežios“ MK ląstelės (Saugumas ir Konfigūracija Bitai -> Skaityti), o rašydami naujas reikšmes palikite bitusSPIENIrRSTDISBLkaip jie buvo skaitomi.)


Įrenginyje naudojami rezistoriai yra mažo dydžio, 0,125 W galios (išskyrus R13 - tai 0,25 W); jų atsparumas gali skirtis nuo nurodyto gana plačiame diapazone. Visi įrenginio tranzistoriai veikia perjungimo režimu, todėl gali būti bet kokios mažos galios NPN struktūros – tiek vidaus, tiek užsienio. Svarbu tik tai, kad VT3 galėtų užtikrintai veikti maksimaliu įrenginio išvesties dažniu (5 MHz). Kaip HG1, galite naudoti bet kurį dvigubą septynių segmentų indikatorių dinaminei indikacijai su įprastais anodais. Jei nėra dvigubo, tada HG1 galima surinkti ant dviejų atskirų indikatorių, iki „senovinio“ ALSxxx - svarbiausia, kad bendras visų segmentų gnybtas yra anodas. LED HL1 - bet koks, dėl kurio neprieštaraujate :). Visi mygtukai yra spyruokliniai, be fiksavimo. Išvesties jungtis yra "Asia" tipo.

Generatoriaus, prijungto prie osciloskopo, išvaizda parodyta 3 pav (kairėje yra maitinimo šaltinis, jis yra 9 V (iš Dendy tipo priedėlio), bet jo korpuse buvo sumontuotas integruotas 7805 tipo stabilizatorius - dėl to išėjimas yra 5 V), taip pat 4 pav , išėjimo signalo oscilograma, paimta naudojant osciloskopą S1-19B – įjungta 5 pav . Nefotografavau įrenginio „vidaus“, nes... Surinkau gana seniai ir uždėjau dangtelį su klijais, bet nesinori ardyti (t.y. laužyti) korpuso... Šiam generatoriui kaip korpusas buvo panaudota jungiamoji dėžutė atvirai elektros instaliacijai, bet galimi ir kiti variantai. Kad būtų lengviau valdyti, patartina atsispausdinti režimų lentelę ir dvipuse juostele priklijuoti prie įrenginio korpuso (turiu galinėje pusėje, nuotraukoje nesimato). Mikrovaldiklis turi būti sumontuotas ant lizdo, kad jį būtų galima lengvai perkelti į programuotoją „firmware“ rašymui (aš paprastai nedarau jungčių IPT programavimui grandinėje - mikroschemos perkėlimas į programuotojo lizdą man asmeniškai nesukelia bet kokius nepatogumus). Diegimo tipas gali būti bet koks (iki SMD); Naudojau klasikinį - spausdintą, bet lentos brėžinio neduodu, nes... pasirodė gana „kreivas“ (praktiškai pakartoja schema); geras variantas- viską surinkti pagal „išdėstymą“ su skylutėmis (dydis ~80x80 mm).

Literatūra:

1. Gorčukas N.V.- Generatorius su skaitmeniniu valdymu, zh "Radioconstructor", 12-2009, 18 p.

1 lentelė:

GENERATORIAUS REŽIMŲ SĄRAŠAS

dažnis Hz

dažnis Hz

dažnis Hz

dažnis Hz

Matavimo generatoriai, kuriuose reikiama dažnio reikšmė nustatoma klaviatūra, yra žinomi žurnalo skaitytojams (žr., pvz., Piskajevo A. straipsnį „Dažnio matuoklis-generatorius-laikrodis“ „Radijo“, 2002, Nr. 7, p. 31, 32). Paprastai šie įrenginiai gaminami ant mikrovaldiklio, generuojamų dažnių diapazonas ribojamas iki kelių megahercų, o tikslios dažnio vertės gauti neįmanoma. Straipsnyje aprašytame generatoriuje taip pat yra mikrovaldiklis, tačiau jis naudojamas tik specializuotai mikroschemai – dažnio sintezatoriui AD9850 – valdyti. Šios mikroschemos naudojimas leido išplėsti generuojamų dažnių diapazoną nuo hercų dalių iki 60 MHz, per kurį galima gauti bet kokią dažnio vertę 1 Hz tikslumu.

Jis apklausia SB1-SB16 klaviatūrą, rodo informaciją HG1 LCD indikatoriuje, apskaičiuoja dažnio kodo reikšmę ir per nuosekliąją sąsają perduoda ją į DD2 sintezatorių. Garso skleidėjas HA1 patvirtina klaviatūros mygtukų paspaudimą. Standartinėje jungtyje naudojamas AD9850 (DD2) lustas. Filtras Z1 yra įjungtas jo DAC išvestyje. Po filtro į lizdą XW2 ir į DD2 mikroschemos komparatoriaus įvestį (16 kontaktas) tiekiamas sinusinis signalas. Iš pastarojo išvesties į lizdą XW1 tiekiamas stačiakampis signalas. G1 kvarcinis generatorius naudojamas kaip DDS laikrodžio generatorius. Žoliapjovės rezistorius R7 reguliuoja vaizdo kontrastą ant HG1 indikatoriaus.
Atstačius mikrovaldiklį HG1 LCD indikatorius sukonfigūruojamas 4 bitų magistralės mainų režimui, kuris reikalingas norint sumažinti informacijos įrašymui reikalingų įvesties/išvesties linijų skaičių.



Generatorius valdomas klaviatūra, kurią sudaro mygtukai SB1-SB16. Kadangi visos prievado B įvesties linijos yra prijungtos prie maitinimo šaltinio per rezistorius, nereikia išorinių rezistorių, kad būtų galima patraukti prievadus RB4 - RB7 į maitinimo liniją. Rezistoriai R3-R6 apsaugo mikrovaldiklio išėjimus nuo perkrovos, kai netyčia vienu metu paspaudžiami keli mygtukai.
Reikiamas dažnis nustatomas iš klaviatūros. Norėdami tai padaryti, paspauskite mygtukus su atitinkamais skaičiais, įveskite norimą reikšmę (hercais) ir paspauskite mygtuką „*“. Jei dažnis neviršija didžiausio leistino, indikatoriuje trumpam pasirodo pranešimas „OK“ ir generatorius persijungia į darbo režimą, o jeiviršija – pranešimas „Klaida“. Tokiu atveju reikia paspausti mygtuką „C“ („Reset“) ir iš naujo įvesti teisingą reikšmę. Jie daro tą patį, jei dažnio įvesties proceso metu įvyksta klaida. Du kartus paspaudus šį mygtuką, įrenginys įjungiamas darbo režimu su anksčiau nustatyta dažnio verte.
Veikimo režimu indikatoriaus dešinėje pusėje mirksi žvaigždutės simbolis. Jei esama dažnio reikšmė įvedama iš išorinio valdymo bloko (pavyzdžiui, iš kompiuterio), tada norėdami grįžti prie indikatoriaus rodomo dažnio, tiesiog paspauskite mygtuką „*“.
Mygtukai "U" (aukštyn - aukštyn) ir "D" (žemyn - žemyn) leidžia laipsniškai keisti generatoriaus išėjimo dažnį, atitinkamai padidinant arba sumažinant dešimtainę skaičių vienu. Reikalingas dešimtainis skaičius pasirenkamas perkeliant žymeklį naudojant „L“ (kairėn – kairėn) ir „R“ (dešinėn – dešinėn) mygtukus.
Paspaudus mygtuką „*“, dažnio reikšmė ir žymeklio padėtis išsaugomi nepastovioje mikrovaldiklio atmintyje, kad kitą kartą įjungus maitinimą būtų automatiškai atkurtas nutrauktas darbo režimas. Kadangi mikrovaldiklio skaičiavimo galimybės yra ribotos, išėjimo dažnis nustatomas maždaug 1 Hz tikslumu, ko pakanka daugeliu atvejų. Norint visiškai išnaudoti sintezatoriaus galimybes, jį galima valdyti kompiuteriu. Norėdami tai padaryti, generatorius turi būti modifikuotas, pridedant bloką, kurio schema parodyta fig. 3. Kompiuteris (ar kitas valdymo įrenginys) prijungtas prie lizdo
XS1. Kai adreso įėjimų A loginis lygis žemas, DD3 lusto multiplekseriai sintezatoriaus valdymo įvestis jungia prie mikrovaldiklio DD1, o kai loginis lygis aukštas – prie išorinio įrenginio. Valdymo signalai tiekiami per XS1 lizdo kontaktą „ĮJUNGTI“. Rezistorius R19 užtikrina žemą loginį lygį DD3 adresų įvestise, kai valdymo įrenginys neprijungtas.
Generatorius surenkamas ir išbandomas ant duonos lentos. Jei negalite įsigyti plokštės SSOP korpusui DD2 lustui, galite naudoti trumpus (10-15 mm ilgio) 0,2 mm skersmens alavuotos vielos gabalus, kad prijungtumėte jo kaiščius prie atitinkamų trinkelių. Kaiščiai 1,2,5,10,19, 24, 26, 27, 28 yra prijungti prie bendro laido vienu ilgesniu segmentu.
LCD indikatorius HG1 - 1TM1601 (16 simbolių vienos eilutės su įmontuotu valdikliu). HA1 - bet koks pjezoelektrinis garso skleidėjas su įmontuotu generatoriumi, skirtas 5 V įtampai. Mikro mazgas gali būti naudojamas kaip laikrodžio generatorius (G1) kristalinis osciliatorius esant dažniams iki 125 MHz, leidžiama naudoti panašų bloką su kvarciniu stabilizavimu ant atskirų elementų.
Mikrovaldiklio valdymo programa priklauso nuo laikrodžio generatoriaus dažnio.
Programuojant mikrovaldiklį, konfigūracijos žodyje nustatomos šios bitų reikšmės: generatoriaus tipas (OSC) - RC. watchdog laikmatis (WDT) – išjungtas, įjungimo delsa (PWRTE) – įjungta.

Šis projektas yra aukštos kokybės ir universalus funkcijų generatorius, kuris, nepaisant tam tikro grandinės sudėtingumo, bent jau lyginant su paprastesniais, turi labai platų funkcionalumą, o tai pateisina jo surinkimo kainą. Jis gali generuoti 9 skirtingas bangų formas ir taip pat veikia su impulsų sinchronizavimu.

MK generatoriaus schema

Įrenginio nustatymai

  • Dažnių diapazonas: 10 Hz - 60 kHz
  • Skaitmeninis dažnio reguliavimas 3 skirtingais žingsniais
  • Bangos formos: sinusas, trikampis, kvadratas, pjūklas, H impulsas, L impulsas, pliūpsnis, šlavimas, triukšmas
  • Išvesties diapazonas: 15V sinusiniam ir trikampiui, 0-5V kitiems režimams
  • Yra impulsų sinchronizavimo išėjimas

Įrenginys maitinamas iš 12 voltų kintamosios srovės, kuri užtikrina pakankamai aukštą (virš 18 V) nuolatinės srovės įtampą, reikalingą normaliam 78L15 ir 79L15 veikimui, kurie sudaro dvipolę 15 V grandinę visas signalų diapazonas apkrovai 1 kOhm.

Naudotas lygio valdiklis ALPS SRBM1L0800. Grandinėje turi būti naudojami rezistoriai, kurių tolerancija yra ±1% arba didesnė. LED srovės ribotuvai - 4306R serijos rezistoriai. Ryškumą galima padidinti priklausomai nuo atlikėjo pageidavimų. Generatorius sumontuotas plastikiniame korpuse 178x154x36 mm su aliuminio priekinėmis ir galinėmis plokštėmis.

Daugelis kontaktinių komponentų yra sumontuoti ant priekinio ir galinio skydelio (mygtukai, rankenėlės, RCA jungtys, LED mazgai, maitinimo jungtis). Spausdintinės plokštės tvirtinamos prie korpuso varžtais su plastikiniais tarpikliais. Visi kiti generatoriaus elementai montuojami ant spausdintinių plokščių – maitinimas yra atskiras. Kairysis mygtukas viduryje skirtas režimui keisti, dešinysis – režimo dažniui pasirinkti.

Generatorius gamina įvairius signalus ir veikia trimis režimais, kurie parenkami mygtuku „Select“ ir rodomi trimis viršutiniais (schemoje) šviesos diodais. Sukamasis valdiklis keičia signalo parametrus pagal šią lentelę:

Iškart nustačius 1 režimą, generuojamas sinusas. Tačiau paleidimo dažnis yra gana žemas ir norint jį padidinti, reikia bent vieno kodavimo mygtuko paspaudimo. Plokštėje yra įrenginio prijungimo programavimui kontaktas, leidžiantis esant reikalui greitai pakeisti signalų generatoriaus funkcionalumą. Yra visi projekto failai - PIC16F870 programinė įranga, plokštės brėžiniai

Radijo mėgėjams ir grandinių inžinieriams kartais reikia sukonfigūruoti kokį nors skaitmeninį įrenginį, pvz., impulsų skaitiklį, tachometrą, osciloskopą ir kt. Arba tiesiog sužinokite, ar tai veikia. Labai patogu naudoti generatorių, kuris gamina įvairaus dažnio stačiakampius impulsus.

Norėčiau pasiūlyti tokio generatoriaus projektą.

Pirmiausia impulsų generatoriaus grandinė:

Prietaisas yra pagrįstas populiariu mikrovaldikliu ATmega8 iš Atmelio.

Schemos aprašymas. Visa grandinė maitinama 5 V įtampa. Mikrovaldiklis veikia 8 MHz dažniu, kurį stabilizuoja X1 kvarcas. Laikmatis/skaitiklis Nr. 1 naudojamas impulsams generuoti. Schemoje mygtukų pavidalu pavaizduotas kodavimo įrenginys, prijungtas prie kaiščių PC3, PC4 ir PC5. Du išoriniai mygtukai pakeičia kodavimo įrenginio perjungimą sukimosi metu, o viduryje esantis mygtukas yra kodavimo mygtukas, kuris užsidaro paspaudus jo ašį. Iš 1 laikmačio (OCR1A) išvesties pašalinami 5 V amplitudės koduotuvu nustatyto dažnio stačiakampiai impulsai. Išvesties dažniui rodyti naudojamas 16 simbolių vienos eilutės LCD ekranas WH1601, prijungtas prie mikrovaldiklio D prievado. Ekranas taip pat yra įprastas, pagrįstas HD44780 tvarkykle. Rezistorius R1 reguliuoja ekrano kontrastą. Duomenų mainai tarp MK ir ekrano organizuojami naudojant 4 laidų magistralę. Jungtis J1 skirta MK programavimui grandinėje.

Dabar apie mikrovaldiklio programą.

Programa parašyta kūrimo aplinkoje CodeVisionAVR. Šioje aplinkoje yra paruoštos bibliotekos darbui su ekranu, o MK nustatymas yra aiškus ir paprastas. Naudojau versiją prieš išleidimą CodeVisionAVR versija 3.12. Tai šiek tiek skiriasi generuojant kodą naudojant Wizarda. Bet iš esmės viskas tas pats. Žemiau viskas aprašyta naudojant darbo pavyzdį CodeVisionAVR versija 3.12. Internete pilna nuorodų, skirtų šiai aplinkai tyrinėti, pavyzdžiui: išmokti integruotos plėtros aplinkos CodeVisionAVR.

Paleiskite CVAVR. Mes kuriame naujas projektas (Naujas projektas). Programa paragins jus naudoti projekto kūrimo vedlį.

Mes sutinkame. Tada pasirinkite valdiklių šeimą.

I/O prievadų konfigūravimas. Išvestį reikia padaryti prievado B (PB1) 1 bitą – iš jo paimamas generuojamas dažnis. D uostą paliekame tokį, koks yra kol kas. Ir nustatykite kaiščius, iš kurių bus skaitoma kodavimo būsena (PC3, PC4, PC5), į įvestį ( Duomenų kryptis: Į) ir įjunkite vidinį maitinimo šaltinį ( Ištraukimo / išvesties vertė- prasmė P).

Eikite į skirtuką Laikmačiai / skaitikliai. Čia reikia sukonfigūruoti 2 laikmačius: Laikmatis0 Ir Laikmatis1, palikite likusius laikmačius išjungtus ( Laikrodžio reikšmė: sustabdyta).

Dažnio nustatymas Laikmatis0 125 kHz. Šis laikmatis reikalingas norint periodiškai apklausti kodavimo įrenginio būseną. Apklausa vyks kiekvieną kartą, kai laikmatis pasieks viršutinę reikšmę. Nes Laikmatis0 8 bitų, tada jo viršutinė reikšmė yra 255. O tam, kad valdiklis nutrauktų pagrindinės programos vykdymą, kad apklaustų kodavimo įrenginį, reikia įjungti perpildymo pertraukimą Laikmatis0 (Perpildymo pertraukimas).

Nustatymas Laikmatis1. Turite pasirinkti režimą ( Režimas) CTC (Išvalyti laikmatį palyginus– Iš naujo nustatyti, jei yra atitikmuo). Šiuo režimu laikmačio išvestis persijungs į žurnalą. 0 iš karto, kai tik skaičiavimo registro turinys TCNT1 atitinka atvejį OCR1A. Keičiant reikšmę registre OCR1A pakeisime išėjimo impulsų dažnį. Grandinė naudoja 1 laikmačio išvestį A. Turite pasirinkti jo reikšmę Įjunkite Palyginti atitiktį(jei yra atitikmuo, perjunkite į kitą būseną). Apskritai pažiūrėkite į paveikslėlį:

Kitas žingsnis yra ekrano prijungimas. IN CodeVisionAVR Pakanka nurodyti, prie kurio MK prievado bus prijungtas ekranas. Pasirinkite prievadą D.

Dabar reikia sugeneruoti programos kodą. Spustelėkite Programa -> Generuoti, išsaugoti ir išeiti

Dabar reikia eiti į nustatymus Projektas -> Konfigūruoti ir patikrinkite, ar tinkamai nustatyti MK tipas ir jo laikrodžio dažnis:

Paruoštas CVAVR projektas

(316,0 KB, 670 paspaudimų)

Norėdami atnaujinti MK programinę įrangą, jums reikia failo su plėtiniu .hex. Baigtame projekte tai yra failas Gen_mega8.hex. Jis yra aplanke Išleisk/Exe/.

Jei norite parašyti programą nuo nulio, tada projekte yra komentarų, kokių komandų kam reikia. Arba galite tiesiog įklijuoti gatavą kodą iš failo gen_mega8.c. Ir jį pakeisdami pažiūrėkite, kaip tai atsispindi gatavame įrenginyje. Norėdami sugeneruoti MK programinės įrangos failą, turite paspausti mygtuką Sukurkite projektą. Failas su plėtiniu .hex bus sugeneruotas į aplanką Išleisk/Exe/.
Valdiklio saugiklių antgaliai užprogramuoti veikti su išoriniu 8 MHz kvarciniu rezonatoriumi pagal paveikslą:

Dabar apie impulsų generatoriaus valdymą.

Įjungus maitinimą, ekranas ir koduotuvas inicijuojami (konfigūruojami kontaktai, prie kurių prijungtas kodavimo įrenginys). Tada per ekraną eina juosta (pasirenkama „gudrybė“, ji buvo sukurta treniruoti ekrano išvestį) ir rodomas užrašas „Generatorius išjungtas“. Po 2 sekundžių ekranas išsivalo. Išvesties dažnis pasirodo pasukus kodavimo rankenėlę ir pasikeičia hercų vienetais. Kai paspausite ir palaikysite kodavimo mygtuką maždaug 0,5 sekundės, ekrane rodomas pranešimas „Atleiskite mygtuką“. Po to, sukant kodavimo rankenėlę, dažnis pasikeičia dešimtimis hercų. Norint pakeisti dažnį šimtais (tūkstančiais) hercų, reikia dar kartą (2 kartus) paspausti kodavimo mygtuką. Tada viskas vėl prasideda hercų vienetais.

Norint padidinti generatoriaus apkrovą, MK išėjimą galima įjungti per tranzistorių.

Apie išėjimo dažnio tikslumą.

Išėjimo dažnio vertės buvo patikrintos osciloskopu. Esant žemiems dažniams, maždaug iki 200 Hz, reikšmės sutampa su osciloskopu išmatuotomis vertėmis, tada kuo didesnis dažnis, tuo didesnė paklaida (tai atsiranda dėl ne sveikųjų skaičių, įrašytų į palyginimo registrą). Tikslumą galima padidinti, jei į palyginimo registrą įvedate konstantas iš masyvo (man nereikėjo didelių dažnių, o aš tiesiog tingiu skaičiuoti ir įvesti skaičius į masyvą)). Esant aukštiems dažniams, norint padidinti tikslumą, reikia pasirinkti kitą laikmačio dažnį.

Neseniai įsigijau labai patogų ir kompaktišką multimetrą, kuriuo galima matuoti dažnį (iki 9,999 MHz). Štai jis vaizdo peržiūra . Ir galite užsisakyti iki šią nuorodą .

Mikrovaldiklis gali būti blykstinamas specialiu programuotoju arba galite patys pasidaryti paprastą programuotoją. Pavyzdžiui, aš sėkmingai naudojuosi programuotoju USBasp. Apie šį programuotoją galite perskaityti adresu

Šis projektas yra pagrįstas diagrama funkcijų generatorius aprašyta Mondo svetainėje. Aš padariau tik labai nedidelius pakeitimus ir ištaisiau keletą akivaizdžių rašybos klaidų diagramoje. Kodas buvo perrašytas Microchip sintaksei.

Generatoriaus charakteristikos:
Dažnių diapazonas: 11 Hz - 60 kHz
Skaitmeninis dažnio reguliavimas 3 skirtingais žingsniais
Bangos forma: sinusas, trikampis, kvadratas, pulsas, sprogimas, šlavimas, triukšmas
Išėjimo įtampos diapazonas: ±15V sinusui ir trikampiui, 0-5V kitiems
Sinchronizavimas: išvestis impulsiniam signalui.

Įrenginys maitinamas 12 voltų transformatoriumi, kuris užtikrina gana aukštą (daugiau nei 18 V) įtampą. pastovus slėgis, būtinas normaliam stabilizatorių 78L15 ir 79L15 veikimui. Norint užtikrinti, kad LF353 išvesties stiprintuvas teiktų visą signalų diapazoną esant 1 kOhm apkrovai, būtinas ±15 V maitinimo šaltinis. Naudojant ±12 V galią, šis rezistorius turi būti ne mažesnis kaip 3 kOhm.

Sukimosi jutiklis (sukamasis kodavimo įrenginys), kurį naudojau, buvo ALPS SRBM1L0800 dviejų jungiklių pavidalu diagramoje. Autorius tikriausiai naudojo kitokį, todėl prireikė kai kurių valdiklio programos kodo pakeitimų. Mano jutiklis turi dvi kontaktų grupes: OFF ir ON (kai rotorius juda atitinkama kryptimi). Taigi, PORTB pertraukimo pakeitimas turi būti sugeneruotas, jei viena iš kaiščių porų yra trumpoji. Tai pasiekiama prijungus abi kontaktų grupes prie PIC16 kaiščių (RB4 - RB7), kuriuos programa tikrina, ar nepasikeitė būsena. Laimei, RB4 nebuvo naudojamas originaliame dizaine, todėl aš tiesiog nukreipiau RB3 į RB4. Kitas modifikavimas atsirado dėl rotacinio kodavimo įrenginio naudojimo, todėl šiek tiek pakeičiau programinės įrangos pertraukimus. Aš priverčiau reguliatorių išlaikyti savo būseną 100 matavimų iš eilės, o ne 10 pradinio dizaino. Atminkite, kad kai kurie PIC kaiščiai naudojami peradresuoti +5 V, kad būtų supaprastintas PCB išdėstymas, todėl jie sukonfigūruoti kaip prievado įėjimai.

Spausdintinėje plokštėje yra trys rezistorių rinkiniai. Vienas – R/2R – skirtas DAC iš Bourns 4310R serijos. DAC rezistorių mazgas taip pat gali būti pastatytas naudojant atskirus rezistorius pagal aukščiau pateiktą schemą. Turi būti naudojami rezistoriai, kurių tolerancija yra ±1 % arba didesnė. LED ribojantys rezistoriai Bourns 4306R serija. Šviesos diodų ryškumą galima padidinti pakeitus ribojančių rezistorių varžą iki 220 - 330 omų.

Generatorius patalpintas 179x154x36 mm plastikiniame korpuse su aliuminio priekinėmis ir galinėmis plokštėmis. Išėjimo signalo lygį reguliuoja kintamasis Alfa 1902F serijos rezistorius. Visi kiti komponentai montuojami ant priekinio ir galinio skydelio (mygtukai, jungtys, LED mazgai, maitinimo jungtis). Lentos prie korpuso tvirtinamos 6mm varžtais su plastikiniais tarpikliais.

Generatorius gamina 9 skirtingas bangų formas ir veikia trimis režimais, kurie parenkami mygtuku „Select“ ir jų indikacija rodoma ant trijų viršutinių (pagal schemą) šviesos diodų. Sukimosi jutiklis reguliuoja signalo parametrus pagal šią lentelę:


Režimas\Forma

Trikampis

Režimas 1

Režimas 2

Režimas 3

Iš karto po įjungimo generatorius pereina į 1 režimą ir generuoja sinusinę bangą. Tačiau paleidimo dažnis gana žemas ir jį padidinti užteks bent vieno valdiklio paspaudimo.

P.S. Pridursiu savo vardu: kartojant įrenginį su autoriaus spausdinimo plokšte, įrenginys atsisakė paleisti (galbūt spausdintinės plokštės klaida), o sumontavus ant duonos plokštės generatorius iškart pradėjo veikti .

Žemiau galite atsisiųsti asm šaltinius, programinę-aparatinę įrangą ir PCB failus ()

Radioelementų sąrašas

Paskyrimas Tipas Denominacija Kiekis PastabaParduotuvėMano užrašų knygelė
Generatoriaus grandinė.
MikrovaldiklisPIC16F8701 Į užrašų knygelę
Pamainų registras

CD74HC164

1 Į užrašų knygelę
Operacinis stiprintuvas

LF353

1 Į užrašų knygelę
Multiplekseris/demultiplekseris

CD4053B

1 Į užrašų knygelę
Linijinis reguliatorius

LM7805

1 Į užrašų knygelę
Linijinis reguliatorius

LM78L15

1 Į užrašų knygelę
Linijinis reguliatorius

LM79L15

1 Į užrašų knygelę
Lygintuvo diodas

1N4002

3 Į užrašų knygelę
Kondensatorius22 pF2 Į užrašų knygelę
Kondensatorius51 pF1 Į užrašų knygelę
Kondensatorius100 pF1 Į užrašų knygelę
Kondensatorius1000 pF1 Į užrašų knygelę
Kondensatorius0,1 µF1 Į užrašų knygelę
1 µF2 Į užrašų knygelę
Elektrolitinis kondensatorius4,7 µF1 Į užrašų knygelę
Elektrolitinis kondensatorius100 µF2 Į užrašų knygelę
Elektrolitinis kondensatorius500 µF1 Į užrašų knygelę
Rezistorius

470 omų

6 Į užrašų knygelę
Kintamasis rezistorius1 kOhm1 Į užrašų knygelę
Rezistorius

2,7 kOhm

1 Į užrašų knygelę
Rezistorius

4,7 kOhm

1 Į užrašų knygelę
Rezistorius

10 kOhm

4 Į užrašų knygelę
Rezistorius

15 kOhm

1 Į užrašų knygelę
Rezistorius

22 kOhm

1