100% found this document useful (1 vote)
94 views

Introduction To PIC Microcontroller: Lecturer: DR Abd Rahman Tamuri, DR Yaacob Mat Daud

The document provides an introduction to PIC microcontrollers. It discusses that PIC microcontrollers integrate all computer system components onto a single chip and are optimized for control applications. It then describes some key aspects of PIC microcontrollers, including that they use a Harvard architecture with separate program and data memory, have a RISC instruction set, and come in a range of sizes and with various onboard peripherals like analog to digital converters, serial communication ports, timers and pulse width modulation modules. The document provides an overview of the PIC family and specifications of different models.
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
94 views

Introduction To PIC Microcontroller: Lecturer: DR Abd Rahman Tamuri, DR Yaacob Mat Daud

The document provides an introduction to PIC microcontrollers. It discusses that PIC microcontrollers integrate all computer system components onto a single chip and are optimized for control applications. It then describes some key aspects of PIC microcontrollers, including that they use a Harvard architecture with separate program and data memory, have a RISC instruction set, and come in a range of sizes and with various onboard peripherals like analog to digital converters, serial communication ports, timers and pulse width modulation modules. The document provides an overview of the PIC family and specifications of different models.
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 54

Introduction to PIC Microcontroller

Lecturer: Dr Abd Rahman Tamuri, Dr Yaacob Mat Daud Physics Department, Faculty of Science, Universiti Teknologi Malaysia, 81310, JB

Lecture 04

More on Microcontrollers
Microcontrollers integrate all the components of a computer system onto a single chip All components are optimized to perform the functions necessary to control a larger system Size, capability, cost, and power consumption are more important considerations 8 bit microcontrollers have the majority of the market right now, but 16 and 32 bit microcontrollers are available and gaining market share

Lecture 04

Common Microcontrollers

Microcontroller Manufacturers There are lots of microcontroller manufacturers

PIC MICROCONTROLLER

PIC MICROCONTROLLER

The PICmicro was originally designed around 1980 by General Instrument as a small, fast, inexpensive embedded microcontroller with strong I/O capabilities. PIC stands for "Peripheral Interface Controller". General Instrument recognized the potential for the PIC and eventually spun off Microchip, headquartered in Chandler, AZ to fabricate and market the PICmicro.

PIC MICROCONTROLLER

PIC Microcontroller
Range of low end 8 bit microcontrollers. Smallest have only 8 pins, largest 40 pins. Typical chip is an 18 pin one. Very cheap, you can pick them up at less than 1 each. Targeted at consumer products, burglar alarms etc.

Advantages of PIC It is a RISC (Reduced Instruction Set Computer) design Only thirty seven instructions to remember Its code is extremely efficient, allowing the PIC to run with typically less program memory than its larger competitors. It is low cost, high clock speed

PIC MICROCONTROLLER

Harvard architecture Like many micros the PIC is a Harvard not a von-Neumann machine This is simpler and faster Separate program bus and data bus: can be different widths! For example, PICs use: Data memory (RAM): a small number of 8bitregisters Program memory (ROM): 12bit, 14bit or 16bit wide (in EPROM, FLASH, or ROM)

PIC MICROCONTROLLER

Comparison Between Architectures


Memory Data + Code Data CPU Data I/O Devices Von Neumann Machine Address Instruction address CPU Variable address I/O Devices Harvard Machine Program Memory Data Memory

PIC MICROCONTROLLER

Harvard architecture is a newer concept than von-Neumann's. It rose out of the need to speed up the work of a microcontroller. In Harvard architecture, Data Access and Address Access are separate. Thus a greater flow of data is possible through the central processing unit. PIC16F877 uses 14 bits for instructions which allows for all instructions to be one word instructions. Advantages of Harvard model An add operation of the form a:=b+c must fetch 2 operands from memory and write 1 operand to memory. In addition it is likely to have to fetch 3 instructions from memory. With a single memory this will take 6 cycles. With 2 memories, we can fetch the instructions in parallel with the data and do it in 3 cycles. We have different word lengths for instructions and data 8 bit data and perhaps 12 bit instructions.
PIC MICROCONTROLLER 10

Harvard vs von Neumann Block Architecture

Harvard

Von- Neumann

Data Memory 8

CPU 14

Program Memory

CPU 8

Program Memory

PIC MICROCONTROLLER

11

Von Neumann Architecture


Used in: 80X86 (PCs), 8051, 68HC11, etc.) Only one bus between CPU and memory RAM and program memory share the same bus and the same memory, and so must have the same bit width Bottleneck: Getting instructions interferes with accessing RAM RISC Architecture Complex/Reduced Instruction Set Computers A minimal set of instructions, combined, can do every operation Usually execute in a single cycle CPU is smaller Other hardware can be added to the space: (overlapping register windows)

PIC MICROCONTROLLER

12

Traditionally, CPUs are CISC


Complex Instruction Set Computer (CISC) Used in: 80X86, 8051, 68HC11, etc. Many instructions (usually > 100) Many, many addressing modes Usually takes more than 1 internal clock cycle to execute

PICs and most Harvard chips are RISC


Reduced Instruction Set Computer (RISC) Used in: SPARC, ALPHA, Atmel AVR, etc. Few instructions (usually < 50) Only a few addressing modes Executes 1 instruction in 1 internal clock cycle

PIC MICROCONTROLLER

13

The PIC Family: Cores


PICs come with 1 of 4 CPU cores: 12bit cores with 33 instructions: 12C50x, 16C5x 14bit cores with 35 instructions: 12C67x,16Cxxx 16bit cores with 58 instructions: 17C4x,17C7xx Enhanced 16bit cores with 77 instructions: 18Cxxx

The PIC Family: Packages


PICs come in a huge variety of packages: 8 pin DIPs, SOICs: 12C50x (12bit) and 12C67x (14bit) 18pin DIPs, SOICs: 16C5X (12bit), 16Cxxx (14bit) 28pin DIPs, SOICs: 16C5X (12bit), 16Cxxx (14bit) 40pin DIPs, SOICs: 16Cxxx (14bit), 17C4x (16bit) 44 - 68pin PLCCs*: 16Cxxx (14bit), 17C4x / 17Cxxx (16bit)

PIC MICROCONTROLLER

14

The PIC Family: Speed


PICs require a clock to work. Can use crystals, clock oscillators, or even an RC circuit. Some PICs have a built in 4MHz RC clock Not very accurate, but requires no external components! Instruction speed = 1/4 clock speed All PICs can be run from DC to their maximum specified speed: 12C50x 4MHz 12C67x 10MHz 16Cxxx 20MHz 17C4x / 17C7xxx 33MHz 18Cxxx 40MHz

PIC MICROCONTROLLER

15

The PIC Family: Program Memory PIC program space is different for each chip. Some examples are: 12C508 512 12bit instructions 16C71C 1024 (1k) 14bit instructions 16F877 8192 (8k) 14bit instructions 17C766 16384 (16k) 16bit instructions

PIC MICROCONTROLLER

16

The PIC Family: Program Memory


PICs have two different types of program storage: 1. EPROM (Erasable Programmable Read Only Memory) Needs high voltage from a programmer to program (~13V) Needs windowed chips and UV light to erase Note: One Time Programmable (OTP) chips are EPROM chips, but with no window! PIC Examples: Any C part: 12C50x, 17C7xx, etc. 2. FLASH Re-writable (even by chip itself) Much faster to develop on! Finite number of writes (~100k Writes) PIC Examples: Any F part: 16F84, 16F87x, 18Fxxx (future)

PIC MICROCONTROLLER

17

The PIC Family: Data Memory PICs use general purpose file registers for RAM (each register is 8bits for all PICs) Some examples are: 12C508 25 Bytes RAM 16C71C 36 Bytes RAM 16F877 368 Bytes (plus 256 Bytes of nonvolatile EEPROM) 17C766 902 Bytes RAM Dont forget, programs are stored in program space (not in data space), so low RAM values are OK.

PIC MICROCONTROLLER

18

The PIC Family: Control Registers


PICs use a series of special function registers for controlling peripherals and PIC behaviors. Some examples are: STATUS Bank select bits, ALU bits (zero, borrow, carry) INTCON Interrupt control: interrupt enables, flags, etc. TRIS Tristate control for digital I/O: which pins are floating TXREG UART transmit register: the next byte to transmit

PIC MICROCONTROLLER

19

The PIC Family: Peripherals


Different PICs have different on-board peripherals Some common peripherals are: Tri-state (floatable) digital I/O pins Analog to Digital Converters (ADC) (8, 10 and 12bit, 50ksps) Serial communications: UART (RS-232C), SPI, I2C, CAN Pulse Width Modulation (PWM) (10bit) Timers and counters (8 and 16bit) Watchdog timers, Brown out detect, LCD drivers

PIC MICROCONTROLLER

20

PIC Peripherals: Ports (Digital I/O)


All PICs have digital I/O pins, called Ports the 8pin 12C508 has 1 Port with 4 digital I/O pins the 68pin 17C766 has 9 Ports with 66 digital I/O pins Ports have 2 control registers TRISx sets whether each pin is an input or output PORTx sets their output bit levels Most pins have 25mA source/sink (directly drives LEDs) WARNING: Other peripherals SHARE pins!

PIC MICROCONTROLLER

21

PIC Peripherals: ADCs


Only available in 14bit and 16bit cores Fs (sample rate) < 54KHz Most 8bits, newer PICs have 10 or 12bits All are +/- 1LSB and are monotonic Theoretically higher accuracy when PIC is in sleep mode (less digital noise) Can generate an interrupt on ADC conversion done Multiplexed 3 (12C671) - 12 (17C7xxx) channel input Must wait Tacq to charge up sampling capacitor

PIC MICROCONTROLLER

22

PIC Peripherals: USART: UART


Serial Communications Peripheral: Universal Synchronous/ Asynchronous Receiver/Transmitter Only available in 14bit and 16bit cores Interrupt on TX buffer empty and RX buffer full Asynchronous communication: UART (RS-232C serial) Can do 300bps - 115kbps 8 or 9 bits, parity, start and stop bits, etc. Outputs 5V so you need a RS232 level converter (e.g., MAX232)

PIC MICROCONTROLLER

23

PIC Peripherals: USART: USRT


Synchronous communication: i.e., with clock signal SPI = Serial Peripheral Interface 3 wire: Data in, Data out, Clock Master/Slave (can have multiple masters) Very high speed (1.6Mbps) Full speed simultaneous send and receive (Full duplex) I2C = Inter IC 2 wire: Data and Clock Master/Slave (Single master only; multiple masters clumsy) Lots of cheap I2C chips available; typically < 100kbps (For example, 8pin EEPROM chips, ADC, DACs, etc.)

PIC MICROCONTROLLER

24

PIC Peripherals: Timers


Available in all PICs 14+bit cores may generate interrupts on timer overflow Some 8bits, some 16bits, some have prescalers Can use external pins as clock in/clock out (ie, for counting events or using a different Fosc) Warning: some peripherals share Timer resources

PIC MICROCONTROLLER

25

PIC Peripherals: CCP Modules


Capture/Compare/PWM (CCP) 10bit PWM width within 8bit PWM period (frequency) Enhanced 16bit cores have better bit widths Frequency/Duty cycle resolution tradeoff 19.5KHz has 10bit resolution 40KHz has 8bit resolution 1MHz has 1bit resolution (makes a 1MHz clock!) Can use PWM to do DAC - See AN655 Capture counts external pin changes Compare will interrupt on when the timer equals the value in a compare register

PIC MICROCONTROLLER

26

PIC Peripherals: Misc.


Sleep Mode: PIC shuts down until external interrupt (or internal timer) wakes it up. Interrupt on pin change: Generate an interrupt when a digital input pin changes state (for example, interrupt on keypress). Watchdog timer: Resets chip if not cleared before overflow Brown out detect: Resets chip at a known voltage level LCD drivers: Drives simple LCD displays Future: CAN bus, 12bit ADC, better analog functions VIRTUAL PERIPHERALS: Peripherals programmed in software. UARTS, timers, and more can be done in software (but it takes most of the resources of the machine)

PIC MICROCONTROLLER

27

Introduction to PIC Microcontroller


Lecturer: Dr Abd Rahman Tamuri, Dr Yaacob Mat Daud Physics Department, Faculty of Science, Universiti Teknologi Malaysia, 81310, JB

Lecture 04

More on Microcontrollers
Microcontrollers integrate all the components of a computer system onto a single chip All components are optimized to perform the functions necessary to control a larger system Size, capability, cost, and power consumption are more important considerations 8 bit microcontrollers have the majority of the market right now, but 16 and 32 bit microcontrollers are available and gaining market share

Lecture 04

Common Microcontrollers

Microcontroller Manufacturers There are lots of microcontroller manufacturers

PIC MICROCONTROLLER

PIC MICROCONTROLLER

The PICmicro was originally designed around 1980 by General Instrument as a small, fast, inexpensive embedded microcontroller with strong I/O capabilities. PIC stands for "Peripheral Interface Controller". General Instrument recognized the potential for the PIC and eventually spun off Microchip, headquartered in Chandler, AZ to fabricate and market the PICmicro.

PIC MICROCONTROLLER

PIC Microcontroller
Range of low end 8 bit microcontrollers. Smallest have only 8 pins, largest 40 pins. Typical chip is an 18 pin one. Very cheap, you can pick them up at less than 1 each. Targeted at consumer products, burglar alarms etc.

Advantages of PIC It is a RISC (Reduced Instruction Set Computer) design Only thirty seven instructions to remember Its code is extremely efficient, allowing the PIC to run with typically less program memory than its larger competitors. It is low cost, high clock speed

PIC MICROCONTROLLER

Harvard architecture Like many micros the PIC is a Harvard not a von-Neumann machine This is simpler and faster Separate program bus and data bus: can be different widths! For example, PICs use: Data memory (RAM): a small number of 8bitregisters Program memory (ROM): 12bit, 14bit or 16bit wide (in EPROM, FLASH, or ROM)

PIC MICROCONTROLLER

Comparison Between Architectures


Memory Data + Code Data CPU Data I/O Devices Von Neumann Machine Address Instruction address CPU Variable address I/O Devices Harvard Machine Program Memory Data Memory

PIC MICROCONTROLLER

Harvard architecture is a newer concept than von-Neumann's. It rose out of the need to speed up the work of a microcontroller. In Harvard architecture, Data Access and Address Access are separate. Thus a greater flow of data is possible through the central processing unit. PIC16F877 uses 14 bits for instructions which allows for all instructions to be one word instructions. Advantages of Harvard model An add operation of the form a:=b+c must fetch 2 operands from memory and write 1 operand to memory. In addition it is likely to have to fetch 3 instructions from memory. With a single memory this will take 6 cycles. With 2 memories, we can fetch the instructions in parallel with the data and do it in 3 cycles. We have different word lengths for instructions and data 8 bit data and perhaps 12 bit instructions.
PIC MICROCONTROLLER 10

Harvard vs von Neumann Block Architecture

Harvard

Von- Neumann

Data Memory 8

CPU 14

Program Memory

CPU 8

Program Memory

PIC MICROCONTROLLER

11

Von Neumann Architecture


