Translate

segunda-feira, 10 de fevereiro de 2014

Construindo um USBasp - programador AVR


   Após uma semana tentando, refazendo, verificando, consegui fazer um programador USBasp prototipado, conseguindo programar um outro Atmega8. Orgasmo mental de felicidade.
   Segue a receita de bolo abaixo, em um protoboard.
   Seguindo o esquema do blog do Denilson Figueiredo de Sá, fiz o circuito, errado, mas consertei seguindo o esquema original. O Denilson fez um grande favor de arrumar o esquema para um formato físico mais próximo do real, facilitando a identificação das pernas do Atmega8 e suas ligações. Meu principal erro foi a inserção de um resistor (2k2) errado no lugar de outro que omiti (10k). Erros e mais erros de identificação do hardware, me desanimando um pouco.
   Republico os esquemas abaixo, porque os sites vivem desaparecendo.
Esquema do Denilson

Esquema original 

   Retirar o driver windows aqui, o libusb_1.2.4.0. Retirar também o firmware usbasp.2011-05-28 aqui. Utilizei o arquivo hex da pasta bin/firmware.

   Para fazer upload do firmware e acertar os fuses, utilizei um USBasp ching-ling da Baite, via mercado livre, que eu já citei neste blog anteriormente, e o programa avrdudess_20140102.zip no mesmo repositório logo acima.
   Os fuses recomendados são: LFUSE=0xef. HFUSE=0xc9.
   Para mais informações confira algumas instruções do avrdudess aqui.
   Uma observação é que não utilizei nenhum dos jumpers/switches e funcionou de primeira. Atentar para os fuses originais.



   Protótipo montado e funcionando. No soquete tipo Shrimp Minimal, está outro Atmega8 que foi programado. Tanto o exemplo blink via Arduino IDE como o firmware USBasp firmware via AVRDudess foram gravados com êxito. Isto causa o famoso dilema chicken-or-egg, pois o chip programado vira um chip programador.
   Infelizmente comecei por um projeto prometedor que era o tinyUSBboard. A idéia é excelente, pois pode atuar como um arduino standalone ou como um programador. Como não consegui fazer o circuito funcionar, pela falta de experiência com eletrônica, esquemas, etc, após várias tentativas e revisões, acabei desistindo. Mas recomendo, pois aparentemente várias pessoas conseguiram confeccionar o seu.

------------------------------------

   Acabei montando o tinyUSBboard. Como estamos sofrendo a transição da versão do arduino IDE para 1.5.5 beta, o projeto não está adaptado, dá trabalho demais. Funcionou o teste, mesmo eliminando todos os Leds e switches. Ele simula um teclado e sai digitando na janela atual. No gerenciador de dispositivos ele aparece como teclado mesmo.
   Talvez em algum tempo tenhamos uma receita de bolo pronta para isso. Tem que seguir as instruções do site à risca, inclusive os fuses lfuse=0x3f e hfuse=0xc0 aparecem repentinamente e outro site estava mostrando valores incorretos.
   Só montei por teimosia.


Nenhum comentário:

Postar um comentário