I nuovi microcontrollori promettono di combinare costi di sistema inferiori con un maggior numero di opzioni per un livello di integrazione più elevato. Tuttavia, se da un lato consentono ai progettisti di ridurre i costi di hardware, produzione e magazzino, dall'altro la maggiore complessità dello sviluppo software può incidere sui tempi di commercializzazione e richiede una solida integrazione del rilevamento tattile e di altre funzioni di interfaccia utente all'interno di un singolo microcontrollore.


Consideriamo innanzitutto l'origine di questi aspetti. Prendiamo ad esempio il rilevamento tattile capacitivo. Quando i tasti sensibili al tocco furono introdotti per la prima volta, i progettisti si resero subito conto che non era semplice come implementare i tradizionali pulsanti. I tasti a sfioramento devono essere gestiti allo stesso modo dei sensori analogici. Il rumore irradiato, ovvero il rumore che può essere condotto da fonti ambientali come elettrodomestici, lampade fluorescenti compatte, alimentatori, telefoni cellulari e motori, richiede un'attenta gestione. Per ottenere tasti robusti e funzionali, è necessario applicare tecniche software come il rilevamento del contorno, il filtraggio, i filtri di debouncing e il controllo della velocità di variazione, oltre a un buon instradamento dell'acquisizione del segnale. Attualmente, a questo sistema di interfaccia uomo-macchina si aggiunge la necessità di rigenerare un display LCD segmentato o grafico quando viene ricevuto un input dall'utente. La ricreazione di elementi grafici, come forme geometriche o testo, su un display TFT o OLED ha storicamente richiesto la larghezza di banda di un processore. È inoltre importante considerare le applicazioni di interfaccia uomo-macchina che integrano input tramite touchscreen oltre al display grafico e ai tasti a sfioramento, come nel termostato in Figura 1. Infine, in genere sarà necessaria anche un'interfaccia di comunicazione come l'USB.


La sfida, quindi, consiste nel consentire l'elaborazione in tempo reale dell'input dell'utente proveniente da tasti a sfioramento, un sensore touchscreen e la comunicazione dati USB, nonché l'aggiornamento del display. La soluzione si articola in due categorie fondamentali per quanto riguarda l'hardware e il software sottostanti.


Aumento dell'integrazione di 2ppImplementazione hardware:
Alcuni microcontrollori combinano un controller LCD e periferiche di rilevamento tattile su un singolo chip, ma il controller LCD in genere gestisce un display segmentato anziché un LCD grafico.
L'ultima generazione di microcontrollori, come il PIC24FJ256DA210 mostrato in Figura 2, porta l'integrazione a un nuovo livello combinando un controller per display grafici, una periferica USB 2.0 On-The-Go e una speciale periferica analogica utilizzabile per il rilevamento tattile. Per supportare i display grafici, il PIC24FJ256DA210 incorpora una tabella di ricerca dei colori, un'ampia RAM da 96 KB, un'unità di elaborazione grafica (GPU) e un'interfaccia diretta per display STN, TFT e OLED. L'ampia RAM integrata consente di memorizzare dati grafici a 256 colori a 8 bit per pixel, permettendo la visualizzazione di un display QVGA 320x240 all'interno della RAM integrata del chip. Le tavolozze di colori utilizzate nella tabella di ricerca dei colori possono essere modificate con un singolo comando per utilizzare diversi set di rettangoli, testo ASCII e immagini PNG decompresse a scopo ricreativo. Ciò riduce l'utilizzo della CPU allo 0%.


La Figura 2 mostra anche la periferica analogica Unità di Misurazione del Tempo di Carica (CTMU). Il rilevamento tattile capacitivo è una delle numerose applicazioni offerte dalla CTMU. La CTMU fornisce una sorgente di corrente costante con un timer che può essere utilizzata per caricare un pannello sensore. La tensione del pannello può essere misurata utilizzando il convertitore analogico-digitale (ADC). Quando l'utente appoggia un dito sul pannello, la variazione di capacità viene registrata come una variazione di tensione dall'ADC. Nella sua implementazione più semplice, ogni canale ADC può essere collegato a un ingresso di un tasto tattile. Con 24 canali ADC, il PIC24FJ256DA210 fornisce un numero sufficiente di canali tattili capacitivi per soddisfare le esigenze della maggior parte delle applicazioni.


È necessario considerare un altro aspetto hardware. Se l'applicazione prevede un input touchscreen resistivo e tasti a sfioramento, il display LCD grafico viene sovraccaricato con un sensore touchscreen resistivo per un accesso rapido ai menu. Se il controller touchscreen è integrato nel microcontrollore principale, le uscite del sensore touchscreen, che in genere hanno 4 o 5 fili, possono essere collegate ai canali analogici del microcontrollore. In questo caso, le risorse del convertitore A/D del microcontrollore sono condivise tra le funzioni dei tasti a sfioramento e del touchscreen. Le misurazioni del convertitore A/D vengono utilizzate per stimare le coordinate XY rilevate sul touchscreen.


Implementazione software:
In genere, il firmware per i driver del display grafico e per il rilevamento tattile capacitivo sarà disponibile come librerie separate. L'integrazione efficace di queste librerie richiede una routine principale che funzioni essenzialmente come un sistema operativo in tempo reale (RTOS) per stabilire le priorità e la frequenza di servizio per ogni attività. Per le attività che condividono risorse hardware comuni, la routine principale deve anche stabilire un meccanismo per aggiornare in modo non distruttivo i registri di controllo e di dati per la risorsa condivisa prima di passare da un'attività all'altra. Nell'esempio precedente, sia i sensori touchscreen che i tasti a sfioramento alimentano il convertitore A/D. La frequenza di campionamento del convertitore A/D, i canali da campionare e il numero di campioni richiesti variano a seconda del sensore touchscreen e dei tasti. Pertanto, la routine principale deve salvare questi parametri prima di passare da un'attività all'altra.


Maggiore integrazione 3PPPoiché l'utente può fornire input sia tramite il touchscreen che tramite i tasti a sfioramento in qualsiasi momento, la routine principale potrebbe dover stabilire una divisione temporale per consentire a entrambi i sensori di effettuare scansioni con sufficiente frequenza. Il display potrebbe richiedere aggiornamenti periodici se, ad esempio, l'applicazione visualizza grafica animata sullo schermo.
Se il display viene aggiornato solo quando l'utente effettua selezioni dal menu, non vi è alcuna contesa di risorse della CPU tra il rilevamento del tocco e le funzioni del controller del display. Il dispositivo di esempio (PIC24FJ256DA210) dispone di hardware dedicato per l'accelerazione grafica, quindi la divisione temporale tra le funzioni touch e grafiche non rappresenta più un problema. Su questo dispositivo, il rendering di un riquadro, una linea o del testo ASCII richiede un solo comando generato dalla CPU. È disponibile un progetto dimostrativo che mostra l'integrazione tra i tasti a sfioramento, il sensore touchscreen e il display grafico utilizzando le librerie software sottostanti. Può essere scaricato gratuitamente insieme alla libreria mTouch™ Capacitive-Touch ed eseguito sulla scheda di sviluppo PIC24FJ256DA210 mostrata in Figura 3.


Oltre al rilevamento tattile, è possibile integrare su un singolo chip anche altre funzioni. Ad esempio, la periferica CTMU può essere utilizzata per la misurazione della temperatura in strumentazione medica, per la misurazione del tempo e per altre funzioni. In un'applicazione come un termostato, la periferica CTMU può essere utilizzata sia per la misurazione della temperatura che per il rilevamento tattile, tramite un diodo esterno. Poiché la misurazione della temperatura è richiesta solo occasionalmente, questa periferica può essere impiegata per entrambe le funzioni.


Comunicazioni USB

L'integrazione di USB e del rilevamento tattile è relativamente semplice se si seguono alcune regole basilari. Quando l'applicazione si connette a un host USB, attraversa una fase di enumerazione durante la quale la larghezza di banda della CPU è fortemente dedicata all'esecuzione della funzione USB. Le funzioni di rilevamento tattile dovrebbero essere ripristinate entro un paio di minuti dal completamento della fase di enumerazione. Una volta completata l'enumerazione, le funzioni USB consumano una quantità molto ridotta di larghezza di banda della CPU, in genere inferiore al 2%. A questo punto, la routine principale può scegliere di gestire la funzione di ricezione USB periodicamente, circa ogni millisecondo, oppure passare a un metodo basato sugli interrupt.


Molte applicazioni con interfacce touch hanno iniziato a integrare il feedback aptico. L'integrazione dell'aptica in un'applicazione è ben più di una semplice sfida meccanica. Il feedback aptico richiede in genere una semplice periferica a modulazione di larghezza di impulso (PWM) per controllare un piccolo vibratore o un motore. È probabile che, in alcune applicazioni, la periferica PWM integrata venga utilizzata anche per pilotare un altoparlante. In questi casi, un'integrazione efficace potrebbe richiedere basi temporali separate per il canale PWM che controlla il motore aptico e per quello che controlla l'altoparlante.


In conclusione:
sebbene l'integrazione del display grafico e delle funzioni di rilevamento tattile su un singolo chip riduca i costi di sistema, la complessità del software può incidere significativamente sui tempi di commercializzazione. L'implementazione è semplificata scegliendo una piattaforma a microcontrollore che supporti librerie grafiche, USB e software di rilevamento tattile progettato e testato per l'interoperabilità e una comprovata integrazione robusta.

Autore: Rishi Vasuki, Direttore Marketing di Prodotto,
Divisione Architettura Microcontrollori Avanzati, Microchip Technology.

 

Maggiori informazioni o un preventivo