Ci soffermiamo in questo articolo su un approfondimento della tecnologia DirectDrive di Renesas per la gestione di display LCD con micro di fascia bassa.
I progressi tecnologici, da un lato, e la costante riduzione dei costi, dall’altro, hanno favorito la diffusione di LCD di piccole e medie dimensioni in molti ambiti di applicazione, anche nel settore embedded, in sostituzione dei tradizionali display monocromatici a segmenti. Tuttavia, non sempre i microcontrollori di fascia bassa per applicazioni a basso costo, ad esempio, dispongono di controller dedicati per la gestione di tali schermi a cristalli liquidi. In tutti questi casi, la tecnologia Direct Drive di Renesas offre un’interessante soluzione.
COME FUNZIONA
I microcontrollori tradizionali Renesas della serie H8S a 16 bit, gli H8SX a 32 bit e la più recente famiglia di MCU a 32 bit RX600 dispongono di controller DMA per il trasferimento dati senza intervento della CPU, di bus controller (BSC) per l’accesso a periferiche esterne e di timer unit (TPU o MTU) per la generazione di sequenze di segnali di controllo. Il controller DMA dei micro RX600, ad esempio, dispone di 4 canali indipendenti, uno spazio di indirizzamento di 4 GByte, un volume complessivo di dati per trasferimento di 64 Mbyte. Il controller di bus esterno dispone, invece, di fino a 8 segnali per la selezione di periferiche distinte e della possibilità di inserire wait-state programmabili nel ciclo di accesso. Il timer TPU ha risoluzione 16 bit e include fino a 6 canali. La Figura 1 mostra come le risorse elencate possono essere utilizzate per creare un controller di display LCD a colori nella soluzione DirectDrive di Renesas. L’immagine da visualizzare è memorizzata in una memoria esterna mentre lo schermo è accessibile, allo stesso modo, sul bus esterno del microcontrollore. Come si vede dalla Figura 1, il controller DMA della MCU viene quindi programmato per trasferire i dati dell’immagine dal buffer esterno allo schermo, mentre il timer serve a generare i corretti segnali di sincronizzazione orizzontale e verticale. Poiché il trasferimento dei dati avviene sotto supervisione del controller DMA, la CPU può continuare a eseguire dalla memoria interna del microcontrollore durante il periodo di refresh dello schermo. L’aggiornamento del buffer di memoria esterno può, invece, essere eseguito durante i periodi di blanking verticale dell’immagine.
La Figura 2 mostra un esempio di carico sul bus interno e su quello esterno nella gestione di un display di risoluzione QVGA (risoluzione di 320 x 240 pixel) con profondità di colore di 16 bit per pixel e frequenza di refresh di 60 Hz, corrispondente a un pixel di clock di 17.5 MHz. L’esempio si riferisce ad un’applicazione di animazione grafica con frequenza di immagine di 50 Hz con un microcontrollore della serie H8S. A una frequenza di lavoro della CPU di 35 MHz, il carico sul bus interno è solo del 30% mentre quello sul bus esterno del 60%. Adottando i microcontrollori a 32 bit delle serie H8SX o RX600, in grado di operare a frequenze fino a 100 MHz e dotati fino a 1 MByte di memoria flash on-chip, possono essere gestiti con analoghe prestazioni anche schermi di risoluzione maggiore, come WQVGA (320 x 480 pixel) o VGA (640x 480 pixel).
La Tabella 1 riporta una lista dei pannelli LCD più comuni che è possibile gestire con la tecnologia DirectDrive di Renesas.
UNA LIBRERIA GRAFICA A SUPPORTO
Oltre al progetto di riferimento hardware descritto in precedenza, Renesas rende disponibili i driver di basso livello per la gestione di schermi LCD mediante la propria soluzione DirectDrive ed una libreria grafica con API per la manipolazione di immagini. Il software può essere scaricato gratuitamente ed in formato sorgente dal sito web dell’azienda dietro accettazione della licenza d’uso. I driver, in particolare, includono funzioni di base per la gestione delle operazioni di lettura e scrittura del frame buffer esterno, l’inizializzazione dello schermo e il controllo della retro-illuminazione di questo; sono pure presenti, per le applicazioni touch-sensing, funzioni per la gestione di touch-screen resistivi a 4 fili. Le specifiche del pannello da gestire e le caratteristiche delle periferiche del controller DMA e del timer TPU del microcontrollore adottato, sono configurabili mediante file header. La libreria grafica, denominata GAPI (Graphics library with an API), implementa, invece, le API per alcune delle principali funzioni di gestione di immagini a più alto livello in molte applicazioni di controllo. Tra queste vi sono, ad esempio, funzioni per la creazione di pulsanti e barre di scorrimento, la copia delle immagini da e verso il frame buffer nei diversi formati 1 bpp, 4 bpp, 8 bpp indexed o compresso mediante encoding RLE, la creazione di font proporzionali e la sovrapposizione di testo a oggetti dell’immagine. Ne è pure disponibile un esempio di utilizzo in applicazioni real time con sistema operativo open source Free-RTOS. Soluzioni commerciali più complete sono poi ovviamente disponibili da terze parti. Swell Software ha, ad esempio, sviluppato la piattaforma PEG che include librerie grafiche (C/PEG, PEG+ e PEG Pro) ed ambiente di sviluppo basato su semplici operazioni di drag&drop (PEG WindowBuilder) per la creazione di GUI complesse in sistemi embedded. Sono correntemente supportati i microcontrollori Renesas delle serie H8S, H8SX, SH7263 e SH7264. Prototipi della GUI possono essere creati e verificati direttamente in ambiente Windows o Linux per accelerarne lo sviluppo prima del porting sul target embedded; emWin è invece la soluzione proposta da Segger; supporta, tra l’altro, linee vettorizzate, finestre e widget (come grafi, pulsanti, dials etc.), poligoni e cerchi, creazione e manipolazione di font di diverso tipo.
UN KIT DI VALUTAZIONE E SVILUPPO
Renesas rende disponibile un interessante kit di sviluppo per la valutazione della tecnologia Direct Drive per la propria applicazione. Il kit (Figura 3) include la scheda di valutazione con microcontrollore RX62N, debugger on-chip con interfaccia USB verso l’host e pannello LCD da 4.5 pollici con risoluzione WQVGA, licenza d’uso dell’IDE HEW (High-performance Embedded Workbench) per lo sviluppo software. La scheda di valutazione è dotata di micro R5F562N8BDBG, memoria SDRAM (128 Mbit), EEPROM I2C (16 Kbit) e flash SPI (16 Mbit) on-board, connessione USB e UART RS232, modulo LCD a caratteri a 2 linee.