7-segment fnd controller 구현

37
7-Segment FND 7-Segment FND Controller Controller 구구 구구 Lecture #10 Lecture #10

Upload: kaden-gomez

Post on 01-Jan-2016

460 views

Category:

Documents


3 download

DESCRIPTION

7-Segment FND Controller 구현. Lecture #10. 학습목표. 다양한 실습을 통해 VHDL 의 응용능력을 기른다 기본적인 타이밍도의 이해 및 응용능력을 배양한다 주로 사용되는 출력 장치인 FND(7 Segment) 의 특성을 이해한다. 강의순서. 7-Segment LED(FND) 장치 PXA255-FPGA – FND 회로도 구성 7-Segment LED Controller 설계 7-Segment LED Controller 테스트. 발광다이오드 (LED). - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 7-Segment FND Controller  구현

7-Segment FND 7-Segment FND Controller Controller 구현구현

Lecture #10Lecture #10

Page 2: 7-Segment FND Controller  구현

2

학습목표 다양한 실습을 통해 VHDL 의 응용능력을 기른다 기본적인 타이밍도의 이해 및 응용능력을 배양한다 주로 사용되는 출력 장치인 FND(7 Segment) 의

특성을 이해한다

Page 3: 7-Segment FND Controller  구현

3

강의순서 7-Segment LED(FND) 장치 PXA255-FPGA – FND 회로도 구성 7-Segment LED Controller 설계 7-Segment LED Controller 테스트

Page 4: 7-Segment FND Controller  구현

4

발광다이오드 (LED)

LED(Light Emitting Diode) 화합물 반도체의 PN 접합 다이오드로 양단에 전압의 차를 가하면 빛을 방출하는 발광소자 그림 (A) 와 같이 2 개의 다리가 나와있는데 긴 쪽이 애노드 (+) 이며 짧은 쪽이 캐소드 (-)

이다 약 2.5V 정도의 전압차가 2 개의 다리 양단에 걸리면 빛을 방출하는데 , 보통 디지털소자의

출력이 5V 이므로 그림 (B) 와 같이 저항을 직렬로 연결하여 다이오드를 보호한다

그림 (A) 그림 (B)

Page 5: 7-Segment FND Controller  구현

5

7-Segment FND (1) 7-Segment FND

숫자나 문자를 표시하는데 사용되는 7 개의 발광다이오드 (LED) 의 모임 공통 애노드 (Common Anode) 형 :

다이오드의 애노드를 공통 단자로 사용한다 애노드 단자에 5V 를 주고 캐소드의 각 단자 a~g 까지 0V 를 주면

다이오드에 전류가 흐르게 되어 발광한다 다이오드의 파손 방지를 위해 저항을 연결 한다

Common Anode 형

Page 6: 7-Segment FND Controller  구현

6

7-Segment FND (2)

Common Cathode 형

7-Segment FND 공통 캐소드 (Common Cathode) 형 :

다이오드의 캐소드를 공통 단자로 사용한다 캐소드를 접지 시키고 , 다이오드의 애노드 단자에 5V 를 주면 전류가

흐른다 다이오드의 파손 방지를 위해 저항을 연결 한다

Page 7: 7-Segment FND Controller  구현

7

7-Segment FND Array (1)

Common Cathode 형 7-Segment FND 4 ARRAY 7-Segment FND 가 4 개 병렬로 있는 것 공통단자가 캐소드형으로 com0, com1, com2, com3 로 4 개

있으며 , 애노드 단자 a,b,c,d,e,f,g,dp 는 공통으로 사용한다 LED 를 제어하기 위한 전체 핀의 개수를 줄일 수 있는 장점이

있으나 컨트롤은 조금 복잡해진다

Page 8: 7-Segment FND Controller  구현

8

7-Segment FND Array (2)

Common Cathode 형 7-Segment FND 4 ARRAY Com0=0, Com1=Com2=Com3=1 인 경우 , 입력

a,b,c,d,e,f,g 중의 어느 하나가 1 이면 가장 왼쪽에 해당되는 Segment LED 가 발광한다

E GDB F DPC

COMMON0 COMMON1 COMMON2 COMMON3

A

D9

A

12

D17

A

12

D31

G

12

D32

DP

12

D23

G

12

D18

B

12

D30

F

12

D27

C

12

D25

A

12

D20

D

12

D24

DP

12

D29

E

12

D22

F

12

D26

B

12

D21

E1

2D28

D

12

D19

C

12

D2

B

12

R1220

D1

A

12

R2220

D3

C

12

R3220

D4

D

12

R4220

D5

E

12

D8

DP

12

R8220

R5220

R6220

D6

F

12

D7

G

12

R7220

D10

B

12

D12

D

12

D11

C

12

D14

F

12

D13

E

12

D15

G

12

D16

DP

12

Page 9: 7-Segment FND Controller  구현

9

7-Segment FND Array (3)

1 2 3 4 1 2 3 4

Com0=0 인 경우 첫 번째의 7-segment LED 가 켜짐Com1=0 인 경우 두 번째의 7-segment LED 가 켜짐Com2=0 인 경우 세 번째의 7-segment LED 가 켜짐Com3=0 인 경우 네 번째의 7-segment LED 가 켜짐

Com0=0 인 경우 첫 번째의 7-segment LED 가 켜짐Com1=0 인 경우 두 번째의 7-segment LED 가 켜짐Com2=0 인 경우 세 번째의 7-segment LED 가 켜짐Com3=0 인 경우 네 번째의 7-segment LED 가 켜짐

Common Cathode 형 7-Segment FND 4 개의 제어(Dynamic Display)

Seg_out=0110000 a=0,b=1,c=1,d=e=f=g=0을 의미함 .

Seg_out=0110000 a=0,b=1,c=1,d=e=f=g=0을 의미함 .

고정된 방식이 아닌 순차적으로 번갈아 가면서 LED 를 켜는

방식으로 제어 : 통상 1 초당 60번 이상 켜지면 항상 켜지는 것으로

보이는 잔상효과이용 .

고정된 방식이 아닌 순차적으로 번갈아 가면서 LED 를 켜는

방식으로 제어 : 통상 1 초당 60번 이상 켜지면 항상 켜지는 것으로

보이는 잔상효과이용 .

Page 10: 7-Segment FND Controller  구현

10

7-Segment LED Array (4)

PXA255-FPGA Board – 7-Segment FND 6 Array

Page 11: 7-Segment FND Controller  구현

11

7-Segment LED Array (5)

FND 를 이용한 데이터 표현 예 :

Common Cathod 단자

Anode 단자

Page 12: 7-Segment FND Controller  구현

12

PXA255-FPGA – FND 회로 구성 (1)

Page 13: 7-Segment FND Controller  구현

13

PXA255-FPGA – FND 회로 구성 (2)

Page 14: 7-Segment FND Controller  구현

14

PXA255-FPGA – FND 회로 구성 (3)

Page 15: 7-Segment FND Controller  구현

15

PXA255-FPGA – FND 회로 구성 (4)

Page 16: 7-Segment FND Controller  구현

16

7-Segment FND Controller 설계 (1) 7-Segment FND Controller 동작 모드

단독 모드 (FPGA Dip S/W – on, on) 6 자리 십진 카운터 동작을 수행 Main clock 을 분주하여 1 초 단위로 계수하고 , 계수된

값을 십진 6 자리 수로 FND array 를 통해 출력 연동 모드 (FPGA Dip S/W – off, on)

PXA255-Pro3 main board 에서 전송된 I/O 신호를 받아 FND array 에 출력

FPGA Dip S/W 설정에 따라 동작 모드를 결정

Page 17: 7-Segment FND Controller  구현

17

7-Segment FND Controller 설계 (2)

7-Segment FND Controller 구성요소 설계 fnd_6digit.vhd – 단독 동작 모드를 설계한 VHDL 파일 iom_mode.vhd – 연동 동작 모드를 설계한 VHDL 파일 mux_iom.vhd – FPGA Dip S/W 설정에 따라 I/O 을

선택하는 multiplexing 기능을 설계한 VHDL 파일 상기의 VHDL 파일 소스는 별도의 유인물 참조

Page 18: 7-Segment FND Controller  구현

18

7-Segment FND Controller 설계 (3)

7-Segment FND Controller 구성 io_top.bdf - top-level block diagram file

Page 19: 7-Segment FND Controller  구현

19

Quartus II Project 파일 생성 (1)

New Project Wizard 를 통한 Quartus II Project 생성하기 File 메뉴에서 New Project

Wizard 를 실행하여 새로운 프로젝트를 생성

Page 20: 7-Segment FND Controller  구현

20

Quartus II Project 파일 생성 (2)

New Project Wizard ① Project 를 설치할 경로 와 프로젝트의 이름과 top-level

entity 이름을 지정

Page 21: 7-Segment FND Controller  구현

21

Quartus II Project 파일 생성 (3)

New Project Wizard ② 오른쪽의 그림은 다음

단계인 설계된 파일이 있으면 추가 하는 단계

추가할 파일이 프로젝트 디렉토리에 있다면 [ADD ALL] 버튼을 클릭하면 모두 추가

[...] 버튼을 클릭하여 그림과 같이 4 개의 파일을 추가

[Next] 버튼을 눌러 다음 설정으로 이동

Page 22: 7-Segment FND Controller  구현

22

Quartus II Project 파일 생성 (4)

New Project Wizard ③ EDA Tool 에 대한 설정을 하는 부분 Thirth party EDA tool 을 사용한다면 설정하고 , 사용하지

않는다면 [Next] 버튼을 눌러 다음 설정으로 이동

Page 23: 7-Segment FND Controller  구현

23

Quartus II Project 파일 생성 (5)

New Project Wizard ④ Device Family 를 설정하는 부분 PXA255-FPGA 보드는 Cyclone 을 사용

Page 24: 7-Segment FND Controller  구현

24

Quartus II Project 파일 생성 (6)

New Project Wizard ⑤ PXA255-FPGA 에는 EP1C12Q240C8 을 사용하고

있으므로 해당 Device 를 선택 오른쪽 메뉴의 Filter 사용 하면 쉽게 선택할 수 있다

Page 25: 7-Segment FND Controller  구현

25

Quartus II Project 파일 생성 (7)

New Project Wizard ⑥ 지금까지 설정을 확인하는 단계 프로젝트경로와 프로젝트 이름 , top-level design entity

이름 , 추가한 파일의 개수를 확인

Page 26: 7-Segment FND Controller  구현

26

Quartus II Project 파일 생성 (8)

Project 생성

Page 27: 7-Segment FND Controller  구현

27

VHDL Compilation (1)

Pin Assignment Pin assignment

메뉴를 이용하여 pin 정보 입력

Pin Assign File 수정 - io_top.qps 파일을 열어서 옆 그림에 제시된 정보를 고려하여 핀 매핑에 대한 정보를 수정

Page 28: 7-Segment FND Controller  구현

28

VHDL Compilation (2)

Page 29: 7-Segment FND Controller  구현

29

VHDL Compilation (3)

사용하지 않는 핀들에 대한 설정 Device 설정 창에서 Device & Pin Options 을 선택

Page 30: 7-Segment FND Controller  구현

30

VHDL Compilation (4)

Unused Pin 에 대한 설정 Reserve all unused pins 에서 As Input, tri stated

를 선택 외부에 아무런 영향을 주지 않기 위함

Page 31: 7-Segment FND Controller  구현

31

VHDL Compilation (5) Configuration 에 대한 설정

그림과 같이 Configuration scheme 와 device 를 설정

Page 32: 7-Segment FND Controller  구현

32

VHDL Compilation (6)

기타 설정 General 탭에서 Auto-restart configuration after

error 을 선택 FPGA 에서 에러가 발생하면 자동으로 다시 Configuration

하게 설정

Page 33: 7-Segment FND Controller  구현

33

VHDL Compilation (7)

Compilation 지금까지의 설정이 정상적으로

이루어졌다면 Processing 메뉴에서 Start Compilation 을 실행

컴파일이 완료되면 ‘ Full compilation was successful‘ 이라는 메시지를 보여주며 컴파일이 끝나게 된다

Page 34: 7-Segment FND Controller  구현

34

FPGA Configuration (1)

Configuration 지금까지의 과정이 모두 끝났다면 FPGA 로 Configuration 을

하여야 한다 Programmer 실행 - EPC2 에 다운로드 하거나 FPGA 에

Configuration 하기 위해서 Programmer 를 실행

Page 35: 7-Segment FND Controller  구현

35

FPGA Configuration (2)

Configuration 파일 불러오기 Byteblaster 케이블이 JTAG 포트에 연결된 상태에서 [Auto Dete

ct] 를 하면 EPC2 와 EP1C6 두 개의 장치를 검출 <none> 를 더블 클릭하여 EPC2 에는 io_top.pof 파일을 , EP1C6

에는 io_top.sof 파일을 설정한다

Page 36: 7-Segment FND Controller  구현

36

FPGA Configuration (3)

Configuration Program/Configure 에 체크 옵션에 체크를 한다 [Start] 버튼을 클릭하면 체크한 항목에 대해서만 Download

및 Configuration 을 수행한다 [Start] 버튼을 클릭하여 실행한다

Page 37: 7-Segment FND Controller  구현

37

7-Segment FND Controller 테스트 디바이스 드라이버 설치 및 테스트 프로그램 실행

FPGA Dip S/W 를 (on, on) 으로 설정하여 연동 모드 선택 디바이스 드라이버와 테스트 프로그램을 타겟 보드에

다운로드하고 실행시킨다

# mknod /dev/FNDS c 241 0# insmod fnd_driver.o# chmod 777 test_fnd# ./test_fnd <input data>