Você está na página 1de 6

Bootloader - carregando os programas via USB

Obs.: O desenvolvimento deste post praticamente igual (com alguns ajustes) ao


site http://www.hpspin.com.br/uol/bootloader/

Agradecimentos ao ex-aluno Mirayr Raul que ajudou no dismitificar o


funcionamento do bootloader.
USB E BOOTLOADER
Alguns microcontroladores da família 18F como o PIC18F4550 possuem porta de
comunicação USB para facilitar a comunincação entre o PC e o microcontrolador.
Uma das opções é usar a porta USB para gravar o programa no microcontrolador
usando um bootloader, programa que fica residente no próprio microcontrolador e
permite que oprograma de aplicação seja gravado sem a necessidade de um
programador.
A Microchip fornece um framework com vários exemplos que
permitem desenvolver aplicações em seus microcontroladores usando a porta
USB. Nesta experiência, usaremos somente alguns arquivos mas, quem quiser,
poderá baixar todo o diretório contendo o framework em USB Framework for
PIC18, PIC24 & PIC32 e baixe o arquivo clicando no link "Microchip Application
Libraries Download Page.
Obs.: Para quem já está trabalhando com o MPLABX e o compilador XC8, baixe
os arquivos sugeridos mais abaixo.

O QUE É O BOOTLOADER
O bootloader é um programa que será gravado no microcontrolador, uma única
vez, por um programador comum, como um McFlash, um JDM ou através do
ICSP. A partir daí, o programador não será mais necessário, pois bastará conectar
o microcontrolador na porta USB e transferir o programa de aplicação para o
microcontrolador quantas vezes forem necessárias, sem que seja necessário
remover o chip do circuito e numa velocidade muito mais alta do que a velocidade
alcançada pelos programadores comuns.

HARDWARE NECESSÁRIO
A placa de desenvolvimento já oferece o básico do que é apresentado abaixo,
com exceção dos leds em RD0 e RD1, que servem para indicar o estado da
gravação.
A figura abaixo mostra uma sugestão do esquema elétrico do circuito necessário
para esta gravação (este circuito está incluído na placa de desenvolvimento):
INSTALAÇÃO DOS PROGRAMAS NECESSÁRIOS
Baixe os arquivos a disposição:

 Arquivo HEX do bootloader


 Programa para transferência de arquivos via USB usando o bootloader
 Arquivo HEX de um teste de led piscante em RA2
 Exemplo completo com fonte para C18 de led piscante em RD3
 Exemplo completo com fonte para C18 de led (RD3) controlado por chave
em (RB4)
Obs.: Os exemplos acima foram testados

Siga o roteiro abaixo:


1. Instale o programa MCHPFSUSB_Setup_v1.3. Ele será instalado por
padrão em C:\MCHPFSUSB
2. Faça um atalho na área de trabalho para o programa PDFSUSB.exe
(C:\MCHPFSUSB\Pc\Pdfusb\PDFUSB.exe). Esse programa será usado para
gravar aplicações (arquivos .hex) no microcontrolador através da posta USB.
3. Usando o seu programador de PIC favorito, abra o arquivo USB Device -
MCHPUSB - MCHPUSB Bootloader - C18 - PICDEM FSUSB.hex e grave-o
no microcontrolador. Ele será gravado somente desta vez e ficará residente no
chip para receber suas aplicações pela porta USB. (Para a construção de
gravadores existe os links no post anterior).
4. Conecte o cabo USB no PC. A princípio nada vai acontecer. Pressione o
botão BOOT, que esta ligado ao PORTB<4> (pino37) do PIC e, em seguida,
pressione e solte o botão RESET. Quando os dois LEDs começarem a piscar
alternadamente, solte o botão BOOT e o bootloader estará pronto para
receber programas pela porta USB. Na primeira vez que esse procedimento
for realizado, o sistema operacional vai dizer que um novo hardware foi
detectado e é necessário instalar um driver para o dispositivo USB. Dirija o
instalador para o diretório C:\MCHPFSUSB\Pc\MCHPUSB Driver\Release e,
se tudo correr bem, no Windows nunca se sabe, o driver será instalado. Você
pode verificar no gerenciador de dispositivos do Windows

GRAVANDO PROGRAMAS NO MICROCONTROLADOR


Conecte o cabo USB do circuito no PC. Pressione o botão BOOT, que esta ligado
ao PORTB<4> (pino37) do PIC e, em seguida, pressione e solte o botão RESET.
Quando os dois LEDs começarem a piscar alternadamente, solte o botão BOOT e
o bootloader estará pronto para receber programas pela porta USB. Para gravar o
programa, use a aplicação PDFSUSB.exe seguindo os passos abaixo:

1) Execute o programa PDFSUSB.exe e na janela dessa aplicação, clique o botão


Load HEX File para abrir a janela de seleção de arquivos.

2) Escolha o programa que deseja gravar no microcontrolador. O programa deve


ter a extenção .hex.
3) Na janela de configuração que aparecer, escolha a opção Não. Essa opção
deve ser sempre selecionada pois ela não permitirá que os bits de configuração
sejam regravados pelo seu programa. Se a opção Sim for escolhida, o bootloader
vai deixar de funcionar e não será possível, da próxima vez, gravar o programa via
bootloader. Nesse caso, o bootloader deverá ser regravado com um programador
de porta serial ou outro qualquer.

4) O programa em formato hexa decimal será carregado e mostrado na parte


inferior da janela.

5) Abra a lista Select PICDEM FS USB Board e selecione o dispositivo ativo na


porta USB, relativo ao circuito que iremos gravar, indicado pela seta 1.
6) Após selecionar o dispositivo USB, clique no botão Program Device, indicado
pela seta 2 para iniciar a gravação do programa. Quem esta acostumado a usar
programadores de porta serial vai notar que, com o bootloader, o programa é
transferido para o microcontrolador a uma velocidade muito alta.

7) Quando a gravação terminar, confira as mensagens que aparecem na janela de


mensagens, indicado pela seta 1. Se tudo correu bem, então pode iniciar a
execução do programa no microcontrolador, clicando no botão Execute, indicado
pela seta 2. Não será necessário desconectar o circuito da porta USB. Pode-se,
também, iniciar o programa pressinonando-se o botão RESET do circuito.
Observação importante: O arquivo HEX deve ser compilado para iniciar em 0x800,
em breve será publicado um tutorial

Fontes de consulta sobre o assunto:


 http://www.hpspin.com.br/uol/bootloader/
 http://microcontrollershop.com/product_info.php?products_id=2125
 http://robotica.estg.ipleiria.pt/clube/index.php/projetos-tutoriais/55-
programacao-de-um-pic-por-usb-sem-programador
 http://picprojects.org.uk/projects/picprojects.htm
Postado por Pilger às 11:30
Enviar por e-mailBlogThis!Compartilhar no TwitterCompartilhar no FacebookCompartilhar
no OrkutCompartilhar com o Pinterest

Nenhum comentário:

Postar um comentário

Você também pode gostar