Opzioni di configurazione per l’implementazione di LED con un sensore capacitivo

Il sensore capacitivo CAP1114 RightTouch può essere usato per implementare LED in grado di comportasi seguendo diverse moddalità operative

Pubblicato il 14 settembre 2015

Nella progettazione di una scheda è di solito prevista una certa flessibilità riguardo alla modalità di connessione dei LED. Due metodi diffusi di utilizzo dei LED prevedono il primo una sorgente esterna di tensione che generi la corrente necessaria a far illuminare i LED e il secondo l’impiego di un sensore capacitivo come sorgente delle corrente necessaria. In alcuni progetti, i LED vengono accesi dalla pressione di pulsanti, mentre in altri i LED vengono controllati dall’host.

Il sensore capacitivo CAP1114 RightTouch di Microchip Technology è in grado di gestire tutte queste opzioni.

MCA628_AN213_FIG1

Fig. 1 – Esempio di sorgente esterna di tensione per LED

Direzione e uscita

I pin da uno ad otto sul LED possono essere utilizzati come GPIO o come LED. Per utilizzare i pin al fine di pilotare i LED, i pin stessi devono essere configurati come uscite. Il registro di direzione 70h dei LED e GPIO determina la direzione dei pin LED, con ogni bit che corrisponde a un LED. Per esempio, il bit 0 corrisponde alla direzione del LED1, il bit 1 a qualla di LED2 e cosi via. Uno ‘0’ nella posizione del bit configura il bit associato come un input, che quindi non può essere utilizzato per pilotare un LED. Un ‘1’ nella posizione del bit configura il pin associato come output. Il default per questo registro è 00h, che configura i pin come input.

I pin LED possono essere connessi in configurazione open-drain o push-pull. Il registro di tipo di uscita LED 71h controlla il tipo di output per i pin LED, con ognuno dei bit corrispondente a un LED.

Per esempio, il bit 0 corrisponde al tipo uscita di LED1, il bit 1 corrisponde al tipo di uscita di LED2 e cosi via. Uno ‘0’ nella posizione del bit configura il pin associato come open-drain, mentre un ‘1’ nella posizione del bit configura il pin associato come push-pull. Il default per questo registro è 00h, che configura i pin come open-drain.

I pin nove e undici sono di sola uscita, quindi non hanno un bit di direzione associato. Sono anche uscite solo di tipo open-drain e quindi non hanno un tipo di output ad essi associato.

MCA628_AN213_FIG2

Fig. 2 – Esempio di erogazione di corrente verso il LED

Polarità

I LED possono essere configurati in modo tale che quando il pin LED è pilotato verso lo ‘0’ logico, il LED risulta su on e il pin LED di CAP1114 assorbe la corrente del LED. Se il pin LED è pilotato verso l’‘1’ logico, , il LED sarà off e non vi sarà flusso di corrente. Questo si può evincere dall’esempio riportato in figura 1, relativo a un generatore di tensione esterno.

Dato che i LED possono essere anche installati in configurazione opposta, il CAP1114 integra un apposito controllo per determinare la polarità logica, come si può vedere nell’esempio riportato in figura 2 relativo all’erogazione di corrente da parte del sensore RightTouch.

I registri di polarità dei LED 75h e 76h determinano la polarità dei pin LED, dove ogni bit corrisponde a un LED. Uno ‘0’ nella posizione del bit inverte il segnale sul pin LED associato. Un ‘1’ nella posizione del bit lascia il segnale inalterato. Il default per questi registri è 00h, che configura i pin come invertiti.

I LED possono essere collegati al corrispondente ingresso del sensore capacitivo in modo che l’accensione del LED possa essere controllata mediante tocchi e rilasci sul sensore tattile capacitivo (oppure dall’host). I pin LED nove e dieci possono essere collegati al cursore (sensori da otto a undici). Se collegato, il pin nove è attivato quando viene rilevato un down event (pressione) e il dieci è attivato quando viene rilevato un up event (rilascio). Il collegamento è controllato dal registro 80h (bit 7).

Il registro 80h del collegamento del sensore al LED determina se il LED è collegato al relativo input del sensore, con ogni bit corrispondente ad un LED. Uno ‘0’ nella posizione del bit indica che il LED non è collegato al sensore, e viene controllato attraverso il registro di controllo dell’uscita del LED. Un ‘1’ nella posizione del bit indica che il LED è collegato al sensore. Il default per questo registro è 00h, che configura i LED come non collegati al sensore. Quando un LED è collegato al sensore, il corrispondente bit nel registro di controllo di uscita LED viene ignorato, e quindi il LED collegato non può essere controllato via host.

Per LED che non siano collegati a sensori, i registri di controllo dell’uscita 73h e 74h determinano se il LED sia attivato o meno. Uno ‘0’ nella posizione del bit indica che il LED non è attivato. Un ‘1’ nella posizione del bit indica invece che il LED è attivato. Il default per questi registri è 00h, che configura i LED in maniera che non vengano attivati.

MCA628_AN213_FIG3

Fig. 3 – Esempi di comportamento Direct

Configurazione e comportamento

I driver LED di CAP1114 prevedono quattro comportamenti del LED che possono essere usati per controllare il funzionamento dello stesso, sia che il LED è attivato dall’host sia che venga azionato mediante un tocco al sensore collegato. La luminosità dei LED, come pure la frequenza di transizione dallo stato di on a quello di off, possono essere programmati per ciascuno dei comportamenti previsti.

I quattro comportamenti sono: Direct, quando il LED viene commutato solo on o off; Pulse one nel quale il LED è configurato per la dissolvenza in accensione/spegnimento (fade on-off-on) per un determinato numero di volte programmabile; Pulse two nel quale il LED è configurato per la dissolvenza mentre è pilotato, e Breathe, nel quale il LED è configurato per una dissolvenza in accensione/spegnimento continua mentre è pilotato.

I registri di comportamento del LED da 81h a 83h controllano il tipo di comportamento assegnato a un LED, dove ogni due bit corrispondono ad un LED. Per esempio, i bit da 1 a 0 corrispondono a tipo di comportamento del LED1, i bit da 3 a 2 corrispondono al tipo di comportamento del LED2, e cosi via. I bit vengono decodificati al fine di determinare il tipo di comportamento. Il default per questi registri è 00h, che configura ogni LED affinché utilizzi il comportamento Direct. Esempi di questo comportamento sono illustrati in figura 3.

MCA628_AN213_FIG4

Fig. 4 – Esempi di comportamento Pulse two

Per il comportamento Pulse one, gli impulsi possono essere innescati in modo che si avviino quando il LED è attivato, cioè nel momento in cui un tocco venga rilevato o l’host imposti il bit di controllo di uscita del LED, oppure quando il LED venga disattivato, come nel caso in cui venga rilevato un rilascio oppure si verifichi l’azzeramento del bit di controllo dell’uscita del LED da parte dell’host.

Il pin 7 del registro del periodo (84h) relativo a Pulse one controlla l’attivazione di questo comportamento. Il default per questo bit è 0, che configura il comportamento su Pulse one affinché inizi a pulsare quando sia rilevato un tocco o impostato il bit di pilotaggio. Se il bit è impostato su 1, il comportamento Pulse one si attiva quando viene rilevato un rilascio o il bit di pilotaggio non sia stato azzerato.

Queste impostazioni verranno applicate a tutti i LED che hanno il loro comportamento impostato su Pulse one. Il numero di impulsi relativi ai comportamenti Pulse one e Pulse two sono controllati dai bit presenti nel registro di configurazione 88h dei LED. I bit da cinque a tre sono decodificati per determinare il numero di impulsi relativi a Pulse two mentre i bit da due a zero sono decodificati per determinare il numero di impulsi relativi a Pulse one. Alcuni esempi dei comportamenti di tipo Pulse two sono mostrati in figura 4.

La luminosità dei LED è determinata dal duty cycle. Un LED può essere nello stato di on oppure in quello di off. Per far si che un LED appaia meno luminoso, viene utilizzata la modulazione di tipo PWM (Pulse Width Modulation). Minore è la durata del periodo di on di un LED è più la luminosità di quest’ultimo appare attenuata. Ognuno dei quattro comportamenti ha proprie impostazioni per i duty cycle minimi e massimi. Per default, per tutti i comportamenti fissano il massimo e il minimo duty cycle al 100% e allo 0% rispettivamente.

La frequenza di transizione indica la velocità del LED nel passaggio da on a off e nuovamente a on. Per i comportamenti Pulse one e Pulse two, la frequenza di transizione per ogni impulso è controllato dai periodi di Pulse one e Pulse two. Per il comportamento Breathe, la frequenza di transizione viene controllata dal relativo periodo. Per il comportamento Direct, la frequenza di transizione viene determinata dalla velocità di salita, dalla velocità di discesa e dal ritardo di spegnimento.

Nel sensore CAP1114, il ritardo di spegnimento può essere impostato a 5s. Dato che la variazione di velocità sono immediate, riducendo l’impostazione del ritardo di spegnimento mentre un LED si trova in un comportamento che prevede un lungo ritardo di spegnimento contribuirà a diminuire il ritardo.

Nel sensore CAP1114, se si desidera un tempo di discesa non nullo, il tempo di salita deve essere impostato in modo che risulti uguale al tempo di caduta desiderato. Ciò dovrebbe essere fatto come una scrittura nel registro dopo che il LED è stato attivato e prima che lo stesso sia stato disattivato.

Burke Davison, Applications engineer, Microchip Technology



Contenuti correlati

Scopri le novità scelte per te x