io devices stepper motors dac, adc, ppi

51
hsabaghianb @ kashanu.ac.ir hsabaghianb @ kashanu.ac.ir Microprocessors Microprocessors 10- 10- 1 1 IO Devices Stepper Motors DAC, ADC, PPI Lec note 10

Upload: lilac

Post on 15-Jan-2016

65 views

Category:

Documents


0 download

DESCRIPTION

IO Devices Stepper Motors DAC, ADC, PPI. Lec note 10. Stepper Motors. more accurately controlled than a normal motor allowing fractional turns step by step low speed, and lower torque than a comparable D.C. motor useful for precise positioning for robotics - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-11

IO Devices Stepper Motors

DAC, ADC, PPI

Lec note 10

Page 2: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-22

Stepper Motors

more accurately controlled than a normal

motor

allowing fractional turns step by step

low speed, and lower torque than a

comparable D.C. motor

useful for precise positioning for roboticsServomotors require a position feedback

signal for control

Page 3: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-33

Stepper MotorDiagram

Page 4: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-44

Stepper Motor Step Angles

Page 5: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-55

Terminology

Steps per second(SPS), Rotate Per minute

(RPM)

SPS = (RPM * SPR) /60

Number of teeth

4-step, wave drive 4-step, 8-step

Motor speed (SPS)

Holding torque

Page 6: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-66

Stepper Motor Types

Variable Reluctance

Permanent Magnet

Page 7: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-77

Variable Reluctance Motors

Page 8: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-88

Variable Reluctance Motors

This is usually a four wire motor – the common wire goes to the +ve supply and the windings are stepped through

Our example is a 30o motorThe rotor has 4 poles and the stator has

6 polesExample

Page 9: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-99

Variable Reluctance Motors

To rotate we excite the 3 windings in sequenceW1 - 1001001001001001001001001 W2 - 0100100100100100100100100 W3 - 0010010010010010010010010

This gives two full revolutions

Page 10: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-1010

Unipolar Motors

Page 11: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-1111

Unipolar Motors

To rotate we excite the 2 windings in sequenceW1a - 1000100010001000100010001 W1b - 0010001000100010001000100 W2a - 0100010001000100010001000W2b - 0001000100010001000100010

This gives two full revolutions

Page 12: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-1212

Basic Actuation Wave Forms

Page 13: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-1313

Unipolar Motors

To rotate we excite the 2 windings in sequenceW1a - 1100110011001100110011001 W1b - 0011001100110011001100110 W2a - 0110011001100110011001100 W2b - 1001100110011001100110011

This gives two full revolutions at 1.4 times greater torque but twice the power

Page 14: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-1414

Enhanced Waveforms

better torque more precise control

Page 15: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-1515

Unipolar Motors

The two sequences are not the same, so by combining the two you can produce half steppingW1a - 11000001110000011100000111 W1b - 00011100000111000001110000 W2a - 01110000011100000111000001 W2b - 00000111000001110000011100

Page 16: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-1616

Motor Control Circuits

For low current options the ULN200x family of Darlington Arrays will drive the windings direct.

Page 17: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-1717

Interfacing to Stepper Motors

Page 18: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-1818

Example

Page 19: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-1919

Digital to Analog Converter

Page 20: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-2020

Example – Step Ramp

Page 21: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-2121

Analog to Digital

Page 22: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-2222

Vin Range

Page 23: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-2323

Timing

Page 24: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-2424

Interfacing ADC

Page 25: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-2525

Example

Page 26: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-2626

Temperature Sensor

Page 27: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-2727

Printer Connection

Page 28: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-2828

IO Base Address for LPT

Page 29: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-2929

Printer’s Ports

Page 30: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-3030

8255 8051 has limited number of I/O ports

one solution is to add parallel interface chip(s)

8255 is a Programmable Peripheral Interface PPI

Add it to 8051 to expand number of parallel ports

8051 I/O port does not have handshaking capability

8255 can add handshaking capability to 8051

Page 31: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-3131

8255Programmable Peripheral Interface (PPI)

Has 3 8_bit ports A, B and CPort C can be used as two 4 bit ports CL and

ChTwo address lines A0, A1 and a Chip select CS8255 can be configured by writing a control-

word in CR register

Page 32: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-3232

8255 Control Word

Page 33: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-3333

Page 34: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-3434

8255 Operating Modes

Mode 0 : Simple I/O Any of A, B, CL and CH can be programmed as input or

output

Mode 1: I/O with Handshake A and B can be used for I/O C provides the handshake signals

Mode 2: Bi-directional with handshake A is bi-directional with C providing handshake signals B is simple I/O (mode-0) or handshake I/O (mode-1)

BSR (Bit Set Reset) Mode Only C is available for bit mode access

Allows single bit manipulation for control applications

Page 35: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-3535

8255 Mode Definition Summary

Page 36: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-3636

Mode 0

Provides simple input and output operations for each of the three ports. No “handshaking” is required, data is simply

written to or read from a specified port.Two 8-bit ports and two 4-bit ports.Any port can be input or output.Outputs are latched.Inputs are not latched

Page 37: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-3737

Mode 1Mode 1 Basic functional Definitions:

Two Groups (Group A and Group B).Each group has one 8-bit data port and one 4-

bit control/data port.The 8-bit data port can be either input or

output. Both inputs and outputs are latched.The 4-bit port is used for control and status of

the 8-bit data port.

Page 38: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-3838

8255 mode 1 (output)

Page 39: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-3939

Mode 1 – Control Signals

Output Control Signal Definition OBF (Output Buffer Full F/F). (C7 for A, C1 for B)

The OBF output will go “low” to indicate that the CPU has written data out to the specified port.

A signal to the device that there is data to be read. ACK (Acknowledge Input). (C6 for A, C2 for B)

A “low” on this input informs the 8255 that the data from Port A or Port B has been accepted.

A response from the peripheral device indicating that it has read the data.

INTR (Interrupt Request). (C3 for A, C0 for B)A “high” on this output can be used to interrupt

the CPU when an output device has accepted data transmitted by the CPU.

Page 40: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-4040

Timing diagram for mode1(output)

Page 41: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-4141

8255 mode 1 (input)

Page 42: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-4242

Mode 1 – Control Signals

Input Control Signal Definition STB (Strobe Input). (C4 for A, C2 for B)

A “low” on this input loads data into the input latch.

IBF (Input Buffer Full F/F) (C5 for A, C1 for B)A “high” on this output indicates that the data has

been loaded into the input latch; in essence, an acknowledgement from the 8255 to the device.

INTR (Interrupt Request) (C3 for A, C0 for B)A “high” on this output can be used to interrupt

the CPU when an input device is requesting service.

Page 43: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-4343

Timing diagram for mode1(input)

Page 44: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-4444

Mode 2 - Strobed Bidirectional Bus I/O

MODE 2 Basic Functional Definitions:Used in Group A only.One 8-bit, bi-directional bus port (Port A)

and a 5-bit control port (Port C).Both inputs and outputs are latched.The 5-bit control port (Port C) is used for

control and status for the 8-bit, bi-directional bus port (Port A).

Page 45: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-4545

Mode 2 Output Operations

OBF (Output Buffer Full). The OBF output will go low to indicate that the CPU has written data out to port A.

ACK (Acknowledge). A low on this input enables the tri-state output buffer of Port A to send out the data. Otherwise, the output buffer will be in the high impedance state.

Input Operations STB (Strobe Input). A low on this input

loads data into the input latch. IBF (Input Buffer Full F/F). A high on this

output indicates that data has been loaded into the input latch.

Pin Function

PC7 /OBF

PC6 /ACK

PC5 IBF

PC4 /STB

PC3 INTR

PC2 I/O

PC1 I/O

PC0 I/O

Page 46: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-4646

Page 47: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-4747

BSR ModeIf used in BSR mode, then the bits of

port C can be set or reset individually

Page 48: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-4848

BSR Mode example

Move dptr, 0093h

Up: Move a, 09h ;set pc4

Movx @dptr,a

Acall delay

Mov a,08h ;clr pc4

Movx @dptr,a

Acall delay

Sjmp up

Page 49: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-4949

Interfacing 8255 with 8051 CS is used to interface 8255 with 8051 If CS is generated from lets say Address lines

A15:A12 as follows,A15:A13 = 110

Address of 8255 is 110 xxxxx xxxx xx00b Base address of 8255 is

1100 0000 0000 0000b=C000H Address of the registers

A = C000H B = C001H C = C002H CR = C003H

Page 50: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-5050

Interfacing 8255 with 8051

8255

805174138

3×8 decoder

74373

P0.7-P0.0(AD7-AD0)

D7-D0

D7-D0

/CS

A0A1

O0O1

O7

A2A1A0

P2.7(A15)P2.6(A14)P2.5(A13)

ALE

/RD/WR

/RD/WR

Page 51: IO Devices  Stepper Motors DAC, ADC, PPI

hsabaghianb @ kashanu.ac.irhsabaghianb @ kashanu.ac.ir MicroprocessorsMicroprocessors 10-10-5151

8255 Usage: Simple Example 8255 memory mapped to 8051 at address C000H base

A = C000H, B = C001H, C = C002H, CR = C003H Control word for all ports as outputs in mode0

CR : 1000 0000b = 80H

test: mov A, #80H ; control wordmov DPTR, #C003H ; address of CRmovx @DPTR, A ; write control wordmov A, #55h ; will try to write 55 and AA

; alternativelyrepeat:mov DPTR,#C000H ; address of PA

movx @DPTR, A ; write 55H to PAinc DPTR ; now DPTR points to PBmovx @DPTR, A ; write 55H to PBinc DPTR ; now DPTR points to PCmovx @DPTR, A ; write 55H to PCcpl A ; toggle A (55AA, AA55)acall MY_DELAY ; small delay subroutinesjmp repeat ; for (1)