pwm-motor dc

Upload: rickyblack

Post on 04-Apr-2018

287 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/29/2019 pwm-motor DC

    1/54

    IMPLEMENTAO DE UM PWM DIGITALDE ALTA RESOLUO UTILIZANDO

    CIRCUITO DE ATRASO

    BolsistaEdson Rodrigo Schlosser

    Estudante de Engenharia Eltrica da Universidade

    Federal do Pampa

    OrientadorEng. Cleber Rodrigues/ LNLS

  • 7/29/2019 pwm-motor DC

    2/54

    2

    IMPLEMENTAO DE UM PWM DIGITALDE ALTA RESOLUO UTILIZANDO

    CIRCUITO DE ATRASO

    BolsistaEdson Rodrigo Schlosser

    Estudante de Engenharia Eltrica da Universidade

    Federal do Pampa

    OrientadorEng. Cleber Rodrigues / LNLS

    2011

  • 7/29/2019 pwm-motor DC

    3/54

    3

    Agradecimentos

    Primeiramente quero agradecer ao CNPEM pela oportunidade concedida aos

    alunos que participaram do 20 Programa Bolsa de Vero, em especial ao Grupo de

    Eletrnica de Potncia do Laboratrio Nacional de Luz Sncrotron que me selecionou.

    Durante o programa tive a oportunidade de desenvolver um projeto envolvendo

    engenharia de aceleradores, onde levarei a experincia adquirida aqui para toda minha

    vida pessoal e profissional.

    Agradeo a minha famlia, em especial aos meus pais Adil Schlosser e Maria K.

    Schlosser e as minhas irms Carla e Carmem pela companhia e apoio em todos os

    momentos de minha vida.

    Agradeo aos profissionais do Grupo de Eletrnica de Potncia, em especial ao

    Eng. Lus Henrique de Oliveira, Eng. ngelo Romeu da Silva e ao orientador Eng.

    Cleber Rodrigues pelos conhecimentos passados a mim durante este tempo.

    Agradeo aos professores Dr. Alessandro Girardi e Dr. Jumar Russi da

    Universidade Federal do Pampa por aceitarem e escreverem com prontido a carta de

    recomendao solicitada, bem como, ao amigo Lucas Compassi Severo bolsista de

    vero 2010 pelo apoio e divulgao do programa na universidade.Agradeo aos amigos do 20 Programa de Vero pelo convvio e risos durante o

    tempo em que permanecemos em CampinasSP.

    Manifesto meu sincero agradecimento ao Roberto Medeiros pela iniciativa e

    motivao na construo dos alicerces do primeiro CTG (Centro de Tradies

    Gachas) do Laboratrio Nacional de Luz Sncrotron, e tambm a Vilmara Congilio

    pela ateno e disposio em atender aos bolsistas do Programa de Vero 2011.

  • 7/29/2019 pwm-motor DC

    4/54

    4

    A mente que se abre a uma nova idia jamais voltar ao seu tamanho original

    Albert Einstein

    http://pensador.uol.com.br/autor/Albert_Einstein/http://pensador.uol.com.br/autor/Albert_Einstein/
  • 7/29/2019 pwm-motor DC

    5/54

    5

    Resumo

    Este trabalho apresenta o projeto de um sistema de regulao digital de alta

    resoluo tendo como base um circuito de atraso, que poder substituir futuramente osistema de regulao analgica encontrada hoje nas fontes de corrente do Laboratrio

    Nacional de Luz Sncrotron. As fontes de corrente so responsveis por alimentarem

    diversos equipamentos que compe o anel de armazenamento de eltrons, tais como,

    dipolos, quadruplos, sextupolos e bobinas corretoras de rbita.

    Os sistemas de regulao analgica esto susceptveis a rudos, bem como,

    expostos a variao da temperatura ambiente, responsveis pela alterao de

    grandezas eltricas que causam perda de preciso do sistema. Os sistemas deregulao digital apresentam algumas vantagens sobre os sistemas atuais, tais como,

    versatilidade, facilidade de ajustar parmetros, entre outros.

    Neste projeto foi utilizado um microcontrolador que possui internamente um

    mdulo de PWM com 10 bits de resoluo que, aps passar por um circuito de atraso,

    pode atingir 18 bits de resoluo, com uma frequncia de chaveamento de dezenas de

    KHz.

    Para testes foi desenvolvida uma interface computacional em Matlab, de modo afacilitar a comunicao do usurio com o hardware. Utilizou-se a comunicao serial,

    conforme padro RS232, que envia informaes do software para o microcontrolador,

    este recebe os dados, processa, e posteriormente atua sobre uma chave atravs da

    modulao PWM. O projeto foi prototipado e, posteriormente, atuou sobre um IGBT

    de forma a alimentar uma carga do tipo RL. Com um DCCT foram realizadas

    medidas da variao de corrente em funo da variao do tempo em que a chave

    permanecia ligada, a fim de se comprovar a resoluo do sistema. Os resultados

    obtidos so apresentados e analisados, validando o projeto proposto.

    Palavras Chave:

    Fonte de Corrente, Regulao Digital, PWM e Circuito Defasador.

  • 7/29/2019 pwm-motor DC

    6/54

    6

    Lista de Figuras

    Figura 1.1- Topologia Full-Bridge ............................................................................... 10

    Figura 1.2 - Sistema de regulao analgica ............................................................... 10

    Figura 2.1 - Caractersticas da modulao PWM ........................................................ 12

    Figura 2.2 - Projeto proposto ....................................................................................... 14

    Figura 2.3 - Atraso no sinal do PWM .......................................................................... 14

    Figura 2.4 - Insero de atrasos entre dois passos do PWM ........................................ 15

    Figura 2.5 - Interface Computacional - Matlab ........................................................... 16

    Figura 2.6Funcionamento da interface .................................................................... 17

    Figura 2.7 - Conversor MAX232 ................................................................................. 19Figura 2.8 - Ligao do conversor MAX232 ............................................................... 19

    Figura 2.9 - Microcontrolador PIC 16F877 ................................................................. 21

    Figura 2.10 - Circuito de atraso DS1020 ..................................................................... 29

    Figura 2.11 - Aproximao linear dos valores de atraso ............................................. 32

    Figura 2.12Diagrama esquemtico interno ao DS1020 ........................................... 33

    Figura 2.13 - Porta Lgica OU .................................................................................... 34

    Figura 2.14 - Funcionamento do microcontrolador ..................................................... 35

    Figura 2.15 - Bloco de recebimento ............................................................................. 36

    Figura 2.16 - Bloco de verificao ............................................................................... 37

    Figura 2.17 - Bloco de equacionamento ...................................................................... 38

    Figura 2.18 - Bloco de atualizao do PWM ............................................................... 39

    Figura 3.1Diagrama esquemtico do circuito proposto ........................................... 41

    Figura 3.2 - Prottipo desenvolvido............................................................................. 41

    Figura 3.3- Valores de Duty Cycle .............................................................................. 42

    Figura 3.4PWM obtido a partir de 10 bits de resoluo .......................................... 43

    Figura 3.5 - PWM obtido a partir de 18 bits de resoluo ........................................... 43

    Figura 3.6 - PWM com passos de 0,25s .................................................................... 44

    Figura 3.7Driver, IGBT e Carga RL (Bobina Corretora de rbita e Resistncias) . 44

    Figura 4.1 - Variao da corrente em funo da variao do PWM ............................ 46

    Figura 4.2 - Zoom da variao de corrente em funo da variao do PWM ............. 46

    Figura 4.3 - Corrente de sada sem monotonicidade.................................................... 48

    Figura 4.4 - Corrente de sada com monotonicidade aps correo ............................ 48

  • 7/29/2019 pwm-motor DC

    7/54

    7

    Lista de Tabelas

    Tabela 2.1 - Registrador TRISC .................................................................................. 22

    Tabela 2.2 - Registrador TRISD .................................................................................. 22

    Tabela 2.3 - Registrador TRISE................................................................................... 22

    Tabela 2.4 - Registrador TXSTA ................................................................................. 23

    Tabela 2.5 - Registrador RCSTA ................................................................................. 25

    Tabela 2.6 - Registrador CCP1CON ............................................................................ 27

    Tabela 2.7 - Registrador CCPR1L ............................................................................... 28

    Tabela 2.8 - Incrementao do PWM .......................................................................... 28

    Tabela 2.9 - Registrador T2CON ................................................................................. 28

    Tabela 2.10 - Famlia DS1020 ..................................................................................... 30

    Tabela 2.11 - Atraso porta lgica OU .......................................................................... 34

    Tabela 2.12 - Pinos porta lgica OU ............................................................................ 34

    Tabela 2.13 - Registrador PIR1 ................................................................................... 35

  • 7/29/2019 pwm-motor DC

    8/54

    8

    Sumrio

    1. INTRODUO ..................................................................................................... 92. PWM DIGITAL DE ALTA RESOLUO ........................................................ 12

    2.1 Interface Computacional ............................................................................... 15

    2.2 Comunicao SerialPadro RS232............................................................ 18

    2.3 Microcontrolador ........................................................................................... 20

    2.3.1 Configuraes das Portas ....................................................................... 21

    2.3.2 Configurao da Comunicao Serial .................................................... 23

    2.3.3 Configurao de Baud Rate ................................................................... 26

    2.3.4 Configurao do PWM .......................................................................... 26

    2.4 Circuito Defasador ........................................................................................ 29

    2.5 Porta Lgica OU............................................................................................ 34

    2.6 Funcionamento do Microcontrolador ............................................................ 35

    3. DIAGRAMA ESQUEMTICO E PROTTIPO ............................................... 41

    4. RESULTADOS.................................................................................................... 45

    5. CONCLUSO ..................................................................................................... 49

    6. REFERNCIAS BIBLIOGRFICAS................................................................. 50

    A. ANEXOAlgoritmo do Microcontrolador ........................................... 51

  • 7/29/2019 pwm-motor DC

    9/54

    9

    1. INTRODUOO Laboratrio Nacional de Luz Sncrotron (LNLS) construiu e opera um anel

    de armazenamento de eltrons de 1,37GeV, nica fonte de Luz Sncrotron da AmricaLatina. Este anel constitudo por uma rede magntica que faz com que eltrons

    descrevam uma rbita fechada, atingindo uma velocidade muito prxima a velocidade

    da luz. Estes eltrons emitem uma luz Sncrotron ao sofrerem um desvio em sua

    trajetria, luz esta cujo espectro vai do infravermelho ao Raio-X, e que utilizada em

    estudos de diversos tipos de materiais.

    Os vrios tipos de magnetos que mantm esta rede magntica so alimentados

    por fontes de corrente, cuja regulao, atualmente, baseia-se em circuitos analgicos.

    A utilizao de um sistema de regulao digital atravs de microcontroladores, DSPs

    e FPGAs apresentam vrias vantagens sobre o sistema de regulao analgica, tais

    como, versatilidade, facilidade de ajustar parmetros e padronizao.

    No entanto, circuitos que geram um sinal PWM (Pulse Width Modulation

    Modulao por Largura de Pulso) que combinem alta resoluo e velocidade, ambas

    necessrias s fontes do LNLS, so extremamente complexos e sofisticados.

    Nos sistemas atuais um computador central responsvel por enviar um sinal

    digital para um circuito analgico atravs de uma comunicao serial ou ethernet,

    sendo assim, necessria a insero de um conversor Digital/Analgico (DAC) [1]. O

    sinal de sada do DAC varia de uma tenso V a +V, que corresponde ao sinal de

    referncia. Este somado com o valor medido (invertido), resultando em uma

    subtrao dos sinais, sendo a diferena entre os valores conhecido como erro. Este

    sinal de erro recebe um ganho e passa por um controlador Proporcional-Integral (PI),

    condicionamento de sinal, tendo uma sada de 0 a 5 Volts. Este sinal entra no PWM

    analgico, que por fim produz um pulso de largura correspondente a tenso de

    entrada, atuando assim sobre os drivers que realizam um chaveamento unipolar [2] do

    conversor DC/DC utilizado na fonte de corrente. Na sada do conversor ligada a

    carga de sada, que apresenta um comportamento RL (Resistor-Indutor). Em grande

    parte das fontes inserido um Shunt em srie com a carga, a fim de realizar medidas

    corrente/tenso. Em outros modelos so usados DCCTs (DC Current Transformer)

    para fazer esta medida. Um exemplo de fonte de corrente usada no LNLS o modelo

    PSA, no qual os valores medidos de corrente so bidirecionais, ou seja, fornecem uma

  • 7/29/2019 pwm-motor DC

    10/54

    10

    tenso equivalente -V a +V. O valor de tenso medido passa por um amplificador

    isolador, pois no existe um ponto de referncia para a medida realizada. O sinal de

    sada ento invertido e posteriormente somado com o valor de referncia. O sentido

    da corrente depende unicamente de quais chaves do conversor Full-Bridge [2] foram

    acionadas pelos drivers. A topologia Full-Bridge utilizadas nas fontes de corrente

    modelo PSA pode ser visualizada na Fig. 1.1.

    Figura 1.1- Topologia Full-Bridge

    O sistema atual de regulao de uma fonte de corrente pode ser visualizado na

    Fig.1.2.

    Figura 1.2 - Sistema de regulao analgica

    O sistema de regulao que atualmente utilizado nas fontes de corrente do

    LNLS apresentam uma resoluo de 16 bits, alcanando uma frequncia dechaveamento de dezenas de KHz.

  • 7/29/2019 pwm-motor DC

    11/54

    11

    O problema encontrado nos sistemas atuais que os sinais analgicos destes

    circuitos sofrem interferncias externas, tais como rudos e alterao de parmetros a

    partir da variao de temperatura. Deste modo, algumas grandezas eltricas so

    alteradas, ocasionando perda de preciso do sistema de regulao da fonte de corrente

    que atua sobre bobinas corretoras de rbita, dipolos, quadrupolos e sextupolos. A fim

    de substituir estes circuitos analgicos, foi proposto um sistema digital de modo a

    solucionar os problemas hoje existentes, conforme mencionado anteriormente.

    A implementao de um sistema de regulao digital apresenta um problema na

    relao entre resoluo e frequncia, pois quando a resoluo aumentada, a

    frequncia de chaveamento diminui e vice-versa.

    Tendo em vista a substituio dos circuitos analgicos de regulao, necessita-

    se de um circuito digital que apresente resultados satisfatrios em relao ao sistema

    atual, no apenas em termos de preciso, mas sim em resoluo e frequncia. Desta

    forma, se props um projeto que tenha uma entrada digital e que aumente a resoluo

    do PWM sem alterar a frequncia de chaveamento, tendo como base um circuito de

    atraso. O sistema digital proposto visualizado na Fig. 1.3.

    Figura 1.3 - Sistema de regulao digital

    Vale destacar que este projeto inclui apenas a implementao de um PWM

    digital de alta resoluo a partir de circuito de atraso, correspondendo apenas a umaparte do sistema visto em Fig. 1.3.

  • 7/29/2019 pwm-motor DC

    12/54

    12

    2. PWM DIGITAL DE ALTA RESOLUOHoje se poderia dizer que a modulao PWM tem destaque entre as demais

    modulaes encontradas, tendo grandes aplicaes em equipamentos eletrnicos,como, por exemplo, fontes de alimentao, inversores de frequncia, entre outros.

    Este tipo de modulao apresenta algumas caractersticas que podem ser

    destacadas, tais como frequncia constante e largura de pulso varivel. A Fig. 2.1

    ilustra as caractersticas desta modulao.

    Figura 2.1 - Caractersticas da modulao PWM

    Este tipo de modulao utilizada em aplicaes em que se deseja ter um

    controle de tenso ou corrente entregue a uma determinada carga. O sinal PWM

    utilizado para acionar chaves, geralmente MOSFETs, IGBTs ou similares, pois osmesmos so capazes de chavear elevadas tenses ou correntes. A razo entre a largura

    de pulso e o perodo da onda recebe o nome de Duty Cycle, e sua variao faz com

    que os valores de tenso ou corrente mdia e/ou rms entregue a carga varie. A

    resoluo obtida atravs desta modulao dada a partir do nmero de

    incrementaes do Duty Cycle dentro de um determinado perodo, ou seja, quanto

    maior o nmero de casos possveis de Duty Cycle, maior ser a resoluo de sada.

    Dentro do LNLS podem-se citar diversas aplicaes para a modulao PWM,

    como, por exemplo, na alimentao de dipolos, quadrupolos, entre outros, que so

  • 7/29/2019 pwm-motor DC

    13/54

    13

    alimentados a partir de fontes de corrente. A fonte de corrente que alimenta o

    eletrom deve ter grande preciso e resoluo, sendo a primeira relacionada

    eficcia do equipamento sobre o feixe de eltrons que circula no anel, enquanto que a

    segunda representa o menor i de corrente incrementada entre dois passos do PWM.

    Quanto menor a variao de corrente, menor ser a variao do Campo Magntico

    produzido pela circulao da corrente no eletrom.

    O sinal de PWM gerado deve ter alta resoluo, alm de apresentar uma elevada

    frequncia de chaveamento, reduzindo assim o rudo audvel ocasionado pelo

    chaveamento e tambm os valores de capacitores e indutores do circuito, tornando os

    circuitos menores, com um menor peso e custo de implementao.

    O objetivo deste projeto utilizar um PWM digital de baixa resoluo que,

    atravs de um circuito defasador controlado digitalmente, consiga aumentar a sua

    resoluo, sem alterar a frequncia de operao. A idia alcanar uma resoluo de

    at 18 bits atravs de um microcontrolador que possui um mdulo PWM com

    resoluo mxima de 10 bits, com uma frequncia de dezenas de KHz. Atravs de

    uma interface computacional o usurio envia pacotes de dados pela porta serial ao

    microcontrolador, pacotes enviados no padro RS232, que devem ser convertidos

    para nvel TTL (Transistor-Transistor Logic).

    Os pacotes recebidos pelo microcontrolador em nvel TTL so processados,

    gerando um sinal PWM com 10 bits de resoluo. Um defasador recebe 8 bits do

    microcontrolador de forma paralela, e estes bits impem um atraso sobre o sinal de

    PWM gerado. Em seguida realizada a lgica OU entre o sinal de PWM gerado com

    o sinal de PWM atrasado, obtendo assim o sinal de PWM final. A Fig. 2.2 ilustra o

    sistema digital implementado a fim de aumentar a resoluo do PWM.

    O pacote enviado tem uma magnitude de 18 bits, destes, 10 bits so utilizados

    pelo microcontrolador para gerar o sinal de PWM e 8 bits para determinar o atrasoque imposto ao sinal gerado.

    Com o pacote de 18 bits enviados pode-se obter:

    10 bits do microcontrolador - at 1023 valores de Duty Cycle; 8 bits do defasador - at 255 diferentes valores de atraso (atraso).Atravs dos 18 bits pode-se conseguir at 262.144 valores de Duty Cycle.

    O atraso inserido ao PWM pode ser visualizado na Fig. 2.3.

  • 7/29/2019 pwm-motor DC

    14/54

    14

    Figura 2.2 - Projeto proposto

    Figura 2.3 - Atraso no sinal do PWM

  • 7/29/2019 pwm-motor DC

    15/54

    15

    A idia do projeto inserir os 255 valores possveis de atraso entre dois passos

    do PWM gerado pelo microcontrolador, assim obtendo 262.144 valores de Duty

    Cycle, conforme explicado anteriormente.

    O passo do PWM est relacionado ao clock externo utilizado no

    microcontrolador, j o passo de atraso incrementado depende do circuito defasador

    que adotado no projeto. A Fig. 2.4 ilustra a idia do projeto.

    Figura 2.4 - Insero de atrasos entre dois passos do PWM

    2.1 Interface ComputacionalO Matlab [3] foi criado em 1970 e reconhecido mundialmente at hoje como

    uma das melhores ferramentas para o processamento matemtico, pois voltado s

    reas de engenharia, fsica, estatstica, economia, entre outras. Pode-se dizer que este

    software tem amplas aplicaes, como por exemplo, em processamento de sinais e

    imagem, aquisio de dados, alm de permitir a construo de interfaces grficas, o

    que o torna muito verstil.

    A partir deste software foi desenvolvida uma interface grfica com o objetivo de

    realizar testes com o sistema digital implementado, facilitando a comunicao entre

    usurio e hardware. O usurio entra com 2 pacotes de dados, um deles de magnitude

  • 7/29/2019 pwm-motor DC

    16/54

    16

    de 8 bits, contendo os MSB (Most Significant BitBit mais significante) do PWM, e

    o outro com 10 bits, sendo os 2 LSB (Least Significant Bit Bit menos significante)

    do PWM, mais 8 bits do defasador. Estes valores so enviados serialmente para o

    hardware atravs do protocolo de comunicao RS232. Este protocolo de

    comunicao trabalha com transmisso de pacotes cuja magnitude igual a 8 bits,

    desta forma, o valor de 18 bits fornecidos pelo usurio deve ser quebrado em 3

    pacotes, para que posteriormente seja transmitido.

    O primeiro pacote de 8 bits responsvel pelo ajuste dos MSB do PWM, o

    segundo pacote pelo ajuste dos LSB do PWM e o terceiro pacote responsvel pelo

    atraso do sinal PWM. A interface computacional desenvolvida pode ser visualizada

    na Fig. 2.5.

    Figura 2.5 - Interface Computacional - Matlab

  • 7/29/2019 pwm-motor DC

    17/54

    17

    A fim de verificar se os dados foram recebidos pelo microcontrolador de

    maneira correta, realizada a soma dos pacotes transmitidos pela interface, a fim de

    realizar um Checksum no microcontrolador. A soma dos 3 pacotes resultaria em um

    quarto pacote com magnitude superior a 8 bits, porm os bits que ultrapassam o valor

    de 8 bits so ignorados, mesma lgica utilizada no microcontrolador, de modo que a

    interface envie somente 1 byte para verificao.

    O fluxograma da Fig. 2.6 ilustra o funcionamento da interface.

    Figura 2.6Funcionamento da interface

    Aps realizar o Checksum no microcontrolador, o mesmo envia um pacote

    referente ao recebimento de dados. Caso o valor enviado pelo microcontrolador seja

    0 ento ocorreu um erro no recebimento de algum pacote, desta forma, o Checksum

    apresentado para o usurio estar errado, sendo que o mesmo dever reenviar os

    dados. Caso o valor seja 255 o valor do Checksum est correto, e o usurio noprecisar enviar um mesmo valor novamente.

  • 7/29/2019 pwm-motor DC

    18/54

    18

    O usurio deve abrir a porta serial atravs do Open Port antes de enviar os

    dados e, aps realizar determinado trabalho, o mesmo dever fechar a porta atravs do

    Close Portou simplesmente finalizar a tarefa atravs deQuit.

    2.2 Comunicao SerialPadro RS232O padro RS232 [4] j foi um dos tipos de comunicao mais utilizados entre a

    comunicao de dispositivos. Neste tipo de comunicao os dados so transmitidos de

    forma serial, ou seja, os bytes so transmitidos bit a bit por um mesmo barramento, e

    so transmitidos e recebidos por dois fios, um para transmisso e o outro para a

    recepo de dados.

    Os sinais eltricos na porta serial que correspondem a um dado enviado

    possuem nveis de tenso entre 15VDC e -15VDC, sendo que de -15VDC a -3VDC

    corresponde ao nvel lgico 1 e de +3VDC a +15VDC corresponde ao nvel lgico

    0.

    Toda comunicao assncrona depende de alguns fatores, tais como: velocidade,

    nmero de bits, verificao e bits indicativos.

    A velocidade de comunicao medida em bits por segundo (bps) e osequipamentos interligados na comunicao devem ser configurados para operar na

    mesma velocidade. Esta taxa de velocidade chamada de Baud Rate e pode ser

    configurada em mltiplos de 300, valores que ficam entre a faixa de 300 bps a 115000

    bps. Para este projeto foi utilizada uma taxa de transmisso de 9600bps.

    O nmero de bits define quantos bits compe o byte a ser enviado, sendo que na

    maioria das comunicaes so utilizados todos os possveis, ou seja, 8 bits.

    O Checksum um mtodo utilizado para verificar se houve algum erro durantea transmisso e recepo dos dados. Este mtodo realizada a soma dos pacotes

    recebidos, que posteriormente subtrado pelo pacote de Checksum transmitido

    (contendo a soma dos pacotes enviados). Caso o valor resultante seja zero, os pacotes

    enviados foram recebidos corretamente, caso contrrio houve um erro de transmisso,

    sendo necessrio o reenvio dos dados.

    Alm do valor transmitido contendo geralmente 8 bits, o transmissor envia 2

    bits indicativos, um no incio do dado enviado e outro no final. O primeiro chamado

    de Start Bit e serve para informar ao receptor que ser dado incio da transmisso de

  • 7/29/2019 pwm-motor DC

    19/54

    19

    um pacote de dados, j o ltimo bit chamado de Stop bite utilizado para informar

    ao receptor o final do dado enviado serialmente.

    Este projeto utiliza a comunicao serial, enviando dados a partir da interface

    pela porta serial. Para isso necessrio inserir no circuito de comunicao entre a

    interface e microcontrolador um conversor MAX232 [5]. Este circuito converte o

    sinal padro RS232 para um sinal em nvel TTL que varia de 0 a 5 volts.

    Este circuito integrado fabricado pela Texas Instruments e pode ser

    visualizado na Fig. 2.7.

    Figura 2.7 - Conversor MAX232 (Fonte: Ref.[5])

    A forma de ligao deste circuito pode ser visualizada na Fig. 2.8.

    Figura 2.8 - Ligao do conversor MAX232 (Fonte: Ref.[5])

  • 7/29/2019 pwm-motor DC

    20/54

    20

    Os dados enviados pelo computador atravs da interface saem do conector

    DB09 pelo pino (3), que posteriormente invertido no cabo de comunicao entre o

    computador e placa de aquisio de dados, saindo informao transmitida no pino

    (2). Esta informao entra no pino (13) do MAX232, dado que convertido para o

    nvel TTL, tendo como sada atravs do pino (12), que posteriormente ligado ao

    microcontrolador.

    Os dados enviados em nvel TTL pelo microcontrolador entram no pino (11) do

    MAX232 e convertido para o padro RS232, tendo como sada o pino (14), valor

    que enviado pelo pino (3) do conector DB09 da placa de aquisio, que

    posteriormente invertida no cabo de comunicao, entrando no pino (2) do conector

    do computador. Alm disso, o pino (5) do conector DB09 que corresponde ao GND

    do computador deve ser ligado ao GND da placa de aquisio, deste modo ambos

    ficando em uma mesma referncia.

    2.3 MicrocontroladorPode-se dizer que o microcontrolador a parte principal do projeto, pois atravs

    do mesmo realizado o recebimento e processamento dos dados enviados a partir dainterface computacional desenvolvida em Matlab.

    Para este projeto foi utilizado um microcontrolador PIC16F877[6], fabricado

    pela Microchip. O microcontrolador trabalha em uma frequncia mxima de 20MHz,

    apresentando um tempo por ciclo de instruo de 200s.

    Este microcontrolador possui um mdulo USART, fator muito importante para

    esta aplicao, pois a comunicao entre software e hardware realizada serialmente.

    Alm disso, este microcontrolador possui dois canais de PWM, ambos com umaresoluo mxima de 10 bits. O mesmo possui uma porta paralela digital de 8 bits,

    porta esta utilizada para enviar o valor de 8 bits ao defasador.

    O microcontrolador PIC16F877 utilizado neste projeto pode ser visualizado na

    Fig. 2.9.

  • 7/29/2019 pwm-motor DC

    21/54

    21

    Figura 2.9 - Microcontrolador PIC 16F877 (Fonte: Ref.[6])

    Para esta aplicao foram utilizadas as seguintes portas deste microcontrolador:

    RC2 - Sada de PWM (Sinal de PWM gerado pelo microcontrolador);

    RC6 - Sada de dados pela serial (Envio de dados para a interface);

    RC7Entrada de dados pela serial (Recebimento de dados da interface);

    RD7 a RD0Sada de dados paralelamente (Defasador);

    RE0Sada (Sistema ligado).

    Para que o circuito funcione de maneira adequada deve-se realizar as

    configuraes das portas e dos registradores do microcontrolador, sendo apresentadas

    de maneira sucinta estas configuraes.

    2.3.1Configuraes das Portas

    Em projetos que envolvem a aplicao de microcontroladores deve-se realizar

    as configuraes das portas, de maneira a indicar se a porta entrada ou sada. Caso

    seja atribudo o valor 1 a posio do registrador, ento a mesma ser entrada, caso

    contrrio (valor 0) a mesma ser sada. Assim, as configuraes dos registradores

    das respectivas portas podem ser visualizadas na tabela 2.1, 2.2 e 2.3.

  • 7/29/2019 pwm-motor DC

    22/54

    22

    Tabela 2.1 - Registrador TRISC

    RC7 RC6 RC5 RC4 RC3 RC2 RC1 RC0Posio 7 6 5 4 3 2 1 0

    I/O 1 0 x x x 0 x x

    RC2 - Sada de PWM (Sinal de PWM gerado pelo microcontrolador);

    RC6 - Sada de dados pela serial (Envio de dados para a interface);

    RC7Entrada de dados pela serial (Recebimento de dados da interface).

    Ento o valor a ser movido para o registrador TRISC :

    =========================================================

    MOVLW B'10111011'

    MOVWF TRISC

    =========================================================

    Tabela 2.2 - Registrador TRISD

    RD7 RD6 RD5 RD4 RD3 RD2 RD1 RD0Posio 7 6 5 4 3 2 1 0

    I/O 0 0 0 0 0 0 0 0

    RD7 a RD0Sada de dados paralelamente (Defasador).

    Ento o valor a ser movido para o registrador TRISD :=========================================================

    MOVLW B'00000000'

    MOVWF TRISD

    =========================================================

    Tabela 2.3 - Registrador TRISE

    RE7 RE6 RE5 RE4 RE3 RE2 RE1 RE0

    Posio 7 6 5 4 3 2 1 0I/O x x x x x x x 0

    RE0Sada (Sistema ligado).

    Ento o valor a ser movido para o registrador TRISE :

    =========================================================

    MOVLW B'00000000'

    MOVWF TRISE

    =========================================================

  • 7/29/2019 pwm-motor DC

    23/54

    23

    2.3.2Configurao da Comunicao Serial

    Para a comunicao serial entre a interface e microcontrolador deve-se

    configurar os registradores envolvidos na transmisso e recepo dos dados, pois o

    microcontrolador apresenta dois modos de transmisso, que so:

    Sncrono: depende de um sinal de clock para sincronizar a comunicao entre

    os elementos envolvidos;

    Assncrono: no depende de sinal de clock, porm deve-se atribuir um Baud

    Rate comunicao.

    Neste projeto utilizou-se o modo de comunicao assncrona, com um Baud

    Rate de 9600bps.

    As configuraes dos registradores envolvidos na transmisso e recepo so

    visualizadas na Tabela 2.4 e 2.5

    Tabela 2.4 - Registrador TXSTA

    CSRCSeleo entre Master/Slave configurao em modo sncrono:

    0Slave;

    1Master.

    TX9Habilitao de 9 bits para a transmisso:

    08 bits;

    19 bits.

    TXENHabilitao de transmisso:

    0Desabilitada;

    1Habilitada.

    SYNCSeleo entre modo assncrono e sncrono:

    0Assncrono;

    1Sncrono.

    BRGHSeleo para Baud Rate:

    0Baud Rate Baixo;

    1Baud Rate Alto.

    CSRC TX9 TXEN SYNC - BRGH TRMT TX9DPosio 7 6 5 4 3 2 1 0Valor x 0 1 0 x 1 x x

  • 7/29/2019 pwm-motor DC

    24/54

    24

    Observao: deve-se calcular para ambos os modos, verificando qual deles

    apresenta menor erro.

    TRMTSituao do registrador de transmisso:

    0Cheio;

    1Vazio.

    TX9Dbit pode ser usado como paridade ou endereamento:

    Clculo de BRGH (Seleo de Baud Rate)

    Para Baud Rate baixo (BRGH = 0) o clculo realizado pela Eq. 1.

    BRprojeto = 9600bps;

    Fosc = 20MHz.

    Desta forma se tem SPBRG igual a 31,552 ~ 31.

    Posteriormente deve ser calculado o valor de Baud Rate real atravs da Eq. 1,

    levando-se em considerao a um SPBRG de 31.

    Assim, BRreal 9765,625 bps.O erro em percentagem calculado atravs da Eq.2.

    Erro igual a 1.725%.

    Para Baud Rate alto (BRGH = 1) o clculo realizado pela Eq. 3.

    BRprojeto = 9600bps;

    Fosc = 20MHz.

    Desta forma se tem SPBRG igual a 129,2 ~ 129

  • 7/29/2019 pwm-motor DC

    25/54

    25

    Posteriormente deve ser calculado o valor de Baud Rate real atravs da Eq. 3,

    levando-se em considerao a um SPBRG de 129.

    Assim, BRreal 9615,38 bps.

    Pela Eq. 2 chega-se a um erro igual a 0.16%.

    O clculo que apresentou menor erro foi o Baud Rate alto, ento deve-se

    colocar o valor 1 na respectiva posio do registrador.

    Ento o valor a ser movido para o registrador.

    =========================================================

    MOVLW B'00100100'

    MOVWF TXSTA

    =========================================================

    Tabela 2.5 - Registrador RCSTA

    SPENHabilitao de USART:

    0Desabilitada;

    1Habilitada.RX9Habilitao de 9 bits para a recepo:

    08 bits;

    19 bits.

    SRENRecepo unitria:

    0Desabilitada;

    1Habilitada.

    CRENHabilitao de recepo contnua:0Desabilitada;

    1Habilitada.

    ADDENHabilitao de endereamento:

    0Desativado;

    1Habilitado.

    FERRErro de Stop Bit Configurao em modo Assncrono:

    0No ocorreu erro, Stop Bit =1;

    1Ocorreu erro, Stop Bit = 0.

    SPEN RX9 SREN CREN ADDEN FERR OERR RX9DPosio 7 6 5 4 3 2 1 0Valor 1 0 0 1 x x x x

  • 7/29/2019 pwm-motor DC

    26/54

    26

    OERRErros de muitos bytes recebidos sem leitura:

    0No houve problemas;

    1Estouro do Limite de 3 Bytes recebidos.

    RX9Dbit pode ser usado como paridade ou endereamento:

    Ento o valor a ser movido para o registrador.

    =========================================================

    MOVLW B'10010000'

    MOVWF RCSTA

    =========================================================

    2.3.3Configurao de Baud RateDeve-se escolher um Baud Rate para a comunicao. Para este projeto foi

    utilizado um valor de 9600 bps, desta forma deve-se calcular o valor corresponde a

    este Baud Rate para que posteriormente o mesmo seja atribudo ao respectivo

    registrador.

    Este valor est relacionado ao clculo realizado na seleo do Baud Rate, que

    atravs do clculo foi escolhido o Baud Rate alto, neste clculo obteve-se um SPBRGde 129, deste modo deve-se atribuir o respectivo valor ao registrador.

    ========================================================

    MOVLW .129

    MOVWF SPBRG

    =========================================================

    2.3.4Configurao do PWMO microcontrolador 16F877 possui dois mdulos de PWM que devem ser

    configurados de forma a atender as necessidades de projeto.

    Primeiramente deve-se configurar o registrador CCP1CON, de forma a ativar o

    modo PWM do microcontrolador. Este registrador visualizado na Tabela 2.6.

  • 7/29/2019 pwm-motor DC

    27/54

    27

    Tabela 2.6 - Registrador CCP1CON

    - - CCPxX CCPxY CCP1M3 CCP1M2 CCP1M1 CCP1M07 6 5 4 3 2 1 0

    As posies CCP1CON so utilizadas para selecionar o modo CCP1,podendo funcionar como Compare/Capture/PWM.

    Para funcionar no modo PWM, deve-se atribuir 1111 a estas posies do

    registrador, conforme visualizado abaixo.

    =========================================================

    MOVLW B'00001111'

    MOVWF CCP1CON

    =========================================================Para se obter a resoluo mxima do PWM deste microcontrolador deve-se

    mover o valor 255 ao registrador PR2.

    =========================================================

    MOVLW .255

    MOVWF PR2

    =========================================================

    Quando este microcontrolador funciona com a resoluo mxima, ou seja, semperda de resoluo, a frequncia mxima obtida 19,531KHz, valor obtido atravs da

    Eq. 4.

    [ ]

    Onde,

    Fosc = 20MHz;

    PR2 = 255;

    Prescale = 1:1.

    O perodo do PWM 51.2s, onde a frequncia obtida aplicando o inverso do

    perodo, desta forma chega-se a 19.531KHz.

    O mdulo de PWM do PIC 16F877 possui uma resoluo de 10 bits, porm este

    valor divido em dois registradores. Os 8 MSB so armazenados no registrador

  • 7/29/2019 pwm-motor DC

    28/54

    28

    CCPR1L , enquanto que os 2 LSB so armazenados em CCP1CON .

    Estes registradores podem ser visualizados na Tabela 2.6 e 2.7.

    Tabela 2.7 - Registrador CCPR1L

    CCPxB9 CCPxB8 CCPxB7 CCPxB6 CCPxB5 CCPxB4 CCPxB3 CCPxB27 6 5 4 3 2 1 0

    Obtendo a seguinte representao:

    O passo no perodo do PWM dado pela Eq.5.

    Neste projeto adotou-se a frequncia mxima do microcontrolador (20MHz), e

    atravs da Eq. 5 pode-se dizer que cada valor incrementado nos bits do PWM se tem

    um passo de 50s. Caso fosse trabalhado somente com os MSB do PWM, se teria um

    passo de 200s, porm este valor dividido por 4 quando se trabalha com os 2 LSB.

    Na Tabela 2.8 pode ser visualizado o tempo incrementado a partir da variao dos bits

    do PWM.

    Tabela 2.8 - Incrementao do PWM

    [CCPR1L] : [CCP1CON] Passo[00000000] : [01] 50s[00000000] : [10] 100s[00000000] : [11] 150s[00000001] : [00] 200s

    Para que a sada do microcontrolador comece a funcionar, necessrio ajustar

    o prescale do Timer2 e lig-lo atravs do registrador T2CON, visto na Tabela 2.9.

    Tabela 2.9 - Registrador T2CON

    - TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TRM2ON T2CKPS1 T2CKPS07 6 5 4 3 2 1 0

    TOUTPS3 TOUTPS0 esto relacionados ao ajuste do postscale, onde se

    atribuiu valor de 0000 que corresponde a um postscale de relao 1:1.TRM2ONAtiva habilitao do Timer2:

  • 7/29/2019 pwm-motor DC

    29/54

    29

    1Ligado;

    0Desligado.

    T2CKPS1 e T2CKPS0 esto relacionados ao ajuste do prescale, onde se

    atribui o valor de 00 que corresponde a um prescale de relao 1:1.

    =========================================================

    MOVLW B'00000100'

    MOVWF T2CON

    =========================================================

    2.4 Circuito DefasadorUm defasador um circuito que produz determinado atraso em um sinal. Um

    circuito integrado que produz este atraso o DS1020 [7], que construdo com a

    tecnologia CMOS. Este circuito de silcio compatvel com tecnologia CMOS e TTL

    e, utilizado em aplicaes em que se deseja obter um sinal de sada com

    determinado atraso em relao ao de entrada, sendo o usurio capaz de escolher o

    respectivo valor de atraso. Este circuito integrado pode ser visualizado na Fig. 2.10.

    Figura 2.10 - Circuito de atraso DS1020 (Fonte: Ref.[7])

    Descries de pinos:

    IN - Delay Input;

    P0-P7 - Parallel Program Pins;

    GND - Ground;

    OUT - Delay Output;

    VCC - +5 Volts;

    S - Mode Select;

    E- Enable;

  • 7/29/2019 pwm-motor DC

    30/54

    30

    C - Serial Port Clock;

    Q - Serial Data Output;

    D - Serial Data Input.

    O sinal de entrada imposto na porta (IN), sendo o atraso determinado a partir

    de 8 bits enviados de forma paralela ou serial. Desta forma, pode-se alcanar at 255

    valores de defasagem, cujo valor determinado pelo usurio, obtendo o sinal atrasado

    atravs da porta (OUT).

    A famlia DS1020 possui diversos tipos de defasadores, com diferentes valores

    de atrasos em suas incrementaes. Estes diferentes valores podem ser visualizados

    na Tabela 2.10.

    Tabela 2.10 - Famlia DS1020 (Fonte: Ref.[7])

    Mn. Mx.Atraso(s) Atraso(s)

    PortaParalela

    Signifi-cativos

    ValorBinrioDefasagem

    0 0 0 0 0 .. 1 1 P7 MSB

    0 0 0 0 0 .. 1 1 P6

    0 0 0 0 0 .. 1 1 P5

    0 0 0 0 0 .. 1 1 P4

    0 0 0 0 0 .. 1 1 P3

    0 0 0 0 1 .. 1 1 P20 0 1 1 0 .. 1 1 P1

    0 1 0 1 0 .. 0 1 P0 LSB

    DS1020-15 10 10,15 10,30 10,45 10,6 .. 48,1 48,25DS1020-25 10 10,25 10,5 10,75 11 .. 73,5 73,75DS1020-50 10 10,5 11 11,5 12 .. 137 137,5

    DS1020-100 10 11 12 13 14 .. 264 265DS1020-200 10 12 14 16 18 .. 518 520

    Estes circuitos integrados possuem um atraso inicial que determinado a partir

    do atraso das portas lgicas internas ao DS1020, ou seja, independentemente do valorsetado de atraso, o sinal de sada ter um valor de 10s alm do valor de atraso

    atribuido no defasador. O valor do atraso total pode ser obtido a partir da Eq. 6.

    Onde,

    Sendo,AtotalAtraso total do defasador;

  • 7/29/2019 pwm-motor DC

    31/54

    31

    AinicialAtraso inicial devido s portas lgicas;

    AdefasadorAtraso obtido a partir de 8 bits;

    xValor de 8 bits recebidos paralelamente no defasador;

    Apasso - Atraso do passo.

    Conforme mencionado anteriormente, cada passo do PWM possui 50s, ento

    se realizou a anlise dos diferentes tipos de defasadores da famlia DS1020, adotando-

    se para este projeto o defasador DS1020-25, pois o mesmo possui um valor de atraso

    mximo muito prximo do passo do PWM gerado pelo microcontrolador.

    Analisando a Tabela 2.10, pode-se dizer que o circuito DS1020-25 possui um

    atraso mximo de 73,75s, obtido a partir da Eq.6.

    O Defasador DS1020-25 possui um passo de atraso de 0.25s, ou seja, a cada

    valor incrementado no circuito de atraso somado 0.25s. O valor de atraso pode ser

    variado em 255 passos, desta forma pode-se obter um atraso total de 63,75s.

    O incremento do LSB do PWM gera um avano de 50s, desta forma, deve-se

    realizar um condicionamento do valor de atraso, atravs de uma aproximao linear,

    de forma a obter um valor mximo de atraso de 50s no defasador, valor este obtido a

    partir de um valor de entrada igual a 255 decimal.

    Assim, o valor inserido ao defasador que faz com que o sinal obtenha um atraso

    de 50s 200 decimal, podendo ser aproximado pela Eq. 7.

    Onde,

    x - valor de entrada (0 a 255 decimal).

    A equao da reta obtida pelos valores mximos e mnimos:

    Valor mximo,

    Valor mnimo,

    Desta forma, o valor de a :

  • 7/29/2019 pwm-motor DC

    32/54

    32

    Sendo a equao que representa a variao de y em relao ao valor recebido

    dada por:

    O condicionamento do atraso em funo do valor de entrada pode ser

    visualizado na Fig. 2.11.

    Funo Matlabx=0:1:255;

    atraso_real = 0.25 * x;

    atraso_reduzido = 0.25* (200/255) * x;

    plot(x,atraso_reduzido)

    hold onplot(x,atraso_real)

    Figura 2.11 - Aproximao linear dos valores de atraso

    Analisando a Fig. 2.11 pode-se dizer que os 255 valores de defasagem

    produzem um atraso mximo de 50s atravs da aproximao realizada. Esta

    aproximao foi realizada internamente ao microcontrolador.

    Os 8 bits responsveis pelo atraso podem ser dados de forma paralela, ou serial.

  • 7/29/2019 pwm-motor DC

    33/54

    33

    Paralela: o dispositivo recebe o dado a ser atrasado na porta (IN), e envia o

    sinal atrasado na porta (OUT). O valor que determina o atraso aplicado sobre o sinal

    de entrada dado atravs das portas (P7 a P0). Na atribuio dos valores de atraso

    deve-se tomar cuidado com o MSB, no caso atribudo a porta (P7), com o LSB, no

    caso atribudo a porta (P0). Para que haja um funcionamento neste modo, deve-se

    colocar o valor 1 lgico no pino (S).

    Serial: o dispositivo recebe o dado a ser atrasado na porta (IN), e envia o sinal

    atrasado na porta (OUT). O valor que determina o atraso aplicado sobre o sinal de

    entrada aplicado de forma serial na porta (D), cujo valor de 8 bits atribuir o valor

    de atraso. Caso o sistema opere neste modo, necessrio enviar um sinal de clock

    para o dispositivo, a fim de sincronizar os diferentes mdulos que so interligados ao

    defasador, alm disso, o circuito exige um sinal na porta (E) para leitura de dados.

    Para que haja um funcionamento neste modo, deve-se colocar o valor 0 lgico no

    pino (S).

    Os pinos que no so utilizados em ambos os modos devem ser ligados ao GND

    ou VDD, pois os mesmos no podem ficar em aberto.

    Um diagrama esquemtico interno que representa melhor o DS1020 pode ser

    visualizado na Fig. 2.12.

    Figura 2.12Diagrama esquemtico interno ao DS1020 (Fonte: Ref.[7])

  • 7/29/2019 pwm-motor DC

    34/54

    34

    2.5 Porta Lgica OUAps obter o sinal PWM do microcontrolador, e o sinal PWM atrasado, ambos

    entram em uma porta lgica OU, sendo que o valor de sada depende unicamente dos

    valores de entrada.

    Para este projeto necessitava-se de uma porta lgica rpida, ento se utilizou o

    circuito integrado 74HC32 [8]. Este circuito integrado pode ser visualizado na Fig.

    2.13 (A) bem como seu atraso, visto na Tabela 2.11.

    (A) - Configuraes de pinos (B) - Smbolo LgicoFigura 2.13 - Porta Lgica OU (Fonte: Ref.[8])

    Tabela 2.11 - Atraso porta lgica OU (Fonte: Ref.[8])

    Smbolo Parmetro Condies Tipo: HC Unidade

    tPHL/tPLH

    Atraso de propagao nA or nBp/ nY

    CL = 15 pF VCC=5V

    6 s

    Este circuito integrado possui 4 portas lgicas OU conforme visto na Fig. 2.13

    (B), porm foi utilizado neste projeto somente uma delas.

    O sinal PWM do microcontrolador colocado na entrada 4A e o sinal PWM

    atrasado colocado na entrada 4B, obtendo na sada 4Y o PWM que passar pelo

    driver (elevando o sinal de 5Volts para 12Volts), fazendo o acionamento da chave. A

    tabela 2.12 apresenta os pinos de entrada, sada e de alimentao deste circuito.

    Tabela 2.12 - Pinos porta lgica OU (Fonte: Ref.[8])

    Nmero dos pinos Smbolo Nome e funo

    1, 4, 9, 122, 5, 10, 133, 6, 8, 11714

    1A a 4A1B a 4B1Y a 4YGNDVCC

    EntradasEntradasSadas0V5V

  • 7/29/2019 pwm-motor DC

    35/54

    35

    2.6 Funcionamento do MicrocontroladorA programao do microcontrolador PIC 16F877 foi desenvolvida em

    linguagem assembly e seu funcionamento depende das configuraes que foramvistas anteriormente. O funcionamento do microcontrolador dividido em diferentes

    blocos, que podem ser visualizados na Fig. 2.14.

    Figura 2.14 - Funcionamento do microcontrolador

    Ao iniciar sua rotina o microcontrolador atribui as configuraes aos

    registradores a partir do programa descrito pelo programador. Inicialmente realizada

    a configurao das portas, definindo as mesmas como entrada ou sada, alm disso,

    configura o mdulo de PWM e USART do microcontrolador.

    Aps realizar suas configuraes iniciais o programa entra em um loop

    aguardando recebimento de algum dado em seu pino RC2 (RX). Para esta aplicao

    deve-se destacar um registrador muito importante conhecido como PIR1, visto na

    Tabela 2.13.

    Tabela 2.13 - Registrador PIR1

    PSPIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IFPosio 7 6 5 4 3 2 1 0

    Onde,

    PSPIFIndica interrupo da porta paralela;

    ADIFIndica se a converso A/D foi concluda;

  • 7/29/2019 pwm-motor DC

    36/54

    36

    RCIFIndica se o buffer de recepo USART est cheio, ou vazio;

    TXIF - Indica se o buffer de transmisso USART est cheio, ou vazio.

    SSPIFIndica interrupo da porta serial SSP;

    CCP1IFIndica interrupo no mdulo CCP1;

    TMR2IFIndica interrupo do Timer2;

    TMR1IFIndica interrupo de estouro do Timer1.

    Neste projeto foi utilizado a posio 5 (RCIF) deste registrador, a qual

    responsvel por indicar se algum dado foi recebido. Conforme visto, o RCIF

    apresenta o status do buffer de recepo USART, esta posio do registrador vai para

    1 lgico quando algum dado recebido. O valor recebido pelo microcontrolador fica

    armazenado em outro registrador conhecido como RCREG, sendo necessrio atribuir

    este valor a uma varivel declarada no projeto. Aps o valor recebido ser movido de

    RCREG, a posio RCIF do registrador limpa automaticamente e o programa entra

    em um prximo loop, aguardando recebimento de um segundo pacote.

    Na Fig. 2.15 pode-se visualizar a utilizao de 4 loops internos ao bloco de

    recebimento, os quais aguardam o recebimento dos 4 pacotes de dados, o primeiro

    com os 8 MSB do PWM, o segundo com os 2 LSB do PWM, o terceiro com os 8 bits

    de atraso e um quarto com 8 bits contendo o Checksum.

    Figura 2.15 - Bloco de recebimento

  • 7/29/2019 pwm-motor DC

    37/54

    37

    Os valores dos 4 pacotes foram gravados em diferentes variveis declaradas,

    conforme visto abaixo:

    Os 8 bits MSB do PWM so movidos para PACOTE_PWM_MSB.

    Os 2 bits LSB do PWM so movidos para PACOTE_PWM_LSB.

    Os 8 bits do ATRASO so movidos para PACOTE_ATRASO.

    Os 8 bits do CHECKSUM so movidos para PACOTE_CHEKSUM.

    Aps receber os 4 pacotes, o programa entra no bloco de verificao do

    Checksum, que pode ser visualizado na Fig. 2.16.

    Figura 2.16 - Bloco de verificao

    Os 3 pacotes recebidos (PACOTE_PWM_MSB, PACOTE_PWM_LSB e

    PACOTE_ATRASO) so somados, sendo posteriormente apenas considerados os 8

    bits LSB desta soma. Este valor LSB subtrado pelo pacote PACOTE_CHEKSUM e

    posteriormente realizado um teste sobre o resultado.

    Caso o resultado seja zero, ento o microcontrolador envia um pacote com valor

    255 interface indicando que o valor recebido est correto, e esta informao

    apresentada ao usurio.

    Caso o resultado seja diferente de zero, ento o microcontrolador envia um

    pacote com valor 0 a interface, indicando assim que o valor recebido est incorreto,

  • 7/29/2019 pwm-motor DC

    38/54

    38

    e esta informao apresentada para o usurio, sendo assim necessrio reenviar os

    dados ao microcontrolador.

    Aps o Checksum ser realizado com sucesso, realizada a aproximao linear

    do pacote de atraso. O bloco de equacionamento pode ser visualizado na Fig. 2.17.

    Figura 2.17 - Bloco de equacionamento

    O bloco de equacionamento da Fig.2.17 funciona da seguinte maneira:

    A equao obtida pela aproximao linear dada por:

    Ento o valor 200 movido para a varivel cont e posteriormente o valor de

    entrada B (0 a 255 decimal) somado com o valor da varivel ValorL,

    decrementando de cont, ou seja, a multiplicao realizada a partir de sucessivas

    somas. Posteriormente o valor somado testado no Status C, que um registrador

    interno ao microcontrolador responsvel por indicar se houve overflow do valor

    somado. Caso o valor seja superior a 8 bits, incrementado um outro registrador(ValorH). Aps testar o Status C, realizado outro teste de verificao do valor de

  • 7/29/2019 pwm-motor DC

    39/54

    39

    cont. Se o valor de cont for igual a zero, o programa sai deste loop, caso contrrio,

    o mesmo permanece somando at que o valor de cont seja zero. Quando a operao

    de multiplicao terminar, desprezado o valor contido em ValorL, desta forma, se

    estar dividindo a equao por 256. O ValorH o valor resultante, que

    posteriormente movido para a varivel PACOTE_ATRASO_EQUACIONADO, valor

    responsvel por atribuir o atraso condicionado ao defasador. Aps obter o valor do

    atraso a ser atribudo ao circuito defasador, o programa do microcontrolador entra no

    bloco que atualiza o valor do PWM. Este bloco pode ser visualizado na Fig.2.18.

    Figura 2.18 - Bloco de atualizao do PWM

    O bloco de atualizao do PWM tem o objetivo de verificar qual o valor dos

    bits LSB do PWM. Este teste realizado porque difcil atribuir valores no

    registrador dos bits LSB do PWM. Desta forma, este bloco testa as 4 combinaes

    possveis dos 2 bits LSB, de forma a inserir o passo correspondente.

    Os 4 casos possveis dos LSB so determinados pela Tabela 2.8.

    Caso 1:

    Deixa em zero os LSB.Atualiza os 2 bits LSB:

  • 7/29/2019 pwm-motor DC

    40/54

    40

    =========================================================

    BCF CCP1CON,5

    BCF CCP1CON,4

    =========================================================

    Caso 2:

    Permanece valor dos MSB + 50s dos LSB

    Atualiza os 2 bits LSB:

    =========================================================

    BCF CCP1CON,5

    BSF CCP1CON,4

    =========================================================

    Caso 3:

    Permanece valor dos MSB + 100s dos LSB

    Atualiza os 2 bits LSB:

    =========================================================

    BSF CCP1CON,5

    BCF CCP1CON,4

    =========================================================

    Caso 4:

    Permanece valor dos MSB + 150s dos LSB

    Atualiza os 2 bits LSB:

    =========================================================

    BSF CCP1CON,5

    BSF CCP1CON,4

    =========================================================

    Para os 4 casos anteriores so atualizados os valores dos MSB do PWM eatraso:

    =========================================================

    MOVFW PACOTE_PWM

    MOVWF CCPR1L

    MOVFW PACOTE_ATRASO_EQUACIONADO

    MOVWF PARALELA

    =========================================================

  • 7/29/2019 pwm-motor DC

    41/54

    41

    3. DIAGRAMA ESQUEMTICO E PROTTIPOAntes de realizar a prototipao do projeto foi feito o diagrama esquemtico

    do mesmo atravs da ferramenta ISIS do Proteus, a fim de facilitar a montagem docircuito em placa. Este esquemtico pode ser visualizado na Fig.3.1.

    Figura 3.1Diagrama esquemtico do circuito proposto

    A partir do esquemtico o projeto foi prototipado, a fim de reduzir as

    interferncias e ms conexes encontradas na montagem em matriz de contato. O

    projeto prototipado pode ser visualizado na Fig. 3.2.

    Figura 3.2 - Prottipo desenvolvido

  • 7/29/2019 pwm-motor DC

    42/54

    42

    Primeiramente foram realizados testes do circuito PWM, a fim de validar o

    funcionamento do mesmo em placa. Fazendo uso de um osciloscpio pde-se

    capturar alguns valores de Duty Cycle, os quais correspondem variao dos dados

    enviados pela interface grfica, conforme a Fig. 3.3.

    Figura 3.3- Valores de Duty Cycle

    Conforme visto no decorrer do trabalho, o microcontrolador PIC16F877 possui

    um PWM com resoluo mxima de 10 bits e frequncia de chaveamento para amxima resoluo de 19,531 KHz, onde cada valor incrementado no PWM

  • 7/29/2019 pwm-motor DC

    43/54

    43

    corresponde a um passo de 50s. Com o osciloscpio em modo de persistncia

    infinita pode-se capturar a borda de descida de alguns passos do PWM gerado pelo

    microcontrolador, e estes podem ser visualizados na Fig.3.4.

    Figura 3.4PWM obtido a partir de 10 bits de resoluo

    Com a insero do circuito de atraso, o PWM permaneceu com a mesma

    frequncia de chaveamento, porm passou a ter uma resoluo de at 18 bits. Cada

    passo do PWM correspondia a um acrscimo de 50s, porm com o circuito de atraso,

    passou-se a ter um acrscimo de 0,25s, que corresponde a um valor 200 vezes menor

    que o passo antigo. Com o osciloscpio em modo de persistncia infinita pde-se

    capturar a borda de descida do PWM, conforme visualizado na Fig.3.5.

    Figura 3.5 - PWM obtido a partir de 18 bits de resoluo

    Analisando a Fig.3.5 percebe-se que existe um espao inicial entre o sinal PWM

    gerado pelo microcontrolador e o sinal PWM de sada. Isto ocorre devido ao atrasoinicial do defasador, somado ao atraso da porta lgica OU. O atraso total chega a

  • 7/29/2019 pwm-motor DC

    44/54

    44

    aproximadamente 16s. Este atraso inicial influncia apenas nos casos extremos de

    Duty Cycle (Valor mximo e mnimo). Para o valor mnimo, o primeiro sinal de

    PWM dado depois de 66s, resultado da soma dos 50s do PWM e, 16s do circuito

    de atraso e porta lgica. Para o valor mximo, no se teria problema com este

    microcontrolador, pois o sinal PWM do microcontrolador nunca chega a 100% do

    ciclo de trabalho. Os valores que ultrapassariam acabam completando o espao que

    faltaria para chegar a 100%. Nas fontes de corrente nunca se trabalha nos casos

    extremos, o mesmo fica limitado entre aproximadamente 10% a 90% do ciclo de

    trabalho. Na Fig.3.5 existem 200 valores discretos de Duty Cycle (pela aproximao

    linear) em um intervalo de 50s, porm os passos de 0,25s no podem ser

    visualizados, pois o equipamento apresenta uma escala mnima horizontal de 2,5s. A

    Fig. 3.6 mostra os valores discretos de PWM para uma escala mnima.

    Figura 3.6 - PWM com passos de 0,25s

    Para testes prticos do PWM de 18 bits desenvolvido, foi acionado um IGBT

    que controlava a tenso/corrente entregue a uma carga RL, conforme Fig. 3.7.

    Figura 3.7Driver, IGBT e Carga RL (Bobina Corretora de rbita e Resistncias)

  • 7/29/2019 pwm-motor DC

    45/54

    45

    4. RESULTADOSPara anlise do comportamento da corrente em funo da variao do PWM

    foram realizadas medies, podendo-se assim determinar a corrente a cada passo dovalor de PWM atribudo.

    Considerando que para um PWM mximo se tem uma tenso entregue a carga

    de 30 Volts, cuja carga apresenta uma impedncia de 0,79, tem-se uma corrente

    mxima de 38A a partir da Eq.8.

    Sendo,

    I - Corrente da Carga;

    Z - Impedncia da Carga;

    V - Tenso de alimentao.

    Cada incremento do PWM deve apresentar uma variao de aproximadamente

    185A, obtida a partir da Eq. 9.

    Sendo,

    ImaxCorrente mxima da carga;

    Resoluo - obtida a partir dos 1023 passos do PWM (microcontrolador),

    multiplicado pelos 200 valores de defasagem entre 2 passos do PWM (

    microcontrolador), obtendo assim 204.600 valores.

    As medidas de corrente sobre a carga foram obtidas atravs de um DCCT, que

    realiza medida isolada da corrente. O DCCT possui uma relao de medida de

    20A/10V. Um multmetro de 6,5 dgitos de preciso modelo 34970A da HP foi

    utilizado para realizar a medio da tenso de sada do DCCT. O valor do PWM foi

    atualizado a cada 3 segundos, sendo realizada medidas com o multmetro a cada 0.5

    segundos, o que representa 6 medidas por ajuste do PWM. A corrente de sada em

    funo da variao do PWM pode ser visualizada na Fig. 4.1.

  • 7/29/2019 pwm-motor DC

    46/54

    46

    Figura 4.1 - Variao da corrente em funo da variao do PWM

    Analisando a Fig. 4.1 pode-se perceber que houve uma linearidade da corrente

    em funo da variao do PWM. Aplicando um zoom em determinada regio da reta

    pode-se verificar as medidas realizadas, bem como, a variao de corrente. A Fig. 4.2

    ilustra os detalhes da medio.

    Figura 4.2 - Zoom da variao de corrente em funo da variao do PWM

  • 7/29/2019 pwm-motor DC

    47/54

    47

    Analisando a Fig. 4.2 pode-se dizer que entre 0.8235A e 0.8245A obteve-se

    aproximadamente 6 passos completos de corrente, assim cada passo representa um

    acrscimo de aproximadamente 167 A, valor muito prximo ao calculado. Verifica-

    se que se repete a leitura da corrente de tempos em tempos, devido aproximao

    linear realizada no projeto, ou seja, o PWM no alterado para alguns valores de

    defasagem atribudos.

    Outro aspecto interessante de se analisar o comportamento da corrente de

    sada quando ocorre o incremento do sinal de PWM do microcontrolador. Com esta

    anlise possvel identificar se os 200 valores de atraso aproximados linearmente

    ficaram exatamente entre dois intervalos de 50s do PWM, sendo assim possvel

    verificar se a corrente de sada mantm sua monotonicidade.

    Conforme visto, o defasador possui um atraso total de 63,75s, que

    aproximado de forma linear, obtendo uma sada mxima de atraso de 50s. Assim

    todos os casos possveis de atraso so inseridos entre dois intervalos.

    Na prtica observou-se que, para alguns valores de incremento dos LSB do

    PWM, ocorria falta de monotonicidade, ou seja, em momentos a corrente decaia.

    A falta de monotonicidade encontrada pode ser visualizada na Fig. 4.3.

    O problema encontrado era causado pelos passos dos LSB do PWM, pois emalgumas combinaes dos LSB ocorria que o PWM aplicava um passo inferior aos

    50s esperados, diferena pequena, porm para esta aplicao apresentava um erro

    considervel. Quando o passo do PWM menor, a corrente de sada decai e

    posteriormente, comea a subir novamente.

    Para solucionar este problema foi necessrio realizar uma correo atravs da

    programao do microcontrolador.

    Foi atribudo para alguns valores de alterao dos LSB do microcontrolador umtempo maior de atraso, de forma a manter repetitividade e monotonicidade da corrente

    de sada. Aps correo foi analisado novamente atravs de medidas, e o resultados

    obtidos podem ser observados na Fig. 4.4.

    Com os sistemas analgicos de 16 bits, se obtm uma variao mnima de

    corrente de 579 A, valor relacionado aos 38A. Atravs do sistema proposto se

    consegue uma variao de 185A, que corresponde a um valor 3.2 vezes menor.

    Monotonicidadeum projeto monotnico se sua sada aumenta conforme a entrada binria incrementada de um valor para o prximo.

  • 7/29/2019 pwm-motor DC

    48/54

    48

    Figura 4.3 - Corrente de sada sem monotonicidade

    Figura 4.4 - Corrente de sada com monotonicidade aps correo

    Analisando a Fig. 4.4 pode-se verificar que aps correo a corrente

    apresentou monotonicidade na incrementao dos valores LSB do microcontrolador.

  • 7/29/2019 pwm-motor DC

    49/54

    49

    5. CONCLUSONeste projeto foi apresentada a implementao de um PWM de alta resoluo

    tendo como base o circuito de atraso DS 1020-25, que possibilita variar o sinal PWMem passos de 0,25s. O projeto proposto teve como base um PWM com resoluo de

    10 bits e frequncia mxima sem perda de resoluo de 19,531 KHz, que aps ser

    inserido o circuito de atraso, alcanou 18 bits de resoluo, permanecendo a

    frequncia constante.

    Aps prototipado o projeto foi interligado a um driver que, posteriormente,

    acionou uma chave do tipo IGBT que alimentava uma carga RL. Os dados enviados

    serialmente a partir de um programa desenvolvido em Matlab incrementava o valor de

    PWM, assim, pde-se verificar a variao de corrente sobre a carga de sada com a

    resoluo desejada.

    Os dados medidos atravs de um DCCT foram plotados, sendo assim possvel

    observar o comportamento da corrente de sada em funo desta variao, que ocorria

    a cada 3 segundos. Analisando as curvas plotadas, pde-se observar que a corrente de

    sada apresentou monotonicidade durante todo o tempo de medio, aps a correo

    devida a baixa preciso do PWM do microcontrolador.

    Aps as medies serem realizadas e analisadas, o projeto foi validado,

    apresentando melhoria significativa sobre os sistemas atuais, onde pode-se variar a

    corrente em passos 3.2 vezes menor que o passo encontrado nos sistemas atuais,

    correspondendo uma resoluo satisfatria.

    O projeto dever no futuro ser testado em um sistema de regulao digital, que

    atuar como o sistema de controle de uma fonte de corrente.

  • 7/29/2019 pwm-motor DC

    50/54

    50

    6. REFERNCIAS BIBLIOGRFICAS

    [1] Severo, L.C; Rodrigues, C; Furlan, R,S. Implementao de um Sistema Digital de

    Comunicao para Controle de uma Fonte de Corrente, disponvel em:

    http://bolsasdeverao.cnpem.org.br/wp-content/uploads/2010/08/RBV072010.pdf, acesso

    em fevereiro de 2011.

    [2] Rodrigues, C; Silva, , R; A Bipolar DC Power Supply Using Full-Bridge Topology

    as Active Shunt for Magnets, in Proc. Of COBEP, 2009.

    [3] Wikipdia, Matlab, disponvel em:

    http://pt.wikipedia.org/wiki/MATLAB, acesso em janeiro de 2011.

    [4] Wikipdia, Comunicao Serial - Padro RS232, disponvel em:

    http://pt.wikipedia.org/wiki/RS-232, acesso em janeiro de 2011.

    [5] Texas Instruments, Conversor MAX232 (Dual EIA-232), disponvel em:

    http://www.datasheetcatalog.org/datasheet/texasinstruments/max232.pdf, acesso em

    janeiro de 2011.

    [6] Microchip, Microcontrolador PIC16F877, disponvel em:

    http://www.datasheetcatalog.org/datasheets2/36/3629224_1.pdf, acesso em janeiro de

    2011.

    [7] Dallas Semiconductor, DS1020 (Programmable 8-Bit - Silicon Delay Line),

    disponvel em:

    http://pdf1.alldatasheet.com/datasheet-pdf/view/89485/DALLAS/DS1020.html, acesso

    em janeiro de 2011.

    [8] Philips, Porta Lgica 74HC/HCT32 (Quad 2-input OR gate), disponvel em:

    http://www.datasheetcatalog.org/datasheet/philips/74HC_HCT32_CNV_2.pdf, acesso em

    janeiro de 2011.

    [9] Franois Bouvet, Synchrotron Soleil, Design of the DC and AC Magnet Power

    Supplies for the Soleil Synchrotron Radiation Source, disponvel em:

    http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=4417565, acesso em janeiro de2011.

  • 7/29/2019 pwm-motor DC

    51/54

    51

    A. ANEXOAlgoritmo do Microcontrolador================================================================================ CONFIGURAO DO MICROCONTROLADOR ============================

    =========================================================================__CONFIG _CP_OFF & _CPD_OFF & _DEBUG_OFF & _LVP_OFF & _WRT_ENABLE_OFF &_BODEN_OFF & _PWRTE_ON & _WDT_OFF & _HS_OSC#INCLUDE ; MICROCONTROLADOR UTILIZADO

    ERRORLEVEL -302ERRORLEVEL -305ERRORLEVEL -306

    CBLOCK 0X20PACOTE_CHECKSUMPACOTE_PWM_MSB

    PACOTE_PWM_LSBPACOTE_ATRASOTESTEBYTEVALOR_LVALOR_HPACOTE_ATRASO_EQUACIONADOENDC

    #DEFINE BANK1 BSF STATUS,RP0#DEFINE BANK0 BCF STATUS,RP0#DEFINE PARALELA PORTD#DEFINE LIGADO PORTE,0

    ORG 0X0000GOTO CONFIGURACAO

    CONFIGURACAO

    CLRF PORTACLRF PORTBCLRF PORTCCLRF PORTDCLRF PORTE

    BANK1

    MOVLW B'11111111'MOVWF TRISAMOVLW B'11111111'MOVWF TRISBMOVLW B'10111011'MOVWF TRISCMOVLW B'00000000'MOVWF TRISDMOVLW B'00000000'MOVWF TRISEMOVLW .255MOVWF PR2MOVLW B'00100100'

    MOVWF TXSTAMOVLW .129

  • 7/29/2019 pwm-motor DC

    52/54

    52

    MOVWF SPBRG

    BANK0MOVLW B'10010000'MOVWF RCSTAMOVLW .0

    MOVWF CCPR1LMOVLW B'00001111'MOVWF CCP1CONMOVLW B'00000000'MOVWF CCP2CONMOVLW B'00000100'MOVWF T2CONBSF LIGADO

    LOOP

    ===================================================================================== RECEBIMENTO DE DADOS PELA SERIAL ===========================

    =========================================================================

    BTFSS PIR1,RCIF ; VERIFICA BUFFER DE RECEPO 0 VAZIOGOTO $-1MOVF RCREG,WMOVWF PACOTE_PWM_MSB

    BTFSS PIR1,RCIF ; VERIFICA BUFFER DE RECEPO 0 VAZIOGOTO $-1MOVF RCREG,WMOVWF PACOTE_PWM_LSB

    BTFSS PIR1,RCIF ; VERIFICA BUFFER DE RECEPO 0 VAZIO

    GOTO $-1MOVF RCREG,WMOVWF PACOTE_ATRASO

    BTFSS PIR1,RCIF ; VERIFICA BUFFER DEV RECEPO 0 VAZIOGOTO $-1MOVF RCREG,WMOVWF PACOTE_CHECKSUM

    ===================================================================================== CHECKSUM ===========================================================================================================================

    MOVFW PACOTE_PWM_MSBADDWF PACOTE_PWM_LSB,WADDWF PACOTE_ATRASO,WMOVWF TESTE ; IGNORA OS VALORES ACIMA DE 8 BITSMOVFW TESTESUBWF PACOTE_CHECKSUM,WADDLW .0BTFSS STATUS,Z ;RESULTADO DA OPERAO = 0 ??GOTO ERRO ;NO

    ;SIM

    MOVLW .255 ;ENVIA 255 P/ A INTERFACE, CORRETO !!CALL TRANSMITE_TX

    CALL EQUACIONAMENTO

  • 7/29/2019 pwm-motor DC

    53/54

    53

    ===================================================================================== ATUALIZANDO PWM ====================================================================================================================

    MOVFW PACOTE_PWM_LSBSUBLW .3

    BTFSC STATUS,Z ;RESULTADO DA OPERAO = 0 ??GOTO PASSO_150NS ;SIM;NO

    MOVFW PACOTE_PWM_LSBSUBLW .2BTFSC STATUS,Z ;RESULTADO DA OPERAO = 0 ??GOTO PASSO_100NS ;SIM

    ;NOMOVFW PACOTE_PWM_LSBSUBLW .1BTFSC STATUS,Z ;RESULTADO DA OPERAO = 0 ??GOTO PASSO_50NS ;SIM

    ;NOMOVFW PACOTE_PWM_LSBSUBLW .0BTFSC STATUS,Z ;RESULTADO DA OPERAO = 0 ??GOTO PASSO_PWM ;SIM

    ;NO

    PASSO_PWM

    BCF CCP1CON,5BCF CCP1CON,4MOVFW PACOTE_PWM_MSBMOVWF CCPR1L

    MOVFW PACOTE_ATRASO_EQUACIONADOMOVWF PARALELAGOTO LOOP

    PASSO_50NS

    BCF CCP1CON,5BSF CCP1CON,4MOVFW PACOTE_PWM_MSBMOVWF CCPR1LMOVFW PACOTE_ATRASO_EQUACIONADOMOVWF PARALELAGOTO LOOP

    PASSO_100NS

    BSF CCP1CON,5BCF CCP1CON,4MOVFW PACOTE_PWM_MSBMOVWF CCPR1LMOVFW PACOTE_ATRASO_EQUACIONADOMOVWF PARALELAGOTO LOOP

    PASSO_150NS

    BSF CCP1CON,5BSF CCP1CON,4

  • 7/29/2019 pwm-motor DC

    54/54

    MOVFW PACOTE_PWM_MSBMOVWF CCPR1LMOVFW PACOTE_ATRASO_EQUACIONADOMOVWF PARALELAGOTO LOOP

    ERRO MOVLW .0 ; ENVIA 0 P/ INTERFACE, ERRO !!CALL TRANSMITE_TXGOTO LOOP

    TRANSMITE_TXBANK1BTFSS TXSTA,TRMTGOTO $-1BANK0MOVWF TXREG

    RETURN

    ===================================================================================== APROXIMACAO LINEAR =================================================================================================================

    EQUACIONAMENTO

    MOVFW PACOTE_ATRASOMOVWF BYTECLRF VALOR_HCLRF VALOR_LMOVLW .200MOVWF CONT100MOVFW BYTE

    ADDWF VALOR_LDECF CONT100BTFSC STATUS,CINCF VALOR_HMOVFW CONT100BTFSS STATUS,ZGOTO $-.7MOVFW VALOR_HMOVWF PACOTE_ATRASO_EQUACIONADO

    RETURN

    END ; FIM DO PROGRAMA