Ao programar ATMEGA8, as vezes, pode ocorrer de acidentalmente travarmos o chip para programação “in circuit” (modo serial).
Isto pode ocorrer ao escrever nos FuseBits High e Low (configurações do chip). E ai? Só com programador paralelo para reverter a situação. E se voce não tem? Muito caro? Tem quem jogue fora os chips e compra outros. E se fizéssemos um “Destravador”?
Pensando em uma solução, resolvi estudar o datasheet do ATMEGA8 e conhecer os comandos de programação paralela e respectivos pinos que deviam ser usados. Necessitava também, de um chip com muitos pinos e que fosse barato. Optei pelo velho, mas viril, e barato AT89S52 . Ele pode ser programado facilmente “in circuit”, o que facilitou o desenvolvimento do projeto. Depois de muitas horas de trabalho e experimentos, surgiu o “BREAKFUSE”, cujo esquema esta abaixo.
Para usa-lo , basta encaixar o ATMEGA8 no soquete ,ligar a uma fonte de 13 volts externa e apertar o botão “destravar”. Se tudo correr bem, o led verde piscará 3 vezes indicando o destravamento, ou seja, a mudança do “Fuse bit” para aceitar programação serial. Também será apagado a memória flash e os lock byte (proteção contra cópia do programa e da EEprom). Caso ocorra falha, o led vermelho piscará 3 vezes. Basta agora, usar o chip normalmente com o programador “in Circuit” (ex. PonyProg).
Porque então da porta serial (db9) no circuito? Visto que desejava ver os bytes de calibração do oscilador interno , optei a visualização de dados por meio de uma serial a 9600 bauds,8 bits,sem paridade, Xon/Xoff para comunicar com um PC via um programa terminal, como por exemplo , o HyerTerminal. Também é possível alterar a gosto , os Fusebits bastando teclar “pf” e digitar novos valores. Posso visualizar o que foi programado digitando “f” . Clicando “?” poderá ver outras opções. Testei o circuito com ATMEGA8-16PU / ATMEGA8L-8PI / ATMEGA8L-8PU , sem problemas. Para outros modelos que não o ATMEGA8 , exigiria estudo dos respectivos datasheets e alterações de pinos/soquetes deverão ser feitas.
clique abaixo para obter arquivo ASM:
BREAKFUSE2_ASM
clique abaixo para obter arquivo HEX:
BREAK_HEX
Segue lista de materiais
Segue a placa :
Segue a placa com componentes (visto pelo lado das trilhas de cobre):
Segue o arquivo original que gerou a placa (baixe o programa ‘ExpressPCB’ free para abrir)
OBS. Imprima com opção ‘top’ ao invés de ‘bottom’ (erro na hora de escolher o lado):
breakfuse (zip)
Curiosidades:
Universo cheio de surpresas
Universo – obra do acaso?
Nosso inigualável sistema solar
Mapeamento do céu
Qual a origem do universo e a vida?
Outros assuntos:
Quatro dicas para lidar com problemas financeiros e dívidas
Como lidar com sucesso com os sogros
Como reagir a um assédio sexual
Como parar de adiar as coisas
Até o próximo artigo!!!
Claudio,bom dia!
Sinto incomodar novamente,estou tendo dificuldade em gravaro at89s52 com os hex necessário.
Não estou tendo sucesso com o gravador acima mencionado.
trabalhei em dois de seus projetos com resultado positivo que foram o gravador de Pic e AVR- simples.
Já montei o projeto brekfuse totalmente porém sem at89s52 gravado de nada adianta,fica uma pergunta?
Antes de desertir do projeto gosataria de saber se tens como disponibilizar algum projeto de um gravador tipo serial ou paralelo de uso simples para esta gravação,com possibilidade de uso no pony ou no ic-prog ou derrepente realizar a venda de um at89s52 já gravado com o hex necessário.
Desde ja meus agradecimentos.
Olá Rubens! Não desista! Talvez adiar até obter mais informações ou recursos. Estava pensando… Quando voce usou o seu programador em questão, voce, além de ligar os fios Miso, Mosi, Reset, Clock ( e a alimentação , é claro) , ligou também um cristal oscilador de 12mhz nos pinos 18 e 19 do AT89s52??? Estes chips antigo necessitam de clock para funcionar até na programação. Com respeito a programador , tem neste blog um , que usa o Hyperterminal para transferir arquivos hex, chamado de HyperProg52 , que usa um atmega8 para programar o At89s52 . Visto que voce tem montado o gravador de avr simples, poderá usa-lo para gravar o atmega8. Outra sugestão, mas que ainda não verifiquei o funcionamento, é a encontrada neste link. Anteriormente, tinha feito testes com ic_prog e pony para gravar os at89s52 , mas também não fui bem sucedido, por isso parti para construi um. Tinha visto um interessante , mas precisava programar antes um at89s52 para depois este programar outros. Se eu não tinha como programar um, não me servia. Dai, parti para um atmega8. Cheguei até a fazer um programador via software em visual basic. Mas, como não sou muito bom em programação, não consegui fazer o ‘encapsulamento’ para instalar as ‘dll’s’ da vida e por isso, roda bem, mas somente em meu computador, usando as dll instaladas pelo visual basic.
Claudio
Rubens! Veja neste link o esquema que pode ser usado para programar o At89s52 usando o Ponyprog. Poderá usar o programador STK200 montando ele, conforme esquema neste link_ , e não esquecendo de colocar o cristal no pino 18 e 19 do microcontrolador a ser gravado. Na epoca que fiz testes, tinha usado este stk, mas acho que cometi o erro de ‘esquecer o cristal’. Assim que tiver um tempo , vou tirar esta duvida.
Claudio
Olá Rubens!
Eu nunca usei este programador. Mas sei que, através do codigo de erro, dá pra determinar o que está acontecendo (se o programa for decente deverá ter uma ‘tabela de erros’). Já tive problemas com programadores , no hardware, por usar fio muito comprido. Use o mais curto que puder. Leve a alimentação bem proxima dos pinos, tanto o vcc como o gnd. Alguns programas necessitam de liberar as portas de comunicação (travadas pelo windows).
Se for o caso podera usar o ‘UserPort’. Tente gravar um arquivo hex qualquer (baixe nos sites que dão exemplos do tipo ‘acenda um led’), no microcontrolador, para testar se o programa grava.
Vá eliminando o que pode ser a causa.
Espero ter ajudado.
Cláudio
Boa noite!
Estou tentando gravar o arquivo hex e o mesmo esta dando erro,será que estou a gravar errado?
estou a usar o software AIC_ISP para at89s52´,porem sempre vem a mensagm de erro no arquivo,já tentei tbm pelo BREAKFUSE2_ASM
porém sem sucesso,alguma dica??? grato!
Desde já deixo meus agradecimentos pela a atenção a minha duvida,continuarei no projeto ,caso obtenha sucesso venho aqui posta resultados positivos espero,rs,rs boa noite.
Boa noite a todos!
Estou tentando confeccionar a placa do esquema BREAKFUSE”,porém a medida do suporte para o at89s52 e atmega 8 esta fora do padrão no esquema ,se eu tiver fazendo nada errado o soquete original de ambos tem a medida maior que a do esquema ,alguem poderia me ajudar?
tentarei usar o projeto para destravar atmega88,será que da certo? desde já obrigado.
Olá Rubens!
Quando se converte imagens para outros padrões, pode ocorrer falhas nas dimensões originais. Vou ver se acho o arquivo gerador original.
Quanto a usar para destravar o atmega88, não posso afirmar com certeza que terá sucesso. Mas, pelos datasheets, os comando são iguais, tendo grande chance de funcionar.
Cláudio