Tutorials - Elettronica

 
 

HT1621


LCD controller.

HT1621 è un controller per LCD a 128 punti (32x4) prodotto dalla taiwanese Holtek. 
I caratteri presentati sul pannello LCD sono mappati in memoria RAM. La configurazione software del controller lo rende adatto a molteplici applicazioni.

Le caratteristiche essenziali sono:

  • Oscillatore RC integrato 256kHz
  • Ingresso esterno per cristallo da 32,768 kHz o sorgente di frequenza a 256 kHz
  • Selezione di un bias a 1/2 o 1/3 e selezione LCD a 1/2 o 1/3 o 1/4.
  • Comando per buzzer piezo con frequenze selezionabili (2kHz/4kHz)
  • Comando di spegnimento per ridurre il consumo energetico
  • Generatore di base del tempo incorporato e WDT con uscita esterna 
  • 8 configurazioni timer e WDT
  • Interfaccia seriale a 3-4 fili

La famiglia HT162x comprende  7 diversi modelli, con diverse possibilità di comando dei segmenti, da 32 a 64. Il chip è disponibile i package SSOP a 48 pin o LQFP-A a 44 o 48 pin.

Il diagramma logico è il seguente:

  • CS - chip selection
  • BZ, BZ- tone output
  • WR,RD,DATA - linee di comunicazione
  • COM0-3, SEG0-31 - uscite per LCD
  • IRQ - time base o WDT output

Nei dettagli:

Label Pin Descrizione
CS 1 Ingresso selezione chip con pull-up
Quando il CS è a livello alto, l'accesso a HT1621 è disabilitato. Viene azzerato anche il circuito dell' interfaccia seriale. 
Se  CS è a livello basso, è abilitata la comuniacazione sull'interfaccia seriale.
RD 2 E' l'ingresso del clock di lettura, con pull-up.
I dati sono emessi dalla RAM di HT1621 alla linea DATA sul fronte di discesa del clock.  Il controllore host può utilizzare il bordo ascendente successivo per bloccare i dati in uscita.
WR 3 E' l'ingresso del clock di scrittura, con pull-up.
I dati scritti sono trasferiti all'HT1621 sul fronte di salita del clock.
DATA 4 Ingresso/uscita dati (bi direzionale)
Vss 5 alimentazione negativa
OSCI 7 I pin sono collegabili ad un cristallo esterno a 32.768kHz per
generare un orologio di sistema, oppure ad una sorgente esterna da 256kHz (collegata a OSCI). Se è selezionato un oscillatore RC onchip, i pin OSCI e OSCO possono essere lasciati aperti.
OSCO

6

VLCD

8

Alimentazione pannello LCD
Vdd 9 Alimentazione positiva  2.4-5.2V
IRQ 10 Uscita open drain per tempo o WDT
BZ
BZ
11
12
2/4kHz output tone
COM0-3 13-16 LCD common out
SEG0-31 48-17 LCD segments out

Il foglio dati riporta le caratteristiche elettriche ed i relativi parametri.

L'interfaccia tipica con un microcontroller host:

Il clock può avere tre sorgenti: un segnale esterno a 256kHz, un quarzo a 32768Hz o l'oscillatore interno.
La linea RD può essere opzionale se non è richiesta la lettura di dati dal controller.
La linea IRQ può essere opzionale: invia un segnale relativo ad un tempo impostato nel controller o all'overflow del WDT.
La linea VLCD va collegata con la Vdd attraverso una resistenza per regolare il contrasto.  Indicativamente, con Vdd=5V, VLCD dovrà essere 4V e VR circa 15-20kohm.


La memoria RAM.

La memoria di visualizzazione statica (RAM) è organizzata in 32x4 e memorizza i dati visualizzati. 
Il contenuto della RAM è direttamente mappato nel contenuto del display LCD. 

