자료실

뒤로가기
제목

[PIC 프로그래밍] 4. PIC 마이크로컨트롤러

작성자 가치창조기술(ip:)

작성일 2011-08-09 11:07:01

조회 1408

평점 0점  

추천 추천하기

내용

 

1.4 PIC 마이크로컨트롤러

PIC MCU 프로그래밍을 설명하기 위해 중상급의 MCU 모델을 하나 선택하여 설명하도록 하겠습니다. 여기서는 PIC18F887을 가지고 설명합니다. 이 모델은 강력한 기능을 가지고 있지만 상대적으로 단순하여 이해하기 좋습니다.

 

Family ROM [Kbytes] RAM [bytes] Pins Clock Freq. [MHz] A/D Inputs Resolution of A/D Converter Compar- ators 8/16 – bit Timers Serial Comm. PWM Outputs Others
Base-Line 8 - bit architecture, 12-bit Instruction Word Length
PIC10FXXX 0.375 - 0.75 16 - 24 6 - 8 4 - 8 0 - 2 8 0 - 1 1 x 8 - - -
PIC12FXXX 0.75 - 1.5 25 - 38 8 4 - 8 0 - 3 8 0 - 1 1 x 8 - - EEPROM
PIC16FXXX 0.75 - 3 25 - 134 14 - 44 20 0 - 3 8 0 - 2 1 x 8 - - EEPROM
PIC16HVXXX 1.5 25 18 - 20 20 - - - 1 x 8 - - Vdd = 15V
Mid-Range 8 - bit architecture, 14-bit Instruction World Length
PIC12FXXX 1.75 - 3.5 64 - 128 8 20 0 - 4 10 1 1 - 2 x 8 1 x 16 - 0 - 1 EEPROM
PIC12HVXXX 1.75 64 8 20 0 - 4 10 1 1 - 2 x 8 1 x 16 - 0 - 1 -
PIC16FXXX 1.75 - 14 64 - 368 14 - 64 20 0 - 13 8 or 10 0 - 2 1 - 2 x 8 1 x 16 USART I2C SPI 0 - 3 -
PIC16HVXXX 1.75 - 3.5 64 - 128 14 - 20 20 0 - 12 10 2 2 x 8 1 x 16 USART I2C SPI - -
High-End 8 - bit architecture, 16-bit Instruction Word Length
PIC18FXXX 4 - 128 256 - 3936 18 - 80 32 - 48 4 - 16 10 or 12 0 - 3 0 - 2 x 8 2 - 3 x 16 USB2.0 CAN2.0 USART I2C SPI 0 - 5 -
PIC18FXXJXX 8 - 128 1024 - 3936 28 - 100 40 - 48 10 - 16 10 2 0 - 2 x 8 2 - 3 x 16 USB2.0 USART Ethernet I2C SPI 2 - 5 -
PIC18FXXKXX 8 - 64 768 - 3936 28 - 44 64 10 - 13 10 2 1 x 8 3 x 16 USART I2C SPI 2 -

 

모든 PIC 마이크로컨트롤러는 하버드 아키텍쳐를 사용합니다. 먼저 글에서 설명하였듯이 이는 프로그램 메모리가 CPU에 8개 이상의 라인으로 연결되어 있다는 것을 의미합니다. 버스의 너비에 따라 12, 14, 16 비트 마이크로컨트롤러가 존재합니다. 위의 테이블은 제품을 이런 세가지 카테고리에 따라 나눈것을 보여줍니다.

테이블에서 보듯 모든 마이크로컨트롤러(16-bit PIC 24FXXX , PIC 24HXXX 제외)는 8-bit 하버드 아키텍쳐를 가지고 있고 이 세가지중 하나의 카테고리에 속합니다. 다시말하면 프로그램 워드의 크기가 MCU의 카테고리를 결정합니다. 비슷한 8비트 코어를 사용하고 있다면, MCU는 모두 같은 인스트럭셋과 비슷한 하드웨어 구조를 가지고 있고 연결되는 주변기기정도에 차이가 있다고 볼수 있습니다.

 

INSTRUCTION SET

 

16F8XX 인스트럭션 셋에는 총 35개의 인스트럭션이 있습니다. 인스트럭션의 숫자는 많지가 않은데요. 이것은 PIC MCU가 RISC 구조를 채택하였기 때문입니다. 때문에 빠른 속도와 간단한 디자인구조, 코드 효율성에 우수함을 보여줍니다. RISC 구조의 단점은 프로그래머가 복잡한 연산을 위해서는 여러개의 인스트럭션을 조합해야 되는 것인데, 이것은 어셈블리 언어를 사용할때만 해당되는 이야기입니다. C와 같은 하이레벨 언어에서는 컴파일러가 대신 그와 같은 작업을 하여줍니다.

 