Used in: 80X86 (PCs), 8051, 68HC11, etc.) Only one bus between CPU and memory RAM and program memory share the same bus and the same memory, and so must have the same bit width Bottleneck: Getting instructions interferes with accessing RAM RISC Architecture Complex/Reduced Instruction Set Computers A minimal set of instructions, combined, can do every operation Usually execute in a single cycle CPU is smaller Other hardware can be added to the space: (overlapping register windows)

PIC MICROCONTROLLER

12

Traditionally, CPUs are CISC


Complex Instruction Set Computer (CISC) Used in: 80X86, 8051, 68HC11, etc. Many instructions (usually > 100) Many, many addressing modes Usually takes more than 1 internal clock cycle to execute

PICs and most Harvard chips are RISC


Reduced Instruction Set Computer (RISC) Used in: SPARC, ALPHA, Atmel AVR, etc. Few instructions (usually < 50) Only a few addressing modes Executes 1 instruction in 1 internal clock cycle

PIC MICROCONTROLLER

13

The PIC Family: Cores


PICs come with 1 of 4 CPU cores: 12bit cores with 33 instructions: 12C50x, 16C5x 14bit cores with 35 instructions: 12C67x,16Cxxx 16bit cores with 58 instructions: 17C4x,17C7xx Enhanced 16bit cores with 77 instructions: 18Cxxx

The PIC Family: Packages


PICs come in a huge variety of packages: 8 pin DIPs, SOICs: 12C50x (12bit) and 12C67x (14bit) 18pin DIPs, SOICs: 16C5X (12bit), 16Cxxx (14bit) 28pin DIPs, SOICs: 16C5X (12bit), 16Cxxx (14bit) 40pin DIPs, SOICs: 16Cxxx (14bit), 17C4x (16bit) 44 - 68pin PLCCs*: 16Cxxx (14bit), 17C4x / 17Cxxx (16bit)

PIC MICROCONTROLLER

14

The PIC Family: Speed


PICs require a clock to work. Can use crystals, clock oscillators, or even an RC circuit. Some PICs have a built in 4MHz RC clock Not very accurate, but requires no external components! Instruction speed = 1/4 clock speed All PICs can be run from DC to their maximum specified speed: 12C50x 4MHz 12C67x 10MHz 16Cxxx 20MHz 17C4x / 17C7xxx 33MHz 18Cxxx 40MHz

PIC MICROCONTROLLER

15

The PIC Family: Program Memory PIC program space is different for each chip. Some examples are: 12C508 512 12bit instructions 16C71C 1024 (1k) 14bit instructions 16F877 8192 (8k) 14bit instructions 17C766 16384 (16k) 16bit instructions

PIC MICROCONTROLLER

16

The PIC Family: Program Memory


PICs have two different types of program storage: 1. EPROM (Erasable Programmable Read Only Memory) Needs high voltage from a programmer to program (~13V) Needs windowed chips and UV light to erase Note: One Time Programmable (OTP) chips are EPROM chips, but with no window! PIC Examples: Any C part: 12C50x, 17C7xx, etc. 2. FLASH Re-writable (even by chip itself) Much faster to develop on! Finite number of writes (~100k Writes) PIC Examples: Any F part: 16F84, 16F87x, 18Fxxx (future)

PIC MICROCONTROLLER

17

The PIC Family: Data Memory PICs use general purpose file registers for RAM (each register is 8bits for all PICs) Some examples are: 12C508 25 Bytes RAM 16C71C 36 Bytes RAM 16F877 368 Bytes (plus 256 Bytes of nonvolatile EEPROM) 17C766 902 Bytes RAM Dont forget, programs are stored in program space (not in data space), so low RAM values are OK.

PIC MICROCONTROLLER

18

The PIC Family: Control Registers


PICs use a series of special function registers for controlling peripherals and PIC behaviors. Some examples are: STATUS Bank select bits, ALU bits (zero, borrow, carry) INTCON Interrupt control: interrupt enables, flags, etc. TRIS Tristate control for digital I/O: which pins are floating TXREG UART transmit register: the next byte to transmit

PIC MICROCONTROLLER

