Controllare fino a 32 display LCD utilizzando una sola linea e senza scrivere una riga di codice? Ora è possibile con la scheda SXLCD!
Cosa è SXLCD?
La scheda SXLCD è un hardware ideato per permetterti di controllare un display LCD con
interfaccia Hitachi 44780, utilizzando una linea seriale (sia TTL che RS232).
Caratteristica particolarmente interessante è a possibilità di collegare di più schede SXLCD
(fino a 32) su una unica linea seriale e, grazie all'indirizzamento software, poter inviare comandi indipendentemente ad ogni singola unità o a gruppi di unità.
Oltre a permettere la scrittura sul display la scheda consente anche di modulare la luce di backlight (retroilluminazione), in modo da permettere di controllare i consumi secondo le proprie esigenze.
La scheda la SXLCD presenta quindi molteplici vantaggi che vanno dalla notevole semplificazione nella scrittura di programmi e firmware per microcontrollori al grande risparmio di linee di I/O, grazie all'adozione della comunicazione seriale.
In alternativa la scheda SXLCD può essere utilizzata anche come interfaccia hardware del tutto trasparente, in quanto è disponibile un connettore che riporta tutti i segnali utili per il controllo del display: in questo caso il vantaggio di utilizzare l'interfaccia è dato dal fatto che tutta l'elettronica per alimentazione, backlight e comunicazione è già presente sulla scheda ed inoltre i segnali LCD sono disponibili su un connettore 2x5 facilmente integrabile.
Descrizione hardware
Fisicamente SXLCD è una scheda di ridotte dimensioni (41x45mm) e presenta da un lato un doppio connettore a 16 poli per il collegamento a sandwich di
un display LCD; dal lato opposto è alloggiata l'elettronica di controllo ed una serie di connettori e jumper per portare l'alimentazione, il segnale
seriale e per la configurazione della scheda stessa.
Connettore JP6 e JP7
Il doppio connettore a 16 poli, identificato dalle sigle JP6 e JP7, è stato predisposto per il collegamento di LCD con due diversi tipi di piedinature. In questo modo la scheda è utilizzabile con una grande varietà di display, consentendo di scegliere il modello più adatto alle proprie esigenze. Area SX fornisce già una scelta tra vari LCD con diverse topologie: 8x2, 16x2, 20x2, 20x4
Nella tabella che segue è riportata la piedinatura del connettore su cui viene collegato il display:
Pin |
Connettore JP6 |
Connettore JP7 |
1 |
GND |
+VBL |
2 |
+VLCD |
-VBL |
3 |
VO (contrasto) |
GND |
4 |
RS |
+VLCD |
5 |
GND |
VO (contrasto) |
6 |
EN |
RS |
7 |
NC |
GND |
8 |
NC |
EN |
9 |
NC |
NC |
10 |
NC |
NC |
11 |
D0 |
NC |
12 |
D1 |
NC |
13 |
D2 |
D0 |
14 |
D3 |
D1 |
15 |
+VBL |
D2 |
16 |
-VBL |
D3 |
Connettori di segnale J2 e J3
Il connettore a 10 poli J2, da cui la SXLCD riceve il segnale seriale e l'alimentazione, è compatibile con molte delle schede prodotte da Area SX quali la
SX3000, la SX18-FOX e la SX18-BasicX.
Di seguito è riportata la disposizione dei pin di questo connettore:
J2 pin |
Segnale |
1 |
RX input |
2 -3- 4 - 5 - 6 - 7 -8 |
NC |
9 |
Vcc +5V |
10 |
GND |
Accanto al connettore J2 è presente un secondo connettore a 10 poli, identificato dalla sigla J3, su cui
sono riportati direttamente tutti i segnali del display.
Per utilizzare direttamente quest'interfaccia è necessario rimuovere il microcontrollore U2 dallo
zoccolo al fine di evitare cortocircuiti con il port a cui vengono connesse le linee del display.
Di seguito viene riportato il pinout del connettore J3:
J3 pin |
Segnale |
1 |
D0 |
2 |
D1 |
3 |
D2 |
4 |
D3 |
5 |
RS |
6 |
EN |
7 |
BL BackLight |
8 |
NC |
9 |
Vcc +5V |
10 |
GND |
Gestione della retroilluminazione (backlight)
La retroilluminazione (backlight) del display può essere gestita sia attraverso comandi seriali sia via hardware.
Con la gestione hardware è possibile solamente forzare la retroilluminazione ad essere sempre accesa alla massima luminosità o sempre spenta.
Molto più interessante è la gestione tramite comandi seriali: in questa modalità è possibile infatti modulare finemente il livello della retroilluminazione consentendo da un lato di ottimizzare la visibilità in relazione ai consumi, dall'altro di poter realizzare effetti di "accensione progressiva" che attirino l'occhio di chi guarda.
Ponticelli di configurazione
La scheda presenta due ponticelli di configurazione, identificati dalle sigle W1 ed S1.
- Il ponticello W1 se chiuso permette di fozare la backlight a rimanere permanentemente accesa
- Il ponticello S1 consente di scegliere il livello della seriale. Le possibilità sono: seriale TTL (livelli 0,+5V), che ci consente di collegare la SXLCD
direttamente alla seriale di qualsiasi microcontrollore (ad esempio PIC, Rabbit , BasicX, Fox) e seriale RS232 (-12V,+12V), per permetterci di collegare sul pin 1 di J2 un segnale con
livelli di tensione RS232, ad esempio il polo 3 della seriale di un PC, senza dover interporre circuiti aggiuntivi.
Il protocollo software
La scheda SXLCD utilizza un protocollo seriale con velocità a 19200 baud, 8 bit di dati, nessuna parità e 1 bit di stop.
La comunicazione avviene in una unica direzione, dal "master" (PC o microprocessore che pilota la scheda) verso
la SXLCD; non c'è quindi alcun ritorno ai comandi inviati.
In questo modo si ha la possibilità di collegare alla linea seriale più di un display (fino a 32) che può essere pilotato indipendentemente dagli altri.
Tutti i comandi inviabili alla SXLCD sono composti da almeno 6 bytes, ad eccezione di quelli di scrittura a cui vanno aggiunti i dati relativi al testo da
visualizzare sulla riga del display.
Byte 1 |
Byte 2 |
Byte 3 |
Byte 4 |
Byte 5 |
[Byte 6...N-1] |
Byte N |
0x3E '(>)' |
Indirizzo |
Comando |
Dato 1 |
Dato 2 |
[Testo] |
0x00 (fine pacchetto) |
Tutti i comandi iniziano con il carattere '>' seguito dall'indirizzo
assegnato alla scheda SXLCD che può avere un valore compreso tra 1 e 254. L'indirizzo 255 (0xFF) è di broadcast e serve per inviare il medesimo comando a tutte
le schede collegate allo stesso bus seriale, indipendentemente dall'indirizzo loro assegnato.
Il byte successivo a quello di indirizzo (byte numero 3) è quello che permette di specificare il tipo di operazione che si vuole effettuare sul display. Di seguito è riportato l'elenco dei comandi che è possibile inviare:
Comando |
Descrizione |
0x1 |
Cancella il display |
0x2 |
Scrive il testo passato alla posizione corrente del cursore |
0x3 |
Scrive il testo passato alla posizione specificata |
0x4 |
Imposta la luminosità della backlight |
0x05 |
Imposta l'indirizzo della scheda SXLCD |
0x06 |
Imposta la modalità di visualizzazione del cursore |
0x07 |
Configura i parametri salienti del display collegato |
0x08 |
Imposta la modalità di "a capo" automatico |
I byte successivi al comando (byte 4 e 5) servono per specificare parametri opzionali; se il
comando non li richiede vanno impostati al valore 0x00.
I byte seguenti possono o non possono essere presenti, in base ai dati richiesti dallo specifico comando: l'ultimo byte deve comunque essere un byte nullo (0x00) per segnalare il termine del pacchetto dati alla scheda.
Di seguito vengono analizzati in dettaglio i singoli comandi.
COMANDO 0x01: Cancellazione del display
Cancella tutte le righe attualmente visualizzate dal display
Byte 1 |
Byte 2 |
Byte 3 |
Byte 4 |
Byte 5 |
Byte 6 |
0x3E |
Indirizzo |
0x01 |
0x00 |
0x00 |
0x00 |
COMANDO 0x02: scrive un messaggio alla posizione corrente
Scrive il testo passato partendo dall'ultima posizione in cui si è scritto precedentemente. Se il messaggio raggiunge il limite destro del display il comportamento sarà determinato dall'impostazione dell'"a capo" (vedi il comando 0x08)
Byte 1 |
Byte 2 |
Byte 3 |
Byte 4 |
Byte 5 |
Byte 6...N-1 |
Byte N |
0x3E |
Indirizzo |
0x02 |
0x00 |
0x00 |
messaggio |
0x00 |
COMANDO 0x03: scrive il messaggio alla posizione specificata
Scrive il messaggio partendo dalla posizione specificata dai byte 4 e 5. Il Byte 4 indica il numero di colonna da cui iniziare a scrivere e può avere valori compresi tra 0 e il numero massimo di
caratteri per riga supportati dal display. Il Byte 5 indica invece il numero di riga, i cui valori vanno da 0 (prima riga) fino al numero massimo di righe del display meno 1. Per un display a 4 righe l'ultima riga sarà quindi la numero 3.
Byte 1 |
Byte 2 |
Byte 3 |
Byte 4 |
Byte 5 |
Byte 6...N-1 |
Byte N |
0x3E |
Indirizzo |
0x03 |
Posizione X |
Posizione Y |
messaggio |
0x00 |
COMANDO 0x4: impostazione la backlight
Imposta il livello di retroilluminazione del display.
Questo comando consente di definire il livello di luminosità della retroillumionazione. Il valore da impostare viene inviato nel byte 4 e può assumere valori da 0 (retroilluminazione spenta) fino a 255 (retroilluminazione alla massima luminosità). La luminosità varia con continuità impostando valori intermedi, in modo da consentire il miglior compromesso tra visibilità e consumo.
Byte 1 |
Byte 2 |
Byte 3 |
Byte 4 |
Byte 5 |
Byte 6 |
0x3E |
Indirizzo |
0x04 |
luminosità |
0x00 |
0x00 |
COMANDO 0x5: impostazione dell'indirizzo della scheda SXLCD
Permette di impostare l'indirizzo software alla SXLCD. E' possibile inviare questo comando sia ad una singola scheda, sia a tutte le schede collegate alla seriale, utilizzando l'indirizzo di broadcast. In questo modo è possibile reimpostare l'indirizzo di una scheda; l'operazione va effettuata scollegando dal bus seriale tutte le schede eccetto di quella che si vuole configurare.
Il nuovo indirizzo specificato nel Byte 4 può assumere un valore compreso tra 1 e 254 (0x1 - 0xFE in esadecimale).
La modifica dell'indirizzo viene memorizzata in maniera permanente e non viene quindi persa quando si scollega l'alimentazione.
Byte 1 |
Byte 2 |
Byte 3 |
Byte 4 |
Byte 5 |
Byte 6 |
0x3E |
Indirizzo |
0x05 |
Nuovo
indirizzo |
0x00 |
0x00 |
COMANDO 0x6: imposta la modalità di visualizzazione del cursore
Configura la modalità di visualizzazione del cursore sul display.
Le possibili opzioni, da inserire nel Byte 4, sono:
- 0x00 cursore non visibile
- 0x01 cursore fisso
- 0x02 cursore lampeggiante
Byte 1 |
Byte 2 |
Byte 3 |
Byte 4 |
Byte 5 |
Byte 6 |
0x3E |
Indirizzo |
0x06 |
modalità |
0x00 |
0x00 |
COMANDO 0x07: configura i parametri dell'LCD collegato
Questo comando consente di impostare i parametri fondamentali del display LCD collegato alla scheda.
Il comando va specificato con 5 parametri che rappresentano:
- Byte 4: Indirizzo della riga 1 del display
- Byte 5: Indirizzo della riga 2 del display
- Byte 6: Indirizzo della riga 3 del display (se non presente va inviato 0xFF)
- Byte 7: Indirizzo della riga 4 del display (se non presente va inviato 0xFF)
- Byte 8: Numero di righe e colonne del display. Il formato è YYYXXXXX, dove YYY = numero di righe, XXXXX = numero di colonne.
Il comando viene memorizzato in maniera permanente e quindi deve essere impartito una sola volta.
Byte 1 |
Byte 2 |
Byte 3 |
Byte 4 |
Byte 5 |
Byte 6 |
Byte 7 |
Byte 8 |
Byte 9 |
0x3E |
Indirizzo |
0x07 |
Indirizzo riga 1 |
Indirizzo riga 2 |
Indirizzo riga 3 |
Indirizzo riga 4 |
Numero di righe e colonne |
0x00 |
COMANDO 0x08: imposta la modalità di "a capo" automatico
Questo comando consente di decidere la modalità con la quale sarà gestito l'"a capo" dal display.
Il Byte 4 può assumere i valori 0x00 (a capo disabilitato) oppure 0x01 (a capo abilitato).
Quando l'a capo è abilitato l'invio di un testo da scrivere che oltrepassi il lato destro del display farà si che la parte eccedente di testo venga scritta sulla riga seguente. Se la riga è l'ultima la parte eccedente verrà scritta sulla prima riga del display. Quando l'a capo è disabilitato il testo viene scritto fino al margine destro del display e la parte eccedente viene persa.
Il comando viene memorizzato in maniera permanente e quindi l'impostazione non viene persa quando si spegne la scheda.
Byte 1 |
Byte 2 |
Byte 3 |
Byte 4 |
Byte 5 |
Byte 6 |
0x3E |
Indirizzo |
0x08 |
modalità |
0x00 |
0x00 |
Compatibilità con le schede prodotte da Area SX
La SXLCD può essere collegata praticamente a tutte le schede basate su microprocessori prodotte da Area SX.
Nella sezione di download è possibile trovare un firmware di test per la scheda SX3000.
Sulla linea seriale che controlla la scheda display SXLCD possono essere contemporaneamente collegati anche dei dimmer SX13, data la perfetta compatibilità tra i due prodotti, consentendo così la realizzazione di sistemi di controllo di luminosità ambientale con display di visualizzazione.
Download
Esempio di utilizzo con la scheda SX3000
Segnala questo articolo:
Parole chiave: - Display - Schede Area SX -
|