Osciloscópio Digital De 4 canais e Analisador Lógico de...

27
1 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

Transcript of Osciloscópio Digital De 4 canais e Analisador Lógico de...

Page 1: Osciloscópio Digital De 4 canais e Analisador Lógico de ...ave.dee.isep.ipp.pt/~jvs/aulas/LABSI/9Projts/programadores/pic4550... · num formato DIP de 8 pinos. A primeira etapa

1

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

Page 2: Osciloscópio Digital De 4 canais e Analisador Lógico de ...ave.dee.isep.ipp.pt/~jvs/aulas/LABSI/9Projts/programadores/pic4550... · num formato DIP de 8 pinos. A primeira etapa

50

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

Page 3: Osciloscópio Digital De 4 canais e Analisador Lógico de ...ave.dee.isep.ipp.pt/~jvs/aulas/LABSI/9Projts/programadores/pic4550... · num formato DIP de 8 pinos. A primeira etapa

51

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

Page 4: Osciloscópio Digital De 4 canais e Analisador Lógico de ...ave.dee.isep.ipp.pt/~jvs/aulas/LABSI/9Projts/programadores/pic4550... · num formato DIP de 8 pinos. A primeira etapa

52

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

Page 5: Osciloscópio Digital De 4 canais e Analisador Lógico de ...ave.dee.isep.ipp.pt/~jvs/aulas/LABSI/9Projts/programadores/pic4550... · num formato DIP de 8 pinos. A primeira etapa

53

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.

Page 6: Osciloscópio Digital De 4 canais e Analisador Lógico de ...ave.dee.isep.ipp.pt/~jvs/aulas/LABSI/9Projts/programadores/pic4550... · num formato DIP de 8 pinos. A primeira etapa

54

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:

1

2

R

RA −=

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:

12 VoVrefVo +=

Assim é garantido um condicionamento de sinal de [0,+5] V para qualquer tipo de

variação de entrada.

Page 7: Osciloscópio Digital De 4 canais e Analisador Lógico de ...ave.dee.isep.ipp.pt/~jvs/aulas/LABSI/9Projts/programadores/pic4550... · num formato DIP de 8 pinos. A primeira etapa

55

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.

Page 8: Osciloscópio Digital De 4 canais e Analisador Lógico de ...ave.dee.isep.ipp.pt/~jvs/aulas/LABSI/9Projts/programadores/pic4550... · num formato DIP de 8 pinos. A primeira etapa

56

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

Page 9: Osciloscópio Digital De 4 canais e Analisador Lógico de ...ave.dee.isep.ipp.pt/~jvs/aulas/LABSI/9Projts/programadores/pic4550... · num formato DIP de 8 pinos. A primeira etapa

57

4.8 - PCB do esquema Global

Figura 9 – Circuito global em PCB

Page 10: Osciloscópio Digital De 4 canais e Analisador Lógico de ...ave.dee.isep.ipp.pt/~jvs/aulas/LABSI/9Projts/programadores/pic4550... · num formato DIP de 8 pinos. A primeira etapa

58

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.

Page 11: Osciloscópio Digital De 4 canais e Analisador Lógico de ...ave.dee.isep.ipp.pt/~jvs/aulas/LABSI/9Projts/programadores/pic4550... · num formato DIP de 8 pinos. A primeira etapa

59

O cabeçalho do código principal do Bootloader está apresentado na figura seguinte:

Figura 10 – USB Bootloader Version 1.00

Page 12: Osciloscópio Digital De 4 canais e Analisador Lógico de ...ave.dee.isep.ipp.pt/~jvs/aulas/LABSI/9Projts/programadores/pic4550... · num formato DIP de 8 pinos. A primeira etapa

60

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

Page 13: Osciloscópio Digital De 4 canais e Analisador Lógico de ...ave.dee.isep.ipp.pt/~jvs/aulas/LABSI/9Projts/programadores/pic4550... · num formato DIP de 8 pinos. A primeira etapa

61

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.

Page 14: Osciloscópio Digital De 4 canais e Analisador Lógico de ...ave.dee.isep.ipp.pt/~jvs/aulas/LABSI/9Projts/programadores/pic4550... · num formato DIP de 8 pinos. A primeira etapa

62

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.

Page 15: Osciloscópio Digital De 4 canais e Analisador Lógico de ...ave.dee.isep.ipp.pt/~jvs/aulas/LABSI/9Projts/programadores/pic4550... · num formato DIP de 8 pinos. A primeira etapa

63

O cabeçalho do código principal do Bootloader está apresentado na figura seguinte:

Figura 13 – Firmaware Mouse Demo

Page 16: Osciloscópio Digital De 4 canais e Analisador Lógico de ...ave.dee.isep.ipp.pt/~jvs/aulas/LABSI/9Projts/programadores/pic4550... · num formato DIP de 8 pinos. A primeira etapa

64

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.

Page 17: Osciloscópio Digital De 4 canais e Analisador Lógico de ...ave.dee.isep.ipp.pt/~jvs/aulas/LABSI/9Projts/programadores/pic4550... · num formato DIP de 8 pinos. A primeira etapa

65

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 Estado dos leds

SUSPEND 1: Toggle – 2: =LED1

DETACHED_STATE 1: Off – 2: Off

ATTACHED_STATE 1: On – 2: On

POWERED_STATE 1: On – 2: Off

DEFAULT_STATE 1: Off – 2: On

ADDRESS_STATE 1: Toggle – 2: Off

CONFIGURED_STATE 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

Page 18: Osciloscópio Digital De 4 canais e Analisador Lógico de ...ave.dee.isep.ipp.pt/~jvs/aulas/LABSI/9Projts/programadores/pic4550... · num formato DIP de 8 pinos. A primeira etapa

66

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

Page 19: Osciloscópio Digital De 4 canais e Analisador Lógico de ...ave.dee.isep.ipp.pt/~jvs/aulas/LABSI/9Projts/programadores/pic4550... · num formato DIP de 8 pinos. A primeira etapa

67

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.

Page 20: Osciloscópio Digital De 4 canais e Analisador Lógico de ...ave.dee.isep.ipp.pt/~jvs/aulas/LABSI/9Projts/programadores/pic4550... · num formato DIP de 8 pinos. A primeira etapa

68

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.

Page 21: Osciloscópio Digital De 4 canais e Analisador Lógico de ...ave.dee.isep.ipp.pt/~jvs/aulas/LABSI/9Projts/programadores/pic4550... · num formato DIP de 8 pinos. A primeira etapa

69

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

Page 22: Osciloscópio Digital De 4 canais e Analisador Lógico de ...ave.dee.isep.ipp.pt/~jvs/aulas/LABSI/9Projts/programadores/pic4550... · num formato DIP de 8 pinos. A primeira etapa

70

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.

Page 23: Osciloscópio Digital De 4 canais e Analisador Lógico de ...ave.dee.isep.ipp.pt/~jvs/aulas/LABSI/9Projts/programadores/pic4550... · num formato DIP de 8 pinos. A primeira etapa

71

Figura 19 – Programador em schematic completo

6.3 – Utilização

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.

Page 24: Osciloscópio Digital De 4 canais e Analisador Lógico de ...ave.dee.isep.ipp.pt/~jvs/aulas/LABSI/9Projts/programadores/pic4550... · num formato DIP de 8 pinos. A primeira etapa

72

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.

Page 25: Osciloscópio Digital De 4 canais e Analisador Lógico de ...ave.dee.isep.ipp.pt/~jvs/aulas/LABSI/9Projts/programadores/pic4550... · num formato DIP de 8 pinos. A primeira etapa

73

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

Page 26: Osciloscópio Digital De 4 canais e Analisador Lógico de ...ave.dee.isep.ipp.pt/~jvs/aulas/LABSI/9Projts/programadores/pic4550... · num formato DIP de 8 pinos. A primeira etapa

74

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

Page 27: Osciloscópio Digital De 4 canais e Analisador Lógico de ...ave.dee.isep.ipp.pt/~jvs/aulas/LABSI/9Projts/programadores/pic4550... · num formato DIP de 8 pinos. A primeira etapa

75

Figura 23 – Processo de escrita WinPic800