Character LCD Controller 구현 Lecture #11
학습목표 다양한 실습을 통해 VHDL의 응용능력을 기른다 기본적인 타이밍도의 이해 및 응용능력을 배양한다 주로 사용되는 출력 장치인 Character LCD 장치의 특성을 이해한다 모바일컴퓨터특강
강의순서 Character LCD 장치 PXA255-FPGA – LCD 회로도 구성 Character LCD Controller 설계 Character LCD Controller 테스트 모바일컴퓨터특강
Output Device – Character LCD (1) ASCII 코드를 받아 문자를 출력하는 LCD 장치 임베디드 장치에 가장 많이 사용되는 출력 장치 휴인스 교재 p.327 ~p.356 참고 모바일컴퓨터특강
Output Device – Character LCD (2) 모바일컴퓨터특강
Output Device – Character LCD (3) Character LCD의 핀번호(HD44780, HD44780A) 16 Characters x 2 Lines 핀번호 기호 입/출력 기능 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 모바일컴퓨터특강
Output Device – Character LCD (4) HD44780의 내부 블록도 모바일컴퓨터특강
Output Device – Character 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이다 모바일컴퓨터특강
Output Device – Character LCD (6) 기 능 제어신호 제어 명령 Execute Time RS R/W D7 D6 D5 D4 D3 D2 D1 D0 Clear Display 1 1.64mS Return Home 40uS Entry Mode Set I/D S Display on/off Control D C Cursor or Display Shift S/C R/L Function Set D/L N F Set CG RAM Address CG RAM Address Set DD RAM Address DD RAM Address Read Busy Flag and Address BF Address Counter Data Write to CG RAM or DD RAM Write Address Data Read to CG RAM or DD RAM Read Address 모바일컴퓨터특강
Output Device – Character 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 4F D.D.RAM의 주소 모바일컴퓨터특강
Output Device – Character LCD (8) 사용자 정의 문자 출력하기 사용자 정의 문자 패턴의 크기 5x7 8 바이트 정보로 표현 IR 레지스터에 CG-RAM 주소 설정 DR 레지스터에 문자 패턴 정보 1 바이트 설정 8 바이트 정보 입력이 완료될 때까지 2, 3번 과정 반복 DD-RAM에 출력하고자 하는 사용자 정의 문자의 코드(0x00~ 0x07)을 설정 사용자 정의 문자 출력 모바일컴퓨터특강
Output Device – Character LCD (9) 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; 모바일컴퓨터특강
Output Device – Character LCD (10) tAH : Address Hold Time tAS : Address Setup Time PWEH : Enable Pulse Width tDSW : Data Setup Time tH : Data Hold Time tcycE : Enable Cycle Time Timing Diagram(Write) min=60ns min=20ns min=450ns min=195ns min=10ns min=1000ns 모바일컴퓨터특강
Output Device – Character LCD (11) tAH : Address Hold Time tAS : Address Setup Time PWEH : Enable Pulse Width tDDR : Data Delay Time tH : Data Hold Time tcycE : Enable Cycle Time Timing Diagram(Read) min=60ns min=20ns min=450ns max=360ns min=5ns min=1000ns 모바일컴퓨터특강
PXA255-FPGA – LCD 회로 구성 (1) 모바일컴퓨터특강
PXA255-FPGA – LCD 회로 구성 (2) 모바일컴퓨터특강
PXA255-FPGA – LCD 회로 구성 (3) 모바일컴퓨터특강
PXA255-FPGA – LCD 회로 구성 (4) 모바일컴퓨터특강
Character LCD Controller 설계 (1) 단독 모드 (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 설정에 따라 동작 모드를 결정 모바일컴퓨터특강
Character LCD Controller 설계 (2) 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 파일 소스는 별도의 유인물 참조 모바일컴퓨터특강
Character LCD Controller 설계 (3) io_top.bdf - top-level block diagram file 모바일컴퓨터특강
Quartus II Project 파일 생성 (1) New Project Wizard를 통한 Quartus II Project 생성하기 File 메뉴에서 New Project Wizard를 실행하여 새로운 프로젝트를 생성 모바일컴퓨터특강
Quartus II Project 파일 생성 (2) New Project Wizard ① Project를 설치할 경로 와 프로젝트의 이름과 top-level entity 이름을 지정 모바일컴퓨터특강
Quartus II Project 파일 생성 (3) New Project Wizard ② 오른쪽의 그림은 다음 단계인 설계된 파일이 있으면 추가 하는 단계 추가할 파일이 프로젝트 디렉토리에 있다면 [ADD ALL] 버튼을 클릭하면 모두 추가 [...] 버튼을 클릭하여 그림과 같이 4개의 파일을 추가 [Next]버튼을 눌러 다음 설정으로 이동 모바일컴퓨터특강
Quartus II Project 파일 생성 (4) New Project Wizard ③ EDA Tool 에 대한 설정을 하는 부분 Third party EDA tool을 사용한다면 설정하고, 사용하지 않는다면 [Next]버튼을 눌러 다음 설정으로 이동 모바일컴퓨터특강
Quartus II Project 파일 생성 (5) New Project Wizard ④ Device Family를 설정하는 부분 PXA255-FPGA보드는 Cyclone을 사용 모바일컴퓨터특강
Quartus II Project 파일 생성 (6) New Project Wizard ⑤ PXA255-FPGA에는 EP1C12Q240C8을 사용하고 있으므로 해당 Device를 선택 오른쪽 메뉴의 Filter사용 하면 쉽게 선택할 수 있다 모바일컴퓨터특강
Quartus II Project 파일 생성 (7) New Project Wizard ⑥ 지금까지 설정을 확인하는 단계 프로젝트경로와 프로젝트 이름, top-level design entity 이름, 추가한 파일의 개수를 확인 모바일컴퓨터특강
Quartus II Project 파일 생성 (8) 모바일컴퓨터특강
Quartus II Project 파일 생성 (9) Pin Assignment Pin assignment 메뉴를 이용하여 pin 정보 입력 Pin Assign File 수정 - io_top.qps 파일을 열어서 옆 그림에 제시된 정보를 고려하여 핀 매핑에 대한 정보를 수정 모바일컴퓨터특강
Quartus II Project 파일 생성 (10) 모바일컴퓨터특강
Quartus II Project 파일 생성 (11) 사용하지 않는 핀들에 대한 설정 Device 설정 창에서 Device & Pin Options을 선택 모바일컴퓨터특강
Quartus II Project 파일 생성 (12) Unused Pin에 대한 설정 Reserve all unused pins에서 As Input, tri stated를 선택 외부에 아무런 영향을 주지 않기 위함 모바일컴퓨터특강
Quartus II Project 파일 생성 (13) Configuration에 대한 설정 그림과 같이 Configuration scheme와 device를 설정 모바일컴퓨터특강
Quartus II Project 파일 생성 (14) 기타 설정 General 탭에서 Auto-restart configuration after error을 선택 FPGA에서 에러가 발생하면 자동으로 다시 Configuration하게 설정 모바일컴퓨터특강
Quartus II Project 파일 생성 (15) Compilation 지금까지의 설정이 정상적으로 이루어졌다면 Processing 메뉴에서 Start Compilation을 실행 컴파일이 완료되면 ‘Full compilation was successful‘ 이라는 메시지를 보여주며 컴파일이 끝나게 된다 모바일컴퓨터특강
Quartus II Project 파일 생성 (16) Configuration 지금까지의 과정이 모두 끝났다면 FPGA로 Configuration을 하여야 한다 Programmer 실행 - EPC2에 다운로드 하거나 FPGA에 Configuration 하기 위해서 Programmer를 실행 모바일컴퓨터특강
Quartus II Project 파일 생성 (17) Configuration 파일 불러오기 Byteblaster 케이블이 JTAG 포트에 연결된 상태에서 [Auto Detect] 를 하면 EPC2와 EP1C6 두 개의 장치를 검출 <none>를 더블 클릭하여 EPC2에는 io_top.pof 파일을, EP1C6에는 io_top.sof파일을 설정한다 모바일컴퓨터특강
Quartus II Project 파일 생성 (18) Configuration Program/Configure에 체크 옵션에 체크를 한다 [Start]버튼을 클릭하면 체크한 항목에 대해서만 Download 및 Configuration을 수행한다 [Start]버튼을 클릭하여 실행한다 모바일컴퓨터특강
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 모바일컴퓨터특강