TIPS ‘N TRICKS

25 SEPTEMBRIE 2007

Microcontrolere PICmicro® cu module CCP şi ECCP

Microchip continuă să ofere produse inovative din ce în ce mai mici, mai rapide, mai uşor de utilizat şi mai sigure. Microcontrolerele PICmicro® sunt utilizate într-o gamă largă de produse de zi cu zi, de la maşini de spălat, uşi de garaj automate şi telecomenzi, până la produse industriale, medicale şi pentru industria auto.
Modulele CCP (Captură, Comparaţie şi PWM) care se regăsesc în multe dintre microcontrolerele Microchip sunt utilizate în principal pentru măsurarea şi controlul semnalelor de tip pulsuri. ECCP (Enhanced CCP), disponibil pe câteva dintre dispozitivele Microchip, diferă faţă de modulele uzuale CCP prin aceea că oferă o funcţionalitate PWM îmbunătăţită – şi anume suport full-bridge şi half-bridge, întârziere de bandă moartă programabilă, auto-închidere îmbunătăţită. Modulele ECCP şi CCP sunt capabile de a îndeplini o serie întreagă de sarcini. În cele ce urmează sunt oferite câteva sugestii de aplicaţii practice.

TIP 1. Măsurarea perioadei unui semnal dreptunghiular
1 Se configurează biţii de control CCPxM3:CCPxM0 (CCP x CON<3:0>) pentru detectarea fiecărui front crescător al formei de undă.
2 Se configurează prescalarea circuitului de temporizare 1 astfel încât acesta să ruleze TMAX(1) fără depăşire.
3 Se activează întreruperea CCP (bit CCPxIE).
4 La apariţia întreruperii CCP:
a) Se scade timpul salvat determinat t1 din timpul determinat t2 şi se stochează (se utilizează flag-ul circuitului de temporizare 1 ca indicator de depăşire).
b) Se salvează timpul determinat t2.
c) Se şterge Flag-ul temporizatorului 1.
Rezultatul obţinut la 4.a este perioada T.

Notă: TMAX este perioada maximă a pulsului care va apărea.

TIP 2. Măsurarea perioadei unui semnal dreptunghiular cu mediere
1 Se configurează biţii de control CCPxM3:CCPxM0 (CCP x CON<3:0>) pentru detectarea fiecărui al şaisprezecelea front crescător al semnalului.
2 Se configurează prescalarea circuitului de temporizare 1 astfel încât va rula 16 TMAX(1) fără depăşire.
3 Se activează întreruperea CCP (bit CCPxIE).
4 La apariţia întreruperii CCP:
a) Se scade timpul determinat t1 din timpul determinat t2 şi se stochează (se va folosi flag-ul întreruperii circuitului de temporizare ca indicator de depăşire).
b) Se salvează timpul determinat t2.
c) Se şterge flag-ul temporizatorului 1.
d) Valoarea obţinută la punctul 4.a se împarte la 16, iar rezultatul este perioada căutată T.

Notă: TMAX este perioada maximă a pulsului care va apărea.

În cele ce urmează sunt prezentate avantajele acestei metode în comparaţie cu măsurarea perioadei individual:
– Mai puţine întreruperi CCP care opresc curgerea programului;
– Medierea oferă o imunitate excelentă la zgomot.

TIP 3. Măsurarea lăţimii pulsului
1 Se configurează biţii de control CCPxM3:CCPxM0 (CCP x CON<3:0>) pentru detectarea fiecărui front crescător al formei de undă.
2 Se configurează prescalarea circuitului de temporizare 1 astfel încât acesta să lucreze la WMAX fără depăşire.
3 Se activează întreruperea CCP (bit CCPxIE).
4 La apariţia întreruperii CCP, se salvează valoarea de timp determinată de temporizator t1 şi se reconfigurează biţii de control pentru capturarea fiecărui front descrescător.
5 La apariţia din nou a întreruperii CCP, se scade valoarea salvată t1 din valoarea determinată curent t2 – acest rezultat este lăţimea pulsului (W).
6 Se reconfigurează biţii de control pentru detectarea următorului front crescător şi începe repetarea întregului proces (se repetă paşii de la 3 la 6).

TIP 4. Măsurarea factorului de umplere (duty cycle)
Factorul de umplere al unei forme de undă este raportul dintre lăţimea pulsului (W) şi perioadă (T). Senzorii de acceleraţie de exemplu, îşi variază factorul de umplere al ieşirii lor pe baza acceleraţiei ce acţionează asupra sistemului. Modulul CCP, configurat în modul de captură, poate fi utilizat pentru măsurarea factorului de umplere al acestor tipuri de senzori. Iată cum:
1 Se configurează biţii de control CCPxM3:CCPxM0 (CCP x CON<3:0>) pentru detectarea fiecărui front crescător al formei de undă.
2 Se configurează prescalarea circuitului de temporizare 1 astfel încât circuitul va rula la TMAX(1) fără depăşire.
3 Se activează întreruperea CCP (bit CCPxIE).
4 La apariţia întreruperii CCP, se salvează valoarea de timp determinată t1 şi se reconfigurează biţii de control pentru detectarea fiecărui front descrescător.
Notă: TMAX este perioada maximă a pulsului care va apărea.
5 La apariţia din nou a întreruperii CCP, se va scădea valoarea salvată t1 din valoarea determinată curent t2 – astfel se determină lăţimea pulsului (W).
6 Se reconfigurează biţii de control pentru detectarea următorului front crescător.
7 La apariţia întreruperii CCP se scade valoarea salvată t1 din valoarea curent determinată t3 – valoarea obţinută este perioada T a formei de undă.
8 Se împarte W la T – acest rezultat este factorul de umplere.
9 Se repetă paşii de la 4 la 8.

www.microchip.com

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile necesare sunt marcate *

  • Folosim datele dumneavoastră cu caracter personal NUMAI pentru a răspunde comentariilor/solicitărilor dumneavoastră.
  • Pentru a primi raspunsuri adecvate solicitărilor dumneavoastră, este posibil să transferăm adresa de email și numele dumneavoastră către autorul articolului.
  • Pentru mai multe informații privind politica noastră de confidențialitate și de prelucrare a datelor cu caracter personal, accesați link-ul Politica de prelucrare a datelor (GDPR) si Cookie-uri.
  • Dacă aveți întrebări sau nelămuriri cu privire la modul în care noi prelucrăm datele dumneavoastră cu caracter personal, puteți contacta responsabilul nostru cu protecția datelor la adresa de email: gdpr@esp2000.ro
  • Abonați-vă la newsletter-ul revistei noastre