55827709 Pic Micro Controller

83
BY:- Anil Kumar Pathak, Mayank Tripathi, P. l. Rongmei , Instrumentation & Control Engg. Electrical Engg. Department NITTTR ,Chandigarh

Transcript of 55827709 Pic Micro Controller

Page 1: 55827709 Pic Micro Controller

BY:- Anil Kumar Pathak, Mayank Tripathi, P. l. Rongmei, Instrumentation & Control Engg. Electrical Engg. Department NITTTR ,Chandigarh

Page 2: 55827709 Pic Micro Controller

Our world is full of integrated circuits. We can find several of them in

computers. For example, microprocessor. The microprocessor is an integrated

circuit that processes all functions in the computer.

But a microprocessor can not work alone . It requires some external peripherals such as memory(RAM & ROM), Input/Output ports , Timers, etc.

Page 3: 55827709 Pic Micro Controller
Page 4: 55827709 Pic Micro Controller

But the addition of external RAM,ROM, Timers and I/O ports makes these systems bulkier and much more expansive.

Which forced to engineers to devolve a special type of chip having CPU (microprocessor) with a fixed amount of memory, I/O ports and Timers.

So we do not need to add any external memory, I/O port and timer to it.

Which reduces system cost and weight.

Page 5: 55827709 Pic Micro Controller

So we can say that microcontroller is a CPU on a small chip with some amount of fixed memory(RAM and ROM), I/O ports and Timers.

Some microcontroller manufacturers have gone far as integrating an ADC and other peripherals.

Page 6: 55827709 Pic Micro Controller

The types of micro controller can be classified based on internal bus width, instruction set, memory architecture ,family etc. some of them are given below:-

Intel 8051 (8-bit) PIC (8-bit PIC16, PIC18, 16-bit dsPIC33 / PIC24) FreeScale 68HC11(8-bit) Atmel AVR(8-bit), AVR32 (32-bit) Toshiba TLCS-870 Hitachi H8, Hitachi SuperH (32-bit), etc.

Page 7: 55827709 Pic Micro Controller

In 1989, Microchip Corporation introduced an 8-bit microcontroller called PIC microcontroller. (PIC16xxx)

PIC16xxx had :-Small amount of DATA RAM and

PROM.One TimerFew Pins for I/O portsOne ADC

Page 8: 55827709 Pic Micro Controller

After the introduction of PIC16xxx, they have introduced an array of 8-bit microcontrollers.

They includes the PIC families of :- PIC10xxx PIC12xxx PIC14xxx PIC16xxx PIC18xxx All of above are 8-bit microcontrollers.

Page 9: 55827709 Pic Micro Controller

Right now PIC18xxx and PIC16xxx families has the highest performance of all the families of 8-bit PIC microcontrollers.

Right now no 8 pinPIC18xxx exists, and this is the main reason to choose other family members(PIC10xxx to PIC16xxx), if our design call for small package.

Page 10: 55827709 Pic Micro Controller

Interrupt

Control Logic OSC

EEPROM

I/O Ports

Other periphe

ralTimers

CPU

PROMSTACK

PC

RAM

Page 11: 55827709 Pic Micro Controller

PIC18 Program ROM The maximum size of PROM is 2M The PROM size can vary from 4k to 128k

bytes. PIC18 PROM is available in different

memory types, such as :- UV-EPROM Flash PROM OTP PROM ( All of have different part

numbers)

Masked PROM

Page 12: 55827709 Pic Micro Controller

UV-EPROM

This UV-EPROM requires a PROM burner to write programs and a UV-EPROM eraser to erase the contents of ROM.

The problem with UV-ROM is that it takes around 20 minutes to erase the chip before it can be programmed again.

At this time Flash ROM is replacing UV-ROM.

Page 13: 55827709 Pic Micro Controller

Flash PROM

The flash version is ideal for fast development.

Flash memory can be erased in few seconds.

Because flash memory is a EEPROM. It requires a ROM burner to write programs. No need of separate eraser to erase the

programs.

Page 14: 55827709 Pic Micro Controller

OTP Version of PIC OTP(One-time programmable) version of the

PIC is also available from Microchip.(PIC16C432).

It can not re-programmed again.Masked Version of PIC Microchip corporation provides a service in

which we can send our program to them and they will burn the program in to the PIC chip during the fabrication process of the chip.

Page 15: 55827709 Pic Micro Controller

RAM is used for store the data. The data size for the PIC18 varies from

256 bytes to 4096 bytes.

Data EEPROM We also have a small amount of

EEPROM to store Critical data, that does not need to be changed very often.

Not all PIC18 comes with Data EEPROM ,because it is optional.

Page 16: 55827709 Pic Micro Controller

PIC microcontroller can have from 16 to 72 pins dedicated for I/O.

The number of pins for the PIC18 package goes from 18 to 80 at this time.

Other Peripherals ADC (10 bit) Timers(4) USART(universal synchronous

asynchronous receiver/transmitter)-for serial data transfer.

Page 17: 55827709 Pic Micro Controller

Part Num

PROM DATA RAM

I/O Pins

ADC Timers Pin no & Package

PIC18F1220

4k (Flash)

256 16 10-bit 4 18 DIP

PIC18F2420

16k (Flash)

768 25 10-bit 4 28 DIP

PIC18F2220

4k (Flash)

512 25 10-bit 4 28 DIP

PIC18F452

32k (Flash)

1536 34 10-bit 4 4o DIP

PIC18F4520

32k (Flash)

1536 36 10-bit 4 40 DIP

PIC18F8722

128k (Flash)

3936 72 10-bit 5 80 TQFP

*All Memories(PROM & Data RAM) are in bytes

Page 18: 55827709 Pic Micro Controller

Features 8051/52

PIC18xxx

PROM (Maximum Space)

64 K 2M

Data RAM (Maximum Space)

256 bytes 4 K

Timers 3 4

I/O Pins 32 33 to 36

Serial Ports 1 1

*All Memories(PROM & Data RAM) are in bytes

Page 19: 55827709 Pic Micro Controller

Device Pins Instruction Word Size

PIC10XXX 8 8 - bit

PIC12XXX 8 12 - bit

PIC16XXX 18 8 - bit

PIC16XXX 40 14 - bit

PIC17XXX 84 16 – bit

PIC18XXX 80 8-bit

Page 20: 55827709 Pic Micro Controller

20

1

2

3

4 5

6

7

8VDD

GP5/OSC1/CLKIN

GP4/OSC2

GP3/MCLR/VPP

VSS

GP2/ICSPDAT

GP1/ICSPCLK

GPO/ICSPT0CKI

PIC

12F508/5

09

Page 21: 55827709 Pic Micro Controller

Sl. Pin. Descriptions01 VDD Power Supply

02 OSC1, Oscillator PinOSC2

03 VPP Programming Voltage Input

04 GP0 to GP5 General Purpose input/output pins (Bidirectional

except GP3)

21

Page 22: 55827709 Pic Micro Controller

Sl. Pin. Descriptions05 CSPDAT In-circuit Serial

Programming Data pin06 CSPCLK In-circuit Serial

Programming clock pin

07 VSS Ground

08 MCLR Master clear09 CLKIN External Clock input

22

Page 23: 55827709 Pic Micro Controller

23

Page 24: 55827709 Pic Micro Controller

Pin No

Pin Name

Buffer Type

Descriptions

01 RA2 TTL Bidirectional i/o port

02 RA3 TTL Bidirectional i/o port

03 RA4/

TOCK1

TTL Can also be selected to be the clock input to the TMRO Timer / Counter. Output is open drain type.

24

Page 25: 55827709 Pic Micro Controller

25

Pin No

Pin Name

Buffer Type

Descriptions

04 MCLR ST Master Clear (Reset) input/ Programming Voltage input. This pin is an activelow RESET to the device.

05 VSS ------- Ground reference for logic and Input / Output pins

Page 26: 55827709 Pic Micro Controller

26

Pin No

Pin Name

Buffer Type

Descriptions

06 RBO/INT TTL/ST Bidirectional i/o port. Port B can be software programmed for internal week pull-up on all input.

RB0/INT can also be selected as an external interrupt pin.

Page 27: 55827709 Pic Micro Controller

27

Pin No

Pin Name

Buffer Type

Descriptions

07 RB1 TTL Bidirectional i/o port.

08 RB2 TTL Bidirectional i/o port.

09 RB3 TTL Bidirectional i/o port.

10 RB4 TTL Interrupt-on-change pin

11 RB5 TTL Interrupt-on-change pin

Page 28: 55827709 Pic Micro Controller

28

Pin No

Pin Name

Buffer Type

Descriptions

12 RB6 TTL/ST Interrupt-on-change pin

Serial Programming clock

13 RB7 TTL/ST Interrupt-on-change pin Serial Programming data

14 VDD ------- Positive supply for logic and Input / Output pins

Page 29: 55827709 Pic Micro Controller

29

Pin No

Pin Name

Buffer Type

Descriptions

15 OSC2/

CLKOUT

-------- Oscillator Crystal output , connect to Crystal or Resonator in crystal oscillator mode. In RC mode, OSC2 pin outputs CLKOUT, which has ¼ the frequency of OSC1

Page 30: 55827709 Pic Micro Controller

TTL = TTL Input; ST = Schmitt

Trigger Input;

30

Pin No

Pin Name

Buffer Type

Descriptions

16 OSC1/

CLKIN

ST/

CMOS

Oscillator Crystal input / External clock source input

17 RA0 TTL Bidirectional input output port

18 RA1 TTL Bidirectional input output port

TTL = TTL Input; ST = Schmitt Trigger

Input;

Page 31: 55827709 Pic Micro Controller

On power on of the PIC or after a reset, all ports become inputs.

This is done to avoid driving an output pin directly to the VDD or VSS.

31

Page 32: 55827709 Pic Micro Controller

To define the type of an I/O pin, you use the TRIS register.

There are two TRIS registers, the TRISA and the TRISB

When one bit of this register is set to '1', the corresponding port pin shall become an input.

When it is set to '0', then this port pin shall become an output.

32

Page 33: 55827709 Pic Micro Controller

PIC16F84 can work with four different configurations of an oscillator.

Microcontroller type with a crystal oscillator (XT), and

A microcontroller with resistor-capacitor pair (RC). This is important because we need to mention the type of oscillator when buying a microcontroller.

33

Page 34: 55827709 Pic Micro Controller

34

C2=30pF

C2=30pF

XTAL

Page 35: 55827709 Pic Micro Controller

35

Page 36: 55827709 Pic Micro Controller

“R” should be between 3K to 100K. Below 2.2K of “R” Oscillator become

unstable. At 1M and above of “R” Oscillator

becomes very sensitive to noise and humidity.

“C” should be select as per the requirement of the clock.

The clock frequency must be divided by 4.36

Page 37: 55827709 Pic Micro Controller

37

Page 38: 55827709 Pic Micro Controller

The main oscillator signal is divided by 4 to produce the instruction cycle time.

38

Page 39: 55827709 Pic Micro Controller

The overall speed of the microcontroller operation is entirely dependent on this clock frequency.

Higher frequency -> Higher Performance and higher power consumption.

39

Page 40: 55827709 Pic Micro Controller

40

VDD

R

Page 41: 55827709 Pic Micro Controller

41

The microcontroller pins have multiple functions

Page 42: 55827709 Pic Micro Controller

42

Page 43: 55827709 Pic Micro Controller

Peripheral Interface Controller is a family of Micro controller by Microchip Technology.

It Uses Harvard Architecture. Here we have separate Data and Program

memories.

DataMemory

CPUProgramMemory

CPU

ProgramandData

Memory

Harvard von-Neumann

Page 44: 55827709 Pic Micro Controller

8 kB of FLASH Program Memory. 256 bytes of EEPROM Data Memory. 33 input or output pins. 20 MHz operating speed(200 ns instruction

cycle) High performance RISC CPU.

PIC 16F877 44

Page 45: 55827709 Pic Micro Controller

Only 35 simple word instructions. Power on Reset (POR). Power-Up Timer (PWRT) and oscillator start-up

timer. Wide operating voltage range (2.0 – 5.56)volts. Low power consumption .

Page 46: 55827709 Pic Micro Controller

46 PIC 16F877

Page 47: 55827709 Pic Micro Controller

A PIC CPU consists of several sub units such as instruction decoder, ALU, control unit, etc.

It normally supports Reduced Instruction Set Computer (RISC) architecture. RISC Architecture has only 35 instructions. The execution time is very less 5 MIPS(Million Instructions per second)

Page 48: 55827709 Pic Micro Controller

As like normal microcontrollers, the PIC chip also has certain amount of RAM, ROM, EEPROM, other flash memory, etc.

8 KB of FLASH Program Memory. 256 bytes of EEPROM Data Memory.

Page 49: 55827709 Pic Micro Controller

ALU normally performs all the arithmetic operations. One of the operand is normally in W-Register and second operand can be in any other register.

Page 50: 55827709 Pic Micro Controller

Address Bus- 13 Bit Data Bus- 8 Bit

Page 51: 55827709 Pic Micro Controller

When the power supply drops below a certain voltage(4 v in case of PIC),it causes PIC to reset.

Page 52: 55827709 Pic Micro Controller

The Reset function will set the Program counter to the starting address.

Page 53: 55827709 Pic Micro Controller

A special timer that delay the start of program execution after the PIC has been reset on power. This time delay allows VDD to rise to the required level.

Page 54: 55827709 Pic Micro Controller

A watch dog timer is a simple timer circuit that performs a specific operation after a certain period of time if something goes wrong.

Suppose we have written a program which is compiled successfully and when we simulate it every time seems to work fine.

Then we program the PIC. However after a long period of time the program

gets stuck somewhere . What needs it this case is some kind of reset if

the program is gets stuck.54

Page 55: 55827709 Pic Micro Controller

This is a purpose of a watchdog timer circuit. When the WDT is enable, a counter starts at 00 and

increment by 1 unit until it reaches FF. When it goes from FF to 00 the PIC will be reset,

irrespective of what it is doing. The only way we can stop the WDT, from resetting

the WDT back to 00 throughout the program which is done by the processor.

Which indicates that the processor functioning is going on.

Watchdog timer is thus increases the system reliability.

PIC 16F877 55

Page 56: 55827709 Pic Micro Controller

It is similar to Accumulator in 8051. It is an 8 bit register. It is only used for ALU operation.

Page 57: 55827709 Pic Micro Controller

Status register is an eight bit register that contains the arithmetic status of the arithmetic logic unit (ALU), the reset status and the bank select bits for the data memory. The detailed explanation of status register is given below.

Carry bit(C) When two 8-bit operands are added ,a 9 bits result

occurs,Because the result of addition may exceeds 256(FFH).

The 9th bit is copied in the Carry bit.

57 PIC 16F877

Page 58: 55827709 Pic Micro Controller

Bit 0 (C): Carry/borrow bit (ADDWF, ADDLW, SUBLW, SUBWF instructions)

1 = A carry-out from the Most Significant bit of the result occurred

0 = No carry-out from the Most Significant bit of the result occurred.

Digit Carry This bit indicates a Carry from the lower 4

bits.During 8 bit addition. If set,it means there is a carry from the 3rd bit to 4th

