segunda-feira, 20 de novembro de 2023

Meu Attiny não grava mais!

Eu simplesmente adoro os microcontroladores Attiny, principalmente o Attiny13 e o Attiny85. Pequeno, simples, barato e autosuciciente (basta alimentar ele, e ele está funcioando!), e além de tudo, o programa por ser feito em C, usando o IDE da Arduíno (com suas bibliotecas necessárias instaladas) e a brincadeira não tem fim.

Só tem um problema, se você setar os fuses errado, aparentemente o seu Attiny morre, pois a partir daí, você não vai conseguir mais gravar nenhum programa nele, com mensagens do tipo "Invalid Signature", aparentemente, já era, seu Attiny "Brickou".

Mas não o jogue fora, há uma solução para isso, para "ressucitar" seu Attiny morto depois de setar o fuse, vai ser necessário montar um outro circuito chamado de "Gravador de Alta Tensão", mas não se assuste, essa "Alta Tensão" que se refere é apenas 12V, aliás, se você usa o um Arduíno como gravador do seu Attiny (Arduino as ISP), ter em mãos uma plaquinha já montada com esse circuito (mesmo que feita em placa furada) é indispensável, pois você pode simplesmente ficar na mão, após um simples descuido. E não se assuste com o fato de ligar 12V num cirtuito onde normalmente se trabalha com 3.3 - 5V, aparentemente é desta forma que o microcontrolador entra em modo "recovery" e é possível então setar os fuses corretos, ou pelo menos o padrão de fábrica. 



Repare na figura acima, que foi retirada do próprio datasheet do ATmega328P (microcontroador usado no Arduino UNO e similares), onde para entrar em modo de gravação em alta tensão, o pino do reset deve estar entre 11.5 - 12.5V. Mesmo assim a atenção deve ser redobrada, pois a alimentação ainda é de no máximo 5.5V!  Fiz questão de deixar tudo isso bem claro, pois se caso seu Arduíno fumacear, pegar fogo, virar carvão, ser abduzido por um alien, incorporar um programa demoníaco, NÃO É PROBLEMA MEU!!!

Montando o Circuito

Vamos lá, o circuito em questão que deve ser montado é esse:

Clique para ver a imagem em maior tamanho

O transistor pode ser qualquer um NPN de uso geral, os resistores, fora o da entrada de 12v e da base do transistor, podem ser desconsiderados. Respeite as portas do Arduino, caso você queira utilizar o programa que eu vou recomendar. Você pode montar temporáriamente numa protoboard, como eu precisei fazer primeiramente:


Mas depois que você tiver um tempo, como eu sugeri, é recomendado você fazer uma plaquinha, para você não ficar na mão, sugiro algo assim:


Nessa placa em específico, eu aproveitei o pino "VIN" do Arduíno UNO, que é ligado diretamente ao plug de energia da placa, assim ao conectar uma fonte de 12V na placa do Arduino UNO, atravez do pino "vin" eu consigo os 12v, sem precisar colocar outro conector nessa placa. Para ter certeza de que ela tem os 12V necessários para funcionar, um LED foi ligado à saida "VIN" e junto a ele tem um diodo zenner de 9V em reverso, sendo assim o led só vai acender se o plug tiver uma tensão maior do que 9V, no caso de 12V, vai ter os 3V necessários para o led acender, indicando que está Ok.

Programa de Reset do E.FUSE

Agora com o circuito pronto, é hora de gravar o programa que vai fazer o reset dos fuses, e restaurar o padrão de fábrica. Eu aconselho a utilizar essa versão do github, do qual eu já testei e melhorei, mas a internet está ai para mais possibilidades. Após gravar esse programa, conectar o Attiny morto ao circuito, ligar os 12V e abrir o Monitor Serial, ou mesmo o programa Putty em modo Serial, coloque como velocidade da serial 19200 e se tudo estiver correto, a mensagem na serial vai ser mostrada: "Enter any character to start process..", basta digitar qualquer coisa e o processo vai continuar automaticamente, mas se ele ficar travado na mensagem: "Entering program mode..", é porque tem algo errado, verifique o circuito novamente. Agora se ele detectar corretamente seu Attiny (conforme a mensagem na saida serial) e finalizar com sucesso o processo, seu Attiny está pronto para ser usado novamente.

Espero ter ajudado com esse post, eu não vou ficar aqui ensinando o "Padre a Rezar a Missa", com questões básicas de eletrônica e Arduíno, pelo simples fato, de que se você não as souber, você está um passo a mais do que deveria estar, e deve voltar um pouco e estudar mais essas questões, agora caso contrário, com certeza (se seu Attiny não estiver queimado) seu Attiny voltará a vida.