Una libreria per applicazioni touch-sensing

Come trasformare le MCU S08 e V1 ColdFire di Freescale in sensori touch-sensing. Di recente, il mercato ha visto una crescente diffusione delle soluzioni touch sensing, non soltanto in ambito consumer ma anche nel settore industriale. E’ sempre più frequente trovare dispositivi con tastiere, rotary switch o slider di  tipo capacitivo piuttosto che meccanico.

Tra i vantaggi principali delle tecnologie touch sensing vi sono una riduzione dei costi di progetto e di materiale, la maggiore affidabilità (è possibile, ad esempio, sigillare l’apparecchiatura dall’ambiente esterno in presenza di condizioni ostili), oltre ad una migliore facilità di utilizzo ed una attrattiva maggiore per il cliente. Non stupisce, quindi, una crescente offerta di soluzioni per applicazioni touch sensing da parte dei principali produttori di componenti elettronici per sistemi embedded.

LA LIBRERIA TSS: CARATTERISTICHE GENERALI

Freescale, in particolare, ha rilasciato la versione della libreria TSS (Touch Sensitive Software) per lo sviluppo di applicazioni touch sensing: la release supporta i processori ad 8-bit delle serie S08 e le CPU a 32-bit della famiglia V1 ColdFire. E’ correntemente supportata all’interno dell’ambiente di sviluppo CodeWarrior. Come mostrato in figura 1, la libreria si basa su di una struttura a più livelli che vanno dalla misura della capacità dell’elettrodo, alla decodifica del tipo di periferica touch sensing da interfacciare; per il principio di funzionamento di un elettrodo touch sensing di tipo capacitivo si veda il riquadro di approfondimento.

Figura 1: struttura della libreria TSS.

Figura 1: struttura della libreria TSS.

Sono correntemente supportate periferiche come keypad, rotary slider e slider lineari ed è in fase di sviluppo il supporto per touch-pad, matrici ed ITO. La struttura modulare della libreria, del resto, facilita l’integrazione di funzioni definite direttamente dall’utente. E’ supportato un numero configurabile di elettrodi fino a 64. Il codice sorgente è scritto quasi interamente in conformità alle raccomandazioni MISRA (Motor Industry Software Association), spesso adottate come linea guida per la programmazione, dalla misura della capacità dell’elettrodo, alla decodifica del tipo di periferica touch sensing da interfacciare; per il principio di funzionamento di un elettrodo touch sensing di tipo capacitivo si veda il riquadro di approfondimento. Alcune delle caratteristiche della libreria, come ad esempio il numero di elettrodi utilizzati, il tipo di periferica, l’algoritmo di misura della capacità dell’elettrodo, sono configurabili in funzione della particolare applicazione; un file header SystemSetup.h definisce la configurazione scelta. Per facilitare il processo, un’applicazione dedicata, System Setup Creator, consente di modificare il file di configurazione e generare automaticamente il codice necessario mediante semplice interfaccia grafica. Per la misura della capacità dell’elettrodo sono implementati i metodi ATL e CTS (vedi riquadro di approfondimento); in entrambi i casi è possibile abilitare un filtro di misura che consente di rigettare valori oltre una definita soglia e che si suppongono essere affetti da rumore ambientale. L’algoritmo ATL (Advanced Touch Logic) è disponibile in codice sorgente mentre il metodo CTS (Capacitive Turbo Sensing), caratterizzato da tempi risposta inferiori e maggiore immunità al rumore, è incluso soltanto come libreria precompilata. Il valore di capacità misurato viene filtrato mediante IIR per determinare la soglia di riferimento per il riconoscimento del contatto del dito umano sull’elettrodo. La libreria supporta pure funzionalità di riconoscimento di fault, come corto-circuiti dell’elettrodo verso massa o alimentazione; è prevista la possibilità di dichiarare call-back specifiche chiamate in risposta a fault.

RISORSE E PRESTAZIONI

Le risorse hardware del microcontrollore necessarie per il supporto dell’applicazione touch sensing, nel caso di algoritmo ATL, sono un timer e, per ogni elettrodo, una porta di I/O (GPIO, KBI o PTI) ad 1-bit; in alternativa può essere usata una periferica TPM (Timer/Pulse-Width Modulator) con un canale per ogni elettrodo. Per i dettagli sulla struttura delle porte GPIO e delle periferiche TPM si può fare riferimento al data sheet di una generica MCU della seria S08. Nel caso di algoritmo CTS, è utilizzata invece una sola porta GPIO ad 1-bit per elettrodo. Le funzioni di base della libreria, ad esclusione del decoder di periferica e del filtro di misura, occupano circa 3,7 Kbyte di memoria codice e 30 byte di memoria dati su microcontrollori S08. L’acquisizione di un singolo elettrodo, mediante algoritmo ATL su porta GPIO, richiede 33 byte in memoria codice e 10 byte in memoria dati. I decoder per keypad o slide occupano, invece, ognuno circa 1 Kbyte di memoria dati. Le prestazioni, in termini di tempo di risposta e carico della CPU, dipendono dal tipo di algoritmo selezionato per la misura della capacità dell’elettrodo, dal suo valore e da quello della resistenza di pull-up esterna oltre che dal numero di elettrodi connessi. Per un elettrodo di capacità 39 pF, il tempo di campionamento mediante schema CTS è circa 20.6 µs mentre vale 40.4 µs qualora si adotti l’algoritmo ATL.

SOLUZIONI DI VALUTAZIONE E SVILUPPO

Per  valutare caratteristiche e prestazioni della libreria, Freescale rende disponibile alcune soluzioni di sviluppo. La TSSELECTRODEEVM, ad esempio, è una semplice scheda di espansione compatibile con la maggior parte dei kit di valutazione per MCU; dispone di elettrodi arrangiati per realizzare un semplice tastierino, un rotary slider ed uno lineare. La Touch Sensing Software evaluation board TSSEVB (vedi figura 2) integra, invece, già al suo interno, oltre agli elettrodi, un microcontrollore della serie S08LG32, convertitore RS232-USB, alimentazione mediante USB, porta BDM, pannello LCD e buzzer; sono disponibili esempi di riferimento per facilitare lo sviluppo di applicazioni proprie. Per quanti intendano sviluppare applicazioni custom, segnaliamo, inoltre, l’Application Note AN3863 "Designing Touch Sensing Electrodes" che riporta le principali linee guida per il progetto del layout di elettrodi capacitivi. Durante i test di laboratorio, poi, può spesso risultare utile l’applicazione per PC denominata Proximity Sensing Interface che permette di visualizzare su interfaccia grafica i valori di capacità degli elettrodi correntemente misurati. L’applicazione richiede la connessione alla MCU mediante BDM, mentre la comunicazione con il PC host si basa su Freemaster (versione 1.3 o successiva). Funzionalità analoghe presenta pure il tool Touch Sensing Software Electrode Graphing Tool, che richiede l’adozione della scheda DEMOJM con l’appropriato firmware per la gestione della comunicazione, da un lato, con il PC host su porta USB e, dall’altro, con la MCU utente mediante linea IIC.

Figura 2: la scheda di valutazione TSSEVB.

Figura 2: la scheda di valutazione TSSEVB.

 

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend