terça-feira, fevereiro 23, 2021

Microcontrolador 8051: Usando um ESP32 para Gravar Firmware em um AT89S51 (parte 1)

Na hora de fazer um exemplo de gravação do AT89S51 (usando o que vimos no post anterior), me veio uma ideia meio louca... porque não usar um ESP32 e comandar a gravação remotamente por um browser? Imagine um gravador que você liga só na tomada e faz o download do firmware e comanda a gravação direto do seu micro de desenvolvimento sem precisar instalar um software especial!

O resultado deste meu exemplo será uma "prova de conceito", não um produto. Para virar produto precisaria caprichar mais no software, tratar melhor erros, suportar outros modelos de microcontrador, etc.  Mas é um projeto divertido. Exceto que ainda não está funcionando 100% (daí quebrar a apresentação em duas partes).


Além do ESP32 e do soquete para o AT89S51 (com o devido cristal), eu coloquei um display alfanumérico com interface I2C para informar o IP do gravador e o andamento da gravação. Usei a biblioteca "LiquidCrystal I2C"  para comunicar com o display.  Uma dificuldade é que o ESP32 trabalha a 3,3V e o AT89S51 a 5V. Como o comportamento está instável, acabei usando um conversor de nível para ter certeza que os níveis estão adequados.

A montagem está assim no momento:

Depois que funcionar faço um diagrama melhor!

O que tornou este projeto possível, sem ter que escrever muito código, foi a biblioteca AutoConnect para o ambiente Arduino. O objetivo principal dela é facilitar a configuração do WiFi, mas ela tem também suporte para páginas simples e, o essencial para o meu projeto, o upload de arquivos. 

Eu procurei simplificar as coisas no que diz respeito ao arquivo com o firmware. O formato suportado é nosso velho amigo HEX Intel. Os registros recebidos são tratados diretamente, com os dados sendo guardados num buffer de 4K (tamanho da Flash do AT89S51).

Status atual do projeto:

  • Hardware montado em protoboard
  • Tratamento do display, apresentação das páginas, upload e tratamento do arquivo feitos e funcionando
  • Rotinas de gravação do AT89S51 escritas, mas com funcionamento intermitente. Talvez esteja na hora de pegar o osciloscópio ou o analisador lógico.
Na segunda parte espero que esteja tudo funcionando de forma confiável e aí posso comentar detalhes sobre o código (que estará disponível no meu github).


Nenhum comentário: