1 / 40

Character LCD Controller 구현

Character LCD Controller 구현. Lecture #13. 학습목표. 다양한 실습을 통해 VHDL 의 응용능력을 기른다 기본적인 타이밍도의 이해 및 응용능력을 배양한다 주로 사용되는 출력 장치인 Character LCD 장치의 특성을 이해한다. 강의순서. Character LCD 장치 PXA255-FPGA – LCD 회로도 구성 Character LCD Controller 설계 Character LCD Controller 테스트.

niles
Download Presentation

Character LCD Controller 구현

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Character LCD Controller 구현 Lecture #13

  2. 학습목표 • 다양한 실습을 통해 VHDL의 응용능력을 기른다 • 기본적인 타이밍도의 이해 및 응용능력을 배양한다 • 주로 사용되는 출력 장치인 Character LCD 장치의 특성을 이해한다

  3. 강의순서 • Character LCD 장치 • PXA255-FPGA – LCD 회로도 구성 • Character LCD Controller 설계 • Character LCDController 테스트

  4. Output Device – Character LCD (1) • Character LCD • ASCII 코드를 받아 문자를 출력하는 LCD 장치 • 임베디드 장치에 가장 많이 사용되는 출력 장치 • 휴인스 교재 p.327 ~p.356 참고

  5. Output Device – Character LCD (2) • Character LCD 내부 모듈 구조

  6. Output Device – Character LCD (3) • Character LCD의 핀번호(HD44780, HD44780A) • 16 Characters x 2 Lines

  7. Output Device – Character LCD (4) • HD44780의 내부 블록도

  8. 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이다

  9. Output Device – Character LCD (6) • 텍스트 LCD모듈의 제어

  10. Output Device – Character LCD (7) • Display Data RAM의 주소와 LCD의 문자위치의 관계 • D.D.RAM은 8비트 문자코드에 상응하는 디스플레이 데이터를 저장한다 • 80개의 문자를 저장하며, 아래는 16문자 2라인 LCD의 경우를 나타낸 것임 • 첫 번째 라인의 끝과 두 번째 라인의 시작의 주소가 연결되지 않으므로 각각의 라인이 끝나게 되면 D.D.RAM의 주소를 새로이 설정해야 한다 D.D.RAM의 주소

  11. Output Device – Character LCD (8) • 사용자 정의 문자 출력하기 • 사용자 정의 문자 패턴의 크기 5x7  8 바이트 정보로 표현 • IR 레지스터에 CG-RAM 주소 설정 • DR 레지스터에 문자 패턴 정보 1 바이트 설정 • 8 바이트 정보 입력이 완료될 때까지 2, 3번 과정 반복 • DD-RAM에 출력하고자 하는 사용자 정의 문자의 코드(0x00~ 0x07)을 설정 • 사용자 정의 문자 출력

  12. Output Device – Character 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. min=20ns min=60ns min=450ns min=195ns min=10ns min=1000ns Output Device – Character LCD (10) tAS : Address Setup Time tAH : Address Hold Time PWEH : Enable Pulse Width tDSW : Data Setup Time tH : Data Hold Time tcycE : Enable Cycle Time • Timing Diagram(Write)

  14. min=60ns min=20ns min=450ns max=360ns min=5ns min=1000ns Output Device – Character LCD (11) tAS : Address Setup Time tAH : Address Hold Time PWEH : Enable Pulse Width tDDR : Data Delay Time tH : Data Hold Time tcycE : Enable Cycle Time • Timing Diagram(Read)

  15. PXA255-FPGA – LCD 회로 구성 (1)

  16. PXA255-FPGA – LCD 회로 구성 (2)

  17. PXA255-FPGA – LCD 회로 구성 (3)

  18. PXA255-FPGA – LCD 회로 구성 (4)

  19. Character LCD Controller 설계 (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 설계 (2) • Character LCD Controller 구성 • io_top.bdf - top-level block diagram file

  21. Character LCD Controller 설계 (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 파일 생성 (1) • New Project Wizard를 통한 Quartus II Project 생성하기 • File 메뉴에서 New Project Wizard를 실행하여 새로운 프로젝트를 생성

  23. Quartus II Project 파일 생성 (2) • New Project Wizard ① • Project를 설치할 경로 와 프로젝트의 이름과 top-level entity 이름을 지정

  24. Quartus II Project 파일 생성 (3) • New Project Wizard ② • 오른쪽의 그림은 다음 단계인 설계된 파일이 있으면 추가 하는 단계 • 추가할 파일이 프로젝트 디렉토리에 있다면 [ADD ALL] 버튼을 클릭하면 모두 추가 • [...] 버튼을 클릭하여 그림과 같이 4개의  파일을 추가 • [Next]버튼을 눌러 다음 설정으로 이동

  25. Quartus II Project 파일 생성 (4) • New Project Wizard ③ • EDA Tool 에 대한 설정을 하는 부분 • Thirth party EDA tool을 사용한다면 설정하고, 사용하지 않는다면 [Next]버튼을 눌러 다음 설정으로 이동

  26. Quartus II Project 파일 생성 (5) • New Project Wizard ④ • Device Family를 설정하는 부분 • PXA255-FPGA보드는 Cyclone을 사용

  27. Quartus II Project 파일 생성 (6) • New Project Wizard ⑤ • PXA255-FPGA에는 EP1C12Q240C8을 사용하고 있으므로 해당 Device를 선택 • 오른쪽 메뉴의 Filter사용 하면 쉽게 선택할 수 있다

  28. Quartus II Project 파일 생성 (7) • New Project Wizard ⑥ • 지금까지 설정을 확인하는 단계 • 프로젝트경로와 프로젝트 이름, top-level design entity 이름, 추가한 파일의 개수를 확인

  29. Quartus II Project 파일 생성 (8) • Project 생성

  30. Quartus II Project 파일 생성 (9) • Pin Assignment • Pin assignment 메뉴를 이용하여 pin 정보 입력 • Pin Assign File 수정 - io_top.qps 파일을 열어서 옆 그림에 제시된 정보를 고려하여 핀 매핑에 대한 정보를 수정

  31. Quartus II Project 파일 생성 (10)

  32. Quartus II Project 파일 생성 (11) • 사용하지 않는 핀들에 대한 설정 • Device 설정 창에서 Device & Pin Options을 선택

  33. Quartus II Project 파일 생성 (12) • Unused Pin에 대한 설정 • Reserve all unused pins에서 As Input, tri stated를 선택 • 외부에 아무런 영향을 주지 않기 위함

  34. Quartus II Project 파일 생성 (13) • Configuration에 대한 설정 • 그림과 같이 Configuration scheme와 device를 설정

  35. Quartus II Project 파일 생성 (14) • 기타 설정 • General 탭에서  Auto-restart configuration after error을 선택 • FPGA에서 에러가 발생하면 자동으로 다시 Configuration하게 설정

  36. Quartus II Project 파일 생성 (15) • Compilation • 지금까지의 설정이 정상적으로 이루어졌다면 Processing 메뉴에서 Start Compilation을 실행 • 컴파일이 완료되면 ‘Full compilation was successful‘ 이라는 메시지를 보여주며 컴파일이 끝나게 된다

  37. Quartus II Project 파일 생성 (16) • Configuration • 지금까지의 과정이 모두 끝났다면 FPGA로 Configuration을 하여야 한다 • Programmer 실행 - EPC2에 다운로드 하거나 FPGA에 Configuration 하기 위해서 Programmer를 실행

  38. Quartus II Project 파일 생성 (17) • Configuration 파일 불러오기 • Byteblaster 케이블이 JTAG 포트에 연결된 상태에서 [Auto Detect] 를 하면 EPC2와 EP1C6 두 개의 장치를 검출 • <none>를 더블 클릭하여 EPC2에는 io_top.pof 파일을, EP1C6에는 io_top.sof파일을 설정한다

  39. Quartus II Project 파일 생성 (18) • Configuration • Program/Configure에 체크 옵션에 체크를 한다 • [Start]버튼을 클릭하면 체크한 항목에 대해서만 Download 및 Configuration을 수행한다 • [Start]버튼을 클릭하여 실행한다

  40. 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

More Related