BREAKFUSE – DESTRAVADOR DE ATMEGA8 (REF009)

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

BREAKFUSE_LISTA_MAT

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!!!

24 comments on “BREAKFUSE – DESTRAVADOR DE ATMEGA8 (REF009)

  1. Claudio boa noite,
    Parece que agora tah tudo certo, mais eu ja tinha corrigido isto aqui na minha placa e ainda não consegui faze-lo funcionar, quando eu ligo o led vermelho acende demora um pouco e dah duas piscadas e permanece apagado não fazendo mais nada, será pq eu não tinha resistores de 470r e usei de 330r, mais eu cheguei a monta-lo na proto, não destravou, mais o led verde até piscava, analizando com o osciloscopio parece não chegar tensão suficiente no atmega8, pois sinal chega, só vc mesmo para reportar para nós o que deve estar acontecendo, claro não abusando da sua boa vontade.
    Urias

  2. Claudio boa tarde,
    Depois de postado descobri outro arquivo da pcb que parece estar corrigido, mais ainda não está pois pelo esquema do 27 do 89s52 saem 2 resistores um de 1k conectado ao +5v e outro de 2k2 ligado a base do bc 548 e pelo que reparei os dois estão em serie saindo do pino 27 e ligando á base do transitor e, outra coisa tambem que notei a bitola do atmega8 no chapeado está mais larga eu não sei se é para outro tipo de Soquete o ZIF talvez, pois não conheço sua bitola, uma ultima pergunta, uma vez que anteriormente tinha montado um cabo paralelo e parece que consegui gravar o .hex no 89s52 pois observando no osciloscopio ele está gerando uma forma de onda para o pino 9 do atmega8 e tambem pisca 3 vezes o led vermelho, sem este circuito ele funciona o destravador sem a malha dos pinos 10 e 11 que é a entrada de dados do 89s52?
    Sem mais antecipo meus agradecimentos.
    Urias

    1. Olá Urias! Dei uma verificada e ajustada naquilo que estava errado. Confira se faltou algo, por favor.
      Claudio

  3. Claudio bom dia,
    Parece que tem mais um erro, no pino 27 do 89s52 tem tb um resistor de 1k conectado ao +5v e no chapeado está ausente, outra coisa tambem que notei a bitola do atmega8 no chapeado está mais larga eu não sei se é para outro tipo de Soquete o ZIF talvez, pois não conheço sua bitola, uma ultima pergunta, uma vez que anteriormente tinha montado um cabo paralelo e parece que consegui gravar o .hex no 89s52 pois observando no osciloscopio ele está gerando uma forma de onda para o pino 9 do atmega8 e tambem pisca 3 vezes o led vermelho, sem este circuito ele funciona o destravador sem a malha dos pinos 10 e 11 que é a entrada de dados do 89s52?
    Sem mais antecipo meus agradecimentos.
    Urias

  4. Claudio boa tarde,
    Bacana sua iniciativa em disponibilizar este material para montagem deste destravador de atmega8, comecei a monta-lo mais me deparei com dois erros do esquema para o chapeado, no esquema pino 29 do 89s52 liga led verde, mais no chapeado está ligado no pino 28, o outro erro está na malha que liga ao pino 9 do 89s52 pois no esquema este pino está conectado em um resistor de 2k2 que por sua vez vai na junção do capacitor ligado ao vcc com um resistor de 10k ligado ao gnd e no chapeado não está assim o pino 9 está indo na junção dos dois resitores, fiquei sem saber se eu sigo o chapeado ou o esquema, sem mais para o momento antecipo meus agradecimentos.

    1. Olá Urias! Obrigado por trazer atenção este erro. Realmente, conforme poderá confirmar no arquivo ASM , o led verde fica no pino 28 (o esquema está erradamente constando pino 29) . A malha relativa ao pino 9 também está errada no esquema. O lado do resistor de 10k não deve ficar junto ao resistor de 2k2 e capacitor, mas sim , direto no pino 9 e seu outro lado, mantendo no GND. Assim, o ‘chapeado’, em ambos os casos, está correto.
      Assim que tiver um tempo vou corrigir o esquema.
      Obrigado

    1. Olá Rubens!
      Fiz teste com Ponyprog e realmente não consegui fazer funcionar usando stk200, mesmo usando cristal junto ao microcontrolador at89c52.
      Alguns blogs dizem que ‘não há suporte para at89s52 no pony‘. Tentei a versão fornecida pela Atmel com cabo ISP, chamada at89isp, o do Asim, o Aec_isp , do Adam Dybkowsky, sendo que cada um dava um problema. Ora só lia, mas não programa, ou, não reconhece o device number, ou não dá comunicação,etc. Creio que com os windows modernos TODOS não funcionam corretamente (alguns são baseados em ‘DOS’). A solução seria colocar numa partição de seu computador uma versão mais antiga do windows somente para programar os danados destes chips. Não sei se emulando windows mais antigo funcionaria. Assim sendo, vou continuar usando o meu ‘HyperProg52’ para programar os at89s52.

      Cláudio

Comments are closed.

Back To Top