domingo, 1 de março de 2020

HV FuseReset II


Default Fuse & Uno Bootable

Há um tempo atrás realizei uma placa para programar em “paralelo” alguns micros AVR, mais para desbloqueá-los e repor os fuses, que por vezes dá borrada quando mal inseridos e não existe outra forma a ter acesso senão em modo paralelo, já que o ISP não comunica com ele.

O resultado foi satisfatório, alimentado com um transformador de 12V (ou mais), basta colocar o micro bloqueado no socket, ligar o interruptor e carregar no switch, depois é só esperar que o LED vermelho se apague e está feito.

Pois é, se ficou bem-feita a operação ou não, ninguém sabe, só testando-o via ISP, por isso resolvi fazer uma nova versão deste aparato mas com alguma inteligência, de preferência alimentado a pilhas.
Outro pormenor é que se o micro tiver algum lockbit programado, não se consegue alterar os fuses sem se apagar totalmente a memória.

Daí criar uma nova versão:



PCB realisada:


Funções:

- Verifica a assinatura
- Apaga as memórias flash e eeprom
- Coloca os fuses de origem (default fuses)
- Grava o bootloader Uno com os respectivos fuses e lockbit
- Verifica o estado da bateria ao ligar >7V

Em programação paralela, são necessárias duas tensões, 5V, e 12V que liga ao RST no momento certo.
Para os 5V, a partir dos 9V da bateria basta um simples 78L05 ou similar; já os 12V tive de recorrer a um elevador de tensão (ST662AB, 5V to 12, 0.03A).

Este é o diagrama de fluxo de acordo com o programa escrito:


Pequeno vídeo do aparelho em funcionamento: