Bootloader

BOOTLOADER

Ao trabalharmos com PIC pode ser muito chato depender de um gravador  de PIC sempre que for preciso atualizar o software do seu projeto, para solucionar este problema podemos utilizar o bootloader juntamente com um PIC que possua comunicação USB.

Após gravar o bootloader no PIC será possível atualizar o software através da USB sem a necessidade de um gravador de PIC.

Passo 1: Será necessário ter um gravador de PIC para gravar o bootloader no microcontrolador.

Passo 2: Circuito básico.

         Um cristal de 20MHz com dois capacitores de 22pF;

         Um conector USB;

         Um capacitor ligado entre VUSB e GND;

         Um botão de reset ligando o pino 1 (MCLR/Vpp) ao nível lógico baixo;

         Um botão para entrar em modo boot (pino A4).

Passo 3: Gravar o bootloader no microcontrolador usando um gravador de PIC.

Passo 4: Alterações que devem ser feitas no software que será gravado via bootloader.

         Se o software foi feito utilizando o CCS como compilador será necessário adicionar as seguintes linhas ao seu código.

           #build(reset=0x1000, interrupt=0x1008)

           #org 0x000, 0xfff { }

         Nos programas desenvolvidos no MPLAB utilizando o compilador XC8, você deve usar diferentes configurações do XC8 linker no seu projeto, confome podemos ver nas imagens.

         ROM ranges: default,-0-FFF,-1006-1007,-1016-1017

         Codeoffset: 0x1000

Passo 5: Enviando um programa via USB para o microcontrolador:

                Abra o programa HIDBootloader.exe presente nos arquivos do gravador;

                Conecte o cabo USB no computador e na placa;

                Para entrar em modo boot segure o botão enquanto pressiona o botão de reset da placa;

                Clique no ícone “Import Firmware Image” para carregar o seu software, arquivo .HEX;

                Após importar o .HEX clique no próximo ícone para transferir o programa para o PIC, “Erase/Program/Verify Device”;

                Por fim basta dar um reset na placa para começar a rodar o programa gravado.