Apostila SanUSB CCS

download Apostila SanUSB CCS

of 265

Transcript of Apostila SanUSB CCS

  • Aplicaes prticas de Eletrnica e

    Microcontroladores PIC em Sistemas

    Computacionais

    Aprenda de forma simples a gravao wireless, via USB e

    multiplataforma de Microcontroladores PIC

    Ferramenta SanUSB

    Sandro Juc

    Renata Pereira

  • ...mais do que mquinas, precisamos de

    humanidade. Mais do que inteligncia, precisamos de

    afeio e doura. Sem essas virtudes, a vida ser de

    violncia e tudo ser perdido.

    Charles Chaplin

    Dedicamos este trabalho

    a Deus, nossa famlia, a todos

    os ifceanos, amigos, alunos e integrantes

    do grupo SanUSB.

  • SUMRIO

    1. INTRODUO ...................................................................................................................................................... 10 1.1 ASSEMBLY X LINGUAGEM C ......................................................................................................................................... 10 1.2 VANTAGENS X DESVANTAGENS DA LINGUAGEM C PARA MICROCONTROLADORES ...................... 12 1.3 ARQUITETURAS DOS MICROCONTROLADORES ................................................................................................. 12 1.4 O CONTADOR DE PROGRAMA (PC) ........................................................................................................................... 13 1.5 BARRAMENTOS .................................................................................................................................................................. 13 1.6 A PILHA (STACK)................................................................................................................................................................ 14 1.7 CICLO DE MQUINA ......................................................................................................................................................... 14 1.8 MATRIZ DE CONTATOS OU PROTOBOARD ............................................................................................................ 15 1.9 RESISTORES ......................................................................................................................................................................... 16 1.10 CAPACITORES ...................................................................................................................................................................... 17 1.11 FONTES DE ALIMENTAO .......................................................................................................................................... 19 1.12 RUDO (BOUNCING) E FILTRO (DEBOUNCING).................................................................................................. 19 1.13 PROTOCOLO DE COMUNICAO USB ...................................................................................................................... 20 1.14 MTODOS DE COMUNICAO USB ........................................................................................................................... 20 1.15 SISTEMA DUAL CLOCK .................................................................................................................................................... 22

    2 FERRAMENTA SanUSB Gravao via USB Exemplos Pisca LED .................................................. 23 2.1 GRAVAO DE MICROCONTROLADORES PIC COM A FERRAMENTA SanUSB ..................................... 24 2.2 CIRCUITO PARA GRAVAO DO gerenciador.hex ............................................................................................... 30 2.3 GRAVANDO O MICROCONTROLADOR VIA USB NO WINDOWS.................................................................... 32 2.4 GRAVANDO O PIC VIA USB PELO TERMINAL DO LINUX OU MAC OSX ..................................................... 35 2.5 GRAVANDO O MICROCONTROLADOR VIA USB NO LINUX ............................................................................. 36 2.6 Pisca LED b7 ..................................................................................................................................................................... 37 2.7 Pisca LED b7, b6, b5 ...................................................................................................................................................... 39 2.8 Usando FOR para piscar o LED ................................................................................................................................... 42 2.9 Usando WHILE para piscar o LED ............................................................................................................................. 42 2.10 USANDO O PORT B ............................................................................................................................................................ 43

    3 GRAVAO E COMUNICAO WIRELESS DE MICROCONTROLADORES ......................................... 46 3.1 ACIONAMENTO DE CARGAS VIA BLUETOOTH .................................................................................................... 55 3.1.1 Cdigo em C para CCS: Comunicar SanUSB com modem Bluetooth .......................................................... 55 3.1.2 Cdigo em C para CCS: Aplicativo 8 cargas port B ......................................................................................... 55 3.2 COMO RENOMEAR O MDULO BLUETOOTH ....................................................................................................... 58 3.3 RGB Controle de cores via Bluetooth .................................................................................................................... 59 3.3.1 Ligando RGB na Placa SanUSB .................................................................................................................................... 61 3.3.2 LED RGB Catodo Comum ................................................................................................................................................ 62

    4 MODEM WIFLY E O PROTOCOLO DE COMUNICAO WIFI ................................................................. 65

    5 EMULAO DE COMUNICAO SERIAL NO WINDOWS ........................................................................ 70 5.1 EMULAO DE COMUNICAO SERIAL NO LINUX ........................................................................................... 76

    6 BOTES ................................................................................................................................................................. 80 6.1 DESAFIO: SEMFORO COM BOTO PARA PEDESTRE ...................................................................................... 83

    7 BUZZER ................................................................................................................................................................. 87 7.1 BUZZER SEM OSCILADOR INTERNO ......................................................................................................................... 87

    8 CONVERSOR A/D ................................................................................................................................................ 90 8.1 AJUSTE DE RESOLUO DO SENSOR E DO CONVERSOR AD DE 8 BITS .................................................. 91 8.2 AJUSTE DA TENSO DE FUNDO DE ESCALA COM AMPOP ............................................................................ 92 8.3 AJUSTE DA TENSO DE REFERNCIA COM POTENCIMETRO .................................................................. 92 8.4 CONVERSOR AD DE 10 BITS ......................................................................................................................................... 92 8.5 OBTENO DE UM VOLTMETRO ATRAVS DO CONVERSOR AD COM A VARIAO DE UM POTENCIMETRO .............................................................................................................................................................................. 93

  • 8.6 LEITURA DE TEMPERATURA COM O LM35 ATRAVS DO CONVERSOR AD .......................................... 94 8.7 TERMISTOR .......................................................................................................................................................................... 96 8.7.1 LINEARIZAO DO TERMISTOR ................................................................................................................................. 97

    9 MEMRIAS DO MICROCONTROLADOR ...................................................................................................... 99 9.1 MEMRIA DE PROGRAMA ............................................................................................................................................. 99 9.2 MEMRIA DE INSTRUES .......................................................................................................................................... 99 9.3 MEMRIA EEPROM INTERNA ..................................................................................................................................... 99 9.4 MEMRIA DE DADOS (RAM) ........................................................................................................................................ 99 9.5 EXEMPLO DE APLICAO: CONTROLE DE ACESSO COM TECLADO MATRICIAL .............................. 100 9.6 PONTEIROS ......................................................................................................................................................................... 102

    10 INTERRUPES E TEMPORIZADORES ................................................................................................ 105 10.1 INTERRUPES ................................................................................................................................................................ 105 10.2 INTERRUPES EXTERNAS ........................................................................................................................................ 105 10.3 INTERRUPO DOS TEMPORIZADORES .............................................................................................................. 106 10.4 MULTIPLEXAO POR INTERRUPO DE TEMPORIZADORES ................................................................ 108

    11 EMULAO DE PORTAS LGICAS ......................................................................................................... 110 11.1 INSTRUES LGICAS PARA TESTES CONDICIONAIS DE NMEROS .................................................... 110 11.2 INSTRUES LGICAS BOOLANAS BIT A BIT .................................................................................................... 110 11.3 EMULAO DE DECODIFICADOR PARA DISPLAY DE 7 SEGMENTOS .................................................... 115

    12 MULTIPLEXAO COM DISPLAYS DE 7 SEGMENTOS .................................................................... 121

    13 COMUNICAO SERIAL EIA/RS-232.................................................................................................... 125 13.1 CDIGO ASCII ..................................................................................................................................................................... 126 13.2 INTERFACE USART DO MICROCONTROLADOR................................................................................................. 127 13.3 CLCULO DE TAXA DE TRANSMISSO SERIAL ................................................................................................. 129 13.4 COMUNICAO SERIAL EIA/RS-485 ...................................................................................................................... 131 13.5 APLICAO DE COMUNICAO SERIAL VIA BLUETOOTH OU ZIGBEE.................................................. 132

    14 ACIONAMENTO DE MOTORES CC ......................................................................................................... 133 14.1 ACIONAMENTO DE MOTORES CC DE BAIXA TENSO ................................................................................... 133 14.2 MOTORES ELTRICOS UTILIZADOS EM AUTOMVEIS ................................................................................. 133 14.3 COROA E O PARAFUSO COM ROSCA SEM-FIM ................................................................................................... 135 14.4 CHAVEAMENTO DE MOTORES CC COM TRANSISTORES MOSFET .......................................................... 136 14.5 EXEMPLO: SEGUIDOR TICO DE LABIRINTO .................................................................................................... 137 14.6 ESTABILIDADE DO CONTROLE DE MOVIMENTO ............................................................................................ 137 14.7 CONTROLE DE VELOCIDADE DE UM MOTOR CC COM PWM POR SOFTWARE .................................. 140 14.8 MODULAO POR LARGURA DE PULSO PELO CCP ......................................................................................... 142 14.9 DRIVER DE POTNCIA ULN2803 ............................................................................................................................. 143 14.10 SOLENIDES E RELS Acionamento de motores e lmpadas ........................................................... 147 14.11 PONTE H COM MICRORELS ................................................................................................................................ 149 14.12 DRIVER PONTE H L293D ........................................................................................................................................ 152

    15 ACIONAMENTO DE MOTORES DE PASSO ........................................................................................... 155 15.1 MOTORES DE PASSO UNIPOLARES ......................................................................................................................... 155 15.2 MODOS DE OPERAO DE UM MOTOR DE PASSO UNIPOLAR .................................................................. 156 15.3 ACIONAMENTO BIDIRECIONAL DE DOIS MOTORES DE PASSO................................................................ 157

    16 SERVOMOTORES ........................................................................................................................................ 161

    17 ULTRASSOM ................................................................................................................................................. 166

    18 FOTOACOPLADORES E SENSORES INFRAVERMELHOS................................................................. 169 18.1 TRANSMISSOR E RECEPTOR IR ............................................................................................................................... 170 18.2 AUTOMAO E DOMTICA COM CONTROLE REMOTO UNIVERSAL ...................................................... 174

  • 19 LCD (DISPLAY DE CRISTAL LQUIDO) ................................................................................................. 178 19.1 EXEMPLO: CONTROLE DE TENSO DE UMA SOLDA CAPACITIVA COM LCD ..................................... 184 19.2 CGRAM (RAM de gerao de caracteres especiais) .......................................................................................... 186

    20 MODELAGEM DE UM LUXMETRO MICROCONTROLADO COM LDR ......................................... 188 20.1 SUPERVISRIO EM DELPHI ........................................................................................................................................ 193

    21 INTERFACE I2C ............................................................................................................................................ 196 21.1 REGRAS PARA TRANSFERNCIA DE DADOS ...................................................................................................... 197 21.2 MEMRIA EEPROM EXTERNA I2C ........................................................................................................................... 200

    22 RTC (RELGIO EM TEMPO REAL) ........................................................................................................ 203 22.1 EXEMPLO: PROTTIPO DATALOGGER USB DE BAIXO CUSTO .................................................................. 206

    23 TRANSMISSO DE DADOS VIA GSM ..................................................................................................... 212 23.1 COMANDOS AT PARA ENVIAR MENSAGENS SMS DE UM COMPUTADOR PARA UM CELULAR OU MODEM GSM ....................................................................................................................................................................................... 212 23.2 COMANDOS AT PARA RECEBER MENSAGENS SMS EM UM COMPUTADOR ENVIADAS POR UM CELULAR OU MODEM GSM .......................................................................................................................................................... 213

    24 O PROTOCOLO MODBUS EMBARCADO .............................................................................................. 217 24.1 MODELO DE COMUNICAO ...................................................................................................................................... 217 24.2 DETECO DE ERROS .................................................................................................................................................... 218 24.3 MODOS DE TRANSMISSO .......................................................................................................................................... 218

    25 INTRODUO SISTEMAS OPERACIONAIS EM TEMPO REAL (RTOS) .................................... 223 25.1 MQUINAS DE ESTADO ................................................................................................................................................ 224

    26 UTILIZANDO O COMPILADOR C18 E A IDE MPLABX MULTIPLATAFORMA COM FUNES EM PORTUGUS ........................................................................................................................................................ 227

    26.1 FUNES EM PORTUGUS .......................................................................................................................................... 229 26.1.1 FUNES BSICAS DA APLICAO DO USURIO ....................................................................................... 229 26.2 FUNES DO CONVERSOR ANALGICO DIGITAL (A/D)............................................................................... 236 26.3 FUNES DA COMUNICAO SERIAL RS-232 ................................................................................................... 238

    27 APNDICE I: CABEALHOS DA FERRAMENTA PARA DIVERSOS COMPILADORES............... 241 27.1 CCS C Compiler .................................................................................................................................................................. 241 27.2 C18 compiler ...................................................................................................................................................................... 241 27.3 SDCC ....................................................................................................................................................................................... 243 27.4 MikroC ................................................................................................................................................................................... 244 27.5 Hi-Tech C Compiler ......................................................................................................................................................... 245 27.6 Microchip ASSEMBLY ..................................................................................................................................................... 245

    28 APNDICE II: O AMPLIFICADOR OPERACIONAL ............................................................................. 246

    29 CONEXES DOS MDULOS SanUSB ..................................................................................................... 256 30.1 SENSORES............................................................................................................................................................................ 257 30.1.1 INFRAVERMELHO, LDR, LM35 ............................................................................................................................. 257 30.2 BOTES ................................................................................................................................................................................. 260 30.3 LEDs / SEMFORO .......................................................................................................................................................... 262 30.4 BUZZER ................................................................................................................................................................................. 263 30.5 DISPLAY 7 SEG .................................................................................................................................................................. 264

    30 REFERNCIAS BIBLIOGRFICAS ........................................................................................................... 265

  • ndice de Figuras

    Figura 1: Instrues em assembly. ................................................................................................ 11 Figura 2: Memrias. ...................................................................................................................... 14 Figura 3: Ciclo de mquina. .......................................................................................................... 15 Figura 4: Protoboard. ................................................................................................................... 16

    Figura 5: Contatos internos de uma protoboard. ........................................................................... 16 Figura 6: Cdigo de cores de resistores. ....................................................................................... 17 Figura 7: Forma de onda de capacitor. ......................................................................................... 18 Figura 8: Exemplos de Capacitores. ............................................................................................. 18 Figura 9: Clculo demonstrativo de capacitncia. ........................................................................ 18

    Figura 10: Cdigo de cores Capacitores Polister. ....................................................................... 19 Figura 11: Rudo. .......................................................................................................................... 20 Figura 12: Drivers e comunicao. ............................................................................................... 21 Figura 13: Comunicao PIC com PC e via I

    2C. .......................................................................... 22

    Figura 14: Gravao do PIC via PC. ............................................................................................. 24 Figura 15: Processo de gravao com placa SanUSB. ................................................................. 25 Figura 16: Esquemtico de montagem da Ferramenta para 28 pinos. .......................................... 26

    Figura 17: Esquemtico de montagem da ferramenta para 40 pinos. .......................................... 26

    Figura 18: Esquema montado em protoboard. .............................................................................. 28 Figura 19: PCB da placa SanUSB. ............................................................................................... 29 Figura 20: PCB da Ferramenta SanUSB. ...................................................................................... 29

    Figura 21: Circuito COM84 para gravao do gerenciador.hex ................................................... 30 Figura 22: Esquema de ligao do conector serial........................................................................ 30

    Figura 23: Tela de configurao do software de gravao. .......................................................... 31 Figura 24: Tela de confirmao de reconhecimento do circuito................................................... 32 Figura 25: Interface de gravao do microcontrolador via USB. ................................................. 33

    Figura 26: Acesso pasta pelo terminal do LINUX. .................................................................... 36

    Figura 27: Mensagem de programa gravado. ............................................................................... 37

    Figura 28: Esquemtico Pisca LED b7. ........................................................................................ 38 Figura 29: Pisca LED b7 com placa SanUSB. .............................................................................. 39

    Figura 30: Pisca LED b7b6b5 com placa SanUSB. ...................................................................... 39 Figura 31: Pisca LED b7b6b5 com SanUSB em protoboard. ....................................................... 40 Figura 32: Esquemtico Pisca LED b7b6b5. ................................................................................ 40 Figura 33: Pisca 3 LEDs em protoboard. ...................................................................................... 41

    Figura 34: Esquemtico Sequencial de LEDs usando o Port B. ................................................... 43 Figura 35: Botes b0b1 com placa SanUSB. ................................................................................ 44 Figura 36: Ilustrao do circuito de gravao wireless Zigbee..................................................... 46 Figura 37: Gravao via USB de Configurao wireless. ............................................................ 47 Figura 38: Gravao via USB de Adaptador wireless. ................................................................. 48

    Figura 39: Gravao wireless zigbee pelo prompt do Windows. ................................................. 48 Figura 40: Bluetooth conectado placa SanUSB 2550. ............................................................... 50

    Figura 41: Ilustrao e Montagem do Circuito de gravao/comunicao wireless Bluetooth. .. 50 Figura 42: Esquema mdulo BLUETOOTH com placa SanUSB 4550. ...................................... 51 Figura 43: Pareamento do modem bluetooth. ............................................................................... 52 Figura 44: Verificao da porta serial criada pelo modem bluetooth. .......................................... 53 Figura 45: Gravao via USB de Configurao wireless. ............................................................ 53

    Figura 46: Gravao via USB de Adaptador wireless. ................................................................. 54 Figura 47: Gravao wireless bluetooth pelo prompt do Windows. ............................................. 54 Figura 48: Aplicativo Bluetooth 8 cargas. .................................................................................... 56

  • Ferramenta SanUSB: Aplicaes prticas de Eletrnica e Microcontroladores em sistemas computacionais

    [ 7 ]

    Figura 49: Processo de formao das cores RGB. ........................................................................ 60

    Figura 50: Significado de algumas cores. ..................................................................................... 61 Figura 51: Ligao completa do circuito RGB e SanUSB. ......................................................... 61 Figura 52: Pinos Led RGB catodo comum. .................................................................................. 62 Figura 53: O aplicativo BT4SanUSB - RGB. .............................................................................. 63

    Figura 54: A aplicao do projeto Bluetooth, Android e RGB. ................................................... 63 Figura 55: Shield RGB. ................................................................................................................ 64 Figura 56: Ilustrao de processo de monitoramento e aquisio de dados online com mdulo Wifly.

    ...................................................................................................................................................... 65 Figura 57: Instalao do driver CDC (1). ..................................................................................... 71

    Figura 58: Instalao do driver CDC (2). ..................................................................................... 72 Figura 59: Instalao do driver CDC (3). ..................................................................................... 72 Figura 60: Instalao do driver CDC (4). ..................................................................................... 73 Figura 61: Instalao do driver CDC (5). ..................................................................................... 73 Figura 62: Verificao de porta COM instalada. .......................................................................... 74

    Figura 63: Utilizao da porta COM pelo CCS. ........................................................................... 74 Figura 64: Visualizao de textos via serial emulada. .................................................................. 75

    Figura 65: Interface em Java de comunicao serial. ................................................................... 76 Figura 66: CuteCOM. ................................................................................................................... 78

    Figura 67: Interface de comunicao serial em Java para LINUX. .............................................. 79 Figura 68: Esquema boes b0 b1. ................................................................................................. 80

    Figura 69: Botes b0 b1 em protoboard. ...................................................................................... 81 Figura 70: Botes b0 b1 com placa SanUSB. ............................................................................... 81 Figura 71: Esquemtico Semforo com boto para pedestre. ....................................................... 84

    Figura 72: Semforo com boto e semforo para pedestre com SanUSB em protoboard. ........... 85 Figura 73: Buzzer com placa SanUSB. ........................................................................................ 87

    Figura 74: Diagrama de blocos interno do conversor A/D. .......................................................... 90 Figura 75: Uso de perifricos no conversor A/D. ......................................................................... 91 Figura 76: AMP-OP no inversor. ................................................................................................ 92

    Figura 77: Conexo do potencimetro no conversor A/D. ........................................................... 94

    Figura 78:Esquemtico LM35. ..................................................................................................... 94 Figura 79: LM35 com placa SanUSB. .......................................................................................... 95 Figura 80: LM35 em protoboard. ................................................................................................. 95

    Figura 81: Leitura de temperatura via monitor serial. .................................................................. 96 Figura 82: Conexo do termistor. ................................................................................................. 97

    Figura 83: Resposta do termistor. ................................................................................................. 97 Figura 84: Linearizao do termistor. ........................................................................................... 98 Figura 85: Registros de funes especiais. ................................................................................. 100

    Figura 86: Teclado Matricial. ..................................................................................................... 101 Figura 87: Formas de comparao com a senha pr-programada............................................... 102

    Figura 88: Portas Lgicas. ......................................................................................................... 110 Figura 89: Uso de resistores de pull down para aplicar funo lgica 0/1. ................................ 111

    Figura 90: Outras funes lgicas a partir de NOT, OR e AND. ............................................... 112 Figura 91: Exemplo de circuito combinacional (1). ................................................................... 112 Figura 92: Exemplo de circuito combinacional (2). ................................................................... 114 Figura 93: Display de 7 segmentos. ............................................................................................ 115 Figura 94: Conexo do display 7 seg na porta B do PIC. ........................................................... 117

    Figura 95: Esquemtico para multiplexao de 4 displays de 7 segmentos. .............................. 121 Figura 96: Esquemtico Display 7 seg duplo. ............................................................................ 122

    Figura 97: Display 7 seg duplo com placa SanUSB. .................................................................. 122

  • Ferramenta SanUSB: Aplicaes prticas de Eletrnica e Microcontroladores em sistemas computacionais

    [ 8 ]

    Figura 98: Display 7 seg duplo com SanUSB em protoboard. ................................................... 123

    Figura 99: Dado em comunicao serial. .................................................................................... 126 Figura 100: Caracteres ASCII. .................................................................................................... 127 Figura 101: Conectores USART. ................................................................................................ 128 Figura 102: Sinal eltrico RS-232. ............................................................................................. 128

    Figura 103: Circuito de conexo MAX 232. .............................................................................. 129 Figura 104: Motores CC. ............................................................................................................ 133 Figura 105: Motor CC com caixa de reduo. ............................................................................ 134 Figura 106: Relao de transmisso. .......................................................................................... 134 Figura 107: Coroa e sem-fim. ..................................................................................................... 135

    Figura 108: Mosfet IRF540. .................................................................................................... 136 Figura 109: Acionamento de motor com Mosfet. ....................................................................... 137 Figura 110: Situaes encontradas em labirintos. ...................................................................... 137 Figura 111: Uso de sensores ticos para controlar motores. ...................................................... 138 Figura 112: Fluxograma de funcionamento de rob mvel com sensores. ................................ 140

    Figura 113: PWM. ...................................................................................................................... 141 Figura 114: PWM com Mosfet. .................................................................................................. 142

    Figura 115: Ciclo de trabalho. .................................................................................................... 143 Figura 116: ULN 2803. ............................................................................................................... 144

    Figura 117: Esquemtico Rel b7. .............................................................................................. 144 Figura 118: Rel b7 com placa SanUSB. ................................................................................... 145

    Figura 119: Rel b7 com SanUSB em protoboard. .................................................................... 146 Figura 121: Solenide. ................................................................................................................ 147 Figura 122: Rels. ....................................................................................................................... 147

    Figura 123: Acionamento de motor 12V com rel bobina 5V. .................................................. 148 Figura 124: Aplicao de um rel. .............................................................................................. 148

    Figura 125: Rel em protoboard. ................................................................................................ 149 Figura 126: Acionamento de motor nos 2 sentidos com rels em Ponte H. ............................... 150 Figura 127: Ponte H com rels motor CC. ............................................................................... 151 Figura 128: Motor em Ponte H. .................................................................................................. 152

    Figura 129: CI Ponte H L293D. ............................................................................................... 152 Figura 130: Shield ponte H L293D. ......................................................................................... 153 Figura 131: Motor de passo unipolar. ......................................................................................... 155

    Figura 132: Motores de passo unipolar conexo interna. ........................................................ 156 Figura 133: Identificao dos terminais do motor de Passo 28BYJ48. ...................................... 156

    Figura 134: Caractersticas e Lgica de acionamento de motor de passo. ................................. 157 Figura 135: Conexo do motor de passo no PIC. ....................................................................... 158 Figura 136: Shield driver de potncia ULN2803. ....................................................................... 160

    Figura 137: Aplicao de servo-motores em rob mvel. .......................................................... 161 Figura 138: Visualizao interna de um servo-motor. ................................................................ 162

    Figura 139: Micro-servomotor 1,6kg com placa SanUSB. ........................................................ 164 Figura 140: Micro-servomotor 10kg com placa SanUSB. ......................................................... 164

    Figura 141: Sensor ultrassom. .................................................................................................... 166 Figura 142: Visualizao interna de um Fotoacoplador. ............................................................ 169 Figura 143: Aplicao de um fotoacoplador. .............................................................................. 169 Figura 144: Esquema Par infavermelho. ..................................................................................... 170 Figura 145: Conexo do par infravermelho: TIL 32 (emissor) e TIL 78 (receptor). .................. 171

    Figura 146: Sensor Infravermelho com SanUSB em protoboard. .............................................. 172 Figura 147: Sensor Infravermelho com placa SanUSB. ............................................................. 173

    Figura 148: Diagrama de blocos de comunicao infravermelha. .............................................. 175

  • Ferramenta SanUSB: Aplicaes prticas de Eletrnica e Microcontroladores em sistemas computacionais

    [ 9 ]

    Figura 149: Conexo de receptor infravermelho de TV no PIC. ................................................ 176

    Figura 150: Exemplo de proteo do receptor contra emisses externas de raios IR................. 177 Figura 151: Esquema LCD. ........................................................................................................ 179 Figura 152: Conexo do LCD no PIC. ....................................................................................... 179 Figura 153: Display LCD com placa SanUSB. .......................................................................... 180

    Figura 154: Shield LCD com encaixe direto na placa SanUSB. ................................................ 181 Figura 155: Exemplo de aplicao do LCD. ............................................................................... 185 Figura 156: Criao de caracteres especiais. .............................................................................. 187 Figura 157: Circuito sensor com LDR. ....................................................................................... 188 Figura 158: Esquemtico Sensor de Luminosidade LDR. .......................................................... 189

    Figura 159: Sensor de luminosidade LDR com placa SanUSB. ................................................. 189 Figura 160: Sensor de luminosidade LDR com SanUSB em protoboard. .................................. 190 Figura 161: Grfico Lux x Volt. ................................................................................................. 192 Figura 162: Modelagem matemtica dos valores obtidos. ......................................................... 192 Figura 163: Grfico lux x tenso utilizando as equaes 3, 4 e 5. .............................................. 193

    Figura 164: Figura da tela do supervisrio para Iluminncia e Temperatura. ............................ 194 Figura 165: Esquema eletrnico do circuito luxmetro.............................................................. 194

    Figura 166: Foto do circuito montado. ...................................................................................... 195 Figura 167: Barramento I

    2C. ....................................................................................................... 196

    Figura 168: Configurao I2C em TVs. ...................................................................................... 197

    Figura 169: Leitura de dados em comunicao. ......................................................................... 197

    Figura 170: Comandos de incio e fim de comunicao. ............................................................ 198 Figura 171: reconhecimento do byte. ......................................................................................... 198 Figura 172: Escrita de dados. ...................................................................................................... 198

    Figura 173: Recepo e transmisso de dado. ............................................................................ 199 Figura 174: Uso de memria EEPROM externa via I

    2C. ........................................................... 200

    Figura 175: Leitura de valores da memria. ............................................................................... 202 Figura 176: RTC DS1307 e similar. ........................................................................................... 203 Figura 177: Registros de tempo DS1307. ................................................................................... 204

    Figura 178: Datalogger. .............................................................................................................. 207

    Figura 179: Comunicao PIC com PC e via I2C. ...................................................................... 207

    Figura 180: Esquemtico e foto do datalogger conectado ao PIC. ............................................. 215 Figura 181: Checagem de dados. ................................................................................................ 217

    Figura 182: Diagrama de blocos comunicao ModBus. ........................................................... 218 Figura 183: Software de teste de comunicao ModBus. ........................................................... 219

    Figura 184: Fluxograma do sistema de comunicao ModBus. ................................................. 222 Figura 185: Diagrama RTOS SanUSB. ...................................................................................... 224 Figura 186: Implementao de mquina de estado. .................................................................... 225

    Figura 187: Mquina de estado implementada em Linguagem C. ............................................. 225 Figura 188: Selecionando o prximo estado a partir do estado atual. ........................................ 226

    Figura 189: Projeto pisca LED no compilador C18. .................................................................. 229 Figura 190: Simbologia de um amplificador operacional. ......................................................... 246

    Figura 191: Circuito simplificado de um amplificador diferencial. ........................................... 247 Figura 192: Diagrama de componentes internos do LM741. ..................................................... 248 Figura 193: Analogia de um Amplificador operacional. ............................................................ 248 Figura 194: Representao de um amplificador operacional 741. .............................................. 249 Figura 195: Funo de transferncia de um amplificador operacional em malha aberta. .......... 250

    Figura 196: Tenso de sada de um amplificador operacional em malha aberta. ....................... 251 Figura 197: Mdulos SanUSB. ................................................................................................... 256

  • Ferramenta SanUSB: Aplicaes prticas de Eletrnica e Microcontroladores em sistemas computacionais

    [ 10 ]

    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 a seguir, e 77 instrues

    para a famlia de 16 bits (PIC18). A tabela abaixo mostra algumas instrues em assembly.

  • Ferramenta SanUSB: Aplicaes prticas de Eletrnica e Microcontroladores em sistemas computacionais

    [ 11 ]

    Figura 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).

    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.

  • Ferramenta SanUSB: Aplicaes prticas de Eletrnica e Microcontroladores em sistemas computacionais

    [ 12 ]

    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;

  • Ferramenta SanUSB: Aplicaes prticas de Eletrnica e Microcontroladores em sistemas computacionais

    [ 13 ]

    - 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 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.

  • Ferramenta SanUSB: Aplicaes prticas de Eletrnica e Microcontroladores em sistemas computacionais

    [ 14 ]

    Figura 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.

    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.

  • Ferramenta SanUSB: Aplicaes prticas de Eletrnica e Microcontroladores em sistemas computacionais

    [ 15 ]

    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 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 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).

  • Ferramenta SanUSB: Aplicaes prticas de Eletrnica e Microcontroladores em sistemas computacionais

    [ 16 ]

    Figura 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.

    Figura 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:

  • Ferramenta SanUSB: Aplicaes prticas de Eletrnica e Microcontroladores em sistemas computacionais

    [ 17 ]

    Figura 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.

    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

  • Ferramenta SanUSB: Aplicaes prticas de Eletrnica e Microcontroladores em sistemas computacionais

    [ 18 ]

    so um curto e carregados abrem o circuito, por isso so utilizados tambm para isolar

    fontes CC.

    Figura 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 8: Exemplos de Capacitores.

    A figura abaixo mostra a identificao de capacitores cermicos.

    Figura 9: Clculo demonstrativo de capacitncia.

    A figura abaixo mostra a identificao de capacitores de polister.

  • Ferramenta SanUSB: Aplicaes prticas de Eletrnica e Microcontroladores em sistemas computacionais

    [ 19 ]

    Figura 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

  • Ferramenta SanUSB: Aplicaes prticas de Eletrnica e Microcontroladores em sistemas computacionais

    [ 20 ]

    contador de evento, pode 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 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

  • Ferramenta SanUSB: Aplicaes prticas de Eletrnica e Microcontroladores em sistemas computacionais

    [ 21 ]

    mtodo apresenta velocidade de comunicao de at 64 kB/s e utilizado pelo

    gerenciador de gravao da 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 12: Drivers e comunicao.

  • Ferramenta SanUSB: Aplicaes prticas de Eletrnica e Microcontroladores em sistemas computacionais

    [ 22 ]

    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 Windows@ so nativos, ou seja, no necessrio instalar nenhum

    driver no sistema operacional para que o PC reconhea o dispositivo.

    1.15 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 pode adotar o princpio Dual Clock realizado pela instruo

    clock_int_4MHz(), 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 13: Comunicao PIC com PC e via I2C.

    Esse princpio de clock paralelo,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.

  • Ferramenta SanUSB: Aplicaes prticas de Eletrnica e Microcontroladores em sistemas computacionais

    [ 23 ]

    2 FERRAMENTA SanUSB Gravao via USB Exemplos Pisca LED

    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, Mac OSX 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.

  • Ferramenta SanUSB: Aplicaes prticas de Eletrnica e Microcontroladores em sistemas computacionais

    [ 24 ]

    Figura 14: 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,

    terceiro lugar em inovao na Semantec 2011 do IFCE e campees na V Feira Estadual de

    Cincias e Cultura do Cear na categoria robtica educacional em 2011.

    2.1 GRAVAO DE MICROCONTROLADORES PIC COM A FERRAMENTA 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.

    Caso voc esteja montando o circuito SanUSB com material adquirido de no-

    revendedores SanUSB, 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 no tenha um gravador de PIC, siga o tutorial do tpico a seguir para construir

    um gravador via serial.

    Se voc estiver usando a placa SanUSB ou o kit SanUSB para protoboard adquirido

    de revendedores da Ferramenta SanUSB, voc no deve se preocupar em gravar o

    gerenciador, pois o PIC j ser enviado com o bootloader e a placa estar no ponto de ser

    reconhecida via USB pelo PC e permitir a gravao do microcontrolador. Siga o passo a

    passo a seguir:

  • Ferramenta SanUSB: Aplicaes prticas de Eletrnica e Microcontroladores em sistemas computacionais

    [ 25 ]

    Figura 15: Processo de gravao com placa SanUSB.

    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/[email protected] 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, 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 ExemploseBibliotecasCCSlocalizada na pasta instalada do

    compilador (C:\Arquivos de programas\PICC\Drivers ). A representao bsica do circuito

    SanUSB montado em protoboard mostrada a seguir:

  • Ferramenta SanUSB: Aplicaes prticas de Eletrnica e Microcontroladores em sistemas computacionais

    [ 26 ]

    Figura 16: Esquemtico de montagem da Ferramenta para 28 pinos.

    Para um microcontrolador de 40 pinos, o circuito mostrado abaixo:

    Figura 17: Esquemtico de montagem da ferramenta para 40 pinos.

  • Ferramenta SanUSB: Aplicaes prticas de Eletrnica e Microcontroladores em sistemas computacionais

    [ 27 ]

    Os componentes bsicos do circuito so:

    1 microcontrolador da famlia PIC USB (18F2550/2455 ou 18F4550/4455);

    1 cristal de 20MHz;

    2 capacitores de 22pF;

    2 capacitores de 1uF (um no pino 14 Vusb e outro entre o +5V e o Gnd ) ;

    3 leds e 3 resistores de 390 (s necessrio um led com resistor no pino B7);

    1 resistor de 2k2 e um boto ou jump para gravao no pino 1;

    1 diodo qualquer entre o +5V e o o pino Vdd;

    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 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 cabo USB.

  • Ferramenta SanUSB: Aplicaes prticas de Eletrnica e Microcontroladores em sistemas computacionais

    [ 28 ]

    Figura 18: Esquema montado em protoboard.

    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] ou com a

    empresa fabricante R Componentes: [email protected] .

    Esta apostila trar diversos exemplos para ajudar voc no desenvolvimento de

    projetos com microcontroladores PIC utilizando a Ferramenta SanUSB!

    Temos vdeo-aulas disponveis no endereo:

    www.youtube.com/recomponentes.

    Pode-se encontrar diversos projetos em:

    www.youtube.com/Imaculada27, www.youtube.com/sandrojuca e www.youtube.com/SanUSB2.

    Grupo de apoio: www.tinyurl.com/SanUSB .

  • Ferramenta SanUSB: Aplicaes prticas de Eletrnica e Microcontroladores em sistemas computacionais

    [ 29 ]

    Figura 19: PCB da placa SanUSB.

    Se preferir confeccionar a placa, possvel tambm imprimir, em folha de

    transparncia, o PCB e o silk configurado em tamanho real, como mostra a figura 2.6,

    transferir para a placa de cobre, corroer, furar e soldar os componentes. Mais no vdeo

    disponvel em: http://www.youtube.com/watch?v=Xm8YJ_XaGA8.

    Figura 20: PCB da Ferramenta SanUSB.

    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

  • Ferramenta SanUSB: Aplicaes prticas de Eletrnica e Microcontroladores em sistemas computacionais

    [ 30 ]

    www.tinyurl.com/SanUSB e clicar no item Arquivos ou na aba DOWNLOADS em:

    https://www.recomponentes.com/conteudo/DOWNLOADs.html .

    Durante a programao do microcontrolador basta inserir, no inicio do programa em

    C, a biblioteca cabealho SanUSB (#include SanUSB.h) 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 ). Esta 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.

    2.2 CIRCUITO 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.

    Figura 21: Circuito COM84 para gravao do gerenciador.hex

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

    Figura 22: Esquema de ligao do conector serial.

  • Ferramenta SanUSB: Aplicaes prticas de Eletrnica e Microcontroladores em sistemas computacionais

    [ 31 ]

    Este circuito de gravao funciona com o software PICPgm (detectado como JDM

    Programmer) ou com WinPic (detectado como COM84 Programmer). 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.

    Figura 23: 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.

  • Ferramenta SanUSB: Aplicaes prticas de Eletrnica e Microcontroladores em sistemas computacionais

    [ 32 ]

    Figura 24: Tela de confirmao de reconhecimento do circuito.

    2.3 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, caso no tenha adquirido o PIC ou a placa

    SanUSB de um de nossos revendedores) com um gravador especfico para PIC ou com um

    circuito simples de gravao ICSP mostrado nas prximas sees, o novo gerenciador de

    gravao pela USB GerenciadorPlugandPlay.hex disponvel na pasta Gerenciador,

    compatvel com os sistemas operacionais Windows@, Linux e Mac OSX. Caso tenha

    adquirido nossa placa, no necessrio gravar o gerenciador, pois o PIC j foi enviado

    gravado.

    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/[email protected] 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:

  • Ferramenta SanUSB: Aplicaes prticas de Eletrnica e Microcontroladores em sistemas computacionais

    [ 33 ]

    Figura 25: Interface de gravao do microcontrolador via USB.

    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.

    Para proteger o executvel sanusb de excluso do anti-virus, como por exemplo, o AVG,

    basta ir em ProteoResidente do anti-virus AVG:

    Clicar em gereciar execesses, como na figura abaixo:

  • Ferramenta SanUSB: Aplicaes prticas de Eletrnica e Microcontroladores em sistemas computacionais

    [ 34 ]

    Clicar em Gerenciar Excees e adicionar caminho. Ento inserir o caminho do

    executvel que em C:\Program Files\SanUSB ou em C:\Arquivos de Programas\SanUSB

    e clicar em OK.

  • Ferramenta SanUSB: Aplicaes prticas de Eletrnica e Microcontroladores em sistemas computacionais

    [ 35 ]

    Pronto isso. Para reinstalar o executvel da subpasta SanUSBwinPlugandPlay , basta

    instal-lo de dentro do arquivo .zip ou .rar.

    2.4 GRAVANDO O PIC VIA USB PELO TERMINAL DO LINUX OU MAC OSX

    Esta aplicao realizada de forma simples em linha de comando no terminal do

    Mac OSX. Para abrir o terminal necessrio baixar e instalar o software Xcode. No Linux,

    instale o sanusb.deb disponvel em

    http://www.4shared.com/file/sIZwBP4r/100727SanUSB.html .

    Para iniciar a gravao com linhas de comando importante seguir os seguintes passos:

    1. Grave no microcontrolador, somente uma vez, com um gravador especfico para PIC

    com o circuito simples de gravao COM84 descrito nesta apostila ou outro gravador

    qualquer, o gerenciador de gravao pela USB Gerenciador.hex, que multiplataforma

    (Linux, Mac OSX e Windows@).

    2. Pelo Terminal do Linux ou Mac OSX acesse onde est o executvel sanusb, instalado

    pelo arquivo sanusb.deb, e no Mac OSX acesse a pasta de arquivos

    SanUSBMacPlugandPlay, onde est o executvel sanusb. Mais dealhes em:

    http://www.youtube.com/watch?v=rSg_i3gHF3U.

    3. Aps entrar na pasta do exectvel sanusb, acesse informaes do contedo deste

    arquivo digitando:

    . / sanusb-h

    A figura abaixo mostra o printscreen de exemplo de um processo de acesso pasta

    e tambm do processo de gravao pelo terminal:

  • Ferramenta SanUSB: Aplicaes prticas de Eletrnica e Microcontroladores em sistemas computacionais

    [ 36 ]

    Figura 26: Acesso pasta pelo terminal do LINUX.

    4. Com o circuito SanUSB montado, coloque-o em modo de gravao (pino 1 ligado ao

    Gnd com boto pressionado ou jump ) e conecte o cabo USB do circuito no PC.

    5