19

The PIC Family: Peripherals


Different PICs have different on-board peripherals Some common peripherals are: Tri-state (floatable) digital I/O pins Analog to Digital Converters (ADC) (8, 10 and 12bit, 50ksps) Serial communications: UART (RS-232C), SPI, I2C, CAN Pulse Width Modulation (PWM) (10bit) Timers and counters (8 and 16bit) Watchdog timers, Brown out detect, LCD drivers

PIC MICROCONTROLLER

20

PIC Peripherals: Ports (Digital I/O)


All PICs have digital I/O pins, called Ports the 8pin 12C508 has 1 Port with 4 digital I/O pins the 68pin 17C766 has 9 Ports with 66 digital I/O pins Ports have 2 control registers TRISx sets whether each pin is an input or output PORTx sets their output bit levels Most pins have 25mA source/sink (directly drives LEDs) WARNING: Other peripherals SHARE pins!

PIC MICROCONTROLLER

21

PIC Peripherals: ADCs


Only available in 14bit and 16bit cores Fs (sample rate) < 54KHz Most 8bits, newer PICs have 10 or 12bits All are +/- 1LSB and are monotonic Theoretically higher accuracy when PIC is in sleep mode (less digital noise) Can generate an interrupt on ADC conversion done Multiplexed 3 (12C671) - 12 (17C7xxx) channel input Must wait Tacq to charge up sampling capacitor

PIC MICROCONTROLLER

22

PIC Peripherals: USART: UART


Serial Communications Peripheral: Universal Synchronous/ Asynchronous Receiver/Transmitter Only available in 14bit and 16bit cores Interrupt on TX buffer empty and RX buffer full Asynchronous communication: UART (RS-232C serial) Can do 300bps - 115kbps 8 or 9 bits, parity, start and stop bits, etc. Outputs 5V so you need a RS232 level converter (e.g., MAX232)

PIC MICROCONTROLLER

23

PIC Peripherals: USART: USRT


Synchronous communication: i.e., with clock signal SPI = Serial Peripheral Interface 3 wire: Data in, Data out, Clock Master/Slave (can have multiple masters) Very high speed (1.6Mbps) Full speed simultaneous send and receive (Full duplex) I2C = Inter IC 2 wire: Data and Clock Master/Slave (Single master only; multiple masters clumsy) Lots of cheap I2C chips available; typically < 100kbps (For example, 8pin EEPROM chips, ADC, DACs, etc.)

PIC MICROCONTROLLER

24

PIC Peripherals: Timers


Available in all PICs 14+bit cores may generate interrupts on timer overflow Some 8bits, some 16bits, some have prescalers Can use external pins as clock in/clock out (ie, for counting events or using a different Fosc) Warning: some peripherals share Timer resources

PIC MICROCONTROLLER

25

PIC Peripherals: CCP Modules


Capture/Compare/PWM (CCP) 10bit PWM width within 8bit PWM period (frequency) Enhanced 16bit cores have better bit widths Frequency/Duty cycle resolution tradeoff 19.5KHz has 10bit resolution 40KHz has 8bit resolution 1MHz has 1bit resolution (makes a 1MHz clock!) Can use PWM to do DAC - See AN655 Capture counts external pin changes Compare will interrupt on when the timer equals the value in a compare register

PIC MICROCONTROLLER

26

PIC Peripherals: Misc.


Sleep Mode: PIC shuts down until external interrupt (or internal timer) wakes it up. Interrupt on pin change: Generate an interrupt when a digital input pin changes state (for example, interrupt on keypress). Watchdog timer: Resets chip if not cleared before overflow Brown out detect: Resets chip at a known voltage level LCD drivers: Drives simple LCD displays Future: CAN bus, 12bit ADC, better analog functions VIRTUAL PERIPHERALS: Peripherals programmed in software. UARTS, timers, and more can be done in software (but it takes most of the resources of the machine)

PIC MICROCONTROLLER

27

You might also like