21993A.book

Similar documents
Real Time In-Circuit Emulator for MICROCHIP PIC16CXX

Microsoft Word - PIC16x_Section05_CPU_ALU_31005a.doc

목차 Section 2. Oscillator Section 3. Reset Section 4. Architecture Section 5. CPU and ALU Section 6. Memory organization Section 7. Data EEPROM Section

HWP Document

Rev V0. Date 0 /0/ PICF 확장형개발보드매뉴얼. 제품소개및특징. 제품소개 < 그림.> PICF 확장형개발보드사진 Microchip사의 비트프로세서인 PICF MCU를이용하여학습및개발을할수있는 PIC 확장형개발보드입니다. 초보자를세심하게배려하기위하여모든부

Microsoft Word - elcd_manual.doc

Rev V0. Date 0 /0/ PICFA 확장형개발보드매뉴얼. 제품소개및특징. 제품소개 < 그림.> PICFA 확장형개발보드사진 Microchip사의 비트프로세서인 PICFA MCU를이용하여학습및개발을할수있는 PIC 확장형개발보드입니다. 초보자를세심하게배려하기위하여

Microsoft Word - PEB08_USER_GUIDE.doc

Microsoft Word - PIC16x_Section20_Comparator_31020a.doc

AVR Atmega128

ADP-2480

정보보안 개론과 실습:네트워크

KAERITR hwp

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - Chapter 8_USART Serial Communication

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A636C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

Microsoft Word - PIC16x_Section17_MSSP_31017a.doc

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

마이크로프로세서 개요

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

인터럽트 (Interrupt) 범용입출력포트에서입출력의내용을처리하기위해매번입출력을요구하는플래그를검사하는일 (Pollong) 에대하여마이크로컨트롤러에게는상당한시간을소비하게만든다. 인터럽트란 CPU가현재처리하고있는일보다급하게처리해야할사건이발생했을때, 현재수행중인일을중단하고

Chapter. 14 DAC 를이용한 LED 밝기제어 HBE-MCU-Multi AVR Jaeheung, Lee

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202831C1D6C2F72C2032C1D6C2F729>

Microsoft Word - ICD2PLUS_2003.doc

<4D F736F F F696E74202D2037C0E55FC0CEC5CDB7B4C6AEC0C720B5BFC0DB2E707074>

ATmega128

AVR ATmega128 소개 AVR ATmega128 IT Eng 학습목표 ü 다양한 AVR 패밀리와소자특징을알아보고, 제어환경에따라 AVR 소자를선택하여개발할수있는융통성을이해할수있다. ü ATmega128 내부구조에서메모리공간, I/O 공간의프로그램과데이터를처리하기

API 매뉴얼

뉴티씨 (NEWTC) 2. FB-CY4E-DEV (FPGA 개발 키트) 구성도 Port Select SW 7 Segment Text LCD UART RS-232C JTAG PORTA (5V) Active Serial PORTB (5V) OSC. 50MHz Analog

KMC.xlsm

AVR ATmega128 소개 마이크로컨트롤러 AVR ATmega128 저자 : 이상설 소속 : 원광대학교전기 정보통신공학부

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

정보보안 개론과 실습:네트워크

Microsoft PowerPoint - PICkit2 Hands-On Training.ppt

Chapter ...

API 매뉴얼

Microsoft Word - PLC제어응용-2차시.doc

Microsoft Word - LKP-RTD 사용자 설명서

CAN-fly Quick Manual

Motor Control Solution

Section 03 인터럽트활성화와인터럽트서비스루틴연결 34/82 장치에대한인터럽트설정과활성화 내부장치에대한특수레지스터존재 장치의특성을반영한동작설정용또는상태관찰용비트로구성 인터럽트사건의발생패턴을설정해야함 인터럽트활성화비트를 1 로셋하여, 인터럽트발생을허락» 전제, 전역

Microsoft PowerPoint - 제5장 인터럽트 (HBE-MCU-Multi AVR).ppt [호환 모드]

Microsoft PowerPoint - avr_lecture1.ppt

Microsoft PowerPoint - 30.ppt [호환 모드]

ISP and CodeVisionAVR C Compiler.hwp

구성품 - UMD 2808 모듈 - JTAG 커넥터 - 젂원 케이블 주요 특징 모듈의 부품화 : 고신뢰성의 DSP 모듈을 최적화된 시스템에 적용 용이 TMS320F2808 ZGMS - 100MHz 탑재 : 확장된 온도규격 (-40 도 ~ 125 도) 적용 Ultralo

[8051] 강의자료.PDF

슬라이드 1

BY-FDP-4-70.hwp

[ 마이크로프로세서 1] 1 주차 2 차시. 마이크로프로세서와마이크로컨트롤러발달과정 1 주차 2 차시마이크로프로세서와마이크로컨트롤러발달과정 학습목표 1. 마이크로프로세서발달과정과종류를설명할수있다. 2. 인텔 8051 계열과아트멜 (Atmel) 의특성을설명할수있다. 학습

CHAPTER 2 마이크로컨트롤러구조이해하기 가. ATmega128 기능 나. CRX10 구조

[ 마이크로프로세서 1] 1 주차 1 차시. 마이크로프로세서개요 1 주차 1 차시마이크로프로세서개요 학습목표 1. 마이크로프로세서 (Microprocessor) 를설명할수있다. 2. 마이크로컨트롤러를성능에따라분류할수있다. 학습내용 1 : 마이크로프로세서 (Micropr

Microsoft Word - logic2005.doc

<4D F736F F F696E74202D2032C0E55FC6AEB7B9C0CCB4D720C5B0C6AEB1B8BCBAC7B05F446F6E652E707074>

실험 5

<BFACBDC0B9AEC1A6C7AEC0CC5F F E687770>

Microsoft Word - EastSocket매뉴얼_ _.doc

학습목차 r 개념으로살펴보는 CPU 속의제어장치 r 마이크로연산 r 제어장치의동작 r 마이크로프로그램을이용한제어 컴퓨터구조 제어장치

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

<4D F736F F F696E74202D2037C0E55FC0CCC0C0C7F55FBFCFBCBA205BC8A3C8AF20B8F0B5E55D>

MPLAB C18 C

Microsoft PowerPoint - Ch13

<BFACBDC0B9AEC1A6C7AEC0CC5F F E687770>

슬라이드 1

온라인 IT 교육최강 ( 강의정보처리필기강사조대호 차시명 [CA-06 강 ] 프로세서와명령어차시 6 차시 학습내용 프로세서와명령어 학습목표 컴퓨터의구조와프로세서에대해이해할수있다 컴퓨터의명령어에대해이해할수있다 학습내용 1. 컴퓨터의구성 - 1

À̵¿·Îº¿ÀÇ ÀÎÅͳݱâ¹Ý ¿ø°ÝÁ¦¾î½Ã ½Ã°£Áö¿¬¿¡_.hwp

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

그룹웨어와 XXXXX 제목 예제

OSTSen-THL100 사용자설명서 Ver 1.1 Onsystech OSTSen-THL100 Ver1.1 1 of 8 Onsystech

Microsoft PowerPoint - hy2-12.pptx

뉴티씨 (NEWTC) ATmega8 교육용모듈 (Model : AM-8PL ) 메뉴얼 ( 주 ) 뉴티씨 ( NEWTC ) 1. ATmega8 모듈 (AM-8PL) 소개 ATmega8 칩을

9장 순차논리 회로

프로그램카운터 (Program Counter) 명령레지스터 (Instruction Register) 누산기 (AC: Accumulator) 상태레지스터 (Status Register) PSWR(Program Status Word Register) 메모리주소레지스터 (M

2주차: 입출력 제어 복습

학습목차 r 컴퓨터본체에서 CPU 의위치살펴보기 r CPU 의성능 r CPU 의기능 r CPU 의조직 r 레지스터의조직 r 명령어사이클 r 명령어파이프라이닝 컴퓨터구조 2 9. CPU 조직과기능

슬라이드 제목 없음

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202831C1D6C2F72C2032C1D6C2F729>

M16_32KIT_Manual.hwp

2 Mitsubishi FX Series Computer Link MITSUBISHI FX SERIES COMPUTER LINK 시스템구성 시스템설정 사용예 사용예 사용예

Microsoft PowerPoint - e pptx

Microsoft PowerPoint 의 이해.pptx

Microsoft PowerPoint - AVR100%(1).ppt

1. 구성품 - TMS320F280x 소켓모듈 - 몰렉스 2 핀전원케이블 mm 간격의 2x20 핀해더 - PCB 지지대 2. 주의사항 - 입력전압 : 5V 전류눈금이나와있는파워서플라이를권장 모듈의전원이공급상태에서, 소켓이열리지않도록주의해주시고 모든정전기를배제

Microsoft PowerPoint - 제3장 GPIO 입출력 제어 (HBE-MCU-Multi AVR)

OSTSen-PIR100 사용자설명서 Ver 1.1 Onsystech OSTSen-PIR100 V1.1 1 of 8 Onsystech

Microsoft PowerPoint - es-arduino-lecture-03

(1) 주소지정방식 Address Mode 메모리접근 분기주소 명령어 직접번지 Reg. 지정 Reg. 간접 Base Index 간접 Immediate 상대번지 절대번지 Long 주소 Reg. 간접 Byte Access Bit Access 내부 Data M

학습목표 2/33 마이크로프로세서와마이크로컨트롤러의차이를알수있다. 마이크로프로세서에서프로그램이수행되기위한명령어형식과명령어실행절차를알수있다. 프로그램을수행하려면어떤종류의명령어가필요한지알수있다. 현대컴퓨터의기본모델인저장형프로그램컴퓨터의한계점과그한계를완화하려는방법을알수있다.

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

PowerPoint 프레젠테이션

<4D F736F F D20B1E2BCFAC0DAB7E1202D20454F435220B8F0B5E5B9F6BDBA20C5EBBDC5C1A6C7B020BBE7BFEBB9FD202D F302E646F63>

PowerPoint 프레젠테이션

수식모드수식의표현법 수학식표현 조남운 조남운 수학식표현

28 저전력복합스위칭기반의 0.16mm 2 12b 30MS/s 0.18um CMOS SAR ADC 신희욱외 Ⅰ. 서론 Ⅱ. 제안하는 SAR ADC 구조및회로설계 1. 제안하는 SAR ADC의전체구조

COMFILE_VOL13_ cdr

PowerPoint Presentation

JMOD : ATmega128 기본모듈 사용자설명서 제이씨넷

개요

Transcription:

데이터쉬트 28/40 핀, 8 비트 CMOS ROM 마이크로콘트롤러 2006 마이크로칩테크놀로지 DS21993A_KR

마이크로칩디바이스의코드프로텍트기능대하여아래사항을참조할것 :: 마이크로칩에서생산되는제품들은각각의데이터쉬트에포함된스펙을충족시키고있다. 마이크로칩은시장에서정상적인방법과조건에서마이크로칩제품이사용되었을때가장안정적일것으로생각하고있다. 코드프로텍션을깨트리기위한비도적적이고불법적인방법들이있다. 우리가알고있는이러한방법들은마이크로칩제품을마이크로칩데이터쉬트에포함되어있는동작스펙범위밖에서의사용을요구하고있다. 아마도그런일을하는사람들은지적도둑질에종사하고있는것이다. 마이크로칩은코드의안정성에걱정이많은사용자와함께기꺼이일을할것이다. 마이크로칩뿐만아니라어떤다른반도체제조회사도완벽히그들의코드의안전을보증할수는없다. 코드프로텍션은마이크로칩의제품이완벽히코드가깨지지않는것을보증함을의미하지는않는다. 코드프로텍션기술은끊임없이개선되고있다. 마이크로칩은마이크로칩제품의코드프로텍트기능을지속적으로개선시킬것을약속한다. 마이크로칩제품의코드프로텍트기능을부수기위한시도는아마도 Digital Millennium Copyright Act 에위반이될것이다. 만약사용자의소프트웨어혹은다른저작권에대하여허가를받지않고그러한행위들이발생한다면사용자는자신의보호를위하여고소하기위한권리를가질수있다 이자료는사용자의편리성을위하여한국어로제공이되고있다. 마이크로칩뿐만아니라그와연관이되어있는보조자및회사그리고모든책임자, 고용인, 직원및에이젼트들은혹시있을지도모를오류에대한책임이없다. 보다정확한참조를위해서마이크로칩테크놀로지의원본자료를참조하기를바란다. 정보는장치어플리케이션을고려하는부분이이발행에포함되어있으며또한단지당신의편리를위하여제공되고있을뿐업데이트는하지않을수도있다. 사용자의어플리케이션에스펙을정확히적용시키는것은사용자의책임이다. 마이크로칩은제한적으로제품의조건, 품질, 성능을제외하고는명시되거나함축되거나, 쓰거나말로하거나법정이거나다른모든것에대하여어떤종류의어떤표현이나보증도하지않는다. 마이크로칩은이러한정보와그것의사용으로부터발생하는것에대하여모든책임이없다. 일상생활을지원하는시스템에있는중요한구성요소의하나로서의마이크로칩제품의사용은마이크로칩에의하여인정하고표현한것을제외한모든부분은인정되지않는다. 묵시적또는그렇지않으면마이크로칩지적권리아래에서어떠한허용도인정되지않는다 트레이드마크마이크로칩이름, 로고, Accuron, dspic, KEELOQ, microid, MPLAB, PIC, PICmicro, PICSTART, PRO MATE, PowerSmart, rfpic 그리고 SmartShunt 들은미국및다른나라에서도마이크로칩테크놀로지의트레이드마크로등록이되어있다. AmpLab, FilterLab, Migratable Memory, MXDEV, MXLAB, SEEVAL, SmartSensor 그리고 The Embedded Control Solutions Company 들은미국에서마이크로칩테크놀로지의트레이드마크로등록이되어있다. Analog-for-the-Digital Age, Application Maestro, dspicdem, dspicdem.net, dspicworks, ECAN, ECONOMONITOR, FanSense, FlexROM, fuzzylab, In-Circuit Serial Programming, ICSP, ICEPIC, Linear Active Thermistor, Mindi, MiWi, MPASM, MPLIB, MPLINK, PICkit, PICDEM, PICDEM.net, PICLAB, PICtail, PowerCal, PowerInfo, PowerMate, PowerTool, REAL ICE, rflab, rfpicdem, Select Mode, Smart Serial, SmartTel, Total Endurance, UNI/O WiperLock 그리고 ZENA 들은미국및다른나라에서도마이크로칩테크놀로지의트레이드마크로등록이되어있다. SQTP 는미국에서마이크로칩테크놀로지의서비스마크이다. 여기에서언급한다른모든트레이드마크들은그들의각각의회사의속성이다. 2006 년미국마이크로칩테크놀로지에서작성되었으며모든권리가마이크로칩에있다. 표시는재생용지에사용된것이다. 마이크로칩은본사및디자인, 아리조나주챈들러및템페그리고 2003 년캘리포니아마운틴뷰의웨이퍼제작설비에대한 ISO/TS-16949 :2002 품질인증을받았다. 마이크로칩의품질시스템공정을통하여 PICmicro 8-bit MCUs, KEELOQ code hopping devices, Serial EEPROMs, microperipherals, nonvolatile memory 그리고 analog 제품이생산된다. 게다가디자인및개발장비의생산에대한마이크로칩품질시스템은 ISO 9001:2000 에서인증되었다. DS21993A_KR- 페이지 ii 2006 마이크로칩테크놀로지

28/40 핀, 8 비트 CMOS ROM 마이크로콘트롤러 이데이터쉬트에는다음과같은디바이스가포함된다 : PIC16CR73 PIC16CR74 고성능 RISC CPU: PIC16CR76 PIC16CR77 고성능 RISC CPU 오직 35 개의싱글워드명령어 2 사이클의프로그램점프명령을제외한모든명령어는 1 사이클명령어 처리속도 : DC 20 MHz 클럭입력 DC 200 ns 명령사이클 최대 8K x 14 워드의 ROM 프로그램메모리, 최대 368 x 8 바이트의데이터메모리 (RAM) PIC16F73/74/76/77 과기능호환 PIC16F873/874/876/877 과동일한핀아웃 인터럽트구조내장 ( 최대 12 소스 ) 8 레벨하드웨어스택구조 직접, 간접, 상대적어드레싱모드 프로세서는직접프로그램메모리억세스가능 마이크로콘트롤러특수기능 : 파워 - 온리셋 (POR) 파워 - 업타이머 (PWRT) 및오실레이터스타트 - 업타이머 (OST) 신뢰성동작을위한칩내부의 RC 오실레이터로구동되는워치 - 독타이머 (WDT) 파워절약슬립모드 선택가능한오실레이터옵션 주변장치 : 타이머 0 : 8 비트프리스케일러를내장한 8 비트타이머 / 카운터 타이머 1 : 프리스케일러를내장한 16 비트타이머 / 카운터, 외부크리스털 / 클럭에의해슬립모드에서도증가가능 타이머 2 : 8 비트주기레지스터, 프리스케일러, 포스트스케일러를내장한 8 비트타이머 / 카운터 두개의캡쳐, 컴페어, PWM 모듈 : - 캡쳐는 16 비트, 최대분해능은 12.5 ns - 컴페어는 16 비트, 최대분해능은 200 ns - PWM 최대분해능은 10 비트 8 비트, 최대 8 채널 A/D 변환기 SPI ( 마스터모드 ) 와 I 2 C ( 슬레이브 ) 기능이가능한동기시리얼포트 (SSP) 유니버셜동기비동기수신기송신기모듈 (USART/SCI) 병렬슬레이브포트 (PSP), 외부 RD, WR 와 CS 제어핀을가진 8 비트단위의 PSP (40/44 핀에서만지원됨 ) 브라운 - 아웃리셋 (BOR) 을위한브라운 - 아웃검출회로내장 CMOS 기술력 : 저전력, 고속의 CMOS ROM 기술 스태딕디자인 넓은동작전압범위 : 2.0V to 5.5V 높은씽크 / 소스전류 : 25 ma 산업용온도범위 저전력소비 : - 일반적으로 < 2 ma @ 5V, 4 MHz 예상치 - 일반적으로 20 µa @ 3V, 32 khz 예상치 - 평균백업모드시 < 1 µa 예상치 디바이스 프로그램메모리 (# 싱글워드명령어 ) 데이터 SRAM ( 바이트 ) I/O 인터럽트 8 비트 A/D ( 채널 ) CCP (PWM) SSP SPI ( 마스터 ) I 2 C ( 슬레이브 ) USART 8/16 비트타이머 PIC16CR73 4096 192 22 11 5 2 Yes Yes Yes 2 / 1 PIC16CR74 4096 192 33 12 8 2 Yes Yes Yes 2 / 1 PIC16CR76 8192 368 22 11 5 2 Yes Yes Yes 2 / 1 PIC16CR77 8192 368 33 12 8 2 Yes Yes Yes 2 / 1 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 1

DS21993A_KR- 페이지 2 2006 마이크로칩테크놀로지핀다이어그램 PIC16CR76/73 10 11 2 3 4 5 6 1 8 7 9 12 13 14 15 16 17 18 19 20 23 24 25 26 27 28 22 21 MCLR RA0/AN0 RA1/AN1 RA2/AN2 RA3/AN3/VREF RA4/T0CKI RA5/AN4/SS VSS OSC1/CLKIN OSC2/CLKOUT RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RC2/CCP1 RC3/SCK/SCL RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0/INT VDD VSS RC7/RX/DT RC6/TX/CK RC5/SDO RC4/SDI/SDA PDIP, SOIC, SSOP RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0/INT VDD VSS RD7/PSP7 RD6/PSP6 RD5/PSP5 RD4/PSP4 RC7/RX/DT RC6/TX/CK RC5/SDO RC4/SDI/SDA RD3/PSP3 RD2/PSP2 MCLR RA0/AN0 RA1/AN1 RA2/AN2 RA3/AN3/VREF RA4/T0CKI RA5/AN4/SS RE0/AN5/RD RE1/AN6/WR RE2/AN7/CS VDD VSS OSC1/CLKIN OSC2/CLKOUT RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RC2/CCP1 RC3/SCK/SCL RD0/PSP0 RD1/PSP1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 PIC16CR77/74 PDIP 2 3 4 5 6 1 7 MCLR RA0/AN0 RA1/AN1 RA2/AN2 RA3/AN3/VREF RA4/T0CKI RA5/AN4/SS 15 16 17 18 19 20 21 RB0/INT VDD VSS RC7/RX/DT RC6/TX/CK RC5/SDO RC4/SDI/SDA VSS OSC1/CLKIN OSC2/CLKOUT RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RC2/CCP1 RC3/SCK/SCL 27 26 25 24 23 28 22 RB7 RB6 RB5 RB4 RB3 RB2 RB1 10 11 8 9 1213 14 QFN PIC16CR73 PIC16CR76

2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 3 PIC16CR7X 핀다이어그램 ( 앞페이지에이어계속됨 ) 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 44 8 7 6 5 4 3 2 1 27 2829 30 31 32 33 34 35 36 37 38 39 40 41 42 43 9 PIC16CR77 RA4/T0CKI RA5/AN4/SS RE0/AN5/RD OSC1/CLKIN OSC2/CLKOUT RC0/T1OSO/T1CK1 NC RE1/AN6/WR RE2/AN7/CS VDD VSS RB3 RB2 RB1 RB0/INT VDD VSS RD7/PSP7 RD6/PSP6 RD5/PSP5 RD4/PSP4 RC7/RX/DT RA3/AN3/VREF RA2/AN2 RA1/AN1 RA0/AN0 MCLR NC RB7 RB6 RB5 RB4 NC NC RC6/TX/CK RC5/SDO RC4/SDI/SDA RD3/PSP3 RD2/PSP2 RD1/PSP1 RD0/PSP0 RC3/SCK/SCL RC2/CCP1 RC1/T1OSI/CCP2 10 11 2 3 4 5 6 1 18 19 20 21 22 12 13 14 15 38 8 7 44 43 42 41 40 39 16 17 29 30 31 32 33 23 24 25 26 27 28 36 34 35 9 PIC16CR77 37 RA3/AN3/VREF RA2/AN2 RA1/AN1 RA0/AN0 MCLR NC RB7 RB6 RB5 RB4 NC RC6/TX/CK RC5/SDO RC4/SDI/SDA RD3/PSP3 RD2/PSP2 RD1/PSP1 RD0/PSP0 RC3/SCK/SCL RC2/CCP1 RC1/T1OSI/CCP2 NC NC RC0/T1OSO/T1CKI OSC2/CLKOUT OSC1/CLKIN VSS VDD RE2/AN7/CS RE1/AN6/WR RE0/AN5/RD RA5/AN4/SS RA4/T0CKI RC7/RX/DT RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 VSS VDD RB0/INT RB1 RB2 RB3 PLCC TQFP PIC16CR74 PIC16CR74

목차 디바이스소개... 5 메모리구조... 13 프로그램메모리읽기... 29 I/O 포트... 31 타이머 0 모듈... 43 타이머 1 모듈... 47 타이머 2 모듈... 51 캡쳐 / 컴페어 /PWM 모듈... 53 동기시리얼포트 (SSP) 모듈... 59 유니버셜동기비동기수신기송신기모듈 (USART)... 69 a/d 컨버터모듈... 83 cpu 의특별한기능들... 89 명령어셋요약... 105 개발지원... 113 전기적특성... 117 DC 및 AC 특성그래프및테이블... 139 패키지정보... 149 부록 A: 개정이력... 159 부록 B: 디바이스차이점... 159 부록 C: 컨버젼시고려사항... 160 마이크로칩웹사이트... 167 변경통지서비스... 167 커스터머지원... 167 설문지... 168 제품아이디시스템... 169 마이크로칩커스터머분들에게 마이크로칩제품을성공적으로사용하도록도와드리기위하여가능한한최선의자료를커스터머분들에게제공하여드리고있습니다. 저희는여러분의요구에부흥하기위하여지속적으로개선을할예정입니다. 제공하여드리는자료들은새로간행되는경우업데이트되고개선될것입니다. 만약여러분이이러한자료에대하여어떤질문사항이나코멘트가있으시면이 - 메일 docerrors@mail.microchip.com 또는데이터쉬트뒷부분의설문지를작성하셔서팩스 (480) 792-4150 로보내주셔서마케팅팀과상의하시기바랍니다. 여러분의피 - 드백을환영합니다. 최신의데이터쉬트 데이터쉬트의최신버젼을얻기위해서는아래의마이크로칩웹 - 사이트를방문하시길바랍니다 : http://www.microchip.com 여러분은각문서의아래쪽에표기되어있는문서번호를통하여현재버젼을확인가능합니다. 문서번호의마지막글자가현재버젼넘버를의미하고있습니다. ( 예를들면 DS30000A 는 DS30000 의 A 버젼입니다. 즉최신데이터쉬트입니다 ). 에라타 데이터쉬트와조금다르게제품이동작하면아마도각제품에대한에라타쉬트가있을겁니다. 따라서그러한디바이스및자료에대하여마이크로칩으로피드 - 백을하여주시면저희는에라타쉬트를제공하여드릴것입니다. 그러한에라타쉬트에는실리콘및문서의개정번호를명기하게됩니다. 각디바이스의존재하는에라터쉬트를얻기위해서는다음을통하여가능합니다 : 마이크로칩웹 - 사이트 http://www.microchip.com 마이크로침한국지사 ( 마지막페이지를참조 ) 여러분이한국지사또는 U.S 문서센터와상의하시는경우는디바이스이름, 실리콘버젼, 사용하는데이터쉬트의문서번호를알려주시기바랍니다. 커스터머알림시스템 마이크로칩모든제품에대한최신의정보를얻기위해서는마이크로칩사이트 www.microchip.com 에등록하시길바랍니다 DS21993A_KR- 페이지 4 2006 마이크로칩테크놀로지

1.0 디바이스소개 이데이터북에는다음과같은디바이스에대한정보를포함하고있다 : PIC16CR73 PIC16CR74 PIC16CR76 PIC16CR77 PIC16CR73/76 디바이스는오직 28 핀패키지만가능하지만 PIC16CR74/77 디바이스는 40 핀과 44 핀패키지디바이스가가능하다. 다음에서술된내용을제외하면모든 PIC16CR7X 디바이스는같은아키텍쳐를채택하고있다 : 각디바이스에대한간략한소개는테이블 1-1 을참조하기를바라며또한 PIC16CR73/76 그리고 PIC16CR74/77 디바이스의블럭다이어그램은그림 1-1 과그림 1-2 를각각참조하기를바란다. 각제품에대한핀레이아웃에대한설명은테이블1-2 과테이블 1-3 을참조하기를바란다. 보다자세한사항은 PICmicro 미드 - 레인지 MCU 패밀리참조메뉴얼 (DS33023) 을참조하기를바라며그메뉴얼은마이크로칩지사또는마이크로칩웹사이트에서다운로드가가능하다. 참조메뉴얼을통하여각디바이스아키텍쳐및주변장치모듈에대한빠르고쉬운이해가가능하므로적극활용하기를바란다. PIC16CR73 과 PIC16CR76 디바이스는 PIC16CR74 와 PIC16CR77 디바이스의 1/2 프로그램메모리크기를가지고있다. 28 핀디바이스들은 3 개의 I/O 포트그룹을가지고있는반면 40/44 핀은 5 개의그룹을가지고있다. 28 핀디바이스들은 11 개의인터럽트소스를가지고있는반면 40/44 핀은 12 개를가지고있다. 28 핀디바이스들은 5 개의 A/D 입력채널을가지고있지만 40/44 핀은 8 개를가지고있다. 병렬슬레이브포트 (PSP) 기능은 40/44 핀디바이스에서만가능하다. 테이블 1-1: PIC16CR7X 디바이스구조주요사항 PIC16CR73 PIC16CR74 PIC16CR76 PIC16CR77 동작주파수 DC 20 MHz DC 20 MHz DC 20 MHz DC 20 MHz 다양한리셋 ( 및시간지연 ) POR, BOR (PWRT, OST) POR, BOR (PWRT, OST) POR, BOR (PWRT, OST) POR, BOR (PWRT, OST) ROM 프로그램메모리 4K 4K 8K 8K (14 비트워드 ) 데이터메모리 ( 바이트 ) 192 192 368 368 인터럽트 11 12 11 12 I/O 포트 포트 A,B,C 포트 A,B,C,D,E 포트 A,B,C 포트 A,B,C,D,E 타이머 3 3 3 3 캡쳐 / 컴페어 /PWM 모듈 2 2 2 2 직렬통신 SSP, USART SSP, USART SSP, USART SSP, USART 병렬통신 PSP PSP 8 비트 AD 컨버터모듈 5 개의입력채널 8 개의입력채널 5 개의입력채널 8 개의입력채널 명령어셋 35 명령어 35 명령어 35 명령어 35 명령어 패키지 28 핀 DIP 28 핀 SOIC 28 핀 SSOP 28 핀 MLF 40 핀 PDIP 44 핀 PLCC 44 핀 TQFP 28 핀 DIP 28 핀 SOIC 28 핀 SSOP 28 핀 MLF 40 핀 PDIP 44 핀 PLCC 44 핀 TQFP 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 5

그림 1-1: PIC16CR73 과 PIC16CR76 블럭다이어그램 프로그램버스 OSC1/CLKIN OSC2/CLKOUT ROM 프로그램메모리 14 명령어레지스터 명령어해독및제어 시간발생기 8 13 프로그램카운터 8 레벨스택 (13 비트 ) 직접어드레싱 7 파워 - 업타이머오실레이터스타트업타이머파워 - 온리셋워치 - 독타이머브라운 - 아웃리셋 데이터버스 RAM 파일레지스터 RAM 어드레스 (1) 9 8 3 어드레스먹스 8 8 간접어드레싱 FSR 레지스터 상태레지스터 멀티플렉스 중앙처리장치 W 레지스터 포트 A 포트 B 포트 C RA0/AN0 RA1/AN1 RA2/AN2 RA3/AN3/VREF RA4/T0CKI RA5/AN4/SS RB0/INT RB1 RB2 RB3 RB4 RB5 RB6 RB7 RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RC2/CCP1 RC3/SCK/SCL RC4/SDI/SDA RC5/SDO RC6/TX/CK RC7/RX/DT MCLR VDD, VSS 타이머 0 타이머 1 타이머 2 8 비트 A/D CCP1 CCP2 동기직렬포트 USART 디바이스 프로그램메모리크기 데이터메모리크기 PIC16CR73 4K 192 바이트 PIC16CR76 8K 368 바이트 노트 1: 최상위비트들은 STATUS 레지스터로부터구동된다 DS21993A_KR- 페이지 6 2006 마이크로칩테크놀로지

그림 1-2: PIC16CR74 과 PIC16CR77 블럭다이어그램 프로그램버스 OSC1/CLKIN OSC2/CLKOUT ROM 프로그램메모리 14 명령어레지스터 명령어해독및제어 시간발생기 8 13 프로그램카운터 8 레벨스택 (13 비트 ) 직접어드레싱 7 파워 - 업타이머오실레이터스타트업타이머파워 - 온리셋워치 - 독타이머브라운 - 아웃리셋 MCLR VDD, VSS 데이터버스 RAM 파일레지스터 RAM 어드레스 (1) 9 8 3 어드레스먹스 8 8 간접어드레싱 FSR 레지스터 상태레지스터 멀티플렉스 중앙처리장치 W 레지스터 포트 A 포트 B 포트 C 포트 D 포트 E RA0/AN0 RA1/AN1 RA2/AN2 RA3/AN3/VREF RA4/T0CKI RA5/AN4/SS RB0/INT RB1 RB2 RB3 RB4 RB5 RB6 RB7 RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RC2/CCP1 RC3/SCK/SCL RC4/SDI/SDA RC5/SDO RC6/TX/CK RC7/RX/DT RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 RE0/AN5/RD RE1/AN6/WR RE2/AN7/CS 타이머 0 타이머 1 타이머 2 8 비트 A/D CCP1 CCP2 동기직렬포트 USART 병렬슬레이브포트 디바이스 프로그램메모리크기 데이터메모리크기 PIC16CR74 4K 192 바이트 PIC16CR77 8K 368 바이트 노트 1: 최상위비트들은 STATUS 레지스터로부터구동된다 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 7

테이블 1-2: PIC16CR73 과 PIC16CR76 핀 - 아웃서술 핀이름 PDIP SSOP SOIC 핀 # MLF 핀 # I/O/P 타입 버퍼타입 서술 OSC1/CLKIN OSC1 CLKIN OSC2/CLKOUT OSC2 CLKOUT 9 6 10 7 I I O O ST/CMOS (3) 크리스탈오실레이터또는외부클럭입력. 크리스털오실레이터또는외부클럭소스입력으로사용가능. RC 오실레이터모드인경우버퍼는쉬미트트리거입력으로동작. 그외는 CMOS 입력포트로동작됨. 외부클럭소스입력. 항상 OSC1 핀기능과관련됨 (OSC1/CLKIN, OSC2/CLKOUT 핀을참조 ). 크리스탈오실레이터또는클럭출력. 크리스탈오실레이터출력. 크리스털오실레이터모드에서는크리스털또는레조네이터가연결가능. RC 모드에서 CLKOUT 핀으로는 OSC1 으로공급되는주파수의 1/4 분주된주파수즉명령어사이클과같은펄스가출력됨. MCLR 1 26 I ST 마스터클리어 ( 리셋 ) 입력. 이핀이로우상태이면디바이 스를리셋시킨다. 포트 A 는양방향 I/O 포트로사용가능. RA0/AN0 RA0 AN0 RA1/AN1 RA1 AN1 RA2/AN2 RA2 AN2 RA3/AN3/VREF RA3 AN3 VREF RA4/T0CKI RA4 T0CKI RA5/AN4/SS RA5 AN4 SS 2 27 3 28 4 1 5 2 6 3 7 4 I/O I I/O I I/O I I/O I I I/O I I/O I I TTL TTL TTL TTL ST TTL 디지털 I/O. 아날로그입력 0. 디지털 I/O. 아날로그입력 1. 디지털 I/O. 아날로그입력 2. 디지털 I/O. 아날로그입력 3. A/D 기준전압입력. 디지털 I/O 출력으로사용되면오픈 - 드레인포트. 타이머 0 외부클럭입력. 디지털 I/O. 아날로그입력 4. SPI 슬레이브선택입력. RB0/INT RB0 INT 21 18 I/O I TTL/ST (1) 포트 B 는양방향 I/O 포트로사용가능. 포트 B 는핀이입력으로사용될때소프트웨어적으로내부풀 - 업기능사용가능 디지털 I/O. 외부인터럽트. RB1 22 19 I/O TTL 디지털 I/O. RB2 23 20 I/O TTL 디지털 I/O. RB3 24 21 I/O TTL 디지털 I/O. RB4 25 22 I/O TTL 디지털 I/O. RB5 26 23 I/O TTL 디지털 I/O. RB6 27 24 I/O TTL 디지털 I/O. RB7 28 25 I/O TTL 디지털 I/O. 범례 : I = 입력 O = 출력 I/O = 입력 / 출력 P = 전원? = 사용되지않음 TTL = TTL 입력 ST = 쉬미트트리거입력 노트 1: 외부인터럽트로구성이되면버퍼는쉬미트트리거입력으로동작된다 2: 직렬검증모드로사용이되면버퍼는쉬미트트리거입력으로동작된다 3: RC 오실레이터모드로구성이되면버퍼는쉬미트트리거입력으로동작된다. 그외는 CMOS 입력포트로동작됨 DS21993A_KR- 페이지 8 2006 마이크로칩테크놀로지

테이블 1-2: PIC16CR73 과 PIC16CR76 핀 - 아웃서술 ( 앞페이지에이어계속됨 ) 핀이름 PDIP SSOP SOIC 핀 # MLF 핀 # I/O/P 타입 버퍼타입 서술 RC0/T1OSO/T1CKI RC0 T1OSO T1CKI RC1/T1OSI/CCP2 RC1 T1OSI CCP2 RC2/CCP1 RC2 CCP1 RC3/SCK/SCL RC3 SCK SCL RC4/SDI/SDA RC4 SDI SDA RC5/SDO RC5 SDO RC6/TX/CK RC6 TX CK RC7/RX/DT RC7 RX DT 11 8 12 9 13 10 14 11 15 12 16 13 17 14 18 15 I/O O I I/O I I/O I/O I/O I/O I/O I/O I/O I I/O I/O O I/O O I/O I/O I I/O ST ST ST ST ST ST ST ST 포트 C 는양방향 I/O 포트로사용가능 디지털 I/O. 타이머 1 오실레이터출력. 타이머 1 외부클럭입력. 디지털 I/O. 타이머 1 오실레이터입력. 캡쳐 2 입력, 컴페어 2 출력, PWM2 출력. 디지털 I/O. 캡쳐 1 입력 / 컴페어 1 출력 /PWM1 출력. 디지털 I/O. SPI 모드를위한동기직렬클럭입력 / 출력. I 2 C 모드를위한동기직렬클럭입력 / 출력. 디지털 I/O. SPI 데이터입력. I 2 C 데이터입력 / 출력. 디지털 I/O. SPI 데이터출력. 디지털 I/O. USART 비동기송신. USART 동기클럭. 디지털 I/O. USART 비동기수신. USART 동기데이터. VSS 8, 19 5, 16 P 로직및 I/O 핀들을위한그라운드. VDD 20 17 P 로직및 I/O 핀들을위한전원공급. 범례 : I = 입력 O = 출력 I/O = 입력 / 출력 P = 전원? = 사용되지않음 TTL = TTL 입력 ST = 쉬미트트리거입력 노트 1: 외부인터럽트로구성이되면버퍼는쉬미트트리거입력으로동작된다 2: 직렬검증모드로사용이되면버퍼는쉬미트트리거입력으로동작된다 3: RC 오실레이터모드로구성이되면버퍼는쉬미트트리거입력으로동작된다. 그외는 CMOS 입력포트로동작됨 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 9

테이블 1-3: PIC16CR74 과 PIC16CR77 핀 - 아웃서술 핀이름 PDIP 핀 # PLCC 핀 # QFP 핀 # I/O/P 타입 버퍼타입 서술 OSC1/CLKIN OSC1 CLKIN OSC2/CLKOUT OSC2 CLKOUT 13 14 30 14 15 31 I I O O ST/CMOS (4) 크리스탈오실레이터또는외부클럭입력. 크리스털오실레이터또는외부클럭소스입력으로사용가능. RC 오실레이터모드인경우버퍼는쉬미트트리거입력으로동작. 그외는 CMOS 입력으로동작됨외부클럭소스입력. 항상 OSC1 핀기능과관련됨 (OSC1/CLKIN, OSC2/CLKOUT 핀을참조 ). 크리스탈오실레이터또는클럭출력. 크리스탈오실레이터출력. 크리스털오실레이터모드에서는크리스털또는레조네이터가연결가능. RC 모드에서 CLKOUT 핀으로는 OSC1 으로공급되는주파수의 1/4 분주된주파수즉명령어사이클과같은펄스가출력됨. MCLR 1 2 18 I ST 마스터클리어 ( 리셋 ) 입력. 이핀이 Low 상태이면디바 이스를리셋시킨다. 포트 A 는양방향 I/O 포트로사용가능. RA0/AN0 RA0 AN0 RA1/AN1 RA1 AN1 RA2/AN2 RA2 AN2 RA3/AN3/VREF RA3 AN3 VREF RA4/T0CKI RA4 T0CKI RA5/AN4/SS RA5 AN4 SS 2 3 19 3 4 20 4 5 21 5 6 22 6 7 23 7 8 24 I/O I I/O I I/O I I/O I I I/O I I/O I I TTL TTL TTL TTL ST TTL 디지털 I/O. 아날로그입력 0. 디지털 I/O. 아날로그입력 1. 디지털 I/O. 아날로그입력 2. 디지털 I/O. 아날로그입력 3. A/D 기준전압입력. 디지털 I/O 출력으로사용되면오픈 - 드레인포트. 타이머 0 외부클럭입력. 디지털 I/O. 아날로그입력 4. SPI 슬레이브선택입력. 범례 : I = 입력 O = 출력 I/O = 입력 / 출력 P = 전원? = 사용되지않음TTL = TTL 입력 ST = 쉬미트트리거입력 노트 1: 외부인터럽트로구성이되면버퍼는쉬미트트리거입력으로동작된다 2: 직렬검증모드로사용이되면버퍼는쉬미트트리거입력으로동작된다 3: 일반용도로 I/O 가사용이되면버퍼는쉬미트트리거입력으로동작된다. 또한외부마이크로프로세서와의인터페이스로사용이되는 PSP 로구성이되는경우는버퍼는 TTL 입력으로동작된다 4: RC 오실레이터모드로구성이되면버퍼는쉬미트트리거입력으로동작된다. 그외는 CMOS 입력포트로동작됨 DS21993A_KR- 페이지 10 2006 마이크로칩테크놀로지

테이블 1-3: PIC16CR74 과 PIC16CR77 핀 - 아웃서술 ( 앞페이지에이어계속됨 ) 핀이름 PDIP 핀 # PLCC 핀 # QFP 핀 # I/O/P 타입 버퍼타입 서술 RB0/INT RB0 INT 33 36 8 I/O I TTL/ST (1) 포트 B 는양방향 I/O 포트로사용가능. 핀이입력으로사용될때소프트웨어적으로내부풀 - 업기능사용가능. 디지털 I/O. 외부인터럽트. RB1 34 37 9 I/O TTL 디지털 I/O. RB2 35 38 10 I/O TTL 디지털 I/O. RB3 36 39 11 I/O TTL 디지털 I/O. RB4 37 41 14 I/O TTL 디지털 I/O. RB5 38 42 15 I/O TTL 디지털 I/O. RB6 39 43 16 I/O TTL 디지털 I/O. RB7 40 44 17 I/O TTL 디지털 I/O. 포트 C 는양방향 I/O 포트로사용가능. RC0/T1OSO/ T1CKI RC0 T1OSO T1CKI RC1/T1OSI/CCP2 RC1 T1OSI CCP2 RC2/CCP1 RC2 CCP1 RC3/SCK/SCL RC3 SCK SCL RC4/SDI/SDA RC4 SDI SDA RC5/SDO RC5 SDO RC6/TX/CK RC6 TX CK RC7/RX/DT RC7 RX DT 15 16 32 16 18 35 17 19 36 18 20 37 23 25 42 24 26 43 25 27 44 26 29 1 I/O O I I/O I I/O I/O I/O I/O I/O I/O I/O I I/O I/O O I/O O I/O I/O I I/O ST ST ST ST ST ST ST ST 디지털 I/O. 타이머 1 오실레이터출력. 타이머 1 외부클럭입력. 디지털 I/O. 타이머 1 오실레이터입력. 캡쳐 2 입력, 컴페어 2 출력, PWM2 출력. 디지털 I/O. 캡쳐 1 입력 / 컴페어 1 출력 /PWM1 출력. 디지털 I/O. SPI 모드를위한동기직렬클럭입력 / 출력. I 2 C 모드를위한동기직렬클럭입력 / 출력. 디지털 I/O. SPI 데이터입력. I 2 C 데이터입력 / 출력. 디지털 I/O. SPI 데이터출력. 디지털 I/O. USART 비동기송신. USART 동기클럭. 디지털 I/O. USART 비동기수신. USART 동기데이터. 범례 : I = 입력 O = 출력 I/O = 입력 / 출력 P = 전원? = 사용되지않음TTL = TTL 입력 ST = 쉬미트트리거입력 노트 1: 외부인터럽트로구성이되면버퍼는쉬미트트리거입력으로동작된다 2: 직렬검증모드로사용이되면버퍼는쉬미트트리거입력으로동작된다 3: 일반용도로 I/O 가사용이되면버퍼는쉬미트트리거입력으로동작된다. 또한외부마이크로프로세서와의인터페이스로사용이되는 PSP 로구성이되는경우는버퍼는 TTL 입력으로동작된다 4: RC 오실레이터모드로구성이되면버퍼는쉬미트트리거입력으로동작된다. 그외는 CMOS 입력포트로동작됨 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 11

테이블 1-3: PIC16CR74 과 PIC16CR77 핀 - 아웃서술 ( 앞페이지에이어계속됨 ) 핀이름 PDIP 핀 # PLCC 핀 # QFP 핀 # I/O/P 타입 버퍼타입 서술 RD0/PSP0 RD0 PSP0 RD1/PSP1 RD1 PSP1 RD2/PSP2 RD2 PSP2 RD3/PSP3 RD3 PSP3 RD4/PSP4 RD4 PSP4 RD5/PSP5 RD5 PSP5 RD6/PSP6 RD6 PSP6 RD7/PSP7 RD7 PSP7 RE0/AN5/RD/ RE0 AN5 RD RE1/AN6/WR/ RE1 AN6 WR RE2/AN7/CS RE2 AN7 CS 19 21 38 I/O I/O 20 22 39 I I/O I/O 21 23 40 I I/O I/O 22 24 41 27 30 2 28 31 3 29 32 4 30 33 5 8 9 25 9 10 26 10 11 27 I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I I I/O I I I/O I I ST/TTL (3) ST/TTL (3) ST/TTL (3) ST/TTL (3) ST/TTL (3) ST/TTL (3) ST/TTL (3) ST/TTL (3) ST/TTL (3) ST/TTL (3) ST/TTL (3) 포트 D 는양방향 I/O 포트또는마이크로프로세서연결시에는페러렐슬레이브포트로사용가능. 디지털 I/O. 페러렐슬레이브포트를위한데이터핀. 디지털 I/O. 페러렐슬레이브포트를위한데이터핀. 디지털 I/O. 페러렐슬레이브포트를위한데이터핀. 디지털 I/O. 페러렐슬레이브포트를위한데이터핀. 디지털 I/O. 페러렐슬레이브포트를위한데이터핀. 디지털 I/O. 페러렐슬레이브포트를위한데이터핀. 디지털 I/O. 페러렐슬레이브포트를위한데이터핀. 디지털 I/O. 페러렐슬레이브포트를위한데이터핀. 포트 E 는양방향 I/O 포트로사용가능. 디지털 I/O. 아날로그입력 5. 페러렐슬레이브포트를위한읽기제어. 디지털 I/O. 아날로그입력 6. 페러렐슬레이브포트를위한쓰기제어. 디지털 I/O. 아날로그입력 7. 페러렐슬레이브포트를위한칩선택제어. VSS 12,31 13,34 6,29 P 로직및 I/O 핀들을위한그라운드. VDD 11,32 12,35 7,28 P 로직및 I/O 핀들을위한전원공급. NC 1,17, 28, 40 12,13, 33, 34 이핀들은내부적으로연결되어있지않음. 이러한핀들은연결되지않은상태로나두어야함.. 범례 : I = 입력 O = 출력 I/O = 입력 / 출력 P = 전원? = 사용되지않음TTL = TTL 입력 ST = 쉬미트트리거입력 노트 1: 외부인터럽트로구성이되면버퍼는쉬미트트리거입력으로동작된다 2: 직렬검증모드로사용이되면버퍼는쉬미트트리거입력으로동작된다 3: 일반용도로 I/O 가사용이되면버퍼는쉬미트트리거입력으로동작된다. 또한외부마이크로프로세서와의인터페이스로사용이되는 PSP 로구성이되는경우는버퍼는 TTL 입력으로동작된다 4: RC 오실레이터모드로구성이되면버퍼는쉬미트트리거입력으로동작된다. 그외는 CMOS 입력포트로동작됨 DS21993A_KR- 페이지 12 2006 마이크로칩테크놀로지

2.0 메모리구조 PICmicro MCU 는두개의메모리블럭을가지고있다. 이장에서설명하는것처럼동시에억세스가가능하게하기위하여프로그램메모리와데이터메모리는서로분리된각각의버스를가지고있다. 또한프로그램메모리는사용자의코드에의해내부적으로읽혀질수가있다 ( 섹션 3.0 老족慣瀏? 메모리읽기참조 ). 디바이스메모리에대한자세한사항은 PICmicro 미드 - 레인지 MCU 패밀리참조메뉴얼 (DS33023) 를참조하기를바란다. 2.1 프로그램메모리구조 PIC16CR7X 디바이스는최대 8K 워드 x 14 비트프로그램메모리공간을어드레싱할수있는 13 비트프로그램카운터를가지고있다. PIC16CR77/76 디바이스는 8K 워드크기의프로그램메모리공간을가지고있고 PIC16CR73/74 디바이스는 4K 워드프로그램메모리공간을가지고있다. PIC16CR7X 디바이스의프로그램메모리구조에대하여는그림 2-1 을통하여확인가능하다. 물리적으로정의되어있는어드레스공간이외의부분을억세스하면이는워랩 - 어라운드현상을일으켜 000H 번지가실행될것이다. 리셋벡터는 000H 번지이며인터럽트백터는 0004H 번지이다. 2.2 데이터메모리구조 데이터메모리는몇개의뱅크로나누어져있으며그안에는범용레지스터 (GPR) 와특수기능레지스터 (SFR) 를포함하고있다. 각뱅크의선택은 RP1 비트 (STA- TUS<6>) 와 RP0 비트 (STATUS<5>) 를통하여이루어진다 : RP1:RP0 뱅크 00 0 01 1 10 2 11 3 각뱅크는 7Fh (128 바이트 ) 까지확장가능하다. 각뱅크의아래부분은특수기능레지스터 (SFR) 를위하여예약되어있으며 SFR 위쪽부분은 SRAM 으로구성된범용레지스터구간이다. 모든뱅크영역에는 SFR 구간을포함하고있으며자주사용이되는 SFR 영역은사용자가코드사이즈를줄이고빠른접근을허용하기위하여뱅크의구분이적용되지않는다. 2.2.1 범용레지스터파일 레지스터파일 ( 그림 2-2 과그림 2-3) 은직접또는파일선택레지스터 (FSR) 를통하여간접억세스가가능하다. 그림 2-1: PIC16CR7X 디바이스의프로그램메모리및스택구조 PIC16CR76/77 PC<12:0> PIC16CR73/74 PC<12:0> CALL, RETURN RETFIE, RETLW 13 CALL, RETURN RETFIE, RETLW 13 스택레벨 1 스택레벨 2 스택레벨 1 스택레벨 2 스택레벨 8 스택레벨 8 리셋벡터 0000h 리셋벡터 0000h 인터럽트벡터 0004h 0005h 인터럽트벡터 0004h 0005h 내부 프로그램메모리 페이지 0 페이지 1 페이지 2 07FFh 0800h 0FFFh 1000h 17FFh 1800h 내부프로그램메모리 페이지 0 페이지 1 정의되지않은영역 0 으로읽힘 07FFh 0800h 0FFFh 1000h 페이지 3 1FFFh 1FFFh 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 13

그림 2-2: PIC16CR77/76 레지스터파일구조 파일어드레스 파일어드레스 파일어드레스 파일어드레스 간접어드레스 (*) TMR0 PCL STATUS FSR PORTA PORTB PORTC PORTD (1) 00h 01h 02h 03h 04h 05h 06h 07h 08h 간접어드레스 (*) OPTION_REG PCL STATUS FSR TRISA TRISB TRISC TRISD (1) 간접어드레스 (*) TMR0 PCL STATUS FSR PORTB PORTE (1) 09h TRISE (1) PCLATH INTCON PIR1 PCLATH INTCON PIE1 PCLATH INTCON PIR2 TMR1L TMR1H T1CON TMR2 T2CON SSPBUF SSPCON CCPR1L CCPR1H CCP1CON RCSTA TXREG RCREG CCPR2L CCPR2H CCP2CON ADRES ADCON0 0Ah 0Bh 0Ch 0Dh 0Eh 0Fh 10h 11h 12h 13h 14h 15h 16h 17h 18h 19h 1Ah 1Bh 1Ch 1Dh 1Eh 1Fh 20h PIE2 PCON PR2 SSPADD SSPSTAT TXSTA SPBRG ADCON1 80h 81h 82h 83h 84h 85h 86h 87h 88h 89h 8Ah 8Bh 8Ch 8Dh 8Eh 8Fh 90h 91h 92h 93h 94h 95h 96h 97h 98h 99h 9Ah 9Bh 9Ch 9Dh 9Eh 9Fh A0h PMDATA PMADR PMDATH PMADRH 범용레지스터 100h 101h 102h 103h 104h 105h 106h 107h 108h 109h 10Ah 10Bh 10Ch 10Dh 10Eh 10Fh 110h 111h 112h 113h 114h 115h 116h 117h 118h 119h 간접어드레스 (*) OPTION_REG PCL STATUS FSR TRISB PCLATH INTCON PMCON1 범용레지스터 16 바이트 16 바이트 11Ah 11Bh 11Ch 11Dh 11Eh 11Fh 120h 180h 181h 182h 183h 184h 185h 186h 187h 188h 189h 18Ah 18Bh 18Ch 18Dh 18Eh 18Fh 190h 191h 192h 193h 194h 195h 196h 197h 198h 199h 19Ah 19Bh 19Ch 19Dh 19Eh 19Fh 1A0h 범용레지스터 96 바이트 70h-7Fh 번지를억세스 7Fh 뱅크 0 뱅크 1 범용레지스터 범용레지스터 범용레지스터 80 바이트 EFh 80 바이트 16Fh 80 바이트 F0h 170h FFh 70h-7Fh 번지를억세스 70h-7Fh 번지를억세스 17Fh 뱅크 2 뱅크 3 1EFh 1F0h 1FFh 정의되지않은데이터메모리부분, 항상 0 으로읽힘. * 물리적인레지스터가아니다. 노트 1: 이러한레지스터들은 28 핀디바이스에는적용되지않는다. DS21993A_KR- 페이지 14 2006 마이크로칩테크놀로지

그림 2-3: PIC16CR74/73 레지스터파일구조 파일어드레스 파일어드레스 파일어드레스 파일어드레스 간접어드레스 (*) TMR0 PCL STATUS FSR PORTA PORTB PORTC PORTD (1) 00h 01h 02h 03h 04h 05h 06h 07h 08h 간접어드레스 (*) OPTION_REG PCL STATUS FSR TRISA TRISB TRISC TRISD (1) 간접어드레스 (*) TMR0 PCL STATUS FSR PORTB PORTE (1) 09h TRISE (1) PCLATH INTCON PIR1 PCLATH INTCON PIE1 PCLATH INTCON PIR2 TMR1L TMR1H T1CON TMR2 T2CON SSPBUF SSPCON CCPR1L CCPR1H CCP1CON RCSTA TXREG RCREG CCPR2L CCPR2H CCP2CON ADRES ADCON0 0Ah 0Bh 0Ch 0Dh 0Eh 0Fh 10h 11h 12h 13h 14h 15h 16h 17h 18h 19h 1Ah 1Bh 1Ch 1Dh 1Eh 1Fh 20h PIE2 PCON PR2 SSPADD SSPSTAT TXSTA SPBRG ADCON1 80h 81h 82h 83h 84h 85h 86h 87h 88h 89h 8Ah 8Bh 8Ch 8Dh 8Eh 8Fh 90h 91h 92h 93h 94h 95h 96h 97h 98h 99h 9Ah 9Bh 9Ch 9Dh 9Eh 9Fh A0h PMDATA PMADR PMDATH PMADRH 100h 101h 102h 103h 104h 105h 106h 107h 108h 109h 10Ah 10Bh 10Ch 10Dh 10Eh 10Fh 110h 120h 간접어드레스 (*) OPTION_REG PCL STATUS FSR TRISB PCLATH INTCON PMCON1 180h 181h 182h 183h 184h 185h 186h 187h 188h 189h 18Ah 18Bh 18Ch 18Dh 18Eh 18Fh 190h 1A0h 범용레지스터 범용레지스터 96 바이트 96 바이트 20h-7Fh 번지를억세스 16Fh 170h A0h-FFh 번지를억세스 1EFh 1F0h 7Fh 뱅크 0 뱅크 1 FFh 17Fh 뱅크 2 뱅크 3 1FFh 정의되지않은데이터메모리부분, 항상 0 으로읽힘. * 물리적인레지스터가아니다. 노트 1: 이러한레지스터들은 28 핀디바이스에는적용되지않는다. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 15

2.2.2 특수기능레지스터 특수기능레지스터는 CPU 와주변장치의동작을제어하기위하여사용한다. 이러한레지스터들은모두 SRAM 으로구성이되어있으며아래테이블 2-1 을참조하기를바란다. SFR 레지스터는두종류로나누어진다 : 하나는 CORE (CPU) 기능과관련된특수레지스터들이고또하나는주변장치의동작을제어하는특수레지스터들이다. CORE 기능과관련된레지스터들은이장을통하여서술하게되며주변장치와관련된레지스터의동작은주변장치관련부분에서서술한다.. 테이블 2-1: SFR 레지스터요약 어드레스이름비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0 뱅크 0 POR, BOR 에서의값 상세한페이지 00h (4) INDF 이지역의어드레싱은 FSR 이가르키는메모리번지를억세스함 ( 물리적인레지스터가아님 ) 0000 0000 27, 96 01h TMR0 타이머 0 모듈레지스터 xxxx xxxx 45, 96 02h (4) PCL 프로그램카운터 (PC) 하위바이트 0000 0000 26, 96 03h (4) STATUS IRP RP1 RP0 TO PD Z DC C (2) 0001 1xxx 19, 96 04h (4) FSR 간접데이터메모리어드레스포인터 xxxx xxxx 27, 96 05h PORTA 쓸때는포트 A 데이터래치에, 읽을때는포트 A 핀을읽음 --0x 0000 32, 96 06h PORTB 쓸때는포트 B 데이터래치에, 읽을때는포트 B 핀을읽음 xxxx xxxx 34, 96 07h PORTC 쓸때는포트 C 데이터래치에, 읽을때는포트 C 핀을읽음 xxxx xxxx 35, 96 08h (5) PORTD 쓸때는포트 D 데이터래치에, 읽을때는포트 D 핀을읽음 xxxx xxxx 36, 96 09h (5) PORTE RE2 RE1 RE0 ---- -xxx 39, 96 0Ah (1,4) PCLATH 프로그램카운터의상위 5 비트를위한쓰기버퍼 ---0 0000 26, 96 0Bh (4) INTCON GIE PEIE TMR0IE INTE RBIE TMR0IF INTF RBIF 0000 000x 21, 96 0Ch PIR1 PSPIF (3) ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 0000 0000 23, 96 0Dh PIR2 CCP2IF ---- ---0 24, 96 0Eh TMR1L 16 비트 TMR1 레지스터의하위홀딩레지스터 xxxx xxxx 50, 96 0Fh TMR1H 16 비트 TMR1 레지스터의상위홀딩레지스터 xxxx xxxx 50, 96 10h T1CON T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS TMR1ON --00 0000 47, 96 11h TMR2 타이머 2 모듈레지스터 0000 0000 52, 96 12h T2CON TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPS1 T2CKPS0-000 0000 52, 96 13h SSPBUF 동기시리얼포트수신버퍼 / 송신레지스터 xxxx xxxx 64, 68, 96 14h SSPCON WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM1 SSPM0 0000 0000 61, 96 15h CCPR1L 캡쳐 / 컴페어 /PWM 레지스터 1 (LSB) xxxx xxxx 56, 96 16h CCPR1H 캡쳐 / 컴페어 /PWM 레지스터 1 (MSB) xxxx xxxx 56, 96 17h CCP1CON CCP1X CCP1Y CCP1M3 CCP1M2 CCP1M1 CCP1M0 --00 0000 54, 96 18h RCSTA SPEN RX9 SREN CREN FERR OERR RX9D 0000-00x 70, 96 19h TXREG USART 송신데이터레지스터 0000 0000 75, 96 1Ah RCREG USART 수신데이터레지스터 0000 0000 77, 96 1Bh CCPR2L 캡쳐 / 컴페어 /PWM 레지스터 2 (LSB) xxxx xxxx 58, 96 1Ch CCPR2H 캡쳐 / 컴페어 /PWM 레지스터 2 (MSB) xxxx xxxx 58, 96 1Dh CCP2CON CCP2X CCP2Y CCP2M3 CCP2M2 CCP2M1 CCP2M0 --00 0000 54, 96 1Eh ADRES A/D 결과레지스터바이트 xxxx xxxx 88, 96 1Fh ADCON0 ADCS1 ADCS0 CHS2 CHS1 CHS0 GO/ DONE ADON 0000 00-0 83, 96 범례 : x = 알수없음, u = 변하지않음, q = 조건에따라변함,? = 정의되지않음, 항상 0 으로읽힘, r = 예약되어있음. 빗금친부분은정의되지않은영역이며항상 0 으로읽힘. 노트 1: 프로그램카운터의상위바이트는직접억세스가불가능하다. PCLATH 는 PC<12:8> 의홀딩레지스터이다. 그값들은프로그램점프 (CALL or GOTO) 명령에서프로그램카운터의상위바이트로전송이된다. 2: 다른모든리셋 ( 파워 - 업리셋아님 ) 은 MCLR 과워치 - 독리셋을통한포함한다. 3: PSPIE 와 PSPIF 비트는 28 핀디바이스에서는예약되어있다. 항상이비트들은클리어상태를유지한다. 4: 이러한레지스터는어떠한뱅크에서도접근이가능하다. 즉뱅크의구분이없다. 5: PORTD, PORTE, TRISD 그리고 TRISE 레지스터는 28 핀디바이스에서는적용되지않고항상 0 으로읽힌다. 6: 이비트는항상 1 로읽힌다. DS21993A_KR- 페이지 16 2006 마이크로칩테크놀로지

테이블 2-1: SFR 레지스터요약 ( 앞페이지에이어계속됨 ) 어드레스이름비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0 POR, BOR 에서의값 상세한페이지 뱅크 1 80h (4) INDF 이지역의어드레싱은 FSR 이가르키는메모리번지를억세스함 ( 물리적인레지스터가아님 ) 0000 0000 27, 96 81h OPTION_REG RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 1111 1111 20, 44, 96 82h (4) PCL 프로그램카운터 (PC) 하위바이트 0000 0000 26, 96 83h (4) STATUS IRP RP1 RP0 TO PD Z DC C (2) 0001 1xxx 19, 96 84h (4) FSR 간접데이터메모리어드레스포인터 xxxx xxxx 27, 96 85h TRISA 포트 A 방향설정레지스터 --11 1111 32, 96 86h TRISB 포트 B 방향설정레지스터 1111 1111 34, 96 87h TRISC 포트 C 방향설정레지스터 1111 1111 35, 96 88h (5) TRISD 포트 D 방향설정레지스터 1111 1111 36, 96 89h (5) TRISE IBF OBF IBOV PSPMODE 포트 E 방향설정레지스터 0000-111 38, 97 8Ah (1,4) PCLATH 프로그램카운터의상위 5 비트를위한쓰기버퍼 ---0 0000 26, 96 8Bh (4) INTCON GIE PEIE TMR0IE INTE RBIE TMR0IF INTF RBIF 0000 000x 21, 96 8Ch PIE1 PSPIE (3) ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 22, 97 8Dh PIE2 CCP2IE ---- ---0 24, 97 8Eh PCON POR BOR ---- --qq 22, 97 8Fh 정의되지않은영역 90h 정의되지않은영역 91h 정의되지않은영역 92h PR2 타이머 2 모듈주기레지스터 1111 1111 52, 97 93h SSPADD 동기시리얼포트 (I 2 C 모드 ) 어드레스레지스터 0000 0000 68, 97 94h SSPSTAT SMP CKE D/A P S R/W UA BF 0000 0000 60, 97 95h 정의되지않은영역 96h 정의되지않은영역 97h 정의되지않은영역 98h TXSTA CSRC TX9 TXEN SYNC BRGH TRMT TX9D 0000-010 69, 97 99h SPBRG 보 - 레이트발생레지스터 0000 0000 71, 97 9Ah 정의되지않은영역 9Bh 정의되지않은영역 9Ch 정의되지않은영역 9Dh 정의되지않은영역 9Eh 정의되지않은영역 9Fh ADCON1 PCFG2 PCFG1 PCFG0 ---- -000 84, 97 범례 : x = 알수없음, u = 변하지않음, q = 조건에따라변함,? = 정의되지않음, 항상 0 으로읽힘, r = 예약되어있음. 빗금친부분은정의되지않은영역이며항상 0 으로읽힘. 노트 1: 프로그램카운터의상위바이트는직접억세스가불가능하다. PCLATH 는 PC<12:8> 의홀딩레지스터이다. 그값들은 프로그램점프 (CALL or GOTO) 명령에서프로그램카운터의상위바이트로전송이된다. 2: 다른모든리셋 ( 파워 - 업리셋아님 ) 은 MCLR 과워치 - 독리셋을통한포함한다. 3: PSPIE 와 PSPIF 비트는 28 핀디바이스에서는예약되어있다. 항상이비트들은클리어상태를유지한다. 4: 이러한레지스터는어떠한뱅크에서도접근이가능하다. 즉뱅크의구분이없다. 5: PORTD, PORTE, TRISD 그리고 TRISE 레지스터는 28 핀디바이스에서는적용되지않고항상 0 으로읽힌다. 6: 이비트는항상 1 로읽힌다. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 17

테이블 2-1: SFR 레지스터요약 ( 앞페이지에이어계속됨 ) 어드레스이름비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0 POR, BOR 에서의값 상세한페이지 뱅크 2 100h (4) INDF 이지역의어드레싱은 FSR 이가르키는메모리번지를억세스함 ( 물리적인레지스터가아님 ) 0000 0000 27, 96 101h TMR0 타이머 0 모듈레지스터 xxxx xxxx 45, 96 102h (4) PCL 프로그램카운터 (PC) 의하위바이트 0000 0000 26, 96 103h (4) STATUS IRP RP1 RP0 TO PD Z DC C 0001 1xxx 19, 96 104h (4) FSR 간접데이터메모리어드레스포인터 xxxx xxxx 27, 96 105h 정의되지않은영역 106h PORTB 쓸때는포트 B 데이터래치에, 읽을때는포트 B 핀을읽음 xxxx xxxx 34, 96 107h 정의되지않은영역 108h 정의되지않은영역 109h 정의되지않은영역 10Ah (1,4) PCLATH 프로그램카운터의상위 5 비트를위한쓰기버퍼 ---0 0000 26, 96 10Bh (4) INTCON GIE PEIE TMR0IE INTE RBIE TMR0IF INTF RBIF 0000 000x 21, 96 10Ch PMDATA 데이터레지스터하위바이트 xxxx xxxx 29, 97 10Dh PMADR 어드레스레지스터하위바이트 xxxx xxxx 29, 97 10Eh PMDATH 데이터레지스터상위바이트 xxxx xxxx 29, 97 10Fh PMADRH 어드레스레지스터상위바이트 xxxx xxxx 29, 97 뱅크 3 180h (4) INDF 이지역의어드레싱은 FSR 이가르키는메모리번지를억세스함 ( 물리적인레지스터가아님 ) 0000 0000 27, 96 181h OPTION_REG RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 1111 1111 20, 44, 96 182h (4) PCL 프로그램카운터 (PC) 의하위바이트 0000 0000 26, 96 183h (4) STATUS IRP RP1 RP0 TO PD Z DC C 0001 1xxx 19, 96 184h (4) FSR 간접데이터메모리어드레스포인터 xxxx xxxx 27, 96 185h 정의되지않은영역 186h TRISB 포트 B 방향설정레지스터 1111 1111 34, 96 187h 정의되지않은영역 188h 정의되지않은영역 189h 정의되지않은영역 18Ah (1,4) PCLATH 프로그램카운터의상위 5 비트를위한쓰기버퍼 ---0 0000 26, 96 18Bh (4) INTCON GIE PEIE TMR0IE INTE RBIE TMR0IF INTF RBIF 0000 000x 21, 96 18Ch PMCON1 (6) RD 1--- ---0 29, 97 18Dh 정의되지않은영역 18Eh 예약되어있음. 항상클리어상태를유지함 0000 0000 18Fh 예약되어있음. 항상클리어상태를유지함 0000 0000 범례 : x = 알수없음, u = 변하지않음, q = 조건에따라변함,? = 정의되지않음, 항상 0 으로읽힘, r = 예약되어있음. 빗금친부분은정의되지않은영역이며항상 0 으로읽힘. 노트 1: 프로그램카운터의상위바이트는직접억세스가불가능하다. PCLATH 는 PC<12:8> 의홀딩레지스터이다. 그값들은 프로그램점프 (CALL or GOTO) 명령에서프로그램카운터의상위바이트로전송이된다. 2: 다른모든리셋 ( 파워 - 업리셋아님 ) 은 MCLR 과워치 - 독리셋을통한포함한다. 3: PSPIE 와 PSPIF 비트는 28 핀디바이스에서는예약되어있다. 항상이비트들은클리어상태를유지한다. 4: 이러한레지스터는어떠한뱅크에서도접근이가능하다. 즉뱅크의구분이없다. 5: PORTD, PORTE, TRISD 그리고 TRISE 레지스터는 28 핀디바이스에서는적용되지않고항상 0 으로읽힌다. 6: 이비트는항상 1 로읽힌다. DS21993A_KR- 페이지 18 2006 마이크로칩테크놀로지

2.2.2.1 STATUS 레지스터 STATUS 레지스터는 ALU 의산술적인상태, 리셋상태그리고데이터메모리를위한뱅크선택비트들을포함하고있다. STATUS 레지스터는다른레지스터처럼명령어에서목적지로사용될수도있다. 만약그명령이 STATUS 레지스터의 Z,DC,C 비트에영향을미치는명령어이라면이비트에쓰는것은금지된다. 이러한비트들은칩내부에있는로직에서셋트하거나클리어가된다. 더구나 TO 와 PD 비트는쓰기가불가능한읽기전용비트들이다. 그러므로목적지로서 STATUS 레지스터를가지는명령어의결과는의도하는바와다를수도있다. 예를들어 CLRF STATUS 명령을실행하면 STATUS 레지스터의상위 3 비트는클리어되고 Z 비트는셋트된다. STATUS 레지스터는 000u u1uu ( 여기에서 u = 변하지않음 ) 로된다. 그러므로 BCF, BSF, SWAPF 그리고 MOVWF 명령어를사용하여 STATUS 레지스터를바꾸는것이더유리하다. 왜냐하면이러한명령어들은 STATUS 레지스터의어떠한비트들에도영향을주지않기때문이다. STA- TUS 레지스터의각비트에영향을주지않는명령어에대해서는 명령어요약 부분을참조하기를바란다. 노트 1: C 와 DC 비트는바로우와디지트바로우비트로동작이된다. 자세한예는 SUBLW 와 SUBWF 명령을참조하기를바란다. 레지스터 2-1: STATUS: ( 어드레스 03h, 83h, 103h, 183h) R/W-0 R/W-0 R/W-0 R-1 R-1 R/W-x R/W-x R/W-x IRP RP1 RP0 TO PD Z DC C 비트 7 비트 0 범례 : R = 읽기가능비트 W = 쓰기가능비트 U = 정의되지않은비트, 항상 0 으로읽힘 -n = POR 상태에서의값 1 = 비트가셋트됨 0 = 비트가클리어됨 x = 정의되지않은비트임 비트 7 IRP: 뱅크선택비트 ( 간접어드레싱에서사용됨 ) 1 = 뱅크 2, 3 (100h-1FFh) 0 = 뱅크 0, 1 (00h-FFh) 비트 6-5 RP1:RP0: 뱅크선택비트 ( 직접어드레싱에서사용됨 ) 11 = 뱅크 3 (180h - 1FFh) 10 = 뱅크 2 (100h - 17Fh) 01 = 뱅크 1 (80h - FFh) 00 = 뱅크 0 (00h - 7Fh) 각뱅크는 128 바이트의크기를가진다 비트 4 TO: 타임 - 아웃비트 1 = 파워 - 온상태또는 CLRWDT, SLEEP 명령이실행된이후이비트는 1 로셋트됨 0 = 워치독타임 - 아웃이발생되었음 비트 3 PD: 파워 - 다운비트 1 = 파워 - 온상태이후또는 CLRWDT 명령의실행에의하여이비트는 1 로셋트됨 0 = SLEEP 명령의실행에의해비트는 0 으로클리어됨비트 2 Z: Zero 비트 1 = 연산의결과또는논리연산의결과가 0 으로되었을때 0 = 연산의결과또는논리연산의결과가 0 이아닌경우비트 1 DC: 디지트캐리 / 바로우비트 (ADDWF, ADDLW, SUBLW, SUBWF 명령 ) 1 = 결과의 4 번째비트로부터캐리아웃발생 0 = 결과의 4 번째비트로부터캐리아웃발생되지않음비트 0 C: 캐리 / 바로우 (ADDWF, ADDLW, SUBLW, SUBWF 명령 ) 1 = 최종결과의최상위비트로부터캐리발생 0 = 최종결과의최상위비트로부터캐리발생되지않음노트 : 바로우인경우극성은뒤바뀐다. 감산은두번째오퍼랜드에 2 의보수를더함으로써수행된다. 로테이트명령 (RRF, RLF) 에대해이비트는소스레지스터의상위또는하위로로드된다. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 19

2.2.2.2 OPTION_REG 레지스터 OPTION_REG 레지스터는읽고쓰기가가능하며타이머 0 모듈의프리스케일러 / WDT 모듈의포스트스케일러 ( 하나의할당가능한프리스케일러임 ), 외부 INT 인터럽트, TMR0 그리고포트 B 에위크풀 - 업을제어하는여러개의비트들을내장하고있다. 노트 : TMR0 레지스터가 1:1 분주비를사용한다면프리스케일러는 WDT 쪽으로할당가능하다. 레지스터 2-2: OPTION_REG: ( 어드레스 81h, 181h) R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 비트 7 비트 0 범례 : R = 읽기가능비트 W = 쓰기가능비트 U = 정의되지않은비트, 항상 0 으로읽힘 -n = POR 상태에서의값 1 = 비트가셋트됨 0 = 비트가클리어됨 x = 정의되지않은비트임 비트 7 비트 6 비트 5 비트 4 비트 3 비트 2-0 RBPU: 포트 B 풀 - 업인에이블비트 1 = 포트 B 풀 - 업이디제이블됨 0 = 각포트래치값에의하여포트 B 풀 - 업이인에이블됨 INTEDG: 인터럽트에지선택비트 1 = RB0/INT 핀의상승에지에서인터럽트를발생시킴 0 = RB0/INT 핀의하강에지에서인터럽트를발생시킴 T0CS: TMR0 클럭소스선택비트 1 = RA4/T0CKI 핀으로공급되는클럭을선택함 0 = 내부명령어사이클클럭을선택함 (CLKOUT) T0SE: TMR0 소스에지선택비트 1 = TMR0 레지스터를 RA4/T0CKI 핀으로공급되는펄스의하강에지에서증가시킴 0 = TMR0 레지스터를 RA4/T0CKI 핀으로공급되는펄스의상승에지에서증가시킴 PSA: 프리스케일러할당선택비트 1 = 프리스케일러를 WDT 쪽으로할당시킴 0 = 프리스케일러를타이머 0 모듈쪽으로할당시킴 PS2:PS0: 프리스케일러분주비선택 비트값 TMR0 비율 WDT 비율 000 001 010 011 100 101 110 111 1 : 2 1 : 4 1 : 8 1 : 16 1 : 32 1 : 64 1 : 128 1 : 256 1 : 1 1 : 2 1 : 4 1 : 8 1 : 16 1 : 32 1 : 64 1 : 128 DS21993A_KR- 페이지 20 2006 마이크로칩테크놀로지

2.2.2.3 INTCON 레지스터 INTCON 레지스터는읽고쓰기가가능한레지스터이며각종인터럽트인에이블비트및 TMR0 레지스터오버플로우및 RB 포트변화인터럽트그리고외부 RB0/ INT 핀에지인터럽트를위한요구플래그들을포함하고있다. 노트 : 각종인터럽트인에이블비트및글로벌인터럽트인에이블비트 GIE (INTCON<7> 의상태와무관하게인터럽트조건이발생하면해당인터럽트요구플래그들은 1 로셋트된다. 따라서사용자는사용하고자하는인터럽트를인에이블시키기전에반드시해당인터럽트요구플래그들을 0 으로클리어시켜야할것이다. 레지스터 2-3: INTCON: ( 어드레스 0Bh, 8Bh, 10Bh, 18Bh) R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-x GIE PEIE TMR0IE INTE RBIE TMR0IF INTF RBIF 비트 7 비트 0 범례 : R = 읽기가능비트 W = 쓰기가능비트 U = 정의되지않은비트, 항상 0 으로읽힘 -n = POR 상태에서의값 1 = 비트가셋트됨 0 = 비트가클리어됨 x = 정의되지않은비트임 비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0 GIE: 글로벌인터럽트인에이블비트 1 = 마스크되지않은모든인터럽트를인에이블시킴 0 = 모든인터럽트를디제이블시킴 PEIE: 주변장치인터럽트인에이블비트 1 = 마스크되지않은모든주변장치인터럽트를인에이블시킴 0 = 모든주변장치인터럽트를디제이블시킴 TMR0IE: TMR0 오버 - 플로우인터럽트인에이블비트 1 = TMR0 인터럽트를인에이블시킴 0 = TMR0 인터럽트를디제이블시킴 INTE: RB0/INT 외부인터럽트인에이블비트 1 = RB0/INT 외부인터럽트를인에이블시킴 0 = RB0/INT 외부인터럽트를디제이블시킴 RBIE: RB 포트변화인터럽트인에이블비트 1 = RB 포트변화인터럽트를인에이블시킴 0 = RB 포트변화인터럽트를디제이블시킴 TMR0IF: TMR0 오버 - 플로우인터럽트요구플래그비트 1 = TMR0 레지스터가오버 - 플로우되었음 ( 반드시소프트웨어로클리어시켜야함 ) 0 = TMR0 레지스터의오버 - 플로우가발생되지않았음 INTF: RB0/INT 외부인터럽트요구플래그비트 1 = RB0/INT 외부인터럽트요구플래그가발생되었음 ( 반드시소프트웨어로클리어시켜야함 ) 0 = RB0/INT 외부인터럽트요구플래그가발생되지않았음 RBIF: RB 포트변화인터럽트요구플래그비트불일치조건은계속하여 RBIF 비트를셋트시킨다. 따라서사용자는포트 B 를읽음으로써불일치조건을해제시킬수있으며또한 RBIF 비트를소프트웨어로클리어시켜야한다. 1 = 적어도 RB7:RB4 핀상의하나의포트에상태변화가발생되었음 ( 반드시소프트웨어로클리어시켜야함 ) 0 = RB7:RB4 핀상에상태변화된핀이하나도없음 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 21

2.2.2.4 PIE1 레지스터 PIE1 레지스터는주변장치인터럽트를위한각종인에이블비트들을포함하고있다. 노트 : 주변장치인터럽트를사용하기위해서는반드시 PEIE (INTCON<6>) 가 1 로셋트되어있어야만한다. 레지스터 2-4: PIE1: ( 어드레스 8Ch) R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 PSPIE (1) ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 비트 7 비트 0 범례 : R = 읽기가능비트 W = 쓰기가능비트 U = 정의되지않은비트, 항상 0 으로읽힘 -n =POR 상태에서의값 1 = 비트가셋트됨 0 = 비트가클리어됨 x = 정의되지않은비트임 비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 PSPIE (1) : 병렬슬레이브포트읽기 / 쓰기인터럽트인에이블비트 1 = PSP 읽기 / 쓰기인터럽트를인에이블시킴 0 = PSP 읽기 / 쓰기인터럽트를디제이블시킴 ADIE: A/D 컨버터인터럽트인에이블비트 1 = A/D 컨버터인터럽트를인에이블시킴 0 = A/D 컨버터인터럽트를디제이블시킴 RCIE: USART 수신인터럽트인에이블비트 1 = USART 수신인터럽트를인에이블시킴 0 = USART 수신인터럽트를디제이블시킴 TXIE: USART 송신인터럽트인에이블비트 1 = USART 송신인터럽트를인에이블시킴 0 = USART 송신인터럽트를디제이블시킴 SSPIE: 동기시리얼포트인터럽트인에이블비트 1 = 동기시리얼포트인터럽트를인에이블시킴 0 = 동기시리얼포트인터럽트를디제이블시킴 CCP1IE: CCP1 인터럽트인에이블비트 1 = CCP1 인터럽트를인에이블시킴 0 = CCP1 인터럽트를디제이블시킴 TMR2IE: TMR2 인터럽트인에이블비트 1 = TMR2 인터럽트를인에이블시킴 0 = TMR2 인터럽트를디제이블시킴 비트 0 TMR1IE: TMR1 오버 - 플로우인터럽트인에이블비트 1 = TMR1 오버 - 플로우인터럽트를인에이블시킴 0 = TMR1 오버 - 플로우인터럽트를디제이블시킴 노트 1: PSPIE 는 28 핀디바이스에서는예약되어있으며이비트는항상 0 을유지한다. DS21993A_KR- 페이지 22 2006 마이크로칩테크놀로지

2.2.2.5 PIR1 레지스터 PIR1 레지스터는주변장치인터럽트의각종요구플래그비트들을포함하고있다. 레지스터 2-5: PIR1: ( 어드레스 0Ch) 노트 : 각종인터럽트인에이블비트및글로벌인터럽트인에이블비트 GIE (INTCON<7> 의상태와무관하게인터럽트조건이발생하면해당인터럽트요구플래그들은 1 로셋트된다. 따라서사용자는사용하고자하는인터럽트를인에이블시키기전에반드시해당인터럽트요구플래그들을 0 으로클리어시켜야할것이다. R/W-0 R/W-0 R-0 R-0 R/W-0 R/W-0 R/W-0 R/W-0 PSPIF (1) ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 비트 7 비트 0 범례 : R = 읽기가능비트 W = 쓰기가능비트 U = 정의되지않은비트, 항상 0 으로읽힘 -n = POR 상태에서의값 1 = 비트가셋트됨 0 = 비트가클리어됨 x = 정의되지않은비트임 비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 PSPIF (1) : 병렬슬레이브포트읽기 / 쓰기인터럽트요구플래그비트 1 = 읽기또는쓰기동작이발생하였음 ( 반드시소프트웨어로클리어시켜야함 ) 0 = 읽기또는쓰기동작이발생하지않았음 ADIF: A/D 컨버터인터럽트요구플래그비트 1 = A/D 컨버젼이완료되었음 ( 반드시소프트웨어로클리어시켜야함 ) 0 = A/D 컨버젼이완료되지않았음 RCIF: USART 수신인터럽트요구플래그비트 1 = USART 수신버퍼에데이터가들어있음 0 = USART 수신버퍼가비어있음 TXIF: USART 송신인터럽트요구플래그 1 = USART 송신버퍼가비어있음 0 = USART 송신버퍼에데이터가들어있음 SSPIF: 동기시리얼포트 (SSP) 인터럽트요구플래그비트 1 = SSP 인터럽트조건이발생되었다. 이비트는인터럽트서비스루틴에서나가기전에반드시소프트웨어로클리어시켜야한다. 아래와같은조건들이이비트를셋트시킬것이다 : SPI 송신 / 수신이발생되었음. I 2 C 슬레이브송신 / 수신이발생되었음. I 2 C 마스터송신 / 수신이발생되었음. 시작조건이 SSP 모듈에의해발생되었을경우멈춤조건이 SSP 모듈에의해발생되었을경우리 - 스타트 ( 재시작 ) 조건이 SSP 모듈에의해발생되었을경우엑크놀러지조건이 SSP 모듈에의해발생되었을경우 SSP 모듈이아이들상태일때시작조건이발생하였을때 ( 멀티 - 마스터시스템 ) SSP 모듈이아이들상태일때멈춤조건이발생하였을때 ( 멀티 - 마스터시스템 ) 0 = SSP 인터럽트조건이발생되지않았음 CCP1IF: CCP1 인터럽트요구플래그비트캡쳐모드 : 1 = 외부핀에사용자가설정하여놓은에지가감지된경우 ( 반드시소프트웨어에서클리어시켜야함 ) 0 = 외부핀에사용자가설정하여놓은에지가감지되지않은경우컴페어모드 : 1 = CCPR 레지스터와 TMR1 레지스터값이일치 ( 반드시소프트웨어에서클리어시켜야함 ) 0 = CCPR 레지스터와 TMR1 레지스터값이일치하지않은경우 PWM 모드 : 사용되지않음 TMR2IF: TMR2 와 PR2 레지스터일치되면발생되는인터럽트요구플래그 1 = TMR2 와 PR2 레지스터값이일치됨 ( 반드시소프트웨어에서클리어시켜야함 ) 0 = TMR2 와 PR2 레지스터값이일치되지않음 비트 0 TMR1IF: TMR1 오버 - 플로우인터럽트요구플래그비트 1 = TMR1 레지스터가오버 - 플로우가발생되었음 ( 반드시소프트웨어로클리어시켜야함 ) 0 = TMR1 레지스터에오버 - 플로우가발생되지않았음 노트 1: PSPIF 는 28 핀디바이스에서는예약되어있으며이비트는항상 0 을유지한다 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 23

2.2.2.6 PIE2 레지스터 PIE2 레지스터는 CCP2 주변장치인터럽트인에이블비트를포함하고있다. 레지스터 2-6: PIE2: ( 어드레스 8Dh) U-0 U-0 U-0 U-0 U-0 U-0 U-0 R/W-0 CCP2IE 비트 7 비트 0 범례 : R = 읽기가능비트 W = 쓰기가능비트 U = 정의되지않은비트, 항상 0 으로읽힘 -n =POR 상태에서의값 1 = 비트가셋트됨 0 = 비트가클리어됨 d x = 정의되지않은비트임 비트 7-1 비트 0 정의되지않았음 : 항상 0 으로읽힘 CCP2IE: CCP2 인터럽트인에이블비트 1 = CCP2 인터럽트를인에이블시킴 0 = CCP2 인터럽트를디제이블시킴 2.2.2.7 PIR2 어드레스 PIR2 레지스터는 CCP2 인터럽트요구플래그를포함하고있다. 노트 : 각종인터럽트인에이블비트및 GIE (INTCON<7> 의상태와무관하게인터럽트조건이발생하면해당인터럽트요구플래그들은 1 로셋트된다. 따라서사용자는사용하고자하는인터럽트를인에이블시키기전에반드시해당인터럽트요구플래그들을 0 으로클리어시켜야할것이다. 레지스터 2-7: PIR2: ( 어드레스 0Dh) U-0 U-0 U-0 U-0 U-0 U-0 U-0 R/W-0 CCP2IF 비트 7 비트 0 범례 : R = 읽기가능비트 W = 쓰기가능비트 U = 정의되지않은비트, 항상 0 으로읽힘 -n = POR 상태에서의값 1 = 비트가셋트됨 0 = 비트가클리어됨 x = 정의되지않은비트임 비트 7-1 비트 0 정의되지않았음 : 항상 0 으로읽힘 CCP2IF: CCP2 인터럽트요구플래그비트캡쳐모드 : 1 = 외부핀에사용자가설정한놓은에지가감지된경우 ( 반드시소프트웨어에서클리어시켜야함 ) 0 = 외부핀에사용자가설정하여놓은에지가감지되지않았다. 컴페어모드 : 1 = CCPR 레지스터와 TMR1 레지스터값이일치 ( 반드시소프트웨어에서클리어시켜야함 ) 0 = CCPR 레지스터와 TMR1 레지스터값이일치하지않은경우 PWM 모드 : 사용되지않음 DS21993A_KR- 페이지 24 2006 마이크로칩테크놀로지

2.2.2.8 PCON 레지스터 파워제어 (PCON) 레지스터는파워 - 온리셋, 외부 MCLR 리셋, WDT 리셋그리고브라운아웃리셋등을판별하는비트들을포함하고있다. 노트 : POR 상태에서 BOR 비트의상태는알수가없다. 따라서사용자는 POR 상태에서 BOR 비트를 1 로셋트를하여놓고브라운아웃리셋이발생이되었을때 BOR 비트가 0 으로클리어되는지를체크하는프로그램을넣어야한다. 또한브라운아웃서킷이디제이블 ( 컨퓨그레이션워드의 BOREN 비트를디제이블시킴에의하여 ) 되어있는상태에서는 BOR 상태비트는예측불가능하다. 레지스터 2-8: PCON: ( 어드레스 8Eh) U-0 U-0 U-0 U-0 U-0 U-0 R/W-0 R/W-1 POR BOR 비트 7 비트 0 범례 : R = 읽기가능비트 W = 쓰기가능비트 U = 정의되지않은비트, 항상 0 으로읽힘 -n = POR 상태에서의값 1 = 비트가셋트됨 0 = 비트가클리어됨 x = 정의되지않은비트임 비트 7-2 비트 1 비트 0 정의되지않았음 : 항상 0 으로읽힘 POR: 파워 - 온리셋상태비트 1 = 파워 - 온리셋이발생되지않았음 0 = 파워 - 온리셋이발생되었음 ( POR 상태이후에는소프트웨어로이비트를 1 로하여야함 ) BOR: 브라운 - 아웃리셋상태비트 1 = 브라운 - 아웃리셋이발생되지않았음 0 = 브라운 - 아웃리셋이발생되었음 ( BOR 상태이후에는소프트웨어로이비트를 1 로하여야함 ) 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 25

2.3 PCL 과 PCLATH 프로그램카운터 (PC) 는 13 비트크기로되어있다. 하위바이트 PCL 레지스터는직접읽고쓸수있는레지스터이지만상위비트들은 (PC<12:8>) 읽기는불가능하며 PCLATH 레지스터를통하여간접적으로쓰기는가능하다. 모든리셋상황에서 PC 의상위비트들은 0 으로클리어가된다. 그림 2-1 은 PC 로의로딩을보여주는두가지예이다. 윗쪽그림은일반적으로어떻게 PC 값이 PCL 레지스터 (PCLATH<4:0> PCH) 로로드가되는지를보여주고있으며아래그림은 CALL 또는 GOTO 명령이실행되는경우 (PCLATH<4:3> PCH) PC 쪽으로어떻게로드가되는지를보여주고있다. 그림 2-4: PC PC 2.3.1 계산된 GOTO 두가지상황의 PC 로딩 12 8 7 0 5 계산된 GOTO 는프로그램카운터에하나의오프 - 셋값을더하여이루어진다 (ADDWF PCL). 계산된 GOTO 방법을이용하여테이블로부터데이터를읽는경우테이블위치가 PCL 메모리경계에위치를하고있는지주의하여야한다. ( 각블럭은 256 바이트 ). 자세한사항은어플리케이션노트, Implementing a Table Read (AN556) 을참고하기를바란다. 2.3.2 스택 PCLATH<4:0> PCLATH 12 11 10 8 7 0 2 PCH PCH PCLATH<4:3> PCLATH PCL PCL 목적지로사용된 PCL 의경우 ALU GOTO,CALL Opcode <10:0> PIC16CR7X 패밀리는 13 비트로구성된 8 개의하드웨어스택을지원하고있다. 스택공간은프로그램또는데이터공간의일부가아니며사용자는스택포인터를읽거나쓸수가없다. PC 값은 CALL 명령이수행되었을경우또는인터럽트가발생하였을경우자동적으로스택공간으로 PUSH 되며 RETURN, RETLW 또는 RETFIE 명령이수행이되면스택에저장되어있는값이 PC 쪽으로자동적으로 POP 되어진다. PCLATH 는 PUSH 또는 POP 에의하여영향을받지않는다. 11 8 스택은원형버퍼로서동작을한다. 이것은 8 번 PUSH 되어지고 9 번째 PUSH 가발생되었다면 9 번째 PUSH 된것은첫번째스택에쓰여지는것을의미한다. 그리고 10 번째것은두번째스택에쓰여진다. 노트 1: STATUS 레지스터에는스택의오버플로우또는언더플로우를나타내는별도의플래그가존재하지않는다. 2: PUSH 또는 POP 과같은특별한명령어가따로존재하지않는다. PUSH 또는 POP 은 CALL, RETURN, RETLW 그리고 RETFIE 와같은명령이수행되거나인터럽트백터어드레스로점프할때필요로한다. 2.4 프로그램메모리페이징 PIC16CR7X 디바이스는연속적인프로그램메모리의 8K 워드블럭내에서어드레싱이가능하다. 그러나 CALL 및 GOTO 명령은단지 11 비트어드레스범위를갖는다. 이 11 비트어드레스는프로그램메모리사이즈 2K 워드이내에서만분기할수있다는것을의미하므로 CALL 또는 GOTO 명령이실행이되면어드레스의최상위 2 비트는 PCLATH<4:3> 에의하여제공을받는다. 따라서사용자는 CALL 또는 GOTO 명령을실행하기이전에반드시정확하게요구되는프로그램메모리페이지가선택이되었는지를 PCLATH<4:3> 를체크하여확인하여야만한다. 만약 CALL 문 ( 또는인터럽트 ) 으로부터돌아오는명령이실행이되면스택으로부터 13 비트 PC 가 POP 되는것이므로 RETURN 명령실행시 ( 스택으로부터어드레스가 POP 됨 ) PCLATH<4:3> 의참조는필요치않게된다.. 노트 : RETURN 또는 RETFIE 명령이실행이된후에도 PCLATH 레지스터의값은변화하지않는다. 따라서사용자는다시 CALLS 또는 GOTOS 실행이전에다시 PCLATH 레지스터를조절하여주어야한다. 예제 2-1 은프로그램메모리의페이지 1 의서브루틴을호출하는것을보여주고있다. 이예제는 PCLATH 레지스터가인터럽트서비스루틴에서정확히저장되고반환된다고가정한다 ( 인터럽트가사용되는경우 ). 예제 2-1: 페이지 0 에서페이지 1 에 위치한서브루틴을호출함 ORG 0x500 BCF PCLATH,4 BSF PCLATH,3 ; 페이지 1 선택 ;(800h-FFFh) CALL SUB1_P1 ; 페이지 1 에있는서브루틴 : ; 호출 (800h-FFFh) : ORG 0x900 ; 페이지 1 (800h-FFFh) SUB1_P1 : ; 페이지 1 에있는 : ; 서브루틴 (800h-FFFh) : RETURN ; 페이지 1 을리턴하여 ; 페이지 0 로돌아감 ;(000h-7FFh) DS21993A_KR- 페이지 26 2006 마이크로칩테크놀로지

2.5 IINDF 와 FSR 레지스터를이용한간접어드레싱 INDF 레지스터는물리적인레지스터가아니라간접어드레싱을위해서존재하는가상의레지스터이다. 실제로어드레싱하고자하는번지를파일선택레지스터인 FSR 레지스터에저장시킨후 INDF 레지스터를억세스하면 FSR 레지스터의내용을실제번지로하여억세스할것이다. INDF 자기자신을간접지정방식으로읽는다면 (FSR = 0) 00h 가읽힐것이다. 또한간접지정방식으로 INDF 레지스터에데이터를라이트하는경우는동작이되지않는다 ( 단 STATUS 레지스터는영향을받을것이다 ). 실제로 9 비트의간접지정어드레스는그림 2-2 에서보여주는것처럼 8 비트 FSR 레지스터와 IRP 비트 (STATUS<7>) 를합치는것에의하여만들어진다. 간접어드레싱을사용하여 RAM 20h-2Fh 번지를 0 으로클리어시키는간단한예제프로그램을예제 2-2 에보여주고있다. 예제 2-2: 간접어드레싱 MOVLW 0x20 ; RAM 포인터초기화 MOVWF FSR ; 초기화 NEXT CLRF INDF ; INDF 레지스터클리어 INCF FSR,F ; 포인터증가시킴 BTFSS FSR,4 ; 완료되었는가? GOTO NEXT ; 아니면계속클리어시킴 CONTINUE : ; 프로그램계속수행시킴 그림 2-5: 직접 / 간접어드레싱 직접어드레싱 간접어드레싱 RP1:RP0 6 Opcode 로부터 0 IRP 7 FSR 레지스터 0 뱅크선택 위치선택 00 01 10 11 뱅크선택 위치선택 00h 80h 100h 180h 데이터메모리 (1) 7Fh FFh 17Fh 1FFh 뱅크 0 뱅크 1 뱅크 2 뱅크 3 노트 1: 상세한레지스터파일구조에대해서는그림 2-2 를참조할것 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 27

노트 : DS21993A_KR- 페이지 28 2006 마이크로칩테크놀로지

3.0 프로그램메모리읽기 전원 VDD 가공급되어프로그램이정상으로동작수행중인경우사용자는 ROM 프로그램메모리로부터데이터읽기가가능하다. 그와같은동작은 SFR( 특별기능레지스터집합 ) 레지스터를통하여간접어드레싱방법으로행하여진다. 캘리브레이션파라메터값및시리얼넘버그리고 7 비트 ASCII 코드등을저장하기위하여최대 14 비트단위로프로그램메모리에저장가능하다. 정확하지않은명령어의구조를가진메모리영역의읽기실행의결과는 NOP 로처리된다. 프로그램메모리로부터데이터를읽어내기위해서는아래와같이특별한 5 개의레지스터가사용이된다 : PMCON1 PMDATA PMDATH PMADR PMADRH 프로그램메모리는워드단위로읽기가가능하며체크섬및캘리브레이션테이블로부터의데이터를읽기위하여프로그램메모리접근을가능하게하고있다. 프로그램메모리블럭으로부터읽은 14 비트데이터는두바이트형태의 PMDATH:PMDATA 레지스터로저장이된다. 또한플래시프로그램메모리의억세스를위하여두바이트형태의 PMADRH:PMADR 레지스터가이용이되며이중 13 비트가이용이된다. 이제품군들은최대 8K 워드플래시프로그램메모리구조를가지고있으며이는 0h 번지에서 3FFFh 번지영역의어드레스공간을억세스한다. PMDATH 와 PMADRH 레지스터의사용되지않은상위비트들은정의되지않은영역이며항상 0 으로읽히게된다. 3.1 PMADR 어드레스레지스터를이용하여플래시프로그램메모리의최대 8K 워드까지어드레싱이가능하다. 프로그램메모리의어드레스가선택이되면어드레스의상위 MSB 바이트는 PMADRH 레지스터로쓰여지며 LSB 바이트는 PMADR 레지스터로쓰여진다. 이때 PMADRH 레지스터의사용되지않는상위 MSB 비트들은항상 0 으로클리어되어있어야만한다. 3.2 PMCON1 레지스터 PMCON1 레지스터는프로그램메모리제어를위한레지스터이다. 읽기동작은 RD 제어비트를통하여시작이되며이비트는소프트웨어에서오직 1 로셋트만가능하며사용자는 0 으로클리어를시킬수는없다. 읽기동작이완료되면 RD 비트는하드웨어적으로자동적으로 0 으로클리어가된다. 레지스터 3-1: PMCON1: ( 어드레스 18Ch) R-1 U-0 U-0 U-0 U-x U-0 U-0 R/S-0 예약 RD 비트 7 비트 0 범례 : R = 읽기가능비트 W = 쓰기가능비트 U = 정의되지않은비트, 항상 0 으로읽힘 -n = POR 상태에서의값 1 = 비트가셋트됨 0 = 비트가클리어됨 x = 정의되지않은비트임 비트 7 비트 6-1 비트 0 예약되어있는비트 : 1 로읽힘 정의되어있지않음 : 0 으로읽힘 RD: 읽기제어비트 1 = 프로그램메모리로부터읽기동작을시작함. 이비트는하드웨어적으로 0 으로클리어됨. 이비트는오직소프트웨어적으로 1 로셋트만가능하며 0 으로클리어를시킬수는없음. 0 = 프로그램메모리로부터읽기동작이완료되었음 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 29

3.3 프로그램메모리로부터데이터읽기 프로그램메모리로부터읽고자하는두바이트어드레스를 PMADR 와 PMADRH 레지스터에넣은후읽기제어비트인 RD (PMCON1<0>) 비트를 1 로셋트한다. 읽기제어비트인 RD 비트가 1 로셋트되면마이크로컨트롤러는프로그램메모리로부터데이터를읽기위하여두개의명령어사이클을사용하게되고두번째 NOP 명령이후에읽은데이터는 PMDATA 와 PMDATH 레지스터에저장이된다. 따라서 RD 비트이후에 2 개의 NOP 명령이필요하게된다. PMDATA 와 PMDATH 레지스터는다음번읽기동작이수행될때까지데이터를그대로유지하게될것이다. 3.4 코드 - 프로텍트동안의동작 프로그램메모리는코드 - 프로텍트구조를가지고있다. 만약코드 - 프로텍트기능이인에이블되어있다면외부프로그래머등에의하여읽기동작은불가능할것이다. 그러나코드 - 프로텍트비트의상태와상관없이마이크로콘트롤러내부적으로읽기및실행은가능하다. 예제 3-1: 프로그램메모리로부터읽기동작 BSF STATUS, RP1 ; BCF STATUS, RP0 ; 뱅크 2 MOVF ADDRH, W ; MOVWF PMADRH ; 읽고자하는어드레스의상위바이트 MOVF ADDRL, W ; MOVWF PMADR ; 읽고자하는어드레스의하위바이트 BSF STATUS, RP0 ; 뱅크 3 으로설정 요구되는 BSF PMCON1, RD ; 읽기동작순서 순서 NOP ; BSF PMCON1,RD 명령이후다음두사이클을이용하여읽기동작수행 NOP ; BCF STATUS, RP0 ; 뱅크 2 MOVF PMDATA, W ; W = PMDATA 의하위바이트 MOVF PMDATH, W ; W = PMDATA 의상위바이트 테이블 3-1: 프로그램메모리와관련이있는레지스터 어드레스이름비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0 POR, BOR 상태 다른모든리셋 10Dh PMADR 하위바이트어드레스레지스터 xxxx xxxx uuuu uuuu 10Fh PMADRH 상위바이트어드레스레지스터 xxxx xxxx uuuu uuuu 10Ch PMDATA 하위바이트데이터레지스터 xxxx xxxx uuuu uuuu 10Eh PMDATH 상위바이트데이터레지스터 xxxx xxxx uuuu uuuu 18Ch PMCON1 (1) RD 1--- ---0 1--- ---0 범례 : x = 알수없음, u = 변하지않음, r = 예약되어있음, - = 정의되지않았음. 항상 0 으로읽힘. 빗금친영역은프로 그램메모리억세스를위하여는사용되지않음 노트 1: 이비트는항상 1 로읽힘 DS21993A_KR- 페이지 30 2006 마이크로칩테크놀로지

4.0 I/O 포트 어떤 I/O 포트들은내장된주변장치모듈의일부기능을같이사용하는겸용핀으로구동이되기도한다. 일반적으로주변장치모듈이인에이블이되어있는경우는이러한핀들은범용 I/O 핀으로는사용할수가없다. I/O 포트에대한보다자세한사항은 PICmicro 미드 - 레인지 MCU 패밀리참조메뉴얼 (DS33023) 을참조하기를바란다. 4.1 PORTA 와 TRISA 레지스터 포트 A 는 6 비트크기를가진양방향포트이며포트의방향을설정하는레지스터는 TRISA 레지스터이다. 따라서 TRISA 레지스터의해당비트를 1 로셋트 (= 1) 하면그포트는입력으로설정 ( 하이 - 임피던스모드 ) 되며 0 으로클리어 (= 0) 시키면출력으로설정 ( 출력래치의값이선택된핀으로출력됨 ) 된다. 포트 A 레지스터를읽는것은핀의상태를읽는것을말하며쓰는것은포트래치에쓰는것이다. 모든쓰기동작은 read-modify-write 동작이다. 즉쓰기동작은핀의상태를읽어서값을변경시킨후다시포트데이터래치에쓰는순서로진행이된다. RA4 핀은타이머 0 모듈클럭입력핀으로도사용가능하다. RA4/T0CKI 은쉬미트트리거입력또는오픈드레인출력핀으로사용가능하다. 다른모든포트 A 핀들은 TTL 입력핀으로사용되며출력핀으로사용하는경우는 CMOS 출력레벨로구동된다. 다른 PORTA 핀들은아날로그입력과 VREF 입력으로사용할수도있다. 각핀의구성은 ADCON1 레지스터 (A/D 제어레지스터 1) 에있는제어비트에의하여결정된다. 노트 : 파워온리셋상태에서이핀들은아날로그입력상태로구성되며항상 0 으로읽힌다 TRISA 레지스터를이용하여핀들이아날로그입력으로사용되고있을지라도 RA 핀들의방향을제어할수있다. 따라서사용자는이핀들이아날로그핀으로사용이되는경우 TRISA 비트들이 1 로셋트되어있는지를확인하여야한다. 예제 4-1: 포트 A 초기화 BCF STATUS, RP0 ; BCF STATUS, RP1 ; 뱅크 0 CLRF PORTA ; 출력데이터래치를 ; 0 으로클리어시켜 ; 포트를초기화시킴 BSF STATUS, RP0 ; 뱅크 1 선택 MOVLW 0x06 ; 모든핀들을 MOVWF ADCON1 ; 디지털핀으로구성시킴 MOVLW 0xCF ; 입, 출력을위한 ; 초기방향 ; 설정 MOVWF TRISA ; RA<3:0> 는입력 ; RA<5:4> 는출력 ; TRISA<7:6> 은항상 ; 0 으로읽힌다. 그림 4-1: RA3:RA0 그리고 RA5 핀블럭다이어그램 데이터버스 WR 포트 WR TRIS RD TRIS RD 포트 A/D 컨버터쪽으로 VDD 그림 4-2: RA4/T0CKI 핀의블럭다이어그램 P N VSS 아날로그입력모드 노트 1: VDD 와 VSS 쪽으로프로텍션다이오드내장 데이터버스 WR PORT WR TRIS RD TRIS RD 포트 D CK Q Q 데이터래치 D CK Q Q TRIS 래치 D CK 데이터래치 D CK TMR0 클럭입력 Q Q Q Q TRIS 래치 Q D EN EN N VSS 쉬미트트리거입력버퍼 EN EN 노트 1: VSS 쪽으로만프로텍션다이오드를내장 Q D I/O 핀 (1) TTL 입력버퍼 I/O 핀 (1) 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 31

테이블 4-1: 포트 A 기능 이름 비트 # 버퍼 기능 RA0/AN0 비트 0 TTL 입력 / 출력또는아날로그입력. RA1/AN1 비트 1 TTL 입력 / 출력또는아날로그입력. RA2/AN2 비트 2 TTL 입력 / 출력또는아날로그입력. RA3/AN3/VREF 비트 3 TTL 입력 / 출력또는아날로그입력또는 VREF. RA4/T0CKI 비트 4 ST 입력 / 출력또는타이머 0 를위한외부클럭입력. 출력일경우오픈드레인. RA5/AN4/SS 비트 5 TTL 입력 / 출력또는 SSP 모듈을위한슬레이브선택입력또는아날로그입력. 범례 : TTL = TTL 입력, ST = 쉬미트트리거입력 테이블 4-2: 포트 A 와관련이되는레지스터요약 어드레스 이름 비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0 POR, BOR 상태에서의값 다른모든리셋에서의값 05h PORTA RA5 RA4 RA3 RA2 RA1 RA0 --0x 0000 --0u 0000 85h TRISA 포트 A 방향설정레지스터 --11 1111 --11 1111 9Fh ADCON1 PCFG2 PCFG1 PCFG0 ---- -000 ---- -000 범례 : x = 알수없음, u = 변하지않음, = 정의되지않았음, 항상 0 으로읽힘. 빗금친부분은포트 A 구성에서는사용되지않음. 노트 : SPI 슬레이브모드와 SS 신호가인에이블되어있는 SSP 모듈을사용할때 A/D 컨버터는반드시 PCFG2:PCFG0 = 100, 101, 11x 중의하나로셋팅되어야만한다. DS21993A_KR- 페이지 32 2006 마이크로칩테크놀로지

4.2 PORTB 와 TRISB 레지스터 포트 B 는 8 비트크기의양방향포트이며포트의방향을설정하는레지스터는 TRISB 레지스터이다. 따라서 TRISB 레지스터의해당비트를 1 로셋트 (= 1) 하면그포트는입력으로설정 ( 하이 - 임피던스모드 ) 되며 0 으로클리어 (= 0) 시키면출력으로설정 ( 출력래치의값이선택된핀으로출력됨 ) 된다. 각각의포트 B 핀들은내부에위크풀 - 업저항을내장하고있다. 하나의제어비트를이용하여모든풀 - 업기능을인에이블시킬수있다. 이것은 RBPU (OPTION_REG<7>) 비트를 0으로클리어시키는것에의하여가능하다. 위크풀 - 업은포트핀이출력으로구성이되면자동적으로디제이블되며 POR( 파워 - 온리셋 ) 상태에서는초기상태가디제이블이다.T 그림 4-3: RB3:RB0 핀블럭다이어그램 RBPU (2) 데이터버스 WR 포트 WR TRIS 데이터래치 D CK Q TRIS 래치 D Q CK TTL 입력버퍼 VDD 위크 P 풀업 I/O 핀 (1) 이러한인터럽트를이용하여디바이스를슬립모드로부터깨울수있다. 인터럽트서비스루틴에서사용자는다음과같은방법을이용하여인터럽트를클리어할수있다 : a) 포트 B 를읽거나데이터를쓴다. 이것은불일치조건을끝낼것이다. b) 인터럽트요구프래그인 RBIF 를클리어시킴. 불일치조건은계속하여인터럽트요구플래그인 RBIF 비트를 1 로셋트할것이다. 따라서사용자는포트 B 를읽음으로서불일치조건을끝낼수있고인터럽트플래그인 RBIF 를 0 으로클리어시킬수있다. 변화인터럽트기능은주로키를눌렀을때디바이스를깨우게하는어플리케이션에이용되며이경우오직포트 B 가사용된다. 변화인터럽트기능을사용하는경우에는포트 B 를폴 - 링하는것은바람직하지않다. 이러한불일치인터럽트기능은소프트웨어적으로 4 개의핀상에풀 - 업기능과함께사용할수있기때문에외부키패드와의인터페이스를쉽게하고이를통하여키를눌렀을때디바이스를쉽게깨울수있다. 자세한사항은어플리케이션노트 Implementing Wake-up on Key Stroke (AN552) 를참고하기를바란다. RB0/INT 핀은외부인터럽트입력핀이며 INTEDG bit (OPTION_REG<6>) 비트를이용구성시킬수있다. RB0/INT 핀에대해서는섹션 12.11.1 INT 인터럽트부분에서자세하게설명된다. 그림 4-4: RB7:RB4 핀블럭다이어그램 RD TRIS RD 포트 RB0/INT 포트 B 핀중에서 4 개의핀즉 RB7:RB4 핀들은변화인터럽트기능을가지고있다. 4 개의핀중입력으로정의된핀들만이변화인터럽트의대상이되며만약몇개의핀이출력으로구성되어있다면변화인터럽트에서이핀들은제외된다. 이입력단자의값들은이전에읽은값과항상비교되며두개가일치하지않을때 불일치조건 이성립되며이때 B 포트변화인터럽트요구플래그인 RBIF(INTCON<0>) 비트가 1 로셋트된다. Q 쉬미트트리거버퍼 D EN RD 포트 노트 1: I/O 핀은 VDD 와 VSS 쪽에프로텍션다이오드내장 2: RBPU 비트 (OPTION_REG<7>) 를클리어시키고 TRIS 비트셋트하면위크풀업기능이인에이블됨 RBPU (2) 데이터래치 데이터버스 D Q WR 포트 CK TRIS 래치 D Q WR TRIS CK RD TRIS RD 포트 RBIF=1 다른 RB7:RB4 핀으로부터 래치 Q D Q EN D EN TTL 입력버퍼 VDD P 위크풀업 I/O 핀 (1) Q1 RD 포트 Q3 노트 1: I/O 핀은 VDD 와 VSS 쪽에프로텍션다이오드내장 2: RBPU 비트 (OPTION_REG<7>) 를클리어시키고 TRIS 비트셋트하면위크풀업기능이인에이블됨 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 33

테이블 4-3: 테이블 4-4: 포트 B 기능 이름 비트 # 버퍼 기능 RB0/INT 비트 0 TTL/ST (1) 입력 / 출력핀또는외부인터럽트입력핀. 소프트웨어로제어가능한위크풀 - 업내장. RB1 비트 1 TTL 입력 / 출력핀. 소프트웨어로제어가능한위크풀 - 업내장. RB2 비트 2 TTL 입력 / 출력핀. 소프트웨어로제어가능한위크풀 - 업내장. RB3 비트 3 TTL 입력 / 출력핀. 소프트웨어로제어가능한위크풀 - 업내장. RB4 비트 4 TTL 입력 / 출력핀 ( 변화인터럽트기능내장 ). 소프트웨어로제어가능한위크풀 - 업내장. RB5 비트 5 TTL 입력 / 출력핀 ( 변화인터럽트기능내장 ). 소프트웨어로제어가능한위크풀 - 업내장. RB6 비트 6 TTL 입력 / 출력핀 ( 변화인터럽트기능내장 ). 소프트웨어로제어가능한위크풀 - 업내장. RB7 비트 7 TTL 입력 / 출력핀 ( 변화인터럽트기능내장 ). 소프트웨어로제어가능한위크풀 - 업내장. 범례 : TTL = TTL 입력, ST = 쉬미트트리거입력 노트 1: 외부인터럽트로구성이되면버퍼는쉬미트트리거입력으로설정된다. 어드레스 포트 B 와관련이되는레지스터요약 이름 비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0 POR, BOR 상태에서의값 다른모든리셋에서의값 06h, 106h PORTB RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 xxxx xxxx uuuu uuuu 86h, 186h TRISB 포트 B 방향설정레지스터 1111 1111 1111 1111 81h, 181h OPTION_REG RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 1111 1111 1111 1111 범례 : x = 알수없음, u = 변하지않음. 빗금친부분은포트 B 와는관련이없음. DS21993A_KR- 페이지 34 2006 마이크로칩테크놀로지

4.3 PORTC 와 TRISC 레지스터 포트 C 는 8 비트크기의양방향포트이며포트의방향을설정하는레지스터는 TRISC 레지스터이다. 따라서 TRISC 레지스터의해당비트를 1 로셋트 (= 1) 하면그포트는입력으로설정 ( 하이 - 임피던스모드 ) 되며 0 으로클리어 (= 0) 시키면출력으로설정 ( 출력래치의값이선택된핀으로출력됨 ) 된다. 포트 C 는여러주변장치기능과함께사용된다 ( 테이블4-5). 포트 C 핀들은쉬미트트리거입력버퍼의구조를가지고있다. 주변장치기능이인에이블되어있을때에는각포트 C 의 TRIS 비트설정에는주의를할필요가있다. 어떤주변장치들은 TRIS 비트들을출력핀으로설정할필요가있고또어떤주변장치들은입력핀으로설정할필요가있기때문이다. 이와같은이유때문에주변장치모듈이인에이블되어있는경우에는 TRISC 를연산의목적지로하는읽기 - 변경 - 쓰기명령 (BSF, BCF, XORWF) 의사용은피하여만한다. 사용자는정확한 TRIS 비트를셋팅하기위해서주변장치모듈부분을참조하여야만하며읽기 - 변경 - 쓰기의자세한사항은섹션 13.1 弩閨 -변경 - 쓰기동작부분을참조하기를바란다. 그림 4-5: 포트 / 주변장치선택 (2) 주변장치데이터출력 데이터버스 WR 포트 WR TRIS RD TRIS 주변장치 OE (3) RD 포트 주변장치입력 D CK Q Q 데이터래치 D CK Q Q TRIS 래치 포트 C 블럭다이어그램 ( 주변장치출력포함 ) 0 1 Q D EN P N 쉬미트트리거 VDD VSS I/O 핀 (1) 노트 1: I/O 핀은 VDD 와 VSS 쪽에프로텍션다이오드내장 2: 포트데이터와주변장치출력중에서어떤부분을사용할것이지를선택하는신호. 3: 주변장치 OE ( 출력인에이블 ) 는주변장치모듈이선택되어진경우에만동작된다. 테이블 4-5: 포트 C 기능 이름 비트 # 버퍼타입 기능 RC0/T1OSO/T1CKI 비트 0 ST 입력 / 출력포트핀또는타이머 1 오실레이터출력 / 타이머 1 클럭입력 RC1/T1OSI/CCP2 비트 1 ST 입력 / 출력포트핀또는타이머 1 오실레이터입력또는캡쳐 2 입력 / 컴페어 2 출력 / PWM 2 출력 RC2/CCP1 비트 2 ST 입력 / 출력포트핀또는캡쳐 1 입력 / 컴페어 1 출력 / PWM 1 출력 RC3/SCK/SCL 비트 3 ST SPI 와 I 2 C 모드에서 RC3 은또한동기직렬클럭핀으로사용가능 RC4/SDI/SDA 비트 4 ST RC4 핀은 SPI 데이터-인 (SPI 모드 ) 또는데이터 I/O (I 2 C 모드 ) 로사용가능. RC5/SDO 비트 5 ST 입력 / 출력포트핀또는 SSP 데이터출력핀 RC6/TX/CK 비트 6 ST 입력 / 출력포트핀또는 USART 비동기송신핀또는동기클럭핀 RC7/RX/DT 비트 7 ST 입력 / 출력포트핀또는 USART 비동기수신핀또는동기데이터핀 범례 : ST = 쉬미트트리거입력 테이블 4-6: 포트 C 와관련이되는레지스터요약 어드레스이름비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0 POR, BOR 상태에서의값 다른모든리셋에서의값 07h PORTC RC7 RC6 RC5 RC4 RC3 RC2 RC1 RC0 xxxx xxxx uuuu uuuu 87h TRISC 포트 C 방향설정레지스터 1111 1111 1111 1111 범례 : x = 알수없음, u = 변하지않음 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 35

4.4 PORTD 와 TRISD 레지스터 이단원은 PIC16CR73 과 PIC16CR76 디바이스에는적용되지않는다. 포트 D 는쉬미트트리거입력버퍼의구조를가진 8 비트포트이다. 각각의핀은개별적으로입력또는출력으로구성시킬수있다. 포트 D 는 PSPMODE (TRISE<4>) 비트를 1 로셋팅하면 8 비트단위로마이크로프로세서와의인터페이스가가능한구조 (PSP : 병렬슬레이브포트 ) 로변화된다. 이모드에서는 TTL 입력버퍼의구조를가진다. 그림 4-6: 데이터버스 WR 포트 WR TRIS D CK 데이터래치 D CK TRIS 래치 포트 D 블럭다이어그램 ( I/O 포트모드 ) Q Q 쉬미트트리거입력버퍼 I/O 핀 (1) RD TRIS Q D EN EN RD 포트 노트 1: I/O 핀들은 VDD 와 VSS 쪽으로프로텍션다이오드내장 테이블 4-7: 포트 D 기능 이름 비트 # 버퍼타입 기능 RD0/PSP0 비트 0 ST/TTL (1) 입력 / 출력포트핀또는페러럴슬레이브포트비트 0 RD1/PSP1 비트 1 ST/TTL (1) 입력 / 출력포트핀또는페러럴슬레이브포트비트 1 RD2/PSP2 비트 2 ST/TTL (1) 입력 / 출력포트핀또는페러럴슬레이브포트비트 2 RD3/PSP3 비트 3 ST/TTL (1) 입력 / 출력포트핀또는페러럴슬레이브포트비트 3 RD4/PSP4 비트 4 ST/TTL (1) 입력 / 출력포트핀또는페러럴슬레이브포트비트 4 RD5/PSP5 비트 5 ST/TTL (1) 입력 / 출력포트핀또는페러럴슬레이브포트비트 5 RD6/PSP6 비트 6 ST/TTL (1) 입력 / 출력포트핀또는페러럴슬레이브포트비트 6 RD7/PSP7 비트 7 ST/TTL (1) 입력 / 출력포트핀또는페러럴슬레이브포트비트 7 범례 : ST = 쉬미트트리거입력, TTL = TTL 입력 노트 1: I/O 모드로사용이되는경우는입력버퍼는쉬미트트리거입력으로사용되며만약병렬슬레이브포트 모드로사용이되면입력버퍼는 TTL 입력으로설정된다. 테이블 4-8: 어드레스 이름 포트 D 와관련이되는레지스터요약 비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0 POR, BOR 상태에서의값 다른모든리셋에서의값 08h PORTD RD7 RD6 RD5 RD4 RD3 RD2 RD1 RD0 xxxx xxxx uuuu uuuu 88h TRISD 포트 D 방향설정레지스터 1111 1111 1111 1111 89h TRISE IBF OBF IBOV PSPMODE PORTE 방향설정비트 0000-111 0000-111 범례 : x = 알수없음, u = 변하지않음, - = 정의되지않았음, 항상 0 으로읽힘. 빗금친부분은포트 D 에서는사용되지않음. DS21993A_KR- 페이지 36 2006 마이크로칩테크놀로지

4.5 PORTE 와 TRISE 레지스터 이단원은 PIC16CR73 과 PIC16CR76 디바이스에는적용되지않는다. 포트 E 는 RE0/RD/AN5, RE1/WR/AN6 그리고 RE2/ CS/AN7 와같은세개의핀을가지고있으며이핀들은각각입력또는출력으로구성시킬수가있다. 또한이핀들은쉬미트트리거입력버퍼의형태를가지고있다. I/O 포트 E 는 PSPMODE (TRISE<4>) 비트가 1 로셋트되어져있을때마이크로프로세서포트를위한제어입력핀으로구성된다. 따라서사용자는이러한모드를사용하기위해서는 TRISE<2:0> 비트들이 1 로셋트가되어있는지를확인하여야하며 ( 핀들이디지털입력으로구성되어야한다 ) 또한 ADCON1 레지스터가디지털입력 / 출력으로구성되어져있는지를확인하여야만한다. 이모드에서입력버퍼는 TTL 이다. 레지스터 4-1 는 TRIS 레지스터의구조와를 PSP 제어동작을보여주고있다. 포트 E 핀들은아날로그입력핀들과공용으로사용가능하다. 아날로그입력핀으로선택이되면이핀들은 0 으로읽힐것이다. RE 핀들이아날로그입력핀으로사용된다할지라도 TRISE 를이용하여 RE 핀들의방향을제어할수있다. 따라서사용자는이핀들이아날로그입력으로사용될때반드시입력핀으로구성되었는지를확인하여야만한다. 그림 4-7: 데이터버스 WR 포트 WR TRIS RD TRIS RD 포트 D CK 데이터래치 D CK TRIS 래치 포트 E 블럭다이어그램 ( I/O 포트모드 ) Q Q Q 쉬미트트리거입력버퍼 I/O 핀 (1) 노트 1: I/O 핀들은 VDD 와 VSS 쪽으로프로텍션다이오드내장 D EN EN 노트 : POR( 파워 - 온리셋 ) 상태에서이핀들은아날로그입력상태로구성되어지며항상 0 으로읽힌다. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 37

레지스터 4-1: TRISE: ( 어드레스 89h) R-0 R-0 R/W-0 R/W-0 U-0 R/W-1 R/W-1 R/W-1 IBF OBF IBOV PSPMODE 비트 2 비트 1 비트 0 비트 7 비트 0 범례 : R = 읽기가능비트 W = 쓰기가능비트 U = 정의되지않은비트, 항상 0 으로읽힘 -n = POR 상태의값 1 = 비트가셋트됨 0 = 비트가클리어됨 x = 비트값을알수없음 비트 7 병렬슬레이브포트상태 / 제어비트 : IBF: 입력버퍼풀상태비트 1 = 데이터가수신되었으며 CPU 에의해서읽혀지기길기다리고있음. 0 = 수신된데이터가없음. 비트 6 OBF: 출력버퍼풀상태비트 1 = 출력버퍼가아직도이전에쓰여진값을가지고있다. 0 = 출력버퍼가읽혀졌다. 비트 5 IBOV: 입력버퍼오버플로우검출비트 ( 마이크로프로세서모드에서 ) 1 = 이전에입력된데이터가아직읽혀지지않은상태에서쓰기동작이발생되었을경우 ( 반드시소프트웨어에서클리어시켜야함 ). 0 = 오버플로우가발생되지않았다. 비트 4 PSPMODE: PSP 모드선택비트 1 = 페러럴슬레이브포트 (PSP) 모드 0 = 범용 I/O 모드비트 3 정의되지않았음 : 항상 0 으로읽힘비트 2 포트 E 방향설정비트 : 비트 2: RE2/CS/AN7 핀방향제어비트 1 = 입력 0 = 출력비트 1 비트 1: RE1/WR/AN6 핀방향제어비트 1 = 입력 0 = 출력비트 0 비트 0: RE0/RD/AN5 핀방향제어비트 1 = 입력 0 = 출력 DS21993A_KR- 페이지 38 2006 마이크로칩테크놀로지

테이블 4-9: 포트 E 기능 이름 비트 # 버퍼타입 기능 RE0/RD/AN5 비트 0 ST/TTL (1) 입력 / 출력포트핀또는 PSP 모드에서읽기제어입력또는아날로그입력 RD 인경우 (PSP 모드 ): 1 = 동작하지않음. 0 = 읽기동작. PORTD 레지스터의값이포트 D I/O 핀으로출력됨 ( 만약칩이선택되었을경우 ). RE1/WR/AN6 비트 1 ST/TTL (1) 입력 / 출력포트핀또는 PSP 모드에서쓰기제어입력또는아날로그입력 WR 인경우 (PSP 모드 ): 1 = 동작하지않음. 0 = 쓰기동작. 포트 D I/O 핀의상태가포트 D 레지스터로쓰여짐 ( 만약칩이선택되었을경우 ). RE2/CS/AN7 비트 2 ST/TTL (1) 입력 / 출력포트핀또는 PSP 모드에서칩선택제어입력또는아날로그입력 CS 인경우 (PSP 모드 ): 1 = 디바이스가선택되지않았음. 0 = 디바이스가선택되었음. 범례 : ST = 쉬미트트리거입력, TTL = TTL 입력 노트 1: I/O 모드로사용이되는경우는입력버퍼는쉬미트트리거입력으로사용되며만약병렬슬레이브포트모드로사용이되면입력버퍼는 TTL 입력으로설정된다. 테이블 4-10: 포트 E 와관련이되는레지스터요약 어드레스 이름 비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0 POR, BOR 상태에서의값 다른모든리셋에서의값 09h PORTE RE2 RE1 RE0 ---- -xxx ---- -uuu 89h TRISE IBF OBF IBOV PSPMODE PORTE 방향설정비트 0000-111 0000-111 9Fh ADCON1 PCFG2 PCFG1 PCFG0 ---- -000 ---- -000 범례 : x = 알수없음, u = 변하지않음, - = 정의되지않았음, 항상 0 으로읽힘. 빗금친부분은포트 E 에서는사용되지않음. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 39

4.6 PSP 병렬슬레이브포트 (PSP) 기능은 PIC16CR73 또는 PIC16CR76 에서는구현되지않는다. 포트 D 는 PSPMODE (TRISE<4>) 제어비트가 1 로셋트되어있으면 8 비트크기의병렬슬레이브포트또는마이크로프로세서포트로동작된다. 슬레이브모드에서는읽기제어입력신호핀 RE0/RD 그리고출력제어입력신호핀 RE1/WR 그리고칩선택제어입력핀 RE2/CS 을이용하여외부시스템으로부터비동기적으로데이터를읽거나쓸수가있다. PSP 기능을이용하면다른 8 비트마이크로프로세서의버스와직접인터페이스가가능하다. 외부마이크로프로세서는 8 비트래치의기능을하는포트 D 래치에데이터를쓰거나또는읽을수가있다. PSPMODE 비트를인에이블하면 RE0/RD 핀은 RD 입력핀으로, RE1/WR 핀은 WR 입력핀으로 RE2/CS 핀은 CS ( 칩선택 ) 입력핀으로동작된다. 이러한기능을사용하기위해서는 TRISE 레지스터 (TRISE<2:0>) 를조절하여이핀들을반드시입력으로셋팅하여주어야한다. 또한 A/D 포트구성비트 PCFG3:PCFG0 (ADCON1<3:0>) 를조절하여 RE2:RE0 핀들이디지털입력으로구성되게끔만들어주어야한다. 실지로포트 D 에는데이터입력 ( 외부쓰기 ) 과출력 ( 외부읽기 ) 을위한 2 개의 8 비트래치가존재하고있다. 펌웨어적으로포트 D 출력데이터래치에 8 비트데이터를쓰고포트 D 입력데이터래치로부터데이터를읽는다 ( 두개모두같은어드레스를가지고있다 ). 이모드에서는외부디바이스가데이터의흐름의방향을조절하기때문에 TRISD 레지스터는무시된다. CS 과 WR 라인을모두로우상태로만든후에외부에서 PSP 모듈로데이터를쓸수가있다. 펌웨어는이시간동안에포트 D 핀에실린실질적인데이터를읽을수가있다. CS 또는 WR 라인이하이상태 ( 레벨트리거 ) 로되면포트 D 핀상의데이터가내부로래치되고입력버퍼풀상태비트 IBF(TRISE<7>) 와인터럽트요구플래그 PSPIF(PIR1<7>) 는 Q4 클럭사이클에서 1 로셋트가되고다음 2 클럭사이클에서쓰기가완료된다 ( 그림 4-9). 펌웨어는포트 D 래치데이터를읽음으로써 IBF 플래그를클리어하고 PSPIF 플래그를클리어시킨다. 입력버퍼오버플로우 (IBOV) 상태플래그비트 (TRISE<5>) 는이전에외부에서쓰기가발생되어 IBF 비트가 1 로셋트되어있는상황에서다시 PSP 모듈로외부에서쓰기가발생하면 1 로셋트된다. 이경우포트 D 는새로운데이터로겹쳐쓰여지며 IBOV 는포트 D 를읽음으로써 0 으로클리어된다. CS 핀과 RD 핀이로우상태일때 PSP 모듈로부터데이터를읽을수있다. 포트 D 출력래치의데이터는포트 D 상으로출력된다. 외부버스에의하여데이터가읽혀지거나포트 D 래치가읽혀졌을경우는출력버퍼풀 (OBF) 상태플래그비트 (TRISE<6>) 는즉시클리어된다 ( 그림 4-10). 만약이시간동안에펌웨어가새로운데이터를출력래치에쓰면그데이터는즉시포트 D 핀으로출력될것이다. 그러나 OBF 는 0 으로클리어된상태를유지할것이다. CS 또는 RD 핀이하이상태가되면포트 D 출력은디제이블되고인터럽트요구플래그인 PSPIF 비트는 Q4 클럭사이클에서 1 로셋트되고다음 Q2 클럭사이클에서읽기가완료된다.OBF 비트는새로운데이터가포트 D 에쓰여질때까지로우상태를유지할것이다. PSP 모드가아닌경우 IBF 와 OBF 비트는항상클리어상태를유지한다. IBOV 비트는변하지않은상태를유지한다. PSPIF 비트는펌웨어적으로사용자에의하여반드시클리어되어야만한다 ; 인터럽트는인터럽트인에이블비트인 PSPIE (PIE1<7>) 비트를클리어함으로써디제이블시킬수있다. 그림 4-8: 데이터버스 WR 포트 RD 포트 D Q CK 포트 D 의하나의비트 Q EN EN 인터럽트플래그가셋트 PSPIF (PIR1<7>) 포트 D 와포트 E 블럭다이어그램 ( 병렬슬레이브포트 ) D 읽기 칩선택 쓰기 TTL TTL TTL TTL RDx 핀 RD CS WR 노트 1: I/O 핀들은 VDD 와 VSS 쪽으로프로텍션다이오드내장 DS21993A_KR- 페이지 40 2006 마이크로칩테크놀로지

그림 4-9: 병렬슬레이브포트쓰기파형 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 CS WR RD PORTD<7:0> IBF OBF PSPIF 그림 4-10: 병렬슬레이브포트읽기파형 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 CS WR RD PORTD<7:0> IBF OBF PSPIF 테이블 4-11: 병렬슬레이브포트와관련이많은레지스터요약 어드레스 이름 비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0 POR, BOR 상태에서의값 다른모든리셋에서의값 08h PORTD 쓸때는포트레이터래치에 : 읽을때는포트핀을읽음 xxxx xxxx uuuu uuuu 09h PORTE RE2 RE1 RE0 ---- -xxx ---- -uuu 89h TRISE IBF OBF IBOV PSPMODE 포트 E 방향설정비트 0000-111 0000-111 0Ch PIR1 PSPIF (1) ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 0000 0000 0000 0000 8Ch PIE1 PSPIE (1) ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000 9Fh ADCON1 PCFG2 PCFG1 PCFG0 ---- -000 ---- -000 범례 : x = 알수없음, u = 변하지않음, - = 정의되지않았음, 항상 0 으로읽힘. 빗금친부분은 PSP 에서는사용되지않 음. 노트 1: PSPIE 와 PSPIF 비트는 PIC16CR73/76 에서는예약이되어있으며항상 0 을유지한다. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 41

노트 : DS21993A_KR- 페이지 42 2006 마이크로칩테크놀로지

5.0 타이머 0 모듈 타이머 0 모듈타이머 / 카운터는다음과같은기능을가지고있다 : 8 비트타이머 / 카운터 읽고쓰기가능 8 비트프로그램가능한프리스케일러내장 내부또는외부클럭선택 FFh 에서 00h 로변화되면인터럽트발생 외부클럭의상승또는하강에지선택가능 타이머 0 모듈에대한보다더자세한사항은 PICmicro 미드 - 레인지 MCU 패밀리참조메뉴얼 (DS33023) 을참조하기를바란다. 그림 5-1 는타이머 0 모듈의블럭다이어그램이며프리스케일러는 WDT 모듈과공용으로사용된다. 타이머 0 동작은 OPTION_REG 레지스터 ( 다음페이지레지스터 5-1 참조 ) 에의하여제어된다. 타이머모드는 T0CS (OPTION_REG<5>) 비트를클리어하면선택되어지며 TMR0 는모든명령사이클에서증가 ( 프리스케일러가없는경우 ) 될것이다. 만약타이머 0 레지스터에어떤값이쓰여졌다면증가는다음 0 사이클동안금지된다. 이러한이유로인하여사용자는미리조정된값을타이머 0 레지스터에써넣음으로써이를극복할수가있다. 카운터모드는 T0CS (OPTION_REG<5>) 비트를셋트하면선택되어지며 RA4/T0CKI 핀으로공급되는모든상승에지또는하강에지에서증가될것이다. 에지의선택은타이머 0 소스에지선택비트인 T0SE (OPTION_REG<4>) 비트에의하여결정된다. T0SE 비트를클리어하면상승에지가선택이된다. 외부클럭입력에대한제한사항은섹션 5.2 외부클럭을사용한타이머 0 부분에서상세하게논의가된다. 프리스케일러는타이머 0 모듈또는워치 - 독모듈둘중하나로할당가능하며프리스케일러는읽거나쓸수가없다. 프리스케일러에대하여서는섹션 5.3 프리스케일러의부분에서논의된다. 5.1 타이머 0 인터럽트 타이머 0 인터럽트는타이머 0 레지스터의값이 FFh 에서 00h 로넘어가능경우발생되고 TMR0IF (INTCON<2>) 비트가 1 로셋트된다. 인터럽트는 TMR0IE (INTCON<5>) 비트를 0 으로클리어시키는것에의하여마스크될수있으며 TMR0IF 비트는반드시인터럽트가다시인에이블되기전에타이머 0 인터럽트서비스루틴에서소프트웨어적으로 0 으로클리어되어야한다. 타이머모듈은슬립모드에서는동작되지않기때문에타이머 0 인터럽트는슬립모드로부터프로세서를깨울수가없다. 그림 5-1: 타이머 0 모듈과프리스케일러의블럭다이어그램 클럭출력 (= FOSC/4) 데이터버스 RA4/T0CKI 핀 0 먹 1 스 1 0 먹 스 싱크 2 사이클 8 TMR0 레지스터 T0SE T0CS PSA 오버플로우가발생되면 TMR0IF 비트가 1 로셋트됨 프리스케일러 0 먹 8 비트프리스케일러 워치 - 독타이머 1 스 8 PSA 1 라인선택먹스 PS2:PS0 WDT 인에이블비트 0 1 먹스 PSA WDT 타임 - 아웃 노트 : T0CS, T0SE, PSA, PS2:PS0 는 (OPTION_REG<5:0>) 에위치한다 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 43

5.2 외부클럭을사용한타이머 0 프리스케일러가사용되지않으면외부클럭입력은프리스케일러출력과동일하다. T0CKI 핀의내부위상클럭과의동기화는내부위상클럭의 Q2 와 Q4 사이클에서프리스케일러출력의샘플링에의하여이루어진다. 그러므로 T0CKI 핀으로공급되는펄스를최소한 하이구간에서 2Tosc ( 20 ns 의적은 RC 시간지연 ) 로우구간에서 2Tosc ( 20 ns 의적은 RC 시간지연 ) 를유지시키는것이필요하다. 보다자세한사항은사용하는디바이스의전기적인특성부분을참조하기를바란다. 레지스터 5-1: OPTION_REG: R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 비트 7 비트 0 범례 : R = 읽기가능비트 W = 쓰기가능비트 U = 정의되지않은비트, 항상 0 으로읽힘 -n = POR 상태에서의값 1 = 비트가셋트됨 0 = 비트가클리어됨 x = 비트값을알수없음 비트 7 RBPU: 포트 B 풀 - 업인에이블비트 ( 섹션 2.2.2.2 OPTION_REG 레지스터참조 ) 비트 6 INTEDG: 외부인터럽트에지선택비트 ( 섹션 2.2.2.2 OPTION_REG 레지스터참조 ) 비트 5 T0CS: TMR0 클럭소스선택비트 1 = T0CKI 핀으로공급되는클럭에의해타이머 0 레지스터를증가시킴 0 = 내부명령어사이클클럭 (CLKOUT) 의해타이머 0 레지스터를증가시킴비트 4 T0SE: TMR0 소스에지선택비트 1 = 타이머 0 레지스터를 T0CKI 핀으로공급되는펄스의하강에지에서증가시킴 0 = 타이머 0 레지스터를 T0CKI 핀으로공급되는펄스의상승에지에서증가시킴비트 3 PSA: 어떤모듈쪽으로프리스케일러를항당시키는지를선택하는비트 1 = WDT 쪽으로프리스케일러를할당시킴 0 = 타이머 0 모듈쪽으로프리스케일러를할당시킴 비트 2-0 PS2:PS0: 프리스케일러비율선택비트 비트값 TMR0 분주비 WDT 분주비 000 001 010 011 100 101 110 111 1 : 2 1 : 4 1 : 8 1 : 16 1 : 32 1 : 64 1 : 128 1 : 256 1 : 1 1 : 2 1 : 4 1 : 8 1 : 16 1 : 32 1 : 64 1 : 128 노트 : 프리스케일러를타이머 0 와 WDT 모듈사이에서변경시키고자하는경우예상치않은디바이스리셋을피하기위하여명령어순서는예제 5-1 과예제 5-2 에나타낸것처럼실행되어야만한다. 이순서는 WDT 모듈이디제이블되어있다할지라도실행되어야만한다. DS21993A_KR- 페이지 44 2006 마이크로칩테크놀로지

5.3 프리스케일러 PIC 마이크로컨트롤러타이머 0 모듈에는하나의프리스케일러를가지고있다 ; 이프리스케일러는타이머 0 모듈또는 WDT 모듈둘중하나로이용될수있다. 즉프리스케일러가타이머 0 모듈쪽으로할당되었다면 WDT 를위한프리스케일러는존재하지않는다. 물론그반대의개념도성립된다. 프리스케일러는사용자가읽거나쓸수가없다 ( 그림 5-1 참조 ). PSA 와 PS2:PS0 비트는 (OPTION_REG<3:0>) 프리스케일러를어느쪽으로할당시킬것인가를결정하며또한분주비를결정한다. 프리스케일러의할당에대한예는아래와같이예제 5-1 과예제 5-2 를통하여알수있다. 아래예에서프리스케일러가 1:1 아닌분주비를가진 WDT 쪽으로할당되었다면라인 2 와 3 은 ( 빗금쳐진부분 ) 옵션라인이된다. 그러나만약 1:1 분주비가사용된다면이두라인은반드시사용되어야만하고최종 1:1 분주비는라인 10 과 11 ( 빗금쳐진 부분 ) 에서셋팅이된다 ( 라인넘버는단순히설명을위하여첨가되었으며실제코드에서는표시되지않는다 ). 프리스케일러가타이머 0 모듈로할당되었을때타이머0 레지스터로값을쓰는모든명령어 ( 예를들어 CLRF 1, MOVWF 1, BSF 1,x... 등.) 들이실행이되면프리스케일러를카운터값을 0 으로클리어시킬것이다. WDT 쪽으로할당이되었을때 CLRWDT 명령의실행은워치 - 독타이머와함께프리스케일러카운터값을클리어시킬것이다. 노트 : 프리스케일러가타이머 0 모듈쪽으로할당되었을때타이머 0 레지스터에값을쓰면프리스케일러카운터값은 0 으로클리어되지만프리스케일러할당값그자체는변하지않는다. 예제 5-1: 프리스케일러를타이머 0 모듈로부터 WDT 쪽으로변경 1) BSF STATUS, RP0 ; 뱅크 1 2) MOVLW b xx0x0xxx ; 클럭소스와분주비가 1:1 이아닌프리스케일러 3) MOVWF OPTION_REG ; 값을선택 4) BCF STATUS, RP0 ; 뱅크 0 5) CLRF TMR0 ; TMR0 레지스터와프리스케일러카운터값을클리어시킴 6) BSF STATUS, RP1 ; 뱅크 1 7) MOVLW b xxxx1xxx ; WDT 선택, 프리스케일러값을변경시키지않음 8) MOVWF OPTION_REG 9) CLRWDT ; WDT 와프리스케일러카운터클리어시킴 10) MOVLW b xxxx1xxx ; 새로운프리스케일러값과 WDT 를선택 11) MOVWF OPTION_REG 12) BCF STATUS, RP0 ; 뱅크 0 예제 5-2: 프리스케일러를 WDT 로부터타이머 0 모듈쪽으로변경 CLRWDT ; WDT 과프리스케일러카운터를클리어시킴 BSF STATUS, RP0 ; 뱅크 1 MOVLW b xxxx0xxx ; 타이머 0 선택, 새로운프리스케일러 MOVWF OPTION_REG ; 값과클럭소스셋팅 BCF STATUS, RP0 ; 뱅크 0 테이블 5-1: 타이머 0 모듈과관련된레지스터요약 어드레스이름비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0 POR, BOR 상태의값 다른모든리셋의값 01h,101h TMR0 타이머 0 모듈레지스터 xxxx xxxx uuuu uuuu 0Bh,8Bh, 10Bh,18Bh INTCON GIE PEIE TMR0IE INTE RBIE TMR0IF INTF RBIF 0000 000x 0000 000u 81h,181h OPTION_REG RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 1111 1111 1111 1111 범례 : x = 알수없음, u = 변하지않음, - = 정의되지않은영역, 항상 0 으로읽힘. 빗금친부분은타이머 0 와상관없음 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 45

노트 : DS21993A_KR- 페이지 46 2006 마이크로칩테크놀로지

6.0 타이머 1 모듈 타이머 1 모듈은읽거나쓰기가가능한두개의 8 비트레지스터 (TMR1H 과 TMR1L) 로구성된 16 비트타이머또는카운터로동작가능하다. 타이머 1 레지스터쌍 (TMR1H:TMR1L) 은 0000h 에서부터 FFFFh 까지증가되며그이후오버 - 플로우가발생되면서 0000h 로되돌아간다. 이때인터럽트요구플래그인 TMR1IF (PIR1<0>) 비트가 1로셋트된다. 타이머 1 인터럽트는타이머 1 인터럽트인에이블비트인 TMR1IE (PIE1<0>) 비트를이용하여인에이블또는디제이블시킬수있다. 타이머 1 은아래두모드중하나로동작가능하다 : 타이머 카운터동작모드의선택은클럭선택비트인 TMR1CS (T1CON<1>) 비트에의하여결정된다. 타이머모드에서타이머 1 레지스터는모든명령어사이클마다증가되며카운터모드에서는외부에서공급되는클럭의모든상승에지에서증가가된다. 타이머 1 모듈은제어비트인 TMR1ON (T1CON<0>) 비트를이용하여인에이블또는디제이블시킬수있다. 또한타이머 1 모듈은내부 리셋입력 을가지고있다. 이리셋입력은특별이벤트트리거의기능을가진두개의 CCP 모듈중하나로부터발생가능하다. ( 섹션 8.1 과 8.2 참조 ). 레지스터 6-1 은타이머1 제어레지스터구조를보여주고있다. 타이머 1 오실레이터인에이블비트 (T1OSCEN 비트가 1 로셋트 ) 가인에이블되어있으면 RC1/T1OSI/CCP2 핀과 RC0/T1OSO/T1CKI 핀은항상입력상태가되며 TRISC<1:0> 비트들은무시가되고항상 0 으로읽힌다. 타이머1모듈에대한보다더자세한사항은 PICmicro 미드 - 레인지 MCU 패밀리참조메뉴얼 (DS33023) 을참조하기를바란다. 레지스터 6-1: T1CON: 타이머 1 제어 ( 어드레스 10h) U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS TMR1ON 비트 7 비트 0 범례 : R = 읽기가능비트 W = 쓰기가능비트 U = 정의되지않은비트, 항상 0 으로읽힘 -n = POR 상태에서의값 1 = 비트가셋트됨 0 = 비트가클리어됨 x = 비트값을알수없음 비트 7-6 비트 5-4 비트 3 비트 2 비트 1 비트 0 정의되지않은영역 : 항상 0 으로읽힘 T1CKPS1:T1CKPS0: 타이머 1 입력클럭프리스케일러선택비트 11 = 1:8 프리스케일러값 10 = 1:4 프리스케일러값 01 = 1:2 프리스케일러값 00 = 1:1 프리스케일러값 T1OSCEN: 타이머 1 오실레이터인에이블제어비트 1 = 오실레이터가인에이블됨 0 = 오실레이터가디제이블됨 ( 오실레이터인버터는파워소비를줄이기위하여오프상태로됨 ) T1SYNC: 타이머 1 외부클럭입력동기제어비트 TMR1CS = 1: 1 = 비동기된외부클럭입력 0 = 동기된외부클럭입력 TMR1CS = 0: 이비트는무시된다. TMR1CS = 0 일때는타이머 1 모듈은내부클럭을사용한다. TMR1CS: 타이머 1 클럭소스선택비트 1 = RC0/T1OSO/T1CKI 핀으로부터공급되는외부클럭 ( 상승에지에서증가됨 ) 0 = 내부클럭 (FOSC/4) TMR1ON: 타이머 1 On 비트 1 = 타이머 1 을인에이블시킴 0 = 타이머 1 을멈춤 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 47

6.1 타이머모드에서의타이머 1 동작 TMR1CS (T1CON<1>) 비트를 0 으로클리어시키면타이머모드로동작이되고이모드에서는타이머모듈로 FOSC/4 클럭이입력된다. 따라서내부클럭은항상동기화된클럭이므로동기제어비트인 T1SYNC (T1CON<2>) 는무시가된다. 6.2 타이머 1 카운터동작 TMR1CS 비트를조절하면타이머 1 모듈을비동기또는동기모드로사용가능하다. 타이머 1 모듈이외부클럭소스에의하여증가되는경우클럭의상승에지에서이루어진다. 타이머 1 이카운터모드로인에이블된후타이머 1 레지스터가증가되기위해서는이전에반드시한번은하강에지를가지고있어야한다. 그림 6-1: TIMER1 INCREMENTING EDGE T1CKI ( 초기 : 하이 ) T1CKI ( 초기 : 로우 ) 노트 : 화살표는카운터의증가를의미하고있다. 6.3 동기화된카운터모드에서의타이머 1 동작 TMR1CS 비트를 1 로셋트하면카운터모드가선택이되며이모드에서는 T1OSCEN 비트가인에이블되어있으면 RC1/T1OSI/CCP2 핀으로공급되는클럭의상승에지에서타이머모듈이증가되며만약 T1OSCEN 비트가클리어되어있으면 RC0/T1OSO/T1CKI 핀으로공급되는클럭의상승에지에서타이머모듈이증가가된다. 만약 T1SYNC 비트가클리어되어있으면외부에서공급되는클럭은내부위상클럭과동기화된다. 이러한동기화는프리스케일러선택이후에이루어진다. 프리스케일러모듈은비동기리플카운터이다. 이러한구조때문에슬립모드에서는비록외부클럭이동작되고있다할지라도동기회로가오프상태로되기때문에타이머 1 모듈은증가되지않는다. 그러나프리스케일러카운터는계속증가가될것이다. 그림 6-2: 타이머 1 블럭다이어그램 RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 (2) 오버플로우가발생되면 TMR1IF 비트가 1 로셋트됨 TMR1H T1OSC TMR1 TMR1L (2) T1OSCEN FOSC/4 인에이블오실레이터 (1) 내부클럭 TMR1ON 온 / 오프 1 0 TMR1CS 0 1 T1SYNC 프리스케일러 1, 2, 4, 8 2 T1CKPS1:T1CKPS0 동기화된클럭입력 동기검출 Q 클럭 노트 1: T1OSCEN 비트가클리어되면전류의흐름을제거하기위하여인버터또한오프된다. 2: PIC16CR73/76 인경우외부클럭모드에서쉬미트트리거입력은구현되지않는다. DS21993A_KR- 페이지 48 2006 마이크로칩테크놀로지

6.4 비동기카운터모드에서의타이머 1 동작 만약 T1SYNC (T1CON<2>) 비트가 1 로셋트되면외부클럭입력은동기되지않는다. 타이머는외부클럭에비동기로증가를한다. 타이머는슬립모드에서도동작가능하므로오버플로우가발생되면인터럽트를발생시키고프로세스를깨울수가있다. 그러나소프트웨어에서는타이머를읽고쓰는작업에는약간의주의가필요하다. ( 섹션 6.4.1 비동기카운터모드에서타이머 1 을읽고쓰기 ) 부분을참조. 비동기카운터모드에서타이머 1 은캡쳐또는컴페어모듈의타임 - 베이스로는사용할수가없다. 6.4.1 비동기카운터모드에서타이머1을읽고쓰기타이머가외부비동기클럭으로부터구동되고있을때 TMR1H 또는 TMR1L 레지스터를읽는작업은아무런문제가없다.( 하드웨워상으로주의 ). 그러나 16 비트타이머이므로두개의 8 비트로읽을때주의할필요가있다. 타이머를읽는동안에오버플로우가발생하는등문제가발생할수있기때문이다. 쓰는경우는타이머를멈추고새로운값을쓰기를권장한다. 타이머가증가되고있는도중에쓰기작업을한다면어떤문제를일으킬수있기때문이다. 이것은타이머를예상할수없는값으로바꾸어놓을수도있다. 16 비트값을읽는경우는약간의주의가필요하다. 예제6-1 과예제 6-2 는타이머가비동기모드에서구동중일때어떻게쓰고읽는지에대한예제코드이다. 예제 6-1: 동작중인 16 비트타이머에쓰기 ; 모든인터럽트디제이블시킨다 CLRF TMR1L ; 하위바이트를클리어시킨다. TMR1H 속으로롤 - 오버가발생이안되는지확인 MOVLW HI_BYTE ; 값을 TMR1H 로로드시킴 MOVWF TMR1H, F ; 상위바이트에라이팅한다. MOVLW LO_BYTE ; 값을 TMR1L 로로드시킴 MOVWF TMR1H, F ; 하위바이트에라이팅한다 ; 인터럽트를다시인에이블시킨다.( 만약필요하다면 ) CONTINUE ; 계속코드를수행시킨다. 예제 6-2: 동작중인 16 비트타이머읽기 ; 모든인터럽트디제이블시킨다 MOVF TMR1H, W ; 상위바이트읽기 MOVWF TMPH MOVF TMR1L, W ; 하위바이트읽기 MOVWF TMPL MOVF TMR1H, W ; 상위바이트읽기 SUBWF TMPH, W ; 처음읽은것에서두번째읽은것을뺀다 BTFSC STATUS,Z ; 결과가 0 인가? GOTO CONTINUE ; 16 비트를읽었다 ; TMR1L 레지스터는상위바이트와하위바이트를읽는동안에롤 - 오버될수도있다. ; 상위바이트와하위바이트를지금읽는것은좋을값을읽을것이다. MOVF TMR1H, W ; 상위바이트읽기 MOVWF TMPH MOVF TMR1L, W ; 하위바이트읽기 MOVWF TMPL ; 인터럽트를다시인에이블시킨다.( 만약필요하다면 ) CONTINUE ; 계속코드를수행시킨다. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 49

6.5 타이머 1 오실레이터 크리스털오실레이터회로는 T1OSI ( 입력 ) 핀과 T1OSO ( 앰프출력 ) 핀사이에구성시킨다. 그회로는 T1OSCEN (T1CON<3>) 비트를 1 로셋트하면구동이시작된다. 사용가능한오실레이터는최대 200 khz 까지이다. 그회로는슬립모드에서도계속구동이되며일반적으로 32 khz 크리스털이사용된다. 테이블6-1 은타이머 1 오실레이터를위한콘덴서선택사양을보여주고있다. 타이머 1 오실레이터는 LP 오실레이터와동일하다. 사용자는안정적으로오실레이터구동시작을위하여소프트웨어적으로시간지연을제공하여야한다. 6.6 CCP 트리거출력을사용하여타이머 1 의초기화 만약 CCP1 또는 CCP2 모듈이스페셜이벤트트리거 (CCP1M3:CCP1M0 = 1011) 를발생시키기위한컴페어모드로구성되었다면이신호는타이머 1 을리셋시킬것이다. 노트 : CCP1 과 CCP2 모듈로부터의스페셜이벤트트리거의발생은타이머 1 인터럽트요구플래그인 TMR1IF (PIR1<0>) 비트를 1 로셋트하지는않는다. 이때타이머 1 은반드시타이머또는동기카운터모드로구성되어있어야한다. 만약타이머 1 이비동기카운터모드로동작하고있다면리셋동작은발생하지않을것이다. 타이머 1 에쓰는것과 CCP1 또는 CCP2 로부터스페셜이벤트트리거가동시에발생된다면쓰기동작이선행될것이다. 이모드동작에서 CCPRxH:CCPRxL 레지스터쌍은타이머 1 을위한주기레지스터로사용된다. 6.7 타이머 1 레지스터쌍 (TMR1H, TMR1L) 의초기화 TMR1H 과 TMR1L 레지스터는 CCP1 또는 CCP2 의스페셜이벤트트리거가발생되었을경우를제외하고는 POR 또는어떠한리셋이발생되어도 00h 로초기화가되지않는다. 테이블 6-1: 오실레이터타입 타이머 1 오실레이터를위한콘덴서선택 주파수 LP 32 khz 47 pf 47 pf 100 khz 33 pf 33 pf 200 khz 15 pf 15 pf 디자인을위한참조콘덴서용량값. 이콘덴서용량은일반적인시작시간과동작을위하 여아래에제시된크리스털로테스트되었다. 이용 량값들은 100% 정확하지는않다. 정확한오실레이터동작을위하여다른콘덴서용량 값이사용될수도있다. 따라서사용자는어플리케 이션에적용되는온도범위그리고요구되는 VDD 에 따라서오실레이터의성능을테스트할필요가있다. 자세한사항은아래정보를참조할것. 사용된크리스털 : 32.768 khz 엡슨 C-001R32.768K-A 100 khz 엡슨 C-2 100.00 KC-P 200 khz STD XTL 200.000 khz 노트 1: 용량이큰콘덴서를사용할수록오실레이 터의안정성을가져오지만반면디바이스 의시작시간을길게만들것이다. 2: 각각의크리스털이나레조네이터는고유 특성을가지고있으므로사용자는외부에 부착하여야하는정확한콘덴서값에대 해서는제조사에게문의하는것이좋다. T1CON 레지스터는 POR( 파워-온리셋 ) 또는 BOR( 브 라운아웃리셋 ) 상황에서는 00h 로되고이것은타이 머 1 모듈을오프시키며프리스케일러값을 1:1 로셋 팅시킨다. 다른리셋환경에서는 T1CON 레지스터는 영향을받지않는다. 6.8 타이머 1 프리스케일러 사용된콘덴서 : OSC1 OSC2 프리스케일러카운터는 TMR1H 또는 TMR1L 레지스터에값을쓸때클리어된다. 테이블 6-2: 타이머 / 카운터개념의타이머 1 모듈과관련이되는레지스터요약 어드레스이름비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0 POR, BOR 상태의값 다른모든리셋의값 0Bh,8Bh, 10Bh,18Bh INTCON GIE PEIE TMR0IE INTE RBIE TMR0IF INTF RBIF 0000 000x 0000 000u 0Ch PIR1 PSPIF (1) ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 0000 0000 0000 0000 8Ch PIE1 PSPIE (1) ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000 0Eh TMR1L 16 비트 TMR1 레지스터의하위바이트 xxxx xxxx uuuu uuuu 0Fh TMR1H 16 비트 TMR1 레지스터의상위바이트 xxxx xxxx uuuu uuuu 10h T1CON T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS TMR1ON --00 0000 --uu uuuu 범례 : x = 알수없음, u = 변하지않음, - = 정의되지않았음, 항상 0 으로읽힘. 빗금친부분은타이머 1 모듈에서는사용되지않음. 노트 1: PIC16CR73/76 에서 PSPIE 비트와 PSPIF 비트는예약되어있으며항상클리어되어있음. DS21993A_KR- 페이지 50 2006 마이크로칩테크놀로지

7.0 타이머 2 모듈 타이머 2 모듈은프리스케일러와포스트스케일러를내장한 8 비트타이머이다. 또한타이머 2 모듈은 CCP 모듈중 PWM 모듈의타임 - 베이스로사용될수도있다. TMR2 레지스터는읽고쓰기가가능한레지스터이며어떠한리셋에서도클리어가된다. 입력클럭 (FOSC/4) 은 1:1, 1:4 또는 1:16 의프리스케일옵션을가지고있으며그것은 T2CKPS1:T2CKPS0 (T2CON<1:0>) 비트에의하여선택된다. 타이머 2 모듈은 8 비트주기레지스터인 PR2 레지스터를내장하고있다. 타이머 2 는 PR2 레지스터의값과같아질때까지증가되고같아지면다음명령어사이클에서 00h 로리셋된다. PR2 레지스터는읽기와쓰기가가능한레지스터이며리셋상태에서 FFh 로초기화가된다. TMR2 와 PR2 레지스터의값이일치된출력은 TMR2 인터럽트 (TMR2IF, (PIR1<1>) 비트가 1 로셋트됨 ) 를발생시키기위하여 4 비트포스트스케일러 ( 포스트스케일러는 1:1 에서 1:16 까지의분주비를가진다 ) 블럭으로들어가게된다. 타이머 2 모듈은전력소비를최소화하기위하여 TMR2ON (T2CON<2>) 비트를클리어함으로써오프시킬수있다. 레지스터 7-1 은타이머 2 제어레지스터를보여주고있다. 타이머모듈에대한자세한사항은 PICmicro 미드 - 레인지 MCU 패밀리참조메뉴얼 (DS33023) 을참조하기를바란다. 7.1 타이머 2 프리스케일러및포스트스케일러 프리스케일러와포스트스케일러카운터는다음조건이발생하였을때클리어된다 : TMR2 레지스터에쓸때 T2CON 레지스터에쓸때 디바이스리셋발생시 (POR, MCLR 리셋, WDT 리셋또는 BOR) TMR2 는 T2CON 에값을쓸때는클리어되지않는다. 7.2 TMR2 의출력 TMR2 의출력은 ( 포스트스케일러앞단 ) 쉬프트클럭을발생시키기위하여 SSP 모듈로공급가능하다. 그림 7-1: TMR2IF 비트가셋트 TMR2 출력 (1) 리셋 포스트스케일러 1:1 to 1:16 EQ 4 T2OUTPS3: T2OUTPS0 타이머 2 블럭다이어그램 TMR2 레지스터 비교기 PR2 레지스터 프리스케일러 1:1, 1:4, 1:16 2 T2CKPS1: T2CKPS0 FOSC/4 노트 1: TMR2 출력은보레이트클럭발생을위한 SSP 모 듈로공급가능하다. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 51

레지스터 7-1: T2CON: 타이머 2 제어 ( 어드레스 12h) U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPS1 T2CKPS0 비트 7 비트 0 범례 : R = 읽기가능비트 W = 쓰기가능비트 U = 정의되지않은비트, 항상 0 으로읽힘 -n = POR 상태에서의값 1 = 비트가셋트됨 0 = 비트가클리어됨 x = 비트값을알수없음 비트 7 비트 6-3 비트 2 비트 1-0 정의되지않은영역 : 항상 0 으로읽힘 TOUTPS3:TOUTPS0: 타이머 2 출력포스트스케일러선택비트 0000 = 1:1 포스트스케일러 0001 = 1:2 포스트스케일러 0010 = 1:3 포스트스케일러 1111 = 1:16 포스트스케일러 TMR2ON: 타이머 2 온비트 1 = 타이머 2 모듈이온됨 0 = 타이머 2 모듈이오프됨 T2CKPS1:T2CKPS0: 타이머 2 클럭프리스케일러선택비트 00 = 프리스케일러는 1 01 = 프리스케일러는 4 1x = 프리스케일러는 16 테이블 7-1: 타이머 / 카운터개념의타이머 2 모듈과관련이되는레지스터요약 어드레스이름비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0 POR, BOR 상태의값 다른모든리셋의값 0Bh,8Bh, 10Bh, 18Bh INTCON GIE PEIE TMR0IE INTE RBIE TMR0IF INTF RBIF 0000 000x 0000 000u 0Ch PIR1 PSPIF (1) ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 0000 0000 0000 0000 8Ch PIE1 PSPIE (1) ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000 11h TMR2 타이머 2 모듈레지스터 0000 0000 0000 0000 12h T2CON TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPS1 T2CKPS0-000 0000-000 0000 92h PR2 타이머 2 주기레지스터 1111 1111 1111 1111 범례 : x = 알수없음, u = 변하지않음, - = 정의되지않았음, 항상 0 으로읽힘. 빗금친부분은타이머 2 모듈에서는사용되지않음. 노트 1: PIC16CR73/76 에서 PSPIE 비트와 PSPIF 비트는예약되어있으며항상클리어되어있음. DS21993A_KR- 페이지 52 2006 마이크로칩테크놀로지

8.0 캡쳐 / 컴페어 /PWM 모듈 각캡쳐 / 컴페어 /PWM (CCP) 모듈은아래와같이동작하는 16 비트레지스터를내장하고있다 : 16 비트캡쳐레지스터 16 비트컴페어레지스터 PWM 마스터 / 슬레이브듀티사이클레지스터두개의 CCP1 과 CCP2 모듈은스페셜이벤트트리거의동작을제외하면모두동일하게동작한다. 테이블8-1 과테이블 8-2 는리소스및 CCP 모듈사이의상호관계를보여주고있다. 이후설명에서는 CCP1 을기준으로설명이된다. CCP2 는앞에서제기된부분을제외하면 CCP1 모듈과동일하게동작이된다. 8.1 CCP1 모듈 캡쳐 / 컴페어 /PWM 레지스터 1 (CCPR1) 은두개의 8 비트레지스터로구성이되어있다 : CCPR1L ( 하위바이트 ) 와 CCPR1H ( 상위바이트 ). 또한 CCP1CON 레지스터는 CCP1 모듈의동작을제어한다. 스페셜이벤트트리거는비교되어동일하게되면발생하게되는데이것이발생되면 TMR1H 와 TMR1L 레지스터를 0 으로클리어시킬것이다. 8.2 CCP2 모듈 캡쳐 / 컴페어 /PWM 레지스터 2 (CCPR2) 은두개의 8 비트레지스터로구성이되어있다 : CCPR2L ( 하위바이트 ) 와 CCPR2H ( 상위바이트 ). 또한 CCP2CON 레지스터는 CCP2 모듈의동작을제어한다. 스페셜이벤트트리거는비교되어동일하게되면발생하게되는데이것이발생되면 TMR1H 와 TMR1L 레지스터를 0 으로클리어시키며만약 A/D 모듈이인에이블되어있다면 A/D 컨버젼을시작하게된다. CCP 모듈에대한보다자세한내용은 PICmicro 미드 - 레인지 MCU 패밀리참조메뉴얼 (DS33023) 및어플리케이션노트 AN594, CCP 모듈의사용법 (DS00594) 를참조하기를바란다. 테이블 8-1: CCP 모드 캡쳐컴페어 PWM CCP 모드에서요구되는타이머 요구되는타이머 타이머 1 타이머 1 타이머 2 테이블 8-2: 두개의 CCP 모듈의상호관계 CCPx 모드 CCPy 모드 상호관계 캡쳐 캡쳐 같은 TMR1 타임베이스를이용. 캡쳐 컴페어 같은 TMR1 타임베이스를이용. 컴페어 컴페어 같은 TMR1 타임베이스를이용. PWM PWM PWM 모듈은같은주파수를가지며분주비를업데이트한다 (TMR2 인터럽트 ). 상승에지에서구동된다. PWM 캡쳐없음. PWM 컴페어없음. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 53

레지스터 8-1: CCP1CON/CCP2CON: ( 어드레스 17h/1Dh) U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 CCPxX CCPxY CCPxM3 CCPxM2 CCPxM1 CCPxM0 비트 7 비트 0 범례 : R = 읽기가능비트 W = 쓰기가능비트 U = 정의되지않은비트. 항상 0 으로읽힘 -n =POR 상태의값 1 = 비트가셋트됨 0 = 비트가클리어됨 x = 알수없는비트값 비트 7-6 비트 5-4 비트 3-0 정의되지않은영역 : 항상 0 으로읽힘 CCPxX:CCPxY: PWM LSB 비트캡쳐모드 : 사용되지않음컴페어모드 : 사용되지않음 PWM 모드 : 이비트들은 PWM 듀티사이클의하위 2 비트이다. 상위 8 비트는 CCPRxL 레지스터가이용된다. CCPxM3:CCPxM0: CCPx 모드선택비트 0000 = 캡쳐 / 컴페어 /PWM 디제이블됨 (CCPx 모듈을리셋시킴 ) 0100 = 캡쳐모드, 모든하강에지 0101 = 캡쳐모드, 모든상승에지 0110 = 캡쳐모드, 4 번째상승에지마다 0111 = 캡쳐모드, 16 번째상승에지마다 1000 = 컴페어모드, 일치되면하이상태를출력시킴 (CCPxIF 비트는 1 로셋트됨 ) 1001 = 컴페어모드, 일치되면로우상태를출력시킴 (CCPxIF 비트는 1 로셋트됨 ) 1010 = 컴페어모드, 일치되면소프트웨어인터럽트를발생시킴 (CCPxIF 비트는 1 로셋트됨, CCPx 핀은변화가없음 ) 1011 = 컴페어모드, 스페셜이벤트크리거발생 (CCPxIF 비트는 1 로셋트됨, CCPx 핀은변화가없음 ; CCP1 은타이머 1 을클리어시키며 CCP2 는타이머 1 을클리어시킴과동시에만약 A/ D 모듈이인에이블되어있으면 A/D 변환을시작함 ) 11xx =PWM 모드 DS21993A_KR- 페이지 54 2006 마이크로칩테크놀로지

8.3 캡쳐모드 캡쳐모드에서 RC2/CCP1 핀상에이벤트가발생이되면 16 비트의 TMR1 레지스터의값이 CCPR1H: CCPR1L 레지스터로복사된다. 이벤트는아래와같이 CCPxCON<3:0> 에서정의된것중하나로정의된다 : 모든하강에지 모든상승에지 4 번째상승에지마다 16 번째상승에지마다이벤트는제어비트인 CCP1M3:CCP1M0 (CCP1CON<3:0>) 에의하여선택된다. 캡쳐가발생이되면인터럽트요구플래그인 CCP1IF (PIR1<2>) 가 1 로셋트되고이인터럽트요구플래그는소프트웨어적으로반드시클리어되어야한다. 만약 CCPR1 레지스터를읽기전에다른캡쳐가발생이되면이전의캡쳐값은새로운캡쳐값으로변경될것이다. 8.3.1 CCP 핀구성 캡쳐모드를사용하기위해서는 TRISC<2> 비트를조절하여 RC2/CCP1 핀을반드시입력으로구성시켜야만한다.. 노트 : 그림 8-1: RC2/CCP1 핀 만약 RC2/CCP1 핀이출력으로구성이되었을때포트에값을출력을시키면이는캡쳐조건을발생시키는원인이될수있다. 프리스케일러 1, 4, 16 와에지검출 Q s 캡쳐모드동작블럭다이어그램 CCP1IF 비트를 1 로셋트함 (PIR1<2>) CCP1CON<3:0> 8.3.2 타이머 1 모드선택 캡쳐인에이블 CCPR1H TMR1H CCP 모듈을캡쳐기능으로사용하기위해서는반드시타이머 1 모듈은타이머모드또는동기카운터모드로구동이되어야만한다. 비동기카운터모드에서는캡쳐기능은동작되지않는다. 8.3.3 소프트웨어인터럽트모드 CCPR1L TMR1L 캡쳐모드가변경되었을때예상치않은인터럽트가발생될수있기때문에사용자는예상치않은인터럽트를피하기위하여동작모드를바꾸는경우반드시 CCP1IE (PIE1<2>) 비트및 CCP1IF 인터럽트요구플래그를클리어시켜야한다. 8.3.4 CCP 프리스케일러 캡쳐모드사용시 CCP1M3:CCP1M0 비트에의해정의되는네가지프리스케일러셋팅방법이있다. CCP 모듈이꺼져있거나 CCP 모듈이캡쳐모드가아닌경우프리스케일러카운터는클리어된다. 다양한리셋또한프리스케일러카운터를클리어시킬것이다. 캡쳐의프리스케일러를변경하는경우예상치않은인터럽트가발생될수있다. 또한프리스케일러카운터또한클리어되지않을수도있다. 그러므로처음발생한캡쳐는제로상태가아닌프리스케일러로부터발생한것일지도모른다. 예제 8-1 은캡쳐의프리스케일러를변경하고자하는경우의예를보여주고있다. 이예제는프리스케일러를클리어할뿐만아니라예상치않은인터럽트를발생시키지않는다. 예제 8-1: 캡쳐의프리스케일러값 변경 CLRF CCP1CON ; CCP 모듈을디제이블시킴 MOVLW NEW_CAPT_PS ; 새로운프리스케일러값을 ; W 레지스터로로드시킴 ; MOVWF CCP1CON ; 새로운값을 CCP1CON ; 레지스터에넣음 8.4 컴페어모드 컴페어모드에서 16 비트 CCPR1 레지스터값과타이머 1 은계속비교되고이레지스터값이일치되었을때 RC2/CCP1 핀은다음중하나의상태로동작된다 : 하이상태로구동 로우상태로구동 변경시키지않음핀상의동작은 CCP1M3:CCP1M0 (CCP1CON<3:0>) 비트들에의하여구성된다. 동시에인터럽트플래그인 CCP1IF 비트가 1 로셋트된다. 그림 8-2: RC2/CCP1 핀 Q TRISC<2> 출력인에이블 S R 컴페어모드동작블럭다이어그램 CCP1CON<3:0> 모드선택 출력로직 스페셜이벤트트리거 CCP1IF 비트를 1 로셋트함 (PIR1<2>) 일치 CCPR1H TMR1H CCPR1L 비교기 TMR1L 스페셜이벤트트리거는 : TMR1H 와 TMR1L 레지스터를클리어시킨다 TMR1F (PIR1<0>) 비트를셋트시키지않는다 GO/DONE (ADCON0<2>) 비트가셋트됨 ( 오직 CCP2 ) 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 55

8.4.1 CCP 핀구성 컴페어모드를사용하기위해서는 TRISC<2> 비트를조절하여 RC2/CCP1 핀을반드시출력으로구성시켜야만한다. 노트 : CCP1CON 레지스터를클리어하면 RC2/ CCP1 핀은강제로컴페어출력을로우레벨로만든다. 다만래치되지는않는다. 8.4.2 타이머 1 모드선택 CCP 모듈을컴페어기능으로사용하기위해서는반드시타이머 1 모듈은타이머모드또는동기카운터모드로구동이되어야만한다. 비동기카운터모드에서는컴페어기능은동작되지않는다. 8.4.3 소프트웨어인터럽트모드 소프트웨어인터럽트의발생모드를사용하는경우에는 CCP1 핀의상태는변하지않는다. 이경우 CCP1IF 또는 CCP2IF 비트가 1 로셋트되고인터럽트기능이인에이블되어있다면인터럽트가발생될것이다. 8.4.4 스페셜이벤트트리거 이모드에서내부하드웨어트리거가발생되는데이것은동작을초기화하는데사용된다. CCP1 의스페셜이벤트트리거출력은타이머 1 레지스터쌍을리셋시킨다. 이것은 CCPR1 레지스터로타이머 1 을효과적으로제어할수있도록도와준다. CCP2 의스페셜이벤트트리거출력은타이머 1 레지스터쌍을리셋시키고만약 A/D 모듈이인에이블되어있다면 A/D 변환을시작할것이다. 노트 : CCP1 과 CCP2 모듈로부터의스페셜이벤트트리거의발생은인터럽트요구플래그인 TMR1IF (PIR1<0>) 비트를셋트시키지는않는다. 테이블 8-3: 캡쳐, 컴페어, 타이머 1 과관련이되는레지스터요약 어드레스이름비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0 POR,BOR 에서의값 다른모든리셋에서의값 0Bh,8Bh, INTCON GIE PEIE TMR0IE INTE RBIE TMR0IF INTF RBIF 0000 000x 0000 000u 10Bh,18Bh 0Ch PIR1 PSPIF (1) ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 0000 0000 0000 0000 0Dh PIR2 CCP2IF ---- ---0 ---- ---0 8Ch PIE1 PSPIE (1) ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000 8Dh PIE2 CCP2IE ---- ---0 ---- ---0 87h TRISC 포트 C 방향설정레지스터 1111 1111 1111 1111 0Eh TMR1L 16 비트타이머 1 레지스터의하위바이트 xxxx xxxx uuuu uuuu 0Fh TMR1H 16 비트타이머 1 레지스터의상위바이트 xxxx xxxx uuuu uuuu 10h T1CON T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS TMR1ON --00 0000 --uu uuuu 15h CCPR1L 캡쳐 / 컴페어 /PWM 레지스터 1 (LSB) xxxx xxxx uuuu uuuu 16h CCPR1H 캡쳐 / 컴페어 /PWM 레지스터 1 (MSB) xxxx xxxx uuuu uuuu 17h CCP1CON CCP1X CCP1Y CCP1M3 CCP1M2 CCP1M1 CCP1M0 --00 0000 --00 0000 1Bh CCPR2L 캡쳐 / 컴페어 /PWM 레지스터 2 (LSB) xxxx xxxx uuuu uuuu 1Ch CCPR2H 캡쳐 / 컴페어 /PWM 레지스터 2 (MSB) xxxx xxxx uuuu uuuu 1Dh CCP2CON CCP2X CCP2Y CCP2M3 CCP2M2 CCP2M1 CCP2M0 --00 0000 --00 0000 범례 : x = 알수없음, u = 변하지않음, - = 정의되지않았음, 항상 0 으로읽힘. 빗금친부분은캡쳐와타이머 1 에서사용 되지않음. 노트 1: PSP 모듈은 PIC16CR73/76 에서는사용할수없음 ; 항상이비트들은클리어상태로됨. DS21993A_KR- 페이지 56 2006 마이크로칩테크놀로지

8.5 PWM 모드 (PWM) PWM 모드는 CCPx 핀에최대 10 비트분해능의 PWM 펄스를출력할수있다. CCP1 핀은포트 C 디지털래치핀으로도사용가능하므로이핀을 CCP1 으로사용하기위해서는반드시 TRISC<2> 비트를조절하여출력으로셋팅하여야한다.. 노트 : 그림 8-3 은 CCP 모듈을 PWM 모드로사용할때의간단한블럭다이어그램이다. CCP 모듈을 PWM 으로동작을시키기위한진행과정은섹션 8.5.3 PWM 동작구현을위한셋 - 업을참조하기를바란다. 그림 8-3: CCPR1L CCPR1H ( 슬레이브 )) 간단한 PWM 블럭다이어그램 PWM 출력 ( 그림 8-4) 은타임베이스 ( 주기 ) 와하이레벨상태의시간 ( 듀티사이클 ) 을포함하고있다 ). PWM 의주파수는 1/ 주기이다. 그림 8-4: CCP1CON 레지스터를클리어하면 RC2/ CCP1 핀은강제로 PWM 출력을로우레벨로만든다. 다만래치되지는않는다.. 듀티사이클레지스터 TMR2 ( 노트 1) 노트 비교기 비교기 PR2 (1) 타이머클리어, CCP1 핀과래치 D.C. CCP1CON<5:4> R S PWM 출력 Q TRISC<2> RC2/CCP1 1: 10 비트타임베이스를생성하기위하여 8 비트타이머는 2 비트프리스케일러또는 2 비트내부 Q 클럭과관련이된다. TMR2 리셋 주기 듀티사이클 TMR2 = PR2 TMR2 리셋 TMR2 = PR2 TMR2 = 듀티사이클 8.5.1 PWM 주기 PWM 주기는 PR2 레지스터에쓰여지는값에의하여결정된다. 또한 PWM 주기는아래의공식으로계산될수있다 : PWM 주파수는 1 / [PWM 주기 ] 로정의된다. TMR2 값이 PR2 값과같아지면다음명령어사이클에서다음과같은 3 가지이벤트가발생한다 : TMR2 가클리어된다 CCP1 핀이 1로셋트된다 ( 예외 : 만약 PWM 듀티사이클 =0% 이면 CCP1 핀은셋트되지않는다 ) PWM 튜티사이클이 CCPR1L 로부터 CCPR1H 로다운로드된다. 노트 : 타이머 2 포스트스케일러는 ( 섹션 8.3 爐맡? 모드참조 ) PWM 주파수를결정하는데에는사용되지않는다. 8.5.2 PWM 듀티사이클 PWM 듀티사이클은 CCPR1L 레지스터와 CCP1CON <5:4> 비트에값을라이팅함으로써이루어진다. 최대 10 비트분해능까지가능하다. CCPR1L 레지스터는상위 8 비트값을가지고있으며 CCP1CON<5:4> 비트는하위 2 비트의값을가지고있다. 따라서 10 비트값은 CCPR1L:CCP1CON<5:4> 로표현된다. 아래공식은 PWM 듀티사이클을계산하는데사용이된다 : 어떤시점에서도 CCPR1L 과 CCP1CON<5:4> 로값을라이팅하는것은가능하지만 PR2 와 TMR2 값이같아질때까지듀티사이클값은 CCPR1H 레지스터로들어가지않는다 ( 즉주기가끝날때까지 ). PWM 모드에서 CCPR1H 레지스터는읽기전용레지스터이다. CCPR1H 레지스터와 2 비트내부래치는 PWM 듀티사이클을위한더블버퍼로사용이된다. 이러한더블버퍼를이용함으로써본질적으로글리치가없는 PWM 출력이가능해진다. CCPR1H 와 2 비트래치값이 TMR2 레지스터의값과같아지면 CCP1 핀은 0 으로클리어된다. PWM 주파수가주어지면최대 PWM 분해능은아래공식으로계산가능하다 : FOSC log( FPWM ) 분해능 = 비트 log(2) 노트 : PWM 주기 = [(PR2) + 1] 4 TOSC (TMR2 프리스케일값 ) PWM 듀티사이클 = (CCPR1L:CCP1CON<5:4>) TOSC (TMR2 프리스케일값 ) 만약 PWM 듀티사이클값이 PWM 주기보다큰값이면 CCP1 핀은 0 으로클리어되지않는다. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 57

8.5.3 PWM 동작구현을위한셋 - 업 아래순서는 CCP 모듈을 PWM 동작으로구현하기위해서구성방법이다 : 1. PWM 주기값을 PR2 레지스터에써넣는다. 2. PWM 듀티레지스터값을 CCPR1L 레지스터와 CCP1CON<5:4> 비트에써넣는다. 3. TRISC<2> 비트를 0 으로클리어하여 CCP1 핀을출력으로만든다. 4. T2CON 레지스터를이용하여 TMR2 프리스케일값과타이머 2 모듈을인에이블시킨다. 5. CCP1 모듈을 PWM 모드로구성시킨다. 테이블 8-4: PWM 주파수와분해능 (FOSC = 20 MHz) 예제 PWM 주파수 1.22 khz 4.88 khz 19.53 khz 78.12 khz 156.3 khz 208.3 khz 타이머프리스케일 (1, 4, 16) 16 4 1 1 1 1 PR2 값 0xFF 0xFF 0xFF 0x3F 0x1F 0x17 최대분해능 ( 비트 ) 10 10 10 8 7 5.5 테이블 8-5: PWM, 타이머 2 와관련이되는레지스터요약 어드레스이름비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0 POR,BOR 에서의값 다른모든리셋에서의값 0Bh,8Bh, INTCON GIE PEIE TMR0IE INTE RBIE TMR0IF INTF RBIF 0000 000x 0000 000u 10Bh,18Bh 0Ch PIR1 PSPIF (1) ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 0000 0000 0000 0000 0Dh PIR2 CCP2IF ---- ---0 ---- ---0 8Ch PIE1 PSPIE (1) ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000 8Dh PIE2 CCP2IE ---- ---0 ---- ---0 87h TRISC 포트 C 방향설정레지스터 1111 1111 1111 1111 11h TMR2 타이머 2 모듈레지스터 0000 0000 0000 0000 92h PR2 타이머 2 모듈주기레지스터 1111 1111 1111 1111 12h T2CON TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPS1 T2CKPS0-000 0000-000 0000 15h CCPR1L 캡쳐 / 컴페어 /PWM 레지스터 1 (LSB) xxxx xxxx uuuu uuuu 16h CCPR1H 캡쳐 / 컴페어 /PWM 레지스터 1 (MSB) xxxx xxxx uuuu uuuu 17h CCP1CON CCP1X CCP1Y CCP1M3 CCP1M2 CCP1M1 CCP1M0 --00 0000 --00 0000 1Bh CCPR2L 캡쳐 / 컴페어 /PWM 레지스터 2 (LSB) xxxx xxxx uuuu uuuu 1Ch CCPR2H 캡쳐 / 컴페어 /PWM 레지스터 2 (MSB) xxxx xxxx uuuu uuuu 1Dh CCP2CON CCP2X CCP2Y CCP2M3 CCP2M2 CCP2M1 CCP2M0 --00 0000 --00 0000 범례 : x = 알수없음, u = 변하지않음, - = 정의되지않았음, 항상 0 으로읽힘. 빗금친부분은 PWM 과타이머 2 에서사 용되지않음 노트 1: PSP 모듈은 PIC16CR73/76 에서는사용할수없음 ; 항상이비트들은클리어상태로됨. DS21993A_KR- 페이지 58 2006 마이크로칩테크놀로지

9.0 동기시리얼포트 (SSP) 모듈 9.1 SSP 모듈의간략한소개 동기시리얼포트 (SSP) 모듈은다른주변장치또는마이크로콘트롤러디바이스와의통신에직렬접속하는목적으로이용된다. 이러한주변소자로는직렬 EEPROM 들, 쉬프트레지스터, 디스플레이구동, A/D 컨버터등이있다. SSP 모듈은아래의두모드중하나로구동가능하다 : 시리얼주변인터페이스 (SPI) Inter-Integrated Circuit (I 2 C) SSP 모듈에대한자세한사항과 I 2 C 동작에대해서는 PICmicro 미드 - 레인지 MCU 패밀리참조메뉴얼 (DS33023) 부분을참조하기를바란다. 어플리케이션노트 AN578, I 2 C 멀티 - 마스터환경에서의 SSP 모듈의사용법 (DS00578) 부분을참조하기를바란다. 9.2 SPI 모드 이장에서는 SPI 모듈의레지스터정의와동작특성에대한설명을하므로 SPI 모듈에대한좀더자세한사항은 PICmicro 미드 - 레인지 MCU 패밀리참조메뉴얼 (DS33023) 부분을참조하기를바란다. SPI 모드에서 8 비트의데이터를동시에동기적으로송, 수신이가능하다. 이러한통신을하기위해서는아래와같은 3 개의핀이사용된다 : 시리얼데이터출력 (SDO) RC5/SDO 시리얼데이터입력 (SDI) RC4/SDI/SDA 시리얼클럭 (SCK) RC3/SCK/SCL 추가적으로네번째핀은슬레이브모드동작시사용되어진다 : 슬레이브선택 (SS) RA5/SS/AN4 SPI 모듈을초기화할때몇개의옵션을정의하여야만한다. SSPCON 레지스터 (SSPCON<5:0>) 와 SSP- STAT<7:6> 비트들을이용하여다양한옵션사항들을제어가능하다. 이러한제어비트들은다음과같은사항을정의하고있다 : 마스터모드 (SCK 는클럭출력이다 ) 슬레이브모드 (SCK 는클럭입력이다 ) 클럭극성 ( 아이들상태에서의 SCK) 클럭에지 (SCK 의상승또는하강에지에서데이터출력 ) 클럭분주비 ( 마스터모드에서만적용 ) 슬레이브선택모드 ( 슬레이브모드에서만적용 ) 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 59

레지스터 9-1: SSPSTAT: 동기시리얼포트상태 ( 어드레스 94h) R/W-0 R/W-0 R-0 R-0 R-0 R-0 R-0 R-0 SMP CKE D/A P S R/W UA BF 비트 7 비트 0 범례 : R = 읽기가능비트 W = 쓰기가능비트 U = 정의되지않은비트, 항상 0 으로읽힘 -n = POR 상태에서의값 1 = 비트가셋트됨 0 = 비트가클리어됨 x = 알수없는비트값 비트 7 SMP: SPI 데이터입력샘플링위상비트 SPI 마스터모드 : 1 = 데이터출력시간의끝부분에서입력데이터를샘플링한다 0 = 데이터출력시간의중간부분에서입력데이터를샘플링한다 ( 마이크로와이어형태임 ) SPI 슬레이브모드 : SPI 가슬레이브모드로사용될때 SMP 비트는항상클리어상태를유지한다 I 2 C 모드 : 이비트는항상클리어상태를유지함비트 6 CKE: SPI 클럭에지선택비트 ( 그림 9-2, 그림 9-3, 그리고그림 9-4) SPI 모드, CKP = 0: 1 = 데이터는 SCK 핀의상승에지에서전송된다 ( 마이크로와이어형태와는다름 ) 0 = 데이터는 SCK 핀의하강에지에서전송된다 SPI 모드, CKP = 1: 1 = 데이터는 SCK 핀의하강에지에서전송된다 ( 마이크로와이어형태임 ) 0 = 데이터는 SCK 핀의상승에지에서전송된다 I 2 C 모드 : 이비트는항상클리어상태를유지함비트 5 D/A: 데이터 / 어드레스비트 (I 2 C 모드에서만적용됨 ) 1 = 송 / 수신된마지막바이트가데이터라는것을의미함 0 = 송 / 수신된마지막바이트가어드레스라는것을의미함비트 4 P: 멈춤비트 (I 2 C 모드에서만적용됨 ) 이비트는 SSP 모듈이디제이블되었을경우또는시작비트가검출되었을경우클리어된다. SSPEN 는클리어된다. 1 = 멈춤비트가검출되었음 ( 이비트는리셋에서 0 의값을가진다 ) 0 = 멈춤비트가검출되지않았음비트 3 S: 시작비트 (I 2 C 모드에서만적용됨 ) 이비트는 SSP 모듈이디제이블되었을경우또는멈춤비트가검출되었을경우클리어된다. SSPEN 는클리어된다. 1 = 시작비트가검출되었음 ( 이비트는리셋에서 0 의값을가진다 ) 0 = 시작비트가검출되지않았음비트 2 R/W: 읽기 / 쓰기정보비트 (I 2 C 모드에서만적용됨 ) 이비트는어드레스가일치하였을때읽기 / 쓰기에대한정보를제공한다. 이비트는어드레스일치로부터다음시작비트, 멈춤비트그리고엑크비트로갈때만유효하다. 1 = 읽기 0 = 쓰기비트 1 UA: 어드레스업데이트비트 (10 비트 I 2 C 모드에서만적용됨 ) 1 = 사용자가 SSPADD 레지스터로어드레스값을업데이트할필요가있음을가리킴 0 = 어드레스를업데이트할필요가없음비트 0 BF: 버퍼풀상태비트수신 (SPI 및 I 2 C 모드 ): 1 = 수신이완료됨, SSPBUF 레지스터에데이터가넣어져있음 0 = 수신이완료되지않았음, SSPBUF 레지스터는비어있음송신 (I 2 C 모드에서만적용됨 ): 1 = 송신이진행중, SSPBUF 레지스터에데이터가있음 0 = 송신이완료되었음, SSPBUF 레지스터는비어있음 DS21993A_KR- 페이지 60 2006 마이크로칩테크놀로지

레지스터 9-2: SSPCON: 동기시리얼포트제어 ( 어드레스 14h) R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM1 SSPM0 비트 7 비트 0 범례 : R = 읽기가능비트 W = 쓰기가능비트 U = 정의되지않은비트, 항상 0 으로읽힘 -n = POR 상태에서의값 1 = 비트가셋트됨 0 = 비트가클리어됨 x = 알수없는비트값 비트 7 비트 6 비트 5 비트 4 비트 3-0 WCOL: 쓰기충돌검출비트 1 = 이전데이터를송신하고있는도중에또다른데이터를 SSPBUF 레지스터에써넣으면발생됨 ( 반드시소프트웨어에서클리어시켜야함 ) 0 = 쓰기충돌이발생되지않았음 SSPOV: 수신오버플로우알림비트 SPI 모드 : 1 = SSPBUF 레지스터가이전데이터를가지고있는동안에새로운바이트가수신되었을경우발생한다. 오버플로우가발생이되면 SSPSR 레지스터의값은잃어버리게된다. 오버플로우는슬레이브모드에서만발생이된다. 사용자는이러한오버플로우현상을피하기위하여심지어는데이터를전송하는경우에도반드시 SSPBUF 레지스터를읽어야만한다. 마스터모드에서는각수신 ( 그리고송신 ) 은 SSPBUF 레지스터에라이팅함에의하여초기화가되기때문에오버플로우비트는발생되지않는다. 0 = 오버플로우가발생되지않았음 I 2 C 모드 : 1 = SSPBUF 레지스터가이전데이터를가지고있는동안에새로운바이트가수신되었을경우발생한다. 송신모드에서는관계가없으며 SSPOV 비트는반드시소프트웨어에서클리어시켜야함 0 = 오버플로우가발생되지않았음 SSPEN: 동기시리얼포트 (SSP) 인에이블비트 SPI 모드 : 1 = 시리얼포트기능이인에이블되고 SCK, SDO 그리고 SDI 핀이시리얼포트핀으로할당됨 0 = 시리얼포트기능이디제이블되고 SCK, SDO 그리고 SDI 핀이일반 I/O 포트핀으로할당됨 I 2 C 모드 : 1 = 시리얼포트기능이인에이블되고 SDA 와 SCL 핀이시리얼포트핀으로할당됨 0 = 시리얼포트기능이디제이블되고 SDA 와 SCL 핀이일반 I/O 포트핀으로할당됨두모드에서시리얼포트가인에이블되었을경우각핀들은정확하게입력또는출력으로구성되어야만한다. CKP: 클럭극성선택비트 SPI 모드 : 1 = 아이들상태에서클럭을하이레벨을유지시킴 ( 마이크로와이어구조형태임 ) 0 = 아이들상태에서클럭을로우레벨을유지시킴 ( 마이크로와이어형태와다름 ) I 2 C 모드 : SCK 제어 1 = 클럭을인에이블 0 = 클럭을로우신호로유지시킴 ( 클럭스트레칭기능 ). ( 확실한데이터셋업시간을위하여사용됨.) SSPM3:SSPM0: 동기시리얼포트 (SSP) 모드선택비트 0000 = SPI 마스터모드, 클럭 = FOSC/4 0001 = SPI 마스터모드, 클럭 = FOSC/16 0010 = SPI 마스터모드, 클럭 = FOSC/64 0011 = SPI 마스터모드, 클럭 = TMR2 출력 /2 0100 = SPI 슬레이브모드, 클럭 = SCK 핀. SS 핀제어인에이블됨. 0101 = SPI 슬레이브모드, 클럭 = SCK 핀. SS 핀제어디제이블됨. SS 핀을 I/O 핀으로사용가능. 0110 = I 2 C 슬레이브모드, 7 비트어드레스 0111 = I 2 C 슬레이브모드, 10 비트어드레스 1011 = I 2 C 펌웨어로제어되는마스터모드 ( 슬레이브아니들 ) 1110 = I 2 C 슬레이브모드, 시작및멈춤인터럽트기능이인에이블된 7 비트어드레스모드 1111 = I 2 C 슬레이브모드, 시작및멈춤인터럽트기능이인에이블된 10 비트어드레스모드 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 61

그림 9-1: RC4/SDI/SDA RC5/SDO RA5/SS/AN4 RC3/SCK/ SCL 읽기 SSP 블럭 D 다이어그램 (SPI 모드 ) SSPBUF 레지스터 비트 0 주변 OE SS 인에이블제어 에지선택 SSPSR 레지스터 에지선택 TRISC<3> 2 클럭선택 SSPM3:SSPM0 4 쓰기 내부데이터버스 쉬프트클럭 TMR2 출력 2 프리스케일 4, 16, 64 TCY 시리얼포트를인에이블하기위해서는 SSP 인에이블비트인 SSPEN (SSPCON<5>) 이반드시 1 로셋트되어야만한다. 리셋또는 SPI 모드를다시수정시키기위해서는 SSPEN 비트를클리어시킨후 SSPCON 레지스터를다시초기화하고 SSPEN 비트를다시 1 로셋트시키면 SDI,SDO,SCK 그리고 SS 핀들이시리얼포트로구성이된다. 이러한핀들이시리얼포트기능으로동작하기위해서는그들의방향설정비트 ( TRISC 레지스터 ) 들을적당하게프로그램해야한다. 즉 : SDI 를위하여 TRISC<4> 를반드시셋트한다 SDO를위하여 TRISC<5> 를반드시클리어한다 SCK ( 마스터모드 ) 를위하여 TRISC<3> 를반드시클리어한다 SCK ( 슬레이브모드 ) 를위하여 TRISC<3> 를반드시셋트한다 SS 를위하여 TRISA<5> 를셋트하여야하며 ADCON 레지스터를조절하여 RA5 핀을디지털 I/O 로구성하여야한다 노트 1: SPI 모듈이 SS 핀제어인에이블슬레이브모드 (SSPCON<3:0> = 0100) 에있는경우만약 SS 핀이 VDD 로연결이되면 SPI 모듈은리셋될것이다. 2: CKE = 1 인슬레이브모드 SPI 가사용이되면 SS 핀제어는반드시인에이블되어야만한다. 3: SPI 모듈이 SS 핀제어인에이블슬레이브모드 (SSPCON<3:0> = 0100) 에있는경우 SS 핀의상태는 TRISC<5> 비트에영향을미칠수도있다. SSP 모듈에서주변장치 OE 신호가포트 C 를제어하면 TRISC<5> 비트에영향을미칠수도있다. ( 포트 C 에대한자세한사항은섹션 4.3 PORTC 와 TRISC 레지스터부분을참조 ). 만약 SS 핀이하이상태에서 BSF 와같은 Read-Modify-Write 명령이 TRISC 레지스터에수행이되면 TRISC<5> 비트가 1 로셋트되며따라서 SDO 출력은디제이블될것이다. DS21993A_KR- 페이지 62 2006 마이크로칩테크놀로지

그림 9-2: SPI 모드타이밍, 마스터모드 SCK (CKP = 0, CKE = 0) SCK (CKP = 0, CKE = 1) SCK (CKP = 1, CKE = 0) SCK (CKP = 1, CKE = 1) SDO 비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0 SDI (SMP = 0) SDI (SMP = 1) 비트 7 비트 0 SSPIF 비트 7 비트 0 그림 9-3: SPI 모드타이밍 (CKE = 0 인상태의슬레이브모드 ) SS ( 옵션 ) SCK (CKP = 0) SCK (CKP = 1) SDO 비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0 SDI (SMP = 0) 비트 7 비트 0 SSPIF 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 63

그림 9-4: SPI 모드타이밍 (CKE = 1 인상태의슬레이브모드 ) SS SCK (CKP = 0) SCK (CKP = 1) SDO 비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0 SDI (SMP = 0) 비트 7 비트 0 SSPIF 테이블 9-1: SPI 동작과관련된레지스터요약 어드레스 이름 비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0 POR, BOR 에서의값 다른모든리셋에서의값 0Bh,8Bh. 10Bh,18Bh INTCON GIE PEIE TMR0IE INTE RBIE TMR0IF INTF RBIF 0000 000x 0000 000u 0Ch PIR1 PSPIF (1) ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 0000 0000 0000 0000 8Ch PIE1 PSPIE (1) ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000 87h TRISC 포트 C 방향설정레지스터 1111 1111 1111 1111 13h SSPBUF SSP 수신버퍼 / 송신레지스터 xxxx xxxx uuuu uuuu 14h SSPCON WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM1 SSPM0 0000 0000 0000 0000 85h TRISA 포트 A 방향설정레지스터 --11 1111 --11 1111 94h SSPSTAT SMP CKE D/A P S R/W UA BF 0000 0000 0000 0000 범례 : x = 알수없음, u = 변하지않음, - = 정의되지않았고항상 0 으로읽힘. 빗금친부분은 SPI 모드에서는사용되지 않음. 노트 1: PSPIE 와 PSPIF 비트들은 PIC16CR73/76 에서는예약되어있음 ; 항상 0 을유지함. DS21993A_KR- 페이지 64 2006 마이크로칩테크놀로지

9.3 SSP I 2 C 동작 SSP 모듈은제너럴콜기능을제외한모든 I 2 C 슬레이브기능을구현하고있으며마스터모드의펌웨어구현을위하여하드웨어적으로시작및멈춤인터럽트기능을지원하고있다. SSP 모듈은 7 비트및 10 비트어드레싱표준모드를지원한다. 데이터전송을위하여 2 개의핀이사용되는데클럭핀 (SCL) 으로 RC3/SCK/SCL 핀이데이터핀 (SDA) 으로 RC4/SDI/SDA 핀이이용된다. 따라서사용자는반드시 TRISC<4:3> 비트를조절하여이러한핀들을입력또는출력으로구성시켜야한다. SSP 모듈은 SSP 인에이블비트인 SSPEN (SSP- CON<5>) 을셋트함으로써인에이블된다. 그림 9-5: RC3/SCK/SCL RC4/ SDI/ SDA 읽기 쉬프트클럭 SSP 블럭다이어그램 (I 2 C 모드 ) SSPBUF 레지스터 SSPSR 레지스터상위하위 일치검출 SSPADD 레지스터 시작및멈춤비트검출 쓰기 내부데이터버스 어드레스일치 S, P 비트셋, 리셋 (SSPSTAT ) SSP 모듈은 I 2 C 동작을위하여아래와같은다섯개의레지스터를가지고있다 : SSP 제어레지스터 (SSPCON) SSP 상태레지스터 (SSPSTAT) 직렬수신 / 송신버퍼 (SSPBUF) SSP 쉬프트레지스터 (SSPSR) 직접억세스는불가능하다 SSP 어드레스레지스터 (SSPADD) SSPCON 레지스터는 I 2 C 동작을제어하는레지스터이다. 4 개의모드선택비트 (SSPCON<3:0>) 를통하여다음과같은 I 2 C 모드중하나를선택할수있다 : I 2 C 슬레이브모드 (7 비트어드레스 ) I 2 C 슬레이브모드 (10 비트어드레스 ) I 2 C 슬레이브모드 ( 7 비트어드레스 ), 펌웨어마스터모드를지원하기위하여시작및멈춤비트인터럽트기능을지원 I 2 C 슬레이브모드 (10 비트어드레스 ), 펌웨어마스터모드를지원하기위하여시작및멈춤비트인터럽트기능을지원 펌웨어마스터모드를지원하기위하여 I 2 C 시작및멈춤비트인터럽트기능을지원, 슬레이브는아이들상태임 SSPEN 비트가 1 로셋트된상태에서는위의모드중어떠한 I 2 C 모드를선택할지라도 SCL 핀과 SDA 핀을오픈드레인핀으로만듬과동시에시리얼포트핀으로셋팅을하기때문에사용자는 I 2 C 모드를선택하기전에 TRISC 비트를조절하여입력으로셋팅하여야한다. 또한모듈의정확한동작을위하여 SCL 핀과 SDA 핀외부에풀 - 업저항을연결하여야만한다. SSP I 2 C 동작에대한자세한사항은 PICmicro 미드 - 레인지 MCU 패밀리참조메뉴얼 (DS33023) 을참조하기를바란다. 9.3.1 슬레이브모드 슬레이브모드에서는 SCL 과 SDA 핀을반드시입력상태로구성시켜야한다 (TRISC<4:3> 를셋트시킴 ). SSP 모듈은필요한시점 ( 슬레이브전송모드 ) 에서입력상태를출력상태로전환시킬것이다. 어드레스가일치되었거나어스레스일치이후에전송된데이터를수신하였을경우에는하드웨어적으로엑크 (ACK) 신호를발생시키고 SSPSR 레지스터에가지고있는수신데이터를 SSPBUF 레지스터로전송시킨다. 그러나다음과같은조건에서는 ACK 펄스를발생시키지않을것이다 : a) 수신이완료되기전에버퍼풀비트 (SSP- STAT<0>) 가셋트되었을때 b) 수신이완료되기전에오버플로우비트 SSPOV (SSPCON<6>) 가셋트되었을때이경우 SSPSR 레지스터의값이 SSPBUF 레지스터로넘어가지는않으나 SSPIF (PIR1<3>) 비트는셋트된다. 테이블 9-2 는데이터전송바이트가수신되었을때 BF 와 SSPOV 비트의상태를보여주고있다. 빗금친부분은소프트웨어에서오버플로우조건을적당하게클리어하지않았을때의조건을보여주고있다. BF 비트는 SSPBUF 레지스터를읽는것에의하여클리어가되는반면 SSPOV 비트는소프트적으로클리어시켜야한다. SCL 클럭입력은안정된동작을위하여최소한의하이시간과로우시간을가져야한다. SSP 모듈에대한필요조건과 I 2 C 스펙의하이, 로우시간에대한설명은파라메터 #100 과파라메터 #101 을참조하기를바란다. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 65

9.3.1.1 어드레싱 SSP 모듈이인에이블되었다면 SSP 는시작조건이발생될때까지기다린다. 시작조건이발생하면 8 비트데이터는 SSPSR 레지스터속으로쉬프트되어들어온다. 모든들어오는비트는클럭 (SCL) 핀의상승에지에서샘플링된다. 레지스터 SSPSR<7:1> 비트값들은 SSPADD 레지스터와비교되어진다. 어드레스는여덟번째클럭 (SCL) 펄스의하강에지에서비교된다. 만약어드레스가일치하고 BF 비트와 SSPOV 비트가클리어되어있다면아래와같은일이발생한다 : a) SSPSR 레지스터값이 SSPBUF 레지스터로로드된다. b) 버퍼풀비트 BF 가셋트된다. c) 하나의 ACK 펄스가발생된다. d) SSP 인터럽트플래그비트 SSPIF (PIR1<3>) 가셋트된다 ( 만약인에이블되어있다면인터럽트가발생된다 ) 9 번째 SCL 펄스의하강에지에서. 10 비트어드레스모드에서어드레스는 2 바이트연속으로슬레이브에의해서수신될필요가있다 ( 그림 9-7). 만약 10 비트어드레스라면첫번째어드레스의상위 5 비트는정해진비트로구성되어있어야하도비트 R/W (SSPSTAT<2>) 는반드시라이트모드로있어야한다. 그러면슬레이브는두번째바이트를어드레스의하위번지로받아들일것이다. 10 비트어드레스를위하여첫번째바이트는 1111 0 A9 A8 0 이며여기에서 A9 와 A8 은어드레스의상위두비트이다. 10 비트어드레스진행순서는아래와같으며스텝 7-9 는슬레이브송신을위한스텝이다 : 1. 첫번째상위어드레스바이트를수신한다. ( SSPIF, BF, 그리고 UA (SSPSTAT<1>) 비트는셋트된다 ). 2. 어드레스의두번째하위바이트를 SSPADD 로로드한다 (UA 비트를클리어하고어드레스라인 SCL 을놓아준다 ). 3. SSPBUF 레지스터를읽는다 (BF 비트는클리어됨 ) 그리고 SSPIF 비트를클리어시킨다. 4. 어드레스의두번째하위바이트를수신한다 (SSPIF, BF 그리고 UA 비트는셋트된다 ). 5. 어드레스의첫번째상위바이트를 SSPADD 로업데이트한다. 만약일치한다면 SCL 라인을풀어주고이것은 UA 비트를클리어시킬것이다. 6. SSPBUF 레지스터를읽는다 ( BF 비트는클리어됨 ) 그리고 SSPIF 비트를클리어시킨다. 7. 반복시작조건을수신한다. 8. 어드레스의첫번째상위바이트를수신한다. (SSPIF 와 BF 비트가셋트된다 ). 9. SSPBUF 레지스터를읽는다 ( BF 비트는클리어됨 ) 그리고 SSPIF 비트를클리어한다. 테이블 9-2: 수신된바이트에따른내부상태 데이터가 수신되었을때관련상태비트 SSPSR SSPBUF ACK 펄스발생여부 BF SSPOV SSPIF 비트셋트여부 ( 만약인에이블되어있다면인터럽트발생됨 ) 0 0 전송됨 발생함 셋트됨 1 0 전송되지않음 발생하지않음 셋트됨 1 1 전송되지않음 발생하지않음 셋트됨 0 1 전송되지않음발생하지않음셋트됨노트 : 빗금친부분은오버플로우조건을사용자가소프트웨어적으로클리어시키지않았을때의현상이다. 9.3.1.2 수신 어드레스바이트의 R/W 비트가클리어되고어드레스가일치하면 SSPSTAT 레지스터의 R/W 비트는클리어된다. 수신된어드레스는 SSPBUF 레지스터로로드되어진다. 어드레스오버플로우조건이발생하면 ACK 펄스가발생되지않으며 BF (SSPSTAT<0>) 비트가셋트되거나또는 SSPOV (SSPCON<6>) 비트가셋트된다. 이러한에러는사용자의펌 - 웨어때문에발생된다. SSP 인터럽트는각데이터의전송에의해발생이된다. 또한 SSPIF (PIR1<3>) 는소프트웨어에서클리어시켜주어야한다. SSPSTAT 레지스터는각바이트의상태를결정하기위해서사용된다. DS21993A_KR- 페이지 66 2006 마이크로칩테크놀로지

그림 9-6: 수신을위한 I 2 C 파형 (7 비트어드레스 ) SDA 어드레스수신 R/W=0 엑크 A7 A6 A5 A4 A3 A2 A1 D7 D6 데이터수신 D5 D4 D3 D2 D1 엑크 D0 D7 D6 데이터수신 D5 D4 D3 D2 D1 엑크 D0 SCL S 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 P SSPIF (PIR1<3>) BF (SSPSTAT<0>) 소프트웨어에서클리어됨 SSPBUF 레지스터를읽음 버스마스터가전송을중지시킴 SSPOV (SSPCON<6>) SSPBUF 레지스터에데이터가있으므로 SSPOV 비트가셋트된다 엑크가발생되지않음 9.3.1.3 송신 들어오는어드레스바이트의 R/W 비트가클리어되고어드레스가일치하면 SSPSTAT 레지스터의 R/W 비트는셋트된다. 수신된어드레스는 SSPBUF 레지스터로로드되어진다. ACK 펄스는 9 번째비트에발생되며 RC3/SCK/SCL 핀은로우상태로있을것이다. 전송된데이터는 SSPBUF 레지스터로로드되어져야만하고또한이것은 SSPSR 레지스터로이동한다. 그때 CKP (SSPCON<4>) 비트를셋트하는것에의하며 RC3/SCK/SCL 핀은인에이블될수있다. 마스터는반드시다른클럭펄스가공급되기이전에 SCL 핀을모니터링하여야한다. 슬레이브디바이스는클럭스트레칭에의하여마스터를동작시키지않을수도있다. 8 비트데이터는 SCL 입력의하강에지에서쉬프트출력된다. 이것은 SDA 신호가 SCL 하이시간동안유효하다는것을보증한다. ( 그림 9-7). SSP 인터럽트는각데이터의전송에의해발생이된다. 또한 SSPIF (PIR1<3>) 는소프트웨어에서클리어시켜주어야한다. SSPSTAT 레지스터는각바이트의상태를결정하기위해서사용된다. SSPIF 비트는 9 번째클럭펄스의하강에지에서셋트된다. 슬레이브송신시마스터수신기로부터의 ACK 펄스는 9 번째 SCL 입력펄스의상승에지에서래치되어진다. 만약 SDA 라인이하이 (ACK 가발생되지않은경우 ) 라면데이터전송은완료된다. ACK 가슬레이브에의하여래치되면슬레이브로직은리셋 (SSPSTAT 레지스터리셋 ) 되며슬레이브는다른시작비트의발생을모니터링한다. 만약 SDA 라인이로우 (ACK) 라면전송된데이터는 SSPBUF 레지스터로로드되어야하며그것은또한 SSPSR 레지스터로로드되어진다. 이때 CKP 비트를셋트하는것에의해 RC3/SCK/SCL 핀은인에이블된다. 그림 9-7: 송신을위한 I 2 C 파형 (7 비트어드레스 ) SDA 어드레스수신 R/W = 1 전송데이터 A7 A6 A5 A4 A3 A2 A1 엑크 D7 D6 D5 D4 D3 D2 D1 D0 엑크 SCL S SSPIF (PIR1<3>) 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 샘플된 CPU 가 SSPIF 로 데이터 응답하는동안 SCL 라인을로우로잡는다 소프트웨어에서클리어된다 P BF (SSPSTAT<0>) SSP 인터럽트루틴에서소프트웨어에서 SSPBUF 로씀 CKP (SSPCON<4>) SSPBUF 로라이팅된후에셋트됨 (SSPBUF 는반드시 CKP 비트가셋트되기이전에라이팅되어야한다 ) 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 67

9.3.2 마스터모드 마스터모드는시작과멈춤조건을검출하는인터럽트방법을사용하여지원되고있다. 멈춤 (P) 과시작 (S) 비트들은칩이리셋되었거나 SSP 모듈자체가디제이블상태일때클리어상태가된다. 멈춤 (P) 과시작 (S) 비트는시작과멈춤조건을기반으로토글된다. I 2 C 버스의제어는 P 비트가셋트되었을때또는버스가아이들상태이고두 S 와 P 비트가클리어되었을때가능하다. 마스터모드에서 SCL 과 SDA 핀은 TRISC<4:3> 비트를클리어시켜출력으로해야한다. 출력레벨은 PORTC<4:3> 에있는값에상관없이항상로우이다. 송신데이터가 1 데이터비트일때는 TRISC<4> 비트는셋트 ( 입력 ) 이어야만하고 0 데이터비트일때는 TRISC<4> 비트는클리어 ( 출력 ) 이어야만한다. 같은방법으로 TRISC<3> 비트를가지는 SCL 라인도조정가능하다. 올바른 I 2 C 동작을위하여 SDA 핀과 SCL 핀외부에풀 - 업저항이연결되어야만한다. 아래의조건에서 SSP 인터럽트플래그 SSPIF 비트가셋트된다 ( 인에이블되어있으면인터럽트발생됨 ): 시작조건 멈춤조건 데이터송 / 수신이완료되었을때마스터동작모드는슬레이브모드아이들 (SSPM3:SSPM0 = 1011) 또는슬레이브엑티브상태에서모두가능하다. 마스터와슬레이브모드가모두인에이블되었을경우는소프트웨어에서인터럽트소스를구분하여처리하여주어야한다. 9.3.3 멀티 - 마스터모드 멀티마스터모드에서시작과멈춤조건에서인터럽트의발생은버스가자유로운상태라는것을판단하는데사용이된다. 멈춤 (P) 과시작 (S) 비트는리셋또는 SSP 모듈이디제이블되었을때클리어된다. 멈춤 (P) 과시작 (S) 비트는시작과멈춤조건을기반으로토글된다. I 2 C 버스의제어는 P (SSPSTAT<4>) 비트가셋트되었을때또는버스가아이들상태이고두 S 와 P 비트가클리어되었을때가능하다. 버스가사용중일때 SSP 인터럽트를인에이블하면멈춤조건발생시인터럽트를발생한다. 멀티마스터동작에서 SDA 라인은반드시신호레벨이기대하는출력레벨인지를계속모니터링하여야한다. 이체크는오직하이레벨이출력될때할필요가있다. 만약하이레벨이기대되는데로우레벨이출력된다면디바이스는 SDA 와 SCL 핀을입력으로전환시켜야한다. (TRISC<4:3> 비트를셋트 ). 중재는다음두상황에서발생할수있다 : 어드레스전달시 데이터전달시슬레이브로직이인에이블되어있다면슬레이브는수신을계속할것이다. 만약중재상황이어드레스를전달하는동안사라진다면디바이스는어드레스되어질수있다. 만약어드레스가성립되면 ACK 펄스가발생된다. 만약중재상황이데이터를전달하는동안사라진다면디바이스는나중에데이터를다시전송해야만한다. 테이블 9-3: I 2 C 동작과관련된레지스터요약 어드레스이름비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0 POR, BOR 에서의값 다른모든리셋에서의값 0Bh, 8Bh, 10Bh,18Bh INTCON GIE PEIE TMR0IE INTE RBIE TMR0IF INTF RBIF 0000 000x 0000 000u 0Ch PIR1 PSPIF (1) ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 0000 0000 0000 0000 8Ch PIE1 PSPIE (1) ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000 13h SSPBUF 동기시리얼포트수신버퍼 / 송신레지스터 xxxx xxxx uuuu uuuu 93h SSPADD 동기시리얼포트 (I 2 C 모드 ) 어드레스레지스터 0000 0000 0000 0000 14h SSPCON WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM1 SSPM0 0000 0000 0000 0000 94h SSPSTAT SMP (2) CKE (2) D/A P S R/W UA BF 0000 0000 0000 0000 87h TRISC 포트 C 방향설정레지스터 1111 1111 1111 1111 범례 : x = 알수없음, u = 변하지않음, - = 정의되지않았고항상 0 으로읽힘. 빗금친부분은 SSP 모듈의 I 2 C 모드에서 는사용되지않음 노트 1: PSPIE 와 PSPIF 비트들은 PIC16CR73/76 에서는예약되어있음 ; 항상 0 을유지함. 2: I 2 C 모드에서이비트들은클리어되어야한다. DS21993A_KR- 페이지 68 2006 마이크로칩테크놀로지

10.0 유니버셜동기비동기수신기송신기모듈 (USART) 유니버셜동기비동기수신기송신기 (USART) 모듈은두개의시리얼 I/O 모듈중의하나이다. (USART 는직렬커뮤니케이션인터페이스또는 SCI 라고부르기도한다 ) USART 모듈은 CRT 터미널, 퍼스널컴퓨터와같은주변디바이스와통신할수있는전이중비동기시스템으로사용하거나또는 A/D,D/A 적분회로, 시리얼 EEPROM 등과같은주변디바이스와통신할수있는반이중동기시스템으로구성가능하다. USART 는다음과같은모드로구성가능하다 : 비동기 ( 전이중 ) 동기 마스터 ( 반이중 ) 동기 슬레이브 ( 반이중 ) RC6/TX/CK 핀과 RC7/RX/DT 핀을 USART 모듈핀으로사용하기위해서는 SPEN (RCSTA<7>) 과 TRISC<7:6> 비트를셋트하여야한다. 레지스터 10-1: TXSTA: 송신기상태및제어 ( 어드레스 98h) R/W-0 R/W-0 R/W-0 R/W-0 U-0 R/W-0 R-1 R/W-0 CSRC TX9 TXEN SYNC BRGH TRMT TX9D 비트 7 비트 0 범례 : R = 읽기가능비트 W = 쓰기가능비트 U = 정의되지않은비트, 항상 0 으로읽힘 -n = POR 에서의값 1 = 비트가셋트됨 0 = 비트가클리어됨 x = 알수없는비트값 비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0 CSRC: 클럭소스선택비트비동기모드 : 사용되지않음동기모드 : 1 = 마스터모드 (BRG 로부터내부적으로클럭이발생됨 ) 0 = 슬레이브모드 ( 외부소스로부터클럭을받음 ) TX9: 9 비트송신인에이블비트 1 = 9 비트송신모드가선택됨 0 = 8 비트송신모드가선택됨 TXEN: 송신모듈인에이블비트 1 = 송신모듈이인에이블됨 0 = 송신모듈이디제이블됨 Note: 동기모드에서 SREN/CREN 이 TXEN 보다우선순위가높다 SYNC: USART 모드선택비트 1 = 동기모드 0 = 비동기모드 정의되지않았음 : 항상 0 으로읽힘 BRGH: 고속보 - 레이트선택비트비동기모드 : 1 = 고속모드 0 = 저속모드동기모드 : 사용되지않음 TRMT: 송신쉬프트레지스터상태비트 1 = TSR 이비었음 0 = TSR 이비어있지않음 TX9D: 송신데이터의 9 번째비트패리티비트로사용될수있다 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 69

레지스터 10-2: RCSTA: 수신기상태및제어 ( 어드레스 18h) R/W-0 R/W-0 R/W-0 R/W-0 U-0 R-0 R-0 R-x SPEN RX9 SREN CREN FERR OERR RX9D 비트 7 비트 0 범례 : R = 읽기가능비트 W = 쓰기가능비트 U = 정의되지않은비트, 항상 0 으로읽힘 -n = POR 에서의값 1 = 비트가셋트됨 0 = 비트가클리어됨 x = 알수없는비트값 비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0 SPEN: 시리얼포트인에이블비트 1 = 시리얼포트가인에이블됨 ( RC7/RX/DT 핀과 RC6/TX/CK 핀이시리얼포트핀으로할당됨 ) 0 = 시리얼포트가디제이블됨 RX9: 9 비트수신인에이블비트 1 = 9 비트수신을선택함 0 = 8 비트수신을선택함 SREN: 싱글워드수신기능인에이블비트비동기모드 : 사용되지않음동기모드 마스터 : 1 = 싱글워드수신기능이인에이블된다 0 = 싱글워드수신기능이디제이블된다이비트는수신이완료되면클리어된다동기모드 슬레이브 : 사용되지않음 CREN: 연속워드수신기능인에이블비트비동기모드 : 1 = 연속워드수신기능이인에이블된다 0 = 연속워드수신기능이디제이블된다동기모드 : 1 = CREN 이클리어될때까지연속워드수신기능이인에이블된다 (CREN 이 SREN 을우선한다 ) 0 = 연속워드수신기능이디제이블된다 정의되지않았음 : 항상 0 으로읽힘 FERR: 프레임에러비트 1 = 프레임에러발생 (RCREG 를읽음으로서업데이트되며다음유효한데이터를수신가능함 ) 0 = 프레임에러가발생되지않았다 OERR: 오버 - 런에러비트 1 = 오버 - 런에러가발생하였다 (CREN 비트를클리어함으로써클리어될수있다 ) 0 = 오버 - 런에러가발생되지않았다 RX9D: 수신된 9 번째데이터패리티비트일수있다 ( 패리티는펌 - 웨어에의하여계산되어야한다 ) DS21993A_KR- 페이지 70 2006 마이크로칩테크놀로지

10.1 USART 보 - 레이트발생기 (BRG) BRG 는 USART 모듈의동기모드및비동기모드에서사용가능하다. 이것은 8 비트보 - 레이트발생기로되어있다. SPBRG 레지스터는자유롭게구동되는 8 비트타이머의기간을제어한다. 비동기모드에서는 BRGH (TXSTA<2>) 비트를이용하여보-레이트를제어하지만동기모드에서 BRGH 비트는무시된다. 테이블 10-1 은다른 USART 모드의보 - 레이트계산을위한공식이다. 요구되는보 - 레이트와오실레이터 FOSC 를가지고테이블 10-1 을이용하여계산하면정수의 SPBRG 값을계산가능하다. 또한이것으로부터보 - 레이트에러율또한계산할수있다. 요구되는보-레이트클럭이낮을지라도고속보-레이트 (BRGH = 1) 공식을사용하는것이유리하다. 왜냐하면 FOSC/(16(X + 1)) 공식이어떤경우에는보 - 레이트에러를줄일수있기때문이다. 새로운값을 SPBRG 레지스터에쓰면 BRG 타이머값은리셋 ( 또는클리어 ) 된다. 이것은먼저값이오버플로우하기전에새로운 BRG 보 - 레이트가적용된다는것을의미한다. 10.1.1 샘플링 데이터는현재 RX 핀에하이또는로우레벨이있는지를판단하기위하여주요검출회로를이용하여 RC7/ RX/DT 핀을 3 번샘플링된다. 테이블 10-1: 보 - 레이트공식 싱크 BRGH = 0 ( 저속 ) BRGH = 1 ( 고속 ) 0 1 X = SPBRG 레지스터의값 (0 에서 255) ( 비동기 ) 보 - 레이트 = FOSC/(64(X+1)) ( 동기 ) 보 - 레이트 = FOSC/(4(X+1)) 보 - 레이트 = FOSC/(16(X+1)) 존재하지않음 테이블 10-2: 보 - 레이트발생기와관련된레지스터요약 어드레스이름비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0 POR,BOR 다른모든리에서의값셋에서의값 98h TXSTA CSRC TX9 TXEN SYNC BRGH TRMT TX9D 0000-010 0000-010 18h RCSTA SPEN RX9 SREN CREN FERR OERR RX9D 0000-00x 0000-00x 99h SPBRG 보 - 레이트발생기레지스터 0000 0000 0000 0000 범례 : x = 알수없음, u = 변하지않음, - = 정의되지않았음, 항상 0 으로읽힘. 빗금친부분은 BRG 부분에서사용되 지않음. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 71

테이블 10-3: 비동기모드에서의보 - 레이트 (BRGH = 0) 보 - 레이트 보레이트 FOSC = 20 MHz FOSC = 16 MHz FOSC = 10 MHz % 에러 SPBRG 값 (10 진수 ) 보레이트 % 에러 SPBRG 값 ( 십진수 ) 보레이트 % 에러 SPBRG 값 ( 십진수 ) 1200 1,221 1.73% 255 1,202 0.16% 207 1,202 0.16% 129 2400 2,404 0.16% 129 2,404 0.16% 103 2,404 0.16% 64 9600 9,470-1.36% 32 9,615 0.16% 25 9,766 1.73% 15 19,200 19,531 1.73% 15 19,231 0.16% 12 19,531 1.73% 7 38,400 39,063 1.73% 7 35,714-6.99% 6 39,063 1.73% 3 57,600 62,500 8.51% 4 62,500 8.51% 3 52,083-9.58% 2 76,800 78,125 1.73% 3 83,333 8.51% 2 78,125 1.73% 1 96,000 104,167 8.51% 2 83,333-13.19% 2 78,125-18.62% 1 115,200 104,167-9.58% 2 125,000 8.51% 1 78,125-32.18% 1 250,000 312,500 25.00% 0 250,000 0.00% 0 156,250-37.50% 0 보 - 레이트 보레이트 FOSC = 4 MHz FOSC = 3.6864 MHz FOSC = 3.579545 MHz % 에러 SPBRG 값 ( 십진수 ) 보레이트 % 에러 SPBRG VALUE ( 십진수 ) 보레이트 % 에러 SPBRG VALUE ( 십진수 ) 300 300 0.16% 207 300 0.00% 191 301 0.23% 185 1200 1,202 0.16% 51 1,200 0.00% 47 1,190-0.83% 46 2400 2,404 0.16% 25 2,400 0.00% 23 2,432 1.32% 22 9600 8,929-6.99% 6 9,600 0.00% 5 9,322-2.90% 5 19,200 20,833 8.51% 2 19,200 0.00% 2 18,643-2.90% 2 38,400 31,250-18.62% 1 28,800-25.00% 1 27,965-27.17% 1 57,600 62,500 8.51% 0 57,600 0.00% 0 55,930-2.90% 0 76,800 62,500-18.62% 0 테이블 10-4: 비동기모드에서의보 - 레이트 (BRGH = 1) 보 - 레이트 보레이트 FOSC = 20 MHz FOSC = 16 MHz FOSC = 10 MHz % 에러 SPBRG 값 ( 십진수 ) 보레이트 % 에러 SPBRG 값 ( 십진수 ) 보레이트 % 에러 SPBRG 값 ( 십진수 ) 2400 2,441 1.73% 255 9600 9,615 0.16% 129 9,615 0.16% 103 9,615 0.16% 64 19,200 19,231 0.16% 64 19,231 0.16% 51 18,939-1.36% 32 38,400 37,879-1.36% 32 38,462 0.16% 25 39,063 1.73% 15 57,600 56,818-1.36% 21 58,824 2.12% 16 56,818-1.36% 10 76,800 78,125 1.73% 15 76,923 0.16% 12 78,125 1.73% 7 96,000 96,154 0.16% 12 100,000 4.17% 9 89,286-6.99% 6 115,200 113,636-1.36% 10 111,111-3.55% 8 125,000 8.51% 4 250,000 250,000 0.00% 4 250,000 0.00% 3 208,333-16.67% 2 300,000 312,500 4.17% 3 333,333 11.11% 2 312,500 4.17% 1 보 - 레이트 (K) 보레이트 FOSC = 4 MHz FOSC = 3.6864 MHz FOSC = 3.579545 MHz % 에러 SPBRG 값 ( 십진수 ) 보레이트 % 에러 SPBRG 값 ( 십진수 ) 보레이트 % 에러 SPBRG 값 ( 십진수 ) 1200 1,202 0.16% 207 1,200 0.00% 191 1,203 0.23% 185 2400 2,404 0.16% 103 2,400 0.00% 95 2,406 0.23% 92 9600 9,615 0.16% 25 9,600 0.00% 23 9,727 1.32% 22 19,200 19,231 0.16% 12 19,200 0.00% 11 18,643-2.90% 11 38,400 35,714-6.99% 6 38,400 0.00% 5 37,287-2.90% 5 57,600 62,500 8.51% 3 57,600 0.00% 3 55,930-2.90% 3 76,800 83,333 8.51% 2 76,800 0.00% 2 74,574-2.90% 2 96,000 83,333-13.19% 2 115,200 20.00% 1 111,861 16.52% 1 115,200 125,000 8.51% 1 115,200 0.00% 1 111,861-2.90% 1 250,000 250,000 0.00% 0 230,400-7.84% 0 223,722-10.51% 0 DS21993A_KR- 페이지 72 2006 마이크로칩테크놀로지

10.2 USART 비동기모드 이모드에서 USART 는표준 NRZ(non-return-to-zero) 포멧 (1 시작비트,8 또는 9 데이터비트, 1 멈춤비트 ) 을이용한다. 가장일반적인데이터형태는 8 비트이다. 칩에내장된 8 비트보 - 레이트발생기는오실레이터로부터표준보 - 레이트주파수를생성하는데사용되어진다. USART 송, 수신은낮은비트부터먼저전송되거나수신된다. USART 의송신기와수신기는서로독립된모듈이지만같은보 - 레이터와데이터포멧을사용한다. 보 - 레이트발생기는 BRGH (TXSTA<2>) 비트에의해비트쉬프트레이트의 x16 또는 x64 의클럭을만들어낸다. 패리티는하드웨어적으로는지원이되지않고소프트웨어적으로구현시켜야한다 ( 아홉번째데이터비트로저장됨 ). 비동기모드는슬립모드동안에는동작되지않는다. 비동기모드는 SYNC (TXSTA<4>) 비트를 0 으로클리어함으로써선택된다. USART 비동기모듈은다음의중요한요소로구성되어있다 : 보 - 레이트발생기 셈플일회로 비동기송신모듈 비동기수신모듈 10.2.1 USART 비동기송신기 USART 송신기블럭다이어그램은그림 10-1 에보여준다. 송신기의가장중요한부분은전송 ( 직렬 ) 쉬프트레지스터 (TSR) 이다. 쉬프트레지스터는읽기 / 쓰기가가능한 TXREG 레지스터로부터데이터를얻는다. 소프트웨어에서는 TXREG 레지스터로데이터를로드한다. TSR 레지스터는이전전송에서스톱비트가전송되기이전에는새로운데이터를로드하지않는다. 스톱비트가전송되자마자 TSR 은 TXREG 레지스터로부터새로운데이터를가져온다 ( 만약가능하다면 ). TXREG 레지스터가 TSR 레지스터로새로운데이터를전송하였다면 TXREG 는비어있는상태가되고하나의명령어사이클이후에인터럽트요구플래그인 TXIF (PIR1<4>) 비트와 TRMT (TXSTA<1>) 비트가 1 로셋트된다. TXIF 인터럽트는 TXIE (PIE1<4>) 비트의셋팅에의하여인에이블 / 디제이블될수있다. 인터럽트요구플래그인 TXIF 비트는 TXIE 비트의상태와상관없이셋트되어지고그비트는소프트웨어로클리어시킬수없다. TXIF 비트는오직새로운데이터가 TXREG 레지스터로로드되어지는경우에한해서하드웨어적으로클리어가된다. TXIF 플래그비트는 TXREG 레지스터의현재상태를보여주고 TRMT (TXSTA<1>) 비트는 TSR 레지스터의현재상태를보여주고있다. TRMT 상태비트는읽기전용비트이며그비트는 TSR 레지스터가비어진이후하나의명령어사이클이후에 1 로셋트가되며새로운데이터가 TSR 레지스터로로드된이후하나의명령사이클이후에 0 으로클리어가된다. 이비트에관련된인터럽트로직이없기때문에사용자는 TSR 레지스터가비어있는지를판단하기위해서는이비트를폴 - 링하여체크하여야만한다. 노트 1: TSR 레지스터는데이터메모리맵상에존재하지않기때문에사용자가접근할수가없다. 2: 인에이블비트인 TXEN 비트가셋트되었을때인터럽트요구플래그인 TXIF 비트가셋트된다. TXIF 비트는 TXREG 에새로운데이터가로딩되었을때클리어된다. 전송은 TXEN (TXSTA<5>) 비트를셋트하는것에의하여인에이블되지만실제의전송은 TXREG 레지스터에새로운데이터가로드될때까지와보 - 레이트발생기 (BRG) 가쉬프트클럭을만들어낼때까지발생하지않는다 ( 그림 10-2). 전송은 TXREG 에새로운값을로딩한후에 TXEN 비트를인에이블시키면시작되어진다. 일반적으로전송이처음시작되었을때 TSR 은비어있는상태이므로데이터를 TXREG 에로드하는순간 TSR 레지스터로전송이되므로 TXREG 는다시비어있게된다. 그래서 back-to-back 전송이가능하게되는것이다 ( 그림 10-3). 송신하는도중에 TXEN 비트를클리어시키면전송이취소되고송신기모듈이리셋이되며 RC6/TX/CK 은하이 - 임피던스상태가된다. 9 비트송신을하려면 TX9 (TXSTA<6>) 비트를셋트함과동시에 9 번째에해당되는데이터를 TX9D (TXSTA<0>) 비트에써야만한다. 9 번째비트는 TXREG 레지스터에 8 비트를쓰기이전에써주어야만한다. 왜냐하면 TXREG 에데이터를쓰는즉시 TSR 레지스터로전송이일어날수있기때문이다 ( 만약 TSR 레지스터가비어있다면 ). 그러한경우에엉뚱한 9 번째데이터비트가 TSR 레지스터에로드될수있다. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 73

그림 10-1: USART 송신블럭다이어그램 데이터버스 TXIF TXIE 인터럽트 TXREG 레지스터 8 상위 하위 (8) 0 TSR 레지스터 핀버퍼및제어 RC6/TX/CK 핀 TXEN 보 - 레이트클럭 TRMT SPEN SPBRG 보 - 레이트발생기 TX9D TX9 다음은비동기전송을하기위한셋업순서이다 : 1. 적당한보 - 레이트설정을위하여 SPBRG 레지스터를초기화시킨다. 만약고속보 - 레이트가필요하다면 BRGH 비트를셋트시킨다 ( 섹션 10.1 USART 보 - 레이트발생기 (BRG) 를참조할것 ). 2. SYNC 비트를클리어시키고 SPEN 비트를셋트시킴으로써비동기직렬포트를인에이블시킨다. 3. 만약인터럽트가요구된다면 TXIE 비트를셋트시킨다. 4. 만약 9 비트전송이요구된다면 TX9 비트를셋트시킨다. 5. TXEN 비트를셋트시켜전송을인에이블시킨다. 그것은또한 TXIF 비트를셋트시킬것이다. 6. 만약 9 비트전송이선택된다면 9 번째비트를 TX9D 비트에로드시킨다. 7. 데이터를 TXREG 레지스터에로드시킨다. ( 송신이시작됨 ). 8. 만약인터럽트를사용한다면 INTCON 레지스터의 GIE 비트와 PEIE 비트를확인하여야한다. 그림 10-2: 비동기마스터전송 TXREG 로라이팅 BRG 출력 ( 쉬프트클럭 ) 워드 1 RC6/TX/CK ( 핀 ) TXIF 비트 ( 송신버퍼레지스터상태체크플래그 ) 시작비트 비트 0 비트 1 비트 7/8 워드 1 멈춤비트 TRMT 비트 (TSR 상태체크플래그 ) 워드 1 송신쉬프트레지스터 DS21993A_KR- 페이지 74 2006 마이크로칩테크놀로지

그림 10-3: TXREG 로라이팅 BRG 출력 ( 쉬프트클럭 ) RC6/TX/CK ( 핀 ) TXIF 비트 ( 인터럽트플래그 ) 비동기마스터전송 (BACK-TO-BACK) 워드 1 워드 2 시작비트 비트 0 비트 1 비트 7/8 멈춤비트 시작비트 비트 0 워드 1 워드 2 TRMT 비트 (TSR 상태체크플래그 ) 워드 1 워드 2 송신쉬프트레지스터송신쉬프트레지스터 노트 : 이타이밍다이어그램은두개의연속적인전송을보여주고있다. 테이블 10-5: 비동기전송과관련이되는레지스터요약 어드레스이름비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0 0Bh, 8Bh, 10Bh,18Bh POR,BOR 상태에서의값 다른모든리셋에서의값 INTCON GIE PEIE TMR0IE INTE RBIE TMR0IF INTF RBIF 0000 000x 0000 000u 0Ch PIR1 PSPIF (1) ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 0000 0000 0000 0000 18h RCSTA SPEN RX9 SREN CREN FERR OERR RX9D 0000-00x 0000-00x 19h TXREG USART 송신데이터레지스터 0000 0000 0000 0000 8Ch PIE1 PSPIE (1) ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000 98h TXSTA CSRC TX9 TXEN SYNC BRGH TRMT TX9D 0000-010 0000-010 99h SPBRG 보 - 레이트발생기레지스터 0000 0000 0000 0000 범례 : x = 알수없음, - = 정의되지않았음. 항상 0 으로읽힘. 빗금친부분은비동기송신에서는사용되지않음. 노트 1: PSPIE 와 PSPIF 는 PIC16CR73/76 에서는예약되어있음 ; 항상이비트들은클리어상태를유지함. 10.2.2 USART 비동기수신기 수신기블럭다이어그램이그림 10-4 에나타나있다. RC7/RX/DT 핀으로부터들어오는데이터는리커버리블럭에의해서드라이버된다. 데이터리커버리블럭은실제보 - 레이트보다 x16 배높은스피드로쉬프트동작을하는반면메인수신시리얼쉬프터동작은비트레이트또는 FOSC 로구동되고있다. 비동기모드가선택되어졌다면수신은 CREN (RCSTA<4>) 비트를셋트하는것에의하여인에이블된다. 수신기의핵심은수신 ( 시리얼 ) 쉬프트레지스터 (RSR) 이다. 멈춤비트가검출된이후에 RSR 에수신된데이터는 RCREG 레지스터로전송이된다 ( 만약비어있다면 ). 전송이완료되면 RCIF (PIR1<5>) 비트가셋트된다. 실제인터럽트는 RCIE (PIE1<5>) 비트에의해인에이블또는디제이블될수있다. RCIF 비트는하드웨어에의해서만클리어되는읽기전용비트이다. RCREG 를읽었을때이비트는자동으로클리어되고 RCREG 는비어있는상태로된다. RCREG 레지스터는더블버퍼레지스터이다 ( 즉두개의 FIFO 의구조를가진이중버퍼이다 ). 수신된두바이트의데이터가 RCREG FIFO 레지스터로전송이되는것이가능하며세번째바이트가 RSR 레지스터로들어올수있다. 3 번째바이트의멈춤비트가검출된상황에서도 RCREG 레지스터에데이터가남아있으면오버런에러 OERR (RCSTA<1>) 비트가셋트되고 RSR 의데이터는잃어버리게된다. RCREG 는 FIFO 에있는두바이트를회수하기위하여두번연속으로읽을수있 다. OERR 비트는소프트웨어에서클리어시켜야만하는데이것은수신로직을리셋시키는것에의하여가능하다 (CREN 비트를클리어한후에다시셋트시킴 ). 만약 OERR 비트가셋트되면 RSR 레지스터로부터 RCREG 레지스터로의데이터전달은금지되어지고더이상데이터의수신은불가능하여진다. 그러므로만약 OERR 비트가셋트되었다면 OERR 비트를클리어시키는것이필수적이라할수있다. 또한멈춤비트가 0 으로클리어된상태로검출되었다면프레임에러비트인 FERR (RCSTA<2>) 비트가셋트된다. FERR 비트와 9 번째수신비트는수신데이터와같은방법으로버퍼에저장된다. RCREG 레지스터를읽으면 RX9D 와 FERR 비트는새로운값이로드될것이다. 그러므로이전의 FERR 비트와 RX9D 정보를잃어버리지않기위하여 RCREG 레지스터를읽기전에 RCSTA 레지스터를체크할필요가있다. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 75

그림 10-4: USART 수신기블럭다이어그램 x64 보 - 레이트클럭 CREN OERR FERR FOSC SPBRG 보 - 레이트발생기 64 or 16 상위 RSR 레지스터하위멈춤 (8) 7 1 0 시작 RC7/RX/DT 핀버퍼및제어 데이터복원 RX9 SPEN RX9D RCREG 레지스터 FIFO 인터럽트 RCIF RCIE 8 데이터버스 그림 10-5: RX ( 핀 ) 수신쉬프트레지스터수신버퍼레지스터 수신버퍼레지스터 RCREG 를읽음 RCIF ( 인터럽트플래그 ) OERR 비트 CREN 비동기수신 시작시작시작비트비트 0 비트 1 비트 7/8 멈춤비트비트 0 비트 7/8 멈춤비트비트 7/8 비트비트 워드 1 RCREG 워드 2 RCREG 멈춤비트 노트 : 이도식도는 RX 입력핀에 3 바이트가입력되는것을볼수있다.3 바이트입력이후에 RCREG ( 수신버퍼 ) 를읽으면 OERR ( 오버런 ) 비트가셋트된다. 오버런에러는사용자펌 - 웨어에문제가있음을가르켜주는비트이다. 다음은비동기수신을위한셋팅방법이다 : 1. 적당한보 - 레이트설정을위하여 SPBRG 레지스터를초기화시킨다. 만약고속보 - 레이트가필요하다면 BRGH 비트를셋트시킨다 ( 섹션 10.1 USART 보 - 레이트발생기 (BRG) 를참조할것 ). 2. SYNC 비트를클리어시키고 SPEN 비트를셋트시킴으로써비동기직렬포트를인에이블시킨다. 3. 만약인터럽트가요구된다면 RCIE 비트를셋트시킨다. 4. 만약 9 비트수신이요구된다면 RX9 비트를셋트시킨다. 5. CREN 비트를셋트하여수신모듈을인에이블시킨다. 6. 수신이완료되었을때 RCIF 비트는셋트되고만약 RCIE 비트가인에이블되어있다면인터럽트가발생될것이다. 7. 9 번째비트값 (9 비트수신모드인경우 ) 과수신도중에에러가발생되었는지를체크하기위하여 RCSTA 레지스터를읽는다. 8. 수신된 8 비트값을읽기위하여 RCREG 레지스터를읽는다. 9. 만약에러가발생하였다면 CREN 비트를클리어시킴으로써에러를클리어시킨다. 10. 만약인터럽트를사용한다면 INTCON 레지스터의 GIE 비트와 PEIE 비트를확인하여야한다. DS21993A_KR- 페이지 76 2006 마이크로칩테크놀로지

테이블 10-6: 비동기수신과관련이되는레지스터요약 어드레스 s 이름비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0 POR,BOR 상태에서의값 다른모든리셋에서의값 0Bh, 8Bh, 10Bh,18Bh INTCON GIE PEIE TMR0IE INTE RBIE TMR0IF INTF RBIF 0000 000x 0000 000u 0Ch PIR1 PSPIF (1) ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 0000 0000 0000 0000 18h RCSTA SPEN RX9 SREN CREN FERR OERR RX9D 0000-00x 0000-00x 1Ah RCREG USART 수신레지스터 0000 0000 0000 0000 8Ch PIE1 PSPIE (1) ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000 98h TXSTA CSRC TX9 TXEN SYNC BRGH TRMT TX9D 0000-010 0000-010 99h SPBRG 보 - 레이트발생기레지스터 0000 0000 0000 0000 범례 : x = 알수없음, - = 정의되지않았음. 항상 0 으로읽힘. 빗금친부분은비동기수신에서는사용되지않음. 노트 1: PSPIE 와 PSPIF 는 PIC16CR73/76 에서는예약되어있음 ; 항상이비트들은클리어상태를유지함. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 77

10.3 USART 동기마스터모드 동기마스터모드에서는반이중전송만가능하다 ( 즉송신과수신이동시에일어나지는않는다 ). 송신이진행중일경우는수신은허용되지않으며그반대의경우도성립된다. 동기모드는 SYNC (TXSTA<4>) 비트를셋트시키면인에이블된다. 게다가 RC6/TX/CK 과 RC7/RX/DT I/O 핀을 CK ( 클럭 ) 과 DT ( 데이터 ) 라인으로할당시키기위하여 SPEN (RCSTA<7>) 비트를인에이블시킨다. 마스터모드는프로세서가 CK 라인에마스터클럭을전송시킨다. 마스터모드는 CSRC (TXSTA<7>) 비트를셋트하는것에의하여들어갈수있다. 10.3.1 USART 동기마스터전송 USART 송신기블럭다이어그램은그림 10-1 에보여준다. 송신기의가장중요한부분은전송 ( 직렬 ) 쉬프트레지스터 (TSR) 이다. 쉬프트레지스터는읽기 / 쓰기가가능한 TXREG 레지스터로부터데이터를얻는다. 소프트웨어에서는 TXREG 레지스터로데이터를로드한다. TSR 레지스터는이전전송에서스톱비트가전송되기이전에는새로운데이터를로드하지않는다. 스톱비트가전송되자마자 TSR 은 TXREG 레지스터로부터새로운데이터를가져온다 ( 만약가능하다면 ). TXREG 레지스터가 TSR 레지스터로새로운데이터를전송하였다면 ( 하나의 TCYCLE 동안에발생 ) TXREG 는비어있는상태가되고인터럽트요구플래그인 TXIF (PIR1<4>) 비트가셋트된다. TXIF 인터럽트는 TXIE (PIE1<4>) 비트의셋팅에의하여인에이블 / 디제이블될수있다. 인터럽트요구플래그인 TXIF 비트는 TXIE 비트의상태와상관없이셋트되어지고그비트는소프트웨어로클리어시킬수없다. TXIF 비트는오직새로운데이터가 TXREG 레지스터로로드되어지는경우에한해서하드웨어적으로클리어가된다. TXIF 플래그비트는 TXREG 레지스터의현재상태를보여주고 TRMT (TXSTA<1>) 비트는 TSR 레지스터의현재상태를보여주고있다. TRMT 상태비트는읽기전용비트이며그비트는 TSR 레지스터가비어진이후 1 로셋트가된다. 이비트에관련된인터럽트로직이없기때문에사용자는 TSR 레지스터가비어있는지를판단하기위해서는이비트를폴 - 링하여체크하여야만한다.TSR 레지스터는데이터메모리맵상에존재하지않기때문에사용자가접근할수가없다. 전송은 TXEN (TXSTA<5>) 비트를셋트하는것에의하여인에이블되지만실제의전송은 TXREG 레지스터에새로운데이터가로드될때까지발생하지않는다 ( 그림 10-2). 첫번째데이터비트는 CK 클럭의상승에지에서쉬프트출력된다. 데이터출력은동기클럭의하강에지에서안정적이다 ( 그림 10-6). 또한전송은처음에데이터를 TXREG 에로드시키고 TXEN 비트를셋트함으로써시작된다 ( 그림 10-7). 이방법은저속의보 - 레이트가선택되었을때유리하며이방법을사용하기위해서는 TXEN,CREN,SREN 비트가클리어되어있을때 BRG 비트가리셋상태를유지하여야한다. TXEN 비트를인에이블시키면 BRG 가동작시작되고즉시쉬프트클럭을발생시킨다. 일반적으로전송이처음시작되었을때 TSR 은비어있는상태이므로데이터를 TXREG 에로드하는순간 TSR 레지스터로전송이되므로 TXREG 는다시비어있게된다. 그래서 back-to-back 전송이가능하게되는것이다. 송신하는도중에 TXEN 비트를클리어시키면전송이취소되고송신기모듈이리셋이되며 DT 와 CK 핀은하이 - 임피던스상태가된다. 만약전송도중에 CREN 또는 SREN 비트가셋트되면전송은중지가되며 DT 핀은하이임피던스상태가된다 ( 수신상태 ). CK 핀은 CSRC 비트가셋트 ( 내부클럭 ) 되어있다면출력상태를유지할것이다. 그러나송신기로직이핀과분리되어있다할지라도송신기로직이리셋되지않는다. 송신기를리셋시키기위해서는사용자는 TXEN 비트를클리어시켜야한다. 만약 SREN 비트가셋트 ( 싱글워드를송신및수신시인터럽트를발생시키기위하여 ) 되었다면싱글워드를수신한후 SREN 비트는클리어되며 TXEN 비트가셋트되어있는상태라면다시송신상태로들어갈것이다. DT 라인은하이임피던스수신모드에서송신모드로즉시전환되기때문에따라서이것을피하기위해서는 TXEN 비트를클리어시켜야한다. 9 비트송신을하려면 TX9 (TXSTA<6>) 비트를셋트함과동시에 9 번째에해당되는데이터를 TX9D (TXSTA<0>) 비트에써야만한다. 9 번째비트는 TXREG 레지스터에 8 비트를쓰기이전에써주어야만한다. 왜냐하면 TXREG 에데이터를쓰는즉시 TSR 레지스터로전송이일어날수있기때문이다 ( 만약 TSR 레지스터가비어있다면 ). 만약새로운 TX9D 비트값이쓰여지기이전에 TSR 이비어있고 TXREG 레지스터쪽으로데이터가쓰여졌다면 TX9D 의새로운값대신이전값이로드되버린다. 다음은동기마스터전송을하기위한셋업순서이다 : 1. 적당한보 - 레이트설정을위하여 SPBRG 레지스터를초기화시킨다. ( 섹션 10.1 USART 보 - 레이트발생기 (BRG) 를참조할것 ). 2. SYNC,SPEN,CSRC비트를셋트시키면동기마스터직렬포트가인에이블시킨다. 3. 만약인터럽트가요구된다면 TXIE 비트를셋트시킨다. 4. 만약 9 비트전송이요구된다면 TX9 비트를셋트시킨다. 5. TXEN 비트를셋트시켜전송을인에이블시킨다. 6. 만약 9 비트전송이선택된다면 9 번째비트를 TX9D 비트에로드시킨다. 7. 데이터를 TXREG 레지스터에로드시켜송신을시작한다. 8. 만약인터럽트를사용한다면 INTCON 레지스터의 GIE 비트와 PEIE 비트를확인하여야한다. DS21993A_KR- 페이지 78 2006 마이크로칩테크놀로지

그림 10-6: 동기송신 Q1Q2Q3Q4 Q1 Q2Q3Q4Q1Q2Q3 Q4Q1Q2Q3Q4Q1Q2Q3Q4 Q3Q4 Q1Q2Q3Q4Q1Q2Q3Q4 Q1Q2Q3Q4Q1Q2Q3 Q4Q1Q2Q3Q4Q1 Q2Q3Q4 RC7/RX/DT 핀 RC6/TX/CK 핀 TXREG 에라이팅함 TXIF 비트인터럽트플래그 TRMT 비트 TRMT 워드 1 를라이팅 비트 0 비트 1 비트 2 비트 7 bit 0 비트 1 비트 7 워드 1 워드 2 워드 2 를라이팅 TXEN 비트 1 1 노트 : 동기마스터모드 ; SPBRG = 0. 2 개의 8 비트데이터의연속전송. 그림 10-7: 동기전송 (TXEN 비트를통하여 ) RC7/RX/DT 핀 비트 0 비트 1 비트 2 비트 6 비트 7 RC6/TX/CK 핀 TXREG 에라이팅함 TXIF 비트 TRMT 비트 TXEN 비트 테이블 10-7: 동기마스터전송과관련된레지스터요약 어드레스이름비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0 POR,BOR 상태에서의값 다른모든리셋에서의값 0Bh, 8Bh, 10Bh,18Bh INTCON GIE PEIE TMR0IE INTE RBIE TMR0IF INTF RBIF 0000 000x 0000 000u 0Ch PIR1 PSPIF (1) ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 0000 0000 0000 0000 18h RCSTA SPEN RX9 SREN CREN FERR OERR RX9D 0000-00x 0000-00x 19h TXREG USART 송신데이터레지스터 0000 0000 0000 0000 8Ch PIE1 PSPIE (1) ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000 98h TXSTA CSRC TX9 TXEN SYNC BRGH TRMT TX9D 0000-010 0000-010 99h SPBRG 보 - 레이트발생기레지스터 0000 0000 0000 0000 범례 : x = 알수없음, - = 정의되지않았음. 항상 0 으로읽힘. 빗금친부분은동기마스터전송에서는사용되지않음. 노트 1: PSPIE 와 PSPIF 는 PIC16CR73/76 에서는예약되어있음 ; 항상이비트들은클리어상태를유지함. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 79

10.3.2 USART 동기마스터수신 동기모드가선택되었을때수신은 SREN (RCSTA<5>) 비트또는 CREN (RCSTA<4>) 비트를셋트함으로써인에이블된다. RC7/RX/DT 핀으로부터입력되는데이터는클럭의하강에지에서샘플링된다. 만약 SREN 비트가셋트되었다면오직싱글워드만수신이되며 CREN 비트가셋트되었다면연속수신이가능하다. CREN 은 SREN 비트에보다우선순위가높다. 마지막비트가수신된후 RSR 에수신된데이터는 RCREG 레지스터로전송이된다 ( 만약비어있다면 ). 전송이완료되면 RCIF (PIR1<5>) 비트가셋트된다. 실제인터럽트는 RCIE (PIE1<5>) 비트에의해인에이블또는디제이블될수있다. RCIF 비트는하드웨어에의해서만클리어되는읽기전용비트이다. RCREG 를읽었을때이비트는자동으로클리어되고 RCREG 는비어있는상태로된다. RCREG 레지스터는더블버퍼레지스터이다 ( 즉두개의 FIFO 의구조를가진이중버퍼이다 ). 수신된두바이트의데이터가 RCREG FIFO 레지스터로전송이되는것이가능하며세번째바이트가 RSR 레지스터로들어올수있다. 3 번째바이트의마지막비트가수신된상황에서도 RCREG 레지스터에데이터가남아있으면오버런에러 OERR (RCSTA<1>) 비트가셋트되고 RSR 의데이터는잃어버리게된다. RCREG 는 FIFO 에있는두바이트를회수하기위하여두번연속으로읽을수있다.OERR 비트는소프트웨어에서클리어시켜야만한다 (CREN 비트를클리어시킴에의하여 ). 만약 OERR 비트가셋트되면 RSR 레지스터로부터 RCREG 레지스터로의데이터전달은금지되어지므로만약 OERR 비트가셋트되었다면 OERR 비트를클리어시키는것이필수적이라할수있다. 9 번째수신비트는수신데이터와같은방법으로저장되어진다. RCREG 를읽으면새로운값이 RX9D 에로드될것이다. 그러므로사용자는 RX9D 정보를잃지않기위하여 RCREG 레지스터를읽기전에우선 RCSTA 레지스터를읽어야한다. 다음은동기마스터수신을위한셋팅방법이다 : 1. 적당한보 - 레이트설정을위하여 SPBRG 레지스터를초기화시킴 ( 섹션 10.1 USART 보- 레이트발생기 (BRG) 를참조할것 ). 2. SYNC, SPEN,CSRC 비트를셋트시킴으로써동기마스터직렬포트를인에이블시킴 3. CREN,SREN 비트가클리어되었는지확인함 4. 인터럽트가요구된다면 RCIE 비트를셋트시킴 5. 9 비트수신이요구된다면 RX9 를셋트시킴 6. 만약단한번의수신이요구된다면 SREN 비트를, 지속적인수신이요구된다면 CREN 비트를셋트시킴 7. RCIF 비트는수신이완료되면셋트되고 RCIE 비트가셋트되어있다면인터럽트가발생됨 8. 9 번째비트와수신도중에러가발생한지를체크하기위하여 RCSTA 레지스터를읽어본다 9. RCREG 레지스터를통해 8 비트데이터를읽음 10. 에러가발생하였다면 CREN 비트를클리어함 11. 만약인터럽트를사용한다면 INTCON 레지스터의 GIE 비트와 PEIE 비트를확인하여야함 그림 10-8: 동기수신 ( 마스터모드, SREN) Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 RC7/RX/DT 핀 비트 0 비트 1 비트 2 비트 3 비트 4 비트 5 비트 6 비트 7 RC6/TX/CK 핀 SREN 비트에라이팅을함 SREN 비트 CREN 비트 RCIF 비트 ( 인터럽트 ) RCREG 를읽음 0 0 노트 : 위의타이밍도는 SREN = 1 과 BRG = 0 를가진동기마스터모드의예이다. DS21993A_KR- 페이지 80 2006 마이크로칩테크놀로지

테이블 10-8: 동기마스터수신과관련된레지스터요약 어드레스이름비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0 POR,BOR 상태에서의값 다른모든리셋에서의값 0Bh, 8Bh, 10Bh,18Bh INTCON GIE PEIE TMR0IE INTE RBIE TMR0IF INTF RBIF 0000 000x 0000 000u 0Ch PIR1 PSPIF (1) ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 0000 0000 0000 0000 18h RCSTA SPEN RX9 SREN CREN FERR OERR RX9D 0000-00x 0000-00x 1Ah RCREG USART 수신데이터레지스터 0000 0000 0000 0000 8Ch PIE1 PSPIE (1) ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000 98h TXSTA CSRC TX9 TXEN SYNC BRGH TRMT TX9D 0000-010 0000-010 99h SPBRG 보 - 레이트발생기레지스터 0000 0000 0000 0000 범례 : x = 알수없음, - = 정의되지않았음. 항상 0 으로읽힘. 빗금친부분은동기마스터수신에서는사용되지않음. 노트 1: PSPIE 와 PSPIF 는 PIC16CR73/76 에서는예약되어있음 ; 항상이비트들은클리어상태를유지함. 10.4 동기슬레이브모드 동기슬레이브모드는외부로부터 RC6/TX/CK 핀으로쉬프트클럭이공급된다는사실에서마스터모드와는다르다 ( 마스터모드에서는클럭이내부적으로공급됨 ). 이것은슬립모드에서디바이스가전송또는수신하는것이가능하다는것을의미한다. 슬레이브모드는 CSRC (TXSTA<7>) 비트를클리어함으로써진입가능하다. 10.4.1 USART 동기슬레이브송신 동기마스터모드와슬레이브모드의동작은슬립모드의경우를제외하면동일하다. 만약 2 개의워드가 TXREG 레지스터에쓰여지고슬립명령이실행되면다음과같은일이발생될것이다 : a) 첫번째워드는즉시 TSR 레지스터로전달되며마스터디바이스가 CK 라인에클럭을공급하면전송을시작할것이다. b) 두번째워드는 TXREG 레지스터에남아있다. c) TXIF 비트는셋트되지않는다. d) 첫번째워드가 TSR 을통하여완전히출력되면 TXREG 의두번째워드가 TSR 로전송이되며이때 TXIF 비트가셋트될것이다. e) 만약 TXIE 비트가셋트되어있다면인터럽트는디바이스를슬립모드로부터깨우게되며만약글로벌인터럽트가인에이블되어있다면프로그램을인터럽트벡터어드레스 (0004h) 로점프시킬것이다. 다음은동기슬레이브송신을위한셋팅방법이다 : 1. SYNC,SPEN 비트를셋트하고 CSRC 비트를클리어시킴으로서동기슬레이브시리얼포트를인에이블시킨다. 2. CREN 과 SREN 비트를클리어시킨다. 3. 만약인터럽트가요구된다면 TXIE 비트를셋트시킨다. 4. 만약 9 비트전송이요구된다면 TX9 비트를셋트시킨다. 5. TXEN 비트를셋트시켜전송을인에이블시킨다. 6. 만약 9 비트전송이선택된다면 9 번째비트를 TX9D 비트에로드시킨다. 7. 데이터를 TXREG 레지스터에로드시켜송신을시작한다. 8. 만약인터럽트를사용한다면 INTCON 레지스터의 GIE 비트와 PEIE 비트를확인하여야한다. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 81

테이블 10-9: 동기슬레이브송신과관련된레지스터요약 어드레스이름비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0 POR,BOR 상태에서의값 다른모든리셋에서의값 0Bh, 8Bh, 10Bh,18Bh INTCON GIE PEIE TMR0IE INTE RBIE TMR0IF INTF RBIF 0000 000x 0000 000u 0Ch PIR1 PSPIF (1) ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 0000 0000 0000 0000 18h RCSTA SPEN RX9 SREN CREN FERR OERR RX9D 0000 000x 0000 000x 19h TXREG USART 송신데이터레지스터 0000 0000 0000 0000 8Ch PIE1 PSPIE (1) ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000 98h TXSTA CSRC TX9 TXEN SYNC BRGH TRMT TX9D 0000-010 0000-010 99h SPBRG 보 - 레이트발생기레지스터 0000 0000 0000 0000 범례 : x = 알수없음, - = 정의되지않았음. 항상 0 으로읽힘. 빗금친부분은동기슬레이브송신에서는사용되지않음. 노트 1: PSPIE 와 PSPIF 는 PIC16CR73/76 에서는예약되어있음 ; 항상이비트들은클리어상태를유지함. 10.4.2 USART 동기슬레이브수신 동기마스터모드와슬레이브모드의동작은슬립모드의경우를제외하면동일하다. 비트 SREN 은슬레이브모드에서는 don t care 이다. 만약 CREN 비트가슬립명령보다먼저인에이블되었다면그때데이터는슬립동안에수신되어질수있다. 데이터를수신하였을때 RSR 은 RCREG 에데이터를전송할것이다. 그리고만약만약 RCIE 비트가셋트되어있다면인터럽트는디바이스를슬립모드로부터깨우게되며만약글로벌인터럽트가인에이블되어있다면프로그램을인터럽트벡터어드레스 (0004h) 로점프시킬것이다. 다음은동기슬레이브수신을위한셋팅방법이다 : 1. SYNC,SPEN 비트를셋트하고 CSRC 비트를클리어시킴으로서동기마스터시리얼포트를인에이블시킨다. 2. 만약인터럽트가요구된다면 RCIE 비트를셋트시킨다. 3. 만약 9 비트수신이요구된다면 RX9 비트를셋트시킨다. 4. CREN 비트를셋트시켜수신을인에이블시킨다. 5. 수신이완료되었을때 RCIF 비트가셋트되고만약 RCIE 비트가인에이블되어있다면인터럽트가발생될것이다. 6. 9 번째비트와수신도중에러가발생한지를체크하기위하여 RCSTA 레지스터를읽어본다. 7. RCREG 레지스터를통해 8 비트데이터를읽음. 8. 에러가발생하였다면 CREN 비트를클리어함. 9. 만약인터럽트를사용한다면 INTCON 레지스터의 GIE 비트와 PEIE 비트를확인하여야한다. 테이블 10-10: 동기슬레이브수신과관련된레지스터요약 어드레스이름비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0 POR,BOR 상태에서의값 다른모든리셋에서의값 0Bh, 8Bh, 10Bh,18Bh INTCON GIE PEIE TMR0IE INTE RBIE TMR0IF INTF RBIF 0000 000x 0000 000u 0Ch PIR1 PSPIF (1) ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 0000 0000 0000 0000 18h RCSTA SPEN RX9 SREN CREN FERR OERR RX9D 0000 000x 0000 000x 1Ah RCREG USART 수신 Receive Data Register 0000 0000 0000 0000 8Ch PIE1 PSPIE (1) ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000 98h TXSTA CSRC TX9 TXEN SYNC BRGH TRMT TX9D 0000-010 0000-010 99h SPBRG 보 - 레이터발생기레지스터 0000 0000 0000 0000 범례 : x = 알수없음, - = 정의되지않았음. 항상 0 으로읽힘. 빗금친부분은동기슬레이브수신에서는사용되지않음. 노트 1: PSPIE 와 PSPIF 는 PIC16CR73/76 에서는예약되어있음 ; 항상이비트들은클리어상태를유지함.. DS21993A_KR- 페이지 82 2006 마이크로칩테크놀로지

11.0 A/D 컨버터모듈 PIC16CR73/76 디바이스는마이컴내부에 5 채널의 8 비트분해능을가진 A/D 컨버터를내장하고있으며 PIC16CR74/77 디바이스는 8 채널의 A/D 컨버터를내장하고있다. A/D 컨버터는아날로그입력값을대응하는 8 비트디지털값으로변환시킨다. 성공적인근사치를발생하는샘플 / 홀드회로의출력은내부 A/D 컨버터모듈로입력된다. 아날로그기준전압은디바이스공급전압 Vdd 또는 RA3/AN3/VREF 핀의전압레벨중하나를소프트웨어에의해서선택가능하다. A/D 컨버터는디바이스가슬립모드에있는동안동작을할수있는독특한기능을내장하고있으며슬립모드에서 A/D 컨버터를동작을시키기위해서사용자는 A/D 컨버젼클럭을반드시내부 RC 오실레이터를선택하여야만한다. A/D 컨버터모듈의제어를위해서다음과같은 3 개의레지스터가필요하다 : A/D 결과레지스터 ((ADRES) A/D 제어레지스터 0 (ADCON0) A/D 제어레지스터 1 ((ADCON1) 레지스터 11-1 에서알수있듯이 ADCON0 레지스터는 A/D 모듈의제어를담당하며레지스터 11-2 에서보듯이 ADCON1 레지스터는각포트핀을아날로그핀으로사용할것인지아니면디지털핀으로사용할것인지를결정하는데사용된다. 따라서각포트핀은아날로그입력 (RA3 핀은기준전압핀으로도사용가능 ) 또는디지털입출력핀으로구성되어질수가있다. A/D 모듈사용에대한좀더자세한사항은 PICmicro 미드 - 레인지 MCU 패밀리참조메뉴얼 (DS33023) 과어플리케이션노트 AN546, Using The Analog-to-Digital Converter (DS00546) 부분을참조하기를바란다. 레지스터 11-1: ADCON0: ( 어드레스 1Fh) R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 U-0 R/W-0 ADCS1 ADCS0 CHS2 CHS1 CHS0 GO/DONE ADON 비트 7 비트 0 범례 : R = 읽기가능비트 W = 쓰기가능비트 U = 정의되지않았음. 항상 0 으로읽힘 -n = POR 상태의값 1 = 비트가셋트됨 0 = 비트가클리어됨 x = 정의되지않았음 비트 7-6 비트 5-3 비트 2 비트 1 비트 0 ADCS1:ADCS0: A/D 컨버젼클럭선택비트 00 = FOSC/2 01 = FOSC/8 10 = FOSC/32 11 = FRC ( 컨버젼클럭은내부 RC 오실레이터로부터생성됨 ) CHS2:CHS0: 아날로그채널선택비트 000 = 채널 0 (RA0/AN0) 001 = 채널 1 (RA1/AN1) 010 = 채널 2 (RA2/AN2) 011 = 채널 3 (RA3/AN3) 100 = 채널 4 (RA5/AN4) 101 = 채널 5 (RE0/AN5) (1) 110 = 채널 6 (RE1/AN6) (1) 111 = 채널 7 (RE2/AN7) (1) GO/DONE: A/D 컨버젼상태비트 If ADON = 1: 1 = A/D 컨버젼이진행중 (A/D 컨버젼시작시이비트를 1 로셋트하여야함 ) 0 =A/D 컨버젼이진행중이아님 (A/D 컨버젼이완료되었을때자동적으로하드웨어에의하여이비트가 0 으로클리어됨 ) 정의되지않았음 : 항상 0 으로읽힘 ADON: A/D 모듈 ON 비트 1 = A/D 컨버터모듈을동작시킴 0 = A/D 컨버터모듈이오프되고동작전류가흐르지않음 Note: A/D 채널 5, 6 그리고 7 은 PIC16CR74/77 디바이스에서만사용가능. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 83

레지스터 11-2: ADCON1: ( 어드레스 1Fh) U-0 U-0 U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 PCFG2 PCFG1 PCFG0 비트 7 비트 0 범례 : R = 읽기가능비트 W = 쓰기가능비트 U = 정의되지않았음. 항상 0 으로읽힘 -n = POR 상태의값 1 = 비트가셋트됨 0 = 비트가클리어됨 x = 정의되지않았음 비트 7-3 비트 2-0 정의되지않았음 : 항상 0 으로읽힘 PCFG2:PCFG0: A/D 포트구성제어비트 PCFG2:PCFG0 RA0 RA1 RA2 RA5 RA3 RE0 (1) RE1 (1) RE2 (1) VREF 000 A A A A A A A A VDD 001 A A A A VREF A A A RA3 010 A A A A A D D D VDD 011 A A A A VREF D D D RA3 100 A A D D A D D D VDD 101 A A D D VREF D D D RA3 11x D D D D D D D D VDD A = 아날로그입력 D = 디지털입출력 노트 1: RE0, RE1 와 RE2 는 PIC16CR74/77 디바이스에서만사용가능. DS21993A_KR- 페이지 84 2006 마이크로칩테크놀로지

A/D 컨버젼을하기위하여다음과같은작동순서를지켜야한다 : 1. A/D 모듈의구성을결정한다 : 아날로그핀, 기준전압그리고디지털 I/O (ADCON1) 를구성 A/D 컨버젼클럭선택 (ADCON0) A/D 모듈을턴 - 온시킴 (ADCON0) 2. A/D 인터럽트를결정한다 ( 필요시 ): ADIF 비트를 0 으로클리어시킴 ADIE 비트를 1 로셋트시킴 PEIE 비트를 1 로셋트시킴 GIE 비트를 1 로셋트시킴 3. A/D 입력채널을선택 (ADCON0) 4. 적당한샘플링시간을기다림 5. A/D 변환을시작 : GO/DONE 비트를 1 로셋트 (ADCON0) 6. 아래와같은두가지방법중하나를사용하여 A/ D 컨버젼이완료될때까지기다림 : 폴링방법으로 GO/DONE 비트가 0 으로클리어될때까지기다림 ( 인터럽트디제이블 ) 또는 A/D 인터럽트가발생될때까지기다림 7. A/D 결과레지스터 (ADRES) 를읽고필요시 ADIF 비트를클리어시킴 8. 다음컨버젼을위해서스탭 3 또는필요시스탭 4 를수행시킴 그림 11-1: A/D 블럭다이어그램 CHS2:CHS0 VIN ( 입력전압 ) 111 110 101 100 011 RE2/AN7 (1) RE1/AN6 (1) RE0/AN5 (1) RA5/AN4 RA3/AN3/VREF A/D 컨버터 010 001 RA2/AN2 RA1/AN1 VDD 000 or 010 or VREF 100 or 11x ( 기준전압 ) 001 or 011 or 101 PCFG2:PCFG0 000 RA0/AN0 노트 1: PIC16CR73/76 에서는적용되지않음. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 85

11.1 A/D 샘플링요구조건 A/D 컨버터는정확성을유지하기위하여충전 / 홀딩용캐패시터 (CHOLD) 가채널입력전압레벨까지충분하게충전할수있도록해주어야한다. 아날로그입력모델은그림 11-2 에보여주고있다. 소스임피던스 (RS) 와내부샘플링스위치임피던스 (RSS) 는캐패시터 CHOLD 충전시간에직접적인영향을미친다. 그림 11-2 에서알수있듯이샘플링스위치임피던스 (RSS) 는디바이스전압 (VDD) 에따라서변화하며소스임피던스 (RS) 는아날로그입력의옵 - 셋전압에영향을미친다 ( 핀누설전류때문 ) 아날로그소스를위하여요구되는최대임피던스는 10 kω 이다. 아날로그입력채널이선택된후에변환을시작하기앞서이러한샘플링시간은반드시유지되어야한다. 최소샘플링요구시간 TACQ 을계산하기위해서는 PICmicro 미드 - 레인지 MCU 패밀리참조메뉴얼 (DS33023) 를참조하기를바란다. 그러나일반적으로 100 C 의온도에서 10 kω 의최대소스임피던스가주어졌다면최소샘플링요구시간 TACQ 는 16 µsec 보다크지는않을것이다. 그림 11-2: 아날로그입력모델 VDD 샘플링스위치 RS ANx VT = 0.6V RIC 1k SS RSS VA CPIN 5 pf VT = 0.6V I 리퀴지 ± 500 na CHOLD = DAC 캐패시턴스 = 51.2 pf VSS Legend: CPIN VT I 리퀴지 RIC SS CHOLD = 입력캐패시턴스 = 스레스홀드전압 = 다양한접합부로인한핀에서의누설전류 = 상호관련된저항성분 = 샘플링스위치 = 샘플 / 홀드캐패시턴스 (DAC 로부터 ) 6V 5V VDD 4V 3V 2V 5 6 7 8 9 10 11 샘플링스위치 (kω) 테이블 11-1: TAD 와최대디바이스동작주파수와의관계 ( 표준디바이스 (C)) AD 클럭소스 (TAD) 최대디바이스주파수 동작 ADCS1:ADCS0 최대 2TOSC 00 1.25 MHz 8TOSC 01 5 MHz 32TOSC 10 20 MHz RC (1, 2, 3) 11 ( 노트 1) 노트 1: RC 소스는일반적으로 4 µs TAD 시간을가지지만 2-6 µs 사이에서변화가능하다. 2: 1 MHz 보다높은주파수를사용하는경우 RC A/D 컨버젼클럭의선택은오직마이컴이 SLEEP 동작중 인경우에만사용할것을추천한다 3: 확장전압디바이스 (LC) 인경우는전기적특성부분을참고하기를바란다. DS21993A_KR- 페이지 86 2006 마이크로칩테크놀로지

11.2 A/D 컨버젼클럭의선택 단위비트에대한 A/D 컨버젼시간은 TAD 로정의된다. 8 비트의 A/D 컨버젼을위해서는 9 TAD 가요구된다. A/D 컨버젼클럭의소스는소프트웨어로선택가능하며 TAD 는아래처럼 4 가지경우에서하나를선택할수있다 : 2 TOSC (FOSC/2) 8 TOSC (FOSC/8) 32 TOSC (FOSC/32) 내부 RC 오실레이터 (2-6 µs) 정확한 A/D 변환을위하여 A/D 변환클럭 (TAD) 은최소 1.6 µs 보다커야만한다. 11.3 아날로그포트핀의구성 ADCON1, TRISA 그리고 TRISE 레지스터를이용하여 A/D 포트핀의동작을제어한다. 아날로그입력으로요구되는포트핀은해당 TRIS 비트를셋트 ( 입력방향 ) 해야만하고만약 TRIS 비트가클리어 ( 출력방향 ) 되었다면디지털출력상태 (VOH 또는 VOL) 가될것이다. CHS2:CHS0 비트와 TRIS 비트의상태와 A/D 동작은서로독립적이다.. 노트 1: 모든핀이아날로그입력채널로정의되어있을때포트레지스터를읽으면 0 으로 ( 로우레벨 ) 읽혀진다. 핀이디지털입력으로정의되어있을때 A/D 컨버젼을하면정확한 A/D 변환이되지않는다. 2: 아날로그입력이아니라디지털입력으로정의된어떤핀에아날로그레벨의전압을인가하는경우이러한경우는스펙을벗어나는전류소모의하나의원인이될수도있다. 11.4 A/D 변환 노트 : A/D 모듈을턴 - 온시키는시점 (ADON=1) 에서 GO/DONE 비트를동시에 1 로셋트시키지말아야함 GO/DONE 비트를 1 로셋트하면비로서 A/D 변환을시작하며 A/D 컨버젼이완료가되었을때 8 비트결과값은 ADRES 레지스터로들어가게되고 GO/DONE 비트는자동 0 으로클리어되며 ADIF 플래그 (PIR<6>) 는 1 로셋트가된다. 만약 A/D 인터럽트인에이블비트 ADIE (PIE1<6>) 와주변장치인터럽트인에이블비트 PEIE (INTCON<6>) 가동시에 1 로셋트가되어있었을때하드웨어에의하여 ADIF 비트가 1 로셋트가되면디바이스를 SLEEP 모드로부터깨울수가있으며더구나글로벌인터럽트인에이블비트인 GIE (INTCON<7>) 비트가 1 로되어있었다면인터럽트가발생될것이다. A/D 변환도중에 GO/DONE 비트를 0 으로클리어시키면현재진행중인 A/D 컨버젼이중단되고 ADRES 레지스터값은업데이트되지않으며 ADIF 플래그또한 1 로셋트되지않는다. A/D 컨버젼이완료되었거나또는소프트웨어적으로 GO/DONE 비트를 0 으로클리어시킨이후에다시 A/ D 컨버젼을하고자하는경우에는 GO/DONE 비트를다시 1 로셋팅을함으로써가능하다. 이경우사용자는반드시어플리케이션에따른적당한샘플링시간을고려하여야한다. 11.5 Sleep 모드에서 A/D 동작 A/D 모듈은 SLEEP 모드동안동작가능하다. 이를위하여클럭소스는 RC (ADCS1:ADCS0 = 11) 를선택하여야만한다. RC 클럭소스가선택되었을때 A/D 모듈은변환을시작하기전에 1 사이클명령동안잠시대기한다. 이것은 SLEEP 명령실행시발생할수있는모든디지털스위칭노이즈를제거하기위한조치이다. 변환이완료되었을때 GO/DONE 비트는 0 으로클리어될것이다. 그리고그결과는 ADRES 레지스터안으로로드되어진다. 만약 A/D 인터럽트가인에이블되어있다면디바이스는 SLEEP 모드로부터깨어날것이다. 만약 A/D 인터럽트가인에이블되지않았다면비록 ADON 비트가 1 로셋트되어있다할지라도 A/D 모듈은꺼진상태로남아있을것이다. A/D 클럭소스가 RC 가아닌다른클럭일때 SLEEP 명령은현재변환을종료시키고비록 ADON 비트가 1 로셋트되어있다할지라도 A/D 모듈은꺼진상태로남아있게된다. A/D 모듈을턴 - 오프시키면전류소모는줄어든다. 노트 : SLEEP 모드에서 A/D 모듈을동작시키기위해서는 AD 클럭소스는반드시 RC (ADCS1:ADCS0 = 11) 로선택되어져야한다. SLEEP 모드에서 A/D 변환이진행되기위해서는 GO/DONE 비트가 1 로셋트됨과동시에 SLEEP 명령이수행되어야만한다. 11.6 리셋의효과 디바이스리셋은모든레지스터의값들을약속된값으로초기화시킨다. A/D 모듈은디제이블되고어떠한변환도멈추게된다. 또한모든 A/D 입력핀들은아날로그입력상태로구성된다. ADRES 레지스터는파워 - 온리셋이후에는알수없는쓰레기값이들어가게된다. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 87

11.7 CCP 트리거의사용 A/D 변환을 CCP2 모듈의 스페셜이벤트트리거 에의하여시작할수도있다. 이경우 CCP2M3:CCP2M0 비트들은 (CCP2CON<3:0>) 1011 로셋팅되어야만하고 A/D 모듈이인에이블되어야만한다 (ADON 비트를 1 로셋트 ). 트리거가발생하였을때 GO/DONE 는 A/D 변환을위하여 1 로셋트되어지고타이머 1 카운터는 0 으로클리어가될것이다. 최소한의소프트웨어로 A/D 샘플링주기를판단하기위하여타이머 1 은반복적으 로자동리셋된다. 아날로그입력채널은 스페셜이벤트트리거 가 GO/DONE 비트를 1 로셋트 ( 변환시작 ) 하기전에선택되어져야만하며샘플링되어져야만한다. 만약 A/D 모듈이인에이블되지않았다면 (ADON 비트가 0 으로클리어되어있음 ) 그때 스페셜이벤트트리거 의발생은 A/D 모듈에의하여무시되어질것이다. 그러나타이머 1 카운터는계속리셋될것이다. 테이블 11-2: A/D 레지스터요약 어드레스이름비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0 POR,BOR 발생시 다른모든리셋발생시 0Bh,8Bh, INTCON GIE PEIE TMR0IE INTE RBIE TMR0IF INTF RBIF 0000 000x 0000 000u 10Bh, 18Bh 0Ch PIR1 PSPIF (1) ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 0000 0000 0000 0000 0Dh PIR2 CCP2IF ---- ---0 ---- ---0 8Ch PIE1 PSPIE (1) ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000 8Dh PIE2 CCP2IE ---- ---0 ---- ---0 1Eh ADRES A/D 결과레지스터바이트 xxxx xxxx uuuu uuuu 1Fh ADCON0 ADCS1 ADCS0 CHS2 CHS1 CHS0 GO/DONE ADON 0000 00-0 0000 00-0 9Fh ADCON1 PCFG2 PCFG1 PCFG0 ---- -000 ---- -000 05h PORTA RA5 RA4 RA3 RA2 RA1 RA0 --0x 0000 --0u 0000 85h TRISA PORTA 방향설정레지스터 --11 1111 --11 1111 09h PORTE (2) RE2 RE1 RE0 ---- -xxx ---- -uuu 89h TRISE (2) IBF OBF IBOV PSPMODE PORTE 방향설정비트 0000-111 0000-111 범례 : x = 알수없음, u = 변하지않음, - = 정의되지않았음, 항상 0 으로읽힘. 빗금친부분은 A/D 변환시사용되지않음 노트 1: PSPIE 와 PSPIF 비트들은 PIC16CR73/76 에서는사용되지않음 ; 항상 0 으로유지됨. 2: 이레지스터는들은 PIC16CR73/76 디바이스에서는사용되지않음. DS21993A_KR- 페이지 88 2006 마이크로칩테크놀로지

12.0 CPU 의특별한기능들 이디바이스들에는시스템의신뢰성을극대화하고외부요소들을제거함으로써비용을최소화하고저전력동작모드를제공하면서코드프로텍션의기능을제공하는기능들을가지고있다. 이것들은 : 오실레이터선택 리셋 - 파워 - 온리셋 (POR) - 파워 - 업타이머 (PWRT) - 오실레이터스타트 - 업타이머 (OST) - 브라운 - 아웃리셋 (BOR) 인터럽트 워치 - 독타이머 (WDT) 슬립 코드프로텍션 ID 프로그래밍지역 인 - 서킷시리얼프로그래밍 디바이스에는워치 - 독타이머를내장하고있으며옵션비트의제어를통하여인에이블또는디제이블할수있다. 워치 - 독타이머는신뢰성을더하기위하여칩내부의 RC 오실레이터로구동된다. 또한파워 - 업시간지연을위한두개의타이머가내장되어있는데하나는오실레이터스타트 - 업타이머 (OST) 이다. 그것은크리스털오실레이터가안정화가될때까지칩을리셋상태로머물게한다. 다른하나는파워 - 업타이머 (PWRT) 이다. 그것은전원이투입되는경우에약 72ms 의고정된시간지연을제공하여파워서플라이가안정화가될때까지칩을리셋상태에있게만든다. 또한옵션비트의제어를통하여인에이블또는디제이블시킬수있다. 따라서칩내부에위와같은두개의타이머가있기때문에대부분의어플리케이션에서는외부에리셋회로가필요없게된다. 슬립모드는파워 - 다운모드에서매우적은전류소비를하도록디자인되어있다. 사용자는외부리셋또는워치 - 독타이머그리고각종인터럽트를통하여슬립모드로부터디바이스를웨이크 - 업시킬수있다. 다양한오실레이터옵션을통하여어플리케이션의목적에맞게디자인이가능하다. RC 오실레이터옵션은비용을줄일수있는반면 LP 크리스털옵션은전류를절약시킬수있다. 요구되는오실레이터모드의선택을위하여컨퓨그레이션비트가사용된다. 특별한기능에대한좀더자세한사항은 PICmicro 미드 - 레인지 MCU 패밀리참조메뉴얼 (DS33023) 을참조하기를바란다. 12.1 컨퓨그레이션비트 다양한디바이스의구성을선택하기위하여컨퓨그레이션비트를프로그램하거나 ( 0 으로읽힘 ) 또는프로그램하지않을수도있다 ( 1 로읽힘 ). 이비트들은프로그램메모리 2007h 번지에위치하고있다. 2007h 번지는사용자프로그램메모리번지를초과한영역이기때문에이번지는오직프로그래밍하는동안에만억세스가가능하다. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 89

레지스터 12-1: 컨퓨그레이션워드 : ( 어드레스 2007h (1) ) U-0 U-0 U-0 U-0 U-0 U-0 U-0 비트 13 비트 7 R/P-1 U-0 R/P-1 R/P-1 R/P-1 R/P-1 R/P-1 BOREN CP0 PWRTEN WDTEN FOSC1 FOSC0 비트 6 비트 0 범례 : R = 읽기가능비트 W = 쓰기가능비트 U = 정의되지않은비트, 항상 0 으로읽힘 -n = POR 상태에서의값 1 = 비트가셋트됨 0 = 비트가클리어됨 x = 알수없는비트값 비트 13-7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1-0 정의되지않은영역 : 1 로읽힌다 BOREN: 브라운 - 아웃리셋인에이블비트 1 = BOR 인에이블됨 0 = BOR 디제이블됨 정의되지않은영역 : 1 로읽힌다 CP0: 프로그램메모리코드프로텍션비트 1 = 코드프로텍션기능이오프됨 0 = 모든프로그램메모리영역이코드프로텍트된다. PWRTEN: 파워 - 업타이머인에이블비트 1 = PWRT 디제이블됨 0 = PWRT 인에이블됨 WDTEN: 워치 - 독타이머인에이블비트 1 = WDT 인에이블됨 0 = WDT 디제이블됨 FOSC1:FOSC0: 오실레이터선택비트 11 = RC 오실레이터 10 = HS 오실레이터 01 = XT 오실레이터 00 = LP 오실레이터 노트 1: 컨퓨그레이션워드의지워진 ( 프로그램되지않은 ) 값은 3FFFh 이다. DS21993A_KR- 페이지 90 2006 마이크로칩테크놀로지

12.2 오실레이터구성 12.2.1 오실레이터타입 PIC16CR7X 은 4 가지의서로다른오실레이터모드로동작된다. 사용자는이러한 4 가지모드중하나를선택하기위하여두개의컨퓨그레이션비트 (FOSC1 와 FOSC0) 를이용하여선택한다 : LP 저전력크리스털 XT 크리스털 / 레조네이터 HS 고속의크리스털 / 레조네이터 RC 저항 / 콘덴서 12.2.2 크리스털오실레이터 / 세라믹레조네이터 XT, LP 또는 HS 모드에서발진을위하여크리스털또는레조네이터가 OSC1/CLKIN 과 OSC2/CLKOUT 핀으로연결된다. ( 그림 12-1). PIC16CR7X 오실레이터는병렬구조를가진크리스털의사용이요구된다. 직렬구조형태의크리스털인경우크리스털제조사의스펙과다른주파수를발생시킬수있다. HS 모드에서 OSC1/ CLKIN 핀을구동하기위하여외부클럭소스를사용할수있다 ( 그림 12-2). 유효한외부클럭에대해서는그림15-1 또는그림 15-2 를참조 ( VDD 범위및파트넘버에의존함 ) 하기를바란다. 그림 12-1: 크리스털 / 세라믹레조네이터동작 ( HS, XT 또는 LP 오실레이터옵션 ) C1 (1) C2 (1) OSC1 XTAL OSC2 RS (2) RF (3) 슬립 내부로직 PIC16CR7X 노트 1: 권장된 C1 과 C2 값은테이블 12-1 과테이블 12-2 를참조. 2: 직렬저항 (RS) 는 AT 스트립-컷크리스털에서사용된다. 3: 크리스털선택에따라 RF 값은변한다. 그림 12-2: 외부시스템으로부터의클럭 테이블 12-1: 외부클럭입력동작 (HS 오실레이터컨퓨그레이션 ) 세라믹레조네이터 ( 단지디자인가이드를위하여제공 ) 일반적으로사용하는콘덴서값 : 모드 주파수 OSC1 OSC2 XT 455 khz 2.0 MHz 4.0 MHz 56 pf 47 pf 33 pf 56 pf 47 pf 33 pf HS 오픈 8.0 MHz 16.0 MHz OSC1 OSC2 27 pf 22 pf PIC16CR7X (HS 모드 ) 27 pf 22 pf 사용된콘덴서값은단지디자인가이드를위하여제공됨이러한콘덴서값은기본적인스타트 - 업과동작을위하여아래에제시된레조네이터를사용하여테스트되었지만조정은되지않았다. 다른콘덴서값이정확한오실레이터동작을위하여요구될수도있다. 따라서사용자는자신의어플리케이션에요구되는 VDD 와온도범위를고려하여오실레이터의성능을테스트하여야만한다. 추가적인정보는페이지 92 아래쪽부분을참조하기를바란다. 사용된레조네이터 : 455 khz 파나소닉 EFO-A455K04B 2.0 MHz 무라다 CSA2.00MG 4.0 MHz 무라다 CSA4.00MG 8.0 MHz 무라다 CSA8.00MT 16.0 MHz 무라다 CSA16.00MX 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 91

테이블 12-2: 오실레이터타입 크리스털오실레이터를위한콘덴서선택 ( 단지디자인가이드를위하여제공 ) 크리스털주파수. 테스트된콘덴서값 : C1 C2 LP 32 khz 33 pf 33 pf 200 khz 15 pf 15 pf XT 200 khz 56 pf 56 pf 1 MHz 15 pf 15 pf 4 MHz 15 pf 15 pf HS 4 MHz 15 pf 15 pf 8 MHz 15 pf 15 pf 20 MHz 15 pf 15 pf 사용된콘덴서값은단지디자인가이드를위하여제공됨이러한콘덴서값은기본적인스타트 - 업과동작을위하여아래에제시된레조네이터를사용하여테스트되었지만조정은되지않았다. 다른콘덴서값이정확한오실레이터동작을위하여요구될수도있다. 따라서사용자는자신의어플리케이션에요구되는 VDD 와온도범위를고려하여오실레이터의성능을테스트하여야만한다. 자세한사항은아래부분을참조하기를바란다. 사용된크리스털 : 32 khz 엡슨 C-001R32.768K-A 200 khz STD XTL 200.000KHz 1 MHz ECS ECS-10-13-1 4 MHz ECS ECS-40-20-1 8 MHz 엡슨 CA-301 8.000M-C 20 MHz 엡슨 CA-301 20.000M-C 12.2.3 RC 오실레이터 타이밍이중요하지않고비용절감이중요한어플리케이션에서는 RC 디바이스옵션을사용한다. RC 오실레이터의주파수는공급전압, 저항 (REXT) 과콘덴서 (CEXT) 의값그리고동작온도에의해서좌우된다. 게다가오실레이터주파수는디바이스간의일반적인공정프로세서파라메터변화에의해서도변화된다. 또한특히낮은 CEXT 의값을가지고있는각패키지타입의리드프레임캐패시턴스에의해서도오실레이터주파수가변화된다. 따라서사용자는외부에사용된 R 과 C 소자의가변범위에의한변화의계산을할필요가있다. 그림 12-3 은 R/C 조합을어떻게 PIC16CR7X 에연결하는지그방법을보여주고있다. 그림 12-3: REXT CEXT VSS VDD 권장된값 : FOSC/4 RC 오실레이터모드 OSC1 OSC2/CLKOUT 내부클럭 PIC16CR7X 3 kω REXT 100 kω CEXT > 20pF 노트 1: 용량이큰콘덴서를사용할수록오실레이터의안정성을가져오지만반면디바이스의스타트 - 업시간을길게할것이다. 2: 각각의크리스털이나레조네이터는고유특성을가지고있으므로사용자는외부에부착하여야하는정확한값에대해서는제조사에게문의를하여야한다. 3: Rs 는낮은구동레벨사양을가진크리스털이과도한구동을하는것을방지하기위하여 XT 모드뿐만아니라 HS 모드에서요구된다. 4: 항상어플리케이션에서요구되는 VDD 와온도범위에따라서오실레이터성능을검증하여야한다. DS21993A_KR- 페이지 92 2006 마이크로칩테크놀로지

12.3 리셋 PIC16CR7X 는서로다른다양한종류의리셋을가지고있다 : 파워 - 온리셋 (POR) MCLR 핀에의한리셋 ( 정상동작시 ) MCLR 핀에의한리셋 ( 슬립모드시 ) WDT 리셋 ( 정상동작시 ) WDT 타임 - 아웃에의한리셋 ( 슬립동작중 ) 브라운 - 아웃리셋 (BOR) 일부레지스터들은어떠한리셋조건에서도영향을받지않는다. 그들의상태는알수없는쓰레기값이들어있으며 POR 및어떠한다른리셋에서도변화되지않는다. 대부분의레지스터들은파워 - 온리셋 (POR), MCLR 리셋, WDT 리셋, 슬립동안의 MCLR 리셋, 브라운 - 아웃리셋 (BOR) 이발생되면초기화가된다. 그들은슬립모드에서 WDT 타임 - 아웃에의한리셋에서는영향을받지않는데이것은정상동작의연장선으로보기때문이다. 테이블 12-4 에서알수있듯이 TO 와 PD 비트들은서로다른리셋상황에서서로다르게셋트또는클리어된다. 이러한비트들은소프트웨어적으로어떠한리셋이발생되었는지를판단하는데사용이된다. 테이블 12-6 은모든레지스터의리셋상태를보여준다. 그림 12-4 는내장된리셋회로의간단한블럭다이어그램이다. 그림 12-4: 칩내부리셋회로의간단한블럭다이어그램 외부리셋 MCLR WDT 모듈 VDD 상승검출 슬립 WDT 타임 - 아웃리셋 VDD 브라운 - 아웃리셋 파워 - 온리셋 BODEN S OSC1 OST/PWRT OST 10 비트리플카운터 R Q 칩리셋 (1) On-chip RC OSC PWRT 10 비트리플카운터 PWRT 인에이블 OST 인에이블 노트 1: 이것은 CLKIN 핀의 RC 오실레이터로부터분리된오실레이터이다. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 93

12.4 MCLR PIC16CR7X 디바이스는 MCLR 리셋패스에노이즈필터를가지고있다. 이필터는작은펄스를검출하고무시할것이다. WDT 리셋은 MCLR 핀을로우상태로구동시키지는않는다. MCLR 핀상에 ESD 프로텍션동작은이패밀리의다른디바이스와는조금다르다. 이핀으로스펙에서규정을초과하는전압이공급되면 MCLR 리셋과 ESD 이벤트시스펙에서규정하고있는전류를초과하여흐를것이다. 이러한이유때문에마이크로칩은 MCLR 핀을직접 VDD 에연결하는것은권장하지않는다. 제시된 RC 네트워크의사용법이그림 12-5 에나타내었다. 그림 12-5: VDD R1 1 kω ( 또는커야함 ) C1 0.1 µf ( 옵션, 민감하지않음 ) 권장 MCLR 회로 12.5 파워 - 온리셋 (POR) PIC16CR7X MCLR 파워 - 온리셋펄스는 VDD 상승이검출되었을때칩내부에서발생된다 (1.2V-1.7V 범위에서발생 ). POR 을사용하기위하여섹션 12.4 MCLR 에서설명한것처럼 MCLR 핀을 VDD 로연결한다. VDD 의최대상승시간은스펙으로규정되어있다. 자세한사항은전기적인특성부분을참조하기를바란다. 디바이스가장상동작을시작할때 ( 리셋조건을벗어날때 ) 디바이스동작파라메터 ( 전압, 주파스온도...) 들은반드시동작사항을만족하여야만한다. 만약이러한동작이만족되지못하면디바이스는동작조건이만족될때까지리셋상태에머무르게될것이다. 보다자세한사항은어플리케이션노트 AN607, Power-up Trouble Shooting (DS00607) 를참조하기를바란다. 12.6 파워 - 업타이머 (PWRT) 파워 - 업타이머는 POR 로부터파워 - 업시고정된 72ms 의시간지연을제공한다. 파워 - 업타이머는내부 RC 오실레이터로구동되며 PWRT 가구동되는동안에는칩은리셋상태에있게된다. PWRT 시간지연은 VDD 가안정된레벨까지상승하도록기다려준다. PWRT 의인에이블 / 디제이블은컨퓨그레이션비트를통하여제어된다. 파워 - 업시간은 VDD, 온도그리고공정파라메터에의해좌우되기때문에디바이스마다조금씩다르다. 자세한사항은 DC 파라메터부분을참고하기를바란다 (TPWRT, 파라메터 #33). 12.7 오실레이터스타트업타이머 (OST) 오실레이터스타트 - 업타이머 (OST) 는 PWRT 시간지연 ( 만약인에이블되어있다면 ) 이후에 1024 오실레이터클럭사이클 (OSC1 입력으로부터 ) 만큼의시간지연을제공한다. 이것은크리스털오실레이터또는레조네이터가안정화가되도록하는데도움을준다. OST 시간지연은 XT, LP 그리고 HS 오실레이터모드에서지원되며파워 - 온리셋시또는슬립모드로부터깨어날때지원된다. 12.8 브라운 - 아웃리셋 (BOR) 컨퓨그레이션비트중의하나인 BODEN 비트를이용하여브라운 - 아웃리셋회로를인에이블또는디제이블시킬수있다. 만약 VDD 전압이 VBOR ( 파라메터 D005, 4V 정도 ) 전압이하로내려가서 TBOR ( 파라메터 #35, 100 µs 정도 ) 이상유지되면브라운-아웃상황이되고이는디바이스를리셋시킬것이다. 만약 VDD 전압이 TBOR 보다적은시간동안 VBOR 이하로내려간경우리셋은발생되지않는다. 브라운 - 아웃이발생되었을때디바이스는 VDD 전압이 VBOR 전압이상으로다시올라갈때까지디바이스는브라운 - 아웃리셋상태에있을것이다. VDD 전압이 VBOR 전압이상으로다시올라가면그때부터 TPWRT ( 파라메터 #33, 72 ms 정도 ) 가구동되고그기간동안에는디바이스가리셋상태에계속머물러있는다. 만약 TPWRT 기간동안 VDD 가 VBOR 이하로떨어지면 VDD 가 VBOR 위로올라갔을때브라운 - 아웃리셋회로가다시구동이되고파워 - 업타이머또한다시구동시작된다. 파워 - 업타이머는 PWRT 컨퓨그레이션비트의상태와상관없이브라운 - 아웃리셋회로가인에이블되어있을때에는항상인에이블된다. 12.9 타임 - 아웃순서 전원투입시타임 - 아웃순서는다음과같다 : POR 리셋이발생된이후 PWRT 시간지연이시작되고 ( 만약인에이블되어있다면 ) PWRT 가끝난이후에는 OST 가 1024 오실레이터사이클동안구동된다. OST 가완료된시점에서디바이스는리셋이될것이다 (LP, XT, HS). 만약 MCLR 이너무긴시간동안로우상태를유지한다면모든시간지연은끝나버릴것이다. 그때 MCLR 을하이상태로하면칩은즉시동작을시작할것이다. 이와같은동작은테스트목적또는병렬상태로된하나이상의 PIC16CR7X 디바이스의동작을동기화시키는데유용하게사용된다. 테이블 12-5 리셋조건에서 STATUS, PCON 그리고 PC 레지스터의초기값을나타낸반면테이블 12-6 은모든레지스터의리셋조건을보여주고있다. DS21993A_KR- 페이지 94 2006 마이크로칩테크놀로지

12.10 전원제어 / 상태레지스터 (PCON) 전원제어 / 상태레지스터인 PCON 는마지막으로발생된리셋의타입을보여주기위하여두개의관련된비트를가지고있다. 비트 0 는브라운 - 아웃리셋상태비트 BOR 이다. 비트 BOR 은파워 - 온리셋상태에서알수없는값이다. 그래서 BOR 비트는사용자에의하여셋트되어야하는데이것은브라운-아웃리셋이발생되었을때 BOR 비트가클리어되는지를체크하기위함이다. 브라운 - 아웃리셋이디제이블되었을때 BOR 비트의상태는예측할수없다. 비트 1 은 POR ( 파워 - 온리셋상태비트 ) 이다. 이비트는파워 - 온리셋상태에서는클리어되지만다른리셋에서는영향을받지않는다. 따라서사용자는파워 - 온리셋이후에는이비트를반드시셋트하여야만한다. 테이블 12-3: 다양한상황에서의타임 - 아웃 파워 - 업 오실레이터종류 PWRTE = 0 PWRTE = 1 브라운 - 아웃 슬립으로부터깨어나는경우 XT, HS, LP 72 ms + 1024 TOSC 1024 TOSC 72 ms + 1024 TOSC 1024 TOSC RC 72 ms 72 ms 테이블 12-4: POR (PCON<1>) 상태비트및의미 BOR (PCON<0>) TO (STATUS<4>) PD (STATUS<3>) 의미 0 x 1 1 파워 - 온리셋 0 x 0 x 비합리적, TO 는 POR 상태에서셋트된다 0 x x 0 비합리적, PD 는 POR 상태에서셋트된다 1 0 1 1 브라운 - 아웃리셋 1 1 0 1 WDT 리셋 1 1 0 0 WDT 웨이크 - 업 1 1 u u 정상동작중 MCLR 리셋 1 1 1 0 슬립동안중 MCLR 리셋발생또는슬립동안중인터럽트에의한웨이크 - 업 테이블 12-5: 특별한레지스터들의리셋상태 조건 프로그램카운터 STATUS 레지스터 PCON 레지스터 파워 - 온리셋발생시 000h 0001 1xxx ---- --0x 정상동작중 MCLR 리셋발생시 000h 000u uuuu ---- --uu 슬립동안에 MCLR 리셋발생시 000h 0001 0uuu ---- --uu WDT 리셋발생시 000h 0000 1uuu ---- --uu WDT 웨이크 - 업발생시 PC + 1 uuu0 0uuu ---- --uu 브라운 - 아웃리셋발생시 000h 0001 1uuu ---- --u0 슬립동안에인터럽트웨이크 - 업발생시 PC + 1 (1) uuu1 0uuu ---- --uu 범례 : u = 변하지않음, x = 알수없음, - = 정의되지않은비트, 항상 0 으로읽힘 노트 1: 인터럽트와 GIE 비트로인하여웨이크 - 업이되었을경우는 PC 로인터럽트벡터어드레스 (0004h) 가로드된다. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 95

테이블 12-6: 모든레지스터의초기화조건 레지스터 디바이스 파워 - 온리셋, 브라운 - 아웃리셋 MCLR 리셋, WDT 리셋 WDT 를통한웨이크 - 업또는인터럽트 W 73 74 76 77 xxxx xxxx uuuu uuuu uuuu uuuu INDF 73 74 76 77 N/A N/A N/A TMR0 73 74 76 77 xxxx xxxx uuuu uuuu uuuu uuuu PCL 73 74 76 77 0000h 0000h PC + 1 (2) STATUS 73 74 76 77 0001 1xxx 000q quuu (3) uuuq quuu (3) FSR 73 74 76 77 xxxx xxxx uuuu uuuu uuuu uuuu PORTA 73 74 76 77 --0x 0000 --0u 0000 --uu uuuu PORTB 73 74 76 77 xxxx xxxx uuuu uuuu uuuu uuuu PORTC 73 74 76 77 xxxx xxxx uuuu uuuu uuuu uuuu PORTD 73 74 76 77 xxxx xxxx uuuu uuuu uuuu uuuu PORTE 73 74 76 77 ---- -xxx ---- -uuu ---- -uuu PCLATH 73 74 76 77 ---0 0000 ---0 0000 ---u uuuu INTCON 73 74 76 77 0000 000x 0000 000u uuuu uuuu (1) PIR1 73 74 76 77 r000 0000 r000 0000 ruuu uuuu (1) 73 74 76 77 0000 0000 0000 0000 uuuu uuuu (1) PIR2 73 74 76 77 ---- ---0 ---- ---0 ---- ---u (1) TMR1L 73 74 76 77 xxxx xxxx uuuu uuuu uuuu uuuu TMR1H 73 74 76 77 xxxx xxxx uuuu uuuu uuuu uuuu T1CON 73 74 76 77 --00 0000 --uu uuuu --uu uuuu TMR2 73 74 76 77 0000 0000 0000 0000 uuuu uuuu T2CON 73 74 76 77-000 0000-000 0000 -uuu uuuu SSPBUF 73 74 76 77 xxxx xxxx uuuu uuuu uuuu uuuu SSPCON 73 74 76 77 0000 0000 0000 0000 uuuu uuuu CCPR1L 73 74 76 77 xxxx xxxx uuuu uuuu uuuu uuuu CCPR1H 73 74 76 77 xxxx xxxx uuuu uuuu uuuu uuuu CCP1CON 73 74 76 77 --00 0000 --00 0000 --uu uuuu RCSTA 73 74 76 77 0000-00x 0000-00x uuuu -uuu TXREG 73 74 76 77 0000 0000 0000 0000 uuuu uuuu RCREG 73 74 76 77 0000 0000 0000 0000 uuuu uuuu CCPR2L 73 74 76 77 xxxx xxxx uuuu uuuu uuuu uuuu CCPR2H 73 74 76 77 xxxx xxxx uuuu uuuu uuuu uuuu CCP2CON 73 74 76 77 0000 0000 0000 0000 uuuu uuuu ADRES 73 74 76 77 xxxx xxxx uuuu uuuu uuuu uuuu ADCON0 73 74 76 77 0000 00-0 0000 00-0 uuuu uu-u OPTION_REG 73 74 76 77 1111 1111 1111 1111 uuuu uuuu TRISA 73 74 76 77 --11 1111 --11 1111 --uu uuuu TRISB 73 74 76 77 1111 1111 1111 1111 uuuu uuuu TRISC 73 74 76 77 1111 1111 1111 1111 uuuu uuuu TRISD 73 74 76 77 1111 1111 1111 1111 uuuu uuuu 범례 : u = 변하지않음, x = 알수없음, - = 정의되지않은비트, 항상 0 으로읽힘, q = 값은조건에따라변 하게된다. r = 예약되어있음, 항상클리어상태를유지함 노트 1: INTCON, PIR1 그리고 / 또는 PIR2 레지스터의하나또는여러비트들은영향을받는다. ( 웨이크 - 업을발생시키기위하여 ). 2: 인터럽트와 GIE 비트로인하여웨이크 - 업이되었을경우는 PC 로인터럽트벡터어드레스 (0004h) 가로드된다 3: 특별한조건을위한리셋값은테이블 12-5 참조할것. DS21993A_KR- 페이지 96 2006 마이크로칩테크놀로지

테이블 12-6: 모든레지스터의초기화조건 ( 앞페이지에이어계속됨 ) 레지스터 디바이스 파워 - 온리셋, 브라운 - 아웃리셋 MCLR 리셋, WDT 리셋 WDT 를통한웨이크 - 업또는인터럽트 TRISE 73 74 76 77 0000-111 0000-111 uuuu -uuu PIE1 73 74 76 77 r000 0000 r000 0000 ruuu uuuu 73 74 76 77 0000 0000 0000 0000 uuuu uuuu PIE2 73 74 76 77 ---- ---0 ---- ---0 ---- ---u PCON 73 74 76 77 ---- --qq ---- --uu ---- --uu PR2 73 74 76 77 1111 1111 1111 1111 1111 1111 SSPSTAT 73 74 76 77 --00 0000 --00 0000 --uu uuuu SSPADD 73 74 76 77 0000 0000 0000 0000 uuuu uuuu TXSTA 73 74 76 77 0000-010 0000-010 uuuu -uuu SPBRG 73 74 76 77 0000 0000 0000 0000 uuuu uuuu ADCON1 73 74 76 77 ---- -000 ---- -000 ---- -uuu PMDATA 73 74 76 77 0--- 0000 0--- 0000 u--- uuuu PMADR 73 74 76 77 xxxx xxxx uuuu uuuu uuuu uuuu PMDATH 73 74 76 77 xxxx xxxx uuuu uuuu uuuu uuuu PMADRH 73 74 76 77 xxxx xxxx uuuu uuuu uuuu uuuu PMCON1 73 74 76 77 1--- ---0 1--- ---0 1--- ---u 범례 : u = 변하지않음, x = 알수없음, - = 정의되지않은비트, 항상 0 으로읽힘, q = 값은조건에따라변 하게된다. r = 예약되어있음, 항상클리어상태를유지함 노트 1: INTCON, PIR1 그리고 / 또는 PIR2 레지스터의하나또는여러비트들은영향을받는다. ( 웨이크 - 업을발생시키기위하여 ). 2: 인터럽트와 GIE 비트로인하여웨이크 - 업이되었을경우는 PC 로인터럽트벡터어드레스 (0004h) 가로드된다 3: 특별한조건을위한리셋값은테이블 12-5 참조할것. 그림 12-6: 파워 - 업상태의타임아웃순서 (MCLR 이 RC 네트워크를통해 VDD 에연결된경우 ) VDD MCLR 내부 POR TPWRT PWRT 타임 - 아웃 TOST OST 타임 - 아웃 내부리셋 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 97

그림 12-7: 파워 - 업상태의타임 - 아웃순서 ( MCLR 이 VDD 에연결되지않은경우 ): 경우 1 VDD MCLR 내부 POR TPWRT PWRT 타임 - 아웃 TOST OST 타임 - 아웃 내부리셋 그림 12-8: 파워 - 업상태의타임 - 아웃순서 ( MCLR 이 VDD 에연결되지않은경우 ): 경우 2 VDD MCLR 내부 POR TPWRT PWRT 타임 - 아웃 TOST OST 타임 - 아웃 내부리셋 그림 12-9: 느린상승시간 (MCLR 이 RC 네트워크를통해 VDD 에연결된경우 ) VDD MCLR 0V 1V 5V 내부 POR TPWRT PWRT 타임 - 아웃 TOST OST 타임 - 아웃 내부리셋 DS21993A_KR- 페이지 98 2006 마이크로칩테크놀로지

12.11 인터럽트 PIC16CR7X 패밀리는최대 12 개의인터럽트소스를가지고있다. 인터럽트제어레지스터 (INTCON) 는각각의인터럽트요구플래그및각각의인에이블비트및글로벌인터럽트인에이블비트를가지고있다. 노트 : 각각의인터럽트요구플래그는해당인터럽트의마스크비트또는 GIE 비트의상태와상관없이셋트된다. 글로벌인터럽트인에이블비트 GIE (INTCON<7>) 는마스크되지않은모든인터럽트를인에이블시킬수도 ( 셋트되어있으면 ) 또는모든인터럽트를디제이블시킬수도 ( 클리어되어있으면 ) 있다. GIE 비트가인에이블되어있고요구플래그가셋트그리고해당인터럽트인에이블비트가셋트이면즉시인터럽트가발생될것이다. 각각의인터럽트는여러레지스터를통하여일치하는해당인터럽트인에이블비트를클리어함으로써디제이블시킬수있다. 각각의인터럽트비트는 GIE 비트의상태와상관없이셋트가가능하다. GIE 비트는리셋상태에서는클리어된다. 인터럽트루틴으로부터복귀하는명령 RETFIE 를사용하면인터럽트루틴을빠져나감과동시에 GIE 비트를다시셋트시켜다시인터럽트발생을가능하게만든다. INTCON 레지스터에는 RB0/INT 핀인터럽트, RB 포트변화인터럽트그리고 TMR0 오버플로우인터럽트요구플래그들을포함하고있다. 주변장치인터럽트요구플래그들은 SFR 레지스터의 PIR1 및 PIR2 레지스터에위치하고있다. 또한각각의주변장치인터럽트인에이블비트들은 SFR 레지스터의 PIE1 및 PIE2 레지스터에위치하고있으며주변장치인터럽트를인에이블시키는 PEIE 비트는 SFR 레지스터의 INTCON 레지스터에위치시키고있다. 인터럽트가발생되면다른인터럽트의발생을막기위하여 GIE 비트가자동적으로클리어되며복귀어드레스가스택으로저장됨과동시에 PC 에는 0004h 어드레스가로드된다. 인터럽트서비스루틴에서는인터럽트요구플래그를체크함으로써어떤인터럽트가발생되었는지를체크가능하다. 인터럽트요구플래그는반드시다시인터럽트를인에이블시키기이전에소프트웨어적으로클리어시켜주어야한다. INT 핀또는포트 B 변화인터럽트와같은외부인터럽트인경우인터럽트루틴으로들어갈때까지의시간은 3 또는 4 사이클이소요된다. 인터럽트이벤트가발생하였을때의존하는소요시간은현재 Q 사이클에상태적이다. 소요시간은 1 또는 2 사이클명령어인경우에동일하다. 각각의인터럽트요구플래그는해당인터럽트의마스크비트또는 GIE 비트의상태와상관없이셋트된다. 그림 12-10: 인터럽트로직 PSPIF (1) PSPIE (1) ADIF ADIE CCP2IF CCP2IE RCIF RCIE TXIF TXIE SSPIF SSPIE CCP1IF CCP1IE TMR2IF TMR2IE TMR1IF TMR1IE TMR0IF TMR0IE INTF INTE RBIF RBIE PEIE GIE 웨이크 - 업 ( 슬립모드인경우 ) 인터럽트발생 노트 1: PSP 인터럽트는오직 PIC16CR74/77 디바이스에서만구현된다. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 99

12.11.1 INT 인터럽트 RB0/INT 핀상의외부인터럽트는에지인터럽트이며 INTEDG (OPTION_REG<6>) 가셋트이면상승에지에서 INTEDG 비트가클리어이면하강에지에서인터럽트가발생된다. RB0/INT 핀상에셋팅한에지가발생하면 INTF (INTCON<1>) 비트가셋트된다. 이인터럽트는인에이블비트인 INTE (INTCON<4>) 비트를클리어시킴으로서디제이블이가능하다. INTF 비트는반드시인터럽트서비스루틴에서다시인터럽트가인에이블되기이전에클리어시켜야한다. INT 인터럽트는슬립으로가기이전에 INTE 비트가셋트되어있었다면디바이스를슬립모드로부터웨이크 - 업시킬수있다. 글로벌인터럽트인에이블비트 GIE 를통하여웨이크 - 업이후에프로세서를인터럽트벡터로보낼것인지를결정할수있다. 슬립모드에대한자세한사항은섹션 12.14 파워 - 다운모드 ( 슬립 ) 을참조하기를바란다. 12.11.2 TMR0 인터럽트 TMR0 레지스터에서오버플로우 (FFh 00h) 가발생하면 TMR0IF (INTCON<2>) 비트가셋트된다. 인터럽트는인에이블비트인 TMR0IE (INTCON<5>) 비트를셋트 / 클리어함으로써인에이블 / 디제이블이가능하다. ( 섹션 5.0 타이머 0 모듈 ) 참조 12.12 인터럽트발생시레지스터저장 인터럽트가발생되면오직복귀하는 PC 어드레스만스택으로저장된다. 따라서사용자는사용하는중요한레지스터를사용자램에저장시켜주어야한다. ( 즉 W, PCLATH 그리고 STATUS 레지스터 ). 이것은예제 12-1 에나타낸것처럼반드시소프트웨어로구현이되어야한다. PIC16CR73/74 디바이스인경우레지스터 W_TEMP 는반드시뱅크 0 와뱅크 1 에동시에정의가되어야하며반드시각뱅크의기저어드레스로부터같은오프 - 셋값을갖는어드레스맵상에정의가되어야만한다. ( 즉만약 W_TEMP 가뱅크 0 의 20h 번지에정의하였다면그것은또한뱅크 1 의 A0h 번지에도정의가되어있어야만한다 ). 다른레지스터들즉 PCLATH_TEMP 와 STATUS_TEMP 는오직뱅크 0 에정의되어있으면된다. PIC16CR76/77 인경우각뱅크의상위 16 바이트는공통으로사용하는레지스터이므로이영역에일시저장용으로사용하는 W_TEMP, STATUS_TEMP 그리고 PCLATH_TEMP 레지스터를저장가능하다. 이 16 바이트영역은뱅크의전환이필요가없으므로좀더쉽고편하게값들을저장하고복원시킬수가있다. 예제 12-1 보여준예제코드또한사용가능하다. 12.11.3 포트 B 변화인터럽트 PORTB<7:4> 에입력변화가발생하면 RBIF (INTCON<0>) 비트가셋트된다. 인터럽트는인에이블비트인 RBIE (INTCON<3>) 비트를셋트 / 클리어함으로써인에이블 / 디제이블시킬수있다섹션 4.2 PORTB 와 TRISB 레지스터참조. 예제 12-1: 램영역에 STATUS, W 그리고 PCLATH 레지스터저장 MOVWF W_TEMP ; TEMP 레지스터로 W 값을복사함 SWAPF STATUS,W ; status 의니블을서로바꾼후결과를 W 에저장시킴 CLRF STATUS ; 현재뱅크와상관없이 IRP,RP1,RP0 클리어시켜뱅크 0 로셋팅 MOVWF STATUS_TEMP ; status 레지스터를뱅크 0 STATUS_TEMP 에저장시킴 MOVF PCLATH, W ; 만약페이지 1,2 또는 3 을사용한다면요구된다 MOVWF PCLATH_TEMP ; W 값을 PCLATH_TEMP 에저장시킨다 CLRF PCLATH ; 현재페이지와상관없이페이지 0 로셋팅시킨다 : :(ISR) ; 사용자코드를위치시킨다 : MOVF PCLATH_TEMP, W ; PCLATH 를복원시킨다 MOVWF PCLATH ; W 값을 PCLATH 로전달한다 SWAPF STATUS_TEMP,W ; STATUS_TEMP 의니블을서로바꾼후결과를 W 에저장시킴 ;( 원래상태의뱅크로전환시킴 ) MOVWF STATUS ; W 값을 STATUS 레지스터로전달한다 SWAPF W_TEMP,F ; W_TEMP 니블을서로바꾼후결과를자기자신에저장시킴 SWAPF W_TEMP,W ; W_TEMP 니블을서로바꾼후결과를 W 에저장시킴 DS21993A_KR- 페이지 100 2006 마이크로칩테크놀로지

12.13 워치 - 독타이머 (WDT) 워치 - 독타이머는칩내부의 RC 오실레이터로프리 - 런닝되기때문에외부에어떠한주변회로도요구되지않는다. 이러한 RC 오실레이터는 OSC1/CLKIN 핀의 RC 오실레이터와는구분된다. 그의미는 SLEEP 명령에의해디바이스의OSC1/CLKIN 과 OSC2/CLKOUT 핀으로공급되는클럭이멈추더러도 WDT 는계속동작함을의미한다. 정상동작상태일때 WDT 타임 - 아웃의발생은디바이스의리셋을발생시킨다 ( 워치 - 독타이머리셋 ). 만약디바이스가슬립모드에있는경우라면 WDT 타임 - 아웃은디바이스의웨이크 - 업을발생시키고계속하여정상동작을수행시킬것이다.( 워치 - 독타임아웃에의한웨이크 - 업 ). 워치 - 독타임아웃이발생되면 STATUS 레지스터의 TO 비트는클리어될것이다. WDT 모듈은컨퓨그레이션비트 WDTE ( 섹션 12.1 컨퓨그레이션비트 ) 비트를클리어시키면디제이블된다. WDT 타임아웃주기는전기적특성섹션파라메터 #31 에서확인가능하다. WDT 프리스케일러의값은 ( 실지로는포스트스케일러이다. 그러나이것은타이머프리스케일러와공용으로사용된다 ) OPTION_REG 레지스터를사용하여할당가능하다. 노트 1: CLRWDT 와 SLEEP 명령은 WDT 와포스트스케일러를클리어시킬것이다 ( 만약 WDT 쪽으로할당되어있다면 ) 그리고그러한명령은타임아웃과디바이스리셋을발생시키지않는다. 2: CLRWDT 명령이실행되고프리스케일러가 WDT 쪽으로할당된경우는프리스케일러카운터값은클리어가되지만프리스케일러할당값은변하지않는다. 그림 12-11: 워치 - 독타이머블럭다이어그램 TMR0 클럭소스로부터 ( 그림 5-1) WDT 타이머 0 1 먹스 프리스케일러 8 WDT 엔에이블비트 PSA 1 라인선택먹스 PS2:PS0 TMR0 쪽으로 ( 그림 5-1) 0 1 먹스 PSA WDT 타임아웃노트 : PSA 와 PS2:PS0 비트들은 OPTION_REG 레지스터에위치한다. 테이블 12-7: 워치 - 독타이머와관련된레지스터요약 어드레스 이름 비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0 2007h 컨퓨그비트 (1) BOREN (1) CP0 PWRTEN (1) WDTEN FOSC1 FOSC0 81h,181h OPTION_REG RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 범례 : 빗금친부분은워치 - 독타이머에서는사용되지않는다. 노트 1: 이비트의동작은레지스터 12-1 를참조하기를바란다. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 101

12.14 파워 - 다운모드 ( 슬립 ) 파워 - 다운모드는 SLEEP 명령에의하여진입된다. 워치 - 독타이머가인에이블되어있다면슬립명령과동시에클리어되지만계속동작되며 PD 비트 (STA- TUS<3>) 는클리어되고 TO (STATUS<4>) 비트는셋트그리고오실레이터는동작을멈출것이다. I/O 포트들은 SLEEP 명령이실행되기이전의상태를계속유지할것이다. ( 하이, 로우, 또는하이 - 임피던스 ). 이모드에서전류소비를줄이기위하여모든 I/O 핀은 VDD 또는 VSS 에연결되어있거나외부로부터전류가유입 / 유출되지않은상태로있어야하며 A/D 모듈을오프시키며외부클럭을디제이블시켜야한다. 하이 - 임피던스에있는모든 I/O 핀들은플로팅입력에의해야기되는스위칭전류를피하기위하여반드시하이또는로우상태에있어야한다. T0CKI 입력또한적은소비전류를위하여 VDD 또는 VSS 에연결되어있어야한다. 포트B 의내장풀-업또한고려되어야만한다. MCLR 핀은반드시로직하이 - 레벨에연결되어있어야만한다. (VIHMC). 12.14.1 슬립모드로부터웨이크 - 업 다음과같은이벤트가발생하였을때슬립모드로부터디바이스를웨이크 - 업시킬수있다 : 1. MCLR 핀을통한외부리셋입력. 2. 워치 - 독타이머웨이크 - 업 ( 만약 WDT 가인에이블되어있다면 ). 3. INT 핀을통한인터럽트, RB 포트변화인터럽트또는주변장치인터럽트. 외부 MCLR 리셋은디바이스리셋을야기시키지만다른모든이벤트는슬립모드로부터디바이스를웨이크 - 업시킨후계속프로그램을수행시킨다. STATUS 레지스터의 TO 와 PD 비트를통하여어떠한상황에서디바이스가리셋되었는지를판단할수있다. PD 비트는파워 - 업상황에서셋트되고슬립모드에진입시에클리어된다. 만약 WDT 타임 - 아웃이발생되어디바이스가웨이크 - 업되면 TO 비트는클리어가될것이다. 다음과같은주변장치인터럽트는슬립모드로부터디바이스를깨울수있다 : 1. PSP 읽기또는쓰기 (PIC16CR74/77 만적용 ). 2. TMR1 인터럽트. 타이머 1 은반드시비동기카운터모드로동작되어야만한다. 3. CCP 캡쳐모드인터럽트. 4. 스페셜이벤트트리거 ( 타이머1 비동기모드, 외부클럭을사용할때 ). 5. SSP ( 시작 / 멈춤 ) 비트검출인터럽트. 6. 슬레이브모드에서 SSP 송신또는수신 (SPI/I 2 C). 7. USART RX 또는 TX ( 동기슬레이브모드 ). 8. A/D 컨버젼 (A/D 클럭소스가 RC 인경우 ). 다른주변장치들은칩내부에클럭이존재하지않으므로슬립모드에서인터럽트를발생시키지않는다. SLEEP 명령이실행되었을때다음명령이미리페치 (PC + 1) 된다. 인터럽트이벤트를통하여디바이스를웨이크 - 업시키는경우는반드시일치되는인터럽트인에이블비트는셋트되어있어야한다. 웨이크 - 업의발생은 GIE 비트의상태와는무관하다. 만약 GIE 비트가클리어되어있다면 ( 디제이블 ) 디바이스는계속하여 SLEEP 명령이후의명령을수행할것이다. 만약 GIE 비트가셋트되어있다면 ( 인에이블 ) 디바이스는 SLEEP 명령이후의하나의명령을수행한후인터럽트어드레스 (0004h) 로점프할것이다. 이러한경우 SLEEP 명령이후의명령실행은예기치않은결과를야기시킬수있기때문에사용자는반드시 SLEEP 명령이후에하나의 NOP 명령을넣어주어야한다. 12.14.2 인터럽트를사용한웨이크 - 업 글로벌인터럽트비트가디제이블 ( GIE 비트가클리어됨 ) 되어있을때인터럽트인에이블비트와인터럽트요구플래그가셋트되면아래와같은현상중하나가발생될것이다 : 만약 SLEEP 명령실행이전에인터럽트가발생된다면 SLEEP 명령은 NOP 로처리가된다. 따라서 WDT 와 WDT 포스트스케일러는클리어되지않으며 TO 비트는셋트되지않고 PD 비트는클리어되지않는다. 만약 SLEEP 명령실행중이거나이후에인터럽트가발생된다면디바이스는즉시슬립으로부터깨어난다. 즉 SLEEP 명령이웨이크 - 업이전에실행되는것이다. 따라서 WDT 와 WDT 포스트스케일러는클리어되며 TO 비트는셋트되고 PD 비트는클리어된다. SLEEP 명령이실행되기이전에플래그비트들이체크되었다할지라도플래그비트들은 SLEEP 명령이수행되기이전에셋트되는것은가능하다. SLEEP 명령이실행되었는지를확인하기위해서는 PD 비트를체크하면된다. PD 비트가셋트이면 SLEEP 명령은 NOP 로처리된다. WDT 를클리어시키기위해서는 SLEEP 명령이전에 CLRWDT 명령이실행되어야만한다. DS21993A_KR- 페이지 102 2006 마이크로칩테크놀로지

그림 12-12: 인터럽트를통한슬립으로부터웨이크 - 업 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 OSC1 CLKOUT (4) TOST (2) INT 핀 INTF 플래그 (INTCON<1>) 인터럽트기간 ( 노트 2) GIE 비트 (INTCON<7>) 프로세서가 슬립에있음 명령어흐름 PC PC PC + 1 PC + 2 PC + 2 PC + 2 0004h 0005h 명령어가페치됨 Inst(PC) = 슬립 Inst(PC + 1) Inst(PC + 2) Inst(0004h) Inst(0005h) 명령어실행 Inst(PC - 1) 슬립 Inst(PC + 1) 더미사이클 더미사이클 Inst(0004h) 노트 1: XT, HS 또는 LP 오실레이터모드라고가정. 2: TOST = 1024 TOSC ( 분주되지않은파형 ) 이러한시간지연은 RC 오실레이터모드에서는적용되지않는다. 3: GIE = 1 라가정. 이경우웨이크 - 업이후프로세서는인터럽트루틴으로점프한다. 만약 GIE = 0 이면계속프로그램이수행이된다. 4: CLKOUT 는이러한 OSC 모드에서는가능하지않지만참조를위하여표시한다. 12.15 프로그램검증 / 코드프로텍션 만약코드프로텍션비트가인에이블되어있지않으면칩내부의프로그램메모리영역은검증목적으로읽을수있다. 12.16 ID 영역 4 메모리영역 (2000h-2002h) 은 ID 영역이며그영역에사용자는체크썸코드또는다른아이디코드를저장할수있다. 이영역은일반적인프로그램수행중에는억세스가불가능하며프로그램검증을위해서읽기가가능하다. ID 영역의하위 4 비트만을사용하기를권장한다. 12.17 사용자코드 PIC16CR7X 마이크로콘트롤로는 ROM 을기반으로하고있기때문에사용자가프로그래밍을하는것은불가능하다. 따라서마지막으로작성된코드를어떻게제출하면되는지에대해서는마이크로칩한국지사와상의하거나어플리케이션노트 AN1010, PIC16CR ROM 코드제출과정 을참조하면된다. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 103

노트 : DS21993A_KR- 페이지 104 2006 마이크로칩테크놀로지

13.0 명령어셋요약 PIC16 명령어셋은다음과같은 3 개의기본적인그룹으로나눌수있다 : 바이트제어관련동작명령어 비트제어관련동작명령어 상수및제어관련명령어 PIC16 명령어는 14 비트워드로구성되어있으며이안에명령어타입을알수있는오피코드와명령의동작을규정하는오퍼랜드를포함하고있는형식으로구성되어있다. 각카테고리의일반적인포멧정보는그림 13-1 부분을참조하기를바라며다양한오피코드필드는테이블 13-1 에요약되어있다. 테이블 13-2 은 MPASM TM 어셈블러에서사용가능한모든명령어를보여주고있다. 각명령어에대한자세한사항은 PICmicro 미드 - 레인지 MCU 패밀리참조메뉴얼 (DS33023) 을참조하기를바란다. 바이트제어관련명령어에서 f 는파일레지스터를의미하고 d 는결과가저장될방향을의미한다. d 가 0 이면결과는 W 레지스터로저장되며 1 이면파일레지스터로저장이된다. 비트제어관련명령어에서 b 는비트를의미하며오퍼랜드에서선택된파일레지스터의특정비트를가리키고있다. 상수및제어관련명령어에서 k 는 8 비트또는 11 비트의상수값을의미한다. 하나의명령어사이클은 4 개의오실레이터로구성된다 ; 만약오실레이터주파수를 4 MHz 를사용한다면명령어실행시간은 1 µs 가될것이다. 조건테스트명령이참이거나명령의결과로인하여프로그램카운터가변화되는경우를제외한모든명령어는하나의명령어사이클에서실행된다. 조건테스트명령또는프로그램카운터가변화하는명령어인경우는 2 개의명령어사이클이필요하며이경우두번째실행사이클은 NOP 로처리된다 노트 : 향후 PIC16CR7X 디바이스의호환성을위하여 OPTION 과 TRIS 명령어는사용하지말아야한다. 모든명령어예제에서 16 진수표현을위하여 0xhh 의포멧이사용되며여기에서 h 는헥사디지트를의미한다. 13.1 읽기 - 변경 - 쓰기동작 어떤파일레지스터관련명령어들은읽기 - 변경 - 쓰기 (R-M-W) 동작으로수행이되는데이는레지스터가읽혀진후에데이터가변경되고그결과가명령어또는목적지 d 에의하여저장되는경우을의미한다. 비록레지스터에쓰기명령일지라도읽기동작이먼저수행될수도있다. 예를들면 CLRF PORTB 명령은 PORTB 를읽고나서모든데이터비트를클리어시킨후에다시 PORTB 로라이팅된다. 이러한경우핀이입력으로구성되어있고 PORTB 변환인터럽트기능을사용하는경우 RBIF 플래그가클리어되는예기치않은상황이발생될수있다. 테이블 13-1: f 필드 그림 13-1: 오피코드필드서술 서술 파일레지스터어드레스 (0x00 ~ 0x7F) W 워킹레지스터 ( 어큐무레이터 ) b k 8 비트파일레지스터내의비트어드레스 상수필드, 상수데이터또는레이블 x 의미없는영역 (= 0 또는 1). 어셈블러는 x=0 를발생시킬것이다. 그것은마이크로칩소프트웨어툴을이용할때요구가된다. d 목적지선택 ; d = 0: W 레지스터에저장, d = 1: 파일레지스터에저장. 초기치는 d = 1. PC TO PD 프로그램카운터 타임 - 아웃비트 파워다운비트 명령어의일반적인포멧 바이트제어관련명령어 13 8 7 6 0 오피코드 d f ( 파일 #) d = 0 이면목적지가 W d = 1 이면목적지가파일레지스터 f = 7 비트파일레지스터어드레스 비트제어관련명령어 13 10 9 7 6 0 오피코드 b ( 비트 #) f ( 파일 #) b = 3 비트어드레스 f = 7 비트파일레지스터어드레스 상수및제어동작관련명령어 일반적인명령어 13 8 7 0 오피코드 k ( 상수값 ) k = 8 비트상수값 CALL 과 GOTO 명령인경우 13 11 10 0 오피코드 k ( 상수값 ) k = 11 비트상수값 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 105

테이블 13-2: PIC16CR7X 명령어셋 뉴모닉, 오퍼랜드 서술 사이클 상위 14 비트오피코드 하위 영향을받는비트 노트 바이트제어관련명령어 ADDWF ANDWF CLRF CLRW COMF DECF DECFSZ INCF INCFSZ IORWF MOVF MOVWF NOP RLF RRF SUBWF SWAPF XORWF f, d f, d f f, d f, d f, d f, d f, d f, d f, d f f, d f, d f, d f, d f, d W 레지스터와파일레지스터를더함 W 레지스터와파일레지스터를 AND 함파일레지스터를클리어함 W 레지스터를클리어함파일레지스터의비트를반전시킴파일레지스터의값을하나감소시킴레지스터의값을하나감소후 0 이면스킵파일레지스터의값을하나증가시킴레지스터의값을하나증가후 0 이면스킵 W 레지스터와파일레지스터를 OR 함파일레지스터의값을이동시킴 W 레지스터의값을파일레지스터로이동아무런뜻이없음캐리를동반하여왼쪽으로쉬프트시킴캐리를동반하여오른쪽으로쉬프트시킴파일레지스터에서 W 레지스터의값을뺌상위니블과하위니블을서로바꿈 W 레지스터와파일레지스터를 XOR 함 1 1 1 1 1 1 1(2) 1 1(2) 1 1 1 1 1 1 1 1 1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0111 0101 0001 0001 1001 0011 1011 1010 1111 0100 1000 0000 0000 1101 1100 0010 1110 0110 dfff dfff lfff 0xxx dfff dfff dfff dfff dfff dfff dfff lfff 0xx0 dfff dfff dfff dfff dfff ffff ffff ffff xxxx ffff ffff ffff ffff ffff ffff ffff ffff 0000 ffff ffff ffff ffff ffff C,DC,Z Z Z Z Z Z Z Z Z C C C,DC,Z Z 1,2 1,2 2 1,2 1,2 1,2,3 1,2 1,2,3 1,2 1,2 1,2 1,2 1,2 1,2 1,2 BCF BSF BTFSC BTFSS ADDLW ANDLW CALL CLRWDT GOTO IORLW MOVLW RETFIE RETLW RETURN SLEEP SUBLW XORLW f, b f, b f, b f, b k k k k k k k k k 파일레지스터의비트를클리어함파일레지스터의비트를클리어함비트를테스트하여클리어면스킵함비트를테스트하여셋트면스킵함 비트제어관련명령어 1 1 1 (2) 1 (2) 상수및제어동작관련명령어 상수값과 W 레지스터를더하여 W 에저장상수값과 W 레지스터를 AND 하여 W 에저장서브루틴호출워치 - 독타이머클리어특정어드레스로점프시킴상수값과 W 레지스터를 OR 하여 W 에저장 W 레지스터에상수값을넣음인터럽트로부터복귀 W 레지스터에상수값을넣은후복귀서브루틴으로부터복귀스탠바이모드로들어감상수에서 W 를뺀후결과를 W 에저장상수값과 W 레지스터를 XOR 하여 W 에저장 1 1 2 1 2 1 1 2 2 2 1 1 1 01 01 01 01 11 11 10 00 10 11 11 00 11 00 00 11 11 00bb 01bb 10bb 11bb 111x 1001 0kkk 0000 1kkk 1000 00xx 0000 01xx 0000 0000 110x 1010 bfff bfff bfff bfff kkkk kkkk kkkk 0110 kkkk kkkk kkkk 0000 kkkk 0000 0110 kkkk kkkk ffff ffff ffff ffff kkkk kkkk kkkk 0100 kkkk kkkk kkkk 1001 kkkk 1000 0011 kkkk kkkk C,DC,Z Z TO,PD Z TO,PD C,DC,Z Z 노트 1: I/O 레지스터가자신과상관있는명령과함께사용되는경우 ( 예 : MOVF PORTB, 1) 값은현재핀상의값이될것이다. 예를들면입력으로구성된핀의데이터래치값이 1 인경우외부디바이스에의하여로우상태로전환되었다면데이터값은 0 이될것이다. 2: 만약이러한명령들이 TM0 레지스터와상관이있는경우 (d = 1 일경우 ) 타이머 0 모듈로할당이되었다면프리스케일러는클리어될것이다. 3: 만약프로그램카운터 (PC) 가변경되거나조건부명령이참일경우명령어는 2 사이클이요구되며두번째사이클은 NOP 로실행된다. 1,2 1,2 3 3 노트 : 미드 - 레인지명령어셋에대한자세한사항은 PICmicro 미드 - 레인지 MCU 패밀리참조메뉴 (DS33023) 을참조하기를바란다.. DS21993A_KR- 페이지 106 2006 마이크로칩테크놀로지

13.2 명령어설명 ADDLW W + 상수 -> W 구문 : [ 라벨 ] ADDLW k 오퍼랜드 : 0 k 255 동작 : (W) + k (W) 영향플래그 : C, DC, Z 상세설명 : W 레지스터에 8 비트상수 k 값 을더하여그결과를 W 레지스터 에저장한다. BCF 파일레지스터특정비트클리어 구문 : [ 라벨 ] BCF f,b 오퍼랜드 : 0 f 127 0 b 7 동작 : 0 (f<b>) 영향플래그 : 없음 상세설명 : 파일레지스터의비트를클리어 ADDWF 파일레지스터 + W 레지스터 구문 : [ 라벨 ] ADDWF f,d 오퍼랜드 : 0 f 127 d [0,1] 동작 : (W) + (f) ( 목적지 ) 영향플래그 : C, DC, Z 상세설명 : W 레지스터에파일레지스터의 값을더한다. 결과는 d 가 0 이 면 W 레지스터에저장이되고 d 가 1 이면자기자신인파일레지 스터에저장이된다. BSF 파일레지스터특정비트셋트 구문 : [ 라벨 ] BSF f,b 오퍼랜드 : 0 f 127 0 b 7 동작 : 1 (f<b>) 영향플래그 : 없음 상세설명 : 파일레지스터의비트를셋트 ANDLW 상수값 (AND) W --> W 구문 : [ 라벨 ] ANDLW k 오퍼랜드 : 0 k 255 동작 : (W).AND. (k) (W) 영향플래그 : Z 상세설명 : W 레지스터에 8 비트상수값을 AND 한후그결과값을 W 레지 스터에저장시킨다. BTFSS 비트를테스트하여 1 이면스킵 구문 : [ 라벨 ] BTFSS f,b 오퍼랜드 : 0 f 127 0 b < 7 동작 : (f<b>) = 1 이면스킵영향플래그 : 없음상세설명 : 비트 b 가 0 이면다음명령어가실행됨. 비트 b 가 1 이면다음명령은무시되고 NOP 로처리됨. 이경우 2TCY 명령임. ANDWF 파일레지스터 (AND) W 구문 : [ 라벨 ] ANDWF f,d 오퍼랜드 : 0 f 127 d [0,1] 동작 : (W).AND. (f) ( 목적지 ) 영향플래그 : Z 상세설명 : W 레지스터에파일레지스터의 값을 AND 한다. 결과는 d 가 0 이면 W 레지스터에저장이되고 d 가 1 이면자기자신인파일레 지스터에저장이된다. BTFSC 비트를테스트하여 0 이면스킵 구문 : [ 라벨 ] BTFSC f,b 오퍼랜드 : 0 f 127 0 b 7 동작 : (f<b>) = 0 이면스킵영향플래그 : 없음상세설명 : 비트 b 가 1 이면다음명령어가실행됨. 비트 b 가 0 이면다음명령은무시되고 NOP 로처리됨. 이경우 2TCY 명령임. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 107

CALL 서브루틴호출 구문 : [ 라벨 ] CALL k 오퍼랜드 : 0 k 2047 동작 : (PC)+ 1 TOS, k PC<10:0>, (PCLATH<4:3>) PC<12:11> 영향플래그 : 없음상세설명 : 서브루틴호출명령. 먼저 (PC + 1) 이스택으로저장된후즉시 11 비트어드레스가 PC<10:0> 로로드된다. PC 의상위비트는 PCLATH 로부터로드된다. CALL 은두명령어사이클명령어이다. CLRWDT 구문 : 오퍼랜드 : 동작 : 영향플래그 : 상세설명 : 워치 - 독타이머를클리어함 [ 라벨 ] CLRWDT 없음 00h WDT 0 WDT 프리스케일러, 1 TO 1 PD TO, PD CLRWDT 명령은워치 - 독타이머를리셋시킨다. 또한 WDT 의프리스케일러를리셋시킨다. TO 와 PD 비트가셋트된다. CLRF 파일레지스터를클리어함 구문 : [ 라벨 ] CLRF f 오퍼랜드 : 0 f 127 동작 : 00h (f) 1 Z 영향플래그 : Z 상세설명 : 파일레지스터의값을클리어하 며이경우 Z 비트가셋트된다. COMF 파일레지스터를 2의보수를취함 구문 : [ 라벨 ] COMF f,d 오퍼랜드 : 0 f 127 d [0,1] 동작 : (f) ( 목적지 ) 영향플래그 : Z 상세설명 : 파일레지스터의내용을 2 의보수 를취한다. 결과는 d 가 0 이면 W 레지스터에저장이되고 d 가 1 이면자기자신인파일레지스터 에저장이된다. CLRW 구문 : 오퍼랜드 : 동작 : 영향플래그 : 상세설명 : W 레지스터를클리어함 [ 라벨 ] CLRW 없음 00h (W) 1 Z Z W 레지스터의값을클리어하며이경우 Z 비트가셋트된다. DECF 파일레지스터를하나감소시킴 구문 : [ 라벨 ] DECF f,d 오퍼랜드 : 0 f 127 d [0,1] 동작 : (f) - 1 ( 목적지 ) 영향플래그 : Z 상세설명 : 파일레지스터의값을하나감소시킴. 결과는 d 가 0 이면 W 레지스터에저장이되고 d 가 1 이면자기자신인파일레지스터에저장이된다. DS21993A_KR- 페이지 108 2006 마이크로칩테크놀로지

DECFSZ 파일레지스터를하나감소, 결과가 0 이면다음명령스킵 구문 : [ 라벨 ] DECFSZ f,d 오퍼랜드 : 0 f 127 d [0,1] 동작 : (f) - 1 ( 목적지 ); 만약결과 = 0 이면스킵영향플래그 : 없음상세설명 : 파일레지스터의값을하나감소시킴. 결과는 d 가 0 이면 W 레지스터에저장이되고 d 가 1 이면자기자신인파일레지스터에저장이된다. 만약결과가 1 이면다음명령이실행되고 0 이면다음명령은무시되고 NOP 로처리됨. 이경우 2TCY 명령임 INCFSZ 파일레지스터를하나증가, 결과가 0 이면다음명령스킵구문 : [ 라벨 ] INCFSZ f,d 오퍼랜드 : 0 f 127 d [0,1] 동작 : (f) + 1 ( 목적지 ), 만약결과 = 0 이면스킵영향플래그 : 없음 상세설명 : 파일레지스터의값을하나증가시킴. 결과는 d 가 0 이면 W 레지스터에저장이되고 d 가 1 이면자기자신인파일레지스터에저장이된다. 만약결과가 1 이면다음명령이실행되고 0 이면다음명령은무시되고 NOP 로처리됨. 이경우 2TCY 명령임 GOTO 무조건점프 구문 : [ 라벨 ] GOTO k 오퍼랜드 : 0 k 2047 동작 : k PC<10:0> PCLATH<4:3> PC<12:11> 영향플래그 : 없음 상세설명 : GOTO 은무조건점프명령이다.11 비트어드레스가 PC<10:0> 로로 드된다. PC 의상위비트는 PCLATH<4:3> 로부터로드된다. GOTO 는두명령어사이클명령어 이다. IORLW W (OR) 상수값 구문 : [ 라벨 ] IORLW k 오퍼랜드 : 0 k 255 동작 : (W).OR. k (W) 영향플래그 : Z 상세설명 : W 레지스터에 8비트상수 k 값을 OR 하여그결과를 W 레지스터에 저장한다. INCF 파일레지스터를하나증가시킴 구문 : [ 라벨 ] INCF f,d 오퍼랜드 : 0 f 127 d [0,1] 동작 : (f) + 1 ( 목적지 ) 영향플래그 : Z 상세설명 : 파일레지스터의값을하나증가 시킴. 결과는 d 가 0 이면 W 레 지스터에저장이되고 d 가 1 이 면자기자신인파일레지스터에 저장이된다. IORWF W (OR) 파일레지스터 f 구문 : [ 라벨 ] IORWF f,d 오퍼랜드 : 0 f 127 d [0,1] 동작 : (W).OR. (f) ( 목적지 ) 영향플래그 : Z 상세설명 : W 레지스터와파일레지스터를 OR 한다. 결과는 d 가 0 이면 W 레지스터에저장이되고 d 가 1 이면자기자신인파일레지스터 에저장이된다. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 109

MOVF 파일레지스터의값을이동 구문 : [ 라벨 ] MOVF f,d 오퍼랜드 : 0 f 127 d [0,1] 동작 : (f) ( 목적지 ) 영향플래그 : Z 상세설명 : 파일레지스터의값을 d 의목적 지로이동시킨다. 만약 d = 0 이 면 W 레지스터로이동시키는것 을의미하며 d = 1 이면자기자 신의레지스터로이동시킨다. 이명령어는상태플래그 Z 비트 에영향을미치기때문에테스트 하는경우종종사용된다. NOP 아무런뜻도없는명령어 구문 : [ 라벨 ] NOP 오퍼랜드 : 없음 동작 : 아무런뜻도없는명령어 영향플래그 : 없음 상세설명 : 아무런뜻도없는명령어. MOVLW W 레지스터로상수값을로드함 구문 : [ 라벨 ] MOVLW k 오퍼랜드 : 0 k 255 동작 : k (W) 영향플래그 : 없음 상세설명 : 8비트상수 k 값을 W 레지스터로 로드한다. RETFIE 인터럽트로부터복귀하는명령어 구문 : [ 라벨 ] RETFIE 오퍼랜드 : 없음 동작 : TOS PC, 1 GIE 영향플래그 : 없음 MOVWF W 레지스터의값을파일레지스터로이동시킨다 구문 : [ 라벨 ] MOVWF f 오퍼랜드 : 0 f 127 동작 : (W) (f) 영향플래그 : 없음 상세설명 : W 레지스터의값을파일레지스 터로이동시킨다. RETLW W 에상수값을넣고복귀 구문 : [ 라벨 ] RETLW k 오퍼랜드 : 0 k 255 동작 : k (W); TOS PC 영향플래그 : 없음 상세설명 : 8 비트상수를 W 레지스터에넣은 후원래의프로그램으로복귀함 DS21993A_KR- 페이지 110 2006 마이크로칩테크놀로지

RLF 캐리비트를동반하여로테이트레프트 구문 : [ 라벨 ] RLF f,d 오퍼랜드 : 0 f 127 d [0,1] 동작 : 상세설명참조 영향플래그 : C 상세설명 : 캐리비트를동반하여파일레지스 터를 1 비트왼쪽으로쉬프트시킴. 결과는 d 가 0 이면 W 레지스터 에저장이되고 d 가 1 이면자기 자신인파일레지스터에저장이된 다. C Register f SLEEP 구문 : [ 라벨 ] SLEEP 오퍼랜드 : 없음 동작 : 00h WDT, 0 WDT 프리스케일러, 1 TO, 0 PD 영향플래그 : 상세설명 : TO, PD 파워다운상태비트 PD 는클리어되며타임 - 아웃상태비트는셋트된다. 워치 - 독타이머와프리스케일러값은클리어된다슬립모드로들어가면프로세서의오실레이터는동작을하지않는다. RETURN 서브루틴으로부터복귀함 구문 : [ 라벨 ] RETURN 오퍼랜드 : 없음 동작 : TOS PC 영향플래그 : 없음 상세설명 : 서브루틴으로부터복귀함. 스택 에저장되어있는값이프로그램 카운터로로드됨. 이것은 2 사이 클명령어임. SUBLW 8 비트상수 - W --> W 구문 : [ 라벨 ] SUBLW k 오퍼랜드 : 0 k 255 동작 : k - (W) (W) 영향플래그 : C, DC, Z 상세설명 : 8 비트상수 k 값에서 W 레지스터 의값을뺀후그결과값을 W 레지 스터에저장시킨다. RRF 캐리비트를동반하여로테이트라이트 구문 : [ 라벨 ] RRF f,d 오퍼랜드 : 0 f 127 d [0,1] 동작 : 상세설명참조 영향플래그 : C 상세설명 : 캐리비트를동반하여파일레지스터를 1 비트오른쪽으로쉬프트시킴. 결과는 d 가 0 이면 W 레지스터에저장이되고 d 가 1 이면자기자신인파일레지스터에저장이된다. C Register f SUBWF 파일레지스터 - W 레지스터 구문 : [ 라벨 ] SUBWF f,d 오퍼랜드 : 0 f 127 d [0,1] 동작 : (f) - (W) ( 목적지 ) 영향플래그 : C, DC, Z 상세설명 : 파일레지스터의값에서 W 레지스 터의값을뺀다. 결과는 d 가 0 이 면 W 레지스터에저장이되고 d 가 1 이면자기자신인파일레지스터 에저장이된다. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 111

SWAPF 파일레지스터의상위니블과하위니블을서로교환한다 구문 : [ 라벨 ] SWAPF f,d 오퍼랜드 : 0 f 127 d [0,1] 동작 : (f<3:0>) ( 목적지 <7:4>), (f<7:4>) ( 목적지 <3:0>) 영향플래그 : 없음상세설명 : 파일레지스터의상위니블과하위니블을서로교환한다. 결과는 d 가 0 이면 W 레지스터에저장이되고 d 가 1 이면자기자신인파일레지스터에저장이된다. XORWF 파일레지스터 (XOR) W 구문 : [ 라벨 ] XORWF f,d 오퍼랜드 : 0 f 127 d [0,1] 동작 : (W).XOR. (f) ( 목적지 ) 영향플래그 : Z 상세설명 : 파일레지스터와 W 레지스터를 XOR 시킨다. 결과는 d 가 0 이면 W 레지스터에저장이되고 d 가 1 이면자기자신인파일레지스터 에저장이된다. XORLW W (XOR) 8 비트상수값 구문 : [ 라벨 ] XORLW k 오퍼랜드 : 0 k 255 동작 : (W).XOR. k (W) 영향플래그 : Z 상세설명 : W 레지스터와 8 비트상수 k 값 을 XOR 한후그결과를 W 레지 스터에저장시킨다. DS21993A_KR- 페이지 112 2006 마이크로칩테크놀로지

14.0 개발지원 PICmicro 마이크로콘트롤러는하드웨어및소프트웨어전영역에걸쳐개발장비를지원하고있다 : 통합개발환경 - MPLAB IDE 소프트웨어 어셈블러 / 컴파일러 / 링커 - MPASM TM 어셈블러 - MPLAB C18 와 MPLAB C30 C 컴파일러 - MPLINK TM 오브젝트링커 / MPLIB TM 오브젝트라이브러리안 - MPLAB ASM30 어셈블러 / 링커 / 라이브러리 시뮬레이터 - MPLAB SIM 소프트웨어시뮬레이터 에뮬레이터 - MPLAB ICE 2000 인 - 서킷에뮬레이터 - MPLAB ICE 4000 인 - 서킷에뮬레이터 인 - 서킷디버거 - MPLAB ICD 2 디바이스프로그래머 - PICSTART Plus 엔지니어용프로그래머 - MPLAB PM3 디바이스프로그래머 - PICkit 2 엔지니어용프로그래머 저가형의데모및개발보드그리고평가키트 14.1 MPLAB IDE 통합환경소프트웨어 MPLAB IDE 소프트웨어는이전에 8/16 비트마이크로콘트롤러마켓에서경험해보지못한아주쉬운소프트웨어개발환경을지원하고있다. MPLAB IDE 는 Windows OS 를기반으로아래와같이구동된다 : 다양한디버깅툴을인터페이스가능 - 시뮬레이터 - 프로그래머 ( 별도로판매됨 ) - 에뮬레이터 ( 별도로판매됨 ) - 인 - 서킷디버거 ( 별도로판매됨 ) 칼라풀한에디터환경 복수의프로젝트매니져 값을직접변경가능한사용자데이터윈도우 하이 - 레벨소스코드디버깅 쉬운방법으로각종레지스터값을초기화하기위한비쥬얼디바이스이니셜라이져지원 마우스조작으로쉽게변수값을확인가능 소스코드상에서워치윈도우로마우스를통한변수전달가능 온 - 라인도움말지원 HI-TECH C 컴파일러및 IAR C 컴파일러와같은협력회사툴사용가능또한 MPLAB IDE 에서는다음과같은행할수있다 : 소스파일에디트 ( 어셈블러또는 C) 간단하게어셈블 ( 또는컴파일 ) 이가능함과동시에 PICmicro MCU 에뮬레이터또는시뮬레이터툴로다운로드됨 ( 모든프로젝트정보가자동적으로업데이트됨 ) 아래파일을사용하여디버깅가능 : - 소스파일 ( 어셈블러또는 C) - 어셈블러와 C 가혼합된코드 - 기계어코드 MPLAB IDE 는비용이전혀들지않는시뮬레이터로부터저렴한인 - 서킷디버거그리고완벽한에뮬레이터장비까지완벽하고다양한개발환경을지원하고있다. 이것은툴을업그레이드할때소요되는시간을줄일수있다는장점이있다. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 113

14.2 MPASM 어셈블러 MPASM 은모든 PICmicro MCUs 제품을위한유니버셜마크로어셈블러이다. MPASM 어셈블러는 MPLINK 오브젝트링커를위한재배치가능한오브젝트파일, Intel 표준 HEX 파일, 메모리사용과각종심볼을나태는 MAP 파일그리고소스라인과기계어가포함된절대적인 LST 파일, 디버깅을위한 COFF 파일등을생성시킨다. MPASM 어셈블러는다음과같은기능을포함하고있다 : MPLAB IDE 프로젝트에서사용가능 어셈블러소스코드안에사용자정의한마크로를사용가능 다양한목적의소스파일을위하여조건부어셈블리가가능 어셈블리과정을제어하기위한디렉티브사용가능 14.3 MPLAB C18 와 MPLAB C30 C 컴파일러 MPLAB C18 과 MPLAB C30 코드개발시스템은마이크로칩 PIC18 마이크로콘트롤러패밀리와 dspic30, dspic33 그리고 PIC24 디지털시그널콘트롤러패밀리개발을위한완벽한 ANSI-C 컴파일러이다. 이컴파일러들은다른컴파일러보다사용하기쉽고높은코드옵티마이징이되며파워풀한라이브러리들을지원하고있다. 쉬운소스레벨의디버깅을위하여컴파일러는디버깅에필요한다양한심볼정보들을 MPLAB IDE 디버거에제공을한다. 14.4 MPLINK 오브젝트링커 / MPLIB 오브젝트라이브러리안 14.5 MPLAB ASM30 어셈블러, 링커그리고라이브러리안 MPLAB ASM30 어셈블러는 dspic30f 디바이스를위해심볼릭어셈블리언어로부터기계어코드로재배치시키는역활을하며 MPLAB C30 C 컴파일러는어셈블러로부터자신의오브젝트파일을생성시키는역활을한다. 어셈블러의다음과같은기능을내장한다. 완전한 dspic30f 명령어셋지원 픽스드포인트및플로팅포인트데이터지원 커맨드라인인터페이스 디렉티브셋 유연한마크로언어 MPLAB IDE 에서호환됨 14.6 MPLAB SIM 소프트웨어시뮬레이터 MPLAB SIM 소프트웨어시뮬레이터는 PC 환경에서 PICmicro MCU 와 dspic DSC 디바이스의명령어들을시뮬레이션하여보는데사용이된다. 주어진명령어상에서데이터영역들은테스트되고변경되고내부의스티뮬러스콘트롤러로부터적용될수있다. 레지스터들은분석을위하여파일로고정될수도있다. 트레이스버퍼및로직아날라이져는내부레지스터, 대부분의주변장치,I/O 상태그리고프로그램이어디에서실행이되는지추적하고기록하는것이가능하다. MPLAB SIM 소프트웨어에서 MPLAB C18, MPLAB C30 C 컴파일러, MPASM 그리고 MPLAB ASM30 어셈블러를사용하여심볼릭디버깅을할수있다. 소프트웨어시뮬레이터를이용함으로써하드웨어환경이아직준비가안된상황에서소스코드를테스트하여볼수있기때문에개발의유연성을가져오는경제적인소프트웨어개발툴이라할수있다. MPLINK 오브젝트링커는 MPASM 어셈블러와 MPLAB C18 C 컴파일러에서생성된재배치가능한오브젝트파일들을링크시킨다. 그것은링커스크립트로부터디렉티브를사용하여미리컴파일된라이브러리로부터재배치시킬수있다. MPLIB 오브젝트라이브러리안은미리컴파일된코드의라이브러리파일을변경하거나새로생성시킬수있다. 라이브러리하나의루틴이소스파일에의해호출되었을때루틴을포함하고있는모듈만어플리케이션에링크될것이다. 이것은서로다른다양한어플리케이션에서큰라이브러리를효과적으로사용가능하게해준다. 오브젝트링커 / 라이브러리는다음의기능을포함한다 : 작고많은파일대신하나의라이브러리의효과적인링크 서로관련된모듈의그룹에의해코드관리의효율성 대치, 제거및추출을위한라이브러리의유연성 DS21993A_KR- 페이지 114 2006 마이크로칩테크놀로지

14.7 MPLAB ICE 2000 고성능인 - 서킷에뮬레이터 MPLAB ICE 2000 인 - 서킷에뮬레이터는프러덕트개발엔지니어가 PICmicro 마이크로콘트로러를이용하여디자인할때손쉽게개발할수있도록도움을주는에뮬레이터이다. MPLAB ICE 2000 인 - 서킷에뮬레이터의소프트웨어는 MPLAB IDE 개발환경을이용할수있으며통합환경 IDE 를통하여소스코드에디트, 컴파일, 다운로드및디버깅을할수있다. MPLAB ICE 2000 는트레이스메모리, 트리거및데이터모니터링기능을내장한고성능에뮬레이터시스템이다. 또한상호교환가능한프로세스모듈을이용하여서로다른프로세서를이용가능하도록설계되어있다. 따라서이러한 MPLAB ICE 2000 인 - 서킷에뮬레이터아키텍쳐로인하여향후출시되는새로운마이크로콘트롤로도지원이된다. MPLAB ICE 2000 인 - 서킷에뮬레이터시스템은일반적으로고가의개발툴에서지원하는실시간에뮬레이터시스템환경으로설계가되어있다. 이러한환경을위하여 PC 플랫폼과 Microsoft Windows 32-bit 오퍼레이팅시스템이간단하면서도안정적인시스템구동을위하여선택되었다. 14.8 MPLAB ICE 4000 고성능인 - 서킷에뮬레이터 MPLAB ICE 4000 인 - 서킷에뮬레이터는프러덕트개발엔지니어가고성능 PICmicro 마이크로콘트로러및 dspic DSC 를이용하여디자인할때손쉽게개발할수있도록도움을주는에뮬레이터이다. MPLAB ICE 4000 인 - 서킷에뮬레이터의소프트웨어는 MPLAB IDE 개발환경을이용할수있으며통합환경 IDE 를통하여소스코드에디트, 컴파일, 다운로드및디버깅을할수있다. MPLAB ICE 4000 는 MPLAB ICE 2000 과같은고성능의에뮬레이터시스템이지만에뮬레이션메모리가더울증가되었으며 dspic30f 과 PIC18XXXX 디바이스들을위하여더욱고속으로구현이된다. 또한이러한 ICE 4000 에뮬레이터시스템에는컴플렉스트리거및타이밍기능그리고최대 2M 바이트의외부메모리를사용할수있도록설계가되어있다. MPLAB ICE 4000 인 - 서킷에뮬레이터시스템은일반적으로고가의개발툴에서지원하는실시간에뮬레이터시스템환경으로설계가되어있다. 이러한환경을위하여 PC 플랫폼과 Microsoft Windows 32-bit 오퍼레이팅시스템이간단하면서도안정적인시스템구동을위하여선택되었다. 14.9 MPLAB ICD 2 인 - 서킷디버거 마이크로칩인 - 서킷디버거 MPLAB ICD 2 는컴퓨터와 RS-232 및 USB 를사용하여인터페이스할수있는고성능, 저비용, 실시간개발툴이다. 이툴은기본적으로플래시 PICmicro 에사용할수있으며또한다른 PICmicro 뿐만아니라 dspic DSC 제품에도사용가능하다. MPLAB ICD 2 는플래시디바이스속에내장된디버깅기능을이용한다. 이러한기능은마이크로칩제품을사용하는사용자에게마이크로칩인 - 서킷시리얼프로그래밍프로토콜을이용하여저렴하게 MPLAB IDE 환경에서플래시마이크로콘트롤러를쉽게디버깅하는데큰도움을준다. 또한이러한기능을이용하면디자이너는소스코드를디버깅할때 CPU 상태및주변장치레지스터값을쉽게확인가능하며워치윈도우그리고싱글스텝기능, 브레이크포인트기능등을이용하여디버깅가능하다. 테스트하는하드웨어가최고속도로실행되고있는경우실시간디버깅또한가능하다. MPLAB ICD 2 는또한선택된 PICmicro 디바이스의프로그래머로사용가능하다. 14.10 MPLAB PM3 디바이스프로그래머 MPLAB PM3 디바이스프로그래머는최대한신뢰성을제공하기위하여 VDDMIN 와 VDDMAX 전압사이에서프로그래밍전압을검증하는기능을내장한유니버설 CE 호환디바이스프로그래머이다. 그것에는메뉴와에러메세지디스플레이를위한큰 LCD 창 (128 x 64) 이있으며모듈라케이블및여러가지다양한패키지타입을지원하기위한분리가능한소켓어셈블리구조를가지고있다. 또한 ICSP 케이블은기본악세서리로포함되어있다. 스탠드 - 얼론모드에서 MPLAB PM3 디바이스프로그래머는 PC 와의연결이없어도 PICmicro 디바이스의내용을읽고검증하고다시라이팅이가능하다. 또한이모드에서코드 - 프로텍션기능을인에이블시킬수도있다. MPLAB PM3 는 RS- 232 및 USB 케이블을이용하여 PC 와인터페이스한다. MPLAB PM3 는고속통신으로프로그램밍을하며큰메모리디바이스의빠른프로그래밍을위하여압축된알고리즘을이용한다. 또한파일저장및보안어플리케이션을위하여 SD/MMC 카드리더기를지원하고있다. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 115

14.11 PICSTART Plus 프로그래머 PICSTART Plus 프로그래머는사용하기쉽고저렴한프로토타입프로그래머이다. 이것은 COM(RS-232) 포트를통하여 PC 와인터페이스된다. 또한 MPLAB 통합환경소프트웨어를이용하여프로그래머를쉽고효과적으로사용가능하다. PICSTART Plus 프로그래머는최대 40 핀까지의 DIP 패키지를지원하고있으며이보다큰핀수의 PIC16C92X 와 PIC17C76X 마이크로콘트롤러는아답터소켓을이용하여지원된다. PICSTART Plus 프로그래머는 CE 호환제품이다. 14.12 PICkit 2 프로그래머 PICkit 2 프로그래머는사용하기쉽고저렴한프로그래머이며이장비를통하여마이크로칩의베이스라인, 미드레인지그리고 PIC18F 플래시메모리마이크로콘트롤로의프로그래밍이가능하다. PICkit 2 스터터키트는프로토개발보드, 12 개의예제프로그램및소프트웨어, HI-TECH 사의 PICC 라이트 C 컴파일러를포함하고있으며 PIC 마이크로콘트롤러를빠르게슥듭할수있도록도움을준다. 이키트는성능이좋은마이크로칩의미드 - 레인지플래시메모리패밀리를쉽게프로그래밍하고테스트하여볼수있도록설계가되었다. 14.13 데모보드및평가보드 다양한 PICmicro MCU 와 dspic DSC 를빠르게테스트하여볼수있는다양한평가및데모보드를지원하고있다. 대부분의보드에는사용자회로를추가하기위한프로토타입영역을포함하고있으며손쉽게사용할수있도록예제소스프로그램을지원하고있다. 보드에는 LED, 온도센서, 스위치류, 스피커, RS-232 인터페이스, LCD 디스플레이, 포텐셔메터그리고외부 EEPROM 메모리등을이용하여다양한기능을구현해볼수있도록설계가되어있다. 데모및개발보드를이용하여다양한마이크로콘트롤러를공부하거나가르치는데이용을할수있다. PICDEM 과 dspicdem 데모 / 개발보드뿐만아니라마이크로칩은아날로그필터디자인을위한데모소프트웨어,KEELOQ 시큐리티 ICs, CAN, IrDA, PowerSmart 밧데리관리, SEEVAL 평가시스템, 델타-시그마 ADC 등등많은데모보드를지원한다. 최신의데모보드및평가키드에대해서는마이크로칩웹 - 사이트 (www.microchip.com) 에서 제품선택가이드 (DS00148) 를참고하기를바란다. DS21993A_KR- 페이지 116 2006 마이크로칩테크놀로지

15.0 전기적특성 절대적최대치 바이어스아래서의환경온도....-55 ~ +125 C 저장온도... -65 C ~ +150 C VSS 에대한각핀의전압... -0.3V ~ (VDD + 0.3V) VSS 에대한 VDD 전압... -0.3 ~ +6.5V VSS 에대한 MCLR 전압...0 ~ +5.5V VSS 에대한 RA4 핀의전압...0 ~ +5.5V 총파워소비 ( 노트 1)...1.0W VSS 핀으로흘러나가는최대전류...300 ma VDD 핀으로들어오는최대전류...250 ma 입력클램프전류, IIK (VI < 0 또는 VI > VDD)... ± 20 ma 출력클램프전류, IOK (VO < 0 또는 VO > VDD)... ± 20 ma 각 I/O 핀의최대출력씽크전류...25 ma 각 I/O 핀의최대출력소스전류...25 ma PORTA, PORTB, 그리고 PORTE ( 복수의핀 ) 에의한최대싱크전류 ( 노트 3)...200 ma PORTA, PORTB, 그리고 PORTE ( 복수의핀 ) 에의한최대소스전류 ( 노트 3)...200 ma PORTC 그리고 PORTD ( 복수의핀 ) 에의한최대싱크전류 ( 노트 3)...200 ma PORTC 그리고 PORTD ( 복수의핀 ) 에의한최대소스전류 ( 노트 3)...200 ma 노트 1: 파워소비는다음과같은공식으로계산됨 : Pdis = VDD x {IDD - IOH} + {(VDD - VOH) x IOH} + (VOl x IOL) 2: MCLR 핀에스파이크전압이공급되면래치 - 업현상을야기시킬수도있다. 따라서이핀을직접 VDD 에직접연결하는것보다 1 kω 보다큰직렬저항을 MCLR 핀에서 VDD 쪽으로사용하여야만한다. 3: PORTD 와 PORTE 는 PIC16CR73/76 디바이스에서는구현되지않는다. 주의 : 위에서제시한스트레스의절대적최대치의값들은디바이스에치명적인파손을가져올수있다. 위에서제시한값들은디바이스가기능적으로만동작이되는경우에한하며스펙에서제시되지않은다른조건에서는해당되지않으며그이상의조건에서는디바이스의신뢰성에영향을미칠수있다. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 117

그림 15-1: PIC16CR7X 전압 - 주파수그래프 6.0V 5.5V 5.0V 4.5V 4.0V 전압 3.5V 3.0V 2.5V 2.0V 16 MHz 20 MHz 주파수 DS21993A_KR- 페이지 118 2006 마이크로칩테크놀로지

15.1 DC 특성 : PIC16CR73/74/76/77 ( 산업용, 오토모티브 ) PIC16CR73/74/76/77 ( 산업용, 오토모티브 ) 일반적인동작조건 ( 다른상황이없는경우 ) 동작온도산업용 -40 C TA +85 C 오토모티브 -40 C TA +125 C 파라메터넘버 평균심볼특성최소 VDD 공급전압 D001 PIC16CR7X 2.5 2.2 2.0 D001 D001A PIC16CR7X 4.0 VBOR* D002* VDR RAM 데이터유지전압 ( 노트 1) D003 VPOR 안정적인내부파워 - 온 리셋을위한 VDD 시작전압 D004* SVDD 안정적인내부파워 - 온리 셋을위한 VDD 상승기울기 최대단위조건 5.5 5.5 5.5 5.5 5.5 V V V V V 1.5 V A/D 사용됨, -40 C ~ +85 C A/D 사용됨, 0 C ~ +85 C A/D 사용되지않음, -40 C ~ +85 C 모든컨퓨그레이션 BOR 이인에이블됨 ( 노트 7) VSS V 상세한사항은파워 - 온리셋부분을참조할것 0.05 - V/ms 상세한사항은파워 - 온리셋부분을참조 할것 D005 VBOR 브라운 - 아웃리셋전압 TBD TBD TBD V 옵션에서 BOREN 비트가인에이블되어있을때 범례 : 빗금친부분은테이블을읽기쉽게하기위함이다. * 이러한파라메터값들은특정값으로표시되었지만테스트되지는않았다. 평균 의의미는다른특별한이야기가없으면 5V, 25 C 조건이다. 이파라메터값은단지디자인가이드 를위한값이며테스트되지는않았다. 노트 1: 이것은 RAM 데이터의손실없이낮아질수있는 VDD 전압을의미한다. 2: 공급전류는주로동작전압과주파수에의해결정된다. 그외 I/O 핀로딩과스위칭비율, 오실레이터타입, 내부코드실행패턴, 온도등이소비전류를결정하는데중요한요소가된다. 동작모드에서모든 IDD 를측정하기위한테스트조건은다음과같다 : OSC1 = 외부구형파, 레일투레일 ; 모든트리스테이트 I/O 핀들, VDD 로풀 - 업 MCLR = VDD; WDT 인에이블 / 디제이블 3: 슬립모드에서의소비전류는오실레이터타입에영향을받지않는다. 슬립모드에서의소비전류측정은모든하이 - 임피던스상태의 I/O 핀및 VDD 및 VSS 에연결된 I/O 핀에흐르는전류를측정하는것이다. 4: RC 오실레이터옵션에서 REXT 를통하여흐르는전류는포함되지않는다. 저항을통하여흐르는전류는 Ir = VDD/2REXT (ma) ( REXT= kohm) 을통하여계산될수있다. 5: 타이머1 오실레이터 ( 인에이블되어있을때 ) 는기본스펙보다약 20 µa 정도더전류가흐른다. 이값은기본특성값이며단지디자인가이드를위한값이다. 테스트되지는않았다. 6: 전류는주변장치가인에이블되었을때측정된추가전류이다. 이전류값은기본적인 IDD 또는 IPD 와더해져야만한다. 7: BOR 이인에이블되었을때디바이스는 VBOR 전압이트립포인트에도달할때까지정상적으로동작될것이다. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 119

15.1 DC 특성 : PIC16CR73/74/76/77 ( 산업용, 오토모티브 ) ( 앞페이지에이어계속됨 ) PIC16CR73/74/76/77 ( 산업용, 오토모티브 ) 파라메터넘버 D010 D010A D010 D013 IDD 공급전류 ( 노트 2, 5) PIC16CR7X PIC16CR7X D015* IBOR 브라운 - 아웃리셋전류 ( 노트 6 ) D020 IPD 파워 - 다운전류 ( 노트 3, 5) D021 D020 D021 D021A 심볼특성최소평균 D023* IBOR 브라운 - 아웃리셋전류 ( 노트 6 ) PIC16CR7X PIC16CR7X 일반적인동작조건 ( 다른상황이없는경우 ) 동작온도산업용 -40 C TA +85 C 오토모티브 -40 C TA +125 C 0.5 20 1.1 6.3 2 48 4 15 ma µa ma ma XT, RC 오실레이터모드 FOSC = 4 MHz, VDD = 3.0V ( 노트 4) LP 오실레이터모드 FOSC = 32 khz, VDD = 3.0V, WDT 오프 XT, RC 오실레이터모드 FOSC = 4 MHz, VDD = 5.5V ( 노트 4) HS 오실레이터모드 FOSC = 20 MHz, VDD = 5.5V 30 200 µa BOR 온, VDD = 5.0V TBD TBD TBD TBD TBD TBD 최대단위조건 TBD TBD TBD TBD TBD TBD µa µa µa µa µa µa VDD = 3.0V, WDT 온, -40 C ~ +85 C VDD = 3.0V, WDT 오프, -40 C ~ +85 C VDD = 4.0V, WDT 온, -40 C ~ +85 C VDD = 4.0V, WDT 오프, -40 C ~ +85 C VDD = 4.0V, WDT 온, -40 C ~ +125 C VDD = 4.0V, WDT 오프, -40 C ~ +125 C 30 200 µa BOR 온, VDD = 5.0V 범례 : 빗금친부분은테이블을읽기쉽게하기위함이다. * 이러한파라메터값들은특정값으로표시되었지만테스트되지는않았다. 평균 의의미는다른특별한이야기가없으면 5V, 25 C 조건이다. 이파라메터값은단지디자인가이드를위한값이며테스트되지는않았다. 노트 1: 이것은 RAM 데이터의손실없이낮아질수있는 VDD 전압을의미한다. 2: 공급전류는주로동작전압과주파수에의해결정된다. 그외 I/O 핀로딩과스위칭비율, 오실레이터타입, 내부코드실행패턴, 온도등이소비전류를결정하는데중요한요소가된다. 동작모드에서모든 IDD 를측정하기위한테스트조건은다음과같다 : OSC1 = 외부구형파, 레일투레일 ; 모든트리스테이트 I/O 핀들, VDD 로풀 - 업 MCLR = VDD; WDT 인에이블 / 디제이블 3: 슬립모드에서의소비전류는오실레이터타입에영향을받지않는다. 슬립모드에서의소비전류측정은모든하이 - 임피던스상태의 I/O 핀및 VDD 및 VSS 에연결된 I/O 핀에흐르는전류를측정하는것이다. 4: RC 오실레이터옵션에서 REXT 를통하여흐르는전류는포함되지않는다. 저항을통하여흐르는전류는 Ir = VDD/2REXT (ma) ( REXT= kohm) 을통하여계산될수있다. 5: 타이머1 오실레이터 ( 인에이블되어있을때 ) 는기본스펙보다약 20 µa 정도더전류가흐른다. 이값은기본특성값이며단지디자인가이드를위한값이다. 테스트되지는않았다. 6: 전류는주변장치가인에이블되었을때측정된추가전류이다. 이전류값은기본적인 IDD 또는 IPD 와더해져야만한다. 7: BOR 이인에이블되었을때디바이스는 VBOR 전압이트립포인트에도달할때까지정상적으로동작될것이다. DS21993A_KR- 페이지 120 2006 마이크로칩테크놀로지

15.2 DC 특성 : PIC16CR73/74/76/77 ( 산업용, 오토모티브 ) DC 특성 파라메터넘버 심볼특성최소평균 일반적인동작조건 ( 다른상황이없는경우 ) 동작온도산업용 -40 C TA +85 C 오토모티브 -40 C TA +125 C 동작전압 VDD 범위에대해서는 DC 특성섹션 15.1 DC 특성 : PIC16CR73/74/76/77 ( 산업용, 오토모티브 ) 을참조할것. 최대단위조건 VIL 입력로우전압 I/O 포트 : D030 TTL 버퍼인경우 VSS 0.15VDD V VDD 전영역 D030A VSS 0.8V V 4.5V VDD 5.5V D031 쉬미트트리거버퍼인경우 VSS 0.2VDD V D032 MCLR, OSC1 (RC 모드 ) VSS 0.2VDD V ( 노트 1) D033 OSC1 (XT 와 LP 모드 ) VSS 0.3V V OSC1 ( HS 모드 ) VSS 0.3VDD V VIH 입력하이전압 I/O 포트 : D040 TTL 버퍼인경우 2.0 VDD V 4.5V VDD 5.5V D040A 0.25VDD VDD V VDD 전영역 + 0.8V D041 쉬미트트리거버퍼인경우 0.8VDD VDD V VDD 전영역 D042 MCLR 0.8VDD VDD V D042A OSC1 (XT 와 LP 모드 ) 1.6V VDD V OSC1 (HS 모드 ) 0.7VDD VDD V D043 OSC1 (RC 모드 ) 0.9VDD VDD V ( 노트 1) D070 IPURB 포트 B 위크풀 - 업전류 TBD TBD TBD µa VDD = 5V, VPIN = VSS IIL 입력누설전류 ( 노트 2, 3) D060 I/O 포트 ±1 µa Vss VPIN VDD, 하이 - 임피던스상에서의핀 D061 MCLR, RA4/T0CKI ±5 µa Vss VPIN VDD D063 OSC1 ±5 µa Vss VPIN VDD, XT, HS 그리고 LP 오실레이터모드 * 이러한파라메터값들은특정값으로표시되었지만테스트되지는않았다. 평균 의의미는다른특별한이야기가없으면 5V, 25 C 조건이다. 이파라메터값은단지디자인가이드 를위한값이며테스트되지는않았다. 노트 1: RC 오실레이터모드에서 OSC1/CLKIN 핀은쉬미트트리거입력핀이다. 따라서 PIC16CR7X 마이크로콘트롤러가 RC 오실레이터모드인경우외부클럭으로구동시키는것은바람직하지않다. 2: MCLR 핀상의누설전류는공급되는전압레벨에상당히의존적이다. 따라서제시 l 된값들은정상동작조건하에서이다. 다른입력전압에서는높은누설전류가측정될수도있다. 3: 음수의전류값은핀에의해서소스된전류값을의미한다. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 121

15.2 DC 특성 : PIC16CR73/74/76/77 ( 산업용, 오토모티브 ) ( 앞페이지에이어계속됨 ) DC 특성 일반적인동작조건 ( 다른상황이없는경우 ) 동작온도산업용 -40 C TA +85 C 오토모티브 -40 C TA +125 C 동작전압 VDD 범위에대해서는 DC 특성섹션 15.1 DC 특성 : PIC16CR73/74/76/77 ( 산업용, 오토모티브 ) 을참조할것. 파라메터넘버 심볼특성최소평균 최대단위조건 VOL 출력로우전압 D080 I/O 포트 0.6 V IOL = 8.5 ma, VDD = 4.5V, -40 C ~ +125 C D083 OSC2/CLKOUT (RC 오실레이터모드 ) 0.6 0.6 V V IOL = 1.6 ma, VDD = 4.5V, -40 C ~ +125 C IOL = 1.2 ma, VDD = 4.5V, -40 C ~ +125 C VOH 출력하이전압 D090 I/O 포트 ( 노트 3) VDD - 0.7 V IOH = -3.0 ma, VDD = 4.5V, -40 C ~ +125 C D092 OSC2/CLKOUT (RC 오실레이터모드 ) VDD - 0.7 VDD - 0.7 D150* VOD 오픈드레인하이전압 5.5 V RA4 핀 V V IOH = -1.3 ma, VDD = 4.5V, -40 C ~ +125 C IOH = -1.0 ma, VDD = 4.5V, -40 C ~ +125 C 출력핀의로드캐패시턴스스펙 D100 COSC2 OSC2 핀 15 pf OSC1 핀을드라이브하기위하여외부클럭이사용되었을때 ( XT, HS 그리고 LP 모드 ) D101 CIO 모든 I/O 핀과 OSC2 (RC 모드 ) 50 pf D102 CB I 2 C 모드에서 SCL, SDA 400 pf * 이러한파라메터값들은특정값으로표시되었지만테스트되지는않았다. 평균 의의미는다른특별한이야기가없으면 5V, 25 C 조건이다. 이파라메터값은단지디자인가이드를위한값이며테스트되지는않았다. 노트 1: RC 오실레이터모드에서 OSC1/CLKIN 핀은쉬미트트리거입력핀이다. 따라서 PIC16CR7X 마이크로콘트롤러가 RC 오실레이터모드인경우외부클럭으로구동시키는것은바람직하지않다. 2: MCLR 핀상의누설전류는공급되는전압레벨에상당히의존적이다. 따라서제시 l 된값들은정상동작조건하에서이다. 다른입력전압에서는높은누설전류가측정될수도있다. 3: 음수의전류값은핀에의해서소스된전류값을의미한다. DS21993A_KR- 페이지 122 2006 마이크로칩테크놀로지

15.3 타이밍파라메터심볼 타이밍파라메터심볼들은아래의포멧중하나를사용하여생성된다 : 1. TppS2ppS 3. TCC:ST (I 2 C 스펙에서만 ) 2. TppS 4. Ts (I 2 C 스펙에서만 ) T F 주파수 T 타임 소문자 (pp) 및그들의의미 : pp cc CCP1 osc OSC1 ck CLKOUT rd RD cs CS rw RD 또는 WR di SDI sc SCK do SDO ss SS dt 데이터입력 t0 T0CKI io I/O 포트 t1 T1CKI mc MCLR wr WR 대문자및그들의의미 : S F 하강 P 주기 H 하이 R 상승 I 부정확 ( 하이 - 임피던스 ) V 정확 L 로우 Z 하이 - 임피던스 I 2 C 만이용 AA 출력억세스 High 하이 BUF 버스프리 Low 로우 TCC:ST (I 2 C 스펙에서만 ) CC HD 홀드 SU 셋업 ST DAT 데이터입력홀드 STO 멈춤조건 STA 시작조건 그림 15-2: 로드조건로드조건 1 로드조건 2 VDD/2 RL 핀 CL 핀 CL 범례 : VSS RL = 464Ω CL = 50 pf OSC2 를제외한모든핀, 포트 D 와 E 출력포트포함 15 pf OSC2 출력 노트 : 포트 D 와포트 E 는 PIC16CR73/76 디바이스에서구현되지않는다. VSS 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 123

그림 15-3: 외부클럭타이밍 Q4 Q1 Q2 Q3 Q4 Q1 OSC1 CLKOUT 1 2 3 3 4 4 테이블 15-1: 외부클럭타이밍요구조건 파라메터넘버 심볼특성최소평균 최대단위조건 FOSC 외부 CLKIN 주파수 ( 노트 1) DC 1 MHz XT 오실레이터모드 DC 20 MHz HS 오실레이터모드 DC 32 khz LP 오실레이터모드 오실레이터주파수 DC 4 MHz RC 오실레이터모드 ( 노트 1) 0.1 4 MHz XT 오실레이터모드 1 TOSC 외부 CLKIN 주기 ( 노트 1) 오실레이터주기 ( 노트 1) 2 TCY 명령어사이클타임 ( 노트 1) 3 TosL, TosH 4 TosR, TosF 외부클럭입력 (OSC1) 하이또는로우시간 외부클럭입력 (OSC1) 상승또는하강시간 4 5 20 200 MHz khz HS 오실레이터모드 LP 오실레이터모드 1000 ns XT 오실레이터모드 50 ns HS 오실레이터모드 5 ms LP 오실레이터모드 250 ns RC 오실레이터모드 250 10,000 ns XT 오실레이터모드 50 250 ns HS 오실레이터모드 5 ms LP 오실레이터모드 200 TCY DC ns TCY = 4/FOSC 500 ns XT 오실레이터 2.5 ms LP 오실레이터 15 ns HS 오실레이터 25 ns XT 오실레이터 50 ns LP 오실레이터 15 ns HS 오실레이터 평균 의의미는다른특별한이야기가없으면 5V, 25 C 조건이다. 이파라메터값은단지디자인가이드를위한값이며테스트되지는않았다. 노트 1: 명령어사이클주기 (TCY) 는입력되는오실레이터타임주기의 4 배와동일하다. 모든제시된값들은코드를실행할때표준동작조건에서특정오실레이터를기반으로하였다. 제시된제한값들을초과하면오실레이터동작이불안정하게되며또한예상되는소비전류값을초과하여흐르게될것이다. 모든디바이스들은외부클럭을 OSC1/CLKIN 핀으로공급시키면서최소값에서동작이되는지테스트된다. 모든디바이스는외부클럭입력이사용되었을때최대제한된사이클타임은 DC ( 클럭이없음 ) 이다. DS21993A_KR- 페이지 124 2006 마이크로칩테크놀로지

그림 15-4: CLKOUT 과 I/O 타이밍 Q4 Q1 Q2 Q3 OSC1 10 11 CLKOUT 13 14 19 18 12 16 I/O 핀 ( 입력 ) 17 15 I/O 핀 ( 출력 ) 이전값 새로운값 20, 21 노트 : 로드조건에대해서는그림 15-2 를참조할것. 테이블 15-2: CLKOUT 과 I/O 타이밍요구조건 파라메터넘버 심볼특성최소평균 최대단위조건 10* TosH2ckL OSC1 에서 CLKOUT 까지의시간 75 200 ns ( 노트 1) 11* TosH2ckH OSC1 에서 CLKOUT 까지의시간 75 200 ns ( 노트 1) 12* TckR CLKOUT 상승시간 35 100 ns ( 노트 1) 13* TckF CLKOUT 하강시간 35 100 ns ( 노트 1) 14* TckL2ioV CLKOUT 에서유효한포트출력까지의시간 0.5TCY + 20 ns ( 노트 1) 15* TioV2ckH CLKOUT 이전에유효한포트데이터 TOSC + 200 ns ( 노트 1) 16* TckH2ioI CLKOUT 이후에포트홀드시간 0 ns ( 노트 1) 17* TosH2ioV OSC1 (Q1 사이클 ) 에서유효한포트출력시간 100 255 ns 18* TosH2ioI OSC1 (Q2 사이클 ) 에서표준디바이스 (5V) 100 ns 부정확한포트입력 (I/O 저전압디바이스 (3V) 홀드시간 ) 200 ns 19* TioV2osH 유효한포트입력에서 OSC1 (I/O 셋업시간 ) 0 ns 20* TioR 포트출력상승시간 표준디바이스 (5V) 10 40 ns 저전압디바이스 (3V) 145 ns 21* TioF 포트출력하강시간 표준디바이스 (5V) 10 40 ns 저전압디바이스 (3V) 145 ns 22 * Tinp INT 핀하이또는로우시간 TCY ns 23 * Trbp RB7:RB4 변화인터럽트하이또는로우시간 TCY ns * 이러한파라메터값들은특정값으로표시되었지만테스트되지는않았다. 평균 의의미는다른특별한이야기가없으면 5V, 25 C 조건이다. 이파라메터값은단지디자인가이드 를위한값이며테스트되지는않았다. 이러한파라메터들은어떠한내부클럭에지와는상관없는비동기이벤트이다. 노트 1: RC 모드에서측정되었다. 여기에서 CLKOUT 출력은 4 x TOSC 이다. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 125

그림 15-5: 리셋, 워치 - 독타이머, 오실레이터스타트 - 업타이머및파워 - 업타이밍 VDD MCLR 내부 POR 30 PWRT 타임 - 아웃 OSC 타임 - 아웃 33 32 내부리셋 워치 - 독타이머리셋 34 31 34 I/O 핀 노트 : 로드조건에대해서는그림 15-2 를참조할것. 그림 15-6: 브라운 - 아웃리셋타이밍 VDD VBOR 35 테이블 15-3: 리셋, 워치 - 독타이머, 오실레이터스타트 - 업타이머, 파워 - 업타이머및브라운 - 아웃리셋요구조건 파라메터넘버 심볼특성최소평균 최대단위조건 30 TmcL MCLR 펄스폭 ( 로우 ) TBD µs VDD = 5V, -40 C ~ +85 C 31* TWDT 워치 - 독타이머타임 - 아웃주기 7 18 33 ms VDD = 5V, -40 C ~ +85 C ( 프리스케일러가없는경우 ) 32 TOST 오실레이터스타트업타이머주기 1024 TOSC TOSC = OSC1 주기 33* TPWRT 파워 - 업타이머주기 28 72 132 ms VDD = 5V, -40 C ~ +85 C 34 TIOZ 워치독타이머리셋또는 MCLR 로 2.1 µs 우상태로부터의 /O 하이임피던스 35 TBOR 브라운 - 아웃리셋펄스폭 100 µs VDD VBOR (D005) * 이러한파라메터값들은특정값으로표시되었지만테스트되지는않았다. " 평균 의의미는다른특별한이야기가없으면 5V, 25 C 조건이다. 이파라메터값은단지디자인가이드 를위한값이며테스트되지는않았다. DS21993A_KR- 페이지 126 2006 마이크로칩테크놀로지

그림 15-7: 타이머 0 및타이머 1 외부클럭타이밍 RA4/T0CKI 40 41 42 RC0/T1OSO/T1CKI 45 46 47 48 TMR0 및 TMR1 테이블 15-4: 파라메터넘버 노트 : 로드조건에대해서는그림 15-2 를참조할것. 타이머 0 및타이머 1 외부클럭요구조건 심볼특성최소 평균 최대단위조건 40* Tt0H T0CKI 하이펄스폭 프리스케일 x 0.5TCY + 20 ns 파라메터 42 도 프리스케일 10 ns 만족시켜야함 41* Tt0L T0CKI 로우펄스폭 프리스케일 x 0.5TCY + 20 ns 파라메터 42 도 프리스케일 10 ns 만족시켜야함 42* Tt0P T0CKI 주기 프리스케일 x TCY + 40 ns 프리스케일 20 보다크거나또는 TCY + 40 N ns N = 프리스케일 값 (2, 4,..., 256) 45* Tt1H T1CKI 하이타임 동기, 프리스케일러 = 1 0.5TCY + 20 ns 파라메터 47 도 동기, 프리스케 표준 (5V) 15 ns 만족시켜야함 일러 = 2,4,8 저전압 (3V) 25 ns 비동기 표준 (5V) 30 ns 저전압 (3V) 50 ns 46* Tt1L T1CKI 로우타임 동기, 프리스케일러 = 1 0.5TCY + 20 ns 파라메터 47 도 동기, 프리스케 표준 (5V) 15 ns 만족시켜야함 일러 = 2,4,8 저전압 (3V) 25 ns 비동기 표준 (5V) 30 ns 저전압 (3V) 50 ns 47* Tt1P T1CKI 입력주기동기 표준 (5V) 30 보다크거나 또는 TCY + 40 N ns N = 프리스케일 값 (1, 2, 4, 8) 저전압 (3V) 50 보다크거나 또는 TCY + 40 N 비동기 표준 (5V) 60 ns 저전압 (3V) 100 ns N = 프리스케일값 (1, 2, 4, 8) Ft1 타이머 1 오실레이터입력주파수범위 (T1OSCEN 비트의셋트에의해서인에이블됨 ) DC 200 khz 48 TCKEZtmr1 외부클럭에지로부터타이머가증가할때까지의시간지연 2 TOSC 7 TOSC * 이러한파라메터값들은특정값으로표시되었지만테스트되지는않았다. 평균 의의미는다른특별한이야기가없으면 5V, 25 C 조건이다. 이파라메터값은단지디자인가이드 를위한값이며테스트되지는않았다. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 127

그림 15-8: 캡쳐 / 컴페어 /PWM 타이밍 (CCP1 와 CCP2) RC1/T1OSI/CCP2 및 RC2/CCP1 ( 캡쳐모드 ) 50 51 52 RC1/T1OSI/CCP2 및 RC2/CCP1 ( 컴페어또는 PWM 모드 ) 53 54 노트 : 로드조건에대해서는그림 15-2 를참조할것. 테이블 15-5: 캡쳐 / 컴페어 /PWM 요구조건 (CCP1 및 CCP2) 파라메터넘버 심볼특성최소 평균 최대단위조건 50* TccL CCP1 및 CCP2 입력로우타임 51* TccH CCP1 및 CCP2 입력하이타임 프리스케일 x 0.5TCY + 20 ns 표준 (5V) 10 ns 프리스케일 저전압 (3V) 20 ns 프리스케일 x 0.5TCY + 20 ns 표준 (5V) 10 ns 프리스케일 저전압 (3V) 20 ns 52* TccP CCP1 및 CCP2 입력주기 3TCY + 40 N ns N = 프리스케일 값 (1,4 or 16) 53* TccR CCP1 및 CCP2 출력상승시간 표준 (5V) 10 25 ns 저전압 (3V) 25 50 ns 54* TccF CCP1 및 CCP2 출력하강시간 표준 (5V) 10 25 ns 저전압 (3V) 25 45 ns * 이러한파라메터값들은특정값으로표시되었지만테스트되지는않았다. 평균 의의미는다른특별한이야기가없으면 5V, 25 C 조건이다. 이파라메터값은단지디자인가이드 를위한값이며테스트되지는않았다. DS21993A_KR- 페이지 128 2006 마이크로칩테크놀로지

그림 15-9: 병렬슬레이브포트타이밍 (PIC16CR74/77 디바이스만적용됨 ) RE2/CS RE0/RD RE1/WR 65 RD7:RD0 64 62 노트 : 로드조건에대해서는그림 15-2 를참조할것. 63 테이블 15-6: 병렬슬레이브포트요구조건 (PIC16CR74/77 디바이스만해당됨 ) 파라메터넘버 심볼특성최소평균 최대단위조건 62 TdtV2wrH WR 또는 CS 이전에유효한데이터 ( 셋업타임 ) 63* TwrH2dtI WR 또는 CS 이후부정확한 데이터 ( 홀드타임 ) 20 25 ns ns 표준 (5V) 20 ns 저전압 (3V) 35 ns 64 TrdL2dtV RD 및 CS 이후에유효한데이터출력 80 90 ns ns 확장범위에서만적용 확장범위에서만적용 y 65 TrdH2dtI RD 또는 CS 이후에부정확한데이터출력 10 30 ns * 이러한파라메터값들은특정값으로표시되었지만테스트되지는않았다. 평균 의의미는다른특별한이야기가없으면 5V, 25 C 조건이다. 이파라메터값은단지디자인가이드 를위한값이며테스트되지는않았다. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 129

그림 15-10: SPI 마스터모드타이밍 (CKE = 0, SMP = 0) SS SCK (CKP = 0) 70 71 72 78 79 SCK (CKP = 1) 80 79 78 SDO 상위 비트 6 - - - - - -1 하위 75, 76 SDI 상위입력 비트 6 - - - -1 하위입력 73 74 노트 : 로드조건은그림 15-2 를참조할것. 그림 15-11: SPI 마스터모드타이밍 (CKE = 1, SMP = 1) SS SCK (CKP = 0) 81 73 71 72 79 SCK (CKP = 1) 80 78 SDO 상위 비트 6 - - - - - -1 하위 75, 76 SDI 상위입력 비트 6 - - - -1 하위입력 74 노트 : 로드조건에대해서는그림 15-2 를참조할것. DS21993A_KR- 페이지 130 2006 마이크로칩테크놀로지

그림 15-12: SPI 슬레이브모드타이밍 (CKE = 0) SS SCK (CKP = 0) 70 83 71 72 78 79 SCK (CKP = 1) 80 79 78 SDO 상위 Bit 6 - - - - - -1 하위 75, 76 77 SDI 상위입력비트 6 - - - -1 하위입력 73 74 노트 : 로드조건은그림 15-2 를참조할것. 그림 15-13: SPI 슬레이브모드타이밍 (CKE = 1) SS 82 SCK (CKP = 0) 70 83 71 72 SCK (CKP = 1) 80 SDO 상위비트 6 - - - - - -1 하위 75, 76 77 SDI 상위입력비트 6 - - - -1 하위입력 74 노트 : 로드조건은그림 15-2 를참조할것. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 131

테이블 15-7: SPI 모드요구조건 파라메터넘버 심볼특성최소평균 최대단위조건 70* TssL2scH, SS 이후 SCK 또는 SCK 입력 TCY ns TssL2scL 71* TscH SCK 입력하이타임 ( 슬레이브모드 ) TCY + 20 ns 72* TscL SCK 입력로우타임 ( 슬레이브모드 ) TCY + 20 ns 73* TdiV2scH, TdiV2scL 74* TscH2diL, TscL2diL SDI 데이터입력의셋업타임이후 SCK 에지발생 SDI 데이터입력의홀드타임이후 SCK 에지발생 75* TdoR SDO 데이터출력상승타임 표준 (F) 저전압 (LF) 100 ns 100 ns 76* TdoF SDO 데이터출력하강타임 10 25 ns 77* TssH2doZ SS 이후 SDO 출력하이 - 임피던스 10 50 ns 78* TscR SCK 출력상승타임 ( 마스터모드 ) 표준 (5V) 저전압 (3V) 79* TscF SCK 출력하강타임 ( 마스터모드 ) 10 25 ns 80* TscH2doV, TscL2doV 81* TdoV2scH, TdoV2scL SCK 에지이후유효한 SDO 데이터출력 표준 (5V) 저전압 (3V) 10 25 10 25 25 50 25 50 50 145 SDO 데이터출력셋업이후 SCK 에지발생 Tcy ns 82* TssL2doV SS 에지이후유효한 SDO 데이터출력 50 ns 83* TscH2ssH, TscL2ssH SCK 에지이후 SS 에지 1.5TCY + 40 ns * 이러한파라메터값들은특정값으로표시되었지만테스트되지는않았다. 평균 의의미는다른특별한이야기가없으면 5V, 25 C 조건이다. 이파라메터값은단지디자인가이드 를위한값이며테스트되지는않았다. ns ns ns ns ns ns 그림 15-14: I 2 C 버스시작 / 멈춤비트타이밍 SCL 90 91 92 93 SDA 시작조건 멈춤조건 노트 : 로드조건은그림 15-2 를참조할것. DS21993A_KR- 페이지 132 2006 마이크로칩테크놀로지

테이블 15-8: I 2 C 버스시작 / 멈춤비트요구조건 파라메터넘버 심볼특성최소평균최대단위조건 90* TSU:STA 시작조건 100 khz 모드 4700 ns 연속시작조건인경우에서만 셋업타임 400 khz 모드 600 91* THD:STA 시작조건 100 khz 모드 4000 ns 이주기이후에첫번째클럭 홀드타임 400 khz 모드 600 펄스가발생된다 92* TSU:STO 멈춤조건 100 khz 모드 4700 ns 셋업타임 400 khz 모드 600 93 THD:STO 멈춤조건 100 khz 모드 4000 ns 홀드타임 400 khz 모드 600 * 이러한파라메터값들은특정값으로표시되었지만테스트되지는않았다. 그림 15-15: SCL SDA 입력 SDA 출력 I 2 C 버스데이터타이밍 103 100 102 101 90 106 107 91 92 109 109 110 노트 : 로드조건은그림 15-2 를참조할것. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 133

테이블 15-9: I 2 C 버스데이터요구조건 파라메터넘버 심볼특성최소최대단위조건 100* THIGH 클럭하이타임 100 khz 모드 4.0 µs 디바이스는최소 1.5 MHz 에서동작하여야함 400 khz 모드 0.6 µs 디바이스는최소 10 MHz 에서동작하여야함 SSP 모듈 1.5TCY 101* TLOW 클럭로우타임 100 khz 모드 4.7 µs 디바이스는최소 1.5 MHz 에서동작하여야함 400 khz 모드 1.3 µs 디바이스는최소 10 MHz 에서동작하여야함 SSP 모듈 1.5TCY 102* TR SDA 과 SCL 상승 시간 103* TF SDA 과 SCL 하강 시간 90* TSU:STA 시작조건셋업 타임 91* THD:STA 시작조건홀드 타임 106* THD:DAT 데이터입력홀드 타임 107* TSU:DAT 데이터입력셋업 타임 92* TSU:STO 멈춤조건셋업 타임 100 khz 모드 1000 ns 400 khz 모드 20 + 0.1CB 300 ns CB 의값은 10-400 pf 의 값이다 100 khz 모드 300 ns 400 khz 모드 20 + 0.1CB 300 ns CB 의값은 10-400 pf 의 값이다 100 khz 모드 4.7 µs 연속시작조건인경우에 400 khz 모드 0.6 µs 서만 100 khz 모드 4.0 µs 이시간이후에첫번째클 400 khz 모드 0.6 µs 럭펄스가발생된다 100 khz 모드 0 ns 400 khz 모드 0 0.9 µs 100 khz 모드 250 ns ( 노트 2) 400 khz 모드 100 ns 100 khz 모드 4.7 µs 400 khz 모드 0.6 µs 109* TAA 클럭으로부터유효 100 khz 모드 3500 ns ( 노트 1) 한출력 400 khz 모드 ns 110* TBUF 버스프리타임 100 khz 모드 4.7 µs 새로운전송이시작되기 400 khz 모드 1.3 µs 이전에반드시버스가자유로워야하는시간 CB 버스로딩캐패시턴스 400 pf * 이러한파라메터값들은특정값으로표시되었지만테스트되지는않았다. 노트 1: 송신기로동작할때디바이스는예기치않은시작및송신조건의발생을피하기위하여 SCL 의하강에지이후정의되지않은영역 ( 최소 300 ns) 을위한내부최소시간지연을제공하여야만한다. 2: 고속모드 (400 khz) I 2 C 버스디바이스는표준모드 (100 khz) I 2 C 버스시스템에서사용가능하지만 TSU:DAT 250 ns 의요구조건은만족시켜야만된다. 이것은만약디바이스가 SCL 신호의로우주기를확장시키지않는다면자동적으로발생된다. 만약그러한디바이스들이 SCL 신호의로우주기를확장하면그것은 SCL 라인이풀어지기이전에다음데이터비트를 SDA 라인 TR max. + TSU:DAT = 1000 + 250 = 1250 ns ( 표준 I 2 C 버스모드스펙에따라서 ) 으로출력하여야한다. DS21993A_KR- 페이지 134 2006 마이크로칩테크놀로지

그림 15-16: USART 동기전송 ( 마스터 / 슬레이브 ) 타이밍 RC6/TX/CK 핀 RC7/RX/DT 핀 121 121 120 122 노트 : 로드조건에대해서는그림 15-2 를참조할것. 테이블 15-10: USART 동기송신요구조건 파라메터넘버 심볼특성최소평균 최대단위조건 120 TckH2dtV 동기송신 ( 마스터 & 슬레이브 ) 하이클럭이후 유효한데이터출력 121 Tckrf 하이에서로우까지의클럭 출력시간 ( 마스터모드 ) 122 Tdtrf 상승및하강의데이터출력 시간 표준 (5V) 80 ns 저전압 (3V) 100 ns 표준 (5V) 45 ns 저전압 (3V) 50 ns 표준 (5V) 45 ns 저전압 (3V) 50 ns 평균 의의미는다른특별한이야기가없으면 5V, 25 C 조건이다. 이파라메터값은단지디자인가이드를위한값이며테스트되지는않았다. 그림 15-17: USART 동기수신 ( 마스터 / 슬레이브 ) 타이밍 RC6/TX/CK 핀 RC7/RX/DT 핀 125 126 노트 : 로드조건에대해서는그림 15-2 를참조할것. 테이블 15-11: USART 동기수신요구조건 파라메터넘버 심볼특성최소평균 최대단위조건 125 TdtV2ckL SYNC 수신 ( 마스터 & 슬레이브 ) CK 이전데이터셋업 (DT 셋업타임 ) 15 ns 126 TckL2dtl CK 이후데이터홀드 (DT 홀드타임 ) 15 ns 평균 의의미는다른특별한이야기가없으면 5V, 25 C 조건이다. 이파라메터값은단지디자인가이드 를위한값이며테스트되지는않았다. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 135

테이블 15-12: A/D 컨버터특성 : PIC16CR7X ( 산업용, 오토모티브 ) 파라메터넘버 심볼특성최소평균 최대단위조건 A01 NR 분해능 8 비트 비트 VREF = VDD = 5.12V, VSS VAIN VREF A02 EABS 절대적에러의총합 < ±1 LSb VREF = VDD = 5.12V, VSS VAIN VREF A03 EIL 적분에러 < ±1 LSb VREF = VDD = 5.12V, VSS VAIN VREF A04 EDL 미분에러 < ±1 LSb VREF = VDD = 5.12V, VSS VAIN VREF A05 EFS 풀 - 스케일에러 < ±1 LSb VREF = VDD = 5.12V, VSS VAIN VREF A06 EOFF 오프셋에러 < ±1 LSb VREF = VDD = 5.12V, VSS VAIN VREF A10 단조성 ( 노트 3) 보증됨 VSS VAIN VREF A20 VREF 기준전압 2.5 2.2 5.5 5.5 V V -40 C ~ +125 C 0 C ~ +125 C A25 VAIN 아날로그입력전압 VSS - 0.3 VREF + 0.3 V A30 ZAIN 아날로그입력전압소스의요 10.0 kω 고되는임피던스 A40 IAD A/D 변환전류 (VDD) 180 µa A/D 가온되었을때의평균소비전류 ( 노트 1). A50 IREF VREF 입력전류 ( 노트 2) N/A ±5 500 µa µa VAIN 샘플링동안 A/D 컨버젼사이클동안 * 이러한파라메터값들은특정값으로표시되었지만테스트되지는않았다. 평균 의의미는다른특별한이야기가없으면 5V, 25 C 조건이다. 이파라메터값은단지디자인가이드를위한값이며테스트되지는않았다. 노트 1: A/D 가오프되었을때는아주적은누설전류이외는그어떠한전류도소비되지않는다. 파워 - 다운전류스펙에서나타낸값들은 A/D 모듈이오프되었을때발생하는누설전류또한포함하고있다. 2: VREF 전류는기준전압으로선택된 RA3 핀또는 VDD 핀에서흐르는전류이다. 3: A/D 변환결과는입력전압이증가하여도결코감소되지않으며따라서결과값을놓치는일은발생되지않는다. DS21993A_KR- 페이지 136 2006 마이크로칩테크놀로지

그림 15-18: A/D 변환타이밍 BSF ADCON0, GO 134 Q4 (TOSC/2) (1) 131 130 1 TCY A/D CLK 132 A/D DATA 7 6 5 4 3 2 1 0 ADRES 이전데이터 새로운데이터 ADIF GO 샘플 샘플링이멈춤 DONE 노트 1: 만약 A/D 클럭소스로 RC 가선택되었다면 A/D 클럭시작전에 TCY 시간이더해진다. 이것이 SLEEP 명령이실행될수있도록허락한다. 테이블 15-13: A/D 컨버젼요구사항 파라메터넘버 심볼특성최소평균 최대단위조건 130 TAD A/D 클럭주기 PIC16CR7X 1.6 µs TOSC 기반, VREF 3.0V PIC16CR7X 2.0 µs TOSC 기반, 2.0V VREF 5.5V PIC16CR7X 2.0 4.0 6.0 µs A/D RC 모드 PIC16CR7X 3.0 6.0 9.0 µs A/D RC 모드 131 TCNV 컨버젼시간 ( 샘플과홀드시간은포함되지않음 ) ( 노트 1) 9 9 TAD 132 TACQ 샘플 / 홀드시간 5* µs 최소시간은엠프셋팅시간이다. 만약새로운입력전압값이이전에샘플된전압값 ( CHOLD 상태일때 ) 보다 1LSb ( 즉 20.0 mv @ 5.12V) 이상으로변하지않았다면이값이사용될수있다. 134 TGO Q4 에서 A/D 클럭시작 TOSC/2 만약 A/D 클럭소스로 RC 가선택되었다면 A/D 클럭시작전에 TCY 시간이더해진다. 이것이 SLEEP 명령이실행될수있도록허락한다. * 이러한파라메터값들은특정값으로표시되었지만테스트되지는않았다. 평균 의의미는다른특별한이야기가없으면 5V, 25 C 조건이다. 이파라메터값은단지디자인가이드 를위한값이며테스트되지는않았다.. 노트 1: ADRES 레지스터는 TCY 사이클이후에읽을수있다. 2: 최소조건에대해서는섹션 11.1 A/D 샘플링요구조건을참조하기를바란다. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 137

노트 : DS21993A_KR- 페이지 138 2006 마이크로칩테크놀로지

16.0 DC 및 AC 특성그래프및테이블 노트 : 앞으로제공하는그래프와테이블들은제한된샘플을가지고요약된것이며단지정보를제공한다는목적으로제공되었다. 따라서여기에나타낸성능특성들은테스트되었거나완전히보증되지는않는다. 어떤테이블이나그래프에서표시된데이터는정의된동작범위를벗어날수도있다. ( 예를들면정의된전원공급범위를벗어남 ) 평균 의의미는 25 C 에서분포의의미를나타내고 최대 또는 최소 는 ( 평균 +3σ) 또는 ( 평균 -3σ) 을의미한다. 여기에서 σ 는모든온도영역에서의표준편차를의미한다. 그림 16-1: VDD 에따른일반적인 IDD 와 FOSC 와의관계 (HS 모드 ) 7 IDD(mA) 6 5 4 3 평균 : 통계평균 @ 25 C 최대 : 평균 + 3σ (-40 C ~ 125 C) 최소 : 평균 3σ (-40 C ~ 125 C) 5.5V 5.0V 4.5V 4.0V 2 1 2.5V 3.5V 3.0V 0 2.0V 4 6 8 10 12 14 16 18 20 Fosc(MHz) 그림 16-2: VDD 에따른최대 IDD 와 FOSC 와의관계 (HS 모드 ) 8 7 6 평균 : 통계평균 @ 25 C 최대 : 평균 + 3σ (-40 C ~ 125 C) 최소 : 평균 3σ (-40 C ~ 125 C) 5.5V 5.0V IDD(mA) 5 4 3 2 3.5V 3.0V 4.5V 4.0V 1 2.5V 2.0V 0 4 6 8 10 12 14 16 18 20 Fosc(MHz) 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 139

그림 16-3: VDD 에따른일반적인 IDD 와 FOSC 와의관계 (XT 모드 ) 1.2 1 평균 : 통계평균 @ 25 C 최대 : 평균 + 3σ (-40 C ~ 125 C) 최소 : 평균 3σ (-40 C ~ 125 C) 5.5V 5.0V 0.8 4.5V IDD (ma) 0.6 0.4 4.0V 3.5V 3.0V 2.5V 2.0V 0.2 0 0.5 1 1.5 2 2.5 3 3.5 4 Fosc (MHz) 그림 16-4: VDD 에따른최대 IDD 와 FOSC 와의관계 (XT 모드 ) 1.4 1.2 평균 : 통계평균 @ 25 C 최대 : 평균 + 3σ (-40 C ~ 125 C) 최소 : 평균 3σ (-40 C ~ 125 C) 5.5V 1 5.0V 4.5V IDD(mA) 0.8 0.6 4.0V 3.5V 3.0V 2.5V 0.4 2.0V 0.2 0 0.5 1 1.5 2 2.5 3 3.5 4 Fosc (MHz) DS21993A_KR- 페이지 140 2006 마이크로칩테크놀로지

그림 16-5: VDD 에따른일반적인 IDD 와 FOSC 와의관계 (LP 모드 ) 45 40 35 30 평균 : 통계평균 @ 25 C 최대 : 평균 + 3σ (-40 C ~ 125 C) 최소 : 평균 3σ (-40 C ~ 125 C) 5.5V 5.0V 4.5V IDD (µa) 25 20 4.0V 15 10 2.0V 5 0 30 40 50 60 70 80 90 100 Fosc (KHz) 그림 16-6: VDD 에따른최대 IDD 와 FOSC 와의관계 (LP 모드 ) 85 75 5.5V 65 IDD (µa) 55 45 평균 : 통계평균 @ 25 C 최대 : 평균 + 3σ (-40 C ~ 125 C) 최소 : 평균 3σ (-40 C ~ 125 C) 5.0V 4.5V 4.0V 35 2.0V 25 15 30 40 50 60 70 80 90 100 Fosc (KHz) 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 141

그림 16-7: R 의다양한값에따른평균 FOSC 와 VDD 와의관계 (RC 모드, C = 20 pf, 25 C) 5.0 4.5 4 MHz 이상동작은권장되지않음 4.0 주파수 (MHz) 3.5 3.0 2.5 2.0 10KΩ (F7x) 10 kω 1.5 1.0 0.5 100 kω 0.0 2.5 3 3.5 4 4.5 5 5.5 VDD (V) 그림 16-8: R 의다양한값에따른평균 FOSC 와 VDD 와의관계 (RC 모드, C = 100 pf, 25 C) 2.5 2 주파수 (MHz) 1.5 1 10KΩ (F7x) 5.1 kω 10 kω 0.5 100 kω 0 2.5 3 3.5 4 4.5 5 5.5 VDD (V) DS21993A_KR- 페이지 142 2006 마이크로칩테크놀로지

그림 16-9: R 의다양한값에따른평균 FOSC 와 VDD 와의관계 (RC 모드, C = 300 pf, 25 C) 1 0.9 0.8 3.3KΩ 0.7 주파수 (MHz) 0.6 0.5 0.4 0.3 10KΩ (F7x) 5.1KΩ 10KΩ 0.2 0.1 100KΩ 0 2.5 3 3.5 4 4.5 5 5.5 Vdd (V) 그림 16-10: IPD 와 VDD 와의관계 ( 슬립모드, 모든주변장치디제이블 ) 100 최대 125 C 10 최대 85 C IPD (ua) 1 0.1 평균 25 C 평균 : 통계평균 @ 25 C 최대 : 평균 + 3σ (-40 C ~ 125 C) 0.01 최소 : 평균 3σ (-40 C ~ 125 C) 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 V DD (V) 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 143

그림 16-11: 온도에따른 IBOR 와 VDD 와의관계 1,000 Max (125 C) IDD (µa) 100 Typ (25 C) Device in RESET Indeterminant State Device in SLEEP Note: 리셋상태에서의디바이스는오실레이터모드, 주파수및회로에의존한다. Max (125 C) 평균 : 통계평균 @ 25 C 최대 : 평균 + 3σ (-40 C ~ 125 C) 최소 : 평균 3σ (-40 C ~ 125 C) Typ (25 C) 10 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 VDD (V) 그림 16-12: 온도에따른일반및최대 IWDT 와 VDD 와의관계 100 평균 : 통계평균 @ 25 C 최대 : 평균 + 3σ (-40 C ~ 125 C) 최소 : 평균 3σ (-40 C ~ 125 C) 10 Max (125 C) IWDT (µa) Typ (25 C) 1 0.1 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 VDD (V) DS21993A_KR- 페이지 144 2006 마이크로칩테크놀로지

그림 16-13: 평균, 최소, 최대 WDT 주기와 VDD 와의관계 (-40 C ~ 125 C) 50 45 40 평균 : 통계평균 @ 25 C 최대 : 평균 + 3σ (-40 C ~ 125 C) 최소 : 평균 3σ (-40 C ~ 125 C) WDT Period (ms) 35 30 25 20 15 Max (125 C) 癈 ) Typ (25 C) 癈 ) Min (-40 C) 癈 ) 10 5 0 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 VDD (V) 그림 16-14: 온도에따른평균 WDT 주기와 VDD 와의관계 (-40 C ~ 125 C) 50 45 40 35 125 C 125 癈 85 C 癈 평균 : 통계평균 @ 25 C 최대 : 평균 + 3σ (-40 C ~ 125 C) 최소 : 평균 3σ (-40 C ~ 125 C) WDT Period (ms) 30 25 20 15 25 C 癈 -40 C 癈 10 5 0 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 VDD (V) 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 145

그림 16-15: 평균, 최소및최대 VOH 와 IOH 와의관계 (VDD = 5V, -40 C ~ 125 C) 5.5 5.0 4.5 VOH (V) 4.0 3.5 3.0 2.5 2.0 Max Typ (25 C) 癈 ) Min 1.5 1.0 평균 : 통계평균 @ 25 C 최대 : 평균 + 3σ (-40 C ~ 125 C) 최소 : 평균 3σ (-40 C ~ 125 C) 0.5 0.0 0 5 10 15 20 25 IOH (-ma) 그림 16-16: 평균, 최소및최대 VOH 와 IOH 와의관계 (VDD = 3V, -40 C ~ 125 C) 3.5 3.0 평균 : 통계평균 @ 25 C 최대 : 평균 + 3σ (-40 C ~ 125 C) 최소 : 평균 3σ (-40 C ~ 125 C) 2.5 Max VOH (V) 2.0 1.5 Typ (25 C) 癈 ) Min 1.0 0.5 0.0 0 5 10 15 20 25 IOH (-ma) DS21993A_KR- 페이지 146 2006 마이크로칩테크놀로지

그림 16-17: 평균, 최소및최대 VOL 과 IOL 와의관계 (VDD = 5V, -40 C ~ 125 C) 1.0 0.9 0.8 0.7 평균 : 통계평균 @ 25 C 최대 : 평균 + 3σ (-40 C ~ 125 C) 최소 : 평균 3σ (-40 C ~ 125 C) Max (125 C) 癈 ) 0.6 Max (85 C) 癈 ) VOL (V) 0.5 0.4 Typ (25 C) 癈 ) 0.3 0.2 Min (-40 C) 癈 ) 0.1 0.0 0 5 10 15 20 25 IOL (-ma) 그림 16-18: 평균, 최소및최대 VOL 과 IOL 와의관계 (VDD = 3V, -40 C ~ 125 C) 3.0 Max (125 C) 癈 ) 2.5 평균 : 통계평균 @ 25 C 최대 : 평균 + 3σ (-40 C ~ 125 C) 최소 : 평균 3σ (-40 C ~ 125 C) 2.0 VOL (V) 1.5 Max (85 C) 癈 ) 1.0 Typ (25 C) 癈 ) 0.5 Min (-40 C) 癈 ) 0.0 0 5 10 15 20 25 IOL (-ma) 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 147

그림 16-19: 최소및최대 VIN 과 VDD 와의관계 (TTL 입력, -40 C ~ 125 C) 1.5 1.4 1.3 1.2 평균 : 통계평균 @ 25 C 최대 : 평균 + 3σ (-40 C ~ 125 C) 최소 : 평균 3σ (-40 C ~ 125 C) VTH Max (-40 (-40 C) 癈 ) 1.1 VTH Typ (25 C) 癈 ) VIN (V) 1.0 0.9 VTH Min (125 C) 癈 ) 0.8 0.7 0.6 0.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 VDD (V) 그림 16-20: 최소및최대 VIN 과 VDD 와의관계 ( 쉬미트크리거입력, -40 C ~ 125 C) 4.0 3.5 평균 : 통계평균 @ 25 C 최대 : 평균 + 3σ (-40 C ~ 125 C) 최소 : 평균 3σ (-40 C ~ 125 C) 3.0 VIH Max (125 C) 癈 ) VIN (V) 2.5 2.0 1.5 VIH Min (-40 C) 癈 ) VIL Max (-40 C) 癈 ) 1.0 VIL Min (125 C) 癈 ) 0.5 0.0 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 VDD (V) DS21993A_KR- 페이지 148 2006 마이크로칩테크놀로지

17.0 패키지정보 17.1 패키지마킹정보 28 핀 PDIP 보기 XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX YYWWNNN PICXXFXXXX-I/P 0510017 40 핀 PDIP 보기 XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX YYWWNNN PICXXFXXXX-I/P 0510017 44 핀 PLCC 보기 XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX YYWWNNN PICXXFXXX /L 0510017 범례 : XX...X 커스터머의특별한정보 Y 몇년도에만든었는지표시 ( 캘런터의마지막디지트 ) YY 몇년도에만든었는지표시 ( 캘런터의나머지 2 디지트 ) WW 몇번째주에만들었는지표시 (1 월의첫번째주가 01 이다 ) NNN e3 추적코드 Matte Tin (Sn) 의 Pb-free JEDEC 표시 * 이패키지는 Pb-free 이다. Pb-free JEDEC 표시인 ( e3) 는이패키지의바깥쪽패키징에서확인가능하다. 노트 : 모든마이크로칩파트넘버는한라인으로마킹을할수가없다. 따라서다음라인에추가정보를넣어야하므로사용자가원하는문자의삽입에는상당한제한이있다. * 일반적인 PICmicro 디바이스마킹은파트넘버, 몇년도, 몇주및추적코드를포함하고있다. 이것을초과한 PICmicro 마킹은추가비용이요구된다. 이것에대하여한국지사와상의하기를바란다. QTP 디바이스인경우추가적인특별한마킹은 QTP 가격에이미포함되어있다. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 149

17.1 패키지마킹정보 ( 앞페이지에이어계속됨 ) 28 핀 QFN 보기 XXXXXXXX XXXXXXXX YYWWNNN XXFXXX /ML 0510017 28 핀 SOIC (.300 ) 보기 XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX YYWWNNN PICXXFXXXX/SO 0510017 28 핀 SSOP XXXXXXXXXXXX XXXXXXXXXXXX YYWWNNN 보기 PICXXFXXXX -I/SS 0510017 44 핀 TQFP 보기 XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX YYWWNNN PICXXFXXXX -I/PT 0510017 DS21993A_KR- 페이지 150 2006 마이크로칩테크놀로지

17.2 상세한패키지정보앞으로는각패키지의자세한기술적인정보에대하여나타낸다. 28 핀 Skinny Plastic Dual In-line (SP) 300 밀리바디 (PDIP) E1 D n 2 1 α E A2 A c L β eb A1 B B1 p Number of Pins Pitch Top to Seating Plane Molded Package Thickness Base to Seating Plane Shoulder to Shoulder Width Molded Package Width Overall Length Tip to Seating Plane Lead Thickness Upper Lead Width Lower Lead Width 치수 단위 n p A A2 A1 E E1 D L c B1 B 최소.140.125.015.300.275 1.345.125.008.040.016 인치 * 평균 Overall Row Spacing eb.320.350.430 8.13 8.89 10.92 Mold Draft Angle Top α 5 10 15 5 10 15 Mold Draft Angle Bottom β 5 10 15 5 10 15 * 제어파라메터 중요한특성 노트 : 치수 D 와 E1 는몰드플래시또는돌출부를포함하지않는다. 몰드플래시또는돌출부는한면당.010" (0.254mm) 를초과하지않는다. JEDEC : MO-095 드로잉번호. C04-070 28.100.150.130.310.285 1.365.130.012.053.019 최대.160.135.325.295 1.385.135.015.065.022 최소 3.56 3.18 0.38 7.62 6.99 34.16 3.18 0.20 1.02 0.41 밀리미터 평균 28 2.54 3.81 3.30 7.87 7.24 34.67 3.30 0.29 1.33 0.48 최대 4.06 3.43 8.26 7.49 35.18 3.43 0.38 1.65 0.56 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 151

40 핀 Plastic Dual In-line (P) 600 밀리바디 (PDIP) E1 D n 2 1 α E A A2 c L β eb A1 B1 B p 단위 인치 * 밀리미터 치수 최소 평균 최대 최소 평균 최대 Number of Pins n 40 40 Pitch p.100 2.54 Top to Seating Plane A.160.175.190 4.06 4.45 4.83 Molded Package Thickness A2.140.150.160 3.56 3.81 4.06 Base to Seating Plane A1.015 0.38 Shoulder to Shoulder Width E.595.600.625 15.11 15.24 15.88 Molded Package Width E1.530.545.560 13.46 13.84 14.22 Overall Length D 2.045 2.058 2.065 51.94 52.26 52.45 Tip to Seating Plane L.120.130.135 3.05 3.30 3.43 Lead Thickness c.008.012.015 0.20 0.29 0.38 Upper Lead Width B1.030.050.070 0.76 1.27 1.78 Lower Lead Width B.014.018.022 0.36 0.46 0.56 Overall Row Spacing eb.620.650.680 15.75 16.51 17.27 Mold Draft Angle Top α 5 10 15 5 10 15 Mold Draft Angle Bottom β 5 10 15 5 10 15 * 제어파라메터 중요한특성 노트 : 치수 D 와 E1 는몰드플래시또는돌출부를포함하지않는다. 몰드플래시또는돌출부는한면당.010" (0.254mm) 를초과하지않는다. JEDEC : MO-011 드로잉번호. C04-016 DS21993A_KR- 페이지 152 2006 마이크로칩테크놀로지

44 핀 Plastic Leaded Chip Carrier (L) 정사각형 (PLCC) E E1 #leads=n1 D1 D n 1 2 CH2 x 45 CH1 x 45 A3 α A2 35 A c β B1 B p A1 E2 D2 단위 인치 * 밀리미터 치수 최소 평균 최대 최소 평균 최대 Number of Pins n 44 44 Pitch p.050 1.27 Pins per Side n1 11 11 Overall Height A.165.173.180 4.19 4.39 4.57 Molded Package Thickness A2.145.153.160 3.68 3.87 4.06 Standoff A1.020.028.035 0.51 0.71 0.89 Side 1 Chamfer Height A3.024.029.034 0.61 0.74 0.86 Corner Chamfer 1 CH1.040.045.050 1.02 1.14 1.27 Corner Chamfer (others) CH2.000.005.010 0.00 0.13 0.25 Overall Width E.685.690.695 17.40 17.53 17.65 Overall Length D.685.690.695 17.40 17.53 17.65 Molded Package Width E1.650.653.656 16.51 16.59 16.66 Molded Package Length D1.650.653.656 16.51 16.59 16.66 Footprint Width E2.590.620.630 14.99 15.75 16.00 Footprint Length D2.590.620.630 14.99 15.75 16.00 Lead Thickness c.008.011.013 0.20 0.27 0.33 Upper Lead Width B1.026.029.032 0.66 0.74 0.81 Lower Lead Width B.013.020.021 0.33 0.51 0.53 Mold Draft Angle Top α 0 5 10 0 5 10 Mold Draft Angle Bottom β 0 5 10 0 5 10 * 제어파라메터 중요한특성 노트 : D 와 E1 는몰드플래시또는돌출부를포함하지않는다. 몰드플래시또는돌출부는한면당.010" (0.254mm) 를초과하지않는다. JEDEC : MO-047 드로잉번호. C04-048 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 153

28 핀 Plastic Quad Flat No Lead Package (ML) 6x6 mm 바디 (QFN) With 0.55 mm Contact Length (Saw Singulated) E 노출된메탈패드 ( 노트 2) E2 e D D2 b 2 1 K n 윗면 옵션인인덱스영역 ( 노트 1) 다른인덱스표시 아래쪽참조 바탕면 L A1 A 상세한다른패드아웃라인 Number of Pins Pitch Overall Height Standoff Overall Width Exposed Pad Width Overall Length Exposed Pad Length Contact Width * 제어파라메터 중요한특성 치수 단위 노트 : 1. Pin 1 보이는부분은변하지만반드시제시된영역안에는위치하여야만한다. 2. 나타난패드는다이어태치패들사이즈에따라변한다. BSC: 기본치수. 실제이론값은오차없이나타낸다. ASME Y14.5M 참조 REF: 보통오차없는참조치수는단지참고를치수이다.. ASME Y14.5M 참조 JEDEC : MO-220 드로잉번호. C04-105 n e A A1 E E2 D D2 인치 밀리미터 * 최소 평균 최대 최소 평균 28 28.026 BSC 0.65 BSC.031.035.039 0.80 0.90.000.001.002 0.00 0.02 Contact Thickness A3.008 REF 0.20 REF.232 최대 1.00 0.05 5.90 6.00 6.10.153.167.169 3.89 4.24 4.29 β.009.011.013 0.23 0.28 0.33 Contact Length L.018.022.024 0.45 0.55 0.65.236.240.232.236.240 5.90 6.00 6.10.153.167.169 3.89 4.24 4.29 Contact-to-Exposed Pad K.008 0.20 개정됨 09-12-05 DS21993A_KR- 페이지 154 2006 마이크로칩테크놀로지

28 핀 Plastic Small Outline (SO) 넓음, 300 밀리바디 (SOIC) E p E1 D B n 2 1 h α 45 c A A2 β L φ A1 단위 인치 * 밀리미터 치수 최소 평균 최대 최소 평균 최대 Number of Pins n 28 28 Pitch p.050 1.27 Overall Height A.093.099.104 2.36 2.50 2.64 Molded Package Thickness A2.088.091.094 2.24 2.31 2.39 Standoff A1.004.008.012 0.10 0.20 0.30 Overall Width E.394.407.420 10.01 10.34 10.67 Molded Package Width E1.288.295.299 7.32 7.49 7.59 Overall Length D.695.704.712 17.65 17.87 18.08 Chamfer Distance h.010.020.029 0.25 0.50 0.74 Foot Length L.016.033.050 0.41 0.84 1.27 Foot Angle Top φ 0 4 8 0 4 8 Lead Thickness c.009.011.013 0.23 0.28 0.33 Lead Width B.014.017.020 0.36 0.42 0.51 Mold Draft Angle Top α 0 12 15 0 12 15 Mold Draft Angle Bottom β 0 12 15 0 12 15 * 제어파라메터 중요한특성노트 : 치수 D 와 E1 는몰드플래시, 돌출부를포함하지않는다. 몰드플래시또는돌출부는한면당.010" (0.254mm) 를초과하지않는다. JEDEC : MS-013 드로잉번호. C04-052 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 155

28 핀 Plastic Shrink Small Outline (SS) 209 밀리바디, 5.30 mm (SSOP) E p E1 D B n 2 1 c A φ A1 A2 L 단위 인치 밀리미터 * 치수 최소 평균 최대 최소 평균 최대 Number of Pins n 28 28 Pitch p.026 0.65 Overall Height A - -.079 - - 2.0 Molded Package Thickness A2.065.069.073 1.65 1.75 1.85 Standoff A1.002 - - 0.05 - - Overall Width E.295.307.323 7.49 7.80 8.20 Molded Package Width E1.197.209.220 5.00 5.30 5.60 Overall Length D.390.402.413 9.90 10.20 10.50 Foot Length L.022.030.037 0.55 0.75 0.95 Lead Thickness c.004 -.010 0.09-0.25 Foot Angle φ 0 4 8 0 4 8 Lead Width B.009 -.015 0.22-0.38 * 제어파라메터 노트 : 치수 D 와 E1 는몰드플래시또는돌출부를포함하지않는다. 몰드플래시또는돌출부는한면당.010" (0.254mm) 를초과하지않는다. 드로잉번호. C04-073 개정됨 1-12-06 DS21993A_KR- 페이지 156 2006 마이크로칩테크놀로지

44 핀 Plastic Thin-Quad Flatpack (PT) 10x10x1 밀리바디, 1.0/0.10 mm Lead Form (TQFP) E E1 #leads=n1 p D1 D B 2 1 c n CH x 45 A α β φ L A1 F A2 단위 인치 밀리미터 * 치수 최소 평균 최대 최소 평균 최대 Number of Pins n 44 44 Pitch p.031 0.80 Pins per Side n1 11 11 Overall Height A.039.043.047 1.00 1.10 1.20 Molded Package Thickness A2.037.039.041 0.95 1.00 1.05 Standoff A1.002.004.006 0.05 0.10 0.15 Foot Length L.018.024.030 0.45 0.60 0.75 Footprint (Reference) F.039 REF. 1.00 REF. Foot Angle φ 0 3.5 7 0 3.5 7 Overall Width E.463.472.482 11.75 12.00 12.25 Overall Length D.463.472.482 11.75 12.00 12.25 Molded Package Width E1.390.394.398 9.90 10.00 10.10 Molded Package Length D1.390.394.398 9.90 10.00 10.10 Lead Thickness c.004.006.008 0.09 0.15 0.20 Lead Width B.012.015.017 0.30 0.38 0.44 Pin 1 Corner Chamfer CH.025.035.045 0.64 0.89 1.14 Mold Draft Angle Top α 5 10 15 5 10 15 Mold Draft Angle Bottom β 5 10 15 5 10 15 * 제어파라메터 노트 : 치수 D 와 E1 는몰드플래시또는돌출부를포함하지않는다. 몰드플래시또는돌출부는한면당.010" (0.254mm) 를초과하지않는다. REF: 보통오차없는참조치수는단지참고를치수이다. ASME Y14.5M 참조 JEDEC : MS-026 드로잉번호. C04-076 개정됨 07-22-05 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 157

노트 : DS21993A_KR- 페이지 158 2006 마이크로칩테크놀로지

부록 A: 개정이력부록 B: 디바이스차이점 버젼 날짜 개정서술 A 2006 이것은새로운데이터쉬트이다. 그러나이것은 PIC16F7X 디바이스의데이터쉬트 (DS30325B) 와매우유사하다. 데이터쉬트의각디바이스의차이점은아래테이블 B-1 에나타내었다. 테이블 B-1: 디바이스차이점 항목 PIC16CR73 PIC16CR74 PIC16CR76 PIC16CR77 ROM 프로그램메모리 (14 비트워드 ) 4K 4K 8K 8K 데이터메모리 ( 바이트 ) 192 192 368 368 I/O 포트 3 5 3 5 A/D 5 채널, 8 비트 8 채널, 8 비트 5 채널, 8 비트 8 채널, 8 비트 병렬슬레이브포트없음있음없음있음 인터럽트소스 11 12 11 12 패키지 28 핀 PDIP 28 핀 SOIC 28 핀 SSOP 28 핀 QFN 40 핀 PDIP 44 핀 TQFP 44 핀 PLCC 28 핀 PDIP 28 핀 SOIC 28 핀 SSOP 28 핀 MLF 40 핀 PDIP 44 핀 TQFP 44 핀 PLCC 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 159

부록 C: 컨버젼시고려사항 이전버젼의디바이스로부터이데이터쉬트에제시된하나의디바이스로컨버젼하고자하는경우고려사항은아래테이블 C-1 같다. 테이블 C-1: 컨버젼시고려사항 항목 PIC16CR7X PIC16F87X PIC16F7X 핀수 28/40 28/40 28/40 타이머 3 3 3 인터럽트 11 or 12 13 또는 14 11 또는 12 통신 PSP, USART, SSP (SPI, I 2 C 슬레이브 ) PSP, USART, SSP (SPI, I 2 C 마스터 / 슬레이브 ) PSP, USART, SSP (SPI, I 2 C 슬레이브 ) 주파수 20 MHz 20 MHz 20 MHz A/D 8 비트 10 비트 8 비트 CCP 2 2 2 프로그램메모리 4K, 8K ROM 4K, 8K 플래시 (1,000 E/W 사이클 ) 4K, 8K 플래시 (100 E/W 사이클, 일반적 ) RAM 192, 368 바이트 192, 368 바이트 192, 368 바이트 EEPROM 데이터없음 128, 256 바이트없음 그외 인 - 서킷디버거, 저전압프로그래밍 DS21993A_KR- 페이지 160 2006 마이크로칩테크놀로지

찿아보기 A A/D A/D Conversio Status (GO/DONE Bit)... 83 Acquisition Requirements... 86 ADCON0 Register... 83 ADCON1 Register... 83 ADRES Register... 83 Analog Port Pins... 8, 10, 12, 39 Analog-to-Digital Converter... 83 Associated Registers... 88 Configuring Analog Port Pins... 87 Configuring the Interrupt... 85 Configuring the Module... 85 Conversion Clock... 87 Conversion Requirements... 137 Conversions... 87 Converter Characteristics... 136 Effects of a RESET... 87 Faster Conversion - Lower Resolution Trade-off... 87 Internal Sampling Switch (Rss) Impedance... 86 Operation During SLEEP... 87 Source Impedance... 86 Using the CCP Trigger... 88 Absolute Maximum Ratings... 117 ACK pulse... 65, 66 ADCON0 Register... 83 GO/DONE Bit... 83 ADCON1 Register... 83 ADRES Register... 83 Analog Port Pins. See A/D Application Notes AN552 (Implementing Wake-up on Key Strokes Using PIC16F7X)... 33 AN556 (Implementing a Table Read)... 26 AN578 (Use of the SSP Module in the I 2 C Multi-Master Environment)... 59 AN607 (Power-up Trouble Shooting)... 94 Assembler MPASM Assembler... 114 B Banking, Data Memory... 13 BF bit... 60 Block Diagrams A/D... 85 Analog Input Model... 86 Capture Mode Operation... 55 Compare... 55 Crystal/Ceramic Resonator Operation (HS, XT or LP Osc Configuration)... 91 External Clock Input Operation (HS Osc Configuration)... 91 Interrupt Logic... 99 PIC16CR73 and PIC16CR76... 6 PIC16CR74 and PIC16CR77... 7 PORTA RA3:RA0 and RA5 Port Pins... 31 RA4/T0CKI Pin... 31 PORTB RB3:RB0 Port Pins... 33 RB7:RB4 Port Pins... 33 PORTC (Peripheral Output Override)... 35 PORTD (In I/O Port Mode)... 36 PORTD and PORTE (Parallel Slave Port)... 40 PORTE (In I/O Port Mode)... 37 PWM Mode... 57 RC Oscillator Mode... 92 Recommended MCLR Circuit... 94 Reset Circuit... 93 SSP (I 2 C Mode)... 65 SSP (SPI Mode)... 62 Timer0/WDT Prescaler... 43 Timer1... 48 Timer2... 51 USART Receive... 76 USART Transmit... 74 Watchdog Timer (WDT)... 101 BOR. See Brown-out Reset BRGH bit... 71 Brown-out Reset (BOR)... 89, 93, 94, 95, 96 C C Compilers MPLAB C18... 114 MPLAB C30... 114 Capture/Compare/PWM (CCP) Associated Registers... 56, 58 Capture Mode... 55 Prescaler... 55 CCP Pin Configuration... 55, 56 CCP1 RC2/CCP1 Pin... 9, 11 CCP2 RC1/T1OSI/CCP2 Pin... 9, 11 Compare Mode... 55 Software Interrupt Mode... 56 Special Trigger Output... 56 Timer1 Mode Selection... 56 Example PWM Frequencies and Resolutions... 58 Interaction of Two CCP Modules... 53 PWM Duty Cycle... 57 PWM Mode... 57 PWM Period... 57 Setup for PWM Operation... 58 Special Event Trigger and A/D Conversions... 56 Timer Resources... 53 CCP1 Module... 53 CCP2 Module... 53 CCPR1H Register... 53 CCPR1L Register... 53 CCPxM<3:0> bits... 54 CCPxX and CCPxY bits... 54 CKE bit... 60 CKP bit... 61 Code Examples Call of a Subroutine in Page 1 from Page 0... 26 Changing Between Capture Prescalers... 55 Changing Prescaler Assignment to Timer0... 45 Changing Prescaler Assignment to WDT... 45 Indirect Addressing... 27 Initializing PORTA... 31 Reading a 16-bit Free-Running Timer... 49 ROM Program Read... 30 Saving STATUS, W, and PCLATH Registers in RAM... 100 Writing a 16-bit Free-Running Timer... 49 Code Protection... 89, 103 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 161

Computed GOTO... 26 Configuration Bits... 89 Continuous Receive Enable (CREN Bit)... 70 Conversion Considerations... 160 Customer Change Notification Service... 167 Customer Notification Service... 167 Customer Support... 167 D D/A bit... 60 Data Memory... 13 Bank Select (RP1:RP0 Bits)... 13 General Purpose Registers... 13 Register File Map, PIC16CR74/73... 15 Register File Map, PIC16CR77/76... 14 Special Function Registers... 16 Data/Address bit (D/A)... 60 DC and AC Characteristics Graphs and Tables... 139 DC Characteristics... 119 Development Support... 113 Device Differences... 159 Device Overview... 5 Features... 5 Direct Addressing... 27 E Electrical Characteristics... 117 Errata... 4 External Clock Input (RA4/T0CKI). See Timer0 External Interrupt Input (RB0/INT). See Interrupt Sources F Firmware Instructions... 105 FSR Register... 27 I I/O Ports... 31 I 2 C Mode Addressing... 66 Associated Registers... 68 Master Mode... 68 Mode Selection... 65 Multi-Master Mode... 68 Operation... 65 Reception... 66 Slave Mode SCL and SDA pins... 65 Transmission... 67 ID Locations... 103 INDF Register... 27 Indirect Addressing... 27 FSR Register... 13 Instruction Format... 105 Instruction Set... 105 ADDLW... 107 ADDWF... 107 ANDLW... 107 ANDWF... 107 BCF... 107 BSF... 107 BTFSC... 107 BTFSS... 107 CALL... 108 CLRF... 108 CLRW... 108 CLRWDT... 108 COMF... 108 DECF... 108 DECFSZ... 109 GOTO... 109 INCF... 109 INCFSZ... 109 IORLW... 109 IORWF... 109 RETURN... 110, 111 RLF... 111 RRF... 110, 111 SLEEP... 110, 111 SUBLW... 110, 111 SUBWF... 110, 111 SWAPF... 112 XORLW... 112 XORWF... 112 Summary Table... 106 INT Interrupt (RB0/INT). See Interrupt Sources INTCON Register... 21 GIE Bit... 21 INTE Bit... 21 INTF Bit... 21 RBIF Bit... 21, 33 TMR0IE Bit... 21 Inter-Integrated Circuit (I 2 C). See I 2 C Mode Internet Address... 167 Interrupt Sources... 89, 99 Interrupt-on-Change (RB7:RB4)... 33 RB0/INT Pin, External... 8, 11, 100 TMR0 Overflow... 100 USART Receive/Transmit Complete... 69 Interrupts Synchronous Serial Port Interrupt... 23 Interrupts, Context Saving During... 100 Interrupts, Enable Bits Global Interrupt Enable (GIE Bit)... 21, 99 Interrupt-on-Change (RB7:RB4) Enable (RBIE Bit).. 100 RB0/INT Enable (INTE Bit)... 21 TMR0 Overflow Enable (TMR0IE Bit)... 21 Interrupts, Flag Bits Interrupt-on Change (RB7:RB4) Flag (RBIF Bit)... 21 Interrupt-on-Change (RB7:RB4) Flag (RBIF Bit)... 21, 33, 100 RB0/INT Flag (INTF Bit)... 21 TMR0 Overflow Flag (TMR0IF Bit)... 100 L Load Conditions... 123 Loading of PC... 26 M Master Clear (MCLR)... 8 MCLR Reset, Normal Operation... 93, 95, 96 MCLR Reset, SLEEP... 93, 95, 96 Operation and ESD Protection... 94 MCLR Pin... 10 MCLR/VPP Pin... 8 Memory Organization... 13 Data Memory... 13 Program Memory... 13 Program Memory and Stack Maps... 13 Microchip Internet Web Site... 167 MPLAB ASM30 Assembler, Linker, Librarian... 114 MPLAB ICD 2 In-Circuit Debugger... 115 DS21993A_KR- 페이지 162 2006 마이크로칩테크놀로지

MPLAB ICE 2000 High-Performance Universal In-Circuit Emulator... 115 MPLAB ICE 4000 High-Performance Universal In-Circuit Emulator... 115 MPLAB Integrated Development Environment Software.. 113 MPLAB PM3 Device Programmer... 115 MPLINK Object Linker/MPLIB Object Librarian... 114 O OPCODE Field Descriptions... 105 OPTION_REG Register... 20 INTEDG Bit... 20 PS2:PS0 Bits... 20 PSA Bit... 20 RBPU Bit... 20 T0CS Bit... 20 T0SE Bit... 20 OSC1/CLKI Pin... 8, 10 OSC2/CLKO Pin... 8, 10 Oscillator Configuration... 89 Oscillator Configurations... 91 Crystal Oscillator/Ceramic Resonators... 91 HS... 91, 95 LP... 91, 95 RC... 91, 92, 95 XT... 91, 95 Oscillator, WDT... 101 P P (STOP) bit... 60 Packaging... 149 Marking... 149 PDIP Details... 151 Paging, Program Memory... 26 Parallel Slave Port Associated Registers... 41 Parallel Slave Port (PSP)... 36, 40 RE0/RD/AN5 Pin... 12, 39 RE1/WR/AN6 Pin... 12, 39 RE2/CS/AN7 Pin... 12, 39 Select (PSPMODE Bit)... 36, 37 PCFG0 bit... 84 PCFG1 bit... 84 PCFG2 bit... 84 PCL Register... 26 PCLATH Register... 26 PCON Register... 25, 95 POR Bit... 25 PICSTART Plus Development Programmer... 116 PIE1 Register... 22 PIE2 Register... 24 Pinout Descriptions PIC16CR73/PIC16CR76... 8 9 PIC16CR74/PIC16CR77... 10 12 PIR1 Register... 23 PIR2 Register... 24 PMADR Register... 29 PMADRH Register... 29 POP... 26 POR. See Power-on Reset PORTA... 8, 10 Analog Port Pins... 8, 10 Associated Registers... 32 PORTA Register... 31 RA4/T0CKI Pin... 8, 10 RA5/SS/AN4 Pin... 8, 10 TRISA Register... 31 PORTA Register... 31 PORTB... 8, 11 Associated Registers... 34 PORTB Register... 33 Pull-up Enable (RBPU Bit)... 20 RB0/INT Edge Select (INTEDG Bit)... 20 RB0/INT Pin, External... 8, 11, 100 RB7:RB4 Interrupt-on-Change... 100 RB7:RB4 Interrupt-on-Change Enable (RBIE Bit)... 100 RB7:RB4 Interrupt-on-Change Flag (RBIF Bit)... 21, 33, 100 TRISB Register... 33 PORTB Register... 33 PORTC... 9, 11 Associated Registers... 35 PORTC Register... 35 RC0/T1OSO/T1CKI Pin... 9, 11 RC1/T1OSI/CCP2 Pin... 9, 11 RC2/CCP1 Pin... 9, 11 RC3/SCK/SCL Pin... 9, 11 RC4/SDI/SDA Pin... 9, 11 RC5/SDO Pin... 9, 11 RC6/TX/CK Pin... 9, 11, 70 RC7/RX/DT Pin... 9, 11, 70, 71 TRISC Register... 35 PORTC Register... 35 PORTD... 12 Associated Registers... 36 Parallel Slave Port (PSP) Function... 36 PORTD Register... 36 TRISD Register... 36 PORTD Register... 36 PORTE... 12 Analog Port Pins... 12, 39 Associated Registers... 39 Input Buffer Full Status (IBF Bit)... 38 Input Buffer Overflow (IBOV Bit)... 38 PORTE Register... 37 PSP Mode Select (PSPMODE Bit)... 36, 37 RE0/RD/AN5 Pin... 12, 39 RE1/WR/AN6 Pin... 12, 39 RE2/CS/AN7 Pin... 12, 39 TRISE Register... 37 PORTE Register... 37 Postscaler, WDT Assignment (PSA Bit)... 20 Rate Select (PS2:PS0 Bits)... 20 Power-down Mode. See SLEEP Power-on Reset (POR)... 89, 93, 95, 96 Oscillator Start-up Timer (OST)... 89, 94 POR Status (POR Bit)... 25 Power Control (PCON) Register... 95 Power-down (PD Bit)... 93 Power-up Timer (PWRT)... 89, 94 Time-out (TO Bit)... 19, 93 PR2 Register... 51 Prescaler, Timer0 Assignment (PSA Bit)... 20 Rate Select (PS2:PS0 Bits)... 20 Program Counter RESET Conditions... 95 Program Memory... 29 Associated Registers... 30 Interrupt Vector... 13 Memory and Stack Maps... 13 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 163

Operation During Code Protect... 30 Organization... 13 Paging... 26 PMADR Register... 29 PMADRH Register... 29 Reading ROM... 30 Reading, PMADR Register... 29 Reading, PMADRH Register... 29 Reading, PMCON1 Register... 29 Reading, PMDATA Register... 29 Reading, PMDATH Register... 29 RESET Vector... 13 Program Verification... 103 Programming, Device Instructions... 105 PUSH... 26 R R/W bit... 60, 66, 67 RA0/AN0 Pin... 8, 10 RA1/AN1 Pin... 8, 10 RA2/AN2 Pin... 8, 10 RA3/AN3/VREF Pin... 8, 10 RA4/T0CKI Pin... 8, 10 RA5/SS/AN4 Pin... 8, 10 RAM. See Data Memory RB0/INT Pin... 8, 11 RB1 Pin... 8, 11 RB2 Pin... 8, 11 RB3 Pin... 8, 11 RB4 Pin... 8, 11 RB5 Pin... 8, 11 RB6 Pin... 8, 11 RB7 Pin... 8, 11 RC0/T1OSO/T1CKI Pin... 9, 11 RC1/T1OSI/CCP2 Pin... 9, 11 RC2/CCP1 Pin... 9, 11 RC3/SCK/SCL Pin... 9, 11 RC4/SDI/SDA Pin... 9, 11 RC5/SDO Pin... 9, 11 RC6/TX/CK Pin... 9, 11 RC7/RX/DT Pin... 9, 11 RCSTA Register CREN Bit... 70 OERR Bit... 70 SPEN Bit... 69 SREN Bit... 70 RD0/PSP0 Pin... 12 RD1/PSP1 Pin... 12 RD2/PSP2 Pin... 12 RD3/PSP3 Pin... 12 RD4/PSP4 Pin... 12 RD5/PSP5 Pin... 12 RD6/PSP6 Pin... 12 RD7/PSP7 Pin... 12 RE0/RD/AN5 Pin... 12 RE1/WR/AN6 Pin... 12 RE2/CS/AN7 Pin... 12 Reader Response... 168 Read-Modify-Write Operations... 105 Receive Overflow Indicator bit (SSPOV)... 61 Register File... 13 Registers ADCON0 (A/D Control 0)... 83 ADCON0 Register... 83 ADCON1 (A/D Control 1)... 83 ADCON1 Register... 84 ADRES (A/D Result)... 83 CCP1CON/CCP2CON Register... 54 Configuration Word Register... 90 Initialization Conditions (table)... 96 97 INTCON (Interrupt Control)... 21 INTCON Register... 21 OPTION_REG... 20 OPTION_REG Register... 20, 44 PCON (Power Control)... 25 PCON Register... 25 PIE1 (Peripheral Interrupt Enable 1)... 22 PIE1 Register... 22 PIE2 (Peripheral Interrupt Enable 2)... 24 PIE2 Register... 24 PIR1 (Peripheral Interrupt Request 1)... 23 PIR1 Register... 23 PIR2 (Peripheral Interrupt Request 2)... 24 PIR2 Register... 24 PMCON1 (Program Memory Control 1) Register... 29 RCSTA Register... 70 Special Function, Summary... 16 18 SSPCON Register... 61 SSPSTAT Register... 60 STATUS Register... 19 T1CON Register... 47 T2CON Register... 52 TRISE Register... 38 TXSTA Register... 69 RESET... 89, 93 Brown-out Reset (BOR). See Brown-out Reset (BOR) MCLR Reset. See MCLR Power-on Reset (POR). See Power-on Reset (POR) RESET Conditions for All Registers... 96 RESET Conditions for PCON Register... 95 RESET Conditions for Program Counter... 95 RESET Conditions for STATUS Register... 95 Reset WDT Reset. See Watchdog Timer (WDT) Revision History... 159 S S (START) bit... 60 SCI. See USART SCL... 65 Serial Communication Interface. See USART SLEEP... 89, 93, 102 SMP bit... 60 Software Simulator (MPLAB SIM)... 114 Special Features of the CPU... 89 Special Function Registers... 16, 16 18 Speed, Operating... 1 SPI Mode... 59 Associated Registers... 64 Serial Clock (SCK pin)... 59 Serial Data In (SDI pin)... 59 Serial Data Out (SDO pin)... 59 Slave Select... 59 SSP Overview RA5/SS/AN4 Pin... 8, 10 RC3/SCK/SCL Pin... 9, 11 RC4/SDI/SDA Pin... 9, 11 RC5/SDO Pin... 9, 11 SSP I 2 C Operation... 65 Slave Mode... 65 SSPEN bit... 61 DS21993A_KR- 페이지 164 2006 마이크로칩테크놀로지

SSPIF bit... 23 SSPM<3:0> bits... 61 SSPOV bit... 61 Stack... 26 Overflows... 26 Underflow... 26 STATUS Register DC Bit... 19 IRP Bit... 19 PD Bit... 93 TO Bit... 19, 93 Z Bit... 19 Synchronous Serial Port Enable bit (SSPEN)... 61 Synchronous Serial Port Interrupt bit (SSPIF)... 23 Synchronous Serial Port Mode Select bits (SSPM<3:0>)... 61 Synchronous Serial Port. See SSP T T1CKPS0 bit... 47 T1CKPS1 bit... 47 T1OSCEN bit... 47 T1SYNC bit... 47 T2CKPS0 bit... 52 T2CKPS1 bit... 52 TAD... 87 Time-out Sequence... 94 Timer0... 43 Associated Registers... 45 Clock Source Edge Select (T0SE Bit)... 20 Clock Source Select (T0CS Bit)... 20 External Clock... 44 Interrupt... 43 Overflow Enable (TMR0IE Bit)... 21 Overflow Flag (TMR0IF Bit)... 100 Overflow Interrupt... 100 Prescaler... 45 RA4/T0CKI Pin, External Clock... 8, 10 T0CKI... 44 Timer1... 47 Associated Registers... 50 Asynchronous Counter Mode... 49 Capacitor Selection... 50 Counter Operation... 48 Operation in Timer Mode... 48 Oscillator... 50 Prescaler... 50 RC0/T1OSO/T1CKI Pin... 9, 11 RC1/T1OSI/CCP2 Pin... 9, 11 Resetting of Timer1 Registers... 50 Resetting Timer1 using a CCP Trigger Output... 50 Synchronized Counter Mode... 48 TMR1H Register... 49 TMR1L Register... 49 Timer2... 51 Associated Registers... 52 Output... 51 Postscaler... 51 Prescaler... 51 Prescaler and Postscaler... 51 Timing Diagrams A/D Conversion... 137 Brown-out Reset... 126 Capture/Compare/PWM (CCP1 and CCP2)... 128 CLKOUT and I/O... 125 External Clock... 124 I 2 C Bus Data... 133 I 2 C Bus Start/Stop Bits... 132 I 2 C Reception (7-bit Address)... 67 I 2 C Transmission (7-bit Address)... 67 Parallel Slave Port... 129 Parallel Slave Port Read Waveforms... 41 Parallel Slave Port Write Waveforms... 41 Power-up Timer... 126 PWM Output... 57 RESET... 126 Slow Rise Time (MCLR Tied to VDD Through RC Network)... 98 SPI Master Mode (CKE = 0, SMP = 0)... 130 SPI Master Mode (CKE = 1, SMP = 1)... 130 SPI Mode (Master Mode)... 63 SPI Mode (Slave Mode with CKE = 0)... 63 SPI Mode (Slave Mode with CKE = 1)... 64 SPI Slave Mode (CKE = 0)... 131 SPI Slave Mode (CKE = 1)... 131 Start-up Timer... 126 Time-out Sequence on Power-up (MCLR Not Tied to VDD) Case 1... 98 Case 2... 98 Time-out Sequence on Power-up (MCLR Tied to VDD Through RC Network)... 97 Timer0... 127 Timer1... 127 USART Asynchronous Master Transmission... 74 USART Asynchronous Master Transmission (Back to Back)... 75 USART Asynchronous Reception... 76 USART Synchronous Receive (Master/Slave)... 135 USART Synchronous Reception (Master Mode, SREN)... 80 USART Synchronous Transmission... 79 USART Synchronous Transmission (Master/Slave)... 135 USART Synchronous Transmission (Through TXEN)... 79 Wake-up from Sleep via Interrupt... 103 Watchdog Timer... 126 Timing Parameter Symbology... 123 Timing Requirements Capture/Compare/PWM (CCP1 and CCP2)... 128 CLKOUT and I/O... 125 External Clock... 124 I 2 C Bus Data... 134 I2C Bus Start/Stop Bits... 133 Parallel Slave Port... 129 Reset, Watchdog Timer, Oscillator Start-up Timer, Power-up Timer and Brown-out Reset. 126 SPI Mode... 132 Timer0 and Timer1 External Clock... 127 USART Synchronous Receive... 135 USART Synchronous Transmission... 135 TMR1CS bit... 47 TMR1ON bit... 47 TMR2ON bit... 52 TOUTPS<3:0> bits... 52 TRISA Register... 31 TRISB Register... 33 TRISC Register... 35 TRISD Register... 36 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 165

TRISE Register... 37 IBF Bit... 38 IBOV Bit... 38 PSPMODE Bit... 36, 37 TXSTA Register SYNC Bit... 69 TRMT Bit... 69 TX9 Bit... 69 TX9D Bit... 69 TXEN Bit... 69 U UA... 60 Universal Synchronous Asynchronous Receiver Transmitter. See USART Update Address bit, UA... 60 USART... 69 Asynchronous Mode... 73 Asynchronous Receiver... 75 Asynchronous Reception... 76 Associated Registers... 77 Asynchronous Transmission Associated Registers... 75 Asynchronous Transmitter... 73 Baud Rate Generator (BRG)... 71 Baud Rate Formula... 71 Baud Rates, Asynchronous Mode (BRGH = 0).. 72 Baud Rates, Asynchronous Mode (BRGH = 1).. 72 Sampling... 71 Mode Select (SYNC Bit)... 69 Overrun Error (OERR Bit)... 70 RC6/TX/CK Pin... 9, 11 RC7/RX/DT Pin... 9, 11 Serial Port Enable (SPEN Bit)... 69 Single Receive Enable (SREN Bit)... 70 Synchronous Master Mode... 78 Synchronous Master Reception... 80 Associated Registers... 81 Synchronous Master Transmission... 78 Associated Registers... 79 Synchronous Slave Mode... 81 Synchronous Slave Reception... 82 Associated Registers... 82 Synchronous Slave Transmission... 81 Associated Registers... 82 Transmit Data, 9th Bit (TX9D)... 69 Transmit Enable (TXEN Bit)... 69 Transmit Enable, Nine-bit (TX9 Bit)... 69 Transmit Shift Register Status (TRMT Bit)... 69 User Code... 103 W Wake-up from SLEEP... 89 Interrupts... 95, 96 MCLR Reset... 96 WDT Reset... 96 Wake-up from Sleep... 102 Wake-up Using Interrupts... 102 Watchdog Timer (WDT)... 89, 101 Associated Registers... 101 Enable (WDTE Bit)... 101 Postscaler. See Postscaler, WDT Programming Considerations... 101 RC Oscillator... 101 Time-out Period... 101 WDT Reset, Normal Operation... 93, 95, 96 WDT Reset, SLEEP... 93, 95, 96 WCOL bit... 61 Write Collision Detect bit (WCOL)... 61 WWW Address... 167 WWW, On-Line Support... 4 DS21993A_KR- 페이지 166 2006 마이크로칩테크놀로지

마이크로칩웹사이트 마이크로칩은 www.microchip.com 을통하여온 - 라인지원을하고있다. 이웹사이트는다양한정보의파일을지원하며쉽게사용이가능하다. 사용자는인터넷브라우져를이용하여쉽게억세스가가능하며다음과같은정보들을포함하고있다. : 제품지원 데이터쉬트, 에라타자료, 어플리케이션노트, 예제프로그램, 디자인리소스, 유저스가이드, 하드웨어를지원하는자료, 최신소프트웨어, 다양한소프트웨어 기술지원 자주질문하는내용 (FAQ), 기술지원상담, 온라인상담그룹, 마이크로칩컨설턴트프로그램멤버리스트 기타비즈니스 디바이스선택가이드및오더링가이드, 최신마이크로칩소식, 세미나및이벤트안내, 마이크로칩지사, 공장, 대리점소개 커스터머지원 마이크로칩제품을사용하는사용자는아래의채널을통하여도움을받을수있다. 대리점 한국지사 필드어플리케이션엔지니어 (FAE) 기술지원사용자는자신의대리점및대표자드리고필드어플리케이션엔지니어들을통하여기술지원을받을수있으며또한한국지사를통하여서도가능하다. 각나라의지사및위치들의목록은이데이터쉬트의후반부에표시한다. 웹사이트를통한기술지원은 http:// support.micro chip.com 에서가능하다 변경통지서비스 마이크로칩고객통지서비스는마이크로칩제품을사용하는사용자에게해당된다. 사용자는관심있는개발장비및제품에대하여변경사항, 업데이트, 개정, 오류등에대하여이메일로연락를받을것이다등록을하기위해서는마이크로칩웹 - 사이트 www.microchip.com 를방문하여 Customer Change Notification 을클릭하신후다음안내에따르면된다.. 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 167

설문지 이것은보다높은신뢰성을가지고마이크로칩제품을성공적으로사용하기위해서필요한질문입니다. 만약당신이생각하기에마이크로칩자료가좀더신뢰적인방향으로나아가는데의견이있으신분은당신의의견을마이크로칩테크니컬메니져에게보내주십시요. Fax 번호는 1-480-792-4150 입니다이자료에대한당신의의견을아래의질문내용을작성하셔서마이크로칩으로제공하여주시길바랍니다.. To: RE: 마이크로칩테크니컬메니져 사용자로부터 보내는페이지수 From: 이름회사주소시 / 주 / 우편번호 / 도전화번호 : ( ) - 어플리케이션 ( 옵션 ): 팩스 : ( ) - 당신은응답을하시겠습니까? Y N 디바이스 PIC16CR7X : 문서번호 : DS21993A_KR 질문 : 1. 이자료의가장큰장점은무엇이라생각하십니까? 2. 당신은당신의하드웨어와소프트웨어개발에이자료가도움이되셨습니까? 3. 당신은이자료의구조를쉽게파악하셨습니까? ( 만약아니라면무엇때문입니까?) 4. 당신은보다더자세하게첨가시켜야할내용과주제를무엇이라생각하십니까? 5. 전체적인내용에영향을미치지않고삭제되어야할부분은무엇입니까? 6. 이데이터북에부정확하고잘못기재된내용은없었습니까? ( 무엇? 어디에?) 7. 당신은이데이터쉬트를어떻게개선시키시겠습니까? DS21993A_KR- 페이지 168 2006 마이크로칩테크놀로지

제품아이디시스템 가격이나납기에대한정보는공장이나한국지사와상의하기를바란다.. 파트넘버 X /XX XXX 디바이스 온도범위 패키지 패턴 디바이스 : PIC18F248/258 (1), PIC18F448/458 (1), PIC18F248/258T (2), PIC18F448/458T (2) ; VDD 범위 4.2V ~ 5.5V PIC18LF248/258 (1), PIC18LF448/458 (1), PIC18LF248/258T (2), PIC18LF448/458T (2) ; VDD 범위 2.0V ~ 5.5V 예제 : a) PIC18LF258 - I/L 301 = 산업용온도, PLCC 패키지, 저전압용, QTP 패턴 #301. b) PIC18LF458 - I/PT = 산업용온도, TQFP 패키지, 저전압용. c) PIC18F258 - E/L = 오토모티브온도범위, PLCC 패키지, 표준전압범위 온도범위 : I = -40 C ~ +85 C ( 산업용 ) E = -40 C ~ +125 C ( 오토모티브 ) 패키지 : PT = TQFP (Thin Quad Flatpack) L = PLCC SO = SOIC SP = Skinny Plastic DIP P = PDIP 노트 1: F = 표준전압범위 LF = 낮은전압범위까지지원 2: T = 테입앤릴타입 PLCC, and TQFP 패키지에서만지원. 패턴 : QTP, SQTP, 또는특별한요구에의해기재됨 ( 다른경우는비어있음 ) 2006 마이크로칩테크놀로지 DS21993A_KR- 페이지 169

전세계영업망및서비스 미국본사 2355 West Chandler Blvd. Chandler, AZ 85224-6199 전화 : 1-480-792-7200 팩스 : 1-480-792-7277 기술지원 : http://support.microchip.com 웹주소 : www.microchip.com 아틀란타 Alpharetta, GA 전화 : 1-770-640-0034 팩스 : 1-770-640-0307 보스톤 Westborough, MA 전화 : 1-774-760-0087 팩스 : 1-774-760-0088 시카고 Itasca, IL 전화 : 1-630-285-0071 팩스 : 1-630-285-0075 달라스 Addison, TX 전화 : 1-972-818-7423 팩스 : 1-972-818-2924 디트로이트 Farmington Hills, MI 전화 : 1-248-538-2250 팩스 : 1-248-538-2260 코코모 Kokomo, IN 전화 : 1-765-864-8360 팩스 : 1-765-864-8387 로스엔젤레스 Mission Viejo, CA 전화 : 1-949-462-9523 팩스 : 1-949-462-9608 산호세 Mountain View, CA 전화 : 1-650-215-1444 팩스 : 1-650-961-0286 토론토 Mississauga, Ontario, Canada 전화 : 1-905-673-0699 팩스 : 1-905-673-6509 아시아패시픽오스트레일리아 - 시드니전화 : 61-2-9868-6733 팩스 : 61-2-9868-6755 중국 - 베이징전화 : 86-10-8528-2100 팩스 : 86-10-8528-2104 중국 - 청두전화 : 86-28-8676-6200 팩스 : 86-28-8676-6599 중국 - 퓨조전화 : 86-591-8750-3506 팩스 : 86-591-8750-3521 중국 - 홍콩 SAR 전화 : 852-2401-1200 팩스 : 852-2401-3431 중국 - 상해전화 : 86-21-5407-5533 팩스 : 86-21-5407-5066 중국 - 쉔양전화 : 86-24-2334-2829 팩스 : 86-24-2334-2393 중국 - 쉔젠전화 : 86-755-8203-2660 팩스 : 86-755-8203-1760 중국 - 쉰드전화 : 86-757-2839-5507 팩스 : 86-757-2839-5571 중국 - 우한전화 : 86-27-5980-5300 팩스 : 86-27-5980-5118 중국 - 지안전화 : 86-29-8833-7250 팩스 : 86-29-8833-7256 아시아패시픽 인디아 - 뱅갈로전화 : 91-80-2229-0061 팩스 : 91-80-2229-0062 인디아 - 뉴델히전화 : 91-11-5160-8631 팩스 : 91-11-5160-8632 인디아 - 푸네전화 : 91-20-2566-1512 팩스 : 91-20-2566-1513 일본 - 요코하마전화 : 81-45-471-6166 팩스 : 81-45-471-6122 한국 - 구미전화 : 82-54-473-4301 팩스 : 82-54-473-4302 한국 - 서울전화 : 82-2-554-7200 팩스 : 82-2-558-5932 or 82-2-558-5934 말레이지아 - 펜항전화 :011-604-646-8870 팩스 :011-604-646-5086 필리핀 - 마닐라전화 : 011-632-634-9065 팩스 : 011-632-634-9069 싱가폴전화 : 65-6334-8870 팩스 : 65-6334-8850 대만 - 쉰츄전화 : 886-3-572-9526 팩스 : 886-3-572-6459 대만 - 카오싱전화 : 886-7-536-4818 팩스 : 886-7-536-4803 대만 - 타이페이전화 : 886-2-2500-6610 팩스 : 886-2-2508-0102 타일랜드 - 방콕전화 : 66-2-694-1351 팩스 : 66-2-694-1350 유럽 오스트리아 - 웨이스전화 : 43-7242-2244-3910 팩스 : 43-7242-2244-393 덴마크 - 코펜하겐전화 : 45-4450-2828 팩스 : 45-4485-2829 프랑스 - 파리전화 : 33-1-69-53-63-20 팩스 : 33-1-69-30-90-79 독일 - 무니치전화 : 49-89-627-144-0 팩스 : 49-89-627-144-44 이태리 - 밀란전화 : 39-0331-742611 팩스 : 39-0331-466781 네덜란드 - 드루넨전화 : 31-416-690399 팩스 : 31-416-690340 스페인 - 마드리드전화 : 34-91-708-08-90 팩스 : 34-91-708-08-91 UK - 워킹험전화 : 44-118-921-5869 팩스 : 44-118-921-5820 02/16/06 DS21993A_KR- 페이지 170 2006 마이크로칩테크놀로지