I dati nella RAM sono accessibili :

  • in scrittura
  • in lettura
  • in modalità READ-MODIFY-WRITE.

Il clock di sistema viene utilizzato per generare il time base/Watchdog Timer (WDT) e per comandare la scansione dell' LCD. La fonte del clock può essere un oscillatore on-chip RC (256kHz), un oscillatore a cristallo (32.768kHz) esterno, oppure una sorgente di clock esterna a 256kHz, selezionabili da software.
dell' orologio mediante l' impostazione S/W. Il clock interno RC è impostato per default all'accensione.

Nel caso di oscillatore RC onchip o oscillatore a cristallo, la modalità spegnimento ridurrà il consumo energetico.

All'accensione il controller è disabilitato, condizione di minimo consumo: il clock di sistema è arrestato e il generatore bias dell' LCD è spento. Questa condizione è ottenibile anche con il comando SYS_DIS (disponibile solo per l' oscillatore RC on chip o per il cristallo).
Una volta che l' orologio di sistema si arresta, il display LCD diventa vuoto e la base del tempo/WDT perde la sua funzione.

Il comando SYS_EN avvia il clock e il bias del display.


WDT/Timer.

Il generatore di base del tempo è composto da un ripple counter a 8 stadi è progettato per generare una
base precisa di tempi. Il watchdog (WDT) è composto da un generatore di base a 8 stadi, insieme ad un contatore a 2 stadi, ed è progettato per interrompere il controllore host o altri sottosistemi nel caso di stati anomali o indesiderati,  errori di esecuzione, ecc. 

Il flag del timer o del WDT possono essere collegati alternativamente all' uscita IRQ, in mod programmabile.  Il pin IRQ di uscita è open drain.

Ci sono complessivamente otto sorgenti di frequenza disponibili per il generatore di base tempi e il WDT. La frequenza viene calcolata con la seguente equazione fWDT = 32kHz / 2 dove il valore di n è compreso tra 0 e 7.

Il WDT condivide lo stesso contatore a 8 stadi. Così, il comando WDT DIS disabilita il watchdog, mentre il comando WDT EN lo abilita e collega al WDT il pin di di segnalazione IRQ time-out .

Il WDT può essere cancellato eseguendo il comando CLR WDT. Il contenuto del timer viene cancellato eseguendo il comando CLR_TIMER. Il CLR WDT o il CLR TIMER deve essere eseguito prima del WDT_EN o di TIMER_EN per cancellare il contenuto dei contatori. 
Anche prima dell' esecuzione del comando IRQ_EN deve essere inviato un comando CLR_ WDT o CLR_TIMER per evitare interrupt inaspettati.

Una volta scattato il time-out di WDT, il pin IRQ rimarrà ad una logica bassa fino a quando non viene emesso il comando CLR_WDT o IRQ_DIS. IRQ_EN collega l'uscita del generatore della base tempi o del time-out WDT sul pin IRQ. 
L' uscita IRQ può essere abilitata o disabilitata eseguendo l' esecuzione di IRQ_ EN o IRQ_DIS, rispettivamente.
Dopo che l' uscita IRQ è disabilitata, il pin IRQ rimarrà allo stato flottante: è un open drain e richiede un pull-up.


Il generatore di tono.

Il generatore di tono può emettere un segnale di pilotaggio differenziale BZ e BZ, che vengono utilizzati per generare un tono singolo, su un buzzer piezoelettrico. 

I comandi TONE_4K e TONE_2K servono ad impostare la frequenza di tono rispettivamente a 4kHz e 2kHz.
L' uscita del tono può essere attivata o disattivata con il comando TONE_ON o il comando TONE_OFF.
Se il chip è disabilitato o l'emissione del tono è inibita, le uscite BZ rimarranno a basso livello.


Comando dell'LCD.

Di seguito, la tabella dei comandi disponibili, organizzati su 12 o 13 bit, di cui i primi tre sono l'ID:

Nome ID Codifica D/C Funzione Def.
READ 110 A5A4A3A2A1A0D0D1D2D3 D Read data from RAM  
WRITE 101 A5A4A3A2A1A0D0D1D2D3 D Write data to RAM  
R-M-W 101 A5A4A3A2A1A0D0D1D2D3 D Read and write RAM  
SYS_DIS 100

 

0000-0000-X C Turn system off *
SYS_EN 0000-0001-X C Turn system on  
LCD_OFF 0000-0010-X C Turn off bias generator *
LCD_ON 0000-0011-X C Turn on bias generator  
TIMER_DIS 0000-0100-X C Disable timer  
WDT_DIS 0000-0101-X C Eisable WDT  
TIMER_EN 0000-0110-X C Enable timer  
WDT_EN 0000-0111-X C Enable WDT  
TONE_OFF 0000-1000-X C Tone off *
TONE_ON 0000-1001-X C Tone on  
CLR_TIMER 0000-11XX-X C Clear timer  
CLR_WDT 0000-111X-X C Clear WDT  
XTAL_32K 0001-01XX-X C Crystal oscillator  
RC_256K 0001-10XX-X C Internal RC oscillator *
EXT_256K 0001-11XX-X C External clock  
BIAS_1/2 0010-abX0-X C
  • LCD 1/2 bias option

  • ab=00: 2 commons option

  • ab=01: 3 commons option

  • ab=10: 4 commons option
 
BIAS_1/3 0010-abX1-X C
  • LCD 1/3 bias option

  • ab=00: 2 commons option

  • ab=01: 3 commons option

  • ab=10: 4 commons option
 
TONE_4K 010X-XXXX-X C Tone frequency 4kHz  
TONE_2K 011X-XXXX-X C Tone frequency 2kHz  
IRQ_DIS 100X-0XXX-X C Disable IRQ *
IRQ_EN 100X-1XXX-X C Enable IRQ  
F1 101X-X000-X C

Time base/WDT clock output:1Hz
The WDT time-out flag after: 4s

 
F2 101X-X001-X C

Time base/WDT clock output:2Hz
The WDT time-out flag after: 2s

 
F4 101X-X010-X C

Time base/WDT clock output:4Hz
The WDT time-out flag after: 1s

 
F8 101X-X011-X C

Time base/WDT clock output:8Hz
The WDT time-out flag after: 1/2s

 
F16 101X-X100-X C

Time base/WDT clock output:16Hz
The WDT time-out flag after: 1/4s

 
F32 101X-X101-X C

Time base/WDT clock output:32Hz
The WDT time-out flag after: 1/8s

 
F64 101X-X110-X C

Time base/WDT clock output:64Hz
The WDT time-out flag after: 1/16s

 
F128 101X-X111-X C

Time base/WDT clock output:128Hz
The WDT time-out flag after: 1/32s

*
TEST 1110-0000-X C Test mode, user don't use  
NORMAL 1110-0011-X C Normal mode *
  • x - indifferente

  • A5:0 - indirizzi RAM

  • D3:0 - dati RAM

  • D/C - dato o comando

  • * - default al power reset

Osservare che alcune condizioni sono default all'accensione. 

La seguente tabella raccoglie i comandi relativi al display, i cui primi 3 bit sono 100.

Nome Codice Funzione
LCD_OFF 1 0 0 0 0 0 0 0 0 1 0 X LCD spento
LCD_ON 1 0 0 0 0 0 0 0 0 1 1 X LCD acceso
BIAS & COM 1 0 0 0 0 1 0 a b X c X
  • c=0    : 1/2 bias option

  • c=1    : 1/3 bias option

  • ab=00: 2 commons option

  • ab=01: 3 commons option

  • ab=10: 4 commons option

Se sono stati emessi comandi successivi, l' ID del modo comando, tranne che per il primo,
verrà omesso. 

l comando LCD_ OFF spegne il display disattivando il bias.
Il comando LCD_ ON, invece, attiva il display LCD.
BIAS e COM sono i comandi del pannello LCD. utilizzando le opzioni corrette, HT1621 può essere compatibile con molti tipi di pannelli LCD. 

I comandi di lettura e scrittura sono raccolti nella seguente tabella:

Operazione Modo ID
Read Data 110
Write Data 101
Read-Modify-Write Data 101
Command Command 100

Ci sono due comandi di modalità per configurare le risorse HT1621 e per trasferire i dati del display LCD. La configurazione HT1621 è chiamata modo comando e il suo ID è 100.
Il modo comando consiste in un comando di configurazione del sistema, un comando di selezione della frequenza, un comando di configurazione LCD, un comando di selezione della frequenza di tono, per timer/WDT e un comando di funzionamento. 

I dati, invece, includono tre modalità: READ, WRITE, e READ-MODIFY-WRITE

Il comando di modalità deve essere emesso prima dei dati. Se si inviano comandi successivi senza modificare CS, non occorre inviare che il primo ID e per i comandi seguenti può essere omesso. 

Mentre il sistema è in funzione se il pin CS dovesse essere impostato su 1, la modalità di funzionamento precedente verrà azzerata. Una volta che il CS ritorna a 0, un nuovo ID deve essere inviato.

 


La comunicazione

Una completa interfaccia di comunicazione richiede cinque linee: CS, RD. WR, DATA, IRQ.

La linea CS viene utilizzata per inizializzare l' interfaccia seriale e per terminare la comunicazione tra
il controllore e l' HT1621. Se il pin CS è impostato su 1, i dati o i comandi emessi tra il controllore host
e l' HT1621 vengono ignorati.

La linea DATA è la linea seriale di ingresso/uscita dati. I dati da leggere o scrivere o i comandi da inviare passano su questa linea, che deve essere bidirezionale.

La linea  RD è il clock che va fornito per leggere dati dall'HT1621. I dati sono clockati sul fronte di discesa del segnale: l' host legge in dati corretti durante l' intervallo tra il fronte in salita e quello discendente successivo dell' RD.

La linea WR è l' ingresso del clock di scrittura. I dati, indirizzi o comandi sulla linea DATA sono tutti sincronizzati sul fronte ascendente del segnale WR.

La linea IRQ  è di uso opzionale come interfaccia tra il controllore e l' HT1621. Il pin IRQ può essere
selezionato come uscita timer o uscita segnalatore di overflow WDT.

Nella pratica, se non usata, la linea IRQ può essere omessa.
Così pure se non si prevede necessari la lettura di dati dall'HT1621, anche la linea RD può essere omessa, riducendo così l'interfaccia a soli tre fili.

Note.

  1. HT1621 non dispone di una decodifica tra dato e segmenti, per cui i bit inviati a 1 corrispondono a segmenti accesi, quelli a 0 corrispondono a segmenti spenti. Occorre utilizzare una semplice lookup table esterna per convertire i simboli che si intendono presentare nella corrispondente maschera di bit da visualizzare.

  2. All'accensione il display è spento (condizione a basso consumo), ma i registri non sono azzerati e possono contenere valori casuali.

 


La gestione dei registri.

La gestione dei registri comporta una semplice struttura comando/dato.

Vediamo i diagrammi delle varie possibilità:

Trasmissione di comandi: Più comandi possono essere concatenati, inviando l'ID 100 solo per il primo.
CS va basso all'inizio della trasmissione e viene riportato a livello alto alla fine.
I dati sono latchati sul fronte di salita del clock.

Un comando + dato: una coppia comando / dato viene inviata previo livello basso sul CS. Dopo ogni coppia, il CS viene riportato a livello alto.

Un comando di lettura: la lettura utilizza il WR per inviare l'indirizzo, mentre RD serve alla lettura dei dati.

Più letture successive: una serie di dati può essere letta di seguito inviando l'indirizzo di inizio. Ogni 4 bit l'indirizzo viene incrementato automaticamente. CS a livello alto termina la sequenza.

Modalità R-M-W: il dato all'indirizzo specificato viene letto e immediatamente riscritto. Ogni azione è limitata dal CS.

Modalità R-M-W con azioni successive: si possono concatenare successive operazioni R-M-W con 'indirizzo auto incrementante.

Scrittura: un indirizzo e un dato sono legati nello stessa azione, che è terminata con CS a livello alto.

Scritture successive: più scritture successive sono concatenate con l'auto incremento dell'indirizzo di partenza.

 


Timing.


Nome Parametro min. max. Note
fCLK1 Serial Data Clock (WR pin) - 150khz 3V  duty 50%
300kHz 5V  duty 50%
fCLK2 Serial Data Clock (RD pin) - 75kHz 3V  duty 50%
150kHz 5V  duty 50%
tCLK WR, RD Input Pulse Width 3.34us - 3V  write
6.67us - 3V  read
1.67us - 5V  write
3.34us - 3V  read
tCS

Serial Interface Reset PulseWidth

250ns typ.  
tsu

Setup Time for DATA to WR, RD Clock Width

120ns typ.  
th

Hold Time for DATA to WR, RDClock Width

120ns typ.  
tsu1

Setup Time for CS to WR, RDClock Width

100ns typ.  
th1

Hold Time for CS to WR, RDClock Width

100ns typ.  

Non si tratta, quindi, di una periferica particolarmente veloce. In particolare, va notato che l'alimentazione a tensioni minori di 5V necessitano di temporizzazioni più lunghe.
Da notare anche che il clock in lettura deve essere minore di quello in scrittura.


I moduli commerciali.

Sono facilmente reperibili in commercio almeno due tipologie di moduli LCD a sette segmenti: con 6 cifre o con 3 cifre e mezza.

Questo modello dispone di retro illuminazione che può essere scelta in diversi colori.
Ci sono 6 cifre a 7 segmenti da 2.4", di cui 3 con punto decimale, più una barra di stato con il simbolo di una batteria.
La tensione di alimentazione può variare tra 4.7 e 5.2V con una corrente dichiarata di 4mA.

Per questo modello, la mappa dei segmenti è la seguente:

Ne risulta che la corrispondenza tra  bit e segmenti è questa:

  Seg. pari Seg. dispari
COM D0 D1 D D3 D0 D1 D2 D3
segmento dp c b a d e g f

Questo richiede una opportuna lookup table di decodifica da valore a maschera dei segmenti.
Il bit iniziale comanda il punto decimale in tre indirizzi e i segmenti dell'indicatore di batteria negli altri 3.

Un altro modulo comune è questo:

Dispone di 3 cifre e mezza, con un punto decimale e retro illuminazione solitamente blu.

La tensione di alimentazione può variare tra 4.3 e 5V.
Il consumo dichiarato è 2mA.

La mappa dei segmenti è questa:

Un ulteriore modello commerciale dispone sempre di 6 cifre:

L'altezza dei caratteri è1.4". Oltre alle 6 cifre, sono accessibili un punto decimale, un doppio punto centrale e il simbolo di una clessidra.

La mappa dei segmenti è questa:

DP è il punto decimale
CP sono i doppi punti stile orologio
FUN è il simbolo della clessidra.

Esistono varie altre realizzazioni con LCD diversi e controller della famiglia HT1621, oltre a numerose applicazioni con LCD custom.

 


DRIVER.

Sul WEB sono disponibili vari esempi di librerie in C.

Per quanto riguarda l'Assembly, è stato realizzato un driverper il modello 688750. Qui trovate una versione per Enhanced Midrange.


Documentazione.

 

Copyright © afg. Tutti i diritti riservati.
Aggiornato il 05/10/17.