A programador de microcontrolador ou queimador de microcontrolador é um dispositivo de hardware acompanhado de software que é usado para transferir o código da linguagem de máquina para o microcontrolador/EEPROM do PC. O compilador converte o código escrito em linguagens como assembly, C, java etc. em código de linguagem de máquina (que é compreensível pelas máquinas/microcontroladores) e o armazena em um arquivo hexadecimal. A programador de microcontrolador atua como uma interface entre o PC e o controlador de destino. A API/software do programador lê os dados do arquivo hexadecimal armazenado no PC e os alimenta na memória do controlador. O controlador alvo no qual o programa precisa ser gravado é colocado no programador usando um soquete ZIP. O software transfere os dados do PC para o hardware usando porta serial, paralela ou USB.
Figura 1: Diagrama de blocos de um programador de microcontrolador
Dependendo da forma como interage com o PC, existem três tipos de programadores de microcontroladores:
Programador Paralelo usa a porta paralela do PC. Eles são programadores de baixo custo, mas não são amplamente utilizados.
Programadores seriais usa a porta serial para interagir com o PC via protocolos RS232. Eles são mais populares entre os amadores que trabalham no PC. No entanto, tanto os programadores seriais quanto os paralelos se tornarão obsoletos em um futuro próximo. O principal motivo é a indisponibilidade de portas paralelas e seriais em PCs e laptops nos próximos anos.
Programador USB usa a interface USB para transferir os dados do PC. A principal vantagem dos gravadores USB é que eles são alimentados pelo próprio PC e não há necessidade de alimentação adicional. Os programadores USB já se tornaram populares e em breve substituirão os programadores serial e paralelo.
O programador geralmente contém um microcontrolador que é pré-programado para obter dados do PC e programar o controlador de destino. O programador grava o controlador alvo usando qualquer um dos protocolos como SPI, interface paralela, I2C/TWI ou CAN. A velocidade de gravação depende da forma como o programador faz interface com o PC e dos protocolos usados para gravar o controlador alvo.
O método convencional para gravar um controlador é retirá-lo do circuito, colocá-lo no gravador e depois despejar o arquivo hexadecimal no controlador usando a API. Para eliminar o problema de remover o controlador do circuito sempre que ele precisa ser programado, os controladores foram agora atualizados com o recurso In System Programmer (ISP). Isso permite gravar/programar um controlador sem remover o controlador do circuito em que é usado. Os controladores mais recentes vêm com recursos como memória de bootloader que permite recursos de gravação automática, ou seja, tais controlador microcontrolador não precisa de nenhum hardware de programador adicional. Eles precisam apenas de uma API para transferir o programa para o controlador de destino. Esta API também pode ser incorporada no compilador e, portanto, o compilador pode gravar diretamente os controladores de destino.