Transcript Document
IO Devices Stepper Motors DAC, ADC, PPI Lec note 10 hsabaghianb @ kashanu.ac.ir Microprocessors 10-1 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 Servomotors require a position feedback signal for control hsabaghianb @ kashanu.ac.ir Microprocessors 10-2 Stepper Motor Diagram hsabaghianb @ kashanu.ac.ir Microprocessors 10-3 Stepper Motor Step Angles hsabaghianb @ kashanu.ac.ir Microprocessors 10-4 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 hsabaghianb @ kashanu.ac.ir Microprocessors 10-5 Stepper Motor Types Variable Reluctance Permanent Magnet hsabaghianb @ kashanu.ac.ir Microprocessors 10-6 Variable Reluctance Motors hsabaghianb @ kashanu.ac.ir Microprocessors 10-7 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 motor The rotor has 4 poles and the stator has 6 poles Example hsabaghianb @ kashanu.ac.ir Microprocessors 10-8 Variable Reluctance Motors To rotate we excite the 3 windings in sequence W1 - 1001001001001001001001001 W2 - 0100100100100100100100100 W3 - 0010010010010010010010010 This gives two full revolutions hsabaghianb @ kashanu.ac.ir Microprocessors 10-9 Unipolar Motors hsabaghianb @ kashanu.ac.ir Microprocessors 10-10 Unipolar Motors To rotate we excite the 2 windings in sequence W1a - 1000100010001000100010001 W1b - 0010001000100010001000100 W2a - 0100010001000100010001000 W2b - 0001000100010001000100010 This gives two full revolutions hsabaghianb @ kashanu.ac.ir Microprocessors 10-11 Basic Actuation Wave Forms hsabaghianb @ kashanu.ac.ir Microprocessors 10-12 Unipolar Motors To rotate we excite the 2 windings in sequence W1a - 1100110011001100110011001 W1b - 0011001100110011001100110 W2a - 0110011001100110011001100 W2b - 1001100110011001100110011 This gives two full revolutions at 1.4 times greater torque but twice the power hsabaghianb @ kashanu.ac.ir Microprocessors 10-13 Enhanced Waveforms better torque more precise control hsabaghianb @ kashanu.ac.ir Microprocessors 10-14 Unipolar Motors The two sequences are not the same, so by combining the two you can produce half stepping W1a - 11000001110000011100000111 W1b - 00011100000111000001110000 W2a - 01110000011100000111000001 W2b - 00000111000001110000011100 hsabaghianb @ kashanu.ac.ir Microprocessors 10-15 Motor Control Circuits For low current options the ULN200x family of Darlington Arrays will drive the windings direct. hsabaghianb @ kashanu.ac.ir Microprocessors 10-16 Interfacing to Stepper Motors hsabaghianb @ kashanu.ac.ir Microprocessors 10-17 Example hsabaghianb @ kashanu.ac.ir Microprocessors 10-18 Digital to Analog Converter hsabaghianb @ kashanu.ac.ir Microprocessors 10-19 Example – Step Ramp hsabaghianb @ kashanu.ac.ir Microprocessors 10-20 Analog to Digital hsabaghianb @ kashanu.ac.ir Microprocessors 10-21 Vin Range hsabaghianb @ kashanu.ac.ir Microprocessors 10-22 Timing hsabaghianb @ kashanu.ac.ir Microprocessors 10-23 Interfacing ADC hsabaghianb @ kashanu.ac.ir Microprocessors 10-24 Example hsabaghianb @ kashanu.ac.ir Microprocessors 10-25 Temperature Sensor hsabaghianb @ kashanu.ac.ir Microprocessors 10-26 Printer Connection hsabaghianb @ kashanu.ac.ir Microprocessors 10-27 IO Base Address for LPT hsabaghianb @ kashanu.ac.ir Microprocessors 10-28 Printer’s Ports hsabaghianb @ kashanu.ac.ir Microprocessors 10-29 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 hsabaghianb @ kashanu.ac.ir Microprocessors 10-30 8255 Programmable Peripheral Interface (PPI) Has 3 8_bit ports A, B and C Port C can be used as two 4 bit ports CL and Ch Two address lines A0, A1 and a Chip select CS 8255 can be configured by writing a control-word in CR register hsabaghianb @ kashanu.ac.ir Microprocessors 10-31 8255 Control Word hsabaghianb @ kashanu.ac.ir Microprocessors 10-32 hsabaghianb @ kashanu.ac.ir Microprocessors 10-33 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 hsabaghianb @ kashanu.ac.ir Microprocessors 10-34 8255 Mode Definition Summary hsabaghianb @ kashanu.ac.ir Microprocessors 10-35 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 hsabaghianb @ kashanu.ac.ir Microprocessors 10-36 Mode 1 Mode 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. hsabaghianb @ kashanu.ac.ir Microprocessors 10-37 8255 mode 1 (output) hsabaghianb @ kashanu.ac.ir Microprocessors 10-38 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. hsabaghianb @ kashanu.ac.ir Microprocessors 10-39 Timing diagram for mode1(output) hsabaghianb @ kashanu.ac.ir Microprocessors 10-40 8255 mode 1 (input) hsabaghianb @ kashanu.ac.ir Microprocessors 10-41 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. hsabaghianb @ kashanu.ac.ir Microprocessors 10-42 Timing diagram for mode1(input) hsabaghianb @ kashanu.ac.ir Microprocessors 10-43 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). hsabaghianb @ kashanu.ac.ir Microprocessors 10-44 Output Operations Mode 2 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. hsabaghianb @ kashanu.ac.ir Pin Function PC7 /OBF PC6 /ACK PC5 IBF PC4 /STB PC3 INTR PC2 I/O PC1 I/O PC0 I/O Microprocessors 10-45 hsabaghianb @ kashanu.ac.ir Microprocessors 10-46 BSR Mode If used in BSR mode, then the bits of port C can be set or reset individually hsabaghianb @ kashanu.ac.ir Microprocessors 10-47 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 hsabaghianb @ kashanu.ac.ir Microprocessors 10-48 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 hsabaghianb @ kashanu.ac.ir Microprocessors 10-49 Interfacing 8255 with 8051 P2.7(A15) P2.6(A14) P2.5(A13) A2 A1 A0 74138 8051 3×8 decoder /CS 8255 ALE P0.7-P0.0 (AD7-AD0) O0 74373 O1 D7-D0 A0 A1 O7 D7-D0 /RD /WR hsabaghianb @ kashanu.ac.ir /RD /WR Microprocessors 10-50 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 mov movx mov A, #80H DPTR, #C003H @DPTR, A A, #55h repeat:mov DPTR,#C000H movx @DPTR, A inc DPTR movx @DPTR, A inc DPTR movx @DPTR, A cpl A acall MY_DELAY sjmp repeat hsabaghianb @ kashanu.ac.ir ; ; ; ; ; ; ; ; ; ; ; ; ; ; control word address of CR write control word will try to write 55 and AA alternatively address of PA write 55H to PA now DPTR points to PB write 55H to PB now DPTR points to PC write 55H to PC toggle A (55AA, AA55) small delay subroutine for (1) Microprocessors 10-51