Você está na página 1de 31

Monte um gravador USB para o PIC!

Este artigo irá descrever a montagem de mais um


gravador para a família de microcontroladores da
Microchip, desta vez utilizando uma interface USB, que
será conectada ao computador. Ele na verdade será um
“clone” do famoso gravador da própria Microchip, o
PICkit2.

Uma das dificuldades em se implementar um gravador


via USB, é que esta fornece +5V, sendo que o PIC para
ser gravado no modo de alta-voltagem necessita de
+13V. Existe então uma necessidade de se conseguir
obter os +13V a partir de +5V, o que é feito com um
pequeno circuito que utiliza um componente chamado
micro choque ou micro indutor (que em seu interior se
encontra uma pequena bobina de fio), e conforme a
especificação do próprio PICkit2 (site e diagrama
esquemático –> Appendix B. PICkit 2 Schematics) o seu
valor é de 680 uH. Vamos então explorar esta parte do
circuito que acreditamos que seja a que mais gera
dúvidas.

Figura 01: Trecho do diagrama esquematico do gravador


da Microchip PICkit2 referente a obtenção da voltagem de
+13V – clique na figura para ampliar:
Como componentes a serem destacados deste circuito,
temos o micro indutor de 680 uH e odiodo
Schottky (BAT54) que é utilizado para retificar a corrente
alternada com uma voltagem acima de 13V (gerada pelo
chaveamento do transistor (liga/desliga) com o seu
coletor em série com o indutor), tendo um melhor
rendimento que o diodo comum. Na nossa montagem,
entretanto, ele foi substituido por um 1N4148 (pode
também ser utilizado o1N5819). A corrente alternada é
produzida injetando-se uma frequência gerada por um
pino do microcontrolador PIC18F2550 na base do
transistor MMBT3904 (que substituimos peloBC548). E é
esta frequência que basicamente define a voltagem que
iremos obter.

Para facilitar ainda mais a compreensão, montamos um


circuito independente, que conectado ao pino de qualquer
microcontrolador (ou até mesmo um integrado 555 na
configuração de multivibrador astável –> oscilador de
onda quadrada), faz a conversão de +5V para +13V. Isto
é chamado de conversão DC-DC. Ele pode operar de duas
maneiras: com realimentação ou com circuito regulador
de voltagem. Veremos isto com mais detalhes adiante.
Foto 01: Circuito de Teste do Conversor DC-DC para
+13V (Lado A) – clique na imagem para ampliar!

Foto 02: Circuito de Teste do Conversor DC-DC para


+13V (Lado B) – clique na imagem para ampliar!

Foto 03: Circuito de Teste do Conversor DC-DC para


+13V (Verso) – clique na imagem para ampliar!
Conforme vimos no artigo anterior “Monte um Pinguino
com um PIC18F4550“, utilizamos como nosso primeiro
programa o “Blink” que possui um código fonte muito
fácil de se entender. Vamos então utilizá-lo com uma
pequena modificação, conforme abaixo:

/*
Blink a LED
*/

void setup()
{
// initialize the digital pin 13 as an output.
pinMode(13, OUTPUT);
}

void loop()
{
toggle(13); // alternate ON and OFF
delayMicroseconds(400); // wait for a 400 microseconds
}

O que este código faz é ligar/desligar o pino do


microcontrolador PIC em uma frequência de 2,5 kHz:
400 microseconds –> 2,5 kHz. Nesta frequência, com
este pino ligado ao nosso circuito de Teste do Conversor
(na base do transistor via resistor de 1k), gera uma saída
de pouco mais de +13V. Se diminuir a frequência,
diminui a voltagem obtida, e vice-versa. Para garantir
então uma voltagem precisa, temos como já falado, duas
alternativas: a primeira, e a mais elaborada, consiste em
medir esta voltagem de saída em um outro pino do PIC
(configurado para entrada), para saber se a frequência
gerada está adequada. Se não, então ajusta-se a
frequência para mais ou para menos para que a voltagem
se estabilize no valor ideal. Como o PIC não pode medir
voltagens maiores que a alimentação a que ele está
ligado, usa-se então um divisor de voltagem constituído
por dois resistores em série com a voltagem gerada e o
terra, permitindo assim a medição da voltagem com
segurança pelo microcontrolador PIC. A segunda faz uso
de um regulador de voltagem para que a saída fique
estabilizada em +13V (neste caso, se fixa a frequência
em um valor superior, para uma saída de voltagem acima
de +13V (ex.: +16V) para que o regulador possa então
trabalhar de maneira adequada. Esta opção além de
gastar mais componentes, consome um pouco da energia
gerada do conversor DC-DC.

Vamos então fornecer o diagrama esquemático completo


de nossa plaquinha do Circuito de Teste do Conversor
DC-DC para +13V:

Figura 02: Diagrama esquematico do Circuito de Teste do


Conversor DC-DC para +13V – clique na figura para
ampliar:

Note que só pode haver uma das opções: (A) ou (B) de


saída dos +13V, conforme a figura acima.

Vamos agora modificar nosso código fonte para


implementar a opção (A). O pino escolhido no
PIC18F4550 para a entrada da realimentação é o 02
(corresponde ao pino 13 do Pinguino) e o pino no
PIC18F4550 para a saida do sinal (frequência gerada) é o
40 (corresponde ao pino 7 do Pinguino).

Código fonte a seguir:

/*——————————————————–
Author: <Dimensão By Net>
Date: 02/Jun/2012
Name: conversorDC-DC
Description: Programa para o controle do
Circuito de Teste do Conversor DC-DC para +13V
Version: 1.0
———————————————————-*/

int freqPin = 7; //(pin40 do PIC18F4550)


int sensorPin = 13; //(pin02 do PIC18F4550)
int sensorValue = 0;
int contador = 0;
int msec = 400; //Tempo aproximado: –> frequência de
2,5 khz –> (+13,2V)

void setup() {
pinMode(freqPin, OUTPUT);
pinMode(sensorPin, INPUT);
digitalWrite(freqPin, HIGH);
}

void loop() {
toggle(freqPin);
delayMicroseconds(msec);
contador++;

if (contador == 2500) //Testa aproximadamente a cada


segundo, para corrigir a voltagem, se necessário
{
sensorValue = analogRead(sensorPin);
msec = ((sensorValue + 2) / 4);
contador = 0;
}

Algumas considerações:

O código acima é muito simples, e seu objetivo é ser


didático, fácil de entender, mas em uma aplicação
profissional precisaria ser melhorado, embora funcione. A
voltagem de referência fica em torno de +4,7V, para uma
saída de +13,2V.

E para a opção (B), como não existe a necessidade de


teste da voltagem de saída para a realimentação, fixamos
a frequência para uma voltagem acima (por exemplo:
+16V), como já falado, para que o regulador a estabilize
em +13V (pode-se utilizar voltagens maiores, lembrando
que quanto maior a diferença da voltagem de entrada em
relação a voltagem de saída mais existem perdas com o
aquecimento do regulador).

Segue abaixo a foto do nosso teste da voltagem de saída


do circuito:

Foto 04: Circuito de Teste do Conversor DC-DC para


+13V em ação: Multimetro indica a voltagem obtida na
opção (A) – clique na imagem para ampliar!

Vamos prosseguir com as explicações para um outro


circuito também utilizado no nosso “clone” do gravador
PICkit2, que consiste da utilização de memórias com o
objetivo de que este fique “independente” do
computador, para que possa gravar os
microcontroladores PIC com o programa (bloco de código
.hex) previamente gravado nestas memórias da
Microchip24LC512 (este circuito é opcional).

Segue abaixo as fotos da plaquinha contendo as


memórias:
Foto 05: Circuito da Plaquinha com as Memórias 24LC512
(Lado A) – clique na imagem para ampliar!

Foto 06: Circuito da Plaquinha com as Memórias 24LC512


(Lado B) – clique na imagem para ampliar!

Foto 07: Circuito da Plaquinha com as Memórias 24LC512


(Verso) – clique na imagem para ampliar!
Os pinos desta plaquinha, visto de cima com eles para
baixo, em relação a conexão na placa do gravador são
(da esquerda para a direita): (-) Terra, (D) Dados, (C)
Clock, (+5V) Positivo, (NC) Não Conectado, (WP)
Proteção de Escrita. Foi adicionado um LED miniatura
verde em série com um resistor de 470R conectado ao
+5V e ao Terra, para indicar que está ligada.

Segue abaixo a figura do diagrama esquemático da


plaquinha contendo as memórias:

Figura 03: Diagrama esquemático do Circuito da


Plaquinha (trecho do diagrama esquemático do PICkit2 –
Appendix B. PICkit 2 Schematics) com as Memórias
24LC512 – clique na figura para ampliar:

Como podemos ver, o circuito é muito simples, com


apenas três pinos de controle. E como seu uso é opcional,
pode ser retirada da Placa Principal do Gravador de PIC
USB, sem problemas (com o circuito desligado, é claro!).

Mostraremos agora, as fotos do circuito principal:

Foto 08: Circuito Principal do Gravador de PIC USB (Lado


A) – clique na imagem para ampliar!
Foto 09: Circuito Principal do Gravador de PIC USB (Lado
B) – clique na imagem para ampliar!

Foto 10: Circuito Principal do Gravador de PIC USB


(Verso) – clique na imagem para ampliar!

Fotos 11 e 12: Circuito Principal do Gravador de PIC USB


(Lados C e D) – clique nas imagens para ampliar!
Pinagem (Lado C) da esquerda para a direita: 1- Vpp
(+13V); 2- Vcc (+5V); 3- SCL (clock); 4- SDA
(dados); 5-GND (terra/negativo).

Como já tinhamos publicado um outro gravador de PIC,


o Gravador de PICs e de Memórias I²C Bus EEPROM,
mostraremos a seguir uma foto comparativa:

Foto 13: Comparativo entre as placas de gravadores PIC


Serial e USB – clique na imagem para ampliar!

Detalhe é que ambas as placas podem fornecer


alimentação de +5V ao microcontrolador PIC a ser
gravado, e possuem igual distribuição de pinagem (o
cabo de cinco vias colorido é o mesmo para elas). Como
é exigido +13V para a gravação no modo de alta-
voltagem, o Gravador Serial deve ser conectado a uma
porta serial já existente do computador (não pode então
ser usado um cabo USB–>Serial, como vimos no artigo
“Monte uma placa de testes para o AVR da Atmel“, que
usa gravação em baixa voltagem: +5V).
Foto 14: Placa Principal do Gravador USB com o módulo
de Memória encaixado e cabo de gravação colorido de
cinco vias conectado (basta então ligar em uma porta
USB livre do computador com um cabo padrão USB) –
clique na imagem para ampliar!

Foto 15: Placa Principal do Gravador USB com o módulo


de Memória e cabo de gravação conectados (Verso), e a
plaquinha para o teste de gravação (PIC16F688) – clique
na imagem para ampliar!

Fotos 16 e 17: Gravador USB conectado na Placa para


Testes do PIC (03) para teste (pode servir para
gravar/atualizar o bootloader do Pinguino – veja o artigo
anterior, além de programar qualquer código escrito em
C ou Assembly – importante é gerar o arquivo de
gravação .hex, resultado da compilação e linkedição, bem
como usar um software adequado de gravação – iremos
esclarecer isto adiante ainda neste artigo) e detalhe do
conector do cabo de gravação: cores: Roxo (+13V),
Vermelho (+5V), Azul (Clock), Amarelo (Data) e Preto
(Terra/Negativo) – clique nas imagens para ampliar!

Como recursos deste Gravador USB de PICs,


reproduzimos abaixo trecho do seu manual: “PICkit™ 2
Programmer/Debugger User’ s Guide“.

Figura 04: Foto do PICkit2 Original com a descrição dos


seus itens – clique na figura para ampliar:

Neste nosso “clone”, procuramos manter estas


funcionalidades. O que difere então? Quando se trata de
se adaptar um sistema desenvolvido para um
determinado hardware, o que podemos fazer é, já que
não precisamos modificar o software embarcado
(firmware) que roda neste hardware (e nem devemos, já
que além de proprietário ele pode também sofrer
atualizações “upgrades” a qualquer momento pela
fabricante, no caso a Microchip) oferecer mais ou menos
funcionalidades já projetadas, para o nosso hardware
“clone”. Isto significa que podemos por exemplo, alterar
os conectores (ex. mini-USB para USB padrão), alterar a
sequência dos pinos (pinagem) de saída (desde que
saibamos qual pino significa o quê), implementar ou não
a funcionalidade de memória para programação
independente do PC (o “Programmer-to-Go”),
implementar a funcionalidade “Device VDD”, em que o
usuário pode selecionar a voltagem de alimentação
fornecida ao PIC a ser gravado, na faixa de +5V até
+2,5V (esta funcionalidade não foi implementada neste
hardware “clone”, pois a alimentação foi fixada em +5V),
e etc. Quanto mais funcionalidades implementadas em
hardware, mais caro fica e mais se aproxima das
funcionalidades “máximas” do projeto original. Isto é
uma pratica muito utilizada na indústria, modelos mais
caros de um produto são especificados com mais itens,
sendo que os mais baratos são os que tem menos itens
(mas o projeto é o mesmo!).

Figura 05: Descrição dos itens do PICkit2 Original –


clique na figura para ampliar:
Figura 06: Pinagem do PICkit2 Original com as suas
descrições – clique na figura para ampliar:

Figura 07: Fecho para alça de proteção contra perda do


PICkit2 Original – clique na figura para ampliar:

Antes de mostrarmos o diagrama esquemático completo


deste Gravador USB para o PIC (clone do PICkit2), vamos
descrever o seu funcionamento, referente ao processo de
gravação propriamente dito, utilizando o software da
própria Microchip, o PICkit 2 Programmer(download
aqui!) obtido gratuitamente (e também o passo a passo
da sua instalação). E mostraremos inclusive a sua
utilização com o Microchip MPLAB IDE v.8.85 e o MPLAB
X IDE(em um futuro artigo).

Figura 08: Tela do PICkit 2 Programmer com informações


– clique na figura para ampliar:
OBS: Antes do gravador poder ser utilizado,
o PIC18F2550 que é o principal responsável pelo seu
funcionamento (coração do circuito), deve ser
“programado”, ou seja, deve-se gravar nele o seu
firmware: PICkit 2 Firmware V2.32 “PK2V023200.hex”
(download aqui!) fornecido também gratuitamente pela
Microchip. Como dica de como proceder, dê uma olhada
em nosso artigo anterior “Monte um dispositivo USB com
o PIC16F628A“, ou “Projeto passo-a-passo para uma
Lanterna com LEDs!“. (É, para se construir um gravador
USB sofisticado para gravar os microcontroladores PIC,
antes ele também deve ser gravado – quem nasceu
primeiro, o ovo ou a galinha?). Como dica, pode-se usar
também o Gravador de PICs e de Memórias I²C Bus
EEPROM (Serial), montando uma plaquinha para o
PIC18F2550 com um soquete, e conectando
corretamente os pinos para a gravação ICSP (como foi
feito para o PIC16F688 – ver fotos de número 13 e 15).

Figura 09: Diagrama do esquema de gravação ICSP (In-


Circuit Serial Programming) – clique na figura para
ampliar:
Vamos detalhar agora a instalação do software de
gravação:

Figura 10: Tela da instalação do PICkit 2 Programmer (1)


– clique na figura para ampliar:

Figura 11: Tela da instalação do PICkit 2 Programmer (2)


– clique na figura para ampliar:
Figura 12: Tela da instalação do PICkit 2 Programmer (3)
– clique na figura para ampliar:

Figura 13: Tela da instalação do PICkit 2 Programmer (4)


– clique na figura para ampliar:
Figura 14: Tela da instalação do PICkit 2 Programmer (5)
– clique na figura para ampliar:

Figura 15: Tela da instalação do PICkit 2 Programmer (6)


– clique na figura para ampliar:
Instalação efetuada com sucesso.

Figura 16: Tela do PICkit 2 Programmer – clique na figura


para ampliar:

Após a instalação já feita, vamos então conectar o


Gravador de PIC USB em uma porta USB qualquer do
computador (se é a primeira vez em que ele é conectado,
o próprio Windows 7 automaticamente instalará o device
driver para a comunicação com o gravador – HID
Compliant Device). Feito isto, segue abaixo o passo a
passo de gravação de teste (conectar conforme fotos 15
ou 16 – neste exemplo, será utilizado o PIC16F688 – foto
15). Baixar o arquivo: Projeto-Lanterna-de-5-LEDs.zip,
como exemplo.

Foto 18: Placa do Gravador de PIC USB conectado ao


cabo de gravação colorido (e este à plaquinha utilizando
o PIC16F688 para o teste de gravação), e também ao
Notebook (com S.O. Windows 7) via cabo USB padrão –
clique na imagem para ampliar!

Figura 17: Passo a passo de gravação de um


microcontrolador PIC utilizando o PICkit 2 Programmer
(1) – clique na figura para ampliar:
Figura 18: Passo a passo de gravação de um
microcontrolador PIC utilizando o PICkit 2 Programmer
(2) – clique na figura para ampliar:
Figura 19: Passo a passo de gravação de um
microcontrolador PIC utilizando o PICkit 2 Programmer
(3) – clique na figura para ampliar:
Figura 20: Passo a passo de gravação de um
microcontrolador PIC utilizando o PICkit 2 Programmer
(4) – clique na figura para ampliar:
Figura 21: Passo a passo de gravação de um
microcontrolador PIC utilizando o PICkit 2 Programmer
(5) – clique na figura para ampliar:
Figura 22: Passo a passo de gravação de um
microcontrolador PIC utilizando o PICkit 2 Programmer
(6) – clique na figura para ampliar:
Figura 23: Passo a passo de gravação de um
microcontrolador PIC utilizando o PICkit 2 Programmer
(7) – clique na figura para ampliar:

Figura 24: Passo a passo de gravação de um


microcontrolador PIC utilizando o PICkit 2 Programmer
(8) – clique na figura para ampliar:
Figura 25: Passo a passo de gravação de um
microcontrolador PIC utilizando o PICkit 2 Programmer
(9) – clique na figura para ampliar:
Gravação efetuada com sucesso.

Este é o funcionamento básico. Mais informações a


seguir.

Na tela do PICkit 2 Programmer existe dois checkbox


(VDD PICkit 2): ON –> liga a alimentação fornecida ao
PIC a ser gravado (e acende o LED amarelo – mas
adicionamos um jumper no nosso circuito para fornecer
os +5V independentemente de estar ligado ou não), e o
/MCLR que mantem o PIC a ser gravado no circuito
“resetado” (ou parado) – Hold Device in Reset. Você pode
escolher entre várias operações, como: Read, Write,
Verify, Erase, Blank Check (verifica se o PIC está em
branco). Existe também uma facilidade, que são os sons
de alerta – Alert Sounds (para sucesso, aviso e erro) e
mais uma, poder iniciar a gravação ao pressionar o botão
do nosso Gravador de PIC USB (Write On PICkit Button).
E uma característica bem interessante, que é o PICkit 2
Programmer-To-Go, que faz uso do módulo de memória
para tornar independente o gravador do computador,
como já falado. Se ele funciona OK, pisca o LED amarelo,
se não, pisca o LED vermelho (isto é um resumo, e é
importante a leitura do seu manual – PICkit™ 2
Programmer/Debugger User’ s Guide, e também o PICkit
2 Programmer-To-Go User Guide e os demais itens que
se encontram no menu Help.

A seguir, finalmente, o diagrama completo de nosso


Gravador de PICs USB:

Figura 26: Diagrama esquemático completo do Gravador


de PICs USB (clone do PICkit 2) – clique na figura para
ampliar:

Qualquer dúvida em relação às conexões, conferir no


diagrama do PICkit 2 original: “Appendix B. PICkit 2
Schematics”. Outros sites interessantes que também
trazem projetos de clones do PICkit 2 são: Micros
Designs e Cristpalma, dentre outros.

Material interessante: PICkit 2 Overview Presentation PPT


and PDF.

No software de gravação do PICkit 2 (PICkit 2


Programmer), encontramos também duas ferramentas
utilitárias no menu “Tools”: UART Tool e Logic Tool, que
são bastante úteis (veremos o funcionamento destas
ferramentas em um futuro artigo).
Aqui termina este artigo. Caso tenham alguma dúvida,
segue um e-mail para
contato: micro@dimensaobynet.com.br

Até o próximo post.

clique na figura para ampliar:


This entry was written by leoadm, posted on 28 de maio de 2012 at 20:24, filed under Circuitos, Gravadores and
tagged gravador usb pic gravador pic usb pickit2 conversor cc-cc interface serial. Bookmark the permalink. Follow any
comments here with the RSS feed for this post. Comments are closed, but you can leave a trackback: Trackback URL.

Você também pode gostar