113
APOSTILA DE MICROCONTROLADORES PIC E PEFIFÉRICOS www.tinyurl.com/SanUSB APOSTILA DE MICROCONTROLADORES PIC E PERIFÉRICOS FERRAMENTA SanUSB Sandro Jucá Renata Pereira

145597098 Apostila Microcontroladores PIC CEPEP

Embed Size (px)

Citation preview

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS www.tinyurl.com/SanUSB

    APOSTILA DE MICROCONTROLADORES

    PIC E PERIFRICOS

    FERRAMENTA SanUSB

    Sandro Juc

    Renata Pereira

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    2

    Contedo

    1 INTRODUO ...................................................................................................................................... 8

    1.1 ASSEMBLY X LINGUAGEM C ........................................................................................................... 8

    1.2 VANTAGENS X DESVANTAGENS DA LINGUAGEM C PARA MICROCONTROLADORES ........ 10

    1.3 ARQUITETURAS DOS MICROCONTROLADORES ....................................................................... 10

    1.4 O CONTADOR DE PROGRAMA (PC) ............................................................................................. 11

    1.5 BARRAMENTOS ............................................................................................................................... 11

    1.6 A PILHA (STACK) ............................................................................................................................. 12

    1.7 CICLO DE MQUINA ...................................................................................................................... 12

    1.8 MATRIZ DE CONTATOS OU PROTOBOARD ................................................................................ 13

    1.9 RESISTORES ..................................................................................................................................... 14

    1.10 CAPACITORES ............................................................................................................................. 15

    1.11 FONTES DE ALIMENTAO ...................................................................................................... 17

    1.12 RUDO (BOUNCING) E FILTRO (DEBOUNCING) ................................................................... 17

    1.13 PROTOCOLO DE COMUNICAO USB ................................................................................... 18

    1.14 MTODOS DE COMUNICAO USB ........................................................................................ 18

    2 FERRAMENTA SanUSB .................................................................................................................... 20

    2.1 GRAVAO COM O SanUSB ........................................................................................................... 21

    2.2 GRAVANDO O MICROCONTROLADOR VIA USB NO WINDOWS ............................................... 26

    2.3 EXERCCIO 1: .................................................................................................................................. 27

    2.4 EXERCCIO 2: .................................................................................................................................. 29

    2.5 GRAVAO WIRELESS DE MICROCONTROLADORES ............................................................... 31

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    3

    2.5.1 ZIG BEE .............................................................................................................................................. 31

    2.5.2 BLUETOOTH ..................................................................................................................................... 35

    2.6 SISTEMA DUAL CLOCK .................................................................................................................. 39

    2.7 SanUSB CDC EMULAO DE COMUNICAO SERIAL NO WINDOWS ................................ 39

    2.8 SISTEMA DUAL CLOCK .................................................................................................................. 46

    3 INTERRUPES E TEMPORIZADORES ..................................................................................... 47

    3.1 INTERRUPES .............................................................................................................................. 47

    3.2 INTERRUPES EXTERNAS .......................................................................................................... 48

    3.3 INTERRUPO DOS TEMPORIZADORES .................................................................................... 49

    3.4 PROGRAMA COM INTERRUPO EXTERNA POR BOTO E TIMER 1 ..................................... 50

    3.5 EXERCCIO 3: .................................................................................................................................. 51

    3.6 CIRCUITO COM84 PARA GRAVAO DO gerenciador.hex ......................................................... 53

    4 ACIONAMENTO DE MOTORES MICROCONTROLADOS ...................................................... 56

    4.1 ACIONAMENTO DE MOTORES CC DE BAIXA TENSO ............................................................. 56

    4.1.1 MOTORES DE EQUIPAMENTOS ELETRNICOS .................................................................... 56

    4.1.2 MOTORES ELTRICOS UTILIZADOS EM AUTOMVEIS ....................................................... 57

    4.1.3 COROA E O PARAFUSO COM ROSCA SEM-FIM ..................................................................... 58

    4.2 EXEMPLO: SEGUIDOR TICO DE LABIRINTO ........................................................................... 59

    4.3 PONTE H........................................................................................................................................... 60

    4.4 SOLENIDES E RELS ................................................................................................................... 60

    4.5 EXERCCIO 4: .................................................................................................................................. 62

    4.6 EXERCCIO 5: .................................................................................................................................. 64

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    4

    4.6.1 DRIVER DE POTNCIA ULN2803 .............................................................................................. 65

    4.6.2 PONTE H COM MICRORELS ................................................................................................... 65

    5 EMULAO DE DECODIFICADOR PARA DISPLAY DE 7 SEGMENTOS ............................ 66

    5.1 MULTIPLEXAO COM DISPLAYS DE 7 SEGMENTOS .............................................................. 72

    5.2 EXERCCIO 6: .................................................................................................................................. 73

    6 SENSORES INFRAVERMELHOS ................................................................................................... 75

    6.1 TRANSMISSOR E RECEPTOR IR ................................................................................................... 75

    6.2 EXERCCIO 7: ...................................................................................................................................... 76

    6.3 AUTOMAO E DOMTICA COM CONTROLE REMOTO UNIVERSAL .................................... 78

    7 LCD (DISPLAY DE CRISTAL LQUIDO) ...................................................................................... 80

    7.1 EXEMPLO: CONTROLE DE TENSO DE UMA SOLDA CAPACITIVA COM LCD ..................... 84

    7.2 OBTENO DE UM VOLTMETRO ATRAVS DO CONVERSOR AD COM A VARIAO DE UM

    POTENCIMETRO ................................................................................................................................................ 86

    8 CONVERSOR A/D .............................................................................................................................. 88

    8.1 AJUSTE DE RESOLUO DO SENSOR E DO CONVERSOR AD DE 8 BITS ............................... 89

    8.2 AJUSTE DA TENSO DE REFERNCIA COM POTENCIMETRO ............................................. 90

    8.3 CONVERSOR AD DE 10 BITS .......................................................................................................... 90

    8.4 OBTENO DE UM VOLTMETRO ATRAVS DO CONVERSOR AD COM A VARIAO DE UM

    POTENCIMETRO ................................................................................................................................................ 90

    8.5 EXERCCIO 8: .................................................................................................................................. 91

    9 LDR E LM35 ........................................................................................................................................ 93

    9.1 EXEMPLO: MODELAGEM DE LUXMETRO MICROCONTROLADO COM LDR ....................... 93

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    5

    9.1.1 SUPERVISRIO ........................................................................................................................... 97

    9.2 EXERCCIO 9: .................................................................................................................................. 98

    10 REFERNCIAS BIBLIOGRFICAS ............................................................................................. 101

    11 APNDICE I: FUNES SanUSB .................................................................................................. 101

    11.1 FUNES BSICAS DA APLICAO DO USURIO ............................................................. 102

    11.2 FUNES DO CONVERSOR ANALGICO DIGITAL (A/D) ................................................... 105

    12 APNDICE II: AMBIENTES DE INTERFACE DELPHI E C++BUILDER ............................. 106

    12.1 COMO CRIAR UMA COMUNICAO BIDIRECIONAL ENTRE O AMBIENTE DELPHI E O

    PIC SANUSB USANDO O CPORT ....................................................................................................................... 107

    12.2 SUPERVISRIO EM DELPHI PARA CONTROLAR TRS LEDS............................................. 111

    NDICE DE FIGURAS Figura 1. 1: Instrues em assembly. ............................................................................................... 9 Figura 1. 2: Memrias. ................................................................................................................... 11 Figura 1. 3: Ciclo de mquina. ....................................................................................................... 12 Figura 1. 4: Protoboard. ................................................................................................................. 13 Figura 1. 5: Contatos internos de uma protoboard. ........................................................................ 14 Figura 1. 6: Cdigo de cores de resistores. .................................................................................... 15 Figura 1. 7: Forma de onda de capacitor........................................................................................ 16 Figura 1. 8: Exemplos de Capacitores. .......................................................................................... 16 Figura 1. 9: Clculo demonstrativo de capacitncia. ..................................................................... 16 Figura 1. 10: Cdigo de cores Capacitores Polister. .................................................................... 17 Figura 1. 11: Rudo. ....................................................................................................................... 18 Figura 1. 12: Drivers e comunicao. ............................................................................................ 19

    Figura 2. 1: Gravao do PIC via PC. ............................................................................................ 21 Figura 2. 2: Esquemtico de montagem da Ferramenta SanUSB - PIC18F2550. ......................... 22 Figura 2. 3: Esquemtico de montagem da Ferramenta SanUSB PIC18F4550. ........................ 23 Figura 2. 4: Esquema montado em protoboard e conector USB.................................................... 24

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    6

    Figura 2. 5: Esquema montado em PCB. ....................................................................................... 25 Figura 2. 6: Exemplo de PCB da Ferramenta SanUSB. ................................................................ 25 Figura 2. 7: Interface de gravao do PIC. .................................................................................... 27 Figura 2. 8: Esquemtico Exerccio 1. ........................................................................................... 29 Figura 2. 9: Esquemtico Exerccio 2. ........................................................................................... 31 Figura 2. 10: Circuito de Gravao com Modem Zig Bee Xbee ................................................... 32 Figura 2. 11: Circuito de Gravao com Mdulo Bluetooth ......................................................... 35 Figura 2. 12: Comunicao PIC com PC e via I2C. ....................................................................... 39 Figura 2. 13: Instalao do driver CDC (1). .................................................................................. 41 Figura 2. 14: Instalao do driver CDC (2). .................................................................................. 42 Figura 2. 15: Instalao do driver CDC (3). .................................................................................. 42 Figura 2. 16: Instalao do driver CDC (4). .................................................................................. 43 Figura 2. 17: Instalao do driver CDC (5). .................................................................................. 43 Figura 2. 18: Verificao de porta COM instalada. ....................................................................... 44 Figura 2. 19: Utilizao da porta COM pelo CCS. ........................................................................ 44 Figura 2. 20: Visualizao de textos via serial emulada. ............................................................... 45 Figura 2. 21: Interface em Java de comunicao serial. ................................................................ 46 Figura 2. 22: Comunicao PIC com PC e via I2C. ....................................................................... 47

    Figura 3. 1: Esquemtico Exerccio 3. ........................................................................................... 53 Figura 3. 2: Circuito COM84 para gravao do gerenciador.hex .................................................. 54 Figura 3. 3: Esquema de ligao do conector serial. ..................................................................... 54 Figura 3. 4: Tela de configurao do software de gravao. ......................................................... 55 Figura 3. 5: Tela de confirmao de reconhecimento do circuito. ................................................. 55

    Figura 4. 1: Motor de passo. .......................................................................................................... 56 Figura 4. 2: Motor CC. ................................................................................................................... 56 Figura 4. 3: Motor CC com caixa de reduo. ............................................................................... 57 Figura 4. 4: Relao de transmisso. ............................................................................................. 57 Figura 4. 5: Coroa e sem-fim. ........................................................................................................ 58 Figura 4. 6: Situaes encontradas em labirintos. ......................................................................... 59 Figura 4. 7: Motor em Ponte H. ..................................................................................................... 60 Figura 4. 8: Solenide. ................................................................................................................... 60 Figura 4. 9: Rels. .......................................................................................................................... 61 Figura 4. 10: Acionamento de motor 12V com rel bobina 5V. ................................................... 61 Figura 4. 11: Esquemtico Exerccio 4. ......................................................................................... 63 Figura 4. 12: Aplicao de um rel. ............................................................................................... 64 Figura 4. 13: ULN 2803. ................................................................................................................ 65 Figura 4. 14: Acionamento de motor nos 2 sentidos com rels em Ponte H. ................................ 66

    Figura 5. 1: Display de 7 segmentos e conexo interna. ................................................................ 67

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    7

    Figura 5. 2: Conexo do display 7 seg na porta B do PIC. ............................................................ 69 Figura 5. 3: Multiplexao de display 7 segmentos. ...................................................................... 73 Figura 5. 4: Esquemtico Exerccio 6. ........................................................................................... 75

    Figura 6. 1: Conexo do par infravermelho: TIL 32 (emissor) e TIL 78 (receptor). ..................... 76 Figura 6. 2: Diagrama de blocos de comunicao infravermelha. ................................................. 78 Figura 6. 3: Conexo de receptor infravermelho de TV no PIC. ................................................... 79 Figura 6. 4: Exemplo de proteo do receptor contra emisses externas de raios IR.................... 80

    Figura 7. 1: Conexo do LCD no PIC. .......................................................................................... 81 Figura 7. 2: Exemplo de aplicao do LCD. .................................................................................. 85 Figura 7. 3: Uso de potencimetro no conversor AD do PIC. ....................................................... 87

    Figura 8. 1: Diagrama de blocos interno do conversor A/D. ......................................................... 88 Figura 8. 2: Uso de perifricos no conversor A/D. ........................................................................ 89 Figura 8. 3: Conexo do potencimetro no conversor A/D. .......................................................... 91 Figura 8. 4: Leitura de temperatura via monitor serial. ................................................................. 92 Figura 8. 5: Esquemtico Exerccio 8. ........................................................................................... 93

    Figura 9. 1: Circuito sensor com LDR. .......................................................................................... 94 Figura 9. 2: Grfico Lux x Volt. .................................................................................................... 94 Figura 9. 3: Modelagem matemtica dos valores obtidos. ............................................................ 95 Figura 9. 4: Grfico lux x tenso utilizando as equaes 3, 4 e 5. ................................................. 96 Figura 9. 5: Figura da tela do supervisrio para Iluminncia e Temperatura. ............................... 97 Figura 9. 6: Esquema eletrnico do circuito luxmetro................................................................. 97 Figura 9. 7: Foto do circuito montado. ......................................................................................... 98 Figura 9. 8: Esquemtico Exerccio 9. ......................................................................................... 100

    Figura 11. 1: Interface em Delphi para comunicar via serial. ...................................................... 107 Figura 11. 2: Selecionando a porta COM virtual. ........................................................................ 109 Figura 11. 3: Testando a comunicao. ....................................................................................... 110 Figura 11. 4: Teste de comunicao inserindo jump em porta serial........................................... 111 Figura 11. 5: Interface em Delphi para acessar 3 LEDS. ............................................................ 111

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    8

    1 INTRODUO

    Um microcontrolador um sistema computacional completo, no qual esto includos internamente uma CPU (Central Processor Unit), memrias RAM (dados), flash (programa) e E2PROM, pinos de I/O (Input/Output), alm de outros perifricos internos, tais como, osciladores, canal USB, interface serial assncrona USART, mdulos de temporizao e conversores A/D, entre outros, integrados em um mesmo componente (chip).

    O microcontrolador PIC (Periferal Interface Controler), da Microchip Technology Inc.

    (empresa de grande porte, em Arizona, nos Estados Unidos da Amrica), possui uma boa diversidade de recursos, capacidades de processamento, custo e flexibilidade de aplicaes.

    1.1 ASSEMBLY X LINGUAGEM C

    A principal diferena entre uma linguagem montada (como assembly) e a linguagem de programao C est na forma como o programa objeto (HEX) gerado. Em assembly, o processo usado a montagem, portanto devemos utilizar um MONTADOR (assembler), enquanto que em linguagem C o programa compilado. A compilao um processo mais complexo do que a montagem. Na montagem, uma linha de instruo traduzida para uma instruo em cdigo de mquina. J em uma linguagem de programao, no existem linhas de instruo, e sim estruturas de linguagem e expresses. Uma estrutura pode ser condicional, incondicional, de repetio, etc...

    As expresses podem envolver operandos e operadores mais complexos. Neste caso, geralmente, a locao dos registros de dados da RAM feita pelo prprio compilador. Por isso, existe a preocupao, por paret do compilador, de demonstrar, aps a compilao, o percentual de memria RAM ocupado, pois neste caso relevante, tendo em vista que cada varivel pode ocupar at 8 bytes (tipo double).

    Para edio e montagem (gerao do cdigo HEX) de um programa em assembly, os softwares mais utilizados so o MPASMWIN (mais simples) e o MPLAB. Para edio e compilao em linguagem C (gerao do cdigo HEX), o programa mais utilizado o PIC C Compiler CCS.

    Os microcontroladores PIC possuem apenas 35 instrues em assembly para a famlia de 12 bits (PIC12) e 14 bits (PIC16), descritas nas tabelas abaixo, e 77 instrues para a famlia de 16 bits (PIC18). A tabela abaixo mostra algumas instrues em assembly.

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    9

    Figura 1. 1: Instrues em assembly.

    Como pode ser visto, a famlia PIC16F (14 bits com aproximadamente 35 instrues) no

    possui uma instruo em assembly que realize multiplicao ou diviso de dois operandos, o que curiosamente presente na linguagem assembly da famlia MCS51 (256 instrues que satisfazem a maioria das aplicaes industriais). Portanto, para realizar uma multiplicao, necessrio realizar somas sucessivas, ou seja, em vez de multiplicar uma varivel por outra, realizar somas de uma varivel em uma terceira rea de memria, tantas vezes quando for o valor da segunda varivel. (X * 5 = X + X + X + X + X).

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    10

    Mas em linguagem C possvel se utilizar o operador de multiplicao (*), de forma simples e prtica. Ao compilar, a linguagem gerada ir converter a multiplicao em somas sucessivas sem que o programador se preocupe com isso.

    1.2 VANTAGENS X DESVANTAGENS DA LINGUAGEM C PARA MICROCONTROLADORES

    - O compilador C ir realizar o processo de traduo, permitindo uma programao mais amigvel e mais fcil para desenvolvimento de aplicaes mais complexas como, por exemplo, uso do canal USB e aplicaes com o protocolo I2C. - A linguagem C permite maior portabilidade, uma vez que um mesmo programa pode ser recompilado para um microcontrolador diferente, com o mnimo de alteraes, ao contrrio do ASSEMBLY, onde as instrues mudam muito entre os diversos modelos de microcontroladores existentes como PIC e 8051. - Em C para microcontroladores PIC, no necessrio se preocupar com a mudana de banco para acessar os registros especiais da RAM como, por exemplo, as portas de I/O e os registros TRIS de comando de I/O dos pinos, isto executado pelo prprio compilador atravs das bibliotecas. - possvel incluir, de forma simples e padronizada, outro arquivo em C (biblioteca) para servir como parte do seu programa atual como, por exemplo, incluir o arquivo LCD (#include ), desenvolvido por voc anteriormente. - O ponto fraco da compilao em C que o cdigo gerado, muitas vezes, maior do que um cdigo gerado por um montador (assembler), ocupando uma memria maior de programa e tambm uma memria maior de dados. No entanto, para a maioria das aplicaes sugeridas na rea de automao industrial, a linguagem C para PIC se mostra a mais adequada, tendo em vista que a memria de programa tem espao suficiente para estas aplicaes. - Outra desvantagem que o programador no forado a conhecer as caractersticas internas do hardware, j que o mesmo se acostuma a trabalhar em alto nvel, o que compromete a eficincia do programa e tambm o uso da capacidade de todos os perifricos internos do microcontrolador. Isso provoca, em alguns casos, o aumento do custo do sistema embarcado projetado com a aquisio de novos perifricos externos.

    1.3 ARQUITETURAS DOS MICROCONTROLADORES

    A arquitetura de um sistema digital define quem so e como as partes que compe o sistema esto interligadas. As duas arquiteturas mais comuns para sistemas computacionais digitais so as seguintes:

    - Arquitetura de Von Neuman: A Unidade Central de Processamento interligada memria por um nico barramento (bus). O sistema composto por uma nica memria onde so armazenados dados e instrues; - Arquitetura de Harvard: A Unidade Central de Processamento interligada a memria de dados e a memria de programa por barramentos diferentes, de dados e de endereo. O PIC possui arquitetura Harvard com tecnologia RISC, que significa Reduced Instruction Set Computer (Computador com Conjunto de Instrues Reduzido). O barramento de dados de 8 bits e o de endereo pode variar de 13 a 21 bits dependendo do modelo. Este tipo de arquitetura

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    11

    permite que, enquanto uma instruo executada, uma outra seja buscada na memria, ou seja, um PIPELINE (sobreposio), o que torna o processamento mais rpido.

    1.4 O CONTADOR DE PROGRAMA (PC)

    O contador de programa responsvel de indicar o endereo da memria de programa para que seu contedo seja transportado para a CPU para ser executado. Na famlia PIC16F ele contm normalmente 13 bits, por isso, pode enderear os 8K words de 14 bits (o PIC16F877A possui exatamente 8K words de 14 bits, ou seja, 14 Kbytes de memria de programa). A famlia 18F ele possui normalmente 21 bits e capaz e enderear at 2 Megas words de 16 bits (o PIC18F2550 possui 16K words de 16 bits, ou seja, 32 Kbytes de memria de programa). Cada Word de 14 ou 16 bits pode conter um cdigo de operao (opcode) com a instruo e um byte de dado.

    1.5 BARRAMENTOS

    Um barramento um conjunto de fios que transportam informaes com um propsito comum. A CPU pode acessar trs barramentos: o de endereo, o de dados e o de controle. Como foi visto, cada instruo possui duas fases distintas: o ciclo de busca, quando a CPU coloca o contedo do PC no barramento de endereo e o contedo da posio de memria colocado no Registro de instruo da CPU, e o ciclo de execuo, quando a CPU executa o contedo colocado no registro de instruo e coloca-o na memria de dados pelo barramento de dados. Isso significa que quando a operao do microcontrolador iniciada ou resetada, o PC carregado com o endereo 0000h da memria de programa.

    Figura 1. 2: Memrias.

    As instrues de um programa so gravadas em linguagem de mquina hexadecimal na memria de programa flash (ROM). No incio da operao do microcontrolador, o contador de programa (PC) indica o endereo da primeira instruo da memria de programa, esta instruo carregada, atravs do barramento de dados, no Registro de Instruo da CPU.

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    12

    Um opcode (cdigo de instruo), gerado na compilao em hexadecimal, contm uma instruo e um operando. No processamento, a CPU compara o cdigo da instruo alocada no registro de instruo com o Set de Instrues do modelo fabricado e executa a funo correspondente. Aps o processamento, o operando dessa instruo indica para a CPU qual a posio da memria de dados que deve ser acessada e, atravs do barramento de controle, a CPU comanda a leitura ou a escrita nesta posio.

    Aps o processamento de uma instruo, o PC incrementado para indicar o endereo do prximo cdigo de instruo (opcode), da memria de programa, que deve ser carregado no registro de instruo.

    1.6 A PILHA (STACK)

    A pilha um local da RAM ( no PIC18F2550 localizada no final dos Registros de Funo Especial entre FFDh e FFFh) onde guardado o endereo da memria de programa antes de ser executado um pulo ou uma chamada de funo localizada em outra posio de memria.

    1.7 CICLO DE MQUINA

    O oscilador externo (geralmente um cristal) ou o interno (circuito RC) usado para fornecer um sinal de clock ao microcontrolador. O clock necessrio para que o microcontrolador possa executar as instrues de um programa. Nos microcontroladores PIC, um ciclo de mquina (CM) possui quatro fases de clock que so Q1, Q2, Q3 e Q4. Dessa forma, para um clock externo de 4MHz, temos um ciclo de mquina (CM=4 x 1/F) igual a 1s.

    Figura 1. 3: Ciclo de mquina.

    O Contador de Programa (PC) incrementado automaticamente na fase Q1 do ciclo de mquina e a instruo seguinte resgatada da memria de programa e armazenada no registro de

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    13

    instrues da CPU no ciclo Q4. Ela decoficada e executada no prximo ciclo, no intervalo de Q1 e Q4. Essa caracterstica de buscar a informao em um ciclo de mquina e execut-la no prximo, ao mesmo tempo em que outra instruo buscada, chamada de PIPELINE (sobreposio). Ela permite que quase todas as instrues sejam executadas em apenas um ciclo de mquina, gastando assim 1 s (para um clock de 4 MHz) e tornando o sistema muito mais rpido. As nicas exees referem-se s instrues que geram saltos no contador de programa, como chamadas de funes em outro local da memria de programa e os retornos dessas funes.

    1.8 MATRIZ DE CONTATOS OU PROTOBOARD

    Para desenvolver os projetos e exerccos propostos nessa apostila ser necessrio a uilizao de uma Matriz de Contatos (ou Protoboard em ingls), mostrada na figura abaixo, que uma placa com diversos furos e conexes condutoras para montagem de circuitos eletrnicos. A grande vantagem do Protoboard na montagem de circuitos eletrnicos a facilidade de insero de componentes (no necessita soldagem).

    Figura 1. 4: Protoboard.

    Na superfcie de uma matriz de contatos h uma base de plstico em que existem centenas de orifcios onde so encaixados os componentes ou tambm por ligaes mediante fios. Em sua parte inferior so instalados contatos metlicos que interliga eletricamente os componentes inseridos na placa que so organizados em colunas e canais. De cada lado da placa, ao longo de seu comprimento, h duas colunas completas. H um espao livre no meio da placa e de cada lado desse espao h vrios grupos de canais horizontais (pequenas fileiras), cada um com 05 orifcios de acordo como ilustrado na figura abaixo.

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    14

    Figura 1. 5: Contatos internos de uma protoboard.

    Em alguns pontos do circuito necessrio limitar a intensidade da corrente eltrica. Para fazer isso utilizamos um componente chamado resistor. Quanto maior a resistncia, menor a corrente eltrica que passa num condutor.

    1.9 RESISTORES

    Os resistores geralmente so feitos de carbono. Para identificar qual a resistncia de um resistor especfico, comparamos ele com a seguinte tabela:

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    15

    Figura 1. 6: Cdigo de cores de resistores.

    1.10 CAPACITORES

    Capacitor ou condensador um componente que armazena energia num campo eltrico. consistem em dois eletrodos ou placas que armazenam cargas opostas. Estas duas placas so condutoras e so separadas por um isolante ou por um dieltrico. Eles so utilizados desde armazenar bits nas memrias volteis dinmicas (DRAM) dos computadores, at corrigir o fator de potncia de indstrias fornecendo reatncia capacitiva para compensar a reatncia indutiva provocada por bobinas e motores eltricos de grande porte.

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    16

    A funo mais comum filtrar rudos em circuitor eltricos e estabilizar as fontes, absorvendo os picos e preenchendo os vales de tenso. Os capacitores descarregados so um curto e carregados abrem o circuito, por isso so utilizados tambm para isolar fontes CC.

    Figura 1. 7: Forma de onda de capacitor.

    Os capacitores podem ser carregados e descarregados muito rapidamente, por isso so utilzados tambm no flash eletrnico em uma cmera fotogrfica, onde pilhas carregam o capacitor do flash durante vrios segundos, e ento o capacitor descarrega toda a carga no bulbo do flash quase que instantaneamente gerando o alto brilho. Isto pode tornar um capacitor grande e carregado extremamente perigoso. Eles so utilizados tambm em paralelo com motores eltricos para fornecer energia para que as bobinas energizadas possam vencer a inrcia quando os motores so ligados.

    As Unidades de Medida de capacitncia so Farad (F), Microfarad (F), Nanofarad (nF) e Picofarad (pF). Os capacitores mais comuns so os eletrolticos, lstrados na figura abaixo, os cermicos e os de polister.

    Figura 1. 8: Exemplos de Capacitores.

    A figura abaixo mostra a identificao de capacitores cermicos.

    Figura 1. 9: Clculo demonstrativo de capacitncia.

    A figura abaixo mostra a identificao de capacitores de polister.

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    17

    Figura 1. 10: Cdigo de cores Capacitores Polister.

    1.11 FONTES DE ALIMENTAO

    As fontes mais comuns em sistemas embarcados com microcontroladores so baterias recarregveis ou conversores CA-CC como carregadores de celulares. As baterias ou pilhas so dispositivos que armazenam energia qumica e a torna disponvel na forma de energia eltrica.

    A capacidade de armazenamento de energia de uma bateria medida atravs da multiplicao da corrente de descarga pelo tempo de autonomia, sendo dado em ampre-hora (1 Ah= 3600 Coulombs). Deve-se observar que, ao contrrio das baterias primrias (no recarregveis), as baterias recarregveis no podem ser descarregadas at 0V pois isto leva ao final prematuro da vida da bateria. Na verdade elas tm um limite at onde podem ser descarregadas, chamado de tenso de corte. Descarregar a bateria abaixo deste limite reduz a vida til da bateria.

    As baterias ditas 12V, por exemplo, devem operar de 13,8V (tenso a plena carga), at 10,5V (tenso de corte), quando 100% de sua capacidade ter sido utilizada, e este o tempo que deve ser medido como autonomia da bateria. Como o comportamento das baterias no linear, isto , quando maior a corrente de descarga menor ser a autonomia e a capacidade, no correto falar em uma bateria de 100Ah. Deve-se falar, por exemplo, em uma bateria 100Ah padro de descarga 20 horas, com tenso de corte 10,5V. Esta bateria permitir descarga de 100 / 20 = 5A durante 20 horas, quando a bateria ir atingir 10,5V.

    Outro fator importante a temperatura de operao da bateria, pois sua capacidade e vida til dependem dela. Usualmente as informaes so fornecidas supondo T=25C ou T=20C, que a temperatura ideal para maximizar a vida til.

    1.12 RUDO (BOUNCING) E FILTRO (DEBOUNCING)

    Em operaes de Liga/Desliga e mudana de nvel lgico, surge um rudo (Bouncing) na transio que, caso uma interrupo esteja habilitada ou at mesmo um contador de evento, pode

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    18

    provocar vrias interrupes ou contagens. As formas mais comuns de filtro (Debouncing) so via software, programando um tempo (em torno de 100ms, dependendo da chave) aps as transies, de modo a eliminar o rudo antes de efetuar uma instruo, ou via hardware, utilizando um capacitor de filtro em paralelo com a chave.

    Figura 1. 11: Rudo.

    1.13 PROTOCOLO DE COMUNICAO USB

    A USB, sigla para Universal Serial Bus, o padro de interface para perifricos externos ao computador provavelmente mais popular dos j criados. Um sistema USB composto por hardware mestre e escravo. O mestre chamado de host e o escravo denomina-se dispositivo ou simplesmente perifrico. Todas as transferncias USB so administradas e iniciadas pelo host. Mesmo que um dispositivo queira enviar dados, necessrio que o host envie comandos especficos para receb-los.

    A fase de preparao, conhecida como enumerao, acontece logo depois de quando o dispositivo USB fisicamente conectado ao computador. Nesse momento, o sistema operacional realiza vrios pedidos ao dispositivo para que as caractersticas de funcionamento sejam reconhecidas. O sistema operacional, com a obtida noo do perifrico USB, atribui-lhe um endereo e seleciona a configurao mais apropriada de acordo com certos critrios. Com mensagens de confirmao do dispositivo indicando que essas duas ltimas operaes foram corretamente aceitas, a enumerao finalizada e o sistema fica pronto para o uso.

    1.14 MTODOS DE COMUNICAO USB

    Os mtodos mais comuns de comunicao USB, tambm utilizados pela ferramenta SanUSB, so:

    Human Interface Device (HID) - O dispositivo USB reconhecido automaticamente pelo sistema operacional windows ou linux como um Dispositivo de Interface Humana (HID), no sendo necessrio a instalao de driver especiais para a aplicao. Este mtodo apresenta velocidade de comunicao de at 64 kB/s e utilizado pelo gerenciador de gravao da

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    19

    ferramenta SanUSB no linux. Mais detalhes na video-aula disponvel em http://www.youtube.com/watch?v=h6Lw2qeWhlM .

    Communication Device Class (CDC) Basicamente o driver emula uma porta COM, fazendo com que a comunicao entre o software e o firmware seja realizada como se fosse uma porta de comunicao serial padro. o mtodo mais simples de comunicao bidirecional com velocidade de comunicao de at 115 kbps, ou seja, aproximadamente 14,4 kB/s. Mais detalhes em uma aplicao Windows com protocolo Modbus RTU http://www.youtube.com/watch?v=KUd1JkwGJNk e em uma aplicao de comunicao bidirecional no Linux http://www.youtube.com/watch?v=cRW99T_qa7o.

    Mass Storage Device (MSD) - Mtodo customizado para dispositivos de armazenamento em massa que permite alta velocidade de comunicao USB, limitado apenas pela prpria velocidade do barramento USB 2.0 (480 Mbps). Este mtodo utilizado por pen-drives, scanners, cmeras digitais. Foi utilizado juntamente com a ferramenta SanUSB para comunicao com software de superviso programado em Java. Mais detalhes na video-aula disponvel em http://www.youtube.com/watch?v=Ak9RAl2YTr4.

    Como foi visto, a comunicao USB baseada em uma central (host), onde o computador enumera os dispositivos USB conectados a ele. Existem trs grandes classes de dispositivos comumente associados a USB: dispositivos de interface humana (HID), classe de dispositivos de comunicao (CDC) e dispositivos de armazenamento em massa (MSD). Cada uma dessas classes j possui um driver implementado na maioria dos sistemas operacionais. Portanto, se adequarmos o firmware de nosso dispositivo para ser compatvel com uma dessas classes, no haver necessidade de implementar um driver.

    Figura 1. 12: Drivers e comunicao.

    Nos sitemas operacionais Windows e Linux, o modo mais fcil de comunicar com o PIC USB o CDC, por uma razo simples, os programas para PCs so baseados na comunicao via porta serial, o que torna o processo ainda mais simples. O mtodo CDC no Linux e o HID no

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    20

    Windows so nativos, ou seja, no necessrio instalar nenhum driver no sistema operacional para que o PC reconhea o dispositivo.

    2 FERRAMENTA SanUSB

    O sistema de desenvolvimento SanUSB uma ferramenta composta de software e hardware bsico da famlia PIC18Fxx5x com interface USB. Esta ferramenta livre se mostra eficiente no desenvolvimento rpido de projetos reais, pois no h necessidade de remover o microcontrolador para a atualizao do firmware. Alm disso, esta ferramenta se mostra eficaz no ensino e na difuso de microcontroladores, bem como em projetos de eletrnica e informtica, pois todos os usurios podem desenvolver projetos reais no ambiente de ensino ou na prpria residncia sem a necessidade de um equipamento para gravao de microcontroladores. Alm disso, o software de gravao de microcontroladores USB multiplataforma, pois executvel no Windows e no Linux e tambm plug and play, ou seja, reconhecido automaticamente pelos sistemas operacionais sem a necessidade de instalar nenhum driver. Dessa forma, ela capaz de suprimir:

    Um equipamento especfico para gravao de um programa no microcontrolador; conversor TTL - RS-232 para comunicao serial bidirecional, emulado via USB pelo

    protocolo CDC, que permite tambm a depurao do programa atravs da impresso via USB das variveis do firmware;

    fonte de alimentao, j que a alimentao do PIC provm da porta USB do PC. importante salientar que cargas indutivas como motores de passo ou com corrente acima de 400mA devem ser alimentadas por uma fonte de alimentao externa.

    Conversor analgico-digital (AD) externo, tendo em vista que ele dispe internamente de 10 ADs de 10 bits;

    software de simulao, considerando que a simulao do programa e do hardware podem ser feitas de forma rpida e eficaz no prprio circuito de desenvolvimento ou com um protoboard auxiliar.

    Alm de todas estas vantagens, os laptops e alguns computadores atuais no apresentam mais interface de comunicao paralela e nem serial EIA/RS-232, somente USB. Como pode ser visto, esta ferramenta possibilita que a compilao, a gravao e a simulao real de um programa, como tambm a comunicao serial atravs da emulao de uma porta COM virtual, possam ser feitos de forma rpida e eficaz a partir do momento em o microcontrolador esteja conectado diretamente a um computador via USB.

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    21

    Figura 2. 1: Gravao do PIC via PC.

    Utilizando esta ferramenta, estudantes foram trs vezes consecutivas campees da Competio de Robtica do IFCE (2007, 2008 e 2009) na categoria Localizao, campees da Feira Brasileira de Cincias e Engenharia (FEBRACE09) da USP em So Paulo na Categoria Engenharia (2009), como tambm obtiveram Prmio de Inovao em Aplicao Tecnolgica na Feria Explora 2009 em Medelin na Colmbia e foram Campees na Categoria Supranivel do Foro Internacional de Ciencia e Ingeniera 2010 no Chile.

    2.1 GRAVAO COM O SanUSB

    A transferncia de programas para os microcontroladores normalmente efetuada atravs de um hardware de gravao especfico. Atravs desta ferramenta, possvel efetuar a descarga de programas para o microcontrolador diretamente de uma porta USB de qualquer PC. Para que todas essas funcionalidades sejam possveis, necessrio gravar, anteriormente e somente uma vez, com um gravador especfico para PIC, o gerenciador de gravao pela USB Gerenciador.hex disponvel na pasta completa da ferramenta no link abaixo, onde tambm possvel baixar periodicamente as atualizaes dessa ferramenta e a incluso de novos programas: http://www.4shared.com/file/sIZwBP4r/100727SanUSB.html

    Caso o computador ainda no o tenha o aplicativo Java JRE ou SDK instalado para suporte a programas executveis desenvolvidos em Java, baixe a Verso Windows disponvel em: http://www.4shared.com/file/WKDhQwZK/jre-6u21-windows-i586-s.html ou atravs do link: http://www.java.com/pt_BR/download/manual.jsp.

    Para que os programas em C possam ser gravados no microcontrolador via USB, necessrio compil-los, ou seja, transform-los em linguagem de mquina hexadecimal. Existem diversos compiladores que podem ser utilizados por esta ferramenta, entre eles o SDCC, o C18, o Hi-Tech e o CCS. Devido didtica das funes e bibliotecas USB disponveis para emulao serial, diversos perifricos e multitasking, um dos compiladores utilizados com bom rendimento,

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    22

    alm do C18, com exemplos de aplicao disponveis na pasta de desenvolvimento, o CCS na verso 3.245. Esta verso funcional com bibliotecas de suporte a USB pode ser obtida atravs do link: http://www.4shared.com/file/Mo6sQJs2/100511Compilador.html .

    As verses 4 deste compilador apresentam bugs em funes e aplicaes, embora tenham sido testadas algumas verses e funcionaram satisfatoriamente at a verso 4.084. Neste caso, recomendado criar, para cada firmware (programa a ser compilado), um novo source file.

    Caso grave no microcontrolador o novo gerenciador de gravao pela USB GerenciadorPlugandPlay.hex, no esquea de colar o novo arquivo cabealho SanUSB.h dentro da pasta ExemploseBibliotecasCCS localizada na pasta instalada do compilador (C:\Arquivos de programas\PICC\Drivers ). A representao bsica do circuito SanUSB montado em protoboard mostrada a seguir:

    Figura 2. 2: Esquemtico de montagem da Ferramenta SanUSB - PIC18F2550.

    Para um microcontrolador de 40 pinos, o circuito mostrado a seguir:

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    23

    Figura 2. 3: Esquemtico de montagem da Ferramenta SanUSB PIC18F4550.

    Os componentes bsicos do circuito so: 1- 1 microcontrolador da famlia PIC USB (18F2550, 18F2455, 18F4550, etc.); 2- 1 cristal de 20MHz; 3- 2 capacitores de 22pF; 4- 2 capacitores de 1uF (um no pino 14 Vusb e outro entre o +5V e o Gnd ) ; 5- 3 leds e 3 resistores de 390 (s necessrio um led com resistor no pino B7); 6- 1 resistor de 2k2 e um boto ou fio para gravao no pino 1; 7- 1 diodo qualquer entre o +5V e o o pino Vdd; 8- 1 Cabo USB qualquer.

    Note que, este sistema multiplataforma (Windows, Linux e Mac OSX), compatvel com o software de gravao HID USB da Microchip tambm para Linux e Mac OSX, pode ser

    implementado tambm em qualquer placa de desenvolvimento de microcontroladores PIC com

    interface USB, pois utiliza o boto de reset, no pino 1, como boto de gravao via USB. Ao conectar o cabo USB e alimentar o microcontrolador, com o pino 1 no Gnd (0V), atravs do boto ou de um simples fio, o microcontrolador entra em Estado para Gravao via USB (led no pino B7 aceso) e que, aps o reset com o pino 1 no Vcc (+5V atravs do resistor fixo de 2K2 sem o jump), entra em Estado para Operao do programa aplicativo (firmware) que foi compilado.

    O cabo USB apresenta normalmente quatro fios, que so conectados ao circuito do microcontrolador nos pontos mostrados na figura acima, onde normalmente, o fio Vcc (+5V) do cabo USB vermelho, o Gnd (Vusb-) marrom ou preto, o D+ azul ou verde e o D- amarelo ou branco. Note que a fonte de alimentao do microcontrolador nos pinos 19 e 20 e dos barramentos vermelho (+5V) e azul (Gnd) do circuito provem da prpria porta USB do computador. Para ligar o cabo USB no circuito possvel cort-lo e conect-lo direto no protoboard, com fios rgidos soldados, como tambm possvel conectar sem cort-lo, em um protoboard ou numa placa de circuito impresso, utilizando um conector USB fmea. O diodo de

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    24

    proteo colocado no pino 20 entre o Vcc da USB e a alimentao do microcontrolador serve para proteger contra corrente reversa caso a tenso da porta USB esteja polarizada de forma inversa.

    A figura abaixo mostra a ferramenta SanUSB montada em protoboard seguindo o circuito anterior e a posio de cada terminal no conector USB a ser ligado no PC. Cada terminal conectado diretamente nos pinos do microcontrolador pelos quatro fios correspondentes do cado USB.

    Figura 2. 4: Esquema montado em protoboard e conector USB.

    importante salientar que, para o perfeito funcionamento da gravao via USB, o circuito desta ferramenta deve conter um capacitor de filtro entre 0,1uf e 1uF na alimentao que vem da USB, ou seja, colocado entre os pinos 20 (+5V) e 19 (Gnd).

    Caso o sistema microcontrolado seja embarcado como, por exemplo, um rob, um sistema de aquisio de dados ou um controle de acesso, ele necessita de uma fonte de alimentao externa, que pode ser uma bateria comum de 9V ou um carregador de celular. A figura abaixo mostra o PCB, disponvel nos Arquivos do Grupo SanUSB, e o circuito para esta ferramenta com entrada para fonte de alimentao externa. Para quem deseja obter o sistema pronto para um aprendizado mais rpido, possvel tambm encomendar placas de circuito impresso da ferramenta SanUSB, como a foto da placa abaixo, entrando em contato com o grupo SanUSB atravs do e-mail: [email protected] .

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    25

    Figura 2. 5: Esquema montado em PCB.

    Se preferir confeccionar a placa, possvel tambm imprimir o PCB (em preto) abaixo em folha apropriada e em tamanho equivalente ao real, corroer, furar (pontos marrons) e soldar os componentes. Ou contactar Prof Renata ([email protected]) e solicitar o PCB atualizado.

    Mais detalhes em: http://www.4shared.com/get/ithqLbiq/FazendoPCBtermico.html ou atravs do video disponvel em: http://www.youtube.com/watch?v=8NhNsNw5BfU.

    Figura 2. 6: Exemplo de PCB da Ferramenta SanUSB.

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    26

    Para obter vrios programas-fonte e vdeos deste sistema livre de gravao, comunicao e alimentao via USB, basta se cadastrar no grupo de acesso livre www.tinyurl.com/SanUSB e clicar no item Arquivos.

    Durante a programao do microcontrolador basta inserir, no inicio do programa em C, a biblioteca cabealho SanUSB (#include ) contida dentro da pasta ExemploseBibliotecasCCS e que voc j adicionou dentro da Drivers localizada na pasta instalada do compilador ( C:\Arquivos de programas\PICC\Drivers ). Essa biblioteca contm instrues do PIC18F2550 para o sistema operacional, configuraes de fusveis e habilitao do sistema Dual Clock, ou seja, oscilador RC interno de 4 MHz para CPU e cristal oscilador externo de 20 MHz para gerar a frequncia de 48MHz da comunicao USB, atravs de prescaler multiplicador de frequncia.

    Como a frequncia do oscilador interno de 4 MHz, cada incremento dos temporizadores corresponde a um microssegundo. O programa exemplo1 abaixo comuta um led conectado no pino B7 a cada 0,5 segundo.

    --------------------------------------------------------------------------------------------------------------------- #include void main() { clock_int_4MHz();//Funo necessria para habilitar o dual clock (48MHz para USB e 4MHz para CPU) while (1) { output_toggle(pin_B7); // comuta Led na funo principal delay_ms(500); } } ---------------------------------------------------------------------------------------------------------------------

    Os arquivos compilados .hex assim como os firmwares esto disponveis em http://www.4shared.com/file/sIZwBP4r/100727SanUSB.html.

    2.2 GRAVANDO O MICROCONTROLADOR VIA USB NO WINDOWS

    Para executar a gravao com a ferramenta SanUSB, importante seguir os seguintes

    passos: 1. Baixe o a pasta da ferramenta de desenvolvimento SanUSB, para um diretrio raiz C ou D, obtida no link http://www.4shared.com/file/sIZwBP4r/100727SanUSB.html. 2. Grave no microcontrolador, somente uma vez, com um gravador especfico para PIC ou com um circuito simples de gravao ICSP mostrado nas prximas sees, o novo gerenciador de

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    27

    gravao pela USB GerenciadorPlugandPlay.hex disponvel na pasta Gerenciador, compatvel com os sistemas operacionais Windows, Linux e Mac OSX. 3. Pressione o boto ou conecte o jump de gravao do pino 1 no Gnd para a transferncia de programa do PC para o microcontrolador. 4. Conecte o cabo USB, entre o PIC e o PC, e solte o boto ou retire o jump. Se o circuito SanUSB estiver correto acender o led do pino B7. 5. Caso o computador ainda no o tenha o aplicativo Java JRE ou SDK instalado para suporte a programas executveis desenvolvidos em Java, baixe a Verso Windows disponvel em: http://www.4shared.com/file/WKDhQwZK/jre-6u21-windows-i586-s.html ou atravs do link: http://www.java.com/pt_BR/download/manual.jsp e execute o aplicativo SanUSB da pasta SanUSBwinPlugandPlay. Surgir a seguinte tela:

    Figura 2. 7: Interface de gravao do PIC.

    6. Clique em Abrir e escolha o programa .hex que deseja gravar, como por exemplo, o programa compilado exemplo1.hex da pasta ExemploseBibliotecasSanUSB e clique em Gravar. Este programa pisca o led conectado no pino B7; 7. Aps a gravao do programa, lembre-se de soltar o boto ou retirar o jump do pino de gravao e clique em Resetar. Pronto o programa estar em operao. Para programar novamente, repita os passos anteriores a partir do passo 3.

    2.3 EXERCCIO 1:

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    28

    Pisca LEDs em trs pinos cabealho padro e funes: output_high, output_low, delay_ms.

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    29

    Verifique a conexo dos leds nos pinos B7, B6 e B5 de acordo com a programao. No esquea os resistores limitantes de corrente de 100 R a 1000 R.

    Figura 2. 8: Esquemtico Exerccio 1.

    -----------------------------------------------------------------------------------------------------------

    2.4 EXERCCIO 2:

    Botes de entrada funo input e condio if:

    OBS: Utilize esta configurao para o boto: ; no se esquea do resistor de pull-up.

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    30

    Complete o esquemtico abaixo conectando os dois botes nos pinos b0 e b1 e o LED de sada no pino b7.

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    31

    Figura 2. 9: Esquemtico Exerccio 2.

    ----------------------------------------------------------------------------------------------------------

    2.5 GRAVAO WIRELESS DE MICROCONTROLADORES

    2.5.1 ZIG BEE

    A gravao wireless realizada com dois mdulos XBee da Srie 1 (S1). De um lado, um

    mdulo conectado a um PC coordenador conectado ao PC via USB do PC atravs do chip FTDI

    FT232RL ou atravs de uma porta serial real com o MAX-232 e, do outro lado da rede, um

    mdulo Zigbee conectado ao microcontrolador do dispositivo final. Esta conexo permite a

    programao sem fio no microcontrolador PIC. Programas disponveis em:

    http://www.4shared.com/get/aP17n4FT/sanusbee.html

    Abaixo uma ilustrao para realizar gravao de microcontrolador de forma wireless com

    tenso de alimentao de 3,3V.

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    32

    Figura 2. 10: Circuito de Gravao com Modem Zig Bee Xbee

    Para mais detalhes basta acompanhar os vdeos PIC wireless Zigbee programming

    http://www.youtube.com/watch?v=_Pbq2eYha_c e PIC wireless Zigbee programming II:

    http://www.youtube.com/watch?v=BlRjKbXpepg. Procedimento para gravao wireless:

    1- Circuito bsico: Conecte o mdulo Xbee ao microcontrolador da placa SanUSB

    (www.tinyurl.com/SanUSB), com alimentao entre 3V e 3,6V e apenas 4 fios: Vcc (3,3V), Gnd,

    Tx e Rx, como mostra a figura abaixo. Na figura, o fio vermelho ligado ao pino 20 (Vcc) do

    microcontrolador e ao pino 1 (Vcc) do modem Zigbee, o fio azul ligado ao 19 (Gnd) do

    microcontrolador e ao pino 10 (Gnd) do modem Zigbee, o fio laranja ligado ao pino 18 (Rx) do

    microcontrolador e ao pino 2 (DOUT) do modem Zigbee, e o fio amarelo ligado ao 17 (Tx) do

    microcontrolador e ao pino 3 (DIN) do modem Zigbee.

    2- Configurao dos Mdulos: A gravao wireless s vai acontecer se os mdulos Xbee da

    srie 1 (coordenador e dispositivo final) estiverem configurados com o mesmo baud rate do

    microcontrolador (19200 bps). Para o coordenador, basta conectar, o mdulo coordenador ao

    microcontrolador, ver circuito bsico acima, gravar via USB e examinar em qual firmware

    (ConfigCoord9600to19200.hex ou ConfigCoord19200to19200.hex) o led no pino B7 ir piscar

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    33

    intermitentemente. Se o led no piscar, provavelmente existe um erro na ligao do circuito.

    Aps a configurao, coloque o mdulo Coordenador no conversor USB-serial e conecte ao PC.

    Faa posteriormente o mesmo para o mdulo Dispositivo final, gravando o firmware

    (ConfigDispFinal9600to19200.hex ou ConfigDispFinal19200to19200.hex) e deixe-o conectado

    ao microcontrolador. Quando o led do pino B7 estiver piscando, significa que os mdulos esto

    conectados corretamente e esto aptos para gravao wireless.

    3- Adaptador Wireless: Agora grave, novamente via USB, o firmware AdaptadorSerial.hex da

    pasta AdaptadorWireless. Se, aps a gravao do Adaptador, apresentar o erro Odd address at

    beginning of HEX file error, como na figura abaixo, necessrio gravar novamente o

    gerenciador.hex, com qualquer gravador especifico (ver tutorial), e em seguida, realizar

    novamente a gravao via USB do firmware aplicativo AdaptadorSerial.hex. Aps a transferncia

    deste firmware, o microcontrolador est apto para gravao wireless.

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    34

    Agora basta acessar a pasta sanusbee pelo Prompt do Windows (Iniciar -> Pesquisar ->

    Prompt de Comando), como na figura abaixo, e digitar, como mostrado no vdeo PIC wireless

    Zigbee programming II, as linhas de comando, para transferir os programas aplicativos.hex como

    o Exemplo1wireless.hex contido na pasta sanusbee.

    Exemplo:

    sanusbee Exemplo1Wireless.hex p COM2

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    35

    2.5.2 BLUETOOTH

    A gravao wireless Bluetooth pode ser realizada com apenas um mdulo Bluetooth

    conectado ao microcontrolador, pois normalmente no PC coordenador, como em laptops e

    desktops, j existe um mdulo bluetooth interno. A tenso do mdulo Bluetooth encapsulado,

    mostrado na figura abaixo, suporta at 6V, diferentemente do mdulo Xbee que suporta 3,3V.

    Dessa forma, pode-se conectar o mdulo Bluetooth diretamente ao microcontrolador alimentado

    pela tenso da porta USB de 5V.

    De um lado um PC coordenador e, do outro lado da rede, um mdulo bluetooth

    conectado ao microcontrolador do dispositivo final. Esta conexo permite a programao sem fio

    no microcontrolador PIC. Os Programas esto disponveis em:

    http://www.4shared.com/get/aP17n4FT/sanusbee.html. Neste link em anexo: http://sanusb-

    laese.wix.com/robotica#!produtos/productsstackergalleryv20=1, pode ser adquirido o modem

    Bluetooth mostrado neste tutorial.

    Abaixo uma ilustrao para realizar gravao de microcontrolador de forma wireless

    Bluetooth com tenso de alimentao de 5V.

    Figura 2. 11: Circuito de Gravao com Mdulo Bluetooth

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    36

    Para mais detalhes basta acompanhar os vdeos PIC wireless Zigbee programming

    http://www.youtube.com/watch?v=_Pbq2eYha_c e PIC wireless Zigbee programming II:

    http://www.youtube.com/watch?v=BlRjKbXpepg. Procedimento para gravao wireless:

    1- Circuito bsico: Conecte o mdulo bluetooth ao microcontrolador da placa SanUSB

    (www.tinyurl.com/SanUSB), com alimentao entre 3V e 6V e apenas 4 fios: Vcc (3,3V), Gnd,

    Tx e Rx, como mostra a figura acima do circuito. Na figura, o fio vermelho ligado ao pino 20

    (Vcc) do microcontrolador e ao pino Vcc do modem bluetooth, o fio azul ligado ao 19 (Gnd) do

    microcontrolador e ao pino Gnd do modem bluetooth, o fio verde ligado ao pino 18 (Rx) do

    microcontrolador e ao pino Tx modem bluetooth, e o fio amarelo ligado ao 17 (Tx) do

    microcontrolador e ao pino Rx do modem bluetooth.

    2- Parear o modem Bluetooth: Aps alimentar o modem bluetooth com 3,3V ou 5V, conectado ao microcontrolador, realizar o pareamento com o PC indo em: 2.1- Iniciar -> Painel de controle -> Adicionar um dispositivo de bluetooth -> linvor -> senha padro: 1234; 2.2- Aps o pareamento, clique em Iniciar -> Painel de controle -> exibir impressoras e dispositivos. Ir aparecer o modem pareado, como, por exemplo, o linvor.

    2.3- Clicar em cima, por exemplo, do modem de linvor, e verificar qual porta criada pelo modem Bluetooth, em Hardware, que ser utilizada para a gravao wireless.

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    37

    O nmero da porta Serial Padro por Link Bluetooth (COM37) pode ser modificada, por exemplo, para COM9 como neste tutorial, atravs do Gerenciador de Dispositivos, clicando com o boto direito em cima da porta -> propriedades -> Configurao de Porta -> Avanado -> Nmero da Porta COM.

    3- Configurao do mdulo bluetooth: A gravao wireless s vai acontecer se o mdulo

    Bluetooth estiver configurado com o mesmo baud rate do microcontrolador (19200 bps). Para

    isto, basta conectar, o mdulo bluetooth ao microcontrolador, ver circuito bsico acima, gravar

    via USB o firmware Configbluetotth9600to19200.hex e verificar se o led no pino B7 ir piscar

    intermitentemente. Se o led no piscar, provavelmente existe um erro na ligao do circuito.

    Quando o led do pino B7 estiver piscando, significa que os mdulos esto conectados

    corretamente e esto aptos para gravao wireless.

    4- Adaptador Wireless: Agora grave, novamente via USB, o firmware AdaptadorSerial.hex da

    pasta AdaptadorWireless. Se, aps a gravao do Adaptador, apresentar o erro Odd address at

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    38

    beginning of HEX file error, como na figura abaixo, necessrio gravar novamente o

    gerenciador.hex, com qualquer gravador especifico (ver tutorial), e em seguida, realizar

    novamente a gravao via USB do firmware aplicativo AdaptadorSerial.hex. Aps a transferncia

    deste firmware, o microcontrolador est apto para gravao wireless.

    Agora basta acessar a pasta sanusbee pelo Prompt do Windows (Iniciar -> Pesquisar ->

    Prompt de Comando), como na figura abaixo, e digitar, como mostrado no vdeo PIC wireless

    Zigbee programming II, as linhas de comando, para transferir os programas aplicativos.hex como

    o Exemplo1wireless.hex contido na pasta sanusbee.

    Exemplo: sanusbee Exemplo1Wireless.hex p COM9

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    39

    As vantagens do modem Bluetooth em relao ao Zigbee, so o preo e a disponibilidade

    de modems Bluetooth j disponveis em vrios sistemas computacionais como computadores e

    celulares. A desvantagem em relao ao Zigbee a distncia para gravao de

    microcontroladores mxima de 10 metros.

    2.6 SISTEMA DUAL CLOCK

    Devido incompatibilidade entre as frequncias necessrias para a gravao e emulao serial via USB e a frequncia padro utilizada pela CPU, temporizadores e interface I2C, esta ferramenta adota o princpio Dual Clock, ou seja, utiliza duas fontes de clock, uma para o canal USB de 48MHz, proveniente do cristal oscilador externo de 20MHz multiplicada por um prescaler interno, e outra para o CPU de 4 MHz, proveniente do oscilador RC interno de 4 MHz, como ilustrado na figura abaixo.

    Figura 2. 12: Comunicao PIC com PC e via I2C.

    Esse princpio de clock paralelo, realizado pela instruo clock_int_4MHz(), permite que um dado digitado no teclado do computador, trafegue para o microcontrolador em 48 MHz via USB, depois para perifricos como um relgio RTC ou para a memria EEPROM em 4 MHz via I2C e vice-versa.

    2.7 SanUSB CDC EMULAO DE COMUNICAO SERIAL NO WINDOWS

    Neste tpico mostrado um mtodo de comunicao serial bidirecional atravs do canal

    USB do PIC18F2550. Uma das formas mais simples, atravs do protocolo Communications Devices Class (CDC), que emula uma porta COM RS-232 virtual, atravs do canal USB 2.0. Dessa forma, possvel se comunicar com caracteres ASCII via USB atravs de qualquer software monitor serial RS-232 como o HyperTerminal, o SIOW do CCS Compiler ou o ambiente de programao Delphi. O driver CDC instalado no PC e o programa aplicativo gravado no PIC, com a biblioteca CDC (#include ), so os responsveis por esta emulao da porta RS-232 virtual atravs da USB.

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    40

    A biblioteca CDC para o programa.c do microcontrolador est dentro da pasta de exemplos, a qual deve estar na mesma pasta onde est o programa.c a ser compilado para a emulao da comunicao serial RS-232. Alm disso, o programa.c deve inserir a biblioteca usb_san_cdc.h, como mostra a o exemplo de leitura e escrita em um buffer da EEPROM interna do microcontrolador. As funes CDC mais utilizadas contidas na biblioteca usb_san_cdc.h para comunicao com a COM virtual so:

    usb_cdc_putc() o microcontrolador envia caracteres ASCII emulados via USB. Ex.: printf(usb_cdc_putc, "\r\nEndereco para escrever: "); usb_cdc_getc() retm um caractere ASCII emulado pela USB. Ex.: dado = usb_cdc_getc(); //retm um caractere na varivel dado gethex_usb() retm um nmero hexadecimal digitado no teclado. Ex.: valor = gethex_usb();//retm um nmero hexadecimal na varivel valor usb_cdc_kbhit( ) Avisa com TRUE (1) se acabou de chegar um novo caractere no buffer de recepo USB do PIC. Ex.: if (usb_cdc_kbhit()) {dado = usb_cdc_getc();}

    O exemplo abaixo mostra a leitura e escrita em um buffer da EEPROM interna do microcontrolador com emulao da serial atravs da USB: --------------------------------------------------------------------------------------------------------------------- #include #include // Biblioteca para comunicao serial BYTE i, j, endereco, valor; boolean led; main() { clock_int_4MHz(); usb_cdc_init(); // Inicializa o protocolo CDC usb_init(); // Inicializa o protocolo USB usb_task(); // Une o perifrico com a usb do PC output_high(pin_b7); // Sinaliza comunicao USB Ok while (1) { printf(usb_cdc_putc, "\r\n\nEEPROM:\r\n"); // Display contm os primeiros 64 bytes em hex for(i=0; i

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    41

    printf(usb_cdc_putc, "\r\nNovo valor: "); valor = gethex_usb(); write_eeprom( endereco, valor ); led = !led; // inverte o led de teste output_bit (pin_b7,led); }} ---------------------------------------------------------------------------------------------------------------------

    Aps gravao de um programa que utilize comunicao serial CDC no microcontrolador pelo SanUSB e resetar o microcontrolador, v, se for o Windows 7, em propriedades do sistema -> Configuraes avanadas do sistema -> Hardware -> Gerenciador de dispositivos e clique com boto direito no driver CDC do microcontrolador e atualizar Driver, apontando para a pasta DriverCDCwinSerial.

    No Windows XP, aps a gravao de um programa que utilize comunicao serial CDC no microcontrolador pelo SanUSB e resetar o microcontrolador, o sistema vai pedir a instalao do driver CDC (somente na primeira vez).

    Figura 2. 13: Instalao do driver CDC (1).

    Escolha a opo Instalar de uma lista ou local especifico (avanado). Aps Avanar,

    selecione a opo Incluir este local na pesquisa e selecione a pasta DriverSanWinCDC, onde est o driver CDC.

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    42

    Figura 2. 14: Instalao do driver CDC (2).

    Aps Avanar, clique em Continuar assim mesmo.

    Figura 2. 15: Instalao do driver CDC (3).

    Aguarde enquanto o Driver CDC instalado no Windows.

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    43

    Figura 2. 16: Instalao do driver CDC (4).

    Clique em Concluir para terminar a instalao.

    Figura 2. 17: Instalao do driver CDC (5).

    V em painel de controle -> sistema -> Hardware -> Gerenciador de dispositivos ->

    Portas (COM & LPT) e confira qual a porta COM virtual instalada.

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    44

    Figura 2. 18: Verificao de porta COM instalada.

    Abrindo qualquer programa monitor de porta serial RS-232, como o SIOW do CCS ou o Java-SanUSB, direcionando para a COM virtual instalada (COM3,COM4,COM5,etc.). No CCS clique em Tools -> Serial port Monitor -> configuration -> set port options para que o computador entre em contato com o PIC atravs da emulao serial via USB.

    Figura 2. 19: Utilizao da porta COM pelo CCS.

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    45

    Para utilizar uma funo que necessite de atendimento imediato quando um caractere for digitado como, por exemplo o caractere L ou D, necessrio inserir no firmware do microcontrolador a condio para verificar de forma constante e reter o caractere emulado que chegou pela USB ???? S (???? SB_cdc_kbhit( )) {dado=usb_cdc_getc();} no lao infinito da funo principal. O comando (???? SB_cdc_kbhit( )) evita que o programa fique parado no usb_cdc_getc (que fica esperando um caractere para prosseguir o programa). Veja o programa abaixo, que pisca um led na funo principal (pino B6) e comanda o estado de outro led (pino B7) pelo teclado de um PC via USB: --------------------------------------------------------------------------------------------------------------------- #include #include // Biblioteca para comunicao serial virtual BYTE comando; void main() { clock_int_4MHz();//Funo necessria para habilitar o dual clock (48MHz para USB e 4MHz para CPU) usb_cdc_init(); // Inicializa o protocolo CDC usb_init(); // Inicializa o protocolo USB usb_task(); // Une o perifrico com USB do PC while (TRUE) { if (usb_cdc_kbhit( )) //avisa se chegou dados do PC { //verifica se tem um novo byte no buffer de recepo, depois o kbhit zerado para prximo byte comando=usb_cdc_getc(); //se chegou, retm o caractere e compara com L ou D em ASCII if (comando==L) {output_high(pin_b7); printf(usb_cdc_putc, \r\nLed Ligado\r\n);} if (comando==D) {output_low(pin_b7); printf(usb_cdc_putc, \r\nLed Desligado\r\n);} } output_high(pin_B6); // Pisca Led na funo principal delay_ms(500); output_low(pin_B6); delay_ms(500); } } ---------------------------------------------------------------------------------------------------------------------

    Figura 2. 20: Visualizao de textos via serial emulada.

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    46

    Para utilizar o programa de comunicao Java-SanUSB para emulao serial virtual entre o computador e o microcontrolador, necessrio baix-lo atravs do link disponvel em http://www.4shared.com/file/1itVIv9s/101009SoftwareComSerial_Window.html . Aps executar o programa de comunicao serial Java-SanUSB, verifique a porta COM virtual gerada (COM3,COM4,COM11,etc.) no Windows, em Painel de Controle\Todos os Itens do Painel de Controle\Sistema e altere no programa serial Java- SanUSB em Dispositivos e depois clique em Conectar, como mostra a figura abaixo.

    Figura 2. 21: Interface em Java de comunicao serial.

    2.8 SISTEMA DUAL CLOCK

    Devido incompatibilidade entre as frequncias necessrias para a gravao e emulao serial via USB e a frequncia padro utilizada pela CPU, temporizadores e interface I2C, esta ferramenta adota o princpio Dual Clock, ou seja, utiliza duas fontes de clock, uma para o canal USB de 48MHz, proveniente do cristal oscilador externo de 20MHz multiplicada por um prescaler interno, e outra para o CPU de 4 MHz, proveniente do oscilador RC interno de 4 MHz, como ilustrado na figura abaixo.

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    47

    Figura 2. 22: Comunicao PIC com PC e via I2C.

    Esse princpio de clock paralelo, realizado pela instruo clock_int_4MHz(), permite que um dado digitado no teclado do computador, trafegue para o microcontrolador em 48 MHz via USB, depois para perifricos como um relgio RTC ou para a memria EEPROM em 4 MHz via I2C e vice-versa.

    3 INTERRUPES E TEMPORIZADORES

    3.1 INTERRUPES

    As interrupes so causadas atravs de eventos assncronos (podem ocorrer a qualquer momento) causando um desvio no processamento. Este desvio tem como destino um endereo para tratamento da interrupo. Uma boa analogia para melhor entendermos o conceito de interrupo a seguinte: voc est trabalhando digitando uma carta no computador quando o seu telefone toca. Neste momento voc, interrompe o que est fazendo, para atender ao telefone e verificar o que a pessoa do outro lado da linha est precisando. Terminada a conversa, voc coloca o telefone no gancho novamente e retoma o seu trabalho do ponto onde havia parado. Observe que no precisamos verificar a todo instante, se existe ou no algum na linha, pois somente quando o ramal chamado, o telefone toca avisando que existe algum querendo falar com voc.

    Aps do atendimento das interrupes, o microcontrolador retorna exatamente ao ponto onde parou no programa antes de atend-la. As interrupes mais comuns na famlia PIC18F so: - pela interrupo externa 0 (Pino B0) -> enable_interrupts(int_ext); - pela interrupo externa 1 (Pino B1) -> enable_interrupts(int_ext1); - pela interrupo externa 2 (Pino B2) -> enable_interrupts(int_ext2); - pelo contador/temporizador 0 -> enable_interrupts(int_timer0); - pelo contador/temporizador 1 -> enable_interrupts(int_timer1); - pelo contador/temporizador 2 -> enable_interrupts(int_timer2); - pelo canal de comunicao serial -> enable_interrupts(int_rda); //serial

    As interrupes do PIC so vetorizadas, ou seja, tm endereos de incio da interrupo fixos para a rotina de tratamento. No PIC18F2550 o endereo de tratamento 0x08. No

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    48

    programa em C basta escrever a funo de tratamento da interrupo aps #, e o compilador far o direcionamento do cdico automaticamente para essa posio.

    3.2 INTERRUPES EXTERNAS

    O modelo PIC18F2550 possui trs interrupes externas, habilitadas nos pinos B0 (ext) , B1 (ext1) e B2 (ext2), que atuam (modo default) quando os pinos so aterrados. Quandos atuados o processamento desviado para #int_ext, #int_ext1 ou #int_ext2, respectivamente, para que a interrupo possa ser tratada por uma funo especfica, que no caso do exemplo void bot_ext().

    Dentro da funo principal deve-se habilitar o disjuntor geral das interrupes, enable_interrupts(global); e depois a interrupo especfica, por exemplo enable_interrupts(int_ext); como mostra o exemplo com aplicao de interrupo externa e tambm interruo do temporizador 1. --------------------------------------------------------------------------------------------------------------------- #include BYTE comando; short int led; int x; #int_timer1 void trata_t1 () { led = !led; // inverte o led - pisca a cada 0,5 seg. output_bit (pin_b7,led); set_timer1(3036 + get_timer1()); } #int_ext void bot_ext() { for(x=0;x

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    49

    setup_timer_1 ( T1_INTERNAL | T1_DIV_BY_8);// configura o timer 1 em 8 x 62500 = 0,5s set_timer1(3036); // Conta 62.500us x 8 para estourar= 0,5s while (1){}; //Loop infinito (parado aqui) } ---------------------------------------------------------------------------------------------------------------------

    Para habilitar a nomenclatura das as interrupes esto disponveis em view > valid interrupts. Quando for utilizada alguma interrupo externa, necessrio inserir um resistor de pull-up externo de 1K a 10K para elevar o nvel lgico do pino quando o mesmo for liberado evitando outra interrupo, pois o processador entende tristate e nveis intermedirios de tenso como nvel lgico baixo.

    3.3 INTERRUPO DOS TEMPORIZADORES

    O microcontrolador PIC 18F2550 tem quatro temporizadores, que so os timers 0, 1, 2 e 3. O timer 0 tem 16 bits, ou seja, pode contar at 65535s (216) e um prescaler (divisor de frequncia ou multiplicador de tempo) de at 256 (RTCC_DIV_256). Os timers 1 e 3 so idnticos com 16 bits e um prescaler de at 8 (RTCC_DIV_8). Por sua vez, O timer 2 possui 8 bits e um prescaler de at 16 (RTCC_DIV_16). Os timers incrementam at estourar, quando estouram, processamento desviado para #int_timer, para que a interrupo possa ser tratada por uma funo especfica, que no caso do exemplo void trata_t0 () e void trata_t1 (). O programa a seguir pisca um led em b5 na funo principal main(), outro pela interrupo do timer 1 em b6 e um terceiro led em b7 pela interrupo do timer0. --------------------------------------------------------------------------------------------------------------------- #include short int led0, led1; int vart1=2, vart3=4; // multiplicador de tempo #int_timer0 void trata_t0 () //Funo de taratamento, o Timer0 configurado com o nome RTCC { led0 = !led0; // inverte o led a cada 4 seg pois tem prescaler igual a 64 (RTCC_DIV_64) output_bit (pin_b7,led0); set_timer0(3036 + get_timer0()); // get_timer() carrega o timer compensando o tempo gasto no tratamento da interrupo } #int_timer1 //O timer 1 e o timer 3 so idnticos, s basta modificar 1 por 3 na configurao void trata_t1 () { --vart1; if(vart1==0) { led1 = !led1; // inverte o led - pisca a cada 1 seg (vart1=2 x 0,5 seg)

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    50

    output_bit (pin_b6,led1); vart1=2; // necessita de multiplicador de tempo, pois o prescaler mximo 8 (T1_DIV_BY_8) set_timer1(3036 + get_timer1()); // get_timer() carrega o timer compensando o tempo gasto no tratamento da interrupo } } main(){ clock_int_4MHz(); enable_interrupts (global); // Possibilita todas interrupcoes enable_interrupts (int_timer0); // Habilita interrupcao do timer 0 enable_interrupts (int_timer1); // Habilita interrupcao do timer 1 setup_timer_0 ( RTCC_INTERNAL | RTCC_DIV_64);// configura o prescaler do timer 0 em 64, tem prescaler at 256 set_timer0(3036); // Conta 62.500us x 64 para estourar= 4 seg setup_timer_1 ( T1_INTERNAL | T1_DIV_BY_8); // configura o prescaler do timer 1 em 8 x 62500us = 0,5 seg set_timer1(3036); // Conta 62.500us x 8 para estourar= 0,5 seg while (1){ //Funo principal pisca led em a5 output_high(pin_b5); delay_ms(500); output_low(pin_b5); delay_ms(500); } } ---------------------------------------------------------------------------------------------------------------------

    3.4 PROGRAMA COM INTERRUPO EXTERNA POR BOTO E TIMER 1

    --------------------------------------------------------------------------------------------------------------------- #include BYTE comando; short int led; int x; #int_timer1 void trata_t1 () { led = !led; // inverte o led - pisca a cada 0,5 seg.

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    51

    output_bit (pin_b7,led); set_timer1(3036 + get_timer1()); } #int_ext void bot_ext() { for(x=0;x

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    52

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    53

    Figura 3. 1: Esquemtico Exerccio 3.

    ---------------------------------------------------------------------------------------------------------------------

    3.6 CIRCUITO COM84 PARA GRAVAO DO gerenciador.hex

    Para este circuito simples de gravao s necessrio 3 resistores de 10k, um cabo serial

    DB9 (RS-232) e uma fonte externa de 5V, que pode ser obtida da porta USB. O circuito e a foto abaixo mostram o esquema simples de ligao dos pinos.

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    54

    Figura 3. 2: Circuito COM84 para gravao do gerenciador.hex

    Este circuito a partir da porta COM DB9 pode ser visualizado na figura abaixo.

    Figura 3. 3: Esquema de ligao do conector serial.

    Este circuito de gravao funciona com o software PICPgm (detectado como JDM Programmer) ou com WinPic (detectado como COM84 Programmer). Este ltimo se mostra mais estvel, pois aps a deteco do microcontrolador, possvel gravar o microcontrolador, e mesmo indicando ERROR: Programming failed, o arquivo gerenciador.hex mostrou-se gravado corretamente para gerenciar gravaes no microcontrolador pela porta USB nos sistemas operacionais Windows, Linux e Mac OSX.

    O software de gravao do gerenciador.hex pode ser baixado atrvs do link, disponvel em http://www.4shared.com/get/1uP85Xru/winpicprCOM84.html.

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    55

    Figura 3. 4: Tela de configurao do software de gravao.

    Aps a instalao, execute o programa. Na guia "Device, Config", escolha o microcontrolador. Uma vez que o microcontrolador conectado porta COM RS-232 de 9 pinos do PC, v para "Interface", selecione " COM84 programmer for serial port", e pressione "Initialize". Se o software disser que a inicializao foi um xito "Success", ento o programa est pronto para gravar o gerenciador.hex no microcontrolador. Para a gravao, selecione em File Load & ProgramDevice e depois selecione o arquivo gerenciador.hex. Como citado anteriormente, mesmo que, aps a gravao e verificao aparea Programmed Failed, provvel que o gerenciador.hex tenha sido gravado corretamente.

    Figura 3. 5: Tela de confirmao de reconhecimento do circuito.

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    56

    4 ACIONAMENTO DE MOTORES MICROCONTROLADOS

    Os motores mais utilizados com sistemas microcontrolados so os motores CC , motores de passo e servo-motores. A figura abaixo mostra a disposio dos transistores de potncia para atuao bidirecional de motores de passo e motores CC.

    Figura 4. 1: Motor de passo.

    4.1 ACIONAMENTO DE MOTORES CC DE BAIXA TENSO 4.1.1 MOTORES DE EQUIPAMENTOS ELETRNICOS

    So abundantes no mercado em funo da ampla gama de utilizao, conseqentemente,

    existem em vrias dimenses, tenses, pesos, caractersticas e so fceis de encontrar em sucatas como video-cassete, brinquedos, impressoras, etc. e geralemnte vm associados a uma caixa de engrenagem para aumento do torque e reduo de velocidade.

    Figura 4. 2: Motor CC.

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    57

    4.1.2 MOTORES ELTRICOS UTILIZADOS EM AUTOMVEIS

    Os motores utilizados em automveis so todos com tenso nominal a 12 volts, so robustos e normalmente projetados para condies extremas, tais como poeira, calor, variaes de tenso e corrente, entre outros. Algumas opes so ideais para aplicao no rob por serem compactos, fortes, alta rotao e leves, alm de serem muito fceis de conseguir em oficinas e empresas do ramo. Os motores mais usados em projetos so de trava-eltrica das portas, bomba do limpador de para-brisa e de gasolina, bomba de combustvel, motor do vidro-eltrico, motor da ventonha, motor do ventilador interno, limpador de para-brisa dianteiro e traseiro, bomba hidrulica do freio ABS.

    Figura 4. 3: Motor CC com caixa de reduo.

    Alm do acionamento eltrico, os motores CC de baixa potncia utilizados em automao e robtica, apresentam geralmente uma caixa de reduo, que um equipamento composto por engrenagens, com o intuito de reduzir a velocidade de rotao do eixo (ou angular) e aumentar o torque do motor. O torque varia em funo da fora aplicada (F) e do raio de giro (nas engrenagens a metade do dimetro primitivo), segundo a equao T = F.r.

    Sendo: F = fora (em Newtons), r = raio de giro (em metros) e T = torque (em N.m).

    Figura 4. 4: Relao de transmisso.

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    58

    J que o motor imprime uma fora constante, a variao do torque entre engrenagens

    ocorre devido ao raio de giro. Na prtica em um sistema de engrenagens, comprovada pelas equaes abaixo, quanto maior o dimetro da engrenagem movida (D2), maior o torque (T2) proporcional e menor a velocidade de rotao (n2). Considerando a engrenagem 1 com motora e a engrenagem 2 como movida, tem-se:

    Fconst -> T1/r1 = T2/r2 -> T1/D1 = T2/D2

    T2 . D1 = T1 .D2

    n2. D2 = n1. d1

    4.1.3 COROA E O PARAFUSO COM ROSCA SEM-FIM

    A coroa e o parafuso com rosca sem-fim compem um sistema de transmisso muito

    utilizado principalmente nos casos em que necessria elevada reduo de velocidade ou um elevado aumento de fora, como nos redutores de velocidade.

    Figura 4. 5: Coroa e sem-fim.

    O nmero de entradas do parafuso tem influncia no sistema de transmisso. Se um parafuso com rosca sem-fim tem apenas uma entrada (mais comum) e est acoplado a uma coroa de 60 dentes, em cada volta dada no parafuso a coroa vai girar apenas um dente. Como a coroa tem 60 dentes, ser necessrio dar 60 voltas no parafuso para que a coroa gire uma volta. Assim,

  • APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS - tinyurl.com/SanUSB

    59

    a rpm da coroa 60 vezes menor que a do parafuso. Se, por exemplo, o parafuso com rosca sem-fim est girando a 1.800 rpm, a coroa girar a 1.800 rpm, divididas por 60, que resultar em 30 rpm.

    Suponhamos, agora, que o parafuso com rosca sem-fim tenha duas entradas e a coroa tenha 60 dentes. Assim, a cada volta dada no parafuso com rosca sem-fim, a coroa girar dois dentes. Portanto, ser necessrio dar 30 voltas no parafuso para que a coroa gire uma volta. Assim, a rpm da coroa 30 vezes menor que a rpm do parafuso com rosca sem-fim. Se, por exemplo, o parafuso com rosca sem-fim est girando a 1.800 rpm, a coroa girar a 1.800 divididas por 30, que resultar em 60 rpm. A rpm da coroa pode ser expressa pela equao:

    i = Nc . Zc =Np. Zp Nc=Np. Zp /Zc

    onde: Nc = nmero de rotaes da coroa (rpm) Zc = nmero de dentes da coroa Np = nmero de rotaes do par