USB Tester 


4) Text Lcd


Text LCD(Character LCD) LCD화면에 정해진 형태의 문자를 정해진 개수만큼 표시할 있도록 만들어진 LCD 디스플레이 장치로서, 간단한 문자 표시가 필요한 각종 임베디드 장치들에서 널리 사용되고 있다. TEXT LCD 실생활에 매우 많이 사용되고 있는 주변장치이다. USB Tester 사용된 Text LCD 구조는 16문자*2라인의 표시부를 가지며, 표시부 상단에 커넥터가 위치한다. LCD에는 Backlight 기능이 포함되어 있다. 아래의 표는 사용되는 인터페이스 커넥터 핀의 기능을 요약한 것이다.


[표 1]인터페이스 커넥터 핀 기능

Signal Name

 

1

VSS

전원 GND

2

VDD

전원 +5VDC

3

VEE

Contrast 제어 전압레벨 (VDD-VEE = 13.5 ~ 0V)

4

RS

Register Select ( 0 = instruction, 1 = data )

5

R/W

Read/Write ( 0 = FPGA -> LCD, 1 : FPGA <- LCD )

6

E

Enable Signal for read/write LCD

7

DB0 (LSB)

DATA

8

DB1

9

DB2

10

DB3

11

DB4

12

DB5

13

DB6

14

DB7 (MSB)

15

A

+LED (backlight LED용 전원 +4.4 ~ 4.7V)

16

K

-LED (backlight LED용 전원 GND)

 

TEXT LCD 보통 LCD 표시부와 LCD 제어부를 하나로 하여 LCD 모듈로 시판된다. LCD 제어기는 다음과 같이 구성된다.

LCD제어기 내부에는 명령(Instruction) 데이터(Data) 위한 2개의 레지스터, BF (Busy Flag), AC(Address Counter), 문자발생램(CGRAM), 문자발생롬(CGROM), 데이터표시램(DDRAM) 있다.

LCD 제어기의 내장 레지스터는 다음과 같다.

  • 명령레지스터(IR): DDRAM CGRAM 대한 어드레스와 클리어, 커서시프트 제어명령을 보유

  • 데이터레지스터(DR): DDRAM CGRAM 데이터나 읽은 데이터를 일시적으로 저장

 

위의 레지스터들은 RS(4번핀) R/W(5번핀) 사용하여 선택을 있다. 선택 방법은 다음과 같다.

 

 [표 2] RS, R/W 신호에 따른 TEXT LCD 제어기 레지스터 선택방법

RS

R/W

레지스터 접근

0

0

IR쓰기(각종 제어 명령 쓰기)

0

1

BF읽기, AC읽기

1

0

DR쓰기

1

1

DR읽기


  • AC : DDRAM CGRAM 주소를 지정할 사용하는데 IR 주소 정보를 쓰면 주소 정보가 AC 전송되고 DDRAM이나 DDROM 데이터를 쓰면  AC 자동으로 +1 혹은 -1 된다.

  • DDRAM(Data Display RAM) : 80x8비트 용량으로 80개의 8비트 아스키(ASCII)코드를 저장할 있다. 0x00-0F 주소가 LCD 1행의 1-16번째, 0x40-4F  주소가 LCD 2행의 1-16번째 문자로 표시된다.(1 2행의 번호 불연속임에 주의해야 한다.)

  • CGRAM(Character Generator RAM) : 사용자가 자유로이 문자를 만들 사용하는 램으로 5x7 8, 5x10 4 만들어 저장 가능하다.

  • CGROM(Character Generator ROM) : 5x7, 5x10 도트의 문자를 내장하고 있다. 특수기호, 숫자, 영문자의 문자코드는 아스키코드와 일치한다.

 

LCD 모듈을 제어할 때는 제어신호의 동작 타이밍을 고려하여야 하며, 일반 반도체 소자들에 비해 엑세스 타임이 편이므로 유의하여야 한다. 아래의 그림은 LCD 모듈의 Read Write 동작시의 타이밍이다.

 

[그림 1] TEXT LCD R/W Timing

 

다음의 표는 LCD 모듈에 문자 등을 표시하기 위한 제어 명령이며, LCD 모듈은 명령을 실행하기 위해 일정한 시간을 요구하므로 다음 명령을 보내기 전에 충분히 지연시키거나, BUSY FLAG 체크하여 앞에서 전송한 명령의 실행완료 상태를 체크하여야 한다.

 

[3] LCD 모듈 표시 제어명령

기능

제어신호

제 어 명 령

RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

Clear Display

0

0

0

0

0

0

0

0

0

1

