Escolar Documentos
Profissional Documentos
Cultura Documentos
L A B O R A T R I O
Experincia
s experincias com motores de passo (Experincia 5) e com motores CC (Experincia 6) sero realizadas em duas aulas, sendo que em cada uma das aulas, a metade da turma far experincia com motor de passo e a outra metade com motor CC, de modo que todos os alunos faam as experincias com os dois tipos de motores. Caso no existam sistemas de posicionamento com motores de passo e CC suficientes para todos os grupos de dois alunos, mais de um grupo poder participar por bancada. Contudo, nestes casos, os relatrios devero ser entregues por grupo.
Objetivo
O objetivo destas duas experincias que o aluno se familiarize com o acionamento por microprocessador de dois tipos importantes de motores eltricos utilizados em automao industrial. Os motores esto montados em dispositivos de movimentao linear com sensores de fim de curso. O aluno dever exercitar a movimentao de um bloco deslizante, monitorando sua posio e evitando colises nos finais de curso com o auxlio dos sensores.
Resumo
Na primeira parte da aula, o aluno dever familiarizar-se com o acionamento do motor eltrico de passo, com a leitura dos sensores de fim de curso. Na segunda parte, o aluno dever implementar um programa de controle manual de posicionamento do bloco deslizante utilizando as teclas, os LEDs e o display para mostrar a posio do motor.
39
Procedimento experimental
O aluno dever ler o captulo 4 do Manual de Referncia sobre o Mdulo de Interface do Motor de Passo, devendo compreender a arquitetura da interface, sua configurao de hardware, sua programao inicial e como utilizar o Registrador de Controle para fazer o motor de passo se mover. O aluno dever tambm ler o datasheet do 8255 que utilizado para se adquirir informaes dos sensores nesta experincia e na prxima.
Estudo obrigatrio.
Diversos cabos devero ser conectados para a realizao desta experincia. A Ajuste a tenso de Figura 26 do Manual de Referncia mostra como +12 Volts da fonte conectar os cabos entre os mdulos que compe o de alimentao antes de conectar kit, o mdulo de interface com o motor de passo, o qualquer cabo. sistema de posicionamento linear e a fonte de alimentao. Siga atentamente o esquema mostrado na figura antes de ligar a alimentao.
Conexes do sistema.
Ateno:
Antes de ligar a fonte de alimentao certifique-se de que os cabos esto conectados corretamente. A inverso de algum cabo pode causar danos ao kit. Na dvida consulte o professor.
Ligando o sistema. Depois de conferidas as ligaes feitas pode-se ligar a fonte de alimentao. Logo aps a ligao da fonte de alimentao, se as ligaes estiverem corretas o eixo do motor dever estar travado.
Nota:
Verifique com a mo que o eixo do motor est travado segurando no eixo e fazendo pequena fora para cada lado. Estando tudo correto, aparecer tambm o prompt do monitor na tela do computador se este estiver conectado ao mdulo processador do kit e em modo de terminal.
O endereo d0h depende da configurao de jumpers, veja no Manual de Referncia.
A primeira providncia a se tomar desligar o driver do motor de passo por software. Isto pode ser feito usando-se o comando do monitor C> o d0 0. Este procedimento necessrio para que o driver no se aquea excessivamente. O programa em C a ser implementado tambm deve desligar o driver nas primeiras linhas do programa principal em
40
Verifique com a mo que o eixo do motor est destravado segurando no eixo e fazendo pequena fora para cada lado. Se conseguir moviment-lo, o comando acima funcionou. Nesta experincia, toda vez que o motor for mantido em repouso por um longo perodo de tempo, seja por que est esperando algum evento para movimentar o motor ou por que nenhum programa para movimentar o motor est sendo executado, o driver deve ser desligado por software.
Acionamento do motor de passo. O motor de passo pode ser acionado por comandos dados diretamente ao monitor. A seqncia de comandos dada no item 4.3. do Manual de Referncia. O mdulo de interface com o motor de passo tambm possui um 8254 (timers programveis) que usado para movimentar o motor. Este 8254 deve ser programado para sua operao especfica de controle do motor de passo. O trecho de comandos do Monitor abaixo programa os timers do mdulo para movimentao do motor na freqncia de 400 pulsos por segundo (400 Hz) dando 20 voltas. Comandos para programar timers:
C> C> C> C> C> C> o o o o o o d0 d7 d4 d4 d7 d5 0 36 00 03 56 0a (desliga o driver) (programa timer 0 p/ modo 3 binrio) (constante para 4 kHz no timer 0) (corresponde a 300h) (programa timer 1 p/ modo 3 binrio) (constante para 400Hz no timer 1, corresponde a ah, p/ 200Hz 14h, p/ 500Hz 8h) (programa timer 2 p/ modo 5 binrio) (constante para 20 voltas no timer 2) (corresponde a fa0h)
Para disparar o movimento do motor de passo utilizado o Registrador de Controle do mdulo de interface. De acordo com o Manual de Referncia o bit DISP do Registrador de controle deve estar inicialmente em zero, ir para 1 para disparar o movimento e retornar para zero antes de re-disparar o movimento novamente. O bit DIR controla a direo de movimento do motor de passo, zero para movimentar no sentido horrio e 1 para movimentar no sentido anti-horrio. O movimento do motor de passo pode ser controlado por comandos do Monitor diretamente. O trecho de comandos abaixo dispara o movimento do motor de passo no sentido horrio e depois no sentido anti-horrio.
41
Leitura de sensores. A leitura dos sensores do sistema de posicionamento linear feita atravs do 8255, que contm portas paralelas programveis, presente no mdulo de I/O. O Captulo 2 do Manual de Referncia contm os detalhes de como programar o 8255. Para a leitura dos sensores. este 8255 deve ser inicialmente programado para que a porta A opere para entrada e a porta B para sada. A porta C no O endereo c3h utilizada e pode ser programada para qualquer depende da direo. A direo default para qualquer uma das configurao de portas entrada. Esta programao inicial pode ser jumpers, veja no feita por um comando direto do Monitor no Manual de endereo do registrador de controle do 8255 de Referncia. acordo com o exemplo abaixo. Programao do modo de operao do 8255 pelo Monitor:
C> o c3 90 (programa porta A para entrada e porta B para sada)
Os sensores esto conectados nos quatro bits menos significativos da porta A do 8255. Para ler o contedo desta porta pode-se usar o comando direto do Monitor conforme o exemplo abaixo.
Leitura dos sensores pelo Monitor:
C> i c0 DATA = DF C> (l o valor da porta A do 8255) (o valor lido indicado depois do =)
O valor da porta A mostrado na tela. Os quatro bits menos significativos contm o valor dos quatro sensores no momento da leitura. Os quatro bits mais significativos no contm informao nenhuma e deve ser descartados antes da interpretao dos bits menos significativos. Para se isolar o status de um determinado sensor num programa em Linguagem C sugere-se a aplicao de uma funo AND bit a bit com uma mscara que seja composta por 0s em todos os bits indesejveis e 1 no bit desejvel. O trecho de programa abaixo exemplifica este procedimento.
42
Projeto.
O aluno dever implementar um programa para controlar a movimentao do bloco deslizante atravs das teclas do kit, da seguinte forma:
1. Ao se pressionar a tecla 1 o motor se move para a esquerda at
ser detectado a entrada do sensor ptico. O movimento parado e escreve-se mensagem no display LCD de que o sistema est pronto.
2. A se pressionar a tecla 2 o sistema inicia o movimento para a
direita em velocidade baixa at que o sensor magntico pare de detectar a presena do bloco.
3. O movimento prossegue em velocidade alta at que seja
detectado o sensor magntico da direita, quando ento a velocidade deve ser reduzida para a velocidade baixa.
4. Ao ser detectado o sensor ptico da direita o motor deve
inverter a sua direo sem parar e o mesmo procedimento anterior repetido no sentido contrrio.
5. A tecla 3 usada para parar o sistema a qualquer momento.
Responder no relatrio. O aluno dever responder as seguintes perguntas no relatrio. Recomenda-se testar as respostas durante a aula.
estando parado?
3. Por que programado o valor 90h no endereo c3h? Explique
o significado do 90h.
43
Timer 0 (modo 3)
gate Vcc
Timer 1 (modo 3)
gate Vcc
Timer 2 (modo 5)
gate
&
CLOLK
ENABLE
&
Motor de passo
DIREO
Registrador de controle
Figura 22. Diagrama de blocos do mdulo de controle de motor de passo Os outros comandos para a interface so dados atravs do registrador de comandos. Os comandos disponveis so os seguintes: habilita/desabilita acionamento do motor controle de direo habilita/desabilita Timer 1 dispara movimento define se o movimento em half ou full step zera a contagem de pulsos A Figura 23 mostra o significado dos bits do registrador de controle.
21
Endereo: n0H* D7
DIR
D6
x
D5
x
D4
CLR
D3
DISP
D2
EN
D1
GT1
D0
H/F
Modo Half ou Full step 0 Full step 1 Half step Gate do Timer 1 0 para Timer 1 habilita Timer Habilita Driver do motor 0 desabilita driver 1 habilita driver Dispara movimento quando em HIGH, deve retornar para LOW pelo menos um ciclo de clock antes de ser redisparado Limpa o flip-flop de contagem de pulsos 0 limpa o flip-flop 1 permite a contagem Direo de rotao do motor 0 sentido horrio 1 sentido anti-horrio * n pode ser C, D, E, ou F, depende dos jumpers de seleo de endereos da interface
A funo de cada endereo determinada pelos bits A0 a A3 de endereo adicionalmente aos bits A4 a A7 determinados pelos jumpers JP5 a JP8. A Tabela XVI mostra a funo de cada endereo na interface. O registrador de controle da interface est no endereo n0H (onde n pode ser C, D, E ou F dependendo dos jumpers JP5 a JP8) enquanto que o timer 8254 ocupa os endereos n4H a n7H (onde n pode ser C, D, E ou F dependendo dos jumpers JP5 a JP8).
22
verso de 14/02/03
P1 ajuste de corrente
JP1 JP2 JP3 JP4 JP5 JP6 JP7 JP8 1 1
LED Power On
P4
P5
23
Timer 1 - ajusta a freqncia de rotao do motor, o valor mnimo 2, ou seja, a freqncia sempre dividida no mnimo por 2. Timer 2 - determina a quantidade de pulsos para o movimento do motor, ou seja, qual o deslocamento angular do motor. A Figura 25 apresenta o procedimento para inicializao da interface. Para iniciar o movimento deve-se escrever no registrador de controle o bit D3=HIGH. Aps a escrita deste bit no registrador de controle o motor de passo inicia o movimento com a freqncia programada no Timer 1 com o nmero de pulsos programado no Timer 2. O bit D3 do registrador de controle deve retornar para LOW antes de disparar o movimento do motor de passo novamente.
Inicio
Fim
Figura 25. Procedimento de inicializao da interface O movimento do motor de passo independente de qualquer comando por software, uma vez iniciado o movimento o mesmo interrompido se ocorrer uma das situaes abaixo: O motor completa o movimento com o nmero de pulsos programado no Timer 2. O bit D2 retornado para LOW o que causa a parada imediata do motor de passo independente dos valores dos Timers 1 e 2, pois este bit desabilita o controlador do motor de passo diretamente. O bit D1 colocado em LOW o que causa a suspenso do Timer 1 que para de enviar pulsos para o controlador do motor de passo. O bit D4 colocado em LOW e depois em HIGH o que reseta o flip-flop de ocntagem de pulsos e impede que o clock chegue ao controlador de motor de passo. A direo do movimento pode ser invertida com o motor em movimento atravs da escrita no registrador de comando. Setando o bit D7=LOW o motor move-se em sentido horrio, com D7=HIGH o motor move-se em sentido anti-horrio. Para se determinar se o movimento do motor de passo chegou ao fim pode-se ler o valor do Timer 2 e verificar duas situaes: Se o valor zero, o que indica que o nmero de pulsos programado foi atingido. Se o valor prximo de FFFFH, o que indica que o nmero de pulsos programado foi atingido e como o Timer 1 no foi interrompido a contagem to Timer 2 prosseguiu. Note que apesar da contagem do Timer 2 prosseguir o mesmo no fornecer valor na sada at ser reprogramado.
24
verso de 14/02/03
Figure 26. Conexes do Mdulo do Motor de Passo com os outros mdulos do sistema
25
Compatible with all Intel and Most Other Microprocessors High Speed Zero Wait State Operation with 8 MHz 8086 88 and 80186 188 24 Programmable I O Pins Low Power CHMOS Completely TTL Compatible
Y Y Y
Control Word Read-Back Capability Direct Bit Set Reset Capability 2 5 mA DC Drive Capability on all I O Port Outputs Available in 40-Pin DIP and 44-Pin PLCC Available in EXPRESS Standard Temperature Range Extended Temperature Range
Y Y Y Y Y
The Intel 82C55A is a high-performance CHMOS version of the industry standard 8255A general purpose programmable I O device which is designed for use with all Intel and most other microprocessors It provides 24 I O pins which may be individually programmed in 2 groups of 12 and used in 3 major modes of operation The 82C55A is pin compatible with the NMOS 8255A and 8255A-5 In MODE 0 each group of 12 I O pins may be programmed in sets of 4 and 8 to be inputs or outputs In MODE 1 each group may be programmed to have 8 lines of input or output 3 of the remaining 4 pins are used for handshaking and interrupt control signals MODE 2 is a strobed bi-directional bus configuration The 82C55A is fabricated on Intels advanced CHMOS III technology which provides low power consumption with performance equal to or greater than the equivalent NMOS product The 82C55A is available in 40-pin DIP and 44-pin plastic leaded chip carrier (PLCC) packages
231256 31
231256 1
October 1995
82C55A
Table 1 Pin Description Symbol PA30 RD CS Pin Number Dip PLCC 1 4 5 6 25 6 7 Type I O I I Name and Function PORT A PINS 0 3 Lower nibble of an 8-bit data output latch buffer and an 8-bit data input latch READ CONTROL This input is low during CPU read operations CHIP SELECT A low on this input enables the 82C55A to respond to RD and WR signals RD and WR are ignored otherwise System Ground I ADDRESS These input signals in conjunction RD and WR control the selection of one of the three ports or the control word registers A1 0 0 1 1 0 0 1 1 X X PC74 10 13 11 1315 I O A0 0 1 0 1 0 1 0 1 X X RD 0 0 0 0 1 1 1 1 X 1 WR 1 1 1 1 0 0 0 0 X 1 CS 0 0 0 0 0 0 0 0 1 0 Input Operation (Read) Port A - Data Bus Port B - Data Bus Port C - Data Bus Control Word - Data Bus Output Operation (Write) Data Bus - Port A Data Bus - Port B Data Bus - Port C Data Bus - Control Disable Function Data Bus - 3 - State Data Bus - 3 - State
GND A10
7 8 9
8 910
PORT C PINS 4 7 Upper nibble of an 8-bit data output latch buffer and an 8-bit data input buffer (no latch for input) This port can be divided into two 4-bit ports under the mode control Each 4-bit port contains a 4-bit latch and it can be used for the control signal outputs and status signal inputs in conjunction with ports A and B PORT C PINS 0 3 Lower nibble of Port C PORT B PINS 0 7 An 8-bit data output latch buffer and an 8bit data input buffer SYSTEM POWER a 5V Power Supply DATA BUS Bi-directional tri-state data bus lines connected to system data bus RESET A high on this input clears the control register and all ports are set to the input mode WRITE CONTROL This input is low during CPU write operations PORT A PINS 4 7 Upper nibble of an 8-bit data output latch buffer and an 8-bit data input latch No Connect
14 17 18 25 26 27 34 35 36 37 40
I O I O
I O I I I O
82C55A
Each of the Control blocks (Group A and Group B) accepts commands from the Read Write Control Logic receives control words from the internal data bus and issues the proper commands to its associated ports Control Group A - Port A and Port C upper (C7 C4) Control Group B - Port B and Port C lower (C3 C0) The control word register can be both written and read as shown in the address decode table in the pin descriptions Figure 6 shows the control word format for both Read and Write operations When the control word is read bit D7 will always be a logic 1 as this implies control word mode information Ports A B and C The 82C55A contains three 8-bit ports (A B and C) All can be configured in a wide variety of functional characteristics by the system software but each has its own special features or personality to further enhance the power and flexibility of the 82C55A Port A One 8-bit data output latch buffer and one 8-bit input latch buffer Both pull-up and pulldown bus hold devices are present on Port A Port B One 8-bit data input output latch buffer Only pull-up bus hold devices are present on Port B Port C One 8-bit data output latch buffer and one 8-bit data input buffer (no latch for input) This port can be divided into two 4-bit ports under the mode control Each 4-bit port contains a 4-bit latch and it can be used for the control signal outputs and status signal inputs in conjunction with ports A and B Only pull-up bus hold devices are present on Port C See Figure 4 for the bus-hold circuit configuration for Port A B and C
82C55A
231256 3
Figure 3 82C55A Block Diagram Showing Data Bus Buffer and Read Write Control Logic Functions
NOTE 231256 4 Port pins loaded with more than 20 pF capacitance may not have their logic level guaranteed following a hardware reset
82C55A
When the reset input goes high all ports will be set to the input mode with all 24 port lines held at a logic one level by the internal bus hold devices (see Figure 4 Note) After the reset is removed the 82C55A can remain in the input mode with no additional initialization required This eliminates the need for pullup or pulldown devices in all CMOS designs During the execution of the system program any of the other modes may be selected by using a single output instruction This allows a single 82C55A to service a variety of peripheral devices with a simple software maintenance routine The modes for Port A and Port B can be separately defined while Port C is divided into two portions as required by the Port A and Port B definitions All of the output registers including the status flip-flops will be reset whenever the mode is changed Modes may be combined so that their functional definition can be tailored to almost any I O structure For instance Group B can be programmed in Mode 0 to monitor simple switch closings or display computational results Group A could be programmed in Mode 1 to monitor a keyboard or tape reader on an interrupt-driven basis
231256 6
Figure 6 Mode Definition Format The mode definitions and possible mode combinations may seem confusing at first but after a cursory review of the complete device operation a simple logical I O approach will surface The design of the 82C55A has taken into account things such as efficient PC board layout control signal definition vs PC layout and complete functional flexibility to support almost any peripheral device with no external logic Such design represents the maximum use of the available pins Single Bit Set Reset Feature Any of the eight bits of Port C can be Set or Reset using a single OUTput instruction This feature reduces software requirements in Control-based applications
231256 5
When Port C is being used as status control for Port A or B these bits can be set or reset by using the Bit Set Reset operation just as if they were data output ports 5
82C55A
Interrupt Control Functions When the 82C55A is programmed to operate in mode 1 or mode 2 control signals are provided that can be used as interrupt request inputs to the CPU The interrupt request signals generated from port C can be inhibited or enabled by setting or resetting the associated INTE flip-flop using the bit set reset function of port C This function allows the Programmer to disallow or allow a specific I O device to interrupt the CPU without affecting any other device in the interrupt structure INTE flip-flop definition
231256 7
(BIT-SET) INTE is SET Interrupt enable (BIT-RESET) INTE is RESET Interrupt disable Note All Mask flip-flops are automatically reset during mode selection and device Reset
82C55A
Mode 0 Basic Functional Definitions Two 8-bit ports and two 4-bit ports
Operating Modes Mode 0 (Basic Input Output) This functional configuration 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
Any port can be input or output Outputs are latched Inputs are not latched 16 different Input Output configurations are possible in this Mode
231256 8
231256 9
82C55A
MODE 0 Port Definition A D4 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 D3 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 D1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 B D0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 GROUP A PORT A OUTPUT OUTPUT OUTPUT OUTPUT OUTPUT OUTPUT OUTPUT OUTPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT PORT C (UPPER) OUTPUT OUTPUT OUTPUT OUTPUT INPUT INPUT INPUT INPUT OUTPUT OUTPUT OUTPUT OUTPUT INPUT INPUT INPUT INPUT GROUP B PORT B 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 OUTPUT OUTPUT INPUT INPUT OUTPUT OUTPUT INPUT INPUT OUTPUT OUTPUT INPUT INPUT OUTPUT OUTPUT INPUT INPUT PORT C (LOWER) OUTPUT INPUT OUTPUT INPUT OUTPUT INPUT OUTPUT INPUT OUTPUT INPUT OUTPUT INPUT OUTPUT INPUT OUTPUT INPUT
MODE 0 Configurations
231256 10
82C55A
231256 11
82C55A
231256 12
Operating Modes MODE 1 (Strobed Input Output) This functional configuration provides a means for transferring I O data to or from a specified port in conjunction with strobes or handshaking signals In mode 1 Port A and Port B use the lines on Port C to generate or accept these handshaking signals
Mode 1 Basic functional Definitions Two Groups (Group A and Group B) Each group contains one 8-bit data port and one 4-bit control data port
10
82C55A
Input Control Signal Definition 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 the data has been loaded into the input latch in essence an acknowledgement IBF is set by STB input being low and is reset by the rising edge of the RD input INTR (Interrupt Request) A high on this output can be used to interrupt the CPU when an input device is requesting service INTR is set by the STB is a one IBF is a one and INTE is a one It is reset by the falling edge of RD This procedure allows an input device to request service from the CPU by simply strobing its data into the port INTE A Controlled by bit set reset of PC4 INTE B Controlled by bit set reset of PC2 Figure 8 MODE 1 Input
231256 13
231256 14
11
82C55A
Output Control Signal Definition OBF (Output Buffer Full F F) The OBF output will go low to indicate that the CPU has written data out to the specified port The OBF F F will be set by the rising edge of the WR input and reset by ACK Input being low ACK (Acknowledge Input) A low on this input informs the 82C55A that the data from Port A or Port B has been accepted In essence a response from the peripheral device indicating that it has received the data output by the CPU INTR (Interrupt Request) A high on this output can be used to interrupt the CPU when an output device has accepted data transmitted by the CPU INTR is set when ACK is a one OBF is a one and INTE is a one It is reset by the falling edge of WR INTE A Controlled by bit set reset of PC6 INTE B Controlled by bit set reset of PC2 Figure 10 MODE 1 Output
231256 15
231256 16
12
82C55A
Combinations of MODE 1 Port A and Port B can be individually defined as input or output in Mode 1 to support a wide variety of strobed I O applications
231256 17
Figure 12 Combinations of MODE 1 Operating Modes MODE 2 (Strobed Bidirectional Bus I O) This functional configuration provides a means for communicating with a peripheral device or structure on a single 8-bit bus for both transmitting and receiving data (bidirectional bus I O) Handshaking signals are provided to maintain proper bus flow discipline in a similar manner to MODE 1 Interrupt generation and enable disable functions are also available MODE 2 Basic Functional Definitions 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 INTE 1 (The INTE Flip-Flop Associated with OBF) Controlled by bit set reset of PC6 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 INTE 2 (The INTE Flip-Flop Associated with IBF) Controlled by bit set reset of PC4
Used in Group A only One 8-bit bi-directional bus port (Port A) and a 5bit 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) Bidirectional Bus I O Control Signal Definition INTR (Interrupt Request) A high on this output can be used to interrupt the CPU for input or output operations
13
82C55A
231256 18
Figure 14 MODE 2
231256 20
14
82C55A
231256 21
Figure 16 MODE
Combinations
15
82C55A
Mode Definition Summary MODE 0 IN PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT MODE 1 IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN IN OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT I O I O I O INTRA STBA IBFA ACKA OBFA change an interrupt enable flag the Set Reset Port C Bit command must be used With a Set Reset Port C Bit command any Port C line programmed as an output (including INTR IBF and OBF) can be written or an interrupt enable flag can be either set or reset Port C lines programmed as inputs including ACK and STB lines associated with Port C are not affected by a Set Reset Port C Bit command Writing to the corresponding Port C bit positions of the ACK and STB lines with the Set Reset Port C Bit command will affect the Group A and Group B interrupt enable flags as illustrated in Figure 18 Current Drive Capability Any output on Port A B or C can sink or source 2 5 mA This feature allows the 82C55A to directly drive Darlington type drivers and high-voltage displays that require such sink or source current MODE 2 GROUP A ONLY
INTRB INTRB IBFB OBFB STBB ACKB INTRA INTRA STBA I O IBFA I O I O ACKA I O OBFA
Special Mode Combination Considerations There are several combinations of modes possible For any combination some or all of the Port C lines are used for control or status The remaining bits are either inputs or outputs as defined by a Set Mode command During a read of Port C the state of all the Port C lines except the ACK and STB lines will be placed on the data bus In place of the ACK and STB line states flag status will appear on the data bus in the PC2 PC4 and PC6 bit positions as illustrated by Figure 18 Through a Write Port C command only the Port C pins programmed as outputs in a Mode 0 group can be written No other pins can be affected by a Write Port C command nor can the interrupt enable flags be accessed To write to any Port C output programmed as an output in a Mode 1 group or to
16
82C55A
INPUT CONFIGURATION D5 D4 D3 D2 D1
D0
In Mode 0 Port C transfers data to or from the peripheral device When the 82C55A is programmed to function in Modes 1 or 2 Port C generates or accepts hand-shaking signals with the peripheral device Reading the contents of Port C allows the programmer to test or verify the status of each peripheral device and change the program flow accordingly There is no special instruction to read the status information from Port C A normal read operation of Port C is executed to perform this function
OUTPUT CONFIGURATIONS D5 D4 D3 D2 D1
GROUP B
Figure 17b MODE 2 Status Word Format Interrupt Enable Flag INTE B INTE A2 INTE A1 Position PC2 PC4 PC6 Alternate Port C Pin Signal (Mode) ACKB (Output Mode 1) or STBB (Input Mode 1) STBA (Input Mode 1 or Mode 2) ACKA (Output Mode 1 or Mode 2
17
82C55A
NOTICE This is a production data sheet The specifications are subject to change without notice
WARNING Stressing the device beyond the Absolute Maximum Ratings may cause permanent damage These are stress ratings only Operation beyond the Operating Conditions is not recommended and extended exposure beyond the Operating Conditions may affect device reliability
D C CHARACTERISTICS
TA e 0 C to 70 C VCC e a 5V g 10% GND e 0V (TA e b 40 C to a 85 C for Extended Temperture) Symbol VIL VIH VOL VOH IIL IOFL IDAR Parameter Input Low Voltage Input High Voltage Output Low Voltage Output High Voltage Input Leakage Current Output Float Leakage Current Darlington Drive Current
g2 5
Min
b0 5
Max 08 VCC 04
Units V V V V V
Test Conditions
20
IOL e 2 5 mA IOH e b 2 5 mA IOH e b 100 mA VIN e VCC to 0V (Note 1) VIN e VCC to 0V (Note 2) Ports A B C Rext e 500X Vext e 1 7V VOUT e 1 0V Port A only VOUT e 3 0V Ports A B C VOUT e 0 8V VOUT e 3 0V (Note 3) VCC e 5 5V VIN e VCC or GND Port Conditions If I P e Open High O P e Open Only With Data Bus e High Low CS e High Reset e Low Pure Inputs e Low High
30 VCC b 0 4
g1 g 10
mA mA mA
(Note 4)
Port Hold Low Leakage Current Port Hold High Leakage Current Port Hold Low Overdrive Current Port Hold High Overdrive Current VCC Supply Current VCC Supply Current-Standby
a 50 b 50 b 350 a 350
a 300 b 300
mA mA mA mA
10 10
mA mA
NOTES 1 Pins A1 A0 CS WR RD Reset 2 Data Bus Ports B C 3 Outputs open 4 Limit output current to 4 0 mA
18
82C55A
CAPACITANCE
TA e 25 C VCC e GND e 0V Symbol CIN CI O Parameter Input Capacitance I O Capacitance Min Max 10 20 Units pF pF Test Conditions Unmeasured plns returned to GND fc e 1 MHz(5)
A C CHARACTERISTICS
TA e 0 to 70 C VCC e a 5V g 10% GND e 0V TA e b 40 C to a 85 C for Extended Temperature BUS PARAMETERS READ CYCLE Symbol tAR tRA tRR tRD tDF tRV Parameter 82C55A-2 Min Max ns ns ns 120 10 200 75 ns ns ns Units Test Conditions
0 0 150
v u to Data Floating
WRITE CYCLE Symbol tAW tWA tWW tDW tWD Parameter Address Stable Before WR 82C55A-2 Min Max ns ns ns ns ns ns ns Ports A Port C B Ports A Port C B Units Test Conditions
v u u
0 20 20
WR Pulse Width Data Setup Time Before WR Data Hold Time After WR
100 100 30 30
19
82C55A
OTHER TIMINGS Symbol tWB tlR tHR tAK tST tPS tPH tAD tKD tWOB tAOB tSIB tRIB tRIT tSIT tAIT tWIT tRES Parameter WR e 1 to Output Peripheral Data Before RD Peripheral Data After RD ACK Pulse Width STB Pulse Width Per Data Before STB High Per Data After STB High ACK e 0 to Output ACK e 1 to Output Float WR e 1 to OBF e 0 ACK e 0 to OBF e 1 STB e 0 to IBF e 1 RD e 1 to IBF e 0 RD e 0 to INTR e 0 STB e 1 to INTR e 1 ACK e 1 to INTR e 1 WR e 0 to INTR e 0 Reset Pulse Width 500 20 0 0 200 100 20 50 175 250 150 150 150 150 200 150 150 200 82C55A-2 Min Max 350 Units Conditions ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns see note 1 see note 2 Test
NOTE 1 INTRu may occur as early as WRv 2 Pulse width of initial Reset pulse after power on must be at least 50 mSec Subsequent Reset pulses may be 500 ns minimum The output Ports A B or C may glitch low during the reset pulse but all port pins will be held at a logic one level after the reset pulse
20
82C55A
WAVEFORMS
MODE 0 (BASIC INPUT)
231256 22
231256 23
21
82C55A
WAVEFORMS (Continued)
MODE 1 (STROBED INPUT)
231256 24
231256 25
22
82C55A
WAVEFORMS (Continued)
MODE 2 (BIDIRECTIONAL)
231256 26
Note Any sequence where WR occurs before ACK AND STB occurs before RD is permissible (INTR e IBF MASK STB RD a OBF MASK ACK WR)
WRITE TIMING
READ TIMING
231256 27
231256 28
231256 29 A C Testing Inputs Are Driven At 2 4V For A Logic 1 And 0 45V For A Logic 0 Timing Measurements Are Made At 2 0V For A Logic 1 And 0 8 For A Logic 0
231256 30 VEXT Is Set At Various Voltages During Testing To Guarantee The Specification CL Includes Jig Capacitance
23
Experincia
s experincias com motores CC e de passo sero realizadas em duas aulas, sendo que em cada uma das aulas, a metade da turma far experincia com motor CC e a outra metade com motor de passo, de modo que todos os alunos faam as experincias com os dois tipos de motores.
Objetivo
O objetivo destas duas experincias que o aluno se familiarize com o acionamento por microprocessador de dois tipos importantes de motores eltricos utilizados em automao industrial. Os motores esto montados em dispositivos de movimentao linear com sensores de fim de curso. O aluno dever exercitar a movimentao de um bloco deslizante, monitorando sua posio e evitando colises nos finais de curso com o auxlio dos sensores.
Resumo
Na primeira parte da aula, o aluno dever familiarizar-se com o acionamento do motor eltrico CC, com a leitura dos sensores de fim de curso. Na segunda parte, o aluno dever implementar um programa de controle manual de posicionamento do bloco deslizante utilizando as teclas, os LEDs e o display para mostrar a posio do motor.
44
Procedimento experimental
O aluno dever ler o captulo 5 do Manual de Referncia sobre o Mdulo de Interface do Motor CC, devendo compreender a arquitetura da interface, sua configurao de hardware, sua programao inicial e como fazer o motor CC se mover. O aluno dever tambm ler o datasheet do 8255 que utilizado para se adquirir informaes dos sensores nesta experincia e na anterior.
Estudo obrigatrio.
Diversos cabos devero ser conectados para a realizao desta experincia. A Ajuste a tenso de Figura 29 do Manual de Referncia mostra como +12 Volts da fonte conectar os cabos entre os mdulos que compe o de alimentao antes de conectar kit, o mdulo de interface com o motor de passo, o qualquer cabo. sistema de posicionamento linear e a fonte de alimentao. Siga atentamente o esquema mostrado na figura antes de ligar a alimentao.
Conexes do sistema.
Ateno:
Antes de ligar a fonte de alimentao certifique-se de que os cabos esto conectados corretamente. A inverso de algum cabo pode causar danos ao kit. Na dvida consulte o professor.
Ligando o sistema. Depois de conferidas as ligaes feitas pode-se ligar a fonte de alimentao. Logo aps a ligao da fonte de alimentao, se as ligaes estiverem corretas e o mdulo de interface estiver operando corretamente o motor CC entrar em funcionamento.
Estando tudo correto, aparecer tambm o prompt do monitor na tela do computador se este estiver conectado ao mdulo processador do kit e em modo de terminal.
O endereo d0h depende da configurao de jumpers, veja no Manual de Referncia.
A primeira providncia a se tomar fazer o motor parar de girar pois isto pode causar coliso no final do curso do eixo. Isto pode ser feito usando-se o comando do monitor c> o d0 0. Este procedimento faz com que o motor CC no receba nenhuma tenso parando-o instantaneamente. O programa em C a ser implementado tambm deve parar o motor CC nas primeiras linhas do programa principal em Linguagem C.
45
Cuidado:
No deixe os dedos perto do eixo do sistema de posicionamento linear pois o motor CC inicia o movimento assim que a alimentao do sistema for estabelecida.
Acionamento do motor CC.
O motor CC pode ser acessado diretamente atravs do endereo d0h do mdulo de interface com motor CC. O bit mais significativo do byte a ser escrito neste endereo controla a direo do motor enquanto que os outros bits controlam o nvel de tenso da armadura do motor , o que faz com que o motor varie a velocidade de acordo com a variao desta tenso. Pode-se testar comandos do Monitor para o controle de movimento do motor conforme os exemplos abaixo:
Exemplos de controle de movimentos do motor CC:
C> o d0 0 (para o motor, tenso zero sobre a armadura) C> o d0 7f (velocidade mxima para o sentido horrio) C> o d0 ff (velocidade mxima para o sentido anti-horrio)
Leitura de sensores. A leitura dos sensores do sistema de posicionamento linear feita atravs do 8255, que contm portas paralelas programveis, presente no mdulo de I/O. O Captulo 2 do Manual de Referncia contm os detalhes de como programar o 8255. Para a leitura dos sensores. este 8255 deve ser inicialmente programado para que a porta A opere para entrada e a porta B para sada. A porta C no O endereo c3h utilizada e pode ser programada para qualquer depende da direo. A direo default para qualquer uma das configurao de portas entrada. Esta programao inicial pode ser jumpers, veja no feita por um comando direto do Monitor no Manual de endereo do registrador de controle do 8255 de Referncia. acordo com o exemplo abaixo. Programao do modo de operao do 8255 pelo Monitor:
C> o c3 90 (programa porta A para entrada e porta B para sada)
Os sensores esto conectados nos quatro bits menos significativos da porta A do 8255. Para ler o contedo desta porta pode-se usar o comando direto do Monitor conforme o exemplo abaixo.
Leitura dos sensores pelo Monitor:
C> i c0 DATA = DF C> (l o valor da porta A do 8255) (o valor lido indicado depois do =)
46
O valor da porta A mostrado na tela. Os quatro bits menos significativos contm o valor dos quatro sensores no momento da leitura. Os quatro bits mais significativos no contm informao nenhuma e deve ser descartados antes da interpretao dos bits menos significativos. Para se isolar o status de um determinado sensor num programa em Linguagem C sugere-se a aplicao de uma funo AND bit a bit com uma mscara que seja composta por 0s em todos os bits indesejveis e 1 no bit desejvel. O trecho de programa abaixo exemplifica este procedimento.
Exemplo para detectar se o sensor 1 foi ativado:
int s1; out (0xc3, 0x90); s1 = in(0xc0) & 0x01; if (s1 != 0) { . . . } // // // // // // // // varivel para status do sensor 1 programa o 8255 com a porta A para entrada l o sensor 1 (bit menos significativo) e aplica a mscara (00000001)b para isolar o bit se for diferente de zero porque detectou
Leitura do encoder.
Ao contrrio do motor de passo cuja posio e velocidade podem ser determinados pela quantidade de pulsos e sua freqncia, respectivamente, dados para o movimento do motor, o motor CC necessita de um dispositivo externo para se saber a sua posio e velocidade. Neste laboratrio utiliza-se um encoder para se determinar a posio do eixo do motor CC. Este encoder produz 500 pulsos por volta do motor de modo que contabilizando-se os pulsos deste encoder nos sentidos horrio e anti-horrio pode-se determinar a posio do eixo do motor num determinado instante. A contabilizao dos pulsos do encoder feita atravs de um 8254 presente no mdulo de interface do motor CC. Existem algumas rotinas de biblioteca que podem ser linkadas com o programa e chamadas para se ter a posio instantnea do eixo do motor.
Rotinas para acessar funes de encoder:
#include mc85\encoder.h // // // // // declarao das rotinas da biblioteca para leitura do encoder, tambm esto declaradas as variveis globais necessrias.
/*--------------------------------------------------------Funo : init_encoder Finalidade : Inicializa o encoder para leitura. Entrada : Byte com a nibble mais significativa do endereo selecionado para a interface. Valores possveis: 0x0c , 0x0d, 0x0e , ou 0x0f
47
Retorno : nenhum ---------------------------------------------------------*/ init_encoder (char endereco); /*--------------------------------------------------------Funo : read_encoder Finalidade : L o valor do encoder e armazena numa varivel. long (4 bytes num vetor de char) Entrada : Byte com a nibble mais significativa do endereo selecionado para a interface. Retorno : valor do encoder com 32-bits numa varivel long ---------------------------------------------------------*/ read_encoder (char endereco, char *encoder);
Nota:
Neste compilador no existe varivel do tipo long. Variveis do tipo long so implementadas em vetores de char com 4 bytes e so manipulados com rotinas de biblioteca como longadd(), longsub(), longmul(), longdiv(), dentre outras. Consulte o manual MC85.DOC sob o item LONGMATH para ver os detalhes de como utilizar as rotinas que tratam esta implementao particular de variveis do tipo long.
Projeto.
O aluno dever implementar um programa para controlar a movimentao do bloco deslizante atravs das teclas do kit e mostrar a posio do eixo do motor no display LCD, da seguinte forma:
1. Ao se pressionar a tecla 1 o motor se move para a esquerda at
ser detectado a entrada do sensor ptico. O movimento parado e escreve-se mensagem no display LCD de que o sistema est pronto.
2. A se pressionar a tecla 2 o sistema inicia o movimento para a
direita em velocidade baixa at que o sensor magntico pare de detectar a presena do bloco.
3. O movimento prossegue em velocidade alta at que seja
detectado o sensor magntico da direita, quando ento a velocidade deve ser reduzida para a velocidade baixa.
4. Ao ser detectado o sensor ptico da direita o motor deve
inverter a sua direo sem parar e o mesmo procedimento anterior repetido no sentido contrrio.
5. A tecla 3 usada para parar o sistema a qualquer momento. 6. Deve ser programada uma interrupo peridica de modo que
a cada segundo seja feita uma leitura do encoder e atualizada uma varivel global. No programa principal, dentro do loop de
48
controle esta varivel global lida e mostrada no canto inferior direito do display LCD.
Responder no relatrio. O aluno dever responder as seguintes perguntas no relatrio. Recomenda-se testar as respostas durante a aula.
49
Registrador de 8-bits
Conversor D/A
3524 (PWM)
Driver de potncia
Motor DC
Fase B
A funo de cada endereo determinada pelos bits A0 a A3 de endereo adicionalmente aos bits A4 a A7
26
verso de 14/02/03
determinados pelos jumpers JP5 a JP8. A Tabela XIX mostra a funo de cada endereo na interface. O registrador de controle da interface est no endereo n0H (onde n pode ser C, D, E ou F dependendo dos jumpers JP5 a JP8) enquanto que o timer 8254 ocupa os endereos n4H a n7H (onde n pode ser C, D, E ou F dependendo dos jumpers JP5 a JP8). Tabela XIX. Funes dos endereos internos dos mdulo
Endereos A3 0 0 0 0 0 A2 0 1 1 1 1 A1 0 0 0 1 1 A0 0 0 1 0 1 conversor D/A 8254 8254 8254 8254 escrita no conversor D/A da interface para o PWM leitura/escrita no Contador 0 leitura/escrita no Contador 1 leitura/escrita no Contador 2 leitura/escrita no Registrador de Controle Dispositivo Funo
Este mdulo pode utilizar as interrupes INT0 e INT1 para tratar o estouro do contador do encoder. As interrupes a serem utilizadas podem ser configuradas pelos jumpers JP9 e JP10. O jumper JP9 indica a utilizao da interrupo INT 0 do barramento (interrupo 5.5 do mdulo processador 8085) enquanto que o jumper JP10 indica a utilizao da interrupo INT 1 do barramento (interrupo 6.5 do mdulo processador 8085). Ocorre um pedido de interrupo INT0 quando estoura o contador para o sentido horrio e ocorre um pedido de interrupo INT1 quando estoura o contador para o sentido anti-horrio.
TP1 GND
P1
JP9 JP10 JP2 JP1 JP4 JP3 JP5 JP6 JP7 JP8 1 1 1
P3
LED Power On
P4
P2
27
Sendo assim, a faixa de tenso entre 0V e +12V dividida em 127 intervalos e a faixa de tenso entre -12V e 0V dividida em mais 127 intervalos. Para esta interface, existem dois valores que correspondem a 0V: os valores que correspondem aos 7-bits iguais a zero com o bit de sinal igual a zero e com o bit de sinal igual a 1. Para que o motor DC receba um certo nvel de tenso deve-se escrever um valor de 8-bits no endereo n0h, onde n depende da configurao dos jumpers JP5 a JP8.
28
verso de 14/02/03
29