sexta-feira, 12 de outubro de 2012

Instalando o Optiboot em um ATmega328 standalone com oscilador interno de 8MHz

O Optiboot agregou uma gama de qualidades ao Arduino, dentre elas, velocidade no boot, transferência mais rápida dos sketches e menor utilização da memoria flash. Como no universo dos MCUs normalmente a memoria é muito limitada, este recurso é o que mais me agrada nele, já que possui apenas um quarto do tamanho do bootloader anterior, deixando livres 32.256 bytes para o desenvolvedor, no caso do ATmega328, um ganho de 1,5K bytes!
Todas estas vantagens garantiram ao Optiboot o lugar do bootloader padrão nos Arduinos a partir do modelo Uno, porem quem já tentou grava-lo em um ATmega328 standalone que faz uso do oscilador interno de 8MHz, possivelmente teve a decepção de não conseguir utiliza-lo para efetuar o uploads dos sketches.

O curioso é que todo o processo de gravação do bootloader ocorre normalmente, bem como o MCU responde positivamente ao funcionamento do bootloader, efetuando as três piscadas rápidas do LED ao efetuar o reset, sinalizando que o mesmo esta sendo executado.

Mesmo após efetuar varias configurações diferentes de fuses, não obtive sucesso e resolvi estudar mais a fundo o problema. Notei que fazendo uso de um oscilador externo, o mesmo funciona perfeitamente! Isto se deve ao fato de que o Optiboot eleva a velocidade de upload na UART para 115.200 BPS, tornando a transferência de sketches mais rápida. Entretanto o oscilador interno infelizmente não possui muita precisão (cerca de até 10% de tolerância), que é exigida em velocidades de transferencia mais altas.

Link: willianrdg.com.br/blog/2012/10/instalando-o-optiboot-em-um-atmega328-standalone-com-oscilador-interno-de-8mhz

Nenhum comentário:

Postar um comentário