Como utilizar o Gravador de PIC Pickit 3 - MakerHero

Como utilizar o Gravador de PIC Pickit 3 33

Neste post vamos ver como gravar microcontroladores PIC de forma simples e rápida utilizando o Gravador de PIC USB PicKit 3:

Pickit 3 e PIC16F84A

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:

Driver Pickit3

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:

XC8 - Download

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:

XC8 - 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:

Circuito Pickit3 e PIC16F84AA 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:

MPLAB - Novo projeto

Na tela seguinte vamos selecionar o microcontrolador. Selecione Mid-Range 8-bit MCUs, e PIC16F84A:

MPLAB - Device

Clique em NEXT e na tela seguinte selecione Pickit3:

MPLAB - Gravador

Selecione agora o compilador XC8:

MPLAB - Compilador

Na última tela, dê um  nome ao projeto. Vamos utilizar Led_Blink_16F84A:

MPLAB - Nome Projeto

Clique em finish para voltar à tela principal do MPLAB, com o projeto criado e a sua estrutura mostrada no lado esquerdo da tela:

MPLAB - Projeto Criado

Vamos adicionar o programa que vai controlar o LED clicando em Source Files, depois em NEW, e finalmente em C SOURCE FILE:

MPLAB - New 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:

MPLAB - Programa

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:

Pickit 3 Alimentação

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:

MPLAB - Gravação OK

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.

Faça seu comentário

Acesse sua conta e participe

33 Comentários

  1. Bom dia . Funciona com windows 8.1 ou windows 10 ?

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

  2. 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?

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

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

    1. Olá Rodrigo,

      Infelizmente acredito que isso não é possível.

      Abraço!
      Rosana – Equipe MakerHero

  4. Artigo muito bom e esclarecedor!

  5. Mano! Tem como usar esse kit em mikroC?

  6. Excelente post ! Detalhado !

  7. Gostei muito das instruções,
    Obrigado

    1. Olá Edson!

      É sempre bom saber que nosso trabalho ajuda as pessoas!

      Abraços!

      André – Equipe MakerHero

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

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

    1. Olá Alexandre!

      Já experimentou este site?
      https://www.microchip.com/mplab/mplab-x-ide

      Abraços!

      André – Equipe MakerHero

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

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

    1. Olá Ivoneide!

      Você chegou a testar um programa simples, como esse do post?

      Abraços!

      André – Equipe MakerHero

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

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

  14. bom dia amigo com este programador eu consigo ler e programar o pic 16f721?

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

  16. 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?

  17. Retificando sobre o pic do comentário anterior…é sobre o pic 16F84A

  18. 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?

  19. Parabéns pelo artigo!
    Simples, objetivo e claro!
    Abraço!

  20. eu aperto F6 mas não acontece nada o.0 oque eu faço?

  21. Esse gravador é compatível com o windows 10?

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

  22. Boa noite,pode me ajudar deu erro Buld Failed!

  23. Excelente tutorial! Muito obrigado.

  24. Este gravador, grava via micko C for pic?

  25. boa tarde, esse gravador vendido eh o original?