Low Power Capacitive Sensing – Parte 2

capacitive sensing

Questo articolo rappresenta la seconda parte della serie "Low Power Capacitive Sensing" all'interno della Rubrica Firmware Reload di Elettronica Open Source. Si tratta di una serie di articoli tecnici che fanno parte della rivista cartacea Firmware, e contenenti argomenti di interesse per ingegneri elettronici, professionisti del settore e appassionati di progettazione elettronica. 

FUNZIONALITÀ DEL SISTEMA

A questo punto, è necessario definire quali sono i compiti e le funzionalità attive nelle diverse modalità operative del sistema. Nella modalità attiva abbiamo un utente che sta interagendo con il dispositivo. L’interfaccia utente deve essere funzionante al 100% e rispondere velocemente agli stimoli generati dall’utente stesso. Tutti gli ingressi dei sensori capacitivi devono essere campionati e i movimenti sui cursori e sulle rotelle controllati. La frequenza di campionamento in modalità attiva dovrà essere compresa tra 20 e 125 kHz per assicurare una certa reattività del sistema. La corrente in questa fase potrà variare a seconda delle applicazioni in un intervallo da 100 a 500μA. Per arrivare poi a ridurre la corrente in maniera efficace una volta che si passa in modalità inattiva è necessario che i task in esecuzione in modalità attiva siano interrotti, per questo vanno divisi in due categorie: i task che necessitano che la CPU sia attiva (come le macchine a stati e l’elaborazione dei dati) e quelli invece che non richiedono che la CPU sia attiva. Alla seconda categoria appartengono per esempio i campionamenti dei sensori capacitivi e le conversioni ADC. In modalità inattiva l’obiettivo principale è preservare la batteria. Sicuramente, andrà implementato un algoritmo low power di risveglio al tocco, per determinare quando è necessario passare in modalità attiva. Per esempio, si può decidere di campionare solo uno switch alla frequenza di 1-10Hz per verificare se un dito è stato appoggiato sulla piazzola capacitiva. Si può utilizzare un low power RTC per pianificare questi controlli. Il consumo di corrente in fase inattiva dovrà essere compreso tra 1 e 3 μA.

PROGETTAZIONE DELL’HARDWARE

I passi fondamentali per la progettazione dell’hardware sono:

  • Determinare il numero di aree capacitive necessarie al sistema
  • Selezionare una MCU low power con funzionalità di rilevamento capacitivo
  • Progettare il PCB

Il numero di zone capacitive dipende dalla complessità dell’interfaccia utente, ogni pulsante capacitivo necessita di un solo ingresso touch, mentre slider e control wheel sono solitamente realizzati con un numero di ingressi variabile da 4 a 8. Una volta decisi il numero di ingressi si procede alla scelta della MCU. L’MCU dovrà avere una modalità di sleep estremamente efficiente e supportare dei risvegli periodici (per esempio, potrebbe avere un Real Time Clock). Una famiglia di CPU molto indicata per queste applicazioni è la C8051F99x di Silicon Labs [1].

Le caratteristiche di questa famiglia “F99x” sono:

  • Flash integrata (8 KB), RAM integrata (512 byte) e una CPU che garantisce 25MIPS con 150μA/MHz di consumo in fase attiva
  • Acquisizione autonoma di ingressi capacitivi, con tempo di conversione inferiore a 40μs
  • Una modalità di sleep che porta il consumo a 300nA con LFO interno e tempi di risveglio di 2μs
  • Un ADC integrato da 10bit e 300Ksps oppure da 12 bit a 75ksps
  • 13/14 ingressi capacitivi in un contenitore ridotto

La scelta del dispositivo giusto può essere fatta anche valutando le architetture di MCU che portano ulteriori vantaggi, per esempio, la possibilità di campionare più canali in una singola conversione. Per esempio, la famiglia F99x permette di collegare internamente più ingressi capacitivi e analizzarli in una singola conversione. Questo può far risparmiare energia e tornare utile per la funzionalità di risveglio collegando insieme più sensori capacitivi. Ovviamente, questa funzionalità deve essere abbinata ad un layout dove tutte le aree capacitive abbiano la stessa dimensione e forma per evitare sbilanciamenti nella misura. La periferica di sensing capacitivo interna alla MCU F99x (denominata CS0) ha un oscillatore dedicato che controlla i tempi di conversione, indipendente dal clock di sistema. Questo permette di poter mettere la MCU in una modalità di sospensione quando la conversione è in corso. In più, la funzionalità di risveglio della CPU dalla modalità di sospensione al termine della conversione è già integrata. Se l’applicazione viene inserita in un ambiente soggetto a disturbi sarà necessario eseguire più conversioni per essere sicuri di avere una certa risoluzione sull’individuazione del tocco. La CS0 è in grado di eseguire una media delle conversioni basata su 1, 4, 8, 16 ,32 o 64 campioni, senza intervento della CPU.

REALIZZARE IL PCB

La parte finale è quella che prevede la realizzazione del PCB. Un ottimo spunto lo possono fornire le schede di valutazione che solitamente sono disponibili per le MCU con funzionalità di sensing capacitivo. Rimanendo sulla famiglia F99x, possiamo considerare la F990 Slider Evaluation Board. La sorgente di potenza è una batteria CR2032 accompagnata da una capacità di disaccoppiamento da 1μF. La capacità risulta necessaria perché la batteria ha una elevata impedenza in uscita e la sua corrente di picco è limitata. La capacità aiuta a risparmiare batteria e ad integrare le richieste di corrente impulsive. La MCU installata è la C8051F990, in un contenitore da 3x3 mm, con 16 pin di I/O. All’esterno gli unici componenti richiesti sono un pull-up per la linea di reset e una capacità per il pin di Vdd. La scheda è equipaggiata con 10 LED e con 10 resistenze di limitazione per la corrente. La parte più interessante della scheda sono le 6 zone capacitive utili a generare una interfaccia utente. Le zone sono realizzate con pattern a “v” in maniera da poter essere usate singolarmente come pulsanti o combinate come cursori. La parte superiore delle piazzole è rivestita in maniera da proteggerle dalle ESD e ottenere una superficie uniforme al tocco. La MCU della scheda dispone di 13 pin in grado di effettuare il sensing capacitivo, per il collegamento alle pad l’ideale sarebbe realizzare le piste di collegamento sul lato inferiore di una scheda a 2 facce oppure su un lato interno di una scheda multistrato. Un’interessante nota tecnica applicativa per comprendere come realizzare il PCB è la AN447: Printed Circuit Design Notes for Capacitive Sensing with the CS0 Module [2].

application note

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend