nico_2010 Postat Februarie 27, 2019 Partajează Postat Februarie 27, 2019 (editat) Salut, Astazi va propun o schema de frecventmetru care are ca particularitate eliminarea incertitudinii +/-1 count, prezenta la majoritatea schemelor de frecventmetre - cu PIC sau Atmel - vehiculate pe net si care are intervalul de masura cuprins intre 1Hz si 80MHz. Microcontrollerul folosit este ATMega48 si foloseste un oscilator extern SMD cu frecventa de 20MHz, alimentat la 5V su cu stabilitate cu temperatura de 50ppm. Nu folositi oscilatoare necompensate termic in capsula metalica, se comporta ciudat in functie de temperatura. Principial, frecventmetrul functioneaza astfel: TIMER1 este setat sa functioneze in modul CTC si genereaza pe pinul GATE (in schema PC4) un impuls pozitiv cu durata de 1 secunda. In acest interval de timp, poarta formata din 1/2 74HC74 si 1/3 74AC11 va permite trecerea numarului exact de impulsuri aferent frecventei de masurat catre numaratorul 74HC393, care activeaza si ca prescaler. La sfarsitul perioadei de timp de 1 secunda poarta de mai sus se inchide si nu mai permite trecerea impulsurilor catre numarator, iar continutul numaratorului este citit de microcontroller. Tot acum este oprit si TIMER0 (care functioneaza in regim de intreruperi) si se citeste continutul sau si al numarului de intreruperi inregistrate in subrutina de overflow. Toate aceste valori se insumeaza si rezulta valoarea frecventei de masurat. Cu ocazia experimentelor am constatat ca solutia de masurare a frecventei bazata pe generarea de intreruperi succesive a TIMER1 (sau TIMER0) pentru obtinerea intervalului de masura de 1 secunda introduce erori neacceptabile. Aceste erori sunt cauzate de numarul de impusuri de tact consumate pentru tratarea intreruperilor, care variaza intre minim 4 si maxim 7. Daca, spre exemplu, o schema foloseste un microcontroller cu oscilator de "referinta" de 8MHz si cineva seteaza TIMER0 cu prescaler 256 vizand perioada intreruperilor de 4ms, atunci vor avea loc 249 de inreruperi pentru intervalul de 1 secunda, ceea ce inseamna o "lungire" a intervalului de masurare cu 875us. Daca la 100kHz eroarea poate nu pare importanta (875Hz in plus), la frecvente mai mari se vor resimti aceste erori. In schema de mai jos nu este prezentat si dispozitivul de afisare, care poate fi LCD 16x2, modulul cu 8 afisoare cu 7 digiti bazat pe TM1638 (disponibil pe Ebay), sau un afisor LCD bazat pe HT1621 (asa cum am folosit eu in proiectul anexat in integralitate). La cerere, va pot pune la dispozitie si varianta cu LCD 16x2, sau va puteti modifica proiectul adaugand libraria LCD cea mai adecvata pentru ceea ce aveti la dispozitie. In fotografie este prezentata masurarea unui oscilator in capsul metalica DIP-8 cu frecventa de 20.000MHz. L.E.: Aveti si simularea modului in care functioneaza poarta. Pentru exemplificare am ales ca Fx sa fie 10Hz. ATMega48_FCV.pdf ATMega48_FCV.zip Editat Februarie 27, 2019 de nico_2010 Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum