quarta-feira, 2 de fevereiro de 2011

BOOTLOADER COM O PIC 16F877A

Para atualizar o pic sem a necessidade de um gravador vc pode usar um circuito chamado bootloader que nada mais é do que usar a serial ou a usb do computador para descarregar uma atualização de firmware, usando um compilador da CCS(vem junto um programa chamado de siow.exe, use ele para isso ) vá em "file/download software"(veja imagem), procure o arquivo hexadecimal e clique abrir , pronto o programa será carregado para o microcontrolador, lembre-se que antes vc deve configurar o "baudrate". 
video demonstrando o carregamento:


vou postar aqui o codigo fonte usado:



// //****************************************************************************************************************************************************
//                                usando bootloader
//
//  Data:        02/02/2011
//  Autor:       Aguivone
//  Descrição:   demonstra como usar bootloader com o compilador ccs
// //*************************************************************************************************************************************************************************************************************************
#include <16F877A.h>
#fuses HS, NOWDT, NOPROTECT, BROWNOUT, PUT, NOLVP
#use delay(clock=20M)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)

#define _bootloader                  //necessario para funcionar o bootloader no ccs
#include <bootloader.h>              //necessario para funcionar o bootloader no ccs
#include <loader.c>                  //necessario para funcionar o bootloader no ccs

 #org LOADER_END+1,LOADER_END+10//se for PCM ( serie16F )
 #org 0x20,0x3F
 //#org LOADER_END+2,LOADER_END+20//se for PCH ( serie18F )
//#org 0x40,0x7F

void principal()
{
 for(;;)//programa principal
       {
         output_toggle(PIN_B0);//alterna led
         //output_toggle(PIN_B1);//alterna led
         delay_ms(300); 
       }
}

void main(void)
{
    if(!input(PIN_B5))// se ao iniciar o chip o pinoB5 estiver pressionado carrega novo codigo pelo bootloader (serial)
    {
       load_program();
    }
    principal();
}

#ORG default //necessario para funcionar o bootloader no ccs
#int_global     //necessario para funcionar o bootloader no ccs
void isr(void)
 {
   jump_to_isr(LOADER_END+5*(getenv("BITS_PER_INSTRUCTION")/8));
 }

 obrigado pela atenção e até o proximo post!

13 comentários :

  1. Gostei
    gostaria se possivel ter mais informaçoes
    sobre este assunto.
    sobre a parte de hardware, fiaçao entre pc e pic

    Agradecido se puder mandar por email

    paulorobertofunke@yahoo.com.br

    ResponderExcluir
  2. o que vc precisa é ligar o pic a um ci chamado max 232 e dai se conecta pela porta serial do pc (pela usb não fiz o teste),tem um colega meu que conseguiu mas ele tá usando o compilador C18.

    ResponderExcluir
  3. Favor enviar mais informações sobre Gravação do PIC USB.

    Pois estou precisando fazer um TCC e usarei o PIC

    ederon1@hotmail.com

    ResponderExcluir
  4. Prezados,
    para gravar o PIC pela USB é possível utilizar também o software livre SanUSB disponível em http://www.4shared.com/file/bUOZzmFb/100727SanUSB.html com informações na apostila de microcontroladores PIC USB e Periféricos em http://www.4shared.com/get/Qst_pem-/100923Apostila_CPIC.html ,
    com conteúdo para os sistemas operacionais Windows, Linux e Mac OSX.

    Alguns sites com links com tutoriais para eletrônica:

    http://www.clubedaeletronica.com.br/tutoriais.htm
    http://mecatronicananet.blogspot.com/
    http://www.labdegaragem.com.br/wiki/
    http://www.roboticalivre.org/portal/
    ensino.univates.br/~lsantos5/pic/Apostila_CPIC.pdf
    http://teago.futuria.com.br/tip/5/
    http://moodle.stoa.usp.br/file.php/510/USB-3.pdf
    http://www.vivaolinux.com.br/artigo/Gravacao-de-microcontroladores-PIC-via-USB-pelo-terminal-do-Linux/
    http://sanusb.blogspot.com
    www.tinyurl.com/sanusb

    Um abraço,

    ResponderExcluir
  5. Olá, tem mandei um email para:
    aguivone@ibest.com.br
    assim que possível, aguado um retorno seu.
    Muito obrigado!

    ResponderExcluir
  6. bom dia, teria como mandar um projeto do css para o email: rickrock_2008@hotmail.com, pois esta aparecendo alguns erros na hora da compilação!
    Obg

    ResponderExcluir
  7. Boa Tarde, gostaria do arquivo CCS no meu email, yago1309@gmail.com, e o esquema de como fazer a ligação usb no PIC, gostaria de fazer com USB pois meu pc nao tem porta serial. Grato.

    ResponderExcluir
    Respostas
    1. cara o código já está ai e tem um bom tempo que não uso mais o ccs,mas em breve vou fazer um atualizado!

      Excluir
  8. acho que é necessário antes gravar com um gravador o programa em HEX de bootloader no PIC, qual programa de booltloader usou?
    apara que o siow envia depois o meu programa HEX, no caso aqui o pisca led.

    grato

    Raul

    ResponderExcluir
    Respostas
    1. a primeira vez é necessário gravar o programa com gravador de PIC, depois dá pra usar o programa para enviar o novo HEX pela serial.

      Excluir
  9. Na hora de compilar o código dá erro no CCS. SE POSSIVEL ENVIAR O CODIGO FONTE PARA EMAIL WALDEMAR_MARTINS@LIVE.COM.PT OBRIGADO

    ResponderExcluir
  10. Boa noite , teria como mandar um projeto do css para o email: joaquimpestana18@gmail.com , pois esta aparecendo erros na hora da compilação!
    Obg

    ResponderExcluir

olá,digite aqui seu comentário!