Per normalizzare questo valore di drift in ppm/°C, si divide per la tensione del riferimento e si moltiplica per 106. Il risultato è normalmente di circa 2ppm/°C per un sistema da 14-bit, 10ppm/°C per un sistema da 12-bit e 30ppm/°C per un sistema da 10 bit. Questi valori cambiano in base all’escursione di temperatura consentita.
Il MAX125 è pilotato da un processore Atmel AVR (AT90S4414), entrambi i dispositivi utilizzano un clock di 10MHz derivato da un modulo oscillatore. Il programma è stato scritto in linguaggio assembler, con una singola istruzione si cambia lo stato di ciascuna linea dati per riflettere il diagramma temporale del data sheet del MAX125. Il programma, per una più facile comprensione, è diviso in due sub-routine e la maggior parte delle linee di programma sono commentate.
Allo startup o al power-on-reset, il MAX125 viene configurato utilizzando i pin dati D3-D0. Configurando questi pin con il valore 0011 e dando un segnale di strobe a livello basso sul pin WR, si fissa il modo di funzionamento del ADC (si selezionano tutti e quattro gli ingressi del multiplexer A). A questo punto le porte del microprocessore vengono riconfigurate come ingressi per ricevere i dati dal ADC.
Dopo la generazione di un impulso a livello basso sul pin CONVST, il processore aspetta un segnale di interrupt dal MAX125. Viene quindi letto il risultato della conversione del canale 1 e inviato il risultato alla porta RS-232 del PC, attraverso la UART MAX3100 e il MAX202E. Dato che, ogni conversione include 16 bit di dati, per ogni risultato sono richiesti due cicli di scrittura sulla porta RS-232. La trasmissione del dato RS-232 può essere fatto senza fretta, in quanto nel frattempo il convertitore A/D memorizza il risultato della conversione dei canali 2-4. Una volta che il dato relativo al canale 1 è stato spedito, il processo viene ripetuto per i canali 2-4. I pin dati non utilizzati (di un bus da 16-bit si utilizzano solo 14 linee di dato) possono introdurre del rumore. Se questi pin vengono configurati come ingressi il rumore si presenta come un dato intermittente.
Fortunatamente una semplice funzione software AND filtra il rumore introdotto. In alternativa si possono configurare queste porte come uscite. Anche se il codice sopra riportato funziona perfettamente, può risultare difficoltoso stabilire le corrette prestazioni del circuito. Il segnale di interrupt viene servito dal mC cosi velocemente (in 1ms), che solo un oscilloscopio con memoria lo può rilevare. Se quest’ultimo non è disponibile si può inserire una routine di ritardo immediatamente dopo l’attivazione a livello alto del segnale CONVST.
Interfaccia PC
Il componente chiave per interfacciare il microprocessore al PC è la UART indirizzabile serialmente MAX3100. Questo dispositivo, pilotato dal microprocessore attraverso il bus a 4-fili SPI/Microwire bus, converte il dato nel formato utilizzato dalla maggior parte dei dispositivi compatibili RS-232. Un transceiver a basso consumo standard con 2TX/2RX (MAX202E) realizza la traslazione di livello.
Questa UART, caratterizzata da modi shutdown sia software che hardware e disponibile nel piccolo contenitore QSOP, è ideale per gli apparati portatili a basso consumo. La sua interfaccia permette anche l’utilizzo della comunicazione IrDA, attraverso gli opportuni dispositivi ottici. Altre caratteristiche (non richieste in questa applicazione) sono un buffer di ricezione e un indicatore di interrupt, che riporta le informazioni dello stato dei registri di trasmissione e ricezione. È stata implementata una routine software SPI per esportare il codice anche in microprocessori che non hanno integrata questa interfaccia. Se viene utilizzata una porta SPI dedicata, la linea di clock SCLK deve essere inizializzata a livello basso quando viene attivato il segnale CS. Se questo requisito è un problema , bisogna eseguire un ciclo sulla linea SCLK prima di entrare nella routine SPI. Il tempo necessario per trasmettere il dato attraverso la RS-232, a 9600 baud, è di più di un millisecondo (otto bit di dato e un bit di start e stop).
Interfaccia Windows
Il programma Windows è stato scritto in Visual Basic (versione 6). Legge dalla porta RS-232 utilizzando la funzione MSComm configurata per accettare testo e converte questo dato in ASCII. Inoltre traduce il blocco dati a 16-bit nelle misure di tensione e corrente ottenute dal circuito di rilevazione che precede il convertitore A/D.
Utilizzando questi risultati vengono visualizzate sullo schermo del PC le informazioni di potenza d’ingresso, potenza d’uscita e efficienza arrotondate a tre decimali. Inoltre se necessario il sistema può ‘congelare” il risultato. La misura della figura di efficienza è influenzata dal ripple presente sulle forme d’onda dei segnali di corrente e tensione. Le resistenze da 4.7kW sono state filtrate con dei condensatori da 10nF per ridurre il ripple mentre i partitori resistivi che misurano la tensione sono stati lasciati senza filtro. Perciò il ripple misurato (20mV sull’ingresso e 100mV sull’uscita) determina la variazione del ±3% sull’efficienza misurata.