PIC MICROCONTROLLERS
Peeyush.K.P. Amrita School of Engineering Coimbatore
What is an Embedded System? Communication
Avionics Automobile
Consumer Electronics
Office Equipments Household Appliances 2
What is an Embedded system? System in which software is embedded into the hardware ( firmware). The core part of the system will be a programmable device.
Automotive Embedded Systems
Today’s high-end automobile have > 80 microprocessors:
4-bit microcontroller checks seat belt; microcontrollers run dashboard devices; 16/32-bit microprocessor controls engine. Millions lines of code
4
Vending Machines
5
Sojourner
6
GPS Receivers
7
Why Embedded systems?
Reduced number of components. Reduced size. Reduced cost. Reduced power consumption. Easier upgradation. Easier troubleshooting & maintenance. Best suited for specific controlling applications.
Why uC?
Microprocessor: •
Requires ‘external’ support hardware •
•
E.g., External RAM, ROM, Peripherals.
Application:Processing-Arithmetic,logic operations.
Microcontroller: • • •
Very little external support hardware/Stand alone. Most RAM, ROM and peripherals on chip. “Computer on a chip”, or “System on chip” (SOC) •
•
E.g., PIC = Peripheral Interface Controller
Application: Controlling purposes.
Microcontroller
VARIOUS MICROCONTROLLERS
8 bit microcontrollers
16 bit microcontrollers
Microchip - PIC 18 series
32 bit microcontrollers
Microchip - PIC 12 & 16 Series. Atmel - 89c51 Intel - 8051 Motorola - 68HCxx series
ARM Processors
DSP based microcontrollers
Shark
Two Different Architectures
RISC vs. CISC
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 (Tcyc)
Complex Instruction Set Computer (CISC)
Used in: 80X86, 8051, 68HC11, etc. Many instructions (usually > 100) Several addressing modes Usually takes more than 1 internal clock cycle (Tcyc) to execute
WHY PIC ?
WHY PIC ?
PICs use the Harvard Architecture PICs and most Harvard chips are “RISC” 35 Instructions
Executes 1 instruction in 1 internal clock cycle
In-Circuit Serial Programmable (ICSP) – via two pins. Available in different packages
Features
Power On Reset Timer Oscillator Startup Timer WatchDog Timer Sink/Source Current – 25ma Flash Programming
POR/Oscillator Startup Timer
WatchDog Timer 00 01 02 .. .. FF Roll Over 00
Sink/Source Current – 25ma
The PIC Family: Cores PICs come with 1 of 3 CPU ‘cores’: The Base-line : 12bit cores with 33 instructions. Eg:12C50x, 12C67x
The Mid-Range : 14bit cores with 35 instructions. Eg:16C5x,16Cxxx
The High-End : 16bit cores with 58 instructions. Eg:17C4x,17C7xx ‘Enhanced’ 16bit cores with 77 instructions: 18Cxxx
Areas of Application.
Base-line
Mid-range
Inexpensive controllers, glue logic, simple tasks. E.g., quadrature decoding, digital interfacing. Multitasking programs, serial communication. E.g., Cheap data acquisition system and digital I/O system for PC off COM ports, data logging.
High-end
RTOS, low end DSP, communications, big moosey applications. E.g., FEC converter, Rocket Flight Computer, cheap FFT chip.
Program Memory (ROM)-size PIC program space is different for each chip. Some examples are: 12C508 16C71C 16F877 17C766
512 12bit instructions 1024 (1k) 14bit instructions 8192 (8k) 14bit instructions 16384 (16k) 16bit instructions
Program Memory (ROM)-types PICs have two different types of program storage: 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 glass window. ( ‘CR’ ) PIC Examples: Any ‘C’ part: 12C50x, 17C7xx, etc.
Program Memory (ROM)-types. 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)
Data Memory (RAM-volatile) PICs use general purpose “file registers” for RAM (each register is 8bits for all PICs)
Some examples are: 12C508 16C71C 16F877 17C766
25 Bytes RAM 36 Bytes RAM 368 Bytes 902 Bytes RAM
Data Memory (EEPROM non-volatile)
For permanent storage of data. Available in few PICs only. Eg:16F8X,12CE5XX,16F87X
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 (Tcyc = 4 * Tclk) All PICs can be run from DC to their maximum spec’d speed: 12C50x 12C67x 16Cxxx 17C4x /17C7xxx 18Cxxx
4MHz 10MHz 20MHz 33MHz 40MHz
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). 2 Serial communications: UART (RS-232C), SPI, I C, CAN. Pulse Width Modulation (PWM) (10bit). Timers and counters (8 and 16bit). Watchdog timers, Brown out detect, LCD drivers.
Packages PICs come in a huge variety of packages: 8 pin DIPs, SOICs: 18pin DIPs, SOICs: 28pin DIPs, SOICs: 40pin DIPs, SOICs: 44 - 68pin PLCCs*:
12C50x (12bit) , 12C67x (14bit) 16C5X (12bit), 16Cxxx (14bit) 16C5X (12bit), 16Cxxx (14bit) 16Cxxx (14bit), 17C4x (16bit) 16Cxxx (14bit), 17Cxx (16bit)
Commonly used mid range series PICs
The 16F8x series- 16F84. The 16F7x series- 16F73,74,76,77. The 16F87x series- 16F873, 874,876,877.
Comparison of Commonly Used Mid range series of PIC 16f8X
7X
87X
10MHz 400ns 2 Yes
20MHz 200ns 8 No
20MHz 200ns 8 Yes
8bit X 1
8bit X 2 + 16bit X 1
8bit X 2 + 16bit X 1
No No No No No
2 8bit 1 1 Yes
2 10bit 1 1 Yes
Operating Speed Clock input Instruction cycle
Stack levels Data EEPROM Timers CCP modules ADC USART/SCI SSP/SPI/I2C Interrupt on Pin Change
Comparison of Commonly Used Mid range series of PIC 83
84
73/873
74/874
76/876
77/877
Total pins
18
18
28
40
28
40
I/O Ports
A,B
A,B
A,B,C
A,B,C,D,E
A,B,C
A,B,C,D,E
I/O Pins
13
13
22
33
22
33
Prog. m/y
512 B
1 KB
4 KB
4 KB
8 KB
8 KB
Data m/y
36 B
68 B
192 B
192 B
368 B
368 B
EEPROM
64
64
128
128
256
256
PSP
No
No
No
Yes
No
Yes
ADC channels
NA
NA
5
8
5
8
BOR
No
No
Yes
Yes
Yes
Yes
PIC 16F874/877
PIC 16F874/877
PIN DIAGRAM
PIC16F877A Block Diagram Instruction Memory
Data Memory
Instruction Bus
Data Bus Must be involved in all arithmetic operations Most important register in the PIC
PIC16F877A Memory
The PIC16F877A has an 8192 (8k) 14bit instruction program memory
368 Bytes Registers as Data Memory : Special Function Registers: used to control peripherals and PIC behaviors General Purpose Registers: used to a normal temporary storage space (RAM)
256 Bytes of nonvolatile EEPROM
PIC16F877A Memory Map
SFR
www.greytechnologies.net
INSTRUCTION SET 1) Move Literal Value To Work Register Syntax : MOVLW Eg: MOVLW
0X02
2) Move Content of Work Reg. To File Reg. Syntax : MOVWF Eg : MOVWF
PORTA
3) Move Content of File Reg. To Desti. Syntax : MOVF Eg : MOVF Eg : MOVF
, PORTA,0 PORTA,1
INSTRUCTION SET 1) Bit Set File Register Syntax : BSF Eg: BSF
, PORTA,1
2) Bit Clear File Register Syntax : BCF Eg : BCF
, PORTA,1
INSTRUCTION SET 1) Bit Test File Register Skip if Set Syntax : BTFSS Eg: BTFSS
, PORTA,1
2) Bit Test File Register Skip if Clear Syntax : BTFSC Eg : BTFSC
, PORTA,1
INSTRUCTION SET 1) Decrement File Register Skip if Zero Syntax : DECFSZ Eg: DECFSZ
, COUNT,1
2) Increment File Register Skip if Zero Syntax : INCFSZ Eg : INCFSZ
, COUNT,1
Programming PIC
Basic Circuit
Thank You For Your Kind Attention……