Come utilizzare un controller di segnale digitale (DSC) per pilotare un LED RGB per una scheda pixel 2/2

Implementazione del Software
Il software è stato diviso in semplici moduli che implementano specifiche funzionalità o caratteristiche. Questo approccio permette un riadattamento del codice agli altri controller più facile rendendo alcuni blocchi software indipendenti dall'hardware. Per una più economica vendita di sistemi, potrebbe essere importante avere più piattaforme hardware. La struttura modulare facilita inoltre il testing visto che la fase di sviluppo iniziale, permette ai moduli del software di essere testati indipendentemente, rendendo più semplice la scoperta di bug.

Se desideri maggiori informazioni su questo prodotto Freescale, invia una richiesta ad Arrow utilizzando il seguente modulo.

Il software d'applicazione è diviso in sei moduli diversi. Ogni di questi moduli rappresenta un linguaggio della sorgente del file in C e il suo corrispondente file header. Le routine di basso livello, dipendenti dall'hardware, che accedono alle periferiche DSC, come la Serial Communication Interface, il convertitore da analogico a digitale, e modulazione a impulso (RS-485), ADC e PWM, sono rappresentati da RS-485, ADC, e differenti blocchi PWM nel diagramma sotto. Le funzioni di controllo sono implementate nel gestore del protocollo e nei file di gestione del colore. Infine, il gestore delle applicazioni chiama questi differenti funzioni di controllo.

Implementing a modular high-brightness LED matrix

Ecco una breve spiegazione dei differenti moduli del software:

Gestore Applicazioni
Il principale compito del gestore applicazioni è di chiamare le funzioni di inizializzazione e i diversi obiettivi dell'applicazione. Uno pseudo-codice del gestore applicazioni è a seguire:

//init DSC and peripherals
init_function_A()
init_function_B()
// …
while(1){
watch_dog()
color_manager()
protocol_manager()
}

Gestore del Protocollo
Il gestore del protocollo legge e interpreta i dati che arrivano dal modulo di comunicazione seriale del controller. Decodifica i messaggi ricevuti, una volta avuto un valido messaggio; e se il messaggio è valid può archiviare parametri sulla memoria o passare i comandi all'obiettivo di controllo del colore:

//Protocol State Machine
switch (state)
case Idle:
If SCI_buffer_flag != Empty
State = start_byte
break
case start_byte:
If SCI_buffer[data] == ‘@’
State = check_address
Else
State = idle
Break
//Other States …

Gestore del Colore
Il ruolo del gestore del colore è di leggere costantemente gli input dell'ADC e fare calcoli per determinare se è necessario un duty cycle del PWM per eguagliare la successione di colori desiderata. Riceve anche messaggi dal gestore del protocollo per aggiornare il colore desiderato. L'algoritmo usato per riconoscere il colore è un IP chiave e dovrebbe essere un'alta priorità su cui il venditore di applicazioni leggere dovrebbe concentrarsi. Le routine di movimento e gli effetti possono essere aggiunti in questo strato.

Funzioni di basso livello
Le tre funzioni di basso livello implementate sono l’RS-485, il PWM e l’ADC che si interfacciano con i pin si I/O e le periferiche DSC. Comunicano con algoritmi di controllo da variabili condivise, aggiornate sulle routine di interrupt.

L’RS485 si interfaccia con il modulo SCI e genera un interrupt ogni volta che un byte è ricevuto e memorizza i dati in un buffer. Quando un’operazione di gestione del protocollo è avviata, controlla lo stato del buffer per mostra i dati.

L’ADC genera interrupt ogni volta che una conversion è complete e memorizza i dati in un buffer. Quindi richiede un nuovo campione ADC da un canale differente – rosso,verde o blu. Cambiando costantemente i canali, l’ADC riempe i buffer dei tre colori con campioni DC che saranno filtrati per l’uso dell’operazione di gestione del colore.

In fine, il PWM imposta il corrispondente canale DSC PWM al duty cycle calcolato dall’operazione di gestione del colore.

Leggi la versione inglese: How to use a digital signal controller (DSC) to drive a high-brightness RGB LED for a pixel board 2/2

By Renato Frias

RICHIESTA DI CONTATTO
Se desideri maggiori informazioni su questo prodotto Freescale, invia una richiesta ad Arrow utilizzando il seguente modulo.

Scarica subito una copia gratis
Tags:,

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend