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.
Nenhum comentário:
Postar um comentário