Un simplu contor de frecvență pe attiny2313 cu afișaj dinamic. Frecvențămetru de casă pe ATTINY2313. Specificații frecvențămetru

Frecvențametrul propus este asamblat pe un microcontroler PIC16F873 și indicatori LED cu șapte elemente cu un catod comun. Puterea sa de răspândire este de 0,1 Hz, ceea ce poate fi util pentru a efectua măsurători precise.

Principalele caracteristici tehnice:

  • Gama de frecvențe măsurate…………… 0,1 Hz….40 MHz
  • Timp de măsurare a frecvenței………….…….1s sau 10s
  • Sensibilitate……………………………………… 0.1v
  • Tensiune de alimentare……………………………….…... 4,5-5V
  • Consumul de curent în modul standby……10mA
  • în modul de măsurare…………30mA

Circuitul frecvențeimetrului este prezentat în figura de mai sus (click pe imagine pentru mărire).La intrarea dispozitivului există un comparator DA1, care este conectat conform unui circuit standard cu o intrare inversoare. Pragul de răspuns al comparatorului poate fi modificat prin selectarea rezistenței R4 - cu cât rezistența acestuia este mai mare, cu atât pragul este mai mare. Funcționarea comparatorului este controlată de semnalul de la intrarea LATCH (pin 5) a lui DA1, care vine de la linia portului RA3 (pin 5 a DD1) și este activată la un nivel logic scăzut la această intrare.

Portul din microcontrolerul DD1 este folosit pentru a furniza tensiune elementelor a-h ale indicatorilor HG1. HG2.

Semnalul de intrare este convertit de către comparatorul DA1 în impulsuri dreptunghiulare cu niveluri TLL, care sunt alimentate la intrarea microcontrolerului pentru numărare ulterioară. Registrele prescaler de opt biți, registrele temporizatorului TMRO și două contoare de întrerupere de depășire TMR0 contorizează aceste impulsuri. Intervalul de măsurare este stabilit de temporizatorul TMR1.

Informațiile din registrele temporizatorului și contorului TMR0 sunt disponibile pentru citire, dar conținutul registrului prescaler de înaltă frecvență (până la 90 MHz) nu este disponibil. Prin urmare, pentru a extrage informațiile stocate în acesta, se folosește metoda acum clasică de numărare a impulsurilor înainte ca prescaler-ul să depășească. După oprirea numărării, valorile TMR0 sunt stocate în comparatorul digital. Numărul de impulsuri aplicate la intrarea prescalerului este numărat, iar după fiecare impuls este comparat cu valorile curente și salvate ale TMR0. Când valoarea curentă a TMR0 se modifică, furnizarea de impulsuri către prescaler se oprește. Numărul acumulat în registrul scăzut este convertit într-un cod suplimentar și va fi numărul care a fost în prescaler.Codul binar de la ieșirile a patru registre de opt biți este convertit în binar-zecimal și apoi în codul pentru controlul indicatorilor cu șapte elemente.

După alimentarea tensiunii de alimentare, registrele microcontrolerului sunt inițializate. Frecvența de comutare a cifrelor în timpul afișajului dinamic ar trebui să fie astfel încât pâlpâirea indicatorului să nu fie vizibilă. După cum știți, această frecvență nu ar trebui să fie mai mică de 25 Hz. Durata selectată de indicare a unei cifre pe indicatorul de compilare cu opt cifre este F=1/T=1?(0,003*8) =41,7Hz, unde F este frecvența de actualizare a indicatorului, T este perioada. La această frecvență, pâlpâirea indicatorului nu este vizibilă.

Periodic, microcontrolerul verifică starea contactelor butonului SB1. Dacă butonul este apăsat, starea indicatorului de timp de măsurare se schimbă în opus, iar poziția punctului zecimal de pe indicator se schimbă și ea. Apoi informațiile cifrelor rămase sunt afișate secvențial pe indicator. Secvența de afișare este întreruptă numai de întreruperi.

