Osciloscópio Digital De 4 canais e Analisador Lógico de até 16 Canais



Documentos relacionados
1- Scilab e a placa Lab_Uino. 2- Instalação do ToolBox

Módulo de Desenvolvimento PIC16F877A

Medidor Powersave V2 USB

A porta paralela. 1 - Introdução. 2- Modelos de porta paralela

Boot Camp Manual de Instalação e Configuração

MANUAL DE INSTRUÇÕES

Manual de Instalação da Plataforma Scorpion. 1. Como conectar a Plataforma Scorpion com a Xilinx Starter-3E kit

Capítulo 12. Projeto 5 Controle de Motores de Passo Circuito e Funcionamento

1. Verificar se a Microsoft.NET Framework 2.0 está instalada. Se não estiver, efectuar o download a partir do link e instalar:

Seminários S2i. Barramento USB. Teoria e Projetos. Guilherme Francisco Mallmann

LINEAR EQUIPAMENTOS RUA SÃO JORGE, TELEFONE : SÃO CAETANO DO SUL - SP - CEP:

Boot Camp Manual de Instalação e Configuração

O Manual do ssc. Peter H. Grasch

Manual de Instruções

Fontes de Alimentação

Manual do Gestor da Informação do Sistema

SISTEMA DE CLIMATIZAÇÃO

Figura 01 Visão Geral da Placa

Ladibug TM 2.0 Software de Imagem para o Apresentador Virtual Manual do Utilizador - Português Europeu

Atenção ainda não conecte a interface em seu computador, o software megadmx deve ser instalado antes, leia o capítulo 2.

Manual MifareUSB/Serial

Importante! Especificações. Instalação

Podium View TM 2.0 Software de Imagem para o Apresentador Virtual Manual do Utilizador - Portugués

Trabalho Prático Nº2 Escrita e Leitura em Portos IO

CONCEITOS BÁSICOS DE UM SISTEMA OPERATIVO

QL-500 QL-560 QL-570 QL-650TD QL-1050

Características da Câmara de Vídeo GE111

DeviceNet Drive Profile CFW-09

Introdução à Engenharia de Computação

Akropole Catequista. Todos os Ficheiros no Akropole Catequista trabalham com uma simples barra de edição, com 4 botões:

2.1 Montando o cabo serial Conectando o receptor ao PC Instalando o programa (DRU)... 5

Interrupções. As interrupções são casos especiais de chamadas de procedimentos.

Sistemas Operativos I

Autor: Tiago Lone Nível: Básico Criação: 19/12/2005 Última versão: 18/12/2006. PdP. Pesquisa e Desenvolvimento de Produtos

R O B Ó T I C A. Sensor Smart. Ultrassom. Versão Hardware: 1.0 Versão Firmware: 1.0 REVISÃO

Como produzir e publicar uma apresentação online dinâmica (Prezi)

Obrigado por adquirir o Optimus Kanguru Hotspot 4G.

Compatível com o módulo AIO571 Nota: Os conectores de interface dos módulos podem ser do tipo alavanca (para os módulos novos) ou do tipo parafuso.

ESCOLA EB2,3/S Dr. ISIDORO DE SOUSA

CONTROLADOR LÓGICO PROGRAMAVEL

Dedicado. V 3.20 Jul09 r2.00

REPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade

Upgrade / Licença ERoad 2015

Introdução à estrutura e funcionamento de um Sistema Informático

Software RedeMB5 Manual do Usuário (Ver. 2)

Portátil Série Aspire

Copyright 2013 VW Soluções

Gestor de Janelas Gnome

Guia de Usuário do Servidor do Avigilon Control Center. Versão 5.6

Instalar o computador

Cerne Tecnologia e Treinamento (21) (11) cerne@cerne-tec.com.br MSN: cerne-tec@hotmail.com Skipe: cerne-tec

Manual do usuário Produto: Kit Modular com LPC2368 V1R0 Versão deste manual: 1.1

Integração dos Leitores RFID no autómato programável

Departamento de Matemática e Engenharias. Licenciatura em Engenharia de Sistemas e Computadores (LESC) Laboratórios III (Microprocessadores)

Instalação e configuração

O processador é um dos elementos componentes do computador moderno, sendo responsável pelo gerenciamento de todo o computador.

Volante Suzuka. Manual do Usuário

DISPOSITIVOS DE BLOCO. Professor: João Paulo de Brito Gonçalves

UNIDADE 1 TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

Conectar diferentes pesquisas na internet por um menu

INSTRUMENTAÇÃO E MEDIDAS

2ºCiclo (5º e 6º Anos de escolaridade) 3ºCiclo (7º e 8º Anos de escolaridade)

MANUAL DE PROCEDIMENTOS PLATAFORMA DE INSCRIÇÕES ONLINE

Entradas/Saídas. Programação por espera activa Programação por interrupções

Formador: Carlos Maia

Início Rápido. Nero BackItUp. Ahead Software AG

Introdução ao CoolEdit c : programa de edição de som digital

LINEAR EQUIPAMENTOS RUA SÃO JORGE, 267/269 - TELEFONE: (11) SÃO CAETANO DO SUL - SP - CEP:

GUINDASTE CONTROLADO POR PC ATRAVÉS DE INTERFACE SERIAL RS- 232

Comunicação de Dados. Aula 4 Conversão de Sinais Analógicos em digitais e tipos de transmissão

Técnico/a de Refrigeração e Climatização

Usando o computador portátil GIGABYTE pela primeira vez. 2 Conecte o adaptador AC no conector de entrada DC no lado esquerdo do computador portátil.

PLACA CENTRAL - MANUAL DE UTILIZAÇÃO

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

1. SINTAXE DA LINGUAGEM ASSEMBLY

A idéia hardware sugerida é colocar a placa entre o PC e o microcontrolador, conforme mostrado no esquema abaixo.

Manual do Teclado de Satisfação Online WebOpinião

Manual de utilização do módulo NSE METH 3E4RL

Hamtronix CONTROLE REMOTO DTMF. CRD200 - Manual de Instalação e Operação. Software V 2.0 Hardware Revisão B

XPontos. Manual de Instruções

ACENDENDO AS LUZES. Capitulo 2 - Aula 1 Livro: Arduino básico Tutor: Wivissom Fayvre

Cerne Tecnologia e Treinamento (21) (11) cerne@cerne-tec.com.br MSN: cerne-tec@hotmail.com Skipe: cerne-tec

Índice. Como aceder ao serviço de Certificação PME? Como efectuar uma operação de renovação da certificação?

KVM CPU Switch 4 Portas Manual do Usuário

Placas de Modem. Prof. Alexandre Beletti Ferreira

Manual Equipamento ST10 Flasher Rev. 1

Objectivos Gerais da Aplicação 5 Requisitos Mínimos e Recomendados 5 Processo de Instalação 6

13/10/11 TIPOS DE UTILITÁRIOS UTILITÁRIOS 0798 INTRODUÇÃO À PROGRAMAÇÃO TIPOS DE UTILITÁRIOS TIPOS DE UTILITÁRIOS

Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger

Apresentação de REDES DE COMUNICAÇÃO

Visão Artificial Para a Indústria. Manual do Utilizador

ESTRATÉGIAS /ACTIVIDADES. Fazer uma abordagem teórica e simples

MANUAL DO UTILIZADOR DA WEBCAM HP

REDES DE COMPUTADORES HISTÓRICO E CONCEITOS

PROGRAMAÇÃO DE UM MICROPROCESSADOR

PROJETO DE REDES

1 Esfera de aço 1 Transitor BC547

Conhecendo o seu E173

PLANIFICAÇÃO ANUAL ANO LETIVO DE 2013/2014 Curso de Educação e Formação Tipo 3 Nível 2

AULA: Introdução à informática Computador Digital

Transcrição:

Osciloscópio Digital De 4 canais e Analisador Lógico de até 16 Canais Renato Batista Pereira 1030375 Departamento de Engenharia Electrotécnica Instituto Superior de Engenharia do Porto 2009 1

4 - Descrição do Circuito 4.1 - Desenvolvimento da placa de comunicação USB: O tipo de comunicação utilizada é USB e para tal foi usada a PIC18F4550, pois, já tem integrado uma porta USB. A comunicação USB foi escolhida porque é um meio de comunicação que nos permite elevadas taxas de transmissão, o que não era exequível com o protocolo RS232. Para tal usamos o esquema em baixo que nos permite realizar a parte da comunicação com o PC. Figura 3 USB Basic Board Este circuito simples é o requisito mínimo para estabelecer comunicação USB com o PC. Realizamos este esquema através da informação adquirida pelo fabricante Microchip. O hardware ilustrado só por si não faz nada, para tal é preciso programa-lo com o Bootloader, programa este, que possui todas as rotinas do protocolo USB bem como o processo de inicialização da PIC. O Bootloader 50

desenvolvido foi uma alteração do disponibilizado pelo fabricante que estava preparado para outro tipo de hardware, nomeadamente as boards de desenvolvimento da Microchip. O software utilizado para compilar o código foi o MPLAB C18, disponibilizado pela Microchip. Depois de compreender o Bootloader, disponível pelo fabricante, procedemos á modificação para compatibilizar com o nosso hardware. No entanto os programadores de PIC do ISEP não tinham suporte para programar a PIC18F4550, o que fez regressar ao trabalho de pesquisa por um programador que nos permitisse programar a PIC. 4.2 - Placa programadora Para programar a PIC, utilizamos um programador básico do tipo JDM que nos permitiu programar o dispositivo pela porta RS232. Figura 4 Programador JDM 51

Depois de programada a PIC, testamos o firmware ligando ao PC. Tivemos alguns problemas no inicio pois nem sempre o firmware funcionava bem ou nem mesmo funcionava. Com umas rectificações atingiu-se o funcionamento correcto. De momento, o dispositivo estabelece comunicação com o PC e possui a possibilidade de ser programado via USB. Para tal é necessário o driver USB da PIC 18F4550 e o pacote de desenvolvimento PICDEM FS USB Starter Kit. Quanto ao desenvolvimento do Osciloscópio, foi decidido desenvolver um osciloscópio de 4 canais. Para isso utilizou-se a seguinte filosofia: Figura 5 Fluxograma Hardware Na primeira fase, o circuito de condicionamento de sinal é feito com Amplificadores Operacionais e controlado por computador. De seguida, o sinal é convertido pelo AD e transmitido à PIC que envia a informação para o PC, e este mostra o sinal na aplicação desenvolvida em visual Basic. 4.3 - Condicionamento de sinal A parte de condicionamento de sinal resume-se a um conjunto de ampops que transformam uma variação de sinal na entrada para uma variação de sinal na saída entre [0,+5] V, independentemente dos valores de entrada, o ganho dos ampops pode 52

ser controlado por PC através de um switch analógico fornecido como sample da Maxim. Figura 6 Condicionamento de sinal universal Os Amplificadores Operacionais estão contidos num integrado (CA320EN), em par, num formato DIP de 8 pinos. A primeira etapa tem montagem de amplificador inversor. Este amplificador condiciona a onda de entrada Vi para que as amplitudes máximas sejam sempre de 2.5 V de pico. O switch/multiplexer analógico usado é o Max 338. Este componente permite fazer uma selecção das resistências de forma simples e sem alterações no circuito de montagem inversora. Em baixo está ilustrada a tabela de verdade do Max338. Tabela 4 Tabela MAX338 As entradas A2 a A0 são controladas pelo utilizador na aplicação em Visual Basic permitindo total controlo do dispositivo. 53

Para cada canal de selecção, foram calculadas as resistências R2, em que R1=10k. Variação Vi (Vp) Vo1 (Vp) Ganho 1º Ampop R (Ohm) 0,1 2,5 25 250000 0,2 2,5 12,5 125000 0,5 2,5 5 50000 1 2,5 2,5 25000 2 2,5 1,25 12500 5 2,5 0,5 5000 10 2,5 0,25 2500 20 2,5 0,125 1250 Tabela 5 Ganhos de selecção de tensão Estes ganhos foram calculados de acordo com a fórmula: R2 A = R1 Para garantir os ganho de uma forma perfeita ou mais próxima da ideal usamos potenciómetros para garantir os valores exactos de resistência. No entanto, nesta fase, para as variações máximas do sinal para cada selecção, o sinal na saída do primeiro ampop varia entre [-2.5;2.5] V. O AD funciona com tensões de referencia de [0;+5] V, e para garantir isso, utilizamos um circuito somador na saída da primeira etapa do circuito para somar uma componente continua de +2,5V. O potenciómetro R53 é variado na fase final para que a tensão de referência seja 2,5V e os potenciómetros R49, R50 e R54 são iguais, para que a saída do circuito seja: Vo 2 = Vref + Vo1 Assim é garantido um condicionamento de sinal de [0,+5] V para qualquer tipo de variação de entrada. 54

4.4 - Conversão Analógico para Digital O AD utilizado é o Max154, de 8 bits, com uma taxa de conversão de 2.5µs. Possui 4 entradas analógicas, o que possibilita lerem 4 sinais analógicos com o mesmo integrado. O circuito seguinte representa o circuito do AD: Figura 7 Circuito básico para o AD MAX154 Os 4 diodos que estão na entrada analógica servem para em caso de sobretensão não danificar o AD. Os 2 bits de selecção de canal servem para seleccionar um dos 4 canais para o AD converter, o bit de leitura é o bit que serve de amostragem, que faz com que o AD converta a uma taxa de amostragem predefinida pelo utilizador. Este bit a 1 faz com que o AD desligue, a 0 faz a conversão e leitura. O barramento de dados está ligado ao Porto B da PIC que processa e envia os dados para o PC. 4.5 - PIC18F4550 Este dispositivo e o núcleo principal de todo este projecto. É ele que controla os componentes, processa os dados e os transmite para o PC. É baseado no ultimo modelo de microprocessador RISC da Microchip. Funciona a cerca de 40 MHz com 10 MIPS. 55

4.6 Esquema da Placa Global Aqui temos o desenho completo do trabalho realizado, com todos os componentes descriminados: Figura 8 Circuito global em schematic 56

4.8 - PCB do esquema Global Figura 9 Circuito global em PCB 57

5 - Descrição do Programa/Código 5.1 - Software Bootloader O bootloader da Microchip é uma sequência de código de inicialização que configura a PIC para poder receber dados pela interface de USB, permitindo a execução de comandos provenientes de uma aplicação de programação no PC, para descarregamento de código desenvolvido pelo construtor através da mesma interface USB. Este bootloader é vantajoso em comparação com a programação em programador externo, pois não é necessário remover a PIC do circuito onde ela opera, permitindo apagar e programar novas aplicações em caso de actualização ou necessidade de alteração do software. É comummente denominado como Flash Bootloader pois permanece na memória flash do microprocessador e é sempre a primeira aplicação a ser executada após o reset. O bootloader da Microchip foi descarregado para a PIC por meio do programador JDM em conjunção com a aplicação WinPic800. Foi necessário ajustar as palavras de configuração do ficheiro.hex devido às alterações existentes no hardware (cristal, temporizador interno, modo USB, interrupções, etc). Embora houvesse dificuldade na calibração correcta das palavras de configuração, após análise da datasheet e consulta online do fórum da Microchip, a programação da PIC foi bem sucedida, visto a PIC enumerar e autenticar correctamente por USB quando conectada. O Source Code do Bootloader não foi alterado, apenas foi estudado de forma a aprofundar o conhecimento sobre a programação da interface USB. 58

O cabeçalho do código principal do Bootloader está apresentado na figura seguinte: Figura 10 USB Bootloader Version 1.00 59

O funcionamento do bootloader é descrito no diagrama de blocos seguinte e no texto que o procede: Figura 11 Fluxograma Software PIC Após o inicio do programa ( Start ), são inicializados os registos, definidas variáveis e verificadas os pinos dos portos que definem se o código do bootloader será executado ( Bootloader Button Pressed ). Se o pino 2 do Porto E estiver no nível lógico zero, o código a executar será o do bootloader. O código do bootloader começa por inicializar as portas dos leds para coloca-los a piscar, em padrões definidos (ver tabela no capitulo seguinte), consoante o estado de comunicação do módulo USB ( minitallleds ). 60

De seguida, é configurado o módulo USB interno e inicializados os buffers dos canais de entrada e saída ( minitializeusbdriver ). O estado da interface USB no hardware é verificada ( USBCheckBusStatus ) e o serviço de enumeração e autenticação USB é inicializada ( USBDriverService ). Caso a enumeração não ter terminado ou ainda se encontrar em progresso, a secção de código do BootService não é executada. Se a interface de comunicação USB estiver completamente configurada e correctamente enumerada, os leds devem piscar alternadamente, indicando canal preparado para comunicação. O programa ficará a correr em ciclo fechado apenas colocando os leds nos estados lógicos do estado da interface USB, esperando a recepção de um comando de controlo vindo pelo USB por parte da aplicação no PC ( USBDriverService ), executando o código ao qual o comando se refere, preparando a resposta à execução do comando ( BootService ) e enviando os dados de volta à aplicação no PC ( USBDriverService ). Os comandos, enviados pela aplicação de programação por USB, Microchip PICDEM FS USB Demonstration Tool, permitem realizar algumas operações tais como leitura da versão do bootloader instalado, leitura do código existente no espaço de programação dedicado a código a ser programável por USB, escrita de código a ser executado em funcionamento normal, formatação do espaço dedicado a código de funcionamento normal, leitura de dados de EEPROM, escrita de dados na EEPROM, escrita de configuração da PIC, executar o reset á PIC, entre outros. O modo de comunicação de USB do bootloader é baseado em interrupções provenientes do PC, o PC envia dados e a PIC retorna os dados respondendo, não ao contrário. A comunicação é feita em pacotes de um byte de dados de cada vez, célere a suficiente para permitir a execução da programação em menos de 5 segundos. A figura seguinte demonstra a interface de programação por USB fornecida no pacote de software Microchip USB Framework, distribuída e disponível no site da Microchip. 61

Figura 12 Ilustração USB PICDEM(TM) 5.2 - Software Placa Principal e Periféricos Através da análise do código do bootloader, e de um exemplo de código rato USB fornecido pela Microchip no pacote de desenvolvimento USB, começou-se a desenvolver o software da PIC, no compilador C18 fornecido pela Microchip. Inicialmente ponderou-se a programação em linguagem assembly, ideia essa que foi colocada de parte devido à elevada complexidade dos protocolos e funções USB nessa linguagem. Estudamos e utilizamos a linguagem C, do compilador C18 no MPLAB C18. 62

O cabeçalho do código principal do Bootloader está apresentado na figura seguinte: Figura 13 Firmaware Mouse Demo 63

Na figura abaixo está descrita, em diagrama de blocos, o funcionamento do código geral na PIC. Figura 14 Processo de inicialização Após o modo de bootloader ter sido verificado no arranque e negado, o programa coloca o program counter a 0x800, sendo este o inicio do código do programa normal (principal) da PIC, o equivalente ao 0x000. As interrupções também são deslocadas o mesmo número estando agora nas posições 0x808H (interrupções de alta prioridade, alterada colocando um salto na 0x008H) e 0x818H (interrupções de baixa prioridade, alterada colocando um salto na 0x018H). Após o inicio do programa principal, são re-inicializados os registos, definidas variáveis e colocados os estados nos portos e são inicializadas as portas dos leds para coloca-los a piscar, em padrões definidos (ver tabela seguinte), consoante o estado de comunicação do módulo USB ( InitializeSystem ). De seguida, é configurado o módulo USB interno e inicializados os buffers dos canais de entrada e saída. O estado da interface USB no hardware é verificada e o serviço de enumeração e autenticação USB é inicializada ( USBTasks ). Caso a enumeração não tenha terminado ou ainda se encontrar em progresso, a secção de código do ProcessIO não é executada. 64

Quando a interface de comunicação USB estiver completamente configurada e correctamente enumerada, os leds devem piscar alternadamente, indicando canal preparado para comunicação. O programa ficará a correr em ciclo fechado apenas colocando os leds nos estados lógicos do estado da interface USB, esperando a recepção de um comando de controlo vindo pelo USB por parte da aplicação no PC ( USBTasks ), executando o código do comando correspondente, preparando os dados para envio da resposta de volta à aplicação no PC ( ProcessIO ) e envio dos dados na secção ( USBTasks ). Estado Interface USB SUSPEND DETACHED_STATE ATTACHED_STATE POWERED_STATE DEFAULT_STATE ADDRESS_STATE CONFIGURED_STATE Estado dos leds 1: Toggle 2: =LED1 1: Off 2: Off 1: On 2: On 1: On 2: Off 1: Off 2: On 1: Toggle 2: Off 1: Toggle 2:!LED1 Tabela 6 Estado de funcionamento USB 5.3 Software de Interface Gráfica no PC Recorreu-se ao Visual Basic 6.0 para desenvolver a aplicação de interface com o dispositivo, utilizável no PC, visto ser uma linguagem de alto nível, de programação orientada a objectos que permite desenvolver uma interface de utilizador com facilidade e rapidez. A interface gráfica desenvolvida até ao momento encontra-se 65

