Temporizatoarele și Numărătoarele PDF
Document Details

Uploaded by CourtlyJasper9827
Tags
Summary
Acest document este o prezentare a temporizatoarelor și numărătoarelor, discutând funcțiile lor, configurările și utilizarea în microcontrolerele AVR, precum și conceptul de modulare a lățimii impulsurilor (PWM). Oferă o introducere în principii de bază în electronică digitală.
Full Transcript
**TEMPORIZATOARELE** NUMĂRĂTOARELE Temporizatoare/Numărătoare Microcontrolerele AVR au mai multe temporizatoare/numărătoare, fiecare cu configurații specifice: 1. TCNT0: 8 biți (16 biți pentru ATTiny4/5/9/10). 2. TCNT1: 16 biți. 3. TCNT2: 8 biți. 4. TCNT3: 16 biți. Configurare și utilizare...
**TEMPORIZATOARELE** NUMĂRĂTOARELE Temporizatoare/Numărătoare Microcontrolerele AVR au mai multe temporizatoare/numărătoare, fiecare cu configurații specifice: 1. TCNT0: 8 biți (16 biți pentru ATTiny4/5/9/10). 2. TCNT1: 16 biți. 3. TCNT2: 8 biți. 4. TCNT3: 16 biți. Configurare și utilizare Generare de semnale - Temporizatoarele/Numărătoarele pot fi configurate să genereze un semnal de ieșire, cum ar fi un semnal PWM (Modulație cu Lățime de Impuls). - Pot fi setate să funcționeze ca modulatoare PWM sau să primească un semnal extern. Generare de întreruperi - Temporizatoarele/Numărătoarele pot genera mai multe tipuri de întreruperi: - Întrerupere la depășire: Când temporizatorul/numărătorul atinge o anumită valoare. - Întrerupere la comparare: Când valoarea temporizatorului/numărătorului este comparată cu o valoare dintr-un registr (A și B). - Întrerupere la captură: Când un eveniment extern este capturat. Regiștrii numărătorului TCNT0 -- 8 biți Numărătorul TCNT0 - TCNT0 este un temporizator/numărător de 8 biți. - Modul său de funcționare este controlat de regiștrii TCCR0A și TCCR0B. Regiștrii de control TCCR0A (Timer/Counter Control Register A) - COM0A1, COM0A0, COM0B1, COM0B0: Biții de control pentru compararea cu OCR0A și OCR0B. - WGM01, WGM00: Biți pentru selecția modului de funcționare (Waveform Generation Mode). TCCR0B (Timer/Counter Control Register B) - FOC0A, FOC0B: Biți pentru forțarea comparării cu OCR0A și OCR0B. - WGM02: Bit pentru selecția modului de funcționare. - CS02, CS01, CS00: Biți pentru selecția sursei de ceas. Selecția sursei de ceas Biții CS02, CS01, CS00 definesc selecția sursei de ceas, externă sau internă, pentru temporizator/numărător, precum și divizarea frecvenței de ceas cu 1, 8, 64, 256 sau 1024. Ce este o Unitate de Numărare? O unitate de numărare (sau contor) este un circuit digital care numără evenimente sau impulsuri de ceas. Este folosită pentru a temporiza sau număra ceva în sisteme electronice. 1. Cum numără? - Contorul poate crește sau scădea valoarea din TCNTn la fiecare impuls de ceas (clk\_Tn). - Dacă contorul ajunge la valoarea maximă (top), se poate declanșa un semnal (de exemplu, pentru a opri numărătoarea). - Dacă contorul ajunge la zero (bottom), se poate declanșa un alt semnal. Exemplu simplu: - Dacă setăm contorul să numere de la 0 la 10: - La fiecare impuls de ceas, valoarea din TCNTn crește cu 1 (0, 1, 2, \..., 10). - Când ajunge la 10 (top), se poate opri sau se poate declanșa o acțiune. - Dacă resetează, revine la 0 și începe din nou. Pentru ce se folosește? - Pentru temporizare: De exemplu, să aștepte 5 secunde înainte de a porni un motor. - Pentru numărare: De exemplu, să numere câte ori s-a apăsat un buton. Ce este Fast PWM? Fast PWM (Pulse Width Modulation) este o tehnică de modulare a lățimii impulsurilor, folosită pentru a genera semnale cu o anumită frecvență și o lățime variabilă a impulsurilor. Este utilizat în aplicații precum controlul motoarelor, reglarea luminozității LED-urilor sau generarea de semnale audio. Cum funcționează? 1. Generare de semnal: - În modul Fast PWM, un semnal este generat prin modularea lățimii impulsurilor. Acest lucru înseamnă că lățimea impulsurilor este modificată în funcție de o valoare de referință. - Acest mod diferă de alte moduri PWM prin faptul că este mai rapid și mai eficient, permițând o frecvență mai ridicată a semnalului. 2. Componente principale: - TCNTn: Un contor care numără impulsurile de ceas. - OCRnX: Un registru de comparare care setează când contorul ajunge la o anumită valoare. - TOVn: Un flag care semnalează când contorul a ajuns la valoarea maximă (TOP). 3. Numărătoarea: - Contorul (TCNTn) crește până la valoarea TOP, apoi se resetează la 0. - Când contorul ajunge la valoarea TOP, un flag (TOVn) este setat, indicând că datele pot fi actualizate. 4. Mod neinversor (mod normal): - În acest mod, când valoarea din TCNTn este egală cu valoarea din OCRnX, semnalul este setat la 0 (overflow). - Când valoarea din TCNTn este mai mică decât valoarea din OCRnX, semnalul este setat la 1 (egalitate). Exemplu simplu: - Dacă setăm TOP la 255 și OCRnX la 128: - Contorul (TCNTn) crește de la 0 la 255. - Când TCNTn ajunge la 128, semnalul este setat la 0. - Când TCNTn ajunge la 255, se resetează la 0 și ciclul se repetă. Ce este PWM? PWM (Pulse Width Modulation) este o tehnică de modulare a lățimii impulsurilor, folosită pentru a controla tensiunea medie aplicată la o sarcină (de exemplu, un motor, un LED etc.). Aceasta se realizează prin varierea timpului de activare (ON) și dezactivare (OFF) al unui semnal digital. Cum funcționează? 1. Principiul de bază: - Un semnal PWM este un semnal digital care alternează între starea ON (tensiunea de alimentare, Vcc) și starea OFF (0V). - Lățimea impulsului (timpul de ON) este variabilă, iar frecvența semnalului rămâne constantă. 2. Factorul de umplere (Duty Cycle): - Factorul de umplere D*D* este raportul dintre timpul de ON (Ton*Ton*) și perioada totală (Ton+Toff*Ton*+*Toff*). - Formula: D=TonTon+Toff*D*=*Ton*+*Toff**Ton*. - Acest factor este exprimat în procente și indică cât timp semnalul este ON într-o perioadă. 3. Tensiunea medie: - Tensiunea medie (Vmed*Vmed*) aplicată la sarcină este dată de:Vmed=D⋅Vcc+(1−D)⋅VGND*Vmed*=*D*⋅*Vcc*+(1−*D*)⋅*VGND* - Dacă VGND=0*VGND*=0, atunci:Vmed=D⋅Vcc*Vmed*=*D*⋅*Vcc* - Prin varierea factorului de umplere D*D*, se poate controla tensiunea medie aplicată la sarcină. 4. Filtrarea semnalului PWM: - Pentru a reconstrui un semnal analogic dintr-un semnal PWM, se folosește un filtru trece-jos (de exemplu, un filtru RC). - Frecvența de tăiere a filtrului (fcutoff*fcutoff*) este dată de:fcutoff=12πRC*fcutoff*=2*πRC*1 - Acest filtru elimină componentele de frecvență ridicate și lasă să treacă doar semnalul analogic rezultat.