패러랠 포트의 활용
전자자작동호회원이 다루기 만만한 PC의 인터페이스는 시리얼 포트나 패러랠 포트 되겠습니다.
애너로그 입력을 받을 때는 게임 포트도 손대볼 만 하겠죠. 물론, USB나 FireWire 같은
인터페이스가 더 뽀대가 좋으나 내공 부족으로 무효. 어려운 것은 쳐다도 보지 말자.
이 강좌에서는 그 만만하다는 패러랠 포트를 가지고 몇가지 장난을 쳐보려고 합니다.
전자자작동호회인 만큼 아주 약한 전자공작도 해볼라구 그럽니다.
오늘은 그 첫시간으로 패러랠 포트의 핀아웃을 살펴보기로 하겠습니다.
1. 패러랠 포트 핀아웃, 레지스터
PC 뒷편을 보면 오늘도 DSUB 25핀 암컷 커넥터가 굳건히 자리하고 있습니다.
눈 크게 뜨고 커넥터를 살펴보면 아주 싸구려 커넥터 아닌담에야 각 핀에 번호가 쓰여져 있을 겁니다.
<<핀아웃>>위 그림을 보면 Status 레지스터와 관계된 핀이 5개, Control 레지스터와 관계된 핀이 4개,
Data 레지스터와 관계된 핀이 8개, 그라운드가 8개, 도합 25핀이 있습니다.
핀번호 |
신호 |
방향 |
레지스터-비트 |
1 |
nStrobe |
Out |
C0 |
2~9 |
Data0~Data7 |
I/O |
D[0:7] |
10 |
nAck |
In |
S6 |
11 |
Busy |
In |
S7 |
12 |
PaperEnd |
In |
S5 |
13 |
Select |
In |
S4 |
14 |
LineFeed |
Out |
C1 |
15 |
nError |
In |
S3 |
16 |
nInit |
Out |
C2 |
17 |
nSelectIn |
Out |
C3 |
18~25 |
GND |
- |
- |
<<표>> 웬만하면 골아픈 표는 옮기고 싶지 않았지만 옮겨버리고 말았습니다. 표에서 nStrobe, Busy 등은
기능상 붙여 놓은 이름입니다. 때문에 기능이 바뀌면 이름도 바뀝니다. EPP모드나 ECP모드에서는
핀의 이름을 다르게 부릅니다. 따라서 앞으로는 레지스터-비트 이름으로 부르도록 하겠습니다.
분홍색으로 표시된 핀은 내부에 인버터가 달려 있습니다. 따라서 레지스터의 값과 핀의 신호는
서로 반대가 됩니다. 어쨌든 Control은 출력, Data는 입출력, Status는 입력인 것 같군요.
2. 실험실습기자재 제작
이제 실험실습기자재를 만들 시간이 되었습니다. 아직 패러랠 포트에 대한 설명은
시작도 하지 않았지만 역시 실물을 보면서 설명하는 것이 이해가 빠를 것이므로 일단 만들고 보겠습니다.
회로도를 보시죠
<<실험실습기자재 회로도>>다음은 완성시킨 모습입니다.
<<완성되어 수줍어 하고 있는 실험실습기자재>>여기서 약간 고심했는데 위의 사진 처럼 만들려면 PCB를 제작할 수 있어야 합니다.
해보신 분께서는 간단해 보이시겠지만 안해본 사람에게는 감광기판에 각종 화학약품과 드릴등을 동원하는
작업이 만만할 리가 없겠습니다. 그래서 요 시점에서 만능기판 버젼으로 바꿔보았습니다.
<<만능기판 레이아웃>>사용하는 부품이 대부분 만능기판에 잘 맞지만, DSUB 커넥터는 그렇지 않으므로
핀헤더 26핀짜리를 사용했습니다. DSUB 25핀 수컷 커넥터에 플랫케이블 납땜하고 반대쪽 끝에
플랫케이블 커넥터 찝어주면 핀헤더에 연결할 수 있습니다. 저는 운이 좋아서 오래된 PC에서
아래와 같은 케이블을 찾았습니다. 끝이 암컷이긴 하지만 트랜스젠더를 사용하면 되겠죠.
<<골동품>>레이아웃에는 나와있지 않지만 앞으로의 실험을 위해 다음과 같은 부품을 미리 준비하시면 좋겠습니다.
DIP 스위치 10핀 |
Status 레지스터의 입력실험 |
DIP 스위치 16핀 |
Data 레지스터의 입력실험 |
LCD 모듈 |
HD44780 호환 14핀, 백라이트는 필요없음 |
24LCxx |
I2C 테스트용 EEPROM, 따라서 용량은 상관없음 |
마지막으로, USB에서 전원을 뽑아쓰기 위한 커넥터입니다.
<<두고두고 써먹을 수 있는 USB전원선>>
3. 동작확인
제작을 마쳤으니 테스트를 해보겠습니다.
http://www.beyond-designs.com/PC_ports.htm#VBPortTest
VBPortTest를 다운로드 후 설치해 주시기 바랍니다.
<< VBPortTest >>실행하시면 위와 같은 창을 보시게 됩니다.
먼저, 패러랠포트 어드레스를 확인해 주시고,
Read Only 는 입력만 받고 출력은 할 수 없는 모드
Byte는 버튼을 눌러 한 바이트를 한번에 출력하는 모드
Bit 는 LED를 클릭해서 한 비트씩 출력하는 모드 입니다.
3-1. 출력테스트
LED를 몽땅 켜보겠습니다.
- Bit 모드를 선택
- C5(Bi-Direct Enable)을 끄고
- D0(Data0)부터 D7(Data7)까지를 몽땅 켜고
- C3(nSelect)끄고, C2(nInit) 켜고, C1(nAutoLF) 끄고, C0(nStrobe) 끕니다.
그럼 모든 LED의 불이 다 들어옵니다.
위에서 말씀드렸듯이 C0, C1, C3은 거꾸로 되는군요.
※ 만일 모든 불이 제대로 안켜지면 실험실습기자재의 납땜을 다시 확인해 보시기 바랍니다.
<<모든 불을 켜고..>>
3-2. 입력테스트
먼저 10핀 딥스위치와 16핀 딥스위치를 위의 사진처럼 IC소켓에 박아줍니다. Status 레지스터의 값을 10핀 DIP 스위치로 제어해 보겠습니다.
- 10핀 DIP 스위치로 프로그램쪽의 Status 레지스터 LED를 껏다 켯다 해보세요.
- 스위치가 ON이면 프로그램쪽 해당 비트가 꺼집니다.
- 단, S7(Busy)은 인버터의 영향으로 반대로 작동합니다.
포트 내부에 풀업이 있기 때문에 스위치를 ON 시켜서 Low를 입력시키면 0이 입력됩니다.
다음은, Data 레지스터의 값을 16핀 DIP 스위치로 제어해 봅니다.
- 프로그램쪽에서 Bit모드로 변경합니다.
- C5(Bi-Direct Enable)을 켜줍니다.
- 이 때, 실험실습기자재의 LED가 풀업되어 8개 모두 불이 들어옵니다.
- 16핀 DIP 스위치를 껏다 켯다 해봅니다.
※ 출력은 잘 되는데 입력은 설명과 다르게 작동하는 경우에도 역시 납땜을 확인하시기 바랍니다.
※ 실험이 끝나면 다른 프로그램을 위해 C5 비트를 끄시고 프로그램을 종료하시기 바랍니다.
4. 보너스
윈앰프 플러그인을 사용하여 실험실습기자재를 사운드 레벨메터로 활용해 보겠습니다.
PC 껍데기에 박아도 이쁠꺼 같네요. =^^=
설치하기
- 윈앰프가 설치되어 있지 않으면 설치해 주세요. http://www.winamp.com
- 사용할 플러그인은 DiscoLitez 2.1 입니다. http://www.discolitez.com/files/dlitez210.exe
- 패러랠 포트에 적당하게 제가 수정한 파일입니다. partest.LTR
사용법
- winamp 실행
- Ctrl-K 누르고
- DiscoLitez 선택하고 Start 버튼 누르고, Close 버튼 누릅니다.
- 플러그인의 OPT 버튼 누르고 Open Lite Rig...
- 아까 받은 partest.LTR 을 로드
- winamp에서 음악을 로드해서 플레이
※ 작동안하면 VBPortTest에서 C5가 꺼져있는지 확인해 보세요.
그럼, 다음 시간에는 패래랠 포트의 구조에 대해 좀 더 심도있는 내용을 다뤄보겠습니다.
읽어주셔서 감사합니다.