Programul folosește două întreruperi: una bazată pe rezultatul comparării valorilor registrelor de evenimente speciale de șaisprezece biți (CCPR1H și CCPR1L) și ale registrelor temporizatorului TMR1 (TMR1H și TMR1L), cealaltă bazată pe depășirea TMR0. temporizator. Registrele CCP1 și TMR1 sunt utilizate pentru a forma intervalul de timp de măsurare a frecvenței. Împărțitorul cu 10 pentru a obține un interval de 10s este implementat în registre separate care sunt umplute cu întreruperi.

După salvarea valorilor registrului de context, steagurile de întrerupere sunt verificate. Dacă întreruperea are loc din cauza depășirii temporizatorului TMR0, contorul este incrementat și programul iese din întrerupere. Când este întrerupt de rezultatul comparației modulului CCP1, registrul divizor cu 10 este umplut și indicatorul de timp este verificat. Dacă timpul de măsurare este setat la 10s, registrul divizor cu 10 este umplut. După sfârșitul timpului de măsurare, conținutul prescaler este calculat și determinat.Datele primite sunt recodificate în nouă biți de cod binar-zecimal. Pentru a economisi energie pe bateriile dispozitivului portabil, toate zerourile nesemnificative sunt stinse. La efectuarea operațiunilor în timpul întreruperilor, funcționarea temporizatoarelor TMR0 și TMR1 nu se oprește, deci ciclul de măsurare se repetă continuu!



Fotografie a dispozitivului asamblat și a plăcii de circuit imprimat de la Alexander Paley, precum și o eroare remediată în program de către Alexander. Firmware-ul și codul sursă pot fi descărcate de pe link, iar palta tipărită poate fi descărcată de pe.


Această diagramă este, de asemenea, adesea vizualizată:

Construit. Vă permite să măsurați frecvențe de până la 10 MHz în patru intervale de comutare automată. Cel mai mic interval are o rezoluție de 1 Hz.

Specificații frecvențămetru

  • Banda 1: 9,999 kHz, rezoluție 1 Hz.
  • Banda 2: 99,99 kHz, rezoluție de până la 10 Hz.
  • Banda 3: 999,9 kHz, rezoluție de până la 100 Hz.
  • Banda 4: 9999 kHz, rezoluție de până la 1 kHz.

Descrierea frecvențeimetrului de pe microcontroler

Microcontrolerul Attiny2313 funcționează de la un oscilator extern de cuarț cu o frecvență de ceas de 20 MHz (aceasta este frecvența maximă admisă). Precizia de măsurare a frecvențeimetrului este determinată de precizia cuarțului dat. Lungimea minimă de jumătate de ciclu a semnalului măsurat trebuie să fie mai mare decât perioada oscilatorului de cuarț (acest lucru se datorează limitărilor arhitecturii microcontrolerului ATtiny2313). Prin urmare, 50% din frecvența ceasului oscilatorului este de 10 MHz (aceasta este frecvența maximă măsurată).

Instalarea siguranțelor (în PonyProg):

Acest contor de frecvență DIY ATTINY2313 este proiectat pentru a măsura frecvențe cuprinse între aproximativ 4MHz și peste 160MHz. Poate fi folosit ca frecvențămetru sau ca dispozitiv TRX I/O, de exemplu pe banda de 144MHz (2m).

Caracteristicile tehnice ale contorului de frecvență:

  • măsurarea frecvenței în intervalul 4-160 MHz
  • afișarea măsurătorilor pe afișajul LCD
  • sensibilitate 700mV
  • tensiune de intrare, max< 30В
  • alimentare: 8-15V
  • tabla foarte simpla, cantitate minima
    elemente, lansare rapidă
  • dimensiuni placa: 37x80mm

Circuitul a funcționat perfect în intervalul de la 3,8 MHz la 162 MHz. Baza circuitului este microcontrolerul ATTINY2313. Avantajul său este capacitatea de a opera la frecvențe de până la 20 MHz. Circuitul folosește cuarț de 16 MHz, așa că procesorul însuși ar trebui teoretic să măsoare corect frecvențele de până la 8 MHz.

Se dovedește adesea că intervalul de până la 8 MHz este prea mic. O creștere a intervalului superior poate fi obținută prin utilizarea unui divizor de frecvență (prescaler). Circuitul folosește prescaler LB3500, care permite măsurători de până la 150 MHz.