apresentada nas imagens seguintes, tanto para a parte de osciloscópio digital, tanto como de analisador lógico. Figura 15 Interface windows A aplicação em Visual Basic 6 foi baseada na aplicação de interface com o exemplo do HID MOUSE EXAMPLE da Microchip, apresentado na figura seguinte. Figura 16 Interface Windows basica A aplicação demonstra o envio de um byte para a PIC por USB e a recepção desse mesmo byte por parte da aplicação. Permite enviar o byte a cada clique num botão, ou continuamente num intervalo de tempo predefinido. O código em que nos 66

baseamos principalmente está contido num módulo de declarações de API s de interface USB ( Application Programming Interface ) que permite utilizar as funções existentes de interface USB no sistema operativo. Para além do módulo de API s existente neste exemplo, foi necessário recorrer ao uso de outros módulos, pesquisados e obtidos na Internet, posteriormente modificados para serem utilizados na aplicação. Entre eles destacam-se os módulos de classes com funções de API s de contadores de alta performance, visto os timer s do VB não terem a resolução suficiente para determinarem intervalos de tempo de transferências por USB, pois a resolução mínima deles é 1ms e não contam o intervalo de tempo quando o código da sua interrupção é executado. As funções o timer de alta performance é baseado no numero de clocks do CPU entre o inicio e a paragem do clock. Recorreu-se à construção de um módulo de manipulação de bits visto ser necessária a conversão de valores decimais para binário e vice-versa, decimal para hexadecimal e vice-versa, binário para hexadecimal e vice-versa. A maior parte destas funções está presente na livraria de desenvolvimento MSDN fornecida em conjunto com o Visual Studio 6.0 no qual está presente o Visual Basic 6.0 tendo o inconveniente de a maior parte das funções serem encontradas se for conhecida a sua designação e finalidade, daí a pesquisa por módulos já existentes. A componente de código do DFT (Direct Fourier Transform) foi obtida na Internet através da análise do código de uma função de um projecto de um osciloscópio digital, desenvolvido numa outra faculdade. O link pode ser encontrado nas referências. Actualmente a análise da DFT só é executada no canal a ser amostrado de momento. O analisador lógico, apresentado na figura da direita, lista a amostragem a ser efectuada na PIC, 16 bits de cada vez. A amostragem está a ser feita a 16 bits, por pedido da aplicação no PC. De momento a FIFO ainda não foi implementada, limitando o funcionamento do analisador lógico. Taxa de amostragem seguida 409600 Hz, até 512 amostras guardadas no buffer interno. Taxa de amostragem por pedido de interrupção de USB encontra-se nos 75Hz devido ao tempo de pedidos de dados por parte da aplicação no PC. Análise da interface USB na PIC indica que é possível atingir taxas de amostragem e taxas de transferências elevadas. 67

A PIC têm capacidade de enviar dados pela interface USB a cada milissegundo, possui 16 canais ( endpoints ), cada um com 64bytes por transferência, totalizando cerca de 1024 KBytes por segundo de transferência máxima, ou 8Mbits por segundo. Taxa de amostragem perto de 1MHz é teoricamente possível (em tempo real), embora com utilização da FIFO possa atingir os 66Mhz. 68

6 - Placa Programadora 6.1 - Programador JDM Na figura seguinte é apresentado o programador. As tensões da porta série não possibilitam a programação directa da PIC. Para se programar uma PIC precisa-se Ground, +5V para alimentação e +12.5V para o sinal de programação. A norma RS232 indica que o valor lógico 0 está entre -3V a -25V (normalmente a -12V) e o valor lógico 1 está entre +3V a +25V (normalmente a +12V). A norma RS232 estabelece como valores válidos para o valor lógico 0 o intervalo de -8V a -12V e para o valor lógico 1 o intervalo de +8V a +12V. Na maioria dos PC s as tensões dos sinais andam perto de -8V e +8V. Figura 17 Programador JDM em schematic 69

Para se conseguir obter +12.5V de tensão de programação, cria-se uma massa de alimentação da PIC que está a -5V relativamente ao Ground da porta série. Desta forma o Ground da porta série está a +5V do Ground da PIC, servindo ela como alimentação para a mesma. O condensador de 22uF carrega-se relativamente à queda de tensão dos 2 diodos 1N 4148 (à direita) estabilizando-se no zener 5v1, servindo de fonte de alimentação +5V. O condensador de 100uF carrega-se relativamente à queda de tensão do diodo 1N 4148 (à esquerda) e do transístor 2N 3904 (à esquerda) estabilizando-se na série dos zener 5v1 e 8v2 a cerca de 13V. Esta tensão é utilizada para programação da PIC. Os sinais dos restantes pinos podem ser obtidos directamente da porta série do PC, sendo estes os Data e Clock, obtidos respectivamente do CTS, DTR e RTS. Este método é utilizado normalmente nos programadores de alimentação por porta série, não tendo muito sucesso devido ás características de temporização e consumo de Vpp da PIC, sendo neste desenho já compensado da maneira descrita acima. Frisa-se que este programador só funciona correctamente com um software de programação preparado para ele. ICPROG 1.4 não funciona. Winpic800 funciona. 6.2 - Construção Figura 18 Programador JDM em PCB O software escolhido para desenvolver esta placa circuito impresso foi o Eagle da Cadsoft, versão 4.16. Este programador suporta PIC s de 40, 28,18 e 8 pinos. A figura acima mostra o PCB enquanto a figura seguinte mostra o esquemático. 70

6.3 Utilização Figura 19 Programador em schematic completo Na utilização deste programador convém ter em conta algumas medidas a serem executadas, de modo a não danificar o programador, a PIC ou a porta série do PC. Referem-se as seguintes: Colocar a PIC no programador, estando ele desconectado de tudo. 1º. Colocar a PIC no programador, estando ele desconectado de tudo. 2º. Ligar o cabo série, ou o programador à porta série do PC. 3º. Programar, ler, etc (Descrito na parte do software, mais abaixo). 4º. Desligar o cabo série, ou o programador da porta série do PC. 5º. Remover a PIC do programador. 71

6.4 Software Foi escolhido o Winpic800 como software para programar em conjunto com este programador. O facto de ser grátis, de utilização intuitiva e bastante compatível com este programador levou à sua preferência. Nas figuras seguintes demonstra-se o procedimento para programar um ficheiro compilado no formato hexadecimal (*.hex) que será descarregado para a PIC. Figura 20 Palabras de configuração Na figura acima, estão apresentadas as palavras de configuração do ficheiro hex compilado. Estas servem para determinar a configuração do hardware onde será descarregado, desde frequência de operação a definições de timer s, programação de baixa voltagem, AD s internos, entre outros. A próxima figura mostra o código em blocos hexadecimais, código esse que será descarregado na PIC. 72

Figura 21 Interface principal WinPic800 Os procedimentos para descarregar um ficheiro compilado para uma PIC através do programador, estão descritos nas figuras seguintes. 1º. Iniciar aplicação Winpic800. Ao iniciar, o programador deve estar com a PIC já inserida. A aplicação tenta fazer a auto-detecção do modelo da PIC. Se tiver sucesso, o modelo será indicado, como na figura seguinte. Caso falhe a detecção, será indicado como Desconhecido. Figura 22 Detecção de pic no WinPic800 73

2º. Ir a Menu -> Configuração -> Hardware e seleccionar JDM Programmer. Escolher a porta série correspondente, neste caso COM1. 3º. Ir a Menu -> Configuração -> Software e seleccionar as seguintes opções: General -> Nada. Programar -> Verificar após programação Dispositivo -> Usar Autoseleccção( ) e Detectar e autosel( ).hex -> Actualizar ficheiro ( ) e File.HEX -> Data( ) AVR -> Nada. ICSP-Mode -> Code, Data e Configuration 4º. Ir a Ficheiro -> Abrir e navegar até ao ficheiro *.hex que se deseja descarregar para a PIC. 5º. Ir a Dispositivo e seleccionar Programar Tudo. Se tiver sucesso na programação a barra ficará verde no fim e um aviso será mostrado a indicar que a programação foi bem sucedida (Figura abaixo). Se não tiver sucesso, será mostrado também um aviso, e a programação será interrompida. No caso dos portáteis, certas interfaces RS232 não tem níveis de tensões suficiente altos para permitir a programação, mas recomenda-se que se tente umas 10 vezes antes de desistir. Após a programação deve seguir-se os passos descritos na secção de hardware anteriormente (remover cabo, retirar PIC, etc). 74

Figura 23 Processo de escrita WinPic800 75