Índice:

Programando o ATTiny85, ATTiny84 e ATMega328P: Arduino como ISP: 9 etapas (com imagens)
Programando o ATTiny85, ATTiny84 e ATMega328P: Arduino como ISP: 9 etapas (com imagens)

Vídeo: Programando o ATTiny85, ATTiny84 e ATMega328P: Arduino como ISP: 9 etapas (com imagens)

Vídeo: Programando o ATTiny85, ATTiny84 e ATMega328P: Arduino como ISP: 9 etapas (com imagens)
Vídeo: Tutorial: Programando ATtiny85 utilizando um Arduino 2024, Novembro
Anonim
Programando o ATTiny85, ATTiny84 e ATMega328P: Arduino como ISP
Programando o ATTiny85, ATTiny84 e ATMega328P: Arduino como ISP
Programando o ATTiny85, ATTiny84 e ATMega328P: Arduino como ISP
Programando o ATTiny85, ATTiny84 e ATMega328P: Arduino como ISP

Prefácio

Recentemente, tenho desenvolvido alguns projetos de IoT baseados em ESP8266 e descobri que o processador central estava lutando para realizar todas as tarefas que eu precisava para gerenciar, então decidi distribuir algumas das atividades menos importantes para um microcontrolador diferente em dessa forma, liberando o ESP8266 para continuar seu trabalho de ser um dispositivo IoT.

Visto que eu queria publicar meu projeto para um público tão amplo quanto possível, optei por usar o IDE do Arduino como a plataforma de desenvolvimento de escolha, uma vez que tem uma comunidade amplamente suportada.

Restrições de Design

A fim de fornecer uma distribuição razoável de dispositivos de destino, permitindo a seleção de um microcontrolador apropriado para a aplicação em questão, decidi pelas seguintes peças Atmel; ATMega328P, ATTiny84 e ATTiny85. Para limitar a complexidade do programador necessário, limitei a escolha do relógio para interno para todos os dispositivos e 16 MHz externo para apenas o ATMega328P e ATTiny84.

O que se segue é uma coleção de notas sobre programação com o Arduino e uma descrição de como eu montei um programador simples baseado em Arduino Uno para esses dispositivos (fotos acima).

Quais peças eu preciso?

Para construir o programador, você precisará das seguintes partes

  1. 1 fora do Arduino Uno
  2. 2 soquetes DIP de Força de Inserção Zero de 28 pinos (ZIF) (para conter ATMega328P, ATTiny85, ATTiny84)
  3. 1 protetor de protótipo do Arduino (eu tenho o meu aqui; https://www.ebay.co.uk/itm/Arduino-UNO-Prototyping …)
  4. 2 LEDs 5 MM desligados
  5. 2 resistores de 1K desligados
  6. 1 resistor de 10K desligado
  7. 4 capacitores de cerâmica 22pF desligados
  8. 2 cristais de 16 MHz
  9. 3 capacitores cerâmicos de 0,1uF
  10. 1 capacitor eletrolítico desligado 47uF
  11. 1 capacitor eletrolítico de 10uF
  12. Fio de envoltório de arame de vários comprimentos.

Qual software eu preciso?

Arduino IDE 1.6.9

Quais habilidades eu preciso?

  1. Conhecimento do Arduino IDE
  2. Algum conhecimento de eletrônica e como soldar
  3. Muita destreza manual
  4. Muita paciência e boa visão

Assuntos abordados

  1. Introdução geral à programação de microcontroladores Atmel
  2. ISP ou Bootloader: é um pouco confuso
  3. Visão geral do circuito
  4. Configurando seu programador
  5. Usando o seu programador Arduino ISP
  6. Desenvolvendo código em seu sistema de destino
  7. Pegadinhas
  8. Conclusão
  9. Referências usadas

Isenção de responsabilidade

Como sempre, você usa essas instruções por sua própria conta e risco e elas não são suportadas

Etapa 1: Introdução geral à programação de microcontroladores Atmel

Introdução geral à programação de microcontroladores Atmel
Introdução geral à programação de microcontroladores Atmel
Introdução geral à programação de microcontroladores Atmel
Introdução geral à programação de microcontroladores Atmel
Introdução geral à programação de microcontroladores Atmel
Introdução geral à programação de microcontroladores Atmel

Existem dois métodos disponíveis para programar microcontroladores Atmel;

  1. Na Programação do Sistema (ISP),
  2. Auto-programação (via bootloader).

O método anterior (1) programa diretamente o microcontrolador por meio da interface SPI após primeiro colocar o dispositivo em reinicialização. A menos que seja instruído de outra forma, um programa-fonte executável compilado é gravado no dispositivo de forma incremental na memória de código de onde é executado na inicialização. Existem muitos dispositivos ISP capazes de programar dispositivos Atmel, alguns dos quais sendo (foto 1); AVRISPmkII, Atmel-ICE, Olimex AVR-ISP-MK2, Olimex AVR-ISP500. A Figura 2 mostra como o dispositivo ISP se conecta ao ATMega328P (estranhamente marcado como ICSP) na placa Arduino Uno R3 (a figura 3 fornece o pino do ISP). Também é possível programar um microcontrolador Atmel através de sua interface SPI usando um Arduino Uno como ISP (figura 4), aqui o Uno está sendo usado para programar um ATMega328P.

O último método (2) usa um pequeno fragmento de código conhecido como 'bootloader' residente permanentemente na memória de código executável (geralmente bloqueado para evitar sobrescrever acidentalmente a imagem 5). Este código é executado logo após a inicialização ou reinicialização do dispositivo e permite que o microcontrolador se reprograme com o novo código recebido por meio de uma de suas interfaces de uma fonte externa a ele mesmo. O método bootloader é usado pelo Arduino IDE para reprogramar Arduinos mapeados como uma porta de comunicação USB no PC (ou MAC, Linux box etc., imagem 6) e no caso do Arduino Uno se comunica com o dispositivo Atmel por meio de seu interface serial nos pinos IC 2 e 3 do ATMega328P. Além disso, o Arduino Uno (com o microcontrolador ATMega328P removido) pode ser usado para programar um ATMega328P por meio do método bootloader, atuando efetivamente como um dispositivo adaptador USB para serial (foto 7).

O que é um adaptador USB para serial?

Um adaptador USB para serial é uma peça de hardware que se conecta à porta USB do seu PC e se parece com uma porta de comunicação serial (um legado de tempos anteriores, quando os computadores usavam um padrão de comunicação serial conhecido como EIA-232, V24 ou RS232), permitindo que você enviar e receber dados seriais nos mesmos níveis elétricos do microcontrolador. Quando você seleciona Ferramentas -> Porta -> COMx no Arduino IDE, você está conectando / conectando seu PC ao Arduino.

Um dispositivo como esse às vezes é chamado de FTDI (imagem 8, que é na verdade um nome de marca) ou CH340G etc. USB para serial no Arduino uno é obtido por meio de um ATMega16U2-MU (R) IC ZU4 como no esquema do Arduino abaixo.

Para maior clareza, a figura 9 identifica os dois dispositivos Atmel e seus respectivos conectores ISP no Arduino Uno R3.

Nota 1: Se você escolher seguir a rota do dispositivo FTDI, certifique-se de comprar de um vendedor confiável, pois há muitos dispositivos falsificados baratos no mercado que falharam após a aplicação de uma atualização do Windows.

Recomendado: