Procurando por microcontroladores em uma loja, notei que ainda havia um bom estoque de microcontroladores programáveis de forma paralela, como o AT89c2051 (também 1051 e 4051). Estes são excelentes para pequenos projetos, como relogios, contadores, alarmes e até projetos embarcados. Não possui conversor analógico/digital , mas pode ser implementado usando método delta-sigma. Fornecem suficiente corrente em seus pinos de saída para acionar diretamente a leds. Mas como programa-los sem ter que comprar um caro programador paralelo?
Pensando nisto, porque não fazer um programador simples e que pudesse usar um aplicativo comum do computador? O HyperTerminal pareceu ideal , pois pode controlar a porta serial, transferir arquivos e comandos com facilidade e em diferentes velocidades (bauds).
Para a tarefa do Hardware , seria o ideal usar um microcontrolador com suficientes saídas e que fosse facilmente encontrado . Optei pelo ATMEGA8 , que é facilmente encontrado. Para gerar o programa code usei o ambiente da ATMEL AVR STUDIO , em assembly, e depois usei o Ponyprog2000 junto com um simples hardware de resistores (ex. AT-PROG) para programar o ATMEGA8 . Veja abaixo como ficou o esquema do programador:
O circuito é alimentado por uma fonte externa de 13 volts. Foi usado um MAX 232 ou equivalente para adaptar os níveis de sinais da serial com o microcontrolador. O soquete usado pode ser um comum, mas de boa qualidade. O ideal é usar o soquete ZIF, especialmente se pretender programar ‘ muitíssimos ‘ controladores. A frequência do cristal usado é de 4 MHZ (bem comum). Inicialmente, montei o circuito em um Breadboard para teste. Após conferencia geral, chip ATMEGA8 PROGRAMADO, e AT89c2051 conectado, conectei a fonte, conferi as tensões, etc. O próximo passo foi abrir o HYPERTERMINAL, configurar a transmissão para 9600 bauds (por opção de programa) , sem paridade, 8 bits, xon-xoff e configurei ‘PROPRIEDADES’-> ‘CONFIGURAÇÕES’->’CONFIGURAÇÕES ASCII’-> CONFIGUREI O ATRASO DE LINHA PARA 1 MS E O ATRASO DE CARACTER PARA 1 MS , PARA EVITAR FALHAS.
Ao ligar a alimentação do programador com conexão feita e HYPERTERMINAL rodando, aparecerá no texto o nome do programador, se tudo estiver ok. Quais são os comandos aceitos pelo programador? São estes:
TECLA ‘ENTER’ = APARECE O NOME DO PROGRAMADOR E RESETA
TECLA ‘E’ = ERASE (APAGAR O CHIP PARA NOVA GRAVAÇÃO . SEMPRE APAGUE ANTES DE UMA GRAVAÇÃO)
TECLA ‘S’ = SIZE (TAMANHO DO ARQUIVO QUE DESEJA LER COMO1024(AT89C1051),2024(AT89C2051), 4096 (AT89C4051)
TECLA ‘?’ = AJUDA (CASO ESQUEÇA OS COMANDOS, TECLANDO ‘?’ APARECERÁ TODOS ELES)
TECLA ‘R’ = READ (FAZ A LEITURA DO CHIP COLOCADO NO SOQUETE DE FORMA CORRIDA)
TECLA ‘H’ = READ HEXA (FAZ LEITURA DO CHIP COLOCADO NO SOQUETE NO FORMATO HEXADECIMAL PADRÃO)
TECLA ‘W’ = WRITE ( GRAVA O CHIP COM ARQUIVO HEXA )
TECLA ‘L’ = IMPEDIR ACESSO A MEMÓRIA PELA QUEIMA DE FUSÍVEIS ( NÃO FOI IMPLEMENTADO NESTE PROJETO)
OBS. PARA GRAVAR DIGITE ‘W’ ,EM SEGUIDA CLIQUE EM ‘TRANSFERIR’ E AINDA ‘ENVIAR ARQUIVO DE TEXTO’. ESCOLHA NA CAIXA O ARQUIVO HEX (TEM QUE SER HEX) QUE GRAVARÁ E CLIQUE NELE. SERÁ ENVIADO PARA O CHIP IMEDIATAMENTE.
Depois de alguns erros e correções, o circuito passou a funcionar muito bem e fiquei feliz de poder usar os “esquecidos” microcontroladores de programação paralela.
Segue abaixo o desenho da placa de circuito impresso:
Segue abaixo o desenho da placa com os componentes (visto pelo lado das trilhas de cobre) e lista de materiais:
Segue abaixo o arquivo ASM:
Segue abaixo o arquivo HEX para programar o ATMEGA8:
Até o próximo artigo!!!!!