Upload
niles
View
186
Download
0
Embed Size (px)
DESCRIPTION
Character LCD Controller 구현. Lecture #13. 학습목표. 다양한 실습을 통해 VHDL 의 응용능력을 기른다 기본적인 타이밍도의 이해 및 응용능력을 배양한다 주로 사용되는 출력 장치인 Character LCD 장치의 특성을 이해한다. 강의순서. Character LCD 장치 PXA255-FPGA – LCD 회로도 구성 Character LCD Controller 설계 Character LCD Controller 테스트. - PowerPoint PPT Presentation
Citation preview
Character LCD Controller Character LCD Controller 구현구현
Lecture #13
2
학습목표학습목표 다양한 실습을 통해 VHDL 의 응용능력을 기른다 기본적인 타이밍도의 이해 및 응용능력을 배양한다 주로 사용되는 출력 장치인 Character LCD 장치의 특성을
이해한다
3
강의순서강의순서 Character LCD 장치 PXA255-FPGA – LCD 회로도 구성 Character LCD Controller 설계 Character LCD Controller 테스트
4
Output Device – Character Output Device – Character LCD (1)LCD (1)
Character LCD ASCII 코드를 받아 문자를 출력하는 LCD 장치 임베디드 장치에 가장 많이 사용되는 출력 장치
휴인스 교재 p.327 ~p.356 참고
5
Output Device – Character Output Device – Character LCD (2)LCD (2)
Character LCD 내부 모듈 구조
6
Output Device – Character Output Device – Character LCD (3)LCD (3)
핀번호 기호 입 / 출력 기능
1 VSS 입력 0V (GND)
2 VDD 입력 +5V
3 VO 입력 가변저항 10K 를 달아서 LCD 글자의 밝기를 조절
4 RS 입력 LCD 자체의 명령과 데이터 입력을 제어 . ‘0’= 명령입력 ‘ 1’= 데이터입력
5 R/W 입력 ‘1’= Read, '0'= Write
6 E 입력 Enable 신호로 명령이 하나 입력될 때마다 펄스를 하나씩 내주어야 한다 .
7 DB0
양방향 데이터 버스
8 DB1
9 DB2
10 DB3
11 DB4
12 DB5
13 DB6
14 DB7
Character LCD 의 핀번호 (HD44780, HD44780A) 16 Characters x 2 Lines
7
Output Device – Character Output Device – Character LCD (4)LCD (4)
HD44780 의 내부 블록도
8
Output Device – Character Output Device – Character LCD (5)LCD (5)
내부 레지스터 IR (Instruction Register)
D.D.RAM 과 C.G.RAM 에 대한 주소정보와 클리어 , 커서이동에 대한 명령코드를 가지고 있다
DR(Data Register) D.D.RAM 과 C.G.RAM 에 데이터를 읽거나 써넣을 때
사용되는 레지스터 AC(Address Counter)
D.D.RAM 과 C.G.RAM 의 어드레스를 지정할 때 사용됨 D.D.RAM(Display Data RAM)
8 비트 문자코드의 디스플레이 데이터를 가지고있으며 최대용량은 80x8 비트인 80 문자이다
C.G.ROM(Character Generator ROM) 문자코드를 저장하고 있다
C.G.RAM(Character Generator RAM) 사용자가 문자를 새로이 만들 때 사용되는 RAM 이다
9
Output Device – Character Output Device – Character LCD (6)LCD (6)
텍스트 LCD 모듈의 제어
기 능제어신호 제어 명령
Execute TimeRS R/W D7 D6 D5 D4 D3 D2 D1 D0
Clear Display 0 0 0 0 0 0 0 0 0 1 1.64mS
Return Home 0 0 0 0 0 0 0 0 1 0 40uS
Entry Mode Set 0 0 0 0 0 0 0 1 I/D S 40uS
Display on/off Control 0 0 0 0 0 0 1 D C S 40uS
Cursor or Display Shift 0 0 0 0 0 1 S/C R/L 0 0 40uS
Function Set 0 0 0 0 1D/L
N F 0 0 40uS
Set CG RAM Address 0 0 0 1 CG RAM Address 40uS
Set DD RAM Address 0 0 1 DD RAM Address 40uS
Read Busy Flag and Address
0 1 BF Address Counter 40uS
Data Write to CG RAM or DD RAM
1 0 Write Address 40uS
Data Read to CG RAM or DD RAM
1 1 Read Address 40uS
10
Output Device – Character Output Device – Character LCD (7)LCD (7)
Display Data RAM 의 주소와 LCD 의 문자위치의 관계 D.D.RAM 은 8 비트 문자코드에 상응하는 디스플레이 데이터를
저장한다 80 개의 문자를 저장하며 , 아래는 16 문자 2 라인 LCD 의
경우를 나타낸 것임 첫 번째 라인의 끝과 두 번째 라인의 시작의 주소가 연결되지
않으므로 각각의 라인이 끝나게 되면 D.D.RAM 의 주소를 새로이 설정해야 한다
열위치 -> 1 2 3 4 5 6 7 8 9 10
11
12
13 14
15
16
1 행 -> 00 01
02
03
04
05
06 07
08
09
0A
0B
0C 0D
0E
0F
2 행 -> 40 41
42
43
44
45
46 47
48
49
4A
4B
4C 4D
4E
4FD.D.RAM 의
주소
11
Output Device – Character Output Device – Character LCD (8)LCD (8)
사용자 정의 문자 출력하기1. 사용자 정의 문자 패턴의 크기
5x7 8 바이트 정보로 표현2. IR 레지스터에 CG-RAM
주소 설정3. DR 레지스터에 문자 패턴
정보 1 바이트 설정4. 8 바이트 정보 입력이 완료될
때까지 2, 3 번 과정 반복5. DD-RAM 에 출력하고자 하는
사용자 정의 문자의 코드(0x00~ 0x07) 을 설정
6. 사용자 정의 문자 출력
12
Output Device – Character Output Device – Character LCD (9)LCD (9)
Character LCD 의 초기화 과정 Function Set( 이진수 :001x xx00). Display ON/OFF Control(0000 1xxx) Setting. Entry Mode Set(0000 01xx). DD RAM 주소 Setting. 문자 데이터를 연속으로 보낸다
( 예 )process( LCD_mode )begin case LCD_mode is when "0001" => data<="00111100"; -- Function Setting : D/L=1(8bits Interface),NF=11(5x7 문자 2 lines) when "0010" => data<="00111100"; when "0011" => data<="00111100"; when "0100" => data<="00111100"; when "0101" => data<="00000001"; -- Display Clear : LCD 화면 지움 , 커서위치는 홈 , DDRAM 의 주소카운터는 0 when "0110" => data<="00000110"; -- Entry Mode Setting : I/D=1, S=0 디스플레이는 시프트되지 않음 . when "0111" => data<="00001100"; -- Display On/Off setting : DCS=100 ( 모든 글자가 나타남 . 커서는 없음 .) when "1000" => data<= Dsp_Data; -- Display Data when others => data<="00000000"; end case;end process;
13
Output Device – Character LCD Output Device – Character LCD (10)(10)
Timing Diagram(Write)
min=60ns min=20ns
min=450ns
min=195ns min=10ns
min=1000ns
tAS : Address Setup TimetAH : Address Hold TimePWEH : Enable Pulse WidthtDSW : Data Setup TimetH : Data Hold TimetcycE : Enable Cycle Time
tAS : Address Setup TimetAH : Address Hold TimePWEH : Enable Pulse WidthtDSW : Data Setup TimetH : Data Hold TimetcycE : Enable Cycle Time
14
Output Device – Character LCD Output Device – Character LCD (11)(11)
Timing Diagram(Read)
min=60ns min=20ns
min=450ns
max=360ns min=5ns
min=1000ns
tAS : Address Setup TimetAH : Address Hold TimePWEH : Enable Pulse WidthtDDR : Data Delay TimetH : Data Hold TimetcycE : Enable Cycle Time
tAS : Address Setup TimetAH : Address Hold TimePWEH : Enable Pulse WidthtDDR : Data Delay TimetH : Data Hold TimetcycE : Enable Cycle Time
15
PXA255-FPGA – LCD PXA255-FPGA – LCD 회로 구성 회로 구성 (1)(1)
16
PXA255-FPGA – LCD PXA255-FPGA – LCD 회로 구성 회로 구성 (2)(2)
17
PXA255-FPGA – LCD PXA255-FPGA – LCD 회로 구성 회로 구성 (3)(3)
18
PXA255-FPGA – LCD PXA255-FPGA – LCD 회로 구성 회로 구성 (4)(4)
19
Character LCD Controller Character LCD Controller 설계 설계 (1)(1) Character LCD Controller 동작 모드
단독 모드 (FPGA Mode Dip S/W – off, on) PXA255-FPGA 보드의 8-bit dip switch 값을 읽어 일련의
메시지와 함께 LCD 장치에 출력 연동 모드 (FPGA Mode Dip S/W – on, on)
PXA255-Pro3 main board 에서 전송된 I/O 신호를 받아 LCD 장치에 출력
FPGA Mode Dip S/W 설정에 따라 동작 모드를 결정
20
Character LCD Controller Character LCD Controller 설계 설계 (2)(2) Character LCD Controller 구성
io_top.bdf - top-level block diagram file
21
Character LCD Controller Character LCD Controller 설계 설계 (3)(3) Character LCD Controller 구성요소 설계
lcd_2x16.vhd – 단독 동작 모드를 설계한 VHDL 파일 dip_sw.vhd – 8-bit dip switch 값을 읽는 구성요소를
설계한 VHDL 파일 iom_mode.vhd – 연동 동작 모드를 설계한 VHDL 파일 mux_iom.vhd – FPGA Mode Dip S/W 설정에 따라 I/O 을
선택하는 multiplexing 기능을 설계한 VHDL 파일 상기의 VHDL 파일 소스는 별도의 유인물 참조
22
Quartus II Project Quartus II Project 파일 생성 파일 생성 (1)(1) New Project Wizard 를 통한
Quartus II Project 생성하기 File 메뉴에서 New Project
Wizard 를 실행하여 새로운 프로젝트를 생성
23
Quartus II Project Quartus II Project 파일 생성 파일 생성 (2)(2) New Project Wizard ①
Project 를 설치할 경로 와 프로젝트의 이름과 top-level entity 이름을 지정
24
Quartus II Project Quartus II Project 파일 생성 파일 생성 (3)(3) New Project Wizard ②
오른쪽의 그림은 다음 단계인 설계된 파일이 있으면 추가 하는 단계
추가할 파일이 프로젝트 디렉토리에 있다면 [ADD ALL] 버튼을 클릭하면 모두 추가
[...] 버튼을 클릭하여 그림과 같이 4 개의 파일을 추가
[Next] 버튼을 눌러 다음 설정으로 이동
25
Quartus II Project Quartus II Project 파일 생성 파일 생성 (4)(4) New Project Wizard ③
EDA Tool 에 대한 설정을 하는 부분 Thirth party EDA tool 을 사용한다면 설정하고 , 사용하지
않는다면 [Next] 버튼을 눌러 다음 설정으로 이동
26
Quartus II Project Quartus II Project 파일 생성 파일 생성 (5)(5) New Project Wizard ④
Device Family 를 설정하는 부분 PXA255-FPGA 보드는 Cyclone 을 사용
27
Quartus II Project Quartus II Project 파일 생성 파일 생성 (6)(6) New Project Wizard ⑤
PXA255-FPGA 에는 EP1C12Q240C8 을 사용하고 있으므로 해당 Device 를 선택
오른쪽 메뉴의 Filter 사용 하면 쉽게 선택할 수 있다
28
Quartus II Project Quartus II Project 파일 생성 파일 생성 (7)(7) New Project Wizard ⑥
지금까지 설정을 확인하는 단계 프로젝트경로와 프로젝트 이름 , top-level design entity 이름 , 추가한
파일의 개수를 확인
29
Quartus II Project Quartus II Project 파일 생성 파일 생성 (8)(8) Project 생성
30
Quartus II Project Quartus II Project 파일 생성 파일 생성 (9)(9) Pin Assignment
Pin assignment 메뉴를 이용하여 pin 정보 입력
Pin Assign File 수정 - io_top.qps 파일을 열어서 옆 그림에 제시된 정보를 고려하여 핀 매핑에 대한 정보를 수정
31
Quartus II Project Quartus II Project 파일 생성 파일 생성 (10)(10)
32
Quartus II Project Quartus II Project 파일 생성 파일 생성 (11)(11) 사용하지 않는 핀들에 대한 설정
Device 설정 창에서 Device & Pin Options 을 선택
33
Quartus II Project Quartus II Project 파일 생성 파일 생성 (12)(12) Unused Pin 에 대한 설정
Reserve all unused pins 에서 As Input, tri stated 를 선택 외부에 아무런 영향을 주지 않기 위함
34
Quartus II Project Quartus II Project 파일 생성 파일 생성 (13)(13) Configuration 에 대한 설정
그림과 같이 Configuration scheme 와 device 를 설정
35
Quartus II Project Quartus II Project 파일 생성 파일 생성 (14)(14) 기타 설정
General 탭에서 Auto-restart configuration after error 을 선택 FPGA 에서 에러가 발생하면 자동으로 다시 Configuration 하게 설정
36
Quartus II Project Quartus II Project 파일 생성 파일 생성 (15)(15) Compilation
지금까지의 설정이 정상적으로 이루어졌다면 Processing 메뉴에서 Start Compilation 을 실행
컴파일이 완료되면 ‘ Full compilation was successful‘ 이라는 메시지를 보여주며 컴파일이 끝나게 된다
37
Quartus II Project Quartus II Project 파일 생성 파일 생성 (16)(16) Configuration
지금까지의 과정이 모두 끝났다면 FPGA 로 Configuration 을 하여야 한다
Programmer 실행 - EPC2 에 다운로드 하거나 FPGA 에 Configuration 하기 위해서 Programmer 를 실행
38
Quartus II Project Quartus II Project 파일 생성 파일 생성 (17)(17) Configuration 파일 불러오기
Byteblaster 케이블이 JTAG 포트에 연결된 상태에서 [Auto Detect] 를 하면 EPC2 와 EP1C6 두 개의 장치를 검출
<none> 를 더블 클릭하여 EPC2 에는 io_top.pof 파일을 , EP1C6에는 io_top.sof 파일을 설정한다
39
Quartus II Project Quartus II Project 파일 생성 파일 생성 (18)(18) Configuration
Program/Configure 에 체크 옵션에 체크를 한다 [Start] 버튼을 클릭하면 체크한 항목에 대해서만 Download 및
Configuration 을 수행한다 [Start] 버튼을 클릭하여 실행한다
40
Character LCD Controller Character LCD Controller 테스트테스트
디바이스 드라이버 설치 및 테스트 프로그램 실행 FPGA Mode Dip S/W 를 (on, on) 으로 설정하여 연동 모드
선택 디바이스 드라이버와 테스트 프로그램을 타겟 보드에
다운로드하고 실행시킨다
# mknod /dev/TXTLCD c 242 0
# insmod lcd_driver.o
# chmod 777 test_lcd
# ./test_fnd