Section 20. 비교기 (Comparator) 하이라이트 (HIGHLIGHTS) 메뉴얼의이번섹션은다음의주요주제를다룹니다 : 20.1 소개... 20-2 20.2 제어 (Control) 레지스터. 20-3 20.3 비교기설정... 20-4 20.4 비교기운영... 20-6 20.5 비교기레퍼런스... 20-6 20.6 비교기응답시간... 20-8 20.7 비교기출력... 20-8 20.8 비교기인터럽트... 20-9 20.9 슬립모드동안비교기운영... 20-9 20.10 리셋의영향... 20-9 20.11 중요한아날로그입력연결... 20-10 20.12 초기화... 20-11 20.13 디자인팁... 20-12 20.14 관련된어플리케이션노트... 20-13 20.15 개정내역 (Revision History)... 20-14 1997 Microchip Technology Inc. DS31002A-page 20-1
PICmicro MID-RANGE MCU FAMILY 20.1 소개 (Introduction) 비교기모듈은두개아날로그비교기를가지고있다. 비교기입력은 I/O핀으로멀티플렉서된다. 온-칩볼트레퍼런스는 ( 전압레퍼런스 센션을보라 ) 또한비교기입력이될수있다. 그림 20-1에서보여진, CMCON레지스터는비교기입력과출력멀티플렉서를제어한다. 비교기의블록다이어그램은그림 20-1에서보여준다. 1997 Microchip Technology Inc. DS31002A -page 20-2
PIC16C Family Reference Manual 20.2 제어레지스터 레지스터 20-1: CMCON 레지스터 bit 7 C2OUT: 비교기2 출력지시비트 1 = C2 VIN+ > C2 VIN 0 = C2 VIN+ < C2 VIN bit 6 C1OUT: 비교기1 출력지시비트 1 = C1 VIN+ > C1 VIN 0 = C1 VIN+ < C1 VIN bit 5:4 실행안됨 : 0 으로읽힌다. bit 3 CIS: 비교기입력스위치비트 CM2:CM0=001일때 : 1 = C1 VIN connects to AN3 0 = C1 VIN connects to AN0 CM2:CM0=010일때 : 1 = C1 VIN connects to AN3 C2 VIN connects to AN2 0 = C1 VIN connects to AN0 C2 VIN connects to AN1 bit 2:0 CM2:CM0: 비교기모드선택비트그림 20-1을보시오 범례 (Legend) R= 읽기가능한비트 W= 쓰기가능한비트 U= 실행안된비트, 0 으로읽힘 -n=por리셋에서의값 1997 Microchip Technology Inc. Advance Information DS31002A -page 20-3
PICmicro MID-RANGE MCU FAMILY 20.3 비교기설정여기에비교기를위한 8가지모드가있다. CMCON레지스터는모드를선택하는데사용된다. 그림 20-1은 8가지가능한모드를보여준다. TRIS레지스터는각모드를위한비교기 I/O핀의데이터방향을제어한다. 만일비교기모드가변한다면비교기출력레벨은디바이스의전기적스펙에명시된딜레이를새로운모드에유효하지못하게적응할수있다. Note: 비교기인터럽트는비교기모드가변하는동안에디스에이블되선안된다. 그렇지않으면인터럽트가발생하는것을실패할수있다. 1997 Microchip Technology Inc. DS31002A -page 20-4
PIC16C Family Reference Manual 그림 20-1: 비교기 I/O 운영모드 A = 아날로그입력, 포트가항상영으로읽힌다. D = 디지탈입력 CIS(CMCON<3>) 은비교기입력스위치 1997 Microchip Technology Inc. Advance Information DS31002A -page 20-5
PICmicro MID-RANGE MCU FAMILY 20.4 비교기동작아날로그입력레벨과디지털출력사이에관계에따른하나의비교기는그림 20-2에서보여준다. 아날로그입력이 VIN-보다작은 VIN+ 에있을때, 비교기의출력은디지털로우 (low) 레벨이다. 아날로그입력이 VIN-보다큰 VIN+ 에있을때, 비교기의출력은디지털하이 (high) 레벨이다. 그림 20-2에비교기의출력의검게칠해진부분은확실하지않은입력옵셋과응답시간을의미한다. 20.5 비교기레퍼런스외부혹은내부레퍼런스신호는비교기운영모드에따라사용될수있다. VIN-로나타낸아날로그신호는 VIN+ 신호와비교가된다. 그리고비교기의디지털출력은따라서비교기의출력으로조정된다. ( 그림20-2) 그림 20-2: 싱글비교기 1997 Microchip Technology Inc. DS31002A -page 20-6
PIC16C Family Reference Manual 20.5.1 외부레퍼런스신호외부전압레퍼런스가사용될때, 비교기모듈은같거나다른소스로부터비교기작동을가지도록설정할수있다. 이러한레퍼런스신호는반드시 VSS와 VDD사이야하고, 비교기의두핀에적용될수있어야한다. 20.5.2 내부레퍼런스신호비교기모듈은또한비교기를위한내부적으로발생한전압레퍼런스의선택도허용한다. 전압레퍼런스 섹션은이신호를제공하는전압레퍼런스모듈의자세한설명을가지고있다. 내부레퍼런스신호는비교기가모드 CM2:CM0=010( 그림20-1) 일때사용된다. 이모드에서내부전압레퍼런스는두비교기의 VIN+ 입력에적용된다. 내부전압레퍼런스는아무비교기모드에사용할수있다. 이런방식으로사용될때, I/O/VREF핀은 I/O를위해사용될수있다. 전압레퍼런스는 VREF핀에연결된다. 1997 Microchip Technology Inc. Advance Information DS31002A -page 20-7
PICmicro MID-RANGE MCU FAMILY 20.6 비교기응답시간새로운레퍼런스전압또는입력소스를선택한후에, 비교기출력이유효한레벨을가질수있도록보장해주기전에, 응답시간은최소이다. 만일내부레퍼런스가변한다면비교기출력이사용될때, 내부전압레퍼런스의최대셋틀링시간에반드시주의를기울여야한다. 그렇지않으면비교기의최대응답시간반드시사용되어야한다. 20.7 비교기의출력비교기의출력은 CMCON레지스터를통해서읽혀진다. 이러한비트는오직읽기만된다. 비교기출력은또한 I/O핀으로바로출력된다. CM2:CM0=110일때, I/O핀의출력패스에멀티플렉서는스위치할수있고각핀의출력이비교기의비동기적인출력이될수있다. 비교기의각각은불확실하게입력옵셋전압과스팩에서주어진응답시간에관련되었다. 그림 20-3은비교기출력블록다이어그램을보여준다. TRIS비트는이모드일동안에아직도 I/O핀을출력인에이블 / 디스에이블시키는기능을할것이다. Note1: 포트레지스터를읽을때, 아날로그입력으로설정된모든핀은 0 으로읽힐것이다. 디지털입력으로설정된핀들은슈미트트리거 (Schmitt Trigger) 입력스팩에따라아날로그입력을바꿀것이다. Note2: 디지털입력으로정의된아무핀에있는아날로그레벨은명시된것보다더많은전류를소비하도록입력버퍼를유발할것이다. 그림 20-3: 비교기출력블록다이어그램 1997 Microchip Technology Inc. DS31002A -page 20-8
PIC16C Family Reference Manual 20.8 비교기인터럽트 CMxOUT비트로로드되는최신값과관련된변화가비교기에있을때언제든지, 비교기인터럽트플레그는셋된다. 소프트웨어는 COCON<7:6> 으로부터값을읽는것처럼, 발생한실제변화를결정하기위해서출력비트의상태에관한정보를유지할필요가있을것이다. CMIF비트는비교기인터럽트플래그이다. CMIF비트는반드시클리어되야한다. 이비트는셋될가능성이있기때문에인터럽트처럼보일수있기때문에초기화되야한다. CMIF비트와 PEIE비트 (INTCON<6>) 은인터럽트를인에이블하기위해서반드시셋되야한다. 게다가 GIE비트는반드시셋되야한다. 만일이러한비트중에하나가클리어된다면인터럽트는인에이블되지않을것이다 CMIF비트를통해만일인터럽트상태가발생한다면아직셋상태일것이다. 인터럽트서비스루틴에서사용자는다음순서를따라서인터럽트를클리어할수있다 : a) CMOCON레지스터의아무값을읽거나쓴다. 이것은 CMXOUT비트로새로운값을 CMCON레지스터로로드할것이다. b) CMIF플래그비트를클리어한다. 20.9 슬립모드동안비교기운영디바이스가슬립모드에놓여지고비교기가활성화되었을때, 비교기는활성화가되고만일인에이블되었다면인터럽트는기능할것이다. 이인터럽트가인에이블되었을때, 슬립모드로부터디바이스를깨울것이다. 비교기가파워-업인동안선택된각비교기는비교기스팩에서보여준것처럼추가적인전류를소비할것이다. 슬립모드동안전력소비를최소화하기위해슬립모드로들어가기전에비교기를끌수있다.(CM2:CM0=111) CMCON레지스터의내용은영향이없다. 20.10 리셋의효과디바이스리셋은 CMCON레지스터를이것의리셋상태로만든다. 이것은비교기모듈을비교기리셋모드가되게한다.(CM2:CM0=000) 이것은모든가능한입력이아날로그입력이되도록해준다. 리셋타임에서아날로그입력이제공될때디바이스전류는최소가된다. 비교기는리셋기간동안파워-다운될것이다. 1997 Microchip Technology Inc. Advance Information DS31002A -page 20-9
PICmicro MID-RANGE MCU FAMILY 20.11 중요한아날로그입력연결아날로그입력을위한단순화된회로가그림 20-4에서보여진다. 아날로그입력이디지털출력으로연결되었기때문에, 그것들은 VDD와 VSS에서바이어스된되바뀐다이오드를가진다. 그러므로아날로그입력은반드시 VSS와 VDD사이에있어야한다. 만일입력전압이두개방향에 0.6V보다더높은전압으로이범위로부터벗어난다면다이오드중에하나는앞으로바이어스되고래치-업이발생할수있다. 10K Ω의최대소스임피던스는아날로그소스를위해추천된다. 그림 20-4: 아날로그입력모델 테이블 20-1 : 비교기모듈과관련된저항 범례 (Legend): x= 알려지지않음, -= 실행안되는지역, 0 으로읽힘공유된셀은비교기를위해사용되지않는다. Note 1: 이비트의위치는디바이스에달려있다. 2: 이비트들은또한 GPIE와 GPIF로이름지어진다. 1997 Microchip Technology Inc. DS31002A -page 20-10
PIC16C Family Reference Manual 20.12 초기화 예제 20-1 에코드는 PIC16C62X 디바이스의비교기모듈의설정을위한예제단계를묘사한다. RA3 과 RA4 는디지털출력으로설정된다. RA0 과 RA1 은 V- 입력으로그리고 RA2 는두비교기에 V+ 입력으로설정한다. 예제 20-1: 비교기모들의초기화 (PIC16C62X) FLAG_REG EQU 0X20 ; CLRF FLAG_REG ; Init flag register CLRF PORTA ; Init PORTA ANDLW 0xC0 ; Mask comparator bits IORWF FLAG_REG,F ; Store bits in flag register MOVLW 0x03 ; Init comparator mode MOVWF CMCON ; CM<2:0> = 011 BSF STATUS,RP0 ; Select Bank1 MOVLW 0x07 ; Initialize data direction MOVWF TRISA ; Set RA<2:0> as inputs, RA<4:3> as outputs, ; TRISA<7:5> always read 0 BCF STATUS,RP0 ; Select Bank0 CALL DELAY 10 ; 10μs delay MOVF CMCON,F ; Read CMCON to end change condition BCF PIR1,CMIF ; Clear pending interrupts BSF STATUS,RP0 ; Select Bank1 BSF PIE1,CMIE ; Enable comparator interrupts BCF STATUS,RP0 ; Select Bank0 BSF INTCON,PEIE ; Enable peripheral interrupts BSF INTCON,GIE ; Global interrupt enable 1997 Microchip Technology Inc. Advance Information DS31002A -page 20-11
PICmicro MID-RANGE MCU FAMILY 20.13 디자인팁질문 1: 나의프로그램이락-업 (lock up) 상태처럼보인다. 답 1: 만일당신이 CMIF 플레그비트를클리어할적절한순서를따르지않았다면, 비교기인터럽트서비스루틴으로무한루프에빠질수있다. 처음에당신은먼저 CMCON 레지스터값을읽고그다음에 CMIF플래그비트를클리어할수있다. 1997 Microchip Technology Inc. DS31002A -page 20-12
PIC16C Family Reference Manual 20.14 관련된어플리케이션노트 이번섹션은매뉴얼의이번섹션과관련된어플리케이션노트를나열한다. 이런어플리케이션노트는특히 Mid-Range MCU 패밀리 ( 베이스 - 라인또는하이 - 앤드패밀리들을위해쓰여진 ) 를위해쓰여지지않을수있다. 그러나개념은적절하다그리고 ( 변경과가능한제한으로 ) 사용될수있다. 현재비교기에관련된어플리케이션노트는 : 타이틀 어플리케이션노트 # Resistance and Capacitance Meter using a PIC16C622 AN611 1997 Microchip Technology Inc. Advance Information DS31002A -page 20-13
PICmicro MID-RANGE MCU FAMILY 20.15 개정내역 개정 A 이것은 PIC마이크로비교기모듈설명서의처음출판된개정이다. 1997 Microchip Technology Inc. DS31002A -page 20-14