O hardware que montei possui as seguintes diferenças em relação ao projeto original:
- Foi montado em uma protoboard, usando uma placa de alimentação para reduzir para 5V a tensão de uma bateria de 9V.
- Possui três LEDs coloridos (vermelho, verde e amarelo), um dos quais no mesmo pino que o LED da placa do Arduino.
- Possui um LDR (resistor sensível à luz) ligado a uma porta analógica
O circuito montado foi:
Circuito do "Metaboard 100 Noção" - clique para ampliar |
Gerei uma versão ligeiramente alterada do bootloader original, anexando indicações através dos LEDs e aceitando um comando adicional para evitar um aviso do avrdude. As indicações são:
- Os três LEDs são acesos quando inicia a execução do bootloader
- Ao efetuar a conexão USB os LEDs vermelho e amarelo são apagados
- O LED vermelho pisca quando é feita uma gravação
Uma pequena "pegadinha" é que o bootloader só é ativado o ATmega é ressetado externamente com a chave na posição correta. O reset que ocorre quando o ATmega é alimentado não ativa o bootloader, mesmo com a chave posicionada. Isto me confundiu bastante no começo. Ao final da gravação, o firmware dispara automaticamente a aplicação gravada, saindo do bootloader.
Uma vez com o bootloader ativado e o circuito conectado ao PC, ele se apresenta para o avrdude como um programador usbasp. No Windows é necessário instalar um driver, que você encontra aqui.
O vídeo abaixo mostra a entrada no bootloader, a conexão da USB e a gravação do exemplo Blink.
Para completar as experiências, no próximo post vamos ver como fazer a gravação da aplicação de dentro da IDE do Arduino.
14 comentários:
Oi ótimo trabalho,
mostre um Metaboard mas quando coloco
o usb dispositivo usb com defeito
poderia me ajuda
Oi ótimo trabalho,
mostrei um Metaboard mas quando coloco
o usb dispositivo usb com defeito
poderia me ajuda
Vitor,
Os principais motivos para dar erro são não ter gravado corretamente o bootloader no ATmega ou ter feito algum erro na montagem (por exemplo, trocado os pinos de D+ e D-).
estou usando um gravador USBasp e já monte e monte varias vezes e sempre o mesmo erro? essa placa roda no windows 7??
Obrigado.
Vitor: funciona sim com o Windows 7. Qual o erro que está apresentando?
Quando conector no USB nada acontece e não aparece aquele "ícone" no gerenciador de dispositivos. poderia me ajuda??
Está acendendo os LEDs para indicar que entrou no bootloader?
nenhum led "liga" quando coloco o usb aparece que instala um drive "unknown device" e não instala o drive certo??
Neste caso ou tem algum erro na montagem ou o ATmega não está com a minha versão do bootloader gravado.
Estou gravando o "mega328p_16mhz" na pasta USBaspLoader.Metaboard -> firmware -> hexfiles -> mega328p_16mhz. É mesmo esse arquivo? tenho que fazer alguma coisa ou só grava mesmo? Funciona para win7 64 bit?? Obrigado
Estou gravando o "mega328p_16mhz" na pasta USBaspLoader.Metaboard -> firmware -> hexfiles -> mega328p_16mhz. É mesmo esse arquivo? tenho que fazer alguma coisa ou só grava mesmo? Funciona para win7 64 bit?? Obrigado
Sim, o arquivo é este mesmo. Além de gravar o hex, precisa acertar os fuses conforme descrito no Makefile. Estou (há algum tempo) preparando um passo a passo desta montagem. Espero publicar até o final deste mês (set/14).
Como devo gravar os fusiveis??
Se você com o avr gcc toolchain instalado, basta usar "make fuse". Se você estiver rodando o avrdude "na mão" o comando é "avrdude -c pgm -p atmega328p -u -U lfuse:w:0xf7:m -U hfuse:w:0xda:m -U efuse:w:0x03:m" trocando pgm pelo nome do seu programador (usbasp, usbtiny, arduino, etc).
Postar um comentário