Alimentazione sotto controllo

Un metodo di misura della tensione di alimentazione dei microcontrollori PIC tramite un riferimento interno di 0.6 Volts e una possibile calibrazione dello strumento per ridurre gli errori nelle misurazioni.

Alcuni microcontrollori contengono un riferimento di tensione interno di 0.6 o 1.2 Volts che può essere scelto come ingresso per il modulo ADC al fine di misurare tensioni di alimentazione per il dispositivo stesso. Il micro preso come esempio nell’articolo è un PIC16F690, sebbene ve ne siano altri con caratteristiche simili. Una schematizzazione del metodo di misura è riportata nella figura 1.

Figura 1: schema del processo di misura della tensione Vdd col riferimento Vref

Figura 1: schema del processo di misura della tensione Vdd col riferimento Vref

Per misurare Vdd, questa va inviata all’ADC attraverso l’impostazione del flag VCFG, mentre il riferimento 6V viene selezionato tramite i bits del re gistro CHS<3:0>. Quest’ultima tensione è una misura indiretta di Vdd, dal momento che ne rappresenta un percentile. Dal momento che esiste un’influenza tra il valore da misurare (Vdd) e il riferimento a 0.6 V (retroazione  negativa), è necessaria una calibrazione preventiva per eliminare non tanto tale dipendenza, ma il valore 0.6, che altrimenti comporterebbe un errore grossolano e amplificato sul valore Vdd da misurare. Come si vedrà dalla tabella in figura 3 la calibrazione evidenzierà una relazione inversa tra la tensione incognita e il corrispondente valore digitale ricavato dal micro. La figura 1 mostra i registri e i flag interessati nella misurazione: il bit ADON del registro ADCON0 attiva e disattiva l’ADC, il  bit GO/DONE dello stesso registro fa partire e bloccare il  processo di conversione mentre il flag ADFM del registro ADCON1 permette di scrivere il risultato della misurazione (10 bits) nei primi dieci o negli ultimi dieci bits della coppia di registri ADRESH e ADRESL. La relazione tra il dato digitale misurato ed elaborato dal PIC e quello reale incognito è evidenziata nella figura 2, dove appare anche il ruolo del valore di riferimento usato (0.6 V): in essa n rappresenta il numero dei bits del risultato.

Figura 2: relazione tra Vdd e Vp6COUNT

Figura 2: relazione tra Vdd e Vp6COUNT

Le due equazioni riportate evidenziano la relazione esistente tra VDD e VP6COUNT, che risulta proprio essere una relazione di proporzionalità inversa come già accennato prima. La figura 3 mostra una serie di valori relativi alla tensione incognita da misurare (Vdd applicata) nella prima colonna, il valore digitale misurato (VP6count) nella seconda e il valore analogico a questo corrispondente (Vdd rappresentato) nella terza.

Figura 3: alcuni valori delle tensioni incognite (Vdd applicata) e di quelle misurate (Vdd rappresentata).

Figura 3: alcuni valori delle tensioni incognite (Vdd
applicata) e di quelle misurate
(Vdd rappresentata).

Calibrazione

Come accennato la misurazione richiede una tensione di riferimento costante di 0,6 V (VP6). Le variazioni di questo riferimento comportano uno sfasamento relativo tra i valori della prima colonna e quelli digitali misurati della seconda e perciò rappresenta uno sfalsamento della misura. Non c’è nessun modo di sapere l’esatto valore del riferimento prima di usare il dispositivo  di misura e quindi di associare in modo univoco i valori incogniti con quelli digitali. Lo scopo della calibrazione consiste nell’eliminare la dipendenza algebrica dall’esatto valore di tale riferimento e poi di porre il risultato  digitale in una forma espressiva, come ad esempio 535 per rappresentare 5.35 volts. Dal momento che esiste comunque una dipendenza circuitale tra il pin associato alla tensione incognita e il riferimento che in teoria dovrebbe essere costante e indipendente (retroazione negativa) bisogna usare una tensione VDD nota, eseguire la misurazione, salvare il risultato digitale (VP6CALVALUE) e poi riutilizzare quest’ultimo quando si effettueranno delle misure di tensioni incognite Vu. Nella prima riga della tabella riportata in figura 4 compare il termine Vref usato nella calibrazione (la Vdd nota suddetta): come si può vedere per essa si è scelto il valore di 4 volts, dal momento che tale valore produce un valore VP6CALVALUE  che renderà poi minime le variazioni nei risultati delle misure, variazioni conseguenti alle oscillazioni del riferimento intorno al suo valore medio (0.6).

Figura 4: tabella delle formule attinenti alla calibrazione.

Figura 4: tabella delle formule attinenti alla calibrazione.

Il K che compare nella seconda riga rappresenta il “trucco” della calibrazione per eliminare la dipendenza algebrica dal valor medio del riferimento interno (VP6) poiché si ipotizza una dipendenza del tipo Vu = K * VP6CALVALUE tra le tensioni incognite e il valore digitale prodotto in corrispondenza della tensione Vref: infatti la formula presente nella prima riga è un caso particolare della formula presente nella quinta riga, ma in quest’ultima non compare il termine  VP6 come voluto. L’ultima equazione mostra un possibile adattamento dei valori al formato a 16 bit della coppia di registri che devono contenere  il risultato finale: la prima divisione per due è necessaria perché le due moltiplicazioni produrrebbero un overflow nel risultato (e perciò sarebbe ne cessaria un’aritmetica a 24 bits). La routine software che esegue la calibrazione viene eseguita una volta sola nel caso in cui il valore VP6CALVALUE  e Vref vengano salvati nella EEPROM, altrimenti è necessario rieseguirla ad ogni accensione del micro. Il valore di 4 volts è consigliato per il motivo già accennato, altrimenti la routine di calibrazione accetta qualunque valore per Vref,  lo salva e lo utilizza insieme a VP6CALVALUE per eseguire i conti relativi alla calibrazione. Un metodo alternativo a quello descritto consiste non nell’eseguire tutti i conti come detto, ma nell’utilizzare una tabella precalcolata che associa il valore Vref al valore VP6CALVALUE e poi utilizzare questi due valori nell’ultima equazione della tabella di figura 4: tale metodo richiede più spazio di memoria ma riduce il tempo di esecuzione dei conti.

Figura 5: paragone tra la calibrazione e la tabella precalcolata

Figura 5: paragone tra la calibrazione e la tabella precalcolata

 

Figura 6: Pinout del PIC16F690.

Figura 6: Pinout del PIC16F690.

 

2 Commenti

  1. Massimiliano.Elico 31 maggio 2018

Scrivi un commento

EOS-Academy