Return Home

0

0

0

0

0

0

0

0

1

0

Entry Mode Set

0

0

0

0

0

0

0

1

I/D

S

Display ON/OFF Control

0

0

0

0

0

0

1

D

C

B

Cursor or Display Shift

0

0

0

0

0

1

S/C

R/L

0

0

Function Set

0

0

0

0

1

DL

N

F

0

0

Set CG RAM address

0

0

0

1

CG RAM address

Set DD RAM address

0

0

1

DD RAM address

Read busy flag and address

0

1

BF

Address Counter

Data write to CG RAM or DD RAM

1

0

Write address

Data read from CG RAM or

DD RAM

1

1

Read address

 

  • CLEAR DISPLAY

모든 디스플레이 상태를 소거하고 커서를 Home 위치로 돌려놓는다.

  • Return Home

DD RAM 내용은 변경하지 않고 커서만을 Home으로 위치시킨다.

  • Entry Mode SET

데이터를 Read 하거나 Write 경우에 커서의 위치를 증가시킬 것인가 (I/D=1) 감소시킬 것인가 (I/D=0) 결정하며, 이때 화면을 이동 것인지 (S=1) 아닌지 (S=0) 결정한다.

  • Display ON/OFF Control

화면 표시를 ON/OFF 하거나(D) 커서를 ON/OFF 하거나(C) 커서를 깜박이게 것인지(B) 여부를 지정한다.

  • Cursor or Display Shift

화면(S/C=1) 또는 커서(S/C=0) 오른쪽(R/L=1) 또는 왼쪽(R/L=0)으로 이동한다.

  • Function SET

인터페이스에서 데이터의 길이를 8비트(DL=1) 또는 4비트(DL=0) 지정하고, 화면 표시 행수를 2(N=1) 또는 1(N=0)으로 지정하며, 문자의 폰트를 5x10 도트(F=1) 또는 5x7 도트(F=0) 지정한다.

전원 투입 최초에는 주로 명령을 보내게 되는데, LCD 모듈이 리셋 되려면 50ms 소요되므로 충분히 기다린 후에 코드를 보내야 한다. 또한, 4비트 인터페이스 경우에는 상위 4 비트를 먼저 전송하고 다음에 하위 4 비트를 전송해야 한다.

  • Set CG RAM Address

Character Generator RAM 어드레스를 지정한다. 이후에 송수신 하는 데이터는 CG RAM 데이터이다.

  • Set DD RAM Address

Display Data RAM 어드레스를 지정한다. 이후에 송수신하는 데이터는 DD RAM 데이터이다.

  • Read Busy Flag & Address

LCD 모듈이 내부 동작중임을 나타내는 Busy Flag(BF) 어드레스 카운터의 내용을 read 한다. LCD 모듈이 제어 코드를 실행하는 데는 일정한 시간이 필요하므로 MCU BF 읽어 1 경우에는 기다리고 0 경우 다음 제어 코드를 보내는 방법을 사용하면 보다 효율적인 처리가 가능하다

 

DD RAM 어드레스

DD RAM 표시될 문자의 ASCII 코드 데이터가 저장되어 있는 메모리이며 모두 80개의 번지가 있는데, 화면의 행과 열의 위치에는 고유한 어드레스 값이 부여된다. 그런데, 행과 사이의 어드레스가 연속하여 있지 않으므로 주의하여야 한다. 아래 표는 표시 문자의 위치에 대한 DD RAM 어드레스이다.

 

[표 4] 표시문자 위치에 대한 DD RAM 어드레스

구분

1

2

3

4

……

13

14

15

16

Line1

00

01

02

03

……

0D

0E

0F

10

Line2

40

41

42

43

……

4D

4E

4F

50

 

[표 5] ASCII 도형문자 종류 및 코드 값


구분

00H

10H

20H

30H

40H

50H

60H

70H

80H

90H

0

사용자 정의

영역

미사용 영역

 

0

@

P

`

p

미사용 영역

1

!

1

A

Q

a

q

2

"

2

B

R

b

r

3

#

3

C

S

c

s

4

$

4

D

T

d

t

5

%

5

E

U

e

u

6

&

6

F

V

f

v

7

'

7

G

W

g

w

8

(

8

H

X

h

x

9

)

9

I

Y

I

y

A

*

:

J

Z

j

z

B

+

;

K

[

k

{

C

,

< 

L

¥

l

|

D

-

=

M

]

m

}

E

.

> 

N

^

n

F

/

?

O

_

o

 

다음은 TextLCD 구동회로를 보여주고 있다.

 


[그림 2] TEXT LCD 구동회로