2011년7월11일_CLCD(Character Liquid Crystal Display) 16216D-4-B102A

 


LCD데이터 시트 다운받기 16216D4.pdf



DSCN3477 image

지급받은 문자LCD(이하 CLCD)의 사진...
LCD패널에 형광등 불빛이 반사되어 하얀 막대가 보이는 것이 매우 아름답다.
LCD를 뒤집어 보면 숫자가 적혀 있고 각 번호별로 어떻게 연결해야 하는지 아래의 표를 보고 결선하면 되겠다.

 

image

1번 VSS - FET의 S(소스)단자에 연결된 전압이라고 하여 VSS라고 한다. GND에 연결.
2번 VDD - LCD에 전원을 공급하는 단자로 +5V를 연결한다. ARM보드에서 나오는 USB전원핀에 물리면 되겠다.
3번 V0 – 콘트라스조종용 단자로 +5V를 연결하면 글자가 보이지 않고 GND에 연결하면 최대 대비가 되나…전력소모가 커진다.
4번 RS – 레지스터선택단자로 High레벨의 신호가 입력되면 데이터레지스터를,
                                    Low레벨의 신호가 입력되면 명령레지스터를 선택되어 데이터버스가 그 레지스터에 연결된다.
5번 R/W – 읽기/쓰기 선택단자로 High레벨의 신호가 입력되면 LCD로 부터 데이터를 읽을 수 있고,  (ARM ← LCD)
                                       Low레벨의 신호가 입력되면 LCD로 데이터를 쓸 수 있다.            (ARM → LCD)
6번 E - LCD를 활성화하는 단자로 High레벨의 신호가 입력되면 데이터버스의 내용을 받아 들여 LCD의 상태가 변화하고,
                                        Low레벨의 신호가 입력되면 데이터버스의 내용이 변하여도 무시한다. 
         ※ 보통 데이터 버스에는 여러 장치(하드디스크, RAM, Flash, ADC, DAC등등)가 물리게 되는데 디바이스에 이런 활성핀이 있어,
            CPU가 여러 장치 중에 하나의 장치만 선택하여 데이터를 전송할 수 있다.
            만약, 버스에 물린 여러 장치가 동시에 응답하거나 CPU에서 보낸 데이터를 동시에 받아 들이게 된다면 원치 않는 동작을 한다.
                   그리고 데이터버스를 여러 장치가 공유하지 않게 설계한다면 배선이 많아 복잡해 제품단가가 상승한다.
7번~14번 DB0 ~ DB7 – 데이터 버스로 8개의 전기선다발이고, 한 번에 1Byte의 데이터를 LCD로 전송하거나 받을 수 있다.
15~16번 LED – 상기의 표는 지급받은 LCD의 극성과 다르다. 반대로 되어 있으니 주의할 것.
                   (최상단의 데이터시트와 다른 데이터시트를 보고있다. ㅎㅎ)



image

블록다이어그램의 좌측에 보이는 화살표들이 모두 LCD외부단자로 사진에서 볼 때 황금색 도금된 패드들이다.
외부에 연결된 제어단자와 데이터버스를 통해 ARM MCU가 컨트롤LSI에게 화면에 뿌릴 지령을 내리면 컨트롤LSI는 LCD판떼기에,
글자를 찍어주는 것이다.

아래의 VR 20KΩ은 콘트라스조종용 가변저항으로 화면의 대비를 조정할 수 있다.


image

먼저 Data Bus에 값을 집어 넣고 RS핀에 제어신호를 줘 레지스터를 선택한다.
R/W핀이 Low이면 데이터버스와 명령레지스터가 연결되어 LCD에 명령을 내릴 수 있고,
           High이면 데이터버스와 데이터레지스터가 연결되어 LCD에 데이터를 전송하여 문자를 출력할 수 있다.

8bit 병렬 전송 데이터버스는 한 번에 1Byte씩 데이터를 전송할 수 있는 전기선다발이고,
bit수를 늘려 한 번에 수Bytes이상 많은 양의 데이터를 전송할 수 있게 할 수 있으나, 배선량이 늘어 제품단가가 상승하여 안 좋다.
R/W, RS, DB0~DB7은 모두 ARM에 연결하고,
E단자는 제품특성에 따라 데이터버스에 다른 장치가 없다면 E단자를 VCC에 연결하여 항상 명령을 받을 수 있게 하고,
                                               다른 장치가 많아서 칩셀렉트(Chip Selecte)를 해야한다면 MCU에 연결하자.

