37
7-Segment LED Controller 구현 Lecture #12

UART Controller 구현 - pds15.egloos.compds15.egloos.com/pds/200907/27/46/emhw12.pdf · 7-Segment LED Controller 설계(1) 7-Segment LED Controller 동작모드 단독모드(FPGA

  • Upload
    others

  • View
    47

  • Download
    0

Embed Size (px)

Citation preview

7-Segment LED Controller 구현

Lecture #12

2

학습목표

다양한실습을통해 VHDL의응용능력을기른다 기본적인타이밍도의이해및응용능력을배양한다

주로사용되는출력장치인 FND(7 Segment) 의특성을이해한다

3

강의순서

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

4

Output Device – 발광다이오드(LED)

LED(Light Emitting Diode) 화합물반도체의 PN접합다이오드로양단에전압의차를가하면빛을방출하는발광소자

그림 (A)와같이 2개의다리가나와있는데긴쪽이애노드(+)이며짧은쪽이캐소드(-)이다

약 2.5V정도의전압차가 2개의다리양단에걸리면빛을방출하는데, 보통디지털소자의출력이 5V이므로그림 (B)와같이저항을직렬로연결하여다이오드를보호한다

그림 (A) 그림 (B)

5

Output Device – 7-Segment LED (1)

7-Segment LED FND 라고도불리는데, 숫자나문자를표시하는데사용되는 7개의발광다이오드(LED)의모임

공통애노드(Common Anode) 형 : 다이오드의애노드를공통단자로사용한다

애노드단자에 5V를주고캐소드의각단자 a~g 까지 0V를주면다이오드에전류가흐르게되어발광한다

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

Common Anode 형

6

Output Device – 7-Segment LED (2)

Common Cathode 형

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

다이오드의캐소드를공통단자로사용한다

캐소드를접지시키고, 다이오드의애노드단자에 5V를주면전류가흐른다

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

7

Output Device –7-Segment LED Array (1)

Common Cathode 형 7-Segment LED 4 ARRAY 7-Segment LED 가 4개병렬로있는것 공통단자가캐소드형으로 com0, com1, com2, com3로 4개있으며, 애노드단자 a,b,c,d,e,f,g,dp는공통으로사용한다

LED를제어하기위한전체핀의개수를줄일수있는장점이있으나컨트롤은조금복잡해진다

8

Output Device –7-Segment LED Array (2)

Common Cathode 형 7-Segment LED 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

2

D28

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

9

Output Device –7-Segment LED 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가켜짐

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

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

고정된방식이아닌순차적으로번갈아가면서 LED를켜는방식으로제어 : 통상 1초당 60번이상켜지면항상켜지는것으로보이는잔상

효과이용.

10

Output Device –7-Segment LED Array (4)

PXA255-FPGA Board – 7-Segment LED 6 Array

11

Output Device –7-Segment LED Array (5)

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

Common Cathod 단자

Anode 단자

12

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

13

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

14

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

15

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

16

7-Segment LED Controller 설계 (1)

7-Segment LED Controller 동작모드 단독모드 (FPGA Dip S/W – off, on)

6 자리십진카운터동작을수행 Main clock을분주하여 1초단위로계수하고, 계수된값을십진

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

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

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

17

7-Segment LED Controller 설계 (2)

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

18

7-Segment LED Controller 설계 (3)

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

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

19

Quartus II Project 파일 생성 (1)

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

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

20

Quartus II Project 파일 생성 (2)

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

21

Quartus II Project 파일 생성 (3)

New Project Wizard ② 오른쪽의그림은다음단계인설계된파일이있으면추가하는단계

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

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

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

22

Quartus II Project 파일 생성 (4)

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

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

23

Quartus II Project 파일 생성 (5)

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

24

Quartus II Project 파일 생성 (6)

New Project Wizard ⑤ PXA255-FPGA에는 EP1C12Q240C8을사용하고있으므로해당

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

25

Quartus II Project 파일 생성 (7)

New Project Wizard ⑥ 지금까지설정을확인하는단계

프로젝트경로와프로젝트이름, top-level design entity 이름, 추가한파일의개수를확인

26

Quartus II Project 파일 생성 (8)

Project 생성

27

Quartus II Project 파일 생성 (9)

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

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

28

Quartus II Project 파일 생성 (10)

29

Quartus II Project 파일 생성 (11)

사용하지않는핀들에대한설정

Device 설정창에서 Device & Pin Options을선택

30

Quartus II Project 파일 생성 (12)

Unused Pin에대한설정 Reserve all unused pins에서 As Input, tri stated를선택 외부에아무런영향을주지않기위함

31

Quartus II Project 파일 생성 (13) Configuration에대한설정

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

32

Quartus II Project 파일 생성 (14)

기타설정

General 탭에서 Auto-restart configuration after error을선택 FPGA에서에러가발생하면자동으로다시 Configuration하게설정

33

Quartus II Project 파일 생성 (15)

Compilation 지금까지의설정이정상적으로이루어졌다면 Processing 메뉴에서 Start Compilation을실행

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

34

Quartus II Project 파일 생성 (16)

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

Programmer 실행 - EPC2에다운로드하거나 FPGA에Configuration 하기위해서 Programmer를실행

35

Quartus II Project 파일 생성 (17)

Configuration 파일불러오기 Byteblaster 케이블이 JTAG 포트에연결된상태에서 [Auto Detect] 를하면 EPC2와 EP1C6 두개의장치를검출

<none>를더블클릭하여 EPC2에는 io_top.pof 파일을, EP1C6에는io_top.sof파일을설정한다

36

Quartus II Project 파일 생성 (18)

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

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

37

7-Segment LED 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>