Il Comparatore
Il modulo comparatore è disponibile solo su
10F204/206.
Il suo funzionamento è analogo a quello generale dei comparatori
implementati nei Baseline e MidRange.
Il diagramma del modulo è questo:
Sostanzialmente si tratta di una versione semplificata del modulo
comparatore dei PIC12F e 16F
Il comparatore può essere abilitato e disabilitato da programma agendo sul
registro COMCON0.
L'uscita del comparatore può essere:
- disabilitata
- indirizzata ad un pin (C1OUT)
oppure
- utilizzata come ingresso di conteggio del TIMER0.
La sua struttura è la seguente:
CM1CON
|
bit
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
nome
|
C1OUT
|
!C1OUTEN
|
C1POL
|
!C1T0CS
|
C1ON
|
C1NREF
|
C1PREF
|
!C1WU
|
funzione
|
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
default
|
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
-
bit
7 C1OUT
: flag uscita del comparatore
1
= Vin+ > Vin-
0
= Vin+ < Vin-
-
bit 6 !COUTEN:
abilitazione uscita del comparatore
1 =
disabilitata
0 = uscita
sul pin C1OUT
-
bit 5 C1POL : polarità uscita del comparatore
1 = non invertita
0 =
invertita
-
bit 4
!C1T0CS: comparatore come sorgente di Timer0
1 = la sorgente è scelta dal bit T0CS
0 = la
sorgente è l'uscita del comparatore
-
bit
3 C1ON : accensione comparatore
1 =
abilitato
0 =
disabilitato
-
bit
2 C1NREF : selezione
dell' ingresso Vin-
1 = C1IN-
0 =
Vref
0.6V
-
bit
1 C1PREF : selezione dell' ingresso Vin+
1 =
C1IN+
0 =
C1IN-
-
bit
0 !C1WU : Wake up per cambio di stato del comparatore
1 =
disabilitato
0 =
abilitato
Vediamo un maggiore dettaglio:
bit |
Funzione |
Valore |
C1OUT |
Questo bit permette conoscere lo stato dell' uscita del
comparatore. |
- 1 Vin+ >
Vin-
- 0 Vin+< Vin-
|
!COUTEN |
|
Questo bit abilita l' uscita del comparatore sul pin C1OUT.
Se l' uscita non è abilitata il comparatore funziona ugualmente,
ma il risultato della comparazione viene utilizzato solo
internamente al micro.
Se è abilitata l' uscita, essa sostituisce la funzione sul pin 5
(GP2). |
Con riferimento al diagramma iniziale, il bit comanda l'
interruttore che collega l' uscita del comparatore al pin fisico. |
|
- 1 disab.(default)
- 0 uscita su GP2
|
C1POL |
|
Questo bit inverte il livello di uscita del comparatore. L'
azione è effettuata da un gate XOR
che inverte o meno il segnale a seconda del livello dei bit C1POL |
|
- 1 non inv.(default)
- 0 invertita
|
!C1T0CS |
Questo bit, se a 0, fa si che l' uscita del comparatore sia collegata
all' ingresso del Timer0.
Se è posto a 1 (default) la scelta della sorgente è quella impostata col
bit T0CS> dell'OPTION_REG |
- 1 T0CS(default)
- 0 uscita a Timer0
|
C1ON |
|
Questo bit accende o spegne il comparatore. In condizioni di
spento, il consumo di corrente viene ridotto. |
|
- 1 abilitato (default)
- 0 disabilitato
|
C1NREF |
|
Questo bit consente di scambiare C1IN- e 0.6Vref all' ingresso
Vin- del comparatore. |
|
- 1 C1IN1-(default)
- 0 0.6Vref
|
C1REF |
|
Questo bit consente di scambiare C1IN+ e C1IN- all' ingresso
Vin+ del comparatore. |
|
- 1 C1IN1+(default)
- 0 C1IN-
|
!C1WU |
|
Questo bit abilita o disabilita (default) la possibilità che l'
uscita del comparatore, se cambia di stato, faccia cessare la
condizione di sleep |
|
- 1 disab.(default)
- 0 abilitato
|
Anche se dal punto di vista della componentistica elettronica un
comparatore è realizzabile con un amplificatore operazionale, questo
comparatore integrato non è utilizzabile come op-amp in quanto la sua
uscita non è analogica, ma esclusivamente digitale.
Il riferimento negativo della comparazione può essere scelto tra la tensione
di riferimento interna (band gap generator a 0.6V) e un pin esterno (CIN-); il riferimento positivo
proviene da un pin esterno (CIN+).
Il dettaglio delle funzioni e della programmazione del comparatore è indicato
sul foglio dati.
Al POR il comparatore è abilitato.
Se non è richiesta la sua funzione, occorre disabilitarlo da programma agendo
su C1ON. |
Lo scatto del comparatore non genera interrupt, ma un reset, identificato dal
flag !CWU, per cui, al risveglio da sleep la causa va verificata discriminando
le condizioni dei flag dello STATUS, come visto in precedenza.