Me atualizando sobre artigos, desde que parei de trabalhar com os ATTinys, surgiu um bootloader que consegue carregar os programas direto pela USB sem a necessidade de um conversor USB-Serial, o Micronucleus, usado pela placa de desenvolvimento Digispark, por exemplo.
Aqui vou utilizar um ATTiny85 com o mínimo de componentes, pelo menos para carga do bootloader e do programa.
#########################################################################
BOOTLOADER
Utilizei um USBasp para carregar o bootloader primeiramente. Trabalhoso acertar o driver.
Para carregar o bootloader, utilizei o AVRDUDESS, utilizando o Programador "USBasp, http://www.fischl.de/usbasp", Port "usb", Baud rate "19200" e Bit clock "1.5 Mhz". Baixando e descompactando o Micronucleus, os firmwares estão na pasta firmware\releases, de acordo com o modelo do microcontrolador. É ele que deve ser indicado na caixa Flash e também ser escolhida a opção Write. Feito isso, é só clicar no botão Go da seção Flash.
Outros acertos são os Fuses:
Acerte o L para 0xE1, H para 0xDD, E para 0xFE e dê um Write (NÃO ERRE OS VALORES, porque pode bricar o ATtiny). Caso não faça essa etapa, não conseguirá carregar o programa depois. ATENÇÃO: Se não conhece, não mexa no fuse LB! Os Fuses são tão delicados que podem afetar o clock do microcontrolador, impedindo qualquer reprogramação - a única solução será HVSP - resetar com alta voltagem - tem um projeto com Arduino Uno aqui.
Caso tenha que testar a comunicação antes, pode utilizar o Botão Detect para tentar identificar automaticamente o microcontrolador.
Uma Dica: não sei porque, mas o driver do USBasp parou de funcionar, após um tempo ligado direto. Reiniciei o PC, deconectei e conectei novamente o USBasp e nada. Só entrando de novo no Zadig e pedindo para reinstalar o driver. Como comentei ali em cima, muitos problemas com muita insistência ou tomara que você tenha muita sorte e solucionem o problema de incompatibilidade com Windows 10.
#########################################################################
PROGRAMA
O teste de fogo é carregar uma versão alterada do Blink montando um circuito - utilizei o Tiny-Bread-Duino do Sr. M Druiven - aqui - depois de muita pesquisa e tentativas frustadas com menos componentes.Refiz o fritzing - aqui - do Sr. Druiven, por estar com um Led Verde invertido e colocar mais alguns comentários.
Para constar, o diodo do topo é um 1N4148. Os outros dois são Zener 3.6V. Os resistores estão na cor certa, 22R e 1.5Kohms. Leds comuns. No resultador, o led verde permanece como aceso quando o circuito está alimentado e o vermelho pisca.
A barra de conectores é ligada diretamente nos fios do USB, - (GND), D+, D- e + (VCC). NÃO PRECISA DE CONVERSOR USB-SERIAL!!!! 😄
Depois de montado, verificado e conectado (e o bootloader estando Ok), ligamos o cabo USB no computador. Mesma dor de cabeça para instalar o driver que é o mesmo do USBasp. Siga o mesmo processo, mas deve aparecer como um dispositivo desconhecido no Zadig.
Caso tenha avisado que o driver foi instalado com sucesso, podemos tentar continuar com o processo de carga do programa.
Carregando o Arduino IDE temos que configurá-lo para programação do Disgispark:
- em Arquivo/Preferências, acrescente "http://digistump.com/package_digistump_index.json" às URLs adicionais...;
- Em Ferramentas/Placa/Gerenciador de Placas, instale o "Digistump AVR Boards";
- Em Ferramentas/Placa, escolha "Digispark default - 16.5 Mhz";
- Caso necessário, em Ferramentas/Programador escolha "Micronucleus".
O programa teste é este (encontrado completo aqui):
int LED_BUILTIN = 1;
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
Basta dar Carregar (ou Sketch/Carrregar) no programa e o resultado deverá ser esse, depois de algum tempo (minutos?):
Dando tudo certo, o Led verde deve se acender e o vermelho a piscar 1x1 segundo.
Nenhum comentário:
Postar um comentário