Le schede di circuiti dotate di Fpga, microprocessori, Asic e Dsp hanno più linee di alimentazione, che vanno da tensioni inferiori a 1 V per i punti di carico ai 12 V dei bus intermedi, richiedendo quindi un’attenta supervisione della tensione per assicurare un funzionamento affidabile e senza errori del sistema. Man mano che la tecnologia dei dispositivi al silicio consentiva riduzioni delle dimensioni verso le decine di nanometri, non solo la minima tensione di uscita dei POL (usualmente quella di alimentazione del core) tendeva a valori minori di 1V, ma si riduceva anche la specifica sulla precisione del core del processore – al 3% o meglio. Queste specifiche sulla precisione comportano tolleranze rigorose sia sulla tensione di alimentazione che sulla relativa soglia di supervisione. Nello stesso periodo, si è assistito a un aumento rapido del numero di linee di alimentazione, necessarie per molteplici circuiti – core e I/O di Fpga/Mpu/Asic/Dsp, di memoria, Pll e altri circuiti analogici – così che non è insolito che vi siano dieci o più linee di alimentazione. Spesso accade pure che gli esatti livelli della tensione di alimentazione non siano noti sino a una fase molto avanzata del progetto o addirittura dopo che la scheda è stata fabbricata e assemblata. Per ottimizzare le tensioni di alimentazione al fine di ridurre il consumo di potenza della scheda è necessaria una regolazione personalizzata di ciascuna tensione e una corrispondente regolazione della soglia di supervisione in base alle prestazioni di ciascuna scheda. I livelli di tensione possono variare anche in funzione dei Fpga/Mpu/Asic/Dsp. Tradizionalmente, le variazioni delle soglie di supervisione vengono ottenute modificando partitori resistivi o impostando ponticelli, ma la granularità della regolazione è limitata e la procedura è complicata, lunga e soggetta a errori.
La precisione della supervisione di tensione
Consideriamo un esempio in cui deve essere impostata la soglia di supervisione di una tensione. Si assuma che un microprocessore richieda una tensione di alimentazione (per comodità arrotondata) di 1V±3% per il core, per cui l’intervallo operativo valido è compreso fra 0,97 e 1,03 V. Per aumentare l’affidabilità, per monitorare questa tensione si impiega una soglia di supervisione esterna anziché affidarsi semplicemente al circuito interno power-on-reset del microprocessore. In condizioni ideali, senza alcuna variazione, la soglia inferiore di supervisione può essere impostata esattamente a 0,97 V, per cui viene segnalato un reset non appena la tensione di alimentazione scende sotto 0,97V. In realtà, le soglie di supervisione vengono generate a partire da comparatori e tensioni di riferimento analogiche, e ogni comparatore o tensione di riferimento ha una banda di tolleranza che contribuisce alla variazione della soglia di supervisione. Per un valore di 0,97 V con precisione di ±1%, la soglia varia da 0,96 a 0,98 V. Quando la soglia è al limite inferiore (0,96 V), la tensione di alimentazione potrebbe essere fuori dell’intervallo di tensioni valide del core del µP, ma non sarà segnalato un reset e ne conseguirà un malfunzionamento del µP. Per rimediare a questo problema, la soglia di supervisione nominale viene impostata a 1% oltre il limite di 0,97 V dell’intervallo di validità, ossia a 0,98 V. Lo svantaggio è che quando la tensione di alimentazione è minore di 0,99 V potrebbe essere segnalato un reset a causa di una soglia di supervisione elevata. Quindi, la tensione di alimentazione deve rimanere oltre 0,99 V ovvero a 1V−1%, per cui la precisione della soglia di supervisione riduce l’intervallo operativo della tensione di alimentazione. La stessa analisi si applica alla soglia di sovratensione che sarà impostata a un valore nominale di 1,02 V - limitando il limite superiore dell’intervallo di tensioni di alimentazione a 1,01 V ossia 1V+1%. Ne consegue che una specifica di ±3% sul microprocessore unitamente a una precisione della soglia di supervisione pari a ±1% richiede una tolleranza sulla tensione di alimentazione di ±1%. Si osservi che una precisione di supervisione pari a ±1,5% comporta una tolleranza impossibile sulla tensione di alimentazione, ossia 0%. Se la protezione dalla sovratensione non è necessaria, la tensione di alimentazione può essere compresa fra 0,99 e 1,03 V; in questo caso, una tensione di alimentazione pari a 1,01V±2% è adeguata. Riepilogando, la precisione della supervisione svolge un ruolo importante nel determinare la tolleranza e il costo della tensione di alimentazione necessaria.
Supervisione flessibile
Per risolvere i problemi di supervisione della tensione menzionati nella sezione introduttiva, Linear Technology offre circuiti di supervisione di sei tensioni di alimentazione programmabili - l’LTC2933 e l’LTC2936 – con Eeprom integrata, intervallo di regolazione della soglia da 0,2 a 13,9 V e registri di regolazione della soglia a 8 bit (256 scelte) impostabili tramite un’interfaccia digitale I2C/SMBus. Entrambi i dispositivi offrono precisione di ±1% per soglie nell’intervallo da 0,6 a 5,8 V con due soglie a polarità regolabile per ingresso di monitoraggio. Ad esempio, una delle soglie può essere configurata come rivelatore di sottotensione per la generazione del segnale di reset, mentre l’altra soglia può essere impiegata per la rilevazione di sovratensioni, la protezione di costosi circuiti elettronici della scheda contro danni oppure come una soglia UV più alta per un’avvertenza tempestiva di guasto dell’alimentatore, assicurando al processore tempo prezioso per il backup dei dati. La possibilità di regolare la soglia mediante l’interfaccia I2C/SMBus elimina la necessità di partitori resistivi esterni, liberando spazio sulla scheda e prevenendo il peggioramento della precisione causato dalle tolleranze dei resistori. È possibile variare le soglie all’ultimo minuto semplicemente scrivendo sui registri di configurazione anziché modificando schede, riducendo quindi il tempo di immissione sul mercato. La memoria volatile mantiene lo stato di guasto istantaneo mentre la Eeprom interna memorizza la configurazione dei registri ed esegue il backup della cronologia dei guasti, velocizzando il debug e riducendo il tempo di sviluppo. Per ridurre al minimo i falsi reset causati dal rumore dell’alimentatore, le soglie di supervisione rispondono ai glitch d’ingresso in base all’overdrive del comparatore. È possibile configurare due ingressi universali come ingressi a reset manuale, ingressi di disabilitazione guasto UV o UV/OV (ad esempio durante i test dei margini della scheda), ingressi protetti contro la scrittura (solo l’LTC2936) oppure ingressi di comparatore ausiliari. La soglia di 0,5 V costante del comparatore ausiliario Gpi ha una precisione di ±2%, estendendo il monitoraggio a un totale di otto tensioni di alimentazione con partitori resistivi esterni. È possibile configurare tre ingressi/uscite universali come ingressi o come uscite di reset, guasto o di allarme SMBus. Qualsiasi ingresso di guasto Gpi, Gpio o UV/OV può essere mappato su una qualunque delle uscite Gpio. I pin Gpio sono programmabili per il tempo di delay-on-release (da 1µs a 1,64s), tipo di uscita (drain aperto o pull-up debole) e polarità (alta o bassa attiva). Per conseguire questa flessibilità non occorre scrivere istruzioni software poiché l’ambiente di sviluppo LTpowerPlay permette di configurare i dispositivi attraverso un’intuitiva interfaccia grafica. Inoltre l’LTC2933 e l’LTC2936 monitorano tensioni di alimentazione negative, come quelle dei circuiti analogici, con un partitore resistivo alla tensione negativa dall’uscita di un regolatore lineare da 3,3V con precisione del 2%. Uno degli ingressi dell’LTC2933 monitora direttamente un bus intermedio a 1 2V mentre gli altri cinque ingressi monitorano tensioni di alimentazione nell’intervallo da 0,2 a 5,8 V con soglie regolabili con incrementi di 4 mV nell’intervallo di precisione da 0,2 a 1,2 V. L’LTC2936 porta le uscite di ciascun comparatore di monitoraggio a un pin, rendendo possibile un’applicazione di sequenza in serie in cui una tensione di alimentazione viene avviata dopo che la precedente nella sequenza ha raggiunto l’intervallo operativo valido.