bit position. (1 = A carry-out from the 4th low order bit of the

result occurred 0 = No carry-out from the 4th low order bit

PIC 16F877 58

Page 59: 55827709 Pic Micro Controller

Many arithmetic and logic instructions affect the zero flag.

if result is zero, Zbit is set, otherwise cleared. Bit 2, (Z): Zero bit

1 = the result of an arithmetic or logic operation is zero

0 = the result of an arithmetic or logic operation is not zero.)

PIC 16F877 59

Page 60: 55827709 Pic Micro Controller

Used along with the SLEEP mode of PIC.During the sleep mode the microcontroller save lots of power. After coming out of this mode, the CPU can check these two status bits to determine which kind of event is responsible to bring it out of the SLEEP modeBit 4, (TO): this is a time-out bit used for timing and counting, sleep and reset functions. 1 = after power-up, CLRWDT instruction 0 = A WDT time-out occurredBit 3, (PD): Power-down bit1 = after power-up or by the CLRWDT instruction0 = by execution of the SLEEP instruction

Page 61: 55827709 Pic Micro Controller

There are four memory banks ,each of 128 bytes in size.

For bank selection 2 bits are needed, making the effective address 9-bit wide.

Page 62: 55827709 Pic Micro Controller

Microchip has provided only direct addressing mode for the register file with 7-bits address plus remaining 8th and 9th bits frozen in the STATUS REGISTER bits RP1:RP0.

11 = Bank 3 (180h-1FFh) 10 = Bank 2 (100h-17Fh) 01 = Bank 1 (80h-FFh) 00 = Bank 0 (00h-7Fh)

62 PIC 16F877

Page 63: 55827709 Pic Micro Controller

63 PIC 16F877

Page 64: 55827709 Pic Micro Controller

IRP bit is used for indirect addressing. The IRP bit allows selecting either 1= Bank 2 & bank 3 0= Bank 0 & bank 1 The IPR bit and FSR decide the effective 9 bit

address.

64 PIC 16F877

Page 65: 55827709 Pic Micro Controller

65 PIC 16F877

Page 66: 55827709 Pic Micro Controller

FSR is the pointer used for indirect memory addressing in the whole register file.

In PIC every instruction that can be used for direct addressing may also be used in a different way for indirect addressing.

The only difference in indirect addressing mode is that one has to write the address byte in FSR .

66 PIC 16F877

Page 67: 55827709 Pic Micro Controller

Different from the program counter. Any write to PCL will cause the contents of

PCLATH to be transferred to the 13 bit PC higher locations.

67 PIC 16F877

Page 68: 55827709 Pic Micro Controller

PIC 16F877 series normally has five input/output ports.

They are used for the input/output interfacing with other devices/circuits.

Most of these port pins are multiplexed for handling alternate function for peripheral features on the devices.

The PIC 16F877 chip basically has 5 input/output ports.

PORT A PORT B PORT C PORT D PORT E 68

Page 69: 55827709 Pic Micro Controller

A PIC microcontroller is an amazingly powerful fully featured processor with internal RAM, EEPROM FLASH memory and peripherals.

We can use it to control our projects (or build projects around it).  So it saves us from building a circuit that has separate external RAM, ROM and peripheral chips.

In fact PIC has an amazing number of internal peripherals. These are divided in several categories:

Page 70: 55827709 Pic Micro Controller

Communication peripherals:• RS232/RS485• SPI• USB• Radio Frequency• TCP/IP• Ethernet• CAN( Controller Area Network)• LIN( Local Interconnect Network)

Page 71: 55827709 Pic Micro Controller

Control and Timing Peripherals:Capture/ComparePulse Width ModulatorsCounters/TimersWatchdog Timers

Display Peripherals:LED driversLCD drivers

Page 72: 55827709 Pic Micro Controller

Analog Peripherals:Up to 12 bit A-D convertersComparators and Op-AmpsBrown-Out DetectorsLow voltage DetectorsTemperature sensorsOscillatorsVoltage referencesD-A ConvertersVoltage Regulators

Page 73: 55827709 Pic Micro Controller

Mainly 3 Interrupt Sources : External Interrupt–Due to external source.

Edge Sensitive RB0/INT causes this interrupt.This interrupt wakes up processor from SLEEP.This must be set before going into SLEEP mode.

Timer 0–Timer 0 overflow. FF to 00 overflow. Port B Change Interrupt–A change from high

to low or low to high on port B pins RB4 to RB7 causes this interrupt. This interrupt can wake device from SLEEP.

Page 74: 55827709 Pic Micro Controller

TIMER 0 8 Bit wide with an 8 bit prescaler. Clocked internally by system clock which

is Fosc/4 or by external clock on RA4/TOCKI.

It generates an interrupt on overflow when the count goes from 255 to zero.

Timer 0 always synchronizes the input clock (when using external clock).

We can read and write timer 0 but can not read the prescaler.

The prescaler changes its effect depending on whether it is a timer prescaler or a watch dog prescaler - so the same prescaler setting may prescale by 2 or by 1 depending on its use.

Page 75: 55827709 Pic Micro Controller

TIMER 1 This is a 16 bit timer that generates an

overflow interrupt when it goes from 65535 to zero.

It has an 8 bit programmable prescaler and you can  drive it from the internal clock (Fosc/4) or an external pin.  

This timer can be used in sleep mode and will generate a wakeup interrupt on overflow.  

Timer 1 is also read by the CCP module to capture an event time.

Using this timer in sleep mode will use more current.

Page 76: 55827709 Pic Micro Controller

TIMER 2 This is an 8 bit timer with an 8 bit

prescaler and an 8 bit postscaler. It takes its input only from the internal

oscillator (Fosc/4). This timer is used for the timebase of a

PWM when PWM is active. It also has a period register that allows

easy control of the period When timer 2 reaches the PR2 register

value then it resets. This saves having to check the timer

value in software and then reset the timer and since it is done in hardware the operation is much faster.

Page 77: 55827709 Pic Micro Controller

In Circuit Serial Programming:It allows microcontroller to be programmed after being placed on a circuit board, offering tremendous flexibility, reduced development time, increasing manufacturing efficiency and reducing cost.

Self Programming:Self programming enables remote upgrades to the Flash memory. It allows for easy code revisions in the end user applications.

One Time Programming:These are manufactured in high volumes without specific software and provided immediately for custom programming.

Page 78: 55827709 Pic Micro Controller

12, 14 and 16 bit wide instructions are upward compatible and provided to maximize efficiency and boost the performance.

Instruction and Data are transferred on separate buses avoiding, processing bottlenecks and increasing overall system performance.

Two stage pipelining enables one instruction to be executed while the next instruction is fetched.

Single wide word instructions increase software code efficiency and reduce required programming memory

Page 79: 55827709 Pic Micro Controller

With only 33 – 79 instructions, Programming and Debugging tasks are easy to learn and perform.

Devices with self write options have the ability to remotely program and upgrade the MCU application in the field ( Flexible Flash program Memory).

Low power capability. Extremely Rich Peripheral set. Optimal Cost to performance Ratio. Data EEPROM is also available for those

applications which require secure, non volatile memory for data that changes frequently.

Page 80: 55827709 Pic Micro Controller

PIC microcontroller is very popular. It is used in variety of applications at each level.

Consumer level Motion detectors Remote controls Rice cookers Battery management Smoke detectors Toys

Page 81: 55827709 Pic Micro Controller

In Communication Telephone handset Microphone control UART Replacements

Industrial applications Utility metering Portable instruments Data acquisition Motor control: Stepper, Fan,

Brushless DC, AC inductance, Switched reluctance

Page 82: 55827709 Pic Micro Controller

Automotive applications Light Dimmers Intelligent sensors Proximity detectors Keyless entry Tire pressure monitors Dash Controllers Seat Controllers In Appliances Refrigerator control units Smart relay Delay Timers Temperature Sensors

Page 83: 55827709 Pic Micro Controller

THANKS