Neste post vamos ver como gravar microcontroladores PIC de forma simples e rápida utilizando o Gravador de PIC USB PicKit 3:
O Pickit 3 é um gravador de baixo custo, mais rápido se comparado com versões anteriores e que realiza a gravação dos microcontroladores PIC por meio de conexão ICSP (In Circuit Serial Programming). Suporta os microcontroladores PIC das linhas PIC16F, PIC18F, dsPIC33f, PIC24 e PIC 32. Para uma lista completa dos microcontroladores suportados, acesse este link.
Ele também tem a função de debug (depurador), onde você pode conectar o Pickit 3 diretamente no circuito e verificar em tempo real as condições e configurações do equipamento.
Instalação do gravador Pickit 3 e do compilador XC
Nos nossos testes o dispositivo foi reconhecido automaticamente pelo Windows como um dispositivo de entrada USB, sem a necessidade de instalação de drivers:
O Pickit 3 pode ser usado diretamente com o MPLAB. Nesse caso, o programa é compilado, transferido para o Pickit 3 e em seguida gravado diretamente no microcontrolador. Nós já vimos como instalar o MPLAB no post Programando PIC16F628A para piscar um led, e agora vamos explicar como utilizar o MPLAB com o compilador gratuito da Microchip.
Com o MPLAB já instalado, vamos instalar o compilador MPLAB XC8, da Microchip (download). Na seção de downloads, usamos o arquivo MPLAB® XC8 Compiler v1.36:
Execute o instalador diretamente do arquivo que você baixou. A instalação é simples, bastando você aceitar os termos de licença na tela seguinte, escolher a opção free (grátis) do instalador, e selecionar a pasta onde o compilador será gravado. Depois disso, basta aguardar o final do processo de instalação:
Após a instalação, o compilador já estará automaticamente integrado ao MPLAB.
Circuito com Pickit 3 e PIC16F84A
Antes de criar o projeto no MPLAB, monte o circuito abaixo, já que vamos transferir o programa diretamente do MPLAB para o microcontrolador. O circuito utiliza o microcontrolador PIC16F84A (datasheet), um resistor de 1K, um led comum e um cristal de 16 Mhz, já que o 16F84A não possui oscilador interno:
A ligação do Pickit 3 ao microcontrolador é feita conectando os pinos Vpp/MCLR, Vdd, Vss, PGD e PGC aos pinos correspondentes do CI. A alimentação do PIC é feita pelo próprio Pickit, mas você também tem a opção de utilizar alimentação externa. O pino 6 do Pickit 3 não é utilizado. Com o circuito montado e o gravador conectado ao computador, vamos criar o programa no MPLAB e transferi-lo para o 16F84A.
Criação do projeto no MPLAB
Na tela principal do MPLAB, selecione o menu FILE, depois NEW PROJECT. Na tela NEW PROJECT, selecione Standalone Project:
Na tela seguinte vamos selecionar o microcontrolador. Selecione Mid-Range 8-bit MCUs, e PIC16F84A:
Clique em NEXT e na tela seguinte selecione Pickit3:
Selecione agora o compilador XC8:
Na última tela, dê um nome ao projeto. Vamos utilizar Led_Blink_16F84A:
Clique em finish para voltar à tela principal do MPLAB, com o projeto criado e a sua estrutura mostrada no lado esquerdo da tela:
Vamos adicionar o programa que vai controlar o LED clicando em Source Files, depois em NEW, e finalmente em C SOURCE FILE:
Na tela seguinte defina um nome para o arquivo em C. Pode ser o mesmo nome do projeto. Após clicar em FINISH, será aberta uma tela em branco no lado direito, onde vamos digitar/copiar o programa abaixo:
//Programa: Led Blink com Pickit 3 e PIC16F84A //Autor: MakerHero #define _XTAL_FREQ 16000000 #include <xc.h> // BEGIN CONFIG #pragma config FOSC = HS // Oscilador interno #pragma config WDTE = OFF // Watchdog Timer #pragma config PWRTE = ON // Power-up Timer #pragma config CP = OFF // Code Protection //END CONFIG int main() { TRISA0 = 0; //RA0 como saida while(1) { RA0 = 1; //Led Ligado __delay_ms(1000); //Delay 1 segundo RA0 = 0; //Led Desligado __delay_ms(1000); //Delay 1 segundo } return 0; }
Feito isso, você terá uma tela parecida com essa:
Antes de transferir o programa para o microcontrolador, vamos configurar o MPLAB para que o Pickit 3 forneça a tensão de alimentação necessária para o CI. Para isso, clique com o botão direito no nome do projeto, no lado esquerdo da tela (na imagem acima, Led_Blink_16F84A), e selecione PROPERTIES. Na janela Project Properties, selecione Conf: Pickit 3 -> Power, e selecione a opção Power Target Circuit from Pickit3, conforme a imagem abaixo:
Pressione F6 para que o programa seja transferido para o Pickit 3 e gravado no microcontrolador. Durante o processo de gravação, o led Status do Pickit pisca em vermelho, retornando ao verde quando a gravação for finalizada. Se a gravação foi feita com sucesso, a console do MPLAB deve exibir as mensagens abaixo:
Teste o programa ligando o Vdd do Pickit 3 ao pino 4 (MCLR) do PIC16F84A. O led vai começar a piscar a cada 1 segundo.
Gostou? Deixe seu comentário logo abaixo.
Bom dia . Funciona com windows 8.1 ou windows 10 ?
Olá Mauricio,
Aparentemente é preciso fazer alguns procedimentos mas funciona sim, veja este link: https://www.microchip.com/forums/m936066.aspx
Abraços!
Vinícius – Equipe MakerHero
Boa noite. Eu comprei um PicKit 3 e ele não possui uma variedade de PIC disponíveis para gravação quando realizei a instalação do sofware, isso é normal? Existem mais ou menos 10 a 15 modelos de PIC diferentes. Pode ser algum gravador pirada ou é necessário incluir esses novos modelos de PIC?
Olá Daniel!
Pelo que consegui encontrar, o PicKit 3 não tem suporte no MPLAB a todos os modelos de PIC. Você pode tentar utilizando este outro software aqui: https://sourceforge.net/projects/gcbasic/
Abraços!
Vinícius – Equipe MakerHero
Muito bom.
Muito bem explicado
Bom dia, com o pickit 3 também é possível extrair o arquivo hex de um pic24fj128 por icsp? Preciso salvar um aparelho que parou e tenho outro funcionando, a intenção é extrair do que funciona e gravar no que parou.
Olá Rodrigo,
Infelizmente acredito que isso não é possível.
Abraço!
Rosana – Equipe MakerHero
Artigo muito bom e esclarecedor!
Mano! Tem como usar esse kit em mikroC?
Excelente post ! Detalhado !
Gostei muito das instruções,
Obrigado
Olá Edson!
É sempre bom saber que nosso trabalho ajuda as pessoas!
Abraços!
André – Equipe MakerHero
Pq você não utilizou capacitores no oscilador?. Você disse que ele não tem oscilador interno mas depois configurou FOSC = HS dizendo que é o oscilador interno.
boa tarde.
estou estudando com o c++ iniciante .. sou formado tec. eletroeletrônico.. a anos aprend programação de pic..
gostei da sua explicação.. so que pelo link deixado ñ consegui baixar o mplab xc … teria outro local p eu baixar .. tentei baixar em outro lugar mas ñ achei e quando achei era v 1.30.. e ñ funcionou no meu winds..7..e baixep p winds..
Ate mais
Olá Alexandre!
Já experimentou este site?
https://www.microchip.com/mplab/mplab-x-ide
Abraços!
André – Equipe MakerHero
Adilson boa tarde! Gostaria de usar meu pickit3 junto com o MPLAB8.9. Qual o pic que voce recomenda de forma que eu consiga meu objetivo. Estou usando o PIC16F628A ANTIGO e nao estou conseguindo pelos erros que esta dando…abraços
Olá, poderia me ajudar, eu uso o pickit3 da Microchip, só que na hora de enviar o código para o pic, dar erros de memoria.
Olá Ivoneide!
Você chegou a testar um programa simples, como esse do post?
Abraços!
André – Equipe MakerHero
Bom dia! Eu consigo depurar o PIC16F628A no MPLABX? Posso o PIC16F628A no projeto citado acima? como fica a configuraçao dos bits ( oscilador interno utilizando o dele)?
Boa tarde !
Estou usando o PICKIT3 para gravar o PIC18F4520 e não estou conseguindo nada. Fiz um programa bem simples para piscar um led, mas estou com dúvida em relação ao oscilador. Gostaria de usar o oscilador interno, mas não tenho certeza se fiz a programação corretamente.
Segue abaixo o meu código. Se alguém puder me ajudar, agradeço muito.
bom dia amigo com este programador eu consigo ler e programar o pic 16f721?
bom dia, fiz isso e meu pickit 3 só quer gravar apenas pelo Matlab, gostaria de gravar apenas usando o aplicativo Pickit 3, sabe como posso resolver esse problema ?, obrigado
Prezados, estou tentando gravar com o PICKIT 3 porém aparece uma frase: “The target circuit may require more power than the debug tool can provide. An external power supply might be necessary”. Na configuração do gravador a maior tensão possível de configurar no MPLab é 3,5V. Estou fazendo algo de errado?
Retificando sobre o pic do comentário anterior…é sobre o pic 16F84A
Ola boa noite…porque quando tento usar o pic 12F84A não consigo selecionar o pickit2, só consigo selecionar o pickit3…poderia me esclarecer sobre isso?
Parabéns pelo artigo!
Simples, objetivo e claro!
Abraço!
eu aperto F6 mas não acontece nada o.0 oque eu faço?
Esse gravador é compatível com o windows 10?
Será que a versão do Windows 10 pode ter qualquer influência na gravação com o PicKit 3? Não sei mais oque fazer para usar este bendito gravador.
Boa noite,pode me ajudar deu erro Buld Failed!
Excelente tutorial! Muito obrigado.
Este gravador, grava via micko C for pic?
boa tarde, esse gravador vendido eh o original?