15번, 16핀 LED백라이트는 켜고 끄는 제어가 필요하다면 드라이버를 통해 MCU와 연결하고,
                                항상켜거나 끈다면 전원선에 연결하거나 방치해 두자.
 

image

image

RS핀부터 보면 쏘세지처럼 꼬인 부분 전에는 어떤 값이라도 상관없는 Don’t care이고,
잘 보면 E단자가 비활성상태 Low level이므로 그 동안에 LCD는 입력을 받을 수 없다.
그러나 LCD가 알아 듣는 시간이 필요한데 Setup time이라고 한다. 이 시간동안 다른 제어핀들은 준비가 완료된 상태여야 한다.
(RS핀, R/W핀)
아쉽게도 상기의 타이밍도에선 LCD가 활성상태로 바뀐 후 얼마의 시간이 흘러야 데이터버스의 값이 유효한 값이 되는지 나와있지 않다.
즉, E핀에 High level의 신호가 인가된 후 언제 값을 써야 될지 알 수 없다.
그러니 E핀에 High level의 신호를 인가한 후 바로 데이터를 데이터버스에 넣자. 또는 항상 넣어 놓자.
Figure7. Read Mode Timing Diagram을 보면 시간이 나와있다!


레지스터세팅


image 

설명란을 번역해 보니…


Instruction

Description

Clear Display

Write "20H" to DDRAM and set DDRAM address to "00H" from AC
지우기 디스플레이 DDRAM에 "20H"를 작성하세요 그리고 AC에서 "00H"로 DDRAM 주소 설정

Return Home

Set DDRAM address to "00H" from AC and return cursor to its original position if shifted.
The contents of DDRAM are not changed.
AC에서 "00H"로 홈 세트 DDRAM 주소를 반환하고 이동하면 원래 위치로 커서를 반환합니다.
DDRAM의 내용은 변경되지 않습니다.

Entry Mode Set

Assign cursor moving direction and enable the shift of entire display
입력 모드는 커서가 움직이는 방향을 지정 설정하고 전체 디스플레이의 변화를 활성화

Display ON/OFF Control

Set display(D), cursor(C), and blinking of cursor(B) on/off control bit.
제어 설정 표시 (D), 커서 (C) ON / OFF 표시하고, 커서의 점멸 (B) 제어 비트

Cursor or Display Shift

Set cursor moving and diplay shift control bit. and the direction, without changing of DDRAM data.
커서 또는 표시 시프트 설정 커서가 이동하고 diplay 이동 제어 비트. 와 방향, DDRAM 데이터를 변경하지 않고.

Function Set

Set interface data length (DL: 8bit/4bit) numbers of display line (N: 2line/1line) and,
display font type (F: 5*10 dots/5*8dots)
표시 라인의 숫자 (N : 2line/1line)와, : 기능 설정 인터페이스 데이터 길이 (8bit/4bit DL)을 설정
글꼴 유형 (: 5 * 10 도트 / 5 * 8dots F)을 표시

Set CGRAM Address

Set CGRAM address in address counter
주소 카운터에서 CGRAM 주소 설정 CGRAM 주소를 설정

Set DDRAM Address

Set DDRAM address in counter
카운터에서 DDRAM 주소 설정 DDRAM 주소 설정

Read Busy Flag and Address Counter

Whether during internal operation or not can be known by reading BF.
The contents of address counter can also be read.
비지 국기와 주소 카운터를 읽고 내부 작업 중 여부와 상관없이 것은 BF를 읽고으로 알려져 있습니다.
주소 카운터의 내용도 읽을 수 있습니다.

Write Data to RAM

Write data into internal RAM (DDRAM/CGRAM)
RAM에 데이터 내부 RAM (DDRAM / CGRAM)에 데이터를 쓰기

Read Data from RAM

Read data from internal RAM (DDRAM/CGRAM)
RAM에서 데이터 내부 RAM (DDRAM / CGRAM)에서 데이터를 읽기

NOTE: When an MPU program with checking the Busy Flag(DB7) is made,
         it must be necessary 1/2Fosc is necessary for executing the next instruction by the falling edge of the
         'E' signal after the Busy Flag (DB7) goes to “Low”.

참고 : 비지 플래그 (DB7)을 확인과 MPU 프로그램이 만든 때,
그것은 약속 국기 (DB7)이 "낮음"로 이동 후 'E'신호의 하강 에지에서 다음 명령어를 실행에 필요한 필요한 1/2Fosc해야합니다.

 

더욱 알 수 없게 되었다. -_ㅠ