Documente Academic
Documente Profesional
Documente Cultură
Mechatronics Workshop-in-a-Box
Slide 1
Agenda
Microchip Technology Inc. Mechatronics PIC Microcontroller Basics
- Cycle
Labs
- Simple I/O - Timer 0 - A/D LCD - DC
Resources
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 2
Agenda
PIC Microcontroller PICMechatronics PIC Microcontroller Basics
- Cycle
Labs
- Simple I/O - Timer 0 - A/D LCD - DC
Resources
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 3
dsPIC
Digital Signal Controller (DSC) 30 MIPs, Up to 48k Instructions, 84 pins
High Performance
10 MIPs, Up to 64k Instructions, 18-84 pins
Mid-Range
5 MIPs, Up to 8k Instructions, 8-64 pins
Baseline
5 MIPs, up to 2k Instructions, 6-40 pins
40
64
84
Slide 4
Mechatronics Workshop-in-a-Box
Migration
14 - Pin 20 - Pin 8 - Pin
VSS RA0 RA1 RA2 RC0 RC1 RC2 RB4 RB5 RB6
Mechatronics Workshop-in-a-Box
Slide 5
Sensor
Mux Ref
Filter
A/D
PIC
microcontroller
Performance: Low Power, High Precision Low Cost: System Cost, Low Component count Size: Small Packaging SC70, SOT23, DFN
Mechatronics Workshop-in-a-Box
Slide 6
Power Management
Linear Regulators Switching Regulators/Controllers Charge Pump DC/DC Converters
Mixed Signal
SAR/Delta-Sigma A/D Converters Dual Slope A/D Converters Display A/D Converters System D/A Converters V/F and F/V Converters Digital Potentiometers
Interface Products
CAN Peripherals Infrared Peripherals LIN Transceivers Serial Peripherals
Linear Products
Single Supply CMOS Op Amps Comparators Linear Integrated Devices Programmable Gain Amplifiers
Voltage References CPU/System Supervisors Voltage Detectors Power MOSFET Drivers Battery Management PWM Controller
Mechatronics Workshop-in-a-Box
Slide 7
Mechatronics Workshop-in-a-Box
Slide 8
Proven Quality Record across all Product Families ISO9001 Certification QS9000 Certification Quality Awards from numerous Fortune 100 customers PPM levels consistently below 10 Field Failures for PIC microcontrollers virtually non-existent
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 9
Agenda
PIC Microcontroller PICMechatronics PIC Microcontroller Basics
- Cycle
Labs
- Simple I/O - Timer 0 - A/D LCD - DC
Resources
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 10
Mechatronics is:
Implementing electronic controls in a mechanical system Enhancing existing mechanical designs with intelligent controls Replacing mechanical components with an electronic solution A perfect system for a PIC microcontroller!!
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 11
1: Flashlight Switch Traditional Flashlight: (On / Off ) Hybrid Flashlights: Mode selector
White LEDs
Xenon Bulb
Mechatronics Workshop-in-a-Box
Slide 12
Intelligent Switch
Xenon Bulb
PIC Microcontroller
LED
Mechatronics Workshop-in-a-Box
Slide 13
Switch
Mechanical Hybrid Control Current Control Programmable Low Battery Detect Strobe Capable Adaptable
2005 Microchip Technology Incorporated. All Rights Reserved.
No No No No No NO!
Mechatronics Workshop-in-a-Box
1 Analog Comparator
- internal voltage reference
Actual Size
2 : Household Thermostat
Mechatronics Workshop-in-a-Box
Slide 16
Dial
60 50 40 70 80 80 70 60 50 40
Current Temperature
To Heating Unit
Mechatronics Workshop-in-a-Box
Slide 17
Current Temperature
Sensor/Switch
To Heating Unit
Mechatronics Workshop-in-a-Box
Slide 18
Thermostat
60 50 40 70 80
User Feedback
Temperature Sensor
80 70 60 50 40
User Feedback
User Input
Mechatronics Workshop-in-a-Box
Slide 19
Mechatronic
LCD
User Input
Tactile Switches
User Feedback
Temperature Sensor
Small IC
Control
PIC Microcontroller
Power
Mechatronics Workshop-in-a-Box
Slide 20
Current Temperature Desired Temperature
74oF
70oF
Higher resolution and accuracy Reduces household heating costs Self calibrating Flexible Design Environmentally Friendly
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 21
CCPs
I2C/SSP Comparators
AUSART
Mechatronics Workshop-in-a-Box
Slide 22
Serial Output
Mechatronics Workshop-in-a-Box
Slide 23
Serial Output
Mechatronics Workshop-in-a-Box
Slide 24
-40 to 125C Temperature Range 2C Accurate Low Current Consumption Small Package
- SOT-23
1.4 1.2 1 0.8 0.6 0.4 0.2 0 -40 -20 0 20 40 60 80 100 120
Temperature (deg C)
Mechatronics Workshop-in-a-Box
Slide 25
3: Washing Machine
User interface
Sensors (door closed, water level, balance sensor) AC Induction Motor Control
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 26
Use standard dials and knobs Same knobs used on different models Reprogramming microcontroller gives knobs different functionality Switches less prone to wear compared to mechanical washing machine
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 27
Mechatronics Workshop-in-a-Box
Slide 29
3-ch QEI(Quadrature Encoder Interface) 10-bit A/D Converter Created from the ground up for precision motor control!
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 30
2A Peak Output
TC1412/N single
6A Peak Output
TC429 TC4420/9 single
1A Peak Output
TC1411/N single
3A Peak Output
TC1413/N single TC4423/4/5 dual
9A Peak Output
TC4421/2 single
Dual
TC4x6/7/8 Enhanced TC442xA matched delay TC4404/5 split out, open drain
Mechatronics Workshop-in-a-Box
Slide 31
Mechatronics Review
Mechatronics is _________________. What are the benefits to mechatronics?
- How does the consumer benefit? - How does the manufacturer benefit?
What is the worlds smallest microcontroller? What microcontroller can directly drive a LCD?
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 32
Agenda
PIC Microcontroller PICMechatronics PIC Microcontroller Basics
- Cycle
Labs
- Simple I/O - Timer 0 - A/D LCD - DC
Resources
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 33
Mechatronics Workshop-in-a-Box
Slide 35
Build Code
Run Code
Write Code
Debug Code
Mechatronics Workshop-in-a-Box
Slide 36
Agenda
PIC Microcontroller PICMechatronics PIC Microcontroller Basics
- Cycle Cycle #1
Labs
- Simple I/O - Timer 0 - A/D LCD - DC
Resources
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 37
Architecture: Overview
Program Memory
Data Memory
Special Features
Mechatronics Workshop-in-a-Box
Slide 38
Architecture: Overview
Program Memory
Data Memory
Special Features
I/O Ports
Mechatronics Workshop-in-a-Box
Slide 39
Architecture: PIC16F917
Program Memory
Hard Drive
Mechatronics Workshop-in-a-Box
Slide 40
Architecture: PIC16F917
Floppy Disk
Data Memory
Mechatronics Workshop-in-a-Box
Slide 41
MPLAB IDE
Mechatronics Workshop-in-a-Box
Slide 42
Mechatronics Workshop-in-a-Box
Slide 43
Selecting PIC16F917
Mechatronics Workshop-in-a-Box
Slide 44
Mechatronics Workshop-in-a-Box
Slide 45
Mechatronics Workshop-in-a-Box
Slide 46
Hexadecimal to Binary
3FFF
11111111111111
Mechatronics Workshop-in-a-Box
Slide 47
Mechatronics Workshop-in-a-Box
Slide 48
8 bits
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 49
Mechatronics Workshop-in-a-Box
Slide 50
Program Memory
Data Memory
Mechatronics Workshop-in-a-Box
Slide 51
Agenda
PIC Microcontroller PICMechatronics PIC Microcontroller Basics
- Cycle Cycle #2
Labs
- Simple I/O - Timer 0 - A/D LCD - DC
Resources
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 53
Architecture: Overview
Program Memory
Data Memory
Special Features
I/O Ports
Mechatronics Workshop-in-a-Box
Slide 54
Architecture: W Register
W register
- 8-bit Special Features -
Mechatronics Workshop-in-a-Box
Slide 55
MPLAB IDE
Mechatronics Workshop-in-a-Box
Slide 56
MPLAB Simulator
Mechatronics Workshop-in-a-Box
Slide 57
Save As
c:\???\h1.asm
Project
Quickbuild h1.asm
Output Window
- BUILD SUCCEEDED
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 59
Mechatronics Workshop-in-a-Box
Slide 60
View
Watch
0x20
Mechatronics Workshop-in-a-Box
Slide 61
volatile char
Mechatronics Workshop-in-a-Box
Slide 63
Mechatronics Workshop-in-a-Box
Slide 64
Agenda
PIC Microcontroller PICMechatronics PIC Microcontroller Basics
- Cycle Cycle #3
Labs
- Simple I/O - Timer 0 - A/D LCD - DC
Resources
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 66
Architecture: Overview
Program Memory
Data Memory
Special Features
I/O Ports
Mechatronics Workshop-in-a-Box
Slide 67
PORTA
PORTA 0x87
RA7
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box
RA0
Slide 68
PORTA
1 0 0 0 0 1 1 1
5V 0V
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 69
RA7
RA0
TRISA
TRISA 0x16
RA7
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box
RA0
Slide 70
TRISA
0 0 0 1 0 1 1 0
RA7
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box
RA0
Slide 71
TRISD
- 8-bit direction control register - data memory 0x88
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 72
MPLAB IDE
Mechatronics Workshop-in-a-Box
Slide 73
Code Round 3
Editor Windows Code
movlw b00000000 movwf 0x08 movlw b11111111 movwf 0x08 goto 0 end
address 0x08
Mechatronics Workshop-in-a-Box Slide 74
Single Step : F7
Mechatronics Workshop-in-a-Box
TRISD
- All Outputs : 0x00
Mechatronics Workshop-in-a-Box
Slide 76
Mechatronics Workshop-in-a-Box
Slide 77
Mechatronics Workshop-in-a-Box
Slide 78
Architecture: Overview
Program Memory
Data Memory
Special Features
I/O Ports
Mechatronics Workshop-in-a-Box
Slide 79
Data Memory
clrf 0x88
Mechatronics Workshop-in-a-Box
Slide 80
Address
Data Memory
clrf 0x88
Mechatronics Workshop-in-a-Box
Slide 81
3<6:5>
STATUS<RP1:RP0>
Address
clrf b10001000
Mechatronics Workshop-in-a-Box
Slide 82
00
01
10
11
Bank 0 Bank 1 Bank 2 Bank 3 0-7F 80-FF 100-17F 180-1FF 00xxxxxxx 01xxxxxxx 10xxxxxxx 11xxxxxxx
Mechatronics Workshop-in-a-Box
Slide 83
00
01
88
10
11
Bank 0 Bank 1 Bank 2 Bank 3 0-7F 80-FF 100-17F 180-1FF 00xxxxxxx 01xxxxxxx 10xxxxxxx 11xxxxxxx
Mechatronics Workshop-in-a-Box
Slide 84
00
01 bsf 3,5
Mechatronics Workshop-in-a-Box
Slide 85
Architecture: TRISD
00
01
88
Mechatronics Workshop-in-a-Box
Slide 86
00
8
Mechatronics Workshop-in-a-Box
Slide 87
bsf 3,5 clrf 0x88 bcf 3,5 movlw b00000000 movwf 0x08 movlw b11111111 movwf 0x08 goto 3
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 88
bsf 3,5 clrf 8 bcf 3,5 movlw 0 movwf 8 movlw 0xff movwf 8 goto 3
2005 Microchip Technology Incorporated. All Rights Reserved.
Mechatronics Workshop-in-a-Box
Slide 91
Mechatronics Workshop-in-a-Box
Slide 92
// delay_us(x), delay_cycles(x)
Agenda
PIC Microcontroller PICMechatronics PIC Microcontroller Basics
- Cycle Cycle #4
Labs
- Simple I/O - Timer 0 - A/D LCD - DC
Resources
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 95
Architecture: Overview
Program Memory
Data Memory
Special Features
I/O Ports
Mechatronics Workshop-in-a-Box
Slide 96
Mechatronics Workshop-in-a-Box
Slide 97
Hardware
Mechatronics Workshop-in-a-Box
Slide 98
ICD 2 Power
J9
J11
ICD2
USB
Mechatronics Workshop-in-a-Box
Slide 99
MPLAB ICD 2
MPLAB ICD 2
- In-circuit Debugger and Programmer
Debug mode:
- Program - Data Memory - Code Step - Break Point
Program mode:
- Target Device
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 100
MPLAB IDE
Mechatronics Workshop-in-a-Box
Slide 101
Mechatronics Workshop-in-a-Box
Slide 102
Save Workspace
Mechatronics Workshop-in-a-Box
Slide 104
Open
-
- Source Files
- Remove
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 105
ICD 2 Setup
Debugger Select Tool MPLAB ICD2 Debugger Connect Configuration Configuration Bits
Mechatronics Workshop-in-a-Box
Slide 106
Mechatronics Workshop-in-a-Box
Slide 108
int8 counter; int1 SW2; #zero_ram void main(void) { setup_oscillator(OSC_8MHZ); set_tris_d(0x00); output_d(0x00); set_tris_a(PIN_A4); // RA4 : input
Mechatronics Workshop-in-a-Box
Slide 109
PIC16F917 Device :
Watch window PORTD PORTA Animate SW2 ?
Mechatronics Workshop-in-a-Box
Slide 111
Mechatronics Workshop-in-a-Box
Slide 112
Agenda
PIC Microcontroller PICMechatronics PIC Microcontroller Basics
- Cycle
Labs
- Simple I/O - Timer 0 - A/D LCD - DC
Resources
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 113
Lab
Problem: Management wants you to design a cooling fan for an electronics bay in the new Mars Rover
Mechatronics Workshop-in-a-Box
Slide 114
Agenda
PIC Microcontroller PICMechatronics PIC Microcontroller Basics
- Cycle
Labs
- Simple I/O - Timer 0 - A/D LCD - DC LAB 1
Resources
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 115
Thermal Breaker
2005 Microchip Technology Incorporated. All Rights Reserved.
PIC16F917 Fan
Mechatronics Workshop-in-a-Box Slide 116
Lab 1: Hardware
Thermal Breaker Tact Switch Cooling Fan Brushed DC Motor PIC16F917
SW2
Tactile Switch
PIC16F917
Mechatronics Workshop-in-a-Box
Brushed DC motor
Slide 117
Lab 1: Schematic
+5V +5V R1 RA4 SW2 RD7 MOSFET N2 Motor
PIC16F917 D0
Mechatronics Workshop-in-a-Box
Slide 118
Mechatronics Workshop-in-a-Box
Slide 119
JP8: +5Vdc
Mechatronics Workshop-in-a-Box
Slide 120
Timer 0
8-bit : 0~255 counting...!!! Overflow Flag: INTCON<T0IF>
Example: Timer 0
11111110 11111111 00000000
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box
INTCON<T0IF>
0 0 1
Slide 121
Timer 0 Prescaler
(Tcy) Prescaler P , P x Tcy Prescaler: OPTION_REG<2:0>
Mechatronics Workshop-in-a-Box
Slide 122
Timer 0 Hands-On
include Counter Loop btfss goto bcf incf goto end <p16f917.inc> equ 0x20 INTCON,T0IF Loop INTCON,T0IF Counter,f Loop
Mechatronics Workshop-in-a-Box Slide 123
10
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 124
Debugger
Animate
Mechatronics Workshop-in-a-Box Slide 125
Watch Window
Timer 0 Tcy( )
OPTION_REG Timer 0 <2:0> 000 (0) 2 001 (1) 4 010 (2) 8 011 (3) 16 100 (4) 32 101 (5) 64 110 (6) 128 111 (7) 256
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box
Rollover (4MHz) 512 s 1.02 ms 2.05 ms 4.10 ms 8.20 ms 16.4 ms 32.8 ms 65.5 ms
Slide 127
Rollover (4MHz) 512 s 1.02 ms 2.05 ms 4.10 ms 8.20 ms 16.4 ms 32.8 ms 65.5 ms
Slide 128
decfsz
clrf TMR0 movlw .30 movwf Counter Loop btfss INTCON,T0IF goto Loop bcf INTCON,T0IF decfsz Counter,f goto Loop end
2005 Microchip Technology Incorporated. All Rights Reserved.
Mechatronics Workshop-in-a-Box
Slide 129
Simulator (Processor Freq.) Debugger Settings Osc/Trace Tab Processor Frequency 4 MHz
Mechatronics Workshop-in-a-Box
Slide 130
Simulator (Run)
Mechatronics Workshop-in-a-Box
Slide 131
Mechatronics Workshop-in-a-Box
Slide 132
Timer 0 Review
Timer 0 is an ____ - bit Timer. The prescaler for Timer 0 is in the _______ register. Increasing the prescaler speeds up or slows down Timer 0? The ______ instruction is great for counting down the number of Timer 0 overflows.
Mechatronics Workshop-in-a-Box
Slide 133
Mechatronics Workshop-in-a-Box
Slide 134
Program States
Initialize State 1
State 2
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box
State 3
Slide 135
Initialize State 1
Motor Off, Check for Button Pressed
State 2
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box
State 3
Slide 136
Wait 2 Seconds
PORTD,7 = 0
Is SW2 Pressed?
No
PORTA,4
Yes
State 2
Mechatronics Workshop-in-a-Box
Slide 137
PORTD,7 = 1
Is SW2 Released?
No
PORTA,4
Yes
State 3
Mechatronics Workshop-in-a-Box
Slide 138
Mechatronics Workshop-in-a-Box
Slide 139
break;
// RA4 : input
Mechatronics Workshop-in-a-Box
Slide 141
Lab 1: Review
PIC16F917
- Timer 0 (TMR0) - OPTION_REG
Tools
- Stopwatch - Simulator: animate interval, processor frequency
- decfsz
Concepts
- Programming with states
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 142
Agenda
PIC Microcontroller PICMechatronics PIC Microcontroller Basics
- Cycle
Labs
- Simple I/O - Timer 0 - A/D LCD - DC
LAB 2
Resources
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 143
Temperature Sensor
2005 Microchip Technology Incorporated. All Rights Reserved.
PIC16F917 Fan
Mechatronics Workshop-in-a-Box Slide 144
Lab 2: Hardware
--> Brushed DC motor Fan LCD A/D
POT1
Potentiometer
LCD
Mechatronics Workshop-in-a-Box
Brushed DC motor
Slide 145
Lab 2: Schematic
+5V +5V Motor POT1 RA0 RD7 MOSFET N2
PIC16F917 D0
Mechatronics Workshop-in-a-Box
Slide 146
RA0,POT1
Mechatronics Workshop-in-a-Box
Slide 147
Analog-To-Digital Converter
analog binary number (Resolution)
- How many different readings are possible - 8-bit : 28 256 possible readings - 10-bit : 210 1024 possible readings
: 5V 8 ?
Voltage resolution = 5V/256 = 19.5 mV per count
Mechatronics Workshop-in-a-Box
Slide 148
ADC Registers
ANSEL
- analog pins
ADCON1
- conversion clock
ADCON0
- analog channel, turn the module on, do the conversion
ADRESL
- Low-byte of conversion value
ADRESH
- High-byte of conversion value
Mechatronics Workshop-in-a-Box
Slide 149
ADC Hands-On(Assembler)
include <p16f917.inc> bsf ADCON0,ADON Create in h1.asm in LoopOuter the test workspace bsf ADCON0,GO_DONE LoopInner btfsc ADCON0,GO_DONE goto LoopInner movf ADRESH,w goto LoopOuter end
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 151
main() { TRISD = 0x00; TRISA = 0x01; // initial A/D channel 0 ANSEL = 0x01; ADFM = 0; VCFG1 = 0; VCFG0 = 0; CHS2 = 0; CHS1 = 0; CHS0 = 0; ADGO = 0; ADON = 1; //ADCON0 ADCS2 = 1; ADCS1 = 1; ADCS0 = 1; //ADCON1
//RA0 Port A/D Channel 0 : input = high //A/D Conevrting Port Select : bit 0 = high //ADRESH : 8bit + ADRESL : 2 bit = xxxxxxxx xx000000 //If ADFM = 0, ADRESH : 2bit + ADRESL : 8 bit = 000000xx xxxxxxxx //Low Voltage refences = VSS //High Voltage refences = VDD //CHS[2:0] = "000", AD0 select
//A/D Conversion Start and Check this bit, if done,ADGO => 0 //A/D Conversion Operating = 0b10000001; //Setting ADCON1 Register //A/D Converting Clock Source Select : 000 = Internal RC
= 0b01110000;
Mechatronics Workshop-in-a-Box
Slide 152
while(1) { //AD Converter Start ADGO = 1; //AD End Check while(ADGO)continue; //Read AD Converting Value ad_value_hi = ADRESH; ad_value_lo = ADRESL; if(ad_value_hi > 0x30) RD7 = 1; else RD7 = 0; } }
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 153
Mechatronics Workshop-in-a-Box
Slide 154
// RA4 : input
Mechatronics Workshop-in-a-Box
Slide 155
Mechatronics Workshop-in-a-Box
Slide 157
Mechatronics Workshop-in-a-Box
Slide 158
Mechatronics Workshop-in-a-Box
Slide 159
call Instruction
Loop call movlw movwf goto TurnOnRA4 bsf return
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box
PORTA,4
Slide 160
call Instruction
Loop call movlw movwf goto TurnOnRA4 bsf return
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box
PORTA,4
Slide 161
Mechatronics Workshop-in-a-Box
Slide 162
LCD Hands-on
File Open Workspace
- c:\Mechatronics WIB\Lab2\Lab2.mcw
The code from the last Hands-on is duplicated in the Lab2.asm file After the line: movf ADRESH, W Call one of the following: DisplayDecimal or DisplayHex Build and animate the code using the ICD 2
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 163
Experimentation
Light Sensor
- Move the jumper wire from POT1 to LIGHT - Vary the light to the light sensor
Temperature Sensor
- Try moving the same wire to TEMP - Breath heavily on the temperature sensor
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 164
This requires comparing two numbers Solution: Use the sublw instruction
Mechatronics Workshop-in-a-Box
Slide 165
sublw Instruction
Subtracts W from a literal and places the result in W Carry and Zero STATUS flags affected Example: (Setpoint Temp) movlw Temp sublw Setpoint Relation Setpoint > Temp Setpoint = Temp Setpoint < Temp
2005 Microchip Technology Incorporated. All Rights Reserved.
0 1 0
1 1 0
Slide 166
sublw Instruction
What is the result of the following operation? movlw sublw 4 5
Mechatronics Workshop-in-a-Box
Slide 167
Turn on Motor
Mechatronics Workshop-in-a-Box
Slide 169
Turn on Motor
Mechatronics Workshop-in-a-Box
Slide 170
Mechatronics Workshop-in-a-Box
Slide 171
Lab 2 Review
New PIC16F917 Peripherals
- Analog to Digital Conversion Module - LCD Module
New Tools
- MPLAB Linker
New Instructions
- call and return - sublw
New Concepts
- Comparing two numbers
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 172
Agenda
PIC Microcontroller PICMechatronics PIC Microcontroller Basics
- Cycle
Labs
- Simple I/O - Timer 0 - A/D LCD - DC
LAB 3
Resources
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 173
Temperature Sensor
2005 Microchip Technology Incorporated. All Rights Reserved.
PIC16F917 Fan
Mechatronics Workshop-in-a-Box Slide 174
Lab 3: Schematic
+5V +5V Motor POT1 RA0 RD2 MOSFET N2
PIC16F917 D0
Mechatronics Workshop-in-a-Box
Slide 175
RD2,D0 RD2,N2
Mechatronics Workshop-in-a-Box
Slide 176
5V
Average Voltage
Slide 177
A is the area
Mechatronics Workshop-in-a-Box
Slide 179
Frequency
Lower
20 Hz Audible Range
Higher
20 kHz
Mechatronics Workshop-in-a-Box
Slide 180
PWM Hands-On
Mechatronics Workshop-in-a-Box
Slide 181
PWM Hands-On
include bsf bcf bcf PWMLoop bsf nop nop . . bcf goto end <p16f917.inc> STATUS,RP0 Create in h1.asm in TRISD,2 the test workspace STATUS,RP0 PORTD,2 Copy these three lines and paste here 6 times
PORTD,2 PWMLoop
Mechatronics Workshop-in-a-Box Slide 182
Mechatronics Workshop-in-a-Box
Slide 183
Mechatronics Workshop-in-a-Box
Slide 185
Remove the breakpoint Switch to the ICD 2 as the debugger Do the same experiment as above
How does the motor behave to bsf changes?
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 186
PWM Review
PWM stands for _______ _______ ______. PWM signals have a fixed _______. The duty cycle is the ratio between _______ and ________. The human ear can hear frequencies below ____ kHz. Which frequency is higher (right or left)?
Mechatronics Workshop-in-a-Box
Slide 187
Source Code Generated PWM Drawbacks Processor intensive PWM Loop must be continually executed Little time to accomplish other tasks Possible Solutions: 1. Slow down the PWM 2. Decrease PWM resolution 3. Use MCU with PWM peripheral
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 188
Capture, Compare, PWM (CCP) Module CCP H/W PWM PWM Timer 2 10-bits
- 1024
CCP2 Registers
CCP2CON
- Select PWM mode, 2 LSB of Duty Cycle
CCPR2L
- 8 MSB of Duty Cycle
PR2
- Frequency select register
T2CON
- Turn on Timer 2
TRISD
- Make CCP2 pin an output
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 190
PWM BLOCK
CCPR2L : 8bit + CCP2CON[5:4] = 10bit Resolution MCU Clock : 8MHz => 8MHz / 1024 = 7.8KHz
PR2 8bit 10bit 8bit PR2 = 0xFF MCU Clock : 8MHz => (8MHz/4)/ (255+1) = 7.8KHz PR2 = 0x3F => 8MHz/4 / (63+1) = 31.2KHz
Mechatronics Workshop-in-a-Box
Slide 191
ADC
t
ADRESH
CCPR2L
Mechatronics Workshop-in-a-Box
Slide 192
Read ADC
Mechatronics Workshop-in-a-Box
Slide 193
Motor Whine
Mechatronics Workshop-in-a-Box
Slide 195
QuietPWM Function
Generates a 31.2 kHz signal using the 8 MHz internal oscillator Has 8-bits of resolution How to use:
- Move duty cycle value in W - Call QuietPWM
Mechatronics Workshop-in-a-Box
Slide 196
static char pwm_value,temp; main() { // initial general GIE=0; TRISA = 0x01; TRISD = 0x00; OSCCON = 0x70; PR2
//grobal interrupt disable //RA0 Port A/D Channel 0 : input = high //RD2 Port Motor PWM Output : Low //8MHz Internal Clock Select : IRCF[2:0] = 111 : 8MHZ = 0x3F; // Timer2 Setting Value : 31.2KHz PWM Select // 8MHz / 256 = 31.2KHz Why? PWM 10bit = 8bit(PR2) + 2bit
// initial PWM CCP2CON= 0b00001100; CCPR2L = 0; // Start Timer2 TMR2ON = 1; // initial A/D channel 0 ANSEL = 0x01; ADCON0 = 0b00000001; ADCON1 = 0b01110000; InitLCD();
//turn on PWM
Mechatronics Workshop-in-a-Box
Slide 197
//AD End Check while(ADGO)continue; //Read AD Converting Value pwm_value = ADRESH; DisplayDigit1(pwm_value%10); DisplayDigit2(pwm_value/10 % 10); DisplayDigit3(pwm_value/100); // Control PWM PR2 temp = pwm_value; temp <<= 4; CCP2CON |= (temp & 0x30); temp = pwm_value; temp >>= 2; temp &= 0x3F; CCPR2L = temp; } } = 0x3F; // PWM Duty Cycle Setting Value : 31.2KHz PWM Select
Mechatronics Workshop-in-a-Box
Slide 198
#BIT T0IF = 0x0B.2 #BIT ADFM = 0x1F.7 #BIT GODONE = 0x1F.1 #BYTE #BYTE #BYTE #BYTE ADCON0 ADCON1 ADRESH ADRESL = = = = 0x1F 0x9F 0x1E 0x9E
Mechatronics Workshop-in-a-Box
Slide 199
// RA4 : input
while(1) { for (i=0; i<3; i++) { set_adc_channel(i); delay_us(10); ad_value[i] = read_adc(); } duty_pwm2 = ad_value[0]>> 2; set_pwm2_duty(duty_pwm2); } }
Mechatronics Workshop-in-a-Box
Slide 200
Lab 3 Review
Introduction to Pulse Width Modulation
- Duty Cycle is linear to motor speed - When driving motors, modulating the PWM signal above 18 kHz is a good idea
Development Tools
- MPLAB Signal Analyzer
CCP Module
- Can generate an 8-bit 31.2 kHz PWM signal using the 8 MHz internal oscillator
Mechatronics Workshop-in-a-Box
Slide 201
PIC C CCS-C PIC . 1. CCS-C PCW MR.PIC-IDE 2. PIC 3. C 4. CCS-C 5. CCS-C CCS-C 6. 4X4 LCD LCD LED DS1302 32.768KHz IR 1 (Edge ) IR 2 (RS232C ) 20
Mechatronics Workshop-in-a-Box
Slide 202
Agenda
PIC Microcontroller PICMechatronics PIC Microcontroller Basics
- Cycle
Labs
- Simple I/O - Timer 0 - A/D LCD - DC
Resources
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 203
Mechatronics Workshop-in-a-Box
Slide 204
Mechatronics Workshop-in-a-Box
Slide 205
Discussion
Switch debouncing is done to ensure that mechanical contact chatter in the switch is not mistaken for more than one button push. Debouncing also ensures that for every one press of the button, only one function is executed. In this project that function is toggling a LED.
Mechatronics Workshop-in-a-Box
Slide 206
Mechatronics Workshop-in-a-Box
Slide 207
Mechatronics Workshop-in-a-Box
Slide 208
Mechatronics Workshop-in-a-Box
Slide 209
Mechatronics Workshop-in-a-Box
Slide 210
Mechatronics Workshop-in-a-Box
Slide 211
Mechatronics Workshop-in-a-Box
Slide 212
Mechatronics Workshop-in-a-Box
Slide 213
Mechatronics Workshop-in-a-Box
Slide 214
Mechatronics Workshop-in-a-Box
Slide 215
Mechatronics Workshop-in-a-Box
Slide 216
Mechatronics Workshop-in-a-Box
Slide 217
Mechatronics Workshop-in-a-Box
Slide 218
Mechatronics Workshop-in-a-Box
Slide 219
Mechatronics Workshop-in-a-Box
Slide 220
Mechatronics Workshop-in-a-Box
Slide 221
Mechatronics Workshop-in-a-Box
Slide 222
Mechatronics Workshop-in-a-Box
Slide 223
Mechatronics Workshop-in-a-Box
Slide 224
Mechatronics Workshop-in-a-Box
Slide 225
Project 7: Stepper Motor Control: Single Stepping, Half Stepping and Microstepping
Mechatronics Workshop-in-a-Box
Slide 227
Project 7: Stepper Motor Control: Single Stepping, Half Stepping and Microstepping
Mechatronics Workshop-in-a-Box
Slide 228
Project 7: Stepper Motor Control: Single Stepping, Half Stepping and Microstepping
Instructions Adjusting POT1 varies the speed of the motor. Toggle between single stepping, half stepping, and microstepping modes by pressing SW2. At low speeds, the motor should noticeably step in single stepping and half stepping modes. The movement will be quite jerky in both modes, though to a lesser extent in the half stepping mode. In microstepping mode, the jerky motion should be virtually eliminated. Discussion Stepper motors are used in many positioning applications. For example, ink jet printers and smaller CNC machines employ stepper motors. Stepper motors are ideal for these applications because, as long as they are not overloaded, the distance a stepper motor moves is always known. Stepper motors are also brushless, which makes them more reliable than brushed motors. Finally, stepper motors are very responsive to starting and stopping and will produce the highest torque at low speeds. Half stepping is used to give a stepping motor two times its rated step resolution. However, there is a word of caution. A stepper motor is typically not rated to have more than one winding energized at a time. As a result, the motor will heat up if both windings are energized at the rated voltage of the motor. To offset this, when both windings are energized simultaneously, the average current to each winding should be 0.707 times the rated current. Microstepping offers several advantages over single stepping and half stepping. First, torque is fairly constant between steps. This results in smoother rotation and decreased shaft oscillation. Secondly, a higher step resolution is achieved. This means a low-cost motor can be used in an application that would normally require a more expensive, higher resolution motor. Finally, the current in the motor windings is being controlled in a way that prevents the motor from running outside its rated current, thereby eliminating the excess heat associated with half stepping. The drawback to microstepping is that the drive circuitry is more complex.
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 229
Mechatronics Workshop-in-a-Box
Slide 230
Mechatronics Workshop-in-a-Box
Slide 231
Mechatronics Workshop-in-a-Box
Slide 232
Mechatronics Workshop-in-a-Box
Slide 233
Mechatronics Workshop-in-a-Box
Slide 234
Mechatronics Workshop-in-a-Box
Slide 235
Mechatronics Workshop-in-a-Box
Slide 236
Agenda
Introduction to Microchip Mechatronics examples and benefits PIC Microcontroller Basics
- Hands-On Learning Cycles
Labs
- Simple I/O and Timer 0 - Reading an analog sensor, LCD module - Controlling the speed of a motor
Projects Resources
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 237
Mechatronics Workshop-in-a-Box
Slide 238
PICDEM Mechatronics Projects For Self-Study Learn to read an analog temperature sensor and light sensor How to create a real-time clock Brushed DC motor control Stepper motor control Using the LCD module on the PIC16F917 Using serial communication Other concepts: Back EMF, optical speed sensing, and current sensing
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 239
Microchip Web Resources Electronic Product Selector Guide Design Centers www.microchip.com/mechatronics Step-by-step Tutorials Webinars Online presentations Application Notes, Technical Briefs, Articles Upcoming Training and Events Technical Support
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 240
Mechatronics Workshop-in-a-Box
Slide 241
MPLAB ICD 2
MPLAB ICD 2 Part # DV164007
- Includes 9V power supply, serial cable, USB cable, ICD interface cable, and MPLAB ICD 2
Mechatronics Workshop-in-a-Box
Slide 242
Summary
Designing a PIC microcontroller into a mechanical system is beneficial to you Youve see how easy it is to get started with Microchip and PIC microcontrollers You can now use Microchips low-cost tools to change, adapt and add features to a design You can now perform basic mechatronic tasks using a PIC microcontroller
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 244
Microchip appreciates your feedback on the content of this presentation. Please tell us what you liked and didnt like about the presentation. Please send your comments to: mechatronicsWIB@microchip.com
2005 Microchip Technology Incorporated. All Rights Reserved. Mechatronics Workshop-in-a-Box Slide 245
Mechatronics Workshop-in-a-Box
Slide 246