마하전자기술연구소 LOGO

제품검색 고객센터053-604-2355
기술자료실

Home > 기술자료실 기술자료실

제 목 4) 입출력 포토의 사용법
첨부파일


입출력 핀의 사용법

【개요】

 PIC는 입출력에 관한 회로를 내장하고 있어, PIC의 밖에 나오고 있는 핀은 직접
입출력이 가능한 입출력 핀이 되고 있습니다.
게다가, 1 핀 마다 입력인가 출력이나 프로그램으로 자유롭게 설정할 수가 있다
모아 두고 매우 편리하게 사용할 수가 있습니다.
여기에서는 그러한 입출력 핀의 내부 회로 구성 등 하드웨어를 중심으로 설명
합니다.


【표준 입출력 회로 구성】

 PIC는, 프로그램으로 입출력을 자유롭게 설정할 수 있는 입출력 핀을 갖고 있습니다.
그리고 이러한 입출력 핀을 레지스터에 할당해 제어하기 위해(때문에), 8 핀 마다
정리해 입출력 포토라고 부르고 있습니다.
이것들 입출력 핀의 1 핀 당의 표준적인 회로 구성은 밑그림과 같이 되어
있습니다.



 그림으로 TRIS Latch가 입출력의 모드를 결정하는 TRIS 레지스터로, 이 Latch의 Q=1
의 때에는 입력 모드에, Q=0때에는 출력 모드가 됩니다.
입력 모드때로는, 출력 드라이브의 상보형의 MOS 트랜지스터인 P와 N가
양쪽 모두 OFF가 되어 출력 회로는 무관계가 되어, TTL 버퍼를 다녀 I/O pin의
데이터가 읽힙니다.
그리고 "RD PORT"신호의 타이밍에 빗장 되어 PORT 레지스터가 세트 된다
것으로 되고, 그 출력이 Data Bus에 이상등이라고 프로그램으로 읽힙니다.

 출력 모드때로는, Data Bus의 1, 0이 "WR PORT"신호의 타이밍에 출력용
"Data Latch"에 빗장 되어 그 출력에 따라, Data가 1이라면 출력 트랜지스터
P가 ON가 되어, I/Opin에는 Vdd 전압이 출력되고 부하에 전류를 공급합니다.
Data가 0이라면 출력 트랜지스터 N가 ON가 되어 출력전압 Vss로서 I/O pin에 나타나 부하
(으)로부터 전류를 수중에 넣습니다.



【입력때의 동작】

 실제의 입출력의 동작을 구체적인 예로 설명하면(자), 예를 들면 스윗치의 ON/OFF의
상태를 읽어들이고 싶다고 할 때는, 밑그림과 같이 접속합니다.
스윗치의 다른 한쪽을 마이너스 전원 Vss(통상은 그랜드)에 접속해, 이제(벌써) 다른 한쪽을 입출력
핀에 접속합니다. 한층 더 입출력 핀의 곳에는, 저항을 개입시켜 전원 Vdd에 접속
합니다. 이렇게 하면(자), 스윗치가 OFF때로는, 저항을 통해 전원 전압이 더해지므로
입출력 핀은, 거의 전원 전압이 됩니다. 스윗치를 ON로 하면(자), 입출력 핀이
Vss 즉 그랜드에 접속된 것이 되기 때문에, 0 V가 됩니다.
이것으로, 입출력 핀의 전압이 스윗치의 On/Off에 의해, Low/High와 변화한다
되어 구별이 됩니다.

그리고 입출력 핀이 입력 모드로 설정되면(자), 윗 그림의 TTL 게이트측을 다녀
입력 명령의 타이밍에 입력용 빗장에 읽힙니다.



【출력때의 동작】 

발광 다이오드를 PIC로 점등 제어하는 것 같은 출력 제어의 경우에는, 밑그림과 같이
접속합니다.
이렇게 하면(자), 출력이 「1」때로는, 트랜지스터 P가 On, N가 Off가 되므로, 전류가
(1)의 방향으로 흐르려고 합니다. 그러나, 발광 다이오드의 반대측의 단자는 저항을
개입시켜 같은 전원 Vss에 접속되고 있어, 동전위가 되기 (위해)때문에, 전류를 흘리는 것이
할 수 없게 됩니다, 이 때문에, 발광 다이오드에는 전류가 흐르지 않고 소등합니다.
반대로, 출력이 「0」때로는, 트랜지스터 N가 On, P가 Off가 되기 (위해)때문에, 전류가(2)
의 방향으로 흐르려고 합니다. 이 때에는, 전원 Vdd로부터 저항과 발광 다이오드를
경유해 전류가 흐르게 되기 때문에, 발광 다이오드가 점등 하는 것에
됩니다.
이 때 흐르는 전류는, (Vdd-발광 다이오드의 순서 전압)÷저항으로 결정됩니다.

이것으로 출력 데이터의 1, 0에 의해 발광 다이오드에 흐르는 전류의 방향이(1), (2)의
같게 되어, 결과적으로 발광 다이오드의 전류의 On/Off를 실시하게 되므로,
발광 다이오드가 점등/소등하게 됩니다.



【프로그램에 의한 제어 방법】

 전항의 발광 다이오드의 제어를 실제로 프로그램으로 실시할 때는, 밑그림과 같이,
레지스터에의 기입을 실시하는 것으로 실현될 수 있습니다.
즉, 프로그램으로 W레지스터로부터 입출력 포토에 상당하는 레지스터에 기입하면,
실제의 출력이 나오게 됩니다.



 이것을 어셈블러 명령으로 쓰면(자) PORTB의 예로 아래와 같이 됩니다.

   BSF   STATUS, RP0   ;뱅크 1에 전환에
   CLRF   TRISB      ;모두 출력 모드
   BCF   STATUS, RP0   ;뱅크 0으로 돌아온다
   MOVLW  0x65      ;01100101(을)를 출력한다
   MOVWF  PORTB      ;실제로 출력 실행



【입출력 핀의 전기적 특성】

 이 입출력 핀의 DC특성은 아래 표와 같이 되어 있습니다. 입력도 출력도 어느
경우에도 스렛쇼르드가 되는 전압은, 전원 전압인 Vdd에 의해 값이 바뀝니다
의로, 5 V 이외의 전원으로 동작시킬 때에는 주의가 필요합니다.

L/H

항목

최소치

최대치

Low

I/O Ports TTL 버퍼
I/O Ports Schmitt Trigger
MCLR, OSC1(RC모드)
OSC1(XT, HS, LP모드)

Vss

Vss
Vss

0. 15Vdd
0.8
0.2Vdd
0.3Vdd

High

I/O Ports TTL 버퍼
I/O Ports Schmitt Trigger
MCLR
OSC1(RC모드)
OSC1(XT, HS, LP모드)

0.25Vdd+0. 8
0.8Vdd
0.8Vdd
0.9Vdd
0.7Vdd

Vdd
Vdd
Vdd
Vdd
Vdd

   (조건) 4.5V<Vdd<5.5V

 표중에서, 입력이 schmitt trigger 타입이 되어 있는 입출력 핀은, 입력의 스렛쇼르드
전압에 0.1 V정도의 히스테리시스 특성이 있어, 전압이 천천히 변동하는 입력 신호에 대해
(이)라고도 안정에 High/Low를 검출할 수 있게 되어 있습니다.
 특히 타이머로 카운트 동작을 시키는 것 같은 경우에는, 외부의 입력 신호가 다소 날것은
있는 것 같은 신호에서도 올바르고 카운트 시킬 수가 있습니다



【입출력 포토를 사용할 때의 주의】

 입출력 포토를 사용하려면 몇개의 주의 사항이 있습니다. 좀 더 입출력 포토의
동작을 자세하게 봅시다.

(1) 전원 투입시의 오동작 대책

 우선, 입출력 포토는 전원 투입 또는 리셋트 직후는 모두 입력 모드가 됩니다.
따라서, 출력 핀으로서 사용하는 경우에는, 리셋트 한 직후 출력이 하이 impedance 상태
되기 때문에, 접속되고 있는 상대가 그 하이 impedance 상태로 불안정 동작하지 않는다
야에 대책 해 둘 필요가 있습니다.
 이 대책으로서는, 트랜지스터의 부하와 같은 때로는, 밑그림과 같이, 사용하는 핀을 외부에서
pull-up나 풀다운 하는 것입니다. 전원 투입 직후의 하이 impedance 상태를, 이
대책으로 High인가 Low인가 어딘가에 일의적으로 결정할 수가 있기 때문에 오동작을 피하는 것이
할 수 있습니다.


PIC의 출력 핀이 하이 impedance
상태(즉 입력 모드)때에는
저항 10KΩ가 트랜지스터의 베이스를
그랜드 전위로 하므로, 트랜지스터
(은)는 Off 상태를 유지해, 부하에는 아무것도
영향을 주지 않습니다.

(2) 연속 출력 명령에 의한 오동작 대책

 다음에 실제의 입출력이 제어되는 타이밍을 자세하게 보면(자), 입출력 명령을 반복해
실행하는 경우에, 페치 사이클의 세부에서 문제가 일어나는 일이 있습니다.
우선, 출력과 입력의 신호가 나오는 타이밍을 상세하게 보면(자) 밑그림과 같이 됩니다.
즉, 포토에의 출력은 실제로는 명령 실행의 최후인 다음의 명령의 최초의
클락(Q1)의 입상으로 출력됩니다.
 그리고, 만약 다음의 명령도 입출력 명령때로는, 포토의 읽기가 Q2클락의
입상으로 행해집니다.
결과적으로, 이 최초의 명령의 출력과 다음의 명령의 입력동안은 1 클락분 밖에 없다
것으로 되고, 20 MHz 클락의 경우에는 조금 50 nsec가 되어 버립니다.
 이 때, 문제가 되는 것은, BSF, BCF등의 비트 조작의 명령의 경우로, 이 명령
의 실제의 동작은, 한 번 포토 레지스터의 모든 비트의 현재 상태를 읽어들여,
지정 비트만을 변경해 재차 포토 레지스터에 덧쓰기한다고 하는 조작을 실시합니다.

 이와 같이 연속해 비트 조작 명령을 실행하면(자), 그림의 아래 쪽의 코멘트와 같이,
앞쪽의 출력은 명령 실행 타이밍의 최후로 행해져 입력은 다음의 명령의 최초로
행해지기 때문에, 출력 핀의 부하에 어떠한 용량성의 요소가 있어 신호의 서
오름이 늦으면 아직 전의 명령에 의한 출력이 완전하게 침착하기 전에 다음의 명령으로 읽어 입
보고를 실행해 버리기 (위해)때문에, 0을 1으로 잘못해 읽어들여 버릴 가능성이 있습니다.

 이 대책으로서는, 비트 조작 명령으로 연속해 같은 포토에 출력하는 경우에는,
사이에 NOP 명령 등 다른 명령을 최저 1개 삽입하도록(듯이) 합니다.




(3) 입출력 드라이브 전류와 최대 소비 전력

 하나 더의 문제는, 포토의 드라이브 능력의 문제입니다.
여기서 입출력 핀의 드라이브 능력을 확인해 둡시다. 데이터 쉬트에서는 입출력 핀
의 드라이브 능력은 아래 표가 되고 있습니다.

항목

드라이브 능력

비고

최대 소비 전력

1W

패키지 정답
최대 전원 공급 전류

250mA

Vdd 단자보다 공급
1 핀 최대 공급 전류

25mA

High때
1 핀 최대 흡수 전류

25mA

Low때
포토 최대 공급 전류

200mA

A, B, C 각 포토마다

 이 표로부터 아는 것은, 우선, 1 핀 당의 드라이브는 최대 25 mA까지 할 수 있습니다만,
동시에 드라이브 할 수 있는 것은, 200mA/25 mA=8 핀이라고 하는 것으로, 최대 전류(25mA)의
부하를 드라이브 하면(자) 8 핀 동시에 드라이브 가능이라는 것이 됩니다.
게다가 포토당에 200 mA이기 때문에 전포토가 드라이브 가능이라는 것이 됩니다.

 그러나 전체의 소비 전력으로부터 보면(자), 5 V전원 그렇다면, 1 W/5 V=200 mA가 되어
끝내기 때문에, 동시에 드라이브 할 수 있는 최대는 전체로 8 핀까지라는 것이 됩니다.
즉 복수의 포토를 최대 드라이브로 움직이는 것은 할 수 없게 됩니다.

한층 더 입출력 포토 이외의 소비 전력도 조금 있기 때문에, 8 핀 전부를 동시에 최대
전류로 드라이브 한다는 것은, 조금 엄격한 조건이 되어 버립니다.
 이것들도 포함해, 입출력 핀의 합계 최대 드라이브 전류가 200 mA를 넘지 않게
주의할 필요가 있습니다.

목록보기

www.1chip.com, www.1chip.co.kr
www.micom114.com
자료실바로가기

대구광역시 북구 산격2동 1629 산업용재관 10동 13호 (2층) / Tel. 053-604-2355 / Fax. 053-383-2354 / E-mail. maha@paran.com