post

Bootloader em microcontroladores

Num microcontrolador comum, o pograma compilado por nós é programado no chip através de um circuito especial (firmware) compatível, conhecido por programador. No entanto, isto implica que é preciso tirar o microcontrolador do PCB e pô-lo no programador. Repetindo este cenário muita vezes pode danificar os pinos do micontrolador bem como o PCB.  Daí existir uma outra alternativa de programar os nossos microcontroladores: explorar a funcionalidade RS232 dos nossos chips e transferir o programa compilado pela porta série, on-chip (sem a necessidade de remover o micro do PCB). Para que isso seja possível, é previamente programado no microcontrolador um pequeno programa (inferior a 200 palavras) que controla a comunicação com o PC e que transfere a informação recebida para a memória de programa do micontrolador. Este programa é designado por “bootloader“.

Execução de um bootloader

O seu princípio de funcionamento é simples. Sempre que o microcontrolador for ligado, inicia-se a execução do bootloader. Este começa por perguntar ao PC sobre o que fazer. Se este não disser nada num determinado prazo e se existir um programa na memória do chip, o bootloader executa-o. Caso receba informações do PC, é iniciado o processo de transferência e armazenamento do novo programa. Convém referir que o bootloader tem de funcionar em conjunto com um programa que corre no PC (exemplo de programas: TinyPIC, WinPIC Loader, Pic Downloader).

Já existem inúmeros microcontroladores com o bootloader instalado, alguns da família PIC16 e PIC18 da Microchip, alguns da ATMEL e AVR e mesmo o Arduino.

O circuito de interface com o PC é a configuração típica de quem quer comunicar via porta série:

Comunicação pic-pc via porta série

Leave a Reply

Your email address will not be published. Required fields are marked *