FT800 motore video per sistemi embedded

Nuovo articolo della Rubrica Firmware Reload dedicata a professionisti del settore e appassionati, che vogliono fare un salto nella storia dell'elettronica e delle grandi tecnologie leggendo articoli della passata rivista Firmware, da sempre un vero e proprio cult nel mondo dell'elettronica embedded e dei microcontrollori.

L’azienda FTDI Chip (Future Technology Devices International) ha recentemente introdotto uno straordinario componente elettronico: l’FT800 della serie EVE (Embedded Video Engine). Esso costituisce il primo chip di questa serie e, sicuramente, nasceranno nuovi prodotti e modelli nei prossimi mesi.

Introduzione

Nasce un nuovo modo di concepire la creazione della grafica GUI, modificandone costi e qualità per facilitarne i metodi e abbassando i tempi di sviluppo. Parliamo del chip FT800 che può essere collegato a display di tipo QVGA e WQVGA. Si tratta di un controllore grafico, di semplice utilizzo, adatto a un’ampia gamma di sistemi di visualizzazione, che riduce significativamente i costi totali del sistema, permettendo di realizzare interfacce grafiche di alta qualità, con funzioni visive, audio e tattili. L’eliminazione della memoria di quadro contribuisce a rendere più economica l’intera realizzazione finale. E’ proprio questo il punto di forza, ossia l’unione di tre funzioni diverse come quelle grafiche, sonore e tattili. Il chip FT800 è il “primogenito” della Figura 1. Il nuovo chip FT800 possiede una serie di componenti dedicati all’elaborazione grafica Embedded Video Engine (EVE).

Figura 1: Il nuovo chip FT800

Figura 1: Il nuovo chip FT800

Il risparmio economico delle applicazioni si deve alla eliminazione del “frame buffer”, con l’implementazione della tracciatura delle immagini, riga per riga, con risoluzione sub pixel di 1/16. In aggiunta, esso supporta i sensori resistivi tattili e dispone di un processore audio per l’elaborazione dei formati Midi e PCM. La combinazione delle tre tipologie di media (visive, audio e tattili) permette la realizzazione di complessi sistemi a costi molto più contenuti. Pur essendo un unico chip, l’FT800 possiede le seguenti caratteristiche:

  • Sistema video integrato
  • Sistema audio
  • Sistema touch-screen
  • Interfaccia parallela video RGB
  • Interfaccia seriale standard SPI o I2C
  • Oscillatore al quarzo

Prima dell’introduzione del chip FT800 il progettista, al fine di realizzare un sistema grafico evoluto a touch screen, doveva utilizzare, come minimo, i seguenti componenti:

  • Un microcontrollore di fascia alta, potente, costoso, a 32 bit, dotato di molte porte di I/O e di tanta memoria, con elevati costi di acquisto e gestione
  • Un sistema operativo con librerie grafiche avanzate, da programmare
  • Un sistema evoluto di memoria per il buffer video
  • Sintetizzatori audio e sistemi di touch screen

Con il chip in oggetto tutto questo non occorre più e lo sviluppatore ha adesso solo il bisogno di:

  • Un microcontrollore di qualsiasi fascia, anche ad 8 bit e con un numero limitato di porte di I/O
  • Un'area molto ristretta sul PCB, dal momento che il chip usa il package QFN
  • Una semplice interfaccia I2C o SPI, riducendo il numero delle porte di comunicazioni utilizzate
Figura 2: Le tre funzioni dell’FT800: visive, audio, tattili

Figura 2: Le tre funzioni dell’FT800: visive, audio, tattili

 

Figura 3: Diagrammi a blocchi dell’FT800

Figura 3: Diagrammi a blocchi dell’FT800

GLI OGGETTI