INSTRUCTION EXECUTION TIME

 

모든 인스트럭션은 싱글 싸이클 인스트럭션입니다. (conditional branch 및 program counter상에서 수행되는 인스트럭션은 two cycle임) 싱글 싸이클 인스트럭션은 4개의 클럭 사이클로 구성되어 있습니다. 만약 4Mhz 오실레이터를 사용한다면, 인스트럭션이 실행되는 시간은 1μS 이 됩니다. 점프인스트럭션은 2 cycle이니까 2μS가 되겠군요

아래는 14-bit PIC MCU의 인스트럭션 셋입니다:

 

Instruction Description Operation Flag CLK *
Data Transfer Instructions
MOVLW k Move constant to W k -> w 1
MOVWF f Move W to f W -> f 1
MOVF f,d Move f to d f -> d Z 1 1, 2
CLRW Clear W 0 -> W Z 1
CLRF f Clear f 0 -> f Z 1 2
SWAPF f,d Swap nibbles in f f(7:4),(3:0) -> f(3:0),(7:4) 1 1, 2
Arithmetic-logic Instructions
ADDLW k Add W and constant W+k -> W C, DC, Z 1
ADDWF f,d Add W and f W+f -> d C, DC ,Z 1 1, 2
SUBLW k Subtract W from constant k-W -> W C, DC, Z 1
SUBWF f,d Subtract W from f f-W -> d C, DC, Z 1 1, 2
ANDLW k Logical AND with W with constant W AND k -> W Z 1
ANDWF f,d Logical AND with W with f W AND f -> d Z 1 1, 2
ANDWF f,d Logical AND with W with f W AND f -> d Z 1 1, 2
IORLW k Logical OR with W with constant W OR k -> W Z 1
IORWF f,d Logical OR with W with f W OR f -> d Z 1 1, 2
XORWF f,d Logical exclusive OR with W with constant W XOR k -> W Z 1 1, 2
XORLW k Logical exclusive OR with W with f W XOR f -> d Z 1
INCF f,d Increment f by 1 f+1 -> f Z 1 1, 2
DECF f,d Decrement f by 1 f-1 -> f Z 1 1, 2
RLF f,d Rotate left f through CARRY bit C 1 1, 2
RRF f,d Rotate right f through CARRY bit C 1 1, 2
COMF f,d Complement f f -> d Z 1 1, 2
Bit-oriented Instructions
BCF f,b Clear bit b in f 0 -> f(b) 1 1, 2
BSF f,b Clear bit b in f 1 -> f(b) 1 1, 2
Program Control Instructions
BTFSC f,b Test bit b of f. Skip the following instruction if clear. Skip if f(b) = 0 1 (2) 3
BTFSS f,b Test bit b of f. Skip the following instruction if set. Skip if f(b) = 1 1 (2) 3
DECFSZ f,d Decrement f. Skip the following instruction if clear. f-1 -> d skip if Z = 1 1 (2) 1, 2, 3
INCFSZ f,d Increment f. Skip the following instruction if set. f+1 -> d skip if Z = 0 1 (2) 1, 2, 3
GOTO k Go to address k -> PC 2
CALL k Call subroutine PC -> TOS, k -> PC 2
RETURN Return from subroutine TOS -> PC 2
RETLW k Return with constant in W k -> W, TOS -> PC 2
RETFIE Return from interrupt TOS -> PC, 1 -> GIE 2
Other instructions
NOP No operation TOS -> PC, 1 -> GIE 1
CLRWDT Clear watchdog timer 0 -> WDT, 1 -> TO, 1 -> PD TO, PD 1
SLEEP Go into sleep mode 0 -> WDT, 1 -> TO, 0 -> PD TO, PD 1

 

*1 When an I/O register is modified as a function of itself, the value used will be that value present on the pins themselves.
*2 If the instruction is executed on the TMR register and if d=1, the prescaler will be cleared.
*3 If the PC is modified or test result is logic one (1), the instruction requires two cycles.

 

 

8-bit PIC 마이크로컨트롤러의 구조

 

가치창조기술

www.ubiquitics.co.kr

www.vctec.co.kr

 

 

MCU 개발용 보드

제품특징

  • PIC, dsPIC, PIC24, PIC32MX, AVR, PSoC, 8051, ARM 마이크로프로세서 지원
  • 프로그래머 및 ICD 디버거가 개발보드에 내장되어 있어 경제적
  • COG/LCD/GLCD 장착
  • MCU의 모든 핀들은 개발보드상의 인터페이스 핀에 연결되어 있음
  • 개발보드상의 DIP스위치를 이용하여 개발보드를 설정
  • MCU 핀에 LED 및 푸시버튼이 보드상에 연결되어 있음
  • 즉시 사용가능한 다양한 예제 지원
  • 마이크로일렉트로니카 컴파일러 지원
  • 다양한 개발용 악세사리를 개발보드상에 연결하여 사용이 가능

제품군:

제품군 설명
Microchip PIC

Microchip PIC용 개발보드 제품군

Microchip dsPIC Microchip dsPIC용 개발보드 제품군
Microchip dsPIC24-33 Microchip dsPIC24-dsPIC33용 개발보드 제품군
Microchip PIC32MX Microchip PIC32MX용 개발보드 제품군
Atmel AVR 및 XMega Atmel AVR 및 XMega용 개발보드 제품군
Cypress PSoC Cypress PSoC용 개발보드 제품군
Atmel 8051 Atmel 8051용 개발보드 제품군
NXP ARM NXP ARM용 개발보드 제품군
GPS 개발보드 GPS 개발보드 제품군
MCU 컴파일러

제품특징

  • PIC, dsPIC, PIC24, PIC32, AVR, 8051 마이크로프로세서 지원
  • 편리하고 직관적인 IDE환경
  • 500개 이상의 라이브러리 함수지원으로 개발시간 절약
  • 다양한 개발용 툴 지원
  • mikroProg 하드웨어 In-Circuit Debugging 지원
  • 즉시 사용가능한 예제 지원

제품 모델:

제품 설명
PIC용 컴파일러 Microchip PIC용 컴파일러
AVR용 컴파일러 Atmel AVR용 컴파일러
dsPIC30/33 및 PIC24용 컴파일러 Microchip dsPIC30/33 및 PIC24용 컴파일러
PIC32용 컴파일러 Microchip PIC32용 컴파일러
8051용 컴파일러 Atmel 및 Silicon Labs 8051용 컴파일러

개발용 악세사리보드

제품특징

  • 악세사리보드로 다양한 MCU와 주변장치의 기능을 테스트
  • 통신/저장/시간측정/디스플레이/측정/오디오/전원공급/기타 등의 악세사리보드
  • Mikroelektronika 개발보드에 연결하여 사용 가능
  • 즉시 사용 가능한 예제 제공

제품군:

제품군 설명
통신용 보드 통신용 악세사리보드
스토리지 보드 스토리지용 악세사리보드
시간측정용 보드 시간측정용 악세사리보드
디스플레이 보드 디스플레이용 악세사리보드
센서 및 측정보드 센서 및 측정용 악세사리보드
오디오 및 보이스 보드 오디오 및 보이스용 악세사7리보드
전원제어보드 전원제어용 악세사리보드
기타보드 릴레이, RFID, 센서 등의 다양한 악세사리보드

MCU 개발용 키트

제품특징

  • PIC, dsPIC, PIC24, PIC32, AVR, 8051 마이크로프로세서 지원 개발용 키트
  • 개발에 필요한 개발보드, 컴파일러 및 악세사리보드 포함
  • 개발용 키트 묶은 구매로 개별구매보다 저렴

제품군:

Part Number 모델 설명
PIC 개발용 키트 Microchip PIC 개발용 키트
dsPIC30 개발용 키트 Microchip dsPIC30 개발용 키트
dsPIC33-PIC24 개발용키트 Microchip dsPIC33-PIC24 개발용 키트
AVR 및 XMega 개발용키트 Atmel AVR 및 XMega 개발용 키트

8051 개발

용 키트

Atmel 및 Silicon Labs 8051 개발용 키트     

첨부파일

비밀번호
수정

비밀번호 입력후 수정 혹은 삭제해주세요.

댓글목록

등록된 댓글이 없습니다.

댓글 수정

이름

비밀번호

내용

/ byte

수정 취소

비밀번호

확인 취소

댓글 입력

이름

비밀번호

내용

/ byte

평점

관리자에게만 댓글 작성 권한이 있습니다.