Informații scurte despre LB3500:

  • tensiune de alimentare - 4,5...5,5V
  • consum de curent - l6mA-24mA
  • tensiune de intrare - 100mV-600mV
  • tensiune de ieșire - 0,9 Vpp
  • divizor - 8

Fără utilizarea unui divizor suplimentar, circuitul este capabil să măsoare frecvențe de până la 64 MHz. Adăugarea unui divizor suplimentar sub forma contorului binar 74LS293 (ICl) vă permite să măriți domeniul de măsurare la 150 MHz (max. pentru LB3500).

ICl împarte frecvența la 4. Astfel, întregul sistem prescaler (ICl și IC4) împarte frecvența de intrare la 32. Tranzistorul Tl cu elementele C7, R2, R3 asigură impedanță de intrare mare.

Semnalul de intrare după separare merge la intrarea cipului LB3500. La ieșirea lui IC4 9, semnalul este de 8 ori mai mic ca frecvență decât la intrare. Din păcate, ieșirea lui LB3500 nu este compatibilă cu nivelurile TTL. Pentru a elimina acest dezavantaj, la circuit a fost adăugat tranzistorul T2, care este destinat potrivirii. Potențiometrul PRI asigură o potrivire precisă.

Un dispozitiv foarte util și simplu, care este pur și simplu de neînlocuit în laboratorul de creație al unui radioamator, poate fi realizat pe PIC16F628A MK. Acest contor de frecvență digital de pe cipul de control comun PIC16F628A este proiectat pentru a măsura frecvențe de până la 30 MHz. Schema sa de circuit constă dintr-un modul de bază cu un driver de intrare conectat la intrarea sa de numărare. Diagrama frecvențeimetrului este prezentată în figura de mai jos:

Acest dispozitiv de măsurare poate fi utilizat în două moduri - scară digitală și frecvențămetru. Când alimentarea este pornită, frecvențametrul intră în modul în care funcționa înainte de ultima oprire. Dacă a fost un mod de frecvență, modul de frecvență „F.” va fi afișat în cifra din stânga indicatorului. De asemenea, „0” va fi afișat în cifra de ordin inferioară a indicatorului. Frecvențametrul va comuta automat în modul de măsurare a frecvenței și va fi în modul de așteptare. Când se aplică un semnal la intrare, semnul modului frecvenței este „F”. se stinge și indicatorul afișează valoarea frecvenței măsurate în kiloherți.
Diagrama driverului de intrare al contorului de frecvență - scară digitală este prezentată în figură:


Dacă în momentul pornirii curentului, există un semnal măsurat la intrarea contorului de frecvență, atunci, după pornirea alimentării, semnul de funcționare a contorului de frecvență „F.” se va aprinde timp de 1 secundă și apoi se va stinge. .
Pentru a trece la un timp de măsurare de 0,1 sec. sau 10 sec., trebuie să apăsați fie butonul nr. 1, fie apăsați simultan butonul nr. 1 și respectiv butonul nr. 2 (vezi dispunerea tastaturii pentru modul frecvențămetru), apoi așteptați ca poziția punctului zecimal să se schimbe, apoi eliberați butonul (butoanele). Dacă după aceasta trebuie să reveniți la timpul de măsurare de 1 secundă, atunci trebuie să apăsați butonul nr. 2 și să așteptați ca poziția punctului zecimal să se schimbe, apoi să eliberați butonul. Pentru orice timp de măsurare, punctul zecimal marchează kiloherți.


Dispunerea tastaturii în modul frecvențămetru

Buton nr. 1 0,1 sec. Comutați la timpul de măsurare 0,1 sec.
Butonul nr. 2 1 sec. Comutați la timpul de măsurare 1 sec.
Butonul nr. 1 +
butonul numărul 2 10 sec. Comutați la timpul de măsurare 10 sec.
(butoanele sunt apăsate simultan)

Dacă înainte de a opri alimentarea, lucrați în modul scară digitală, atunci data viitoare când porniți alimentarea, acest mod special va fi setat, iar în modul scară digitală exact submodul ("minus IF" sau "plus IF" ) se va stabili în care a avut loc lucrarea înainte de ultima oprire a alimentării. Semnele submodurilor cântarelor digitale („L.” sau „H.”, respectiv) vor fi afișate constant în cifra din stânga a indicatorului. Dacă nu există semnal la intrarea scalei digitale, indicatorul va arăta valoarea frecvenței intermediare înregistrată în memoria controlerului, iar dacă există, rezultatul scăderii sau adunării frecvenței semnalului prezent la intrare. a scalei digitale şi valoarea frecvenţei intermediare înregistrate în memoria nevolatilă a controlerului PIC.


Modul scară digitală are 4 submoduri.
- Când apăsați butonul nr. 1, are loc trecerea la submodul „MINUS IF”.
- În acest caz, în cifra din stânga a indicatorului va fi evidențiat semnul submodului „L”.
- Când apăsați butonul nr. 2, treceți la submodul „plus invertor”.
- În acest caz, în cifra din stânga a indicatorului va fi evidențiat semnul submodului „H”.

În timpul procesului de „firmware” al controlerului, valoarea frecvenței intermediare = 5,5 MHz este scrisă în memoria sa nevolatilă, dar apoi poate scrie independent orice valoare în ea și o poate folosi ca una intermediară. Pentru a face acest lucru, trebuie să aplicați un semnal extern cu o frecvență la intrarea DS, care va fi apoi folosit ca unul intermediar. Puteți verifica valoarea acestei frecvențe trecând la modul frecvențămetru.

Dispunerea tastaturii în modul scară digitală:
Butoane Timp de măsurare Explicații
Butonul nr. 1 „minus IF” Se scade din frecvența intermediară
frecventa masurata
Butonul nr. 2 „plus IF” Se însumează frecvența intermediară cu
frecventa masurata
Butonul nr. 1 +
butonul Nr. 2 Setarea invertorului Scrierea valorilor în memoria RAM
frecvența măsurată (IF)
Repeta:
Butonul nr. 1 +
butonul Nr. 2 Înregistrare IF Copierea valorii frecvenței măsurate din RAM în memoria nevolatilă în scopul utilizării ulterioare a acesteia ca intermediar


La schimbarea modului de operare, aspectul tastaturii se modifică. Dacă butonul nr. 1 este apăsat mai puțin de un anumit timp, atunci trecerea la alt mod nu are loc și butonul nr. 1 poate seta timpul de măsurare la 0,1 sec. (în modul frecvențămetru) sau porniți submodul „minus IF” (în modul scară digitală). Dacă acest prag este depășit, se trece la un alt mod. Valoarea acestui prag este de aproximativ 4 secunde, iar acest interval de timp este numărat de la sfârșitul ciclului de numărare, care are loc în momentul apăsării butonului nr. 1.


Puteți reduce consumul de energie al circuitului contorului de frecvență prin creșterea valorilor rezistențelor care conectează pinii portului B la indicator. În designul meu am folosit un indicator LED cu 9 cifre de la un telefon sovietic cu ID apelant, cu un catod comun și o culoare roșie strălucitoare. În frecvența mea, pe lângă alimentarea de la rețea, există și puterea bateriei (baterii). Placa de circuite imprimate a dispozitivului este prezentată în figură:


Firmware-ul pentru microcontrolerul PIC16F84A, precum și textul integral al articolului despre controler, pot fi descărcate aici. Am testat circuitul - ZU77.

Un frecvențămetru cu performanțe bune, permițându-vă să măsurați frecvențe de la 1 Hz la 10 MHz (9.999.999) cu o rezoluție de 1 Hz pe întreaga gamă. Ideal pentru generatoare de funcții, cântare digitale sau ca dispozitiv independent. Ieftin și ușor de fabricat, asamblat din piesele disponibile, de dimensiuni reduse și poate fi montat pe panourile multor dispozitive.

Circuitul este format din șapte indicatori cu 7 segmente, un AVR ATtiny2313 și mai multe tranzistoare și rezistențe. AVR face toată munca și nu sunt necesare cipuri suplimentare. Microcontrolerul numără numărul de impulsuri care ajung la intrarea sa în 1 secundă și afișează acest număr. Cel mai important lucru este un cronometru foarte precis și este implementat pe un Timer1 de 16 biți în modul CTC. În al doilea rând, contorul de 8 biți funcționează ca Counter0 și numără impulsurile la intrarea T0. La fiecare 256 de impulsuri provoacă o întrerupere în care programul mărește multiplicatorul. Când primim o întrerupere de 1 secundă, conținutul multiplicatorului este înmulțit cu 256 (deplasat la stânga cu 8 biți). Restul impulsurilor pe care le-a numărat contorul este scris în registru și adăugat la rezultatul înmulțirii. Această valoare este apoi împărțită în numere individuale care sunt afișate pe indicatori. După aceasta, înainte de a ieși din întrerupere de 1 secundă, ambele contoare sunt resetate simultan și măsurarea începe din nou. Când nu este întrerupt, controlerul este angajat în afișaj dinamic.

Rezoluție și acuratețe:
Precizia depinde de generatorul de ceas. Cuarțul trebuie să fie de bună calitate și să aibă o ppm (toleranță) cât mai scăzută. Va fi mai bine dacă frecvența este un multiplu de 1024, de exemplu, 16 MHz sau 22,1184 MHz. Pentru a măsura frecvențe de până la 10 MHz, trebuie să utilizați cuarț nu mai puțin de 21 MHz, de exemplu, 22,1184 MHz. Frecvențametrul poate măsura frecvențe de până la 47% din frecvența proprie a cristalului. Dacă aveți un contor de frecvență industrial bun, puteți calibra circuitul adăugând un condensator de tăiere (1pF-10pF) între unul dintre bornele de cuarț și masă și reglați frecvența în conformitate cu citirile contorului de frecvență industrial.

Arhiva sursă conține mai multe opțiuni pentru diferite cuarțuri, dar vă puteți compila propria versiune.

Forma de unda:
În principiu, dispozitivul înțelege orice formă de semnal de la 0 la 5V, nu doar impulsuri dreptunghiulare. Unda sinusoidală și impulsurile unghiulare sunt numărate la marginea de fugă atunci când coboară sub 0,8 V.

Dispozitivul nu are protecție împotriva tensiunii de intrare care depășește 5 volți.

Dispozitivul are o intrare de mare impedanță și nu încarcă circuitul testat - puteți măsura chiar și frecvența curentului alternativ într-o rețea de 220 de volți atingând intrarea cu degetul. Contorul de frecvență poate fi convertit pentru a măsura frecvențe de până la 100 MHz în pași de 10 Hz prin adăugarea unui divizor de mare viteză la intrare.

Afişa:
Au fost utilizați șapte indicatori cu șapte segmente cu un anod comun în modul de indicare dinamică. Dacă luminozitatea este insuficientă, puteți reduce valorile rezistențelor de limitare a curentului, dar trebuie să vă amintiți că curentul maxim de impuls al fiecărui pin al microcontrolerului este de 40 mA. Valoarea implicită a rezistenței este de 100 ohmi. Zerourile nesemnificative sunt anulate programatic. Valorile sunt actualizate în fiecare secundă.

Placă de circuit imprimat:
PCB cu două fețe 109mm x 23mm - din păcate cele 7 LED-uri nu se potriveau în versiunea gratuită a Eagle, așa că au fost desenate manual. Pe placă trebuie să faceți 3 conexiuni cu un fir - prima este conexiunea dintre sursa de alimentare și ieșirea VCC a controlerului - această conexiune este afișată pe stratul de serigrafie. Celelalte două conectează punctele zecimale ale indicatoarelor la rezistențe de 330 Ohm situate pe stratul inferior. În partea de sus a plăcii este un conector Atmel ISP-6. Contactul 1 este primul pe partea de cuarț. Acest conector este opțional și este necesar doar pentru programarea controlerului. Indicatoarele trebuie lipite la o anumită distanță de placă, astfel încât să puteți aduce un fier de lipit la pinii lipiți pe partea de sus a plăcii.