Apostila SanUSB CCS
-
Upload
pedro-igor -
Category
Documents
-
view
181 -
download
10
Embed Size (px)
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