L’FT800 adotta un approccio ad oggetti che rende più semplice l’intera gestione del progetto. Tutti i singoli componenti grafici, testuali ed audio possono essere creati tramite interfaccia I2C o SPI, limitando al massimo il numero di porte di I/O utilizzate. La realizzazione del progetto grafico è resa dunque molto agevole e, dopo l’inizializzazione della memoria, il programmatore può controllare i singoli oggetti tramite i relativi attributi. In tale maniera possono essere utilizzati tutti i tipi di MCU, anche di bassa potenza di elaborazione.

Figura 4: Applicazione con FT800

Figura 4: Applicazione con FT800

 

Figura 5: Pinout dell’FT800

Figura 5: Pinout dell’FT800

CARATTERISTICHE

Il chip FT800 è caratterizzato da un consumo tipico di 35 mA in funzionamento normale, mentre in modalità ibernazione dissipa solamente 25 uA. Può espletare il suo funzionamento senza problemi in un intervallo termico compreso tra -40 °C e 85 °C in un package di tipo VQFN a 48 contatti. La modalità grafica gestisce i colori a 24 bit. Inoltre, la ROM contiene un ampio insieme di caratteri e di suoni, utilizzabili all’occorrenza.

Software

Il chip è corredato da una vastissima dotazione di guide, tutorial, documentazione e codici sorgenti, al fine di aiutare al massimo il progettista e lo sviluppatore nelle sue creazioni. Si può, in maniera abbastanza semplice, creare la propria “display list” ed incorporarla con gli strumenti a corredo, al fine di produrre un sofisticato sistema grafico. Per gli sviluppatori che utilizzano i sistemi di sviluppo della MikroElektronika, esiste anche una semplice ma potente libreria che permette di gestire la grafica, utilizzando il linguaggio ed il microcontrollore preferito. La creazione della grafica è molto semplice: è sufficiente, infatti, trascinare gli oggetti desiderati da visualizzare. Essi saranno tradotti in un listato sorgente testuale, pronto per essere compilato.

Figura 6: Interfaccia SPI e I2C

Figura 6: Interfaccia SPI e I2C

 

Figura 7: Connessione SPI

Figura 7: Connessione SPI

APPLICAZIONI

Con il chip FT800 non esistono più limiti alle applicazioni realizzabili. La semplicità di programmazione unita alla essenzialità dell’hardware necessario, abbassa drasticamente i costi e i tempi di sviluppo. Di seguito elenchiamo solo alcune delle infinite applicazioni realizzabili, dove il sistema descritto svolge un ruolo essenziale:

  • Visualizzatore intelligente di prezzi in un supermercato
  • Pannello utente per distributori di vendita (bibite, sigarette, etc)
  • Visualizzatore di foto
  • Trasporti pubblici
  • Equipaggiamento sportivo
  • Videogiochi
  • Display e guida per musei
  • Display GPS
  • Pannello per sicurezza e allarme
  • Pannello di misura (tensione, corrente, etc)
  • Applicazioni meteo
  • Strumentazione portatile
  • Pannelli di controllo industriali
  • Applicazioni domestiche
  • Applicazioni medicali
  • Controlli remoti
  • etc.
Figura 8: Scelta dell’oscillatore

Figura 8: Scelta dell’oscillatore

INTERFACCIA CON LA MCU

Il colloquio tra un microcontrollore (o microprocessore) e l’FT800 avviene in modo assai semplice, utilizzando un’interfaccia standard seriale di tipo SPI o I2C. Selezionando diverse modalità di funzionamento e collegando a massa o VCC alcune porte, è possibile scegliere la configurazione desiderata. L’interfaccia SPI lavora ad una frequenza fino a 30 MHz ed è possibile usare solamente la modalità 0. Invece l’interfaccia I2C opera fino ad una frequenza di 3,4 MHz ed il suo indirizzo è configurabile in un intervallo compreso tra 0x20 to 0x27.

Figura 9: Il sistema Touch screen

Figura 9: Il sistema Touch Screen

OSCILLATORE

