Translate

Mostrando postagens com marcador firmware. Mostrar todas as postagens
Mostrando postagens com marcador firmware. Mostrar todas as postagens

terça-feira, 21 de julho de 2020

Micronucleus no Attiny85 com USBAsp




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.


Como o driver originário da Microsoft não funcionou diretamente, utilizei o Zadig para substituir o driver. Com o USBasp conectado, em Options, escolhi Load All Devices, pois minha lista veio vazia. Bastou escolher o USBasp da lista de Devices,  libusb-win32 como driver e Install ou Replace Driver. Demora alguns minutos para instalar ou substituir.  - ATENÇÃO: o driver some, não consegue ser instalado, etc. no Windows 10. É problemático mesmo e precisa insistir. Você instala o driver, abandona porque testa e não dá certo e depois de alguns minutos ele funciona no AVRDudess. Persista, porque eu quase desisti.



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.


sábado, 16 de julho de 2016

Tutorial de reset/restore e update de firmware de fábrica do ESP8266


E para voltar o esp8266 para configuração de fábrica depois de carregar e descarregar micropython e nodemcu firmware?

Olha o passo-a-passo, depois da salada de frutas que passei para conseguir, mas que pode ser aproveitado até para atualizar o firmware:

  • utilizei as instruções do site filipeflop, mas estavam muito desatualizadas, por isso, vai um pouco (na verdade muito) mais mastigado; o modelo que usei é o ESP-12F com conversor usb-serial CH340G agregado;
  • baixar o flash download tool no site da Espressif; no meu caso estava na versão "ESP8266 Flash Download Tools V3.3.4"; observe que deverá ter o python 2.7 ou mais recente instalado e com o caminho dos binários e script incluídos no PATH (nas váriáveis de ambiente do Windows); coloquei um mini-tutorial no final deste post;
  • baixar o sdk non-os do esp8266 no site da Espressif; na data deste post, baixei o "ESP8266 NONOS SDK V1.5.4" e o último patch "ESP8266 NONOS SDK V1.5.4.1 Patch_20160704" para deixar mais atualizado;
  • descompacte os arquivos em pastas separadas;
  • executar o ESP Download Tool e carregar a configuração conforme a tela abaixo (observar que os checkbox à esquerda dos uploads estão marcados); use o bom senso para encontrar os uploads nas pastas corretas;

  • clicar em START e aguardar a barra de progresso se completar;
  • para testar, conecte um emulador de terminal (por exemplo o PUTTY) na porta serial em que o esp8266 estiver conectado, resete o esp8266 e insira o comando AT+GMR (em maiúculas, senão dá erro; caso não pule a linha após dar um Enter, tecle Ctrl+J (line feed):

Qual a finalidade disso? Estava tentando carregar um programa pelo Arduíno IDE e falhei ao tentar fazer o upload. Suspeito que era problema de existir o Nodemcu como firmware. Enfim, se não dominarmos o SO do módulo, o que se dirá de dominar o funcionamento dos programas?

PYTHON

Não acho interessante abrir um post somente para ensinar a instalar o Python, então uma receitinha simples:

  • baixe o Python (de preferência o 2.xx) no site;
  • descompacte para uma pasta (eu prefiro C:/python27);
  • no Win7 clicar em Iniciar, e com o botão direito no Computador escolher Propriedades;
  • escolher Configurações avançadas do sistema e a guia Avançado;
  • clicar no botão variáveis de ambiente;
  • na listbox Váriáveis do sistema, clique duplo em PATH;
  • no valor da variável, acrescentar (referenciando no meu caso, em que a instalação está na pasta C:\PYTHON27) ";C:\PYTHON27;C:\PYTHON27\SCRIPTS;" como abaixo:

  • clicar em Ok e pronto.