terça-feira, julho 26, 2011

AVR: Programador DAPA

Neste post vamos examinar um programador minimalista, o DAPA (Direct AVR Parallel Access), que requer apenas 3 resistores e os conectores.

Princípio de Operação

A programação serial (SPI) do AVR envolve apenas pulsar adequadamente três sinais lógicos (RESET, SCK e MOSI) e ler nas horas adequadas um quarto sinal (MISO). Um trabalho perfeito para a porta paralela de um PC, controlada por um software adequado.

O programador DAPA consiste simplesmente em conectar alguns pinos da porta paralela aos pinos do microcontrolador, com resistores em série no caso dos sinais MISO, MOSI e SCK:


Montagem de Teste

A alimentação do microcontrolador precisa ser feita com uma fonte externa. A montagem grosseira abaixo usa para teste um ATTiny2313. Este modelo sai de fábrica configurado para usar um oscilador interno, portanto não é necessário conectar um cristal.


Testes

Os testes foram feitos com o AVRDUDE. Para poder controlar a porta paralela é necessário instalar o software giveio. Este software vem junto com o software do Arduino ou pode ser baixado daqui. Para instalá-lo execute ginstall.bat.

Feitas todas as conexões e alimentado o ATTiny2313, podemos fazer um teste simples com o AVRDUDE:

Este teste apresenta a "assinatura" do microcontrolador. Para obtê-la, o AVRDUDE precisa enviar um comando e obter a resposta, portanto são exercitados todos os sinais.

Um teste mais exigente é gravar um software na Flash:

Para encerrar, vamos apagar a Flash, retornando o microcontrolador à situação inicial:


Referências

Encontrei este circuito (e outros que vou comentar no futuro) neste artigo, que por sua vez o pegou no site oficial do Arduino (onde você pode ver uma montagem mais definitiva).

O giveio vem de um curso do MIT, mais especificamente desta página,

4 comentários:

Rodrigo disse...

Sabe se este programa roda sobre windows 7 + paralela USB ?

Daniel Quadros disse...

Rodrigo, por enquanto os meus testes foram feitos sob o XP, com uma porta paralela "das antigas". Se conseguir uma paralela USB vou fazer um teste, mas acho que um programador via serial RS232 ou direto na USB deve funcionar melhor com o Windows 7. Pretendo implementar estas opções em breve.

Gibroh disse...

Parabéns pelo artigo.Simples e direto a solução,assim como o uso do ATtiny.Esse microcontrolador barato,simples e exclui oscilador.

rsenas disse...

Muito boas suas explicações estou aprendendo muito sobre o assunto. Um abraço.