Il clock è selezionabile attraverso un oscillatore interno o esterno. In caso di applicazioni che prevedono un uso intensivo di audio di buona qualità, è consigliato l’utilizzo del quarzo esterno.

Figura 10: Esempio di disegno di un orologio analogico

Figura 10: Esempio di disegno di un orologio analogico

 

Figura 11: Esempio di grafica e testo in overlay

Figura 11: Esempio di grafica e testo in overlay

IL MOTORE GRAFICO

L’esecuzione della “display list” avviene orizzontalmente. Dopo averla eseguita sequenzialmente viene creato un buffer di visualizzazione. I relativi pixel sono aggiornati quando un oggetto è visibile. Gli oggetti primitivi sono: linee, punti, rettangoli, bitmap, testo, grafici a barre, etc. Sono possibili effetti grafici di dissolvenze, rotazioni, ombreggiatura e altri. Un algoritmo effettua anche l’antialiasing dei pixel per ottenere un buon grado di smussatura. Eventuali immagini e foto possono essere traslate, scalate e ruotate.

Figura 12: Il Visual TFT della MikroElektronika

Figura 12: Il Visual TFT della MikroElektronika

IL SINTETIZZATORE AUDIO

L’FT800 dispone di un sofisticato processore audio che genera i suoni da una libreria memorizzata in ROM. Le operazioni di esecuzione suoni, e in generale della loro gestione, sono effettuate agendo su speciali registri. Alcuni di questi sono: REG_SOUND, REG_PLAY e REG_VOL_SOUND, REG_PLAYBACK_ START e REG_VOL_PB. Il sintetizzatore può suonare in polifonia fino a 64 voci. Alcuni suoni sono pre registrati come, ad esempio, i campioni di campane, allarmi, beep, click, cinguettii e toni DTMF.

Il sistema Touch Screen

Al fine di rilevare correttamente il tocco su un touch screen, il chip utilizza quattro tecnologie diverse:

  • Il Touch Screen engine
  • Il sistema ADC
  • La gestione degli assi
  • Il multiplexer ADC

Il chip prevede la connessione a touch screen di tipo resistivo. Esso gestisce inoltre il segnale attraverso quattro segnali (X+, X-, Y+, Y-). Il tocco sullo schermo altera la resistenza tra questi segnali, comunicandone la variazione al chip.

UN ESEMPIO

Il seguente esempio, composto da solo 8 istruzioni, disegna un cerchio rosso su sfondo nero:

wr32(RAM_DL + 0, CLEAR(1, 1, 1);

//Clear the screen to black wr32(RAM_DL + 4, COLOUR_RGB(160, 22, 22)); 

//Set the draw colour to red wr32(RAM_DL + 8, POINT_SIZE(320)); 

//Set size to 320/16 = 20 pixels wr32(RAM_DL + 12, BEGIN(POINTS)); 

//Start the point draw wr32(RAM_DL + 16, VERTEX2II(192,133, 0, 0)); 

//Draw circle 192 pixels from left and 133 down wr32(RAM_DL + 20, END()); 

//End the point draw wr32(RAM_DL + 24, DISPLAY()); 

//End the display list (28 bytes used) wr32(REG_DLSWAP, SWAP FRAME); 

//Make this display list active on the next frame

MIKROELEKTRONIKA E VISUAL TFT

Anche MikroElektronika mette a disposizione potenti librerie per gestire al meglio il chip TF800. In particolare, ha creato ad un prezzo non molto oneroso, un’applicazione per la creazione e la gestione facilitata di interfacce GUI per i display TFT. Si tratta di Visual TFT, realizzato per la generazione del codice per mikroC, mikroBasic e mikroPascal, per tutte le architetture di microcontrollori supportati: PIC, dsPIC30/33, PIC24, PIC32, AVR e ARM. Il software implementa un ambiente intuitivo, con possibilità di trascinamento e di rilascio dei componenti da utilizzare per le applicazioni, in modo molto semplice e veloce.

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend