Dom

Princip rada mjerača frekvencije na avr mikrokontroleru. Domaći mjerač frekvencije na ATTINY2313. Softver mikrokontrolera

Razvoj dizajna potaknula je napomena pročitana na DDS forumu da bi osim serija 193 i 500 trebali postojati i drugi visokofrekventni razdjelnici, kao i dijagram novog sintesajzera za FM2006 koji sam vidio na vrijeme. Nakon eksperimenata, rođen je jednostavan mjerač frekvencije na mikro krugovima LMX 2306, ATtiny 2313 i BC 1602 indikatoru tekućih kristala koji sintetizira znakove sa sljedećim karakteristikama:

  • Raspon mjerenih frekvencija od 300 Hz do 450 MHz
  • Osjetljivost od 50 mV do 200 mV
  • Minimalni korak mjerenja:
  • Raspon 300 Hz do 4,5 MHz 1 Hz
  • Raspon 4,5 MHz do 80 MHz 25 Hz
  • Raspon 80 MHz do 450 MHz 100 Hz
  • Vrijeme mjerenja 0,1 sec / 1 sec
  • Točnost mjerenja nije lošija od 0,007%
  • Napon napajanja 9V…15V
  • Potrošnja struje (bez pozadinskog osvjetljenja indikatora) 20 mA

Opis i konfiguracija sheme (Sl. 1).

Signal s ulaza F dovodi se do stupnja pojačala na tranzistoru VT1, od kojeg se divergira na programabilni visokofrekventni razdjelnik uključen u DD1 čip, kao i na klizni prekidač SA1, koji odabire raspon mjerenja (do 4,5 MHz / iznad 4,5 MHz). Zatim se signal dodatno pojačava i šalje DD2 čipu, koji vrši brojanje frekvencija, šalje podatke na LCD i kontrolira DD1 čip. Krug se napaja stabilizatorom DA1.

Prekidač SA2 odabire vrijeme brojanja i, sukladno tome, točnost mjerenja. Tipka SB1 služi za kalibraciju mjerača frekvencije. Da biste to učinili, primijenite referentnu frekvenciju od 1 MHz na ulaz F i pritisnite SB1 i držite dok LCD zaslon ne prikaže očitanja što je moguće bliže 1 MHz. Nema potrebe za daljnjom kalibracijom.

Također možete koristiti standardnu ​​proceduru postavljanja primjenom bilo koje referentne frekvencije na ulaz F i odabirom C9 i C10 za postizanje željenih LCD očitanja.

Lanac D1, R5, R6, C7, zajedno s kaskadom na tranzistoru VT2, proširuje izlazne impulse iz DD1 čipa. Primjenom najveće moguće frekvencije na ulazu F, ali ne više od 450 MHz, odabirom otpornika R5 postižu se stabilna očitanja LCD-a (ako je osciloskop spojen na 9. krak DD2, trebalo bi biti nešto blizu pravokutnog vala) . Kondenzator C7 u strukturi koju smo sastavili premješten je u kolektor VT2.

Prog konektor se koristi za programiranje unutar kruga ATtiny 2313. Ako je čip flashiran u programatoru, konektor nije zalemljen. Bolje je instalirati mikro krug u utičnicu.

pojedinosti.

Nepromjenjivi otpornici i keramički kondenzatori, veličina 0805 (nadgradna montaža). Zamijenit ćemo tranzistor VT1 KT368 s KT399, VT2 KT368 s nižom visokofrekventnom KT315 (s podešavanjem ploče). DD2 ATtiny 2313-20 čip (sa taktom do 20 MHz) u DIP paketu ugrađen je sa strane tiskanih vodiča. DA1 (također instaliran na strani ispisa) - bilo koji stabilizator od 5 volti sa strujom većom od 1 A, ali ako ne koristite pozadinsko osvjetljenje LCD-a, možete koristiti niskostrujni 78L05. Kvarcni rezonator Q1 – 11,0592 MHz u bilo kojem dizajnu. Prekidači SA1 i SA2 - B1561(DPDT) ili SS21 s duljinom poluge većom od 5 mm. Taktična tipka SB1 – TS-A1PS (TS-A2PS, TS-A3PS, TS-A4PS, TS-A6PS). Indikator BC1602 ili BC1601, BC1604, kao i slični s HD-44780 kontrolerom drugih proizvođača. Svakako provjerite sukladnost zaključaka! Diodu VD2 1N4007 možemo zamijeniti bilo kojom odgovarajućom radnom strujom. Priključak za napajanje - AUB serija 3,5 mm stereo ili sličan s nekim podešavanjem ploče. Za napajanje se koristi bilo koji mrežni adapter male snage s odgovarajućim naponom. Signal se na ploču dovodi preko jednožilne žice promjera približno 0,8 mm i duljine 5-8 cm.

