Seconda puntata della serie "Oggi i PIC consumano meno" per la Rubrica Firmware Reload di Elettronica Open Source.
SUGGERIMENTO 4: USARE RESISTENZE DI PULL-UP DI VALORE ELEVATO
È più conveniente dal punto di vista del consumo usare resistenze di pull-up di valori più grandi sui pin di I/O come i segnali MCLR, I2C™, per switch e partitori di tensione. Per esempio, una tipica resistenza di pull-up per un segnale I2C è di 4,7 Kohm. Quando si ha trasmissione, il consumo è di circa 700 μa con una tensione di 3,3V. Incrementando il valore della resistenza fino a 10 Kohm, questa corrente può essere dimezzata. Si ha in compenso una diminuzione della velocità massima di trasmissione ma questo rimane un buon compromesso in molte applicazioni di low power. Questa tecnica è usata in particolar modo dove le resistenze di pull-up possono essere incrementate fino a valori di 100 Kohm o 1 Mohm.
SUGGERIMENTO 5: RIDURRE LA TENSIONE DI ALIMENTAZIONE
Ridurre la tensione di alimentazione del dispositivo VDD è utile per avere una riduzione complessiva di consumo. Durante il funzionamento, il consumo è prevalentemente influenzato dalla velocità di clock; durante la modalità sleep, il fattore più significativo è la corrente di perdita nei transistor. A tensioni più basse i sistemi di clock impongono un carico minore e i transistor disperdono meno corrente. È importante tener conto del fatto che ridurre la tensione di alimentazione riduce la frequenza massima ammissibile di funzionamento; bisogna selezionare una tensione ottimale, che permetta all’applicazione di funzionare alla massima frequenza richiesta dal progetto. Si può far riferimento ai fogli specifiche del dispositivo per stabilire la massima frequenza di funzionamento per una data tensione.
SUGGERIMENTO 6: UTILIZZARE UNA SORGENTE DI ALIMENTAZIONE ESTERNA PER IL NUCLEO DELLA CPU
Alcuni dispositivi, denominati con la lettera “J” (es. il PIC18F87J90 o il PIC24FJ- 64GA004) utilizzano un’alimentazione separata per il core della CPU. Questi dispositivi dispongono di un regolatore di tensione interno che può fornire la tensione necessaria. Disabilitando tale regolatore interno, la tensione di alimentazione può essere fornita dall’esterno; in alcuni casi, può essere più conveniente, perché il regolatore interno fornisce la tensione che permette la massima velocità. Se in un’applicazione la velocità non è così importante, si può disabilitare il regolatore interno. Gli esempi seguenti mostrano due applicazioni in cui può risultare utile disabilitare il regolatore interno.
Esempio 1: Sorgente di tensione costante
Usando una sorgente di tensione controllata o una batteria con una curva di scarica piatta, come una cella a bottone al litio, il regolatore può essere disabilitato e il nucleo alimentato direttamente dalla batteria attraverso un diodo; questo fornisce la caduta di tensione necessaria per ottenere la giusta alimentazione. Può essere necessario utilizzare un diodo zener con una tensione di polarizzazione diretta più elevata per quelle applicazioni che prevedono uno sleep mode, dal momento che la corrente che si consuma in sleep può essere troppo bassa per ottenere la caduta di tensione voluta dal diodo, ciò si traduce in una tensione troppo alta per il core.
Esempio 2: Sorgente di tensione non costante
Se la tensione per VDD non è costante, allora può essere necessario un regolatore; può essere utile selezionarne uno che fornisca al core una tensione più bassa del regolatore interno; inoltre, i dispositivi come l'MCP1700 (che assorbe una corrente a riposo di 1 μa), consumano meno dello stesso regolatore interno.
SUGGERIMENTO 7: BATTERY BACKUP PER I PIC MCU
Per un’applicazione in cui la tensione di alimentazione è fornita o dall’esterno o tramite una batteria di backup, è necessario essere in grado di passare dall’una all’altra senza l’intervento dell’utilizzatore. Ciò si può ottenere tramite appositi circuiti integrati, ma è anche possibile l’implementazione tramite un semplice circuito OR a diodi, come mostrato in Figura 1. Il diodo D1 evita che vi sia della corrente che percorre la batteria quando la tensione VEXT viene applicata. D2 evita che della corrente fornita dalla batteria percorra il circuito esterno quando VEXT viene eliminata e la batteria inizia ad alimentare il dispositivo. In più, è possibile monitorare VEXT e VBAT come input; ciò permette al micro di entrare in modalità low power quando viene tolta alimentazione o la corrente fornita dalla batteria è bassa. Al fine di evitare fenomeni transitori su VDD causati dai diodi quando si cambia l’alimentazione, ci si deve assicurare che vi sia una sufficiente capacità di disaccoppiamento su VDD (C1).
SUGGERIMENTO 8: USO DI PIC16 CON “ENHANCED MID-RANGE CORE”
L’Enhanced PIC16 mid-range core ha alcune caratteristiche adatte ai progettisti low-power. Nuove istruzioni permettono a molte applicazioni di essere eseguite in minor tempo. Ciò permette all’applicazione di passare più tempo in modalità sleep e diminuire il tempo di esecuzione a vantaggio dei consumi. È importante non trascurare queste nuove istruzioni quando si progetta con dispositivi che contengono il nuovo core. L’oscillatore del Timer1 e il WDT sono anche stati migliorati secondo la tecnologia nanoWatt XLP e consumano meno rispetto ai dispositivi precedenti.