É possível atualizar o firmware em um Arduino para que ele possa fazer mais coisas, como alterar a subvoltagem / supervoltagem para fornecer mais poder de processamento. Para fazer isso, você provavelmente teria que re-flash o próprio chip, então como isso seria realizado?
arduino-uno
firmware
JVarhol
fonte
fonte
Respostas:
Para responder ao aspecto de sua pergunta sobre o "firmware" no ATUMega328p MCU usado na maioria das placas Arduino:
Não há firmware no ATmega além do gerenciador de inicialização. Os programas que você escreve estão sendo executados diretamente no hardware.
Existem certas configurações de "fusível" que são definidas com um programador de ISP . No entanto, existem apenas 24 deles (três bytes), e eles se relacionam amplamente à configuração de baixo nível, e não é o que eu acho que você está perguntando:
Há também o Bootloader , que é um pequeno programa que fica em um segmento separado da memória do programa do MCU e permite que ele se atualize na inicialização (que é como todos os arduinos são programados). No entanto, ele é executado apenas por um curto período de tempo na inicialização e é completamente removido da memória depois que o MCU passa para o programa principal.
Por fim, existem MCUs auxiliares (ATmega16U2 / 8U2) na maioria das placas arduino usadas como interfaces serial USB, que podem ser atualizadas para se comportarem de maneira diferente (por exemplo, emular um teclado / mouse), mas, novamente, isso não é realmente uma mudança para o processador principal, portanto, se ele conta como "instalar um firmware diferente" depende de como você define o arduino.
Realmente, eu recomendo fortemente a leitura da folha de dados do ATmega328P . Esta é a documentação para o MCU que basicamente forma o "Arduino". Deve abordar o que parece ser conceitos errôneos.
fonte
Observe o gráfico abaixo, em relação ao seu sub / excesso de tensão no dispositivo para F_CPU diferente, indica o relacionamento. Como resultado, você encontra a maioria dos circuitos do Arduino em 5V e uma freqüência de 16MHz. Embora existam algumas variantes de 3,3V que funcionam a 8MHz.
No entanto, a biblioteca principal fornecida com o IDE normalmente tem # if específicos para velocidades de F_CPU de 8 e 16 MHz, sem usar uma fórmula na maioria dos lugares.
Portanto, é possível fazer o que você pede. No entanto, você encontrará as limitações da biblioteca principal que afetam. Inclinando a relação custo x benefício, para a própria intenção. E então provavelmente deixaria o Stock IDE e as bibliotecas principais para um método mais makefile.
fonte