Možete isključiti C4, R4 i prekidač SA1 iz strujnog kruga spajanjem C8 pomoću kratkospojnika na bazu VT2. 6 nogu DD2 trebala bi visjeti u zraku. U ovoj opciji donja granična frekvencija postaje 1,5 MHz.

Tiskana ploča je postavljena u Sprint-Layout i izrađena od jednostrane folije od fiberglasa ( riža. 2).

Frekvencomjer sa dobre karakteristike, što vam omogućuje mjerenje frekvencija od 1 Hz do 10 MHz (9,999,999) s rezolucijom od 1 Hz u cijelom rasponu. Idealno za generatore funkcija, digitalne vage ili kao zaseban uređaj. Jeftin i jednostavan za proizvodnju, sastavljen od dostupnih dijelova, malih je dimenzija i može se montirati na ploču mnogih uređaja.

Krug se sastoji od sedam 7-segmentnih indikatora, AVR ATtiny2313 i nekoliko tranzistora i otpornika. AVR obavlja sav posao i nisu potrebni dodatni čipovi. Mikrokontroler broji broj impulsa koji stignu na njegov ulaz u 1 sekundi i prikazuje taj broj. Najvažnija stvar je vrlo precizan timer, a implementiran je na 16-bitnom Timeru1 u CTC modu. Drugo, 8-bitni brojač radi kao Counter0 i broji impulse na T0 ulazu. Svakih 256 impulsa uzrokuje prekid u kojem program povećava množitelj. Kada primimo prekid od 1 sekunde, sadržaj množitelja se množi s 256 (pomaknut ulijevo za 8 bita). Ostatak impulsa koje je brojač izbrojao upisuje se u registar i dodaje rezultatu množenja. Ta se vrijednost zatim rastavlja na pojedinačne brojeve koji se prikazuju na indikatorima. Nakon toga, prije izlaska iz prekida od 1 sekunde, oba brojača se istovremeno resetiraju i mjerenje počinje iznova. Kada se ne prekida, regulator je uključen u dinamički prikaz.

Razlučivost i točnost:
Točnost ovisi o generatoru takta. Kvarc mora biti dobra kvaliteta i imati što je moguće manje ppm (tolerancije). Bit će bolje ako je frekvencija višekratnik 1024, na primjer, 16 MHz ili 22,1184 MHz. Za mjerenje frekvencija do 10 MHz, morate koristiti kvarc ne manje od 21 MHz, na primjer, 22,1184 MHz. Mjerač frekvencije može mjeriti frekvencije do 47% vlastite frekvencije kristala. Ako imate dobar industrijski mjerač frekvencije, možete kalibrirati krug dodavanjem kondenzatora za podešavanje (1pF-10pF) između jednog od kvarcnih terminala i mase, te prilagoditi frekvenciju u skladu s očitanjima industrijskog mjerača frekvencije.

Izvorna arhiva sadrži nekoliko opcija za različite kvarce, ali možete sastaviti vlastitu verziju.

Valni oblik:
U principu, uređaj razumije bilo koji oblik signala od 0 do 5V, a ne samo pravokutne impulse. Sinusni val i kutni impulsi se broje na stražnjem rubu kada padne ispod 0,8 V.

Uređaj nema zaštitu od ulaznog napona većeg od 5 volti.

Uređaj ima ulaz visoke impedancije i ne opterećuje strujni krug koji se testira - čak možete izmjeriti frekvenciju izmjenične struje u mreži od 220 volti dodirivanjem ulaza prstom. Frekvencijski brojač se može pretvoriti u mjerenje frekvencija do 100 MHz u koracima od 10 Hz dodavanjem djelitelja velike brzine na ulaz.

Prikaz:
Korišteno je sedam sedmosegmentnih indikatora sa zajedničkom anodom u dinamičkom načinu indikacije. Ako je svjetlina nedovoljna, možete smanjiti vrijednosti otpornika koji ograničavaju struju, ali morate zapamtiti da je maksimalna struja impulsa svakog pina mikrokontrolera 40 mA. Zadana vrijednost otpornika je 100 ohma. Beznačajne nule poništavaju se programski. Vrijednosti se ažuriraju svake sekunde.

Isprintana matična ploča:
Dvostran isprintana matična ploča Dimenzija 109mm x 23mm - nažalost, 7 indikatora nije stalo u radni prostor besplatne verzije Eaglea, pa se crtaju ručno. Na ploči morate napraviti 3 veze sa žicom - prva je veza između napajanja i VCC izlaza kontrolera - ova veza je prikazana na sloju sitotiska. Druga dva spajaju decimalne točke indikatora na otpornike od 330 Ohma koji se nalaze na donjem sloju. Na vrhu ploče je Atmel ISP-6 konektor. Kontakt 1 je prvi na kvarcnoj strani. Ovaj konektor nije obavezan i potreban je samo za programiranje kontrolera. Indikatori moraju biti zalemljeni na određenoj udaljenosti od ploče tako da možete lemilom privući pinove zalemljene na gornjoj strani ploče.

Ovaj DIY ATTINY2313 mjerač frekvencije dizajniran je za mjerenje frekvencija u rasponu od oko 4MHz do preko 160MHz. Može se koristiti kao mjerač frekvencije ili kao TRX I/O uređaj, na primjer na pojasu od 144MHz (2m).

Tehničke karakteristike frekvencmetra:

  • mjerenje frekvencije u rasponu 4-160 MHz
  • prikaz mjerenja na LCD displeju
  • osjetljivost 700mV
  • ulazni napon, maks< 30В
  • napajanje: 8-15V
  • vrlo jednostavna ploča, minimalna količina
    elementi, brzo pokretanje
  • dimenzije ploče: 37x80mm

Sklop je savršeno radio u rasponu od 3,8 MHz do 162 MHz. Osnova sklopa je mikrokontroler ATTINY2313. Njegova prednost je mogućnost rada na frekvencijama do 20 MHz. Sklop koristi kvarc od 16 MHz, pa bi sam procesor teoretski trebao ispravno mjeriti frekvencije do 8 MHz.

Često se pokaže da je raspon do 8 MHz premalen. Povećanje gornjeg raspona može se postići korištenjem djelitelja frekvencije (preskaler). Krug koristi predskaler LB3500 koji omogućuje mjerenja do 150 MHz.

Kratke informacije o LB3500:

  • napon napajanja - 4,5 ... 5,5 V
  • trenutna potrošnja - l6mA-24mA
  • ulazni napon - 100mV-600mV
  • izlazni napon - 0,9 Vpp
  • djelitelj - 8

Bez upotrebe dodatnog razdjelnika, sklop može mjeriti frekvencije do 64 MHz. Dodavanje dodatnog razdjelnika u obliku 74LS293 binarnog brojača (ICl) omogućuje povećanje mjernog raspona na 150 MHz (maks. za LB3500).

ICl dijeli frekvenciju s 4. Dakle, cijeli sustav predskalera (ICl i IC4) dijeli ulaznu frekvenciju s 32. Tranzistor Tl s elementima C7, R2, R3 daje visoku ulaznu impedanciju.

Ulazni signal nakon odvajanja ide na ulaz LB3500 čipa. Na izlazu IC4 9 signal je 8 puta niže frekvencije nego na ulazu. Nažalost, izlaz LB3500 nije kompatibilan s TTL razinama. Da bi se uklonio ovaj nedostatak, u krug je dodan tranzistor T2, koji je namijenjen za usklađivanje. PRI potenciometar osigurava precizno usklađivanje.

Izgrađeno. Omogućuje vam mjerenje frekvencija do 10 MHz u četiri raspona s automatskim prebacivanjem. Najmanji raspon ima rezoluciju od 1 Hz.

Specifikacije mjerača frekvencije

  • Pojas 1: 9,999 kHz, rezolucija 1 Hz.
  • Band 2: 99,99 kHz, rezolucija do 10 Hz.
  • Band 3: 999,9 kHz, rezolucija do 100 Hz.
  • Band 4: 9999 kHz, rezolucija do 1 kHz.

Opis mjerača frekvencije na mikrokontroleru

Mikrokontroler Attiny2313 radi s vanjskim kvarcnim oscilatorom s frekvencijom takta od 20 MHz (ovo je najveća dopuštena frekvencija). Točnost mjerenja frekvencijskog metra određena je točnošću danog kvarca. Minimalna duljina poluciklusa izmjerenog signala mora biti veća od perioda kvarcnog oscilatora (to je zbog ograničenja arhitekture mikrokontrolera ATtiny2313). Stoga je 50 posto taktne frekvencije oscilatora 10 MHz (ovo je najveća izmjerena frekvencija).

Instaliranje osigurača (u PonyProg):

U ovom ćemo članku pogledati kako napraviti mali, jeftin i jednostavan brojač frekvencija koji može mjeriti frekvencije do 40 MHz s pogreškom manjom od 1%. Ova je točnost sasvim dovoljna za otklanjanje pogrešaka većine vlastitih analognih i digitalnih uređaja. Uređaj će vam omogućiti analizu mnogih aspekata rada sklopova.

Shematski dijagram mjerač frekvencije prikazan je na slici 1.

Sl. 1. Shematski dijagram uređaja

Mjerač frekvencije sastavljen je na matičnoj ploči, na temelju ATmega16 mikrokontrolera iz Atmela, izvor takta je interni 8 MHz RC oscilator (ovo se mora zapamtiti prilikom programiranja mikrokontrolera). Dodatno, ulazni dio koristi 4-bitni brojač 74HC191 kao djelitelj izmjerene frekvencije za 16 prije nego što ga primijeni na ulaz mikrokontrolera. Kao što vidite, koristi se samo izlaz brojača Q3, frekvencija na ovom izlazu bit će jednaka ulaznoj frekvenciji podijeljenoj sa 16.

Ulaz uređaja (sonda) je točka W1, koja je direktno spojena na port PB0 mikrokontrolera i preko razdjelnika na port PB1.

Za prikaz vrijednosti izmjerene frekvencije koristi se 4-znamenkasti LED indikator sa sedam segmenata sa zajedničkom anodom. Ovo rješenje smanjuje broj žica za povezivanje indikatora. Ako nema prikaza navedenog tipa, moguće ga je koristiti različite vrste sedmosegmentnih indikatora, međutim bit će potrebna prilagodba softvera mikrokontrolera.

Raspored i namjena korištenih indikatorskih pinova prikazani su na slici 2.


sl.2. Položaj i namjena pinova primijenjenog 4-znamenkastog LED indikatora.

Pinovi E1...E4 koriste se za uključivanje odgovarajućih bitova (E1 – za uključivanje desnog nižeg bita).

Svaka I/O linija ATmega16 mikrokontrolera može dati izlaznu struju do 40mA, tako da ne trebamo koristiti tranzistore, a signali upravljanja zaslonom (E1...E4) se spajaju izravno na port mikrokontrolera.

Konektor za unutarnje programiranje mikrokontrolera J1. Nakon sastavljanja i programiranja mikrokontrolera, morat ćete kalibrirati uređaj, podesiti neke varijable (npr. povećati svjetlinu zaslona, ​​smanjiti titranje zaslona). Drugim riječima, morat ćete ažurirati softver mikrokontrolera, pa stoga navedeni konektor mora biti instaliran na ploči.

Algoritam mjerenja frekvencije

Svi znamo da je frekvencija broj ponovljenih impulsa po jedinici vremena. Međutim, mjerenje frekvencije pomoću digitalnih instrumenata kao što je mikrokontroler, koji ima svoja ograničenja, zahtijeva određena istraživanja kako bi se postigli traženi rezultati.

Maksimalna frekvencija koju može obraditi brojač mikrokontrolera ATmega16 ne može premašiti frekvenciju takta podijeljenu s 2,5. Označimo maksimalnu frekvenciju - Fmax. Frekvencija takta za naš mikrokontroler je 8 MHz, stoga možemo izravno mjeriti signale s frekvencijom do 3,2 MHz. Za mjerenje frekvencija iznad ove razine koristimo 4-bitni brojač kao ulazni djelitelj frekvencije. Sada možemo mjeriti frekvencije 16 puta veće Fmax, ali ovdje je ograničenje nametnuto brojačem 74191 i stvarna najveća izmjerena frekvencija ne prelazi 40 MHz.

Algoritam koji je razvijen mjeri izvornu (ulaznu) frekvenciju (označeno F o) i frekvencija dobivena iz djelitelja (označavamo F d). Sve dok je ispunjen uvjet da je frekvencija manja Fmax uvjet je ispunjen:

F o = 16 × F d ;

Ali kako se približavamo F o Do F max, mora se obraditi sve više impulsa i gornji izraz postaje:

F o < 16 × F d ;

Stoga se mjerna granica mikrokontrolera može automatski detektirati.

Mjerač frekvencije počinje mjeriti izvornu frekvenciju (obrada i prikaz vrijednosti na zaslonu), a čim detektira približavanje maksimalnoj frekvenciji F max(koristeći gornju metodu), odabire frekvenciju nakon razdjelnika za mjerenje.

Algoritam je sažet u dijagramu (Sl. 3)

Sl.3 Algoritam za rad frekvencijskog mjerača na mikrokontroleru

Softver mikrokontroler

Izvorni kod programa mikrokontrolera opremljen je detaljnim komentarima, ali neke točke zahtijevaju zasebno pojašnjenje:

  • Kod je dizajniran tako da se izmjerena vrijednost prikazuje na indikatoru u “kHz”. Na primjer, ako na zaslonu vidite vrijednost “325,8”, to znači 325,8 kHz, vrijednost “3983” znači 3983 kHz (ili 3,983 MHz).
  • Timer/Counter 0 mikrokontrolera koristi se za izravno brojanje ulaznih impulsa;
  • Tajmer/brojač 1 mikrokontrolera služi za brojanje ulaznih impulsa nakon djelitelja za 16;
  • Timer/Counter 2 je konfiguriran kao timer s predskalerom od 1024 (frekvencija CPU-a podijeljena s 1024). Koristi se za pozivanje algoritma izračuna frekvencije i odabira svakog T vremenskog razdoblja. U našem projektu T = 1024× 256/F procesor.
  • Konstantni "faktor", definiran na početku programa s vrijednošću "31,78581", mora se kalibrirati mjerenjem referentne frekvencije. Izračunava se izrazom:

faktor = F cpu /(1024× 256)=8.E6/(1024×256)=30.51757

Funkcija Anti-Flickering prilično je složena, ali vrlo učinkovita, posebno pri mjerenju frekvencija koje nisu konstantne. Ova funkcija potpuno eliminira potrebu za brzim prebacivanjem između indikatora različita značenja, nastavljajući prikazivati ​​točnu vrijednost i brzo mijenja očitanje ako se izmjerena frekvencija doista promijenila.

Bilješka

ATmega16 mikrokontroler dolazi s tvorničkim postavkama konfiguriranim za rad s internim RC oscilatorom od 1 MHz. Potrebno je koristiti serijski programator za postavljanje Fuse bitova CKSEL3..0 na vrijednost “0100”, što odgovara uključivanju internog 8 MHz RC oscilatora.

PRIMJENE:

- Izvorni kod programa mikrokontrolera

Prijevod: Vadim



Što još čitati