- Componentes necessários para programar ATtiny85 por meio de USB
- ATtiny85 Microcontrolador IC - Introdução
- Flashing Boot-loader em ATtiny85 usando Arduino Uno
- Diagrama de circuito para programador ATtiny
- Instalando Drivers Digispark
- Configurando Arduino IDE para programar ATttiny85
A família ATtiny é uma série de um dos menores microcontroladores do mercado de AVR. Esses microcontroladores são capazes de utilizar muitas das bibliotecas disponíveis na plataforma Arduino. O chip do microcontrolador ATtiny85 é um microcontrolador AVR de 8 pinos e 8 bits. Seu pequeno tamanho e baixo consumo de energia o tornam uma ótima combinação para projetos portáteis com pequenas dimensões e requisitos de baixo consumo de energia. Mas colocar seu código no chip pode ser um pouco desafiador, pois ele não tem nenhuma interface USB como placas de microcontrolador.
Em nosso tutorial anterior, programamos o ATtiny85 usando o Arduino Uno. Mas conectar o Attiny85 ao Arduino e usar o Arduino como ISP pode ser difícil e demorado. Portanto, neste tutorial, vamos construir uma placa de programação ATtiny85, para que possamos plugá- la e programá-la diretamente como outras placas de microcontrolador.
Componentes necessários para programar ATtiny85 por meio de USB
- Arduino UNO (apenas pela primeira vez durante o upload do bootloader)
- ATtiny85 IC
- Plugue macho tipo A USB
- 3 resistores (2 × 47Ω e 1 × 1kΩ)
- 3 diodos (2 × diodo Zener e 1 × diodo IN5819)
- Base IC de 8 pinos
- Tábua de pão
- Jumper Wires
ATtiny85 Microcontrolador IC - Introdução
O ATtiny85 da Atmel é um microcontrolador de 8 bits de baixo consumo e alto desempenho baseado na Arquitetura RISC Avançada. Este microcontrolador possui 8 KB de memória flash ISP, 512B EEPROM, 512 bytes SRAM, 6 linhas de E / S de uso geral, 32 registros de trabalho de uso geral, um temporizador / contador de 8 bits com modos de comparação, um de 8 bits de alta velocidade temporizador / contador, USI, interrupções internas e externas, conversor A / D de 4 canais e 10 bits, temporizador de watchdog programável com oscilador interno, três modos de economia de energia selecionáveis por software e debugWIRE para depuração no chip. Pinagem ATtiny85 é fornecida abaixo:
A maioria dos pinos de E / S do chip tem mais de uma função. A descrição do pino ATtiny85 para cada pino é fornecida na tabela abaixo:
Pin No. |
Nome do Pin |
Descrição do pino |
1 |
PB5 (PCINT5 / ADC0 / dW) |
PCINT5: Interrupção de mudança de pino 0, Fonte5 RESET: Reset Pin ADC0: Canal de entrada 0 do ADC dW: depurar WIRE I / O |
2 |
PB3 (PCINT3 / XTAL1 / CLKI / ADC3) |
PCINT3: Interrupção de mudança de pino 0, Fonte3 XTAL1: Pino 1 do oscilador de cristal CLKI: entrada de relógio externo ADC3: Canal de entrada 3 do ADC |
3 |
PB4 (PCINT4 / XTAL2 / CLKO / OC1B / ADC2) |
PCINT4: Interrupção de mudança de pino 0, Fonte 4 XTAL2: Pino 2 do oscilador de cristal CLKO: Saída de relógio do sistema OC1B: Timer / Contador 1 Comparação de Saída B ADC2: Canal de entrada 2 do ADC |
4 |
GND |
Pino de aterramento |
5 |
PB0 (MOSI / DI / SDA / AIN0 / OC0A / AREF / PCINT0) |
MOSI: Saída de dados mestre SPI / entrada de dados escravo DI: entrada de dados USI (modo de três fios) SDA: entrada de dados USI (modo de dois fios) AIN0: Comparador analógico, entrada positiva OC0A: Timer / Counter0 Compare Match A saída AREF: Referência Analógica Externa PCINT0: Interrupção de mudança de pino 0, fonte 0 |
6 |
PB1 (MISO / D0 / AIN1 / OC0B / OC1A / PCINT1) |
MISO: entrada de dados mestre SPI / saída de dados escravo DO: Saída de dados USI (modo de três fios) AIN1: Comparador analógico, entrada negativa OC0B: Saída de comparação B do temporizador / contador0 OC1A: Timer / Counter1 Compare Match A Output PCINT1: Interrupção de mudança de pino 0, Fonte 1 |
7 |
PB2 (SCK / USCK / SCL / ADC1 / T0 / INT0 / PCINT2) |
SCK: entrada serial do relógio USCK: Relógio USI (modo de três fios) SCL: Relógio USI (modo de dois fios) ADC1: Canal 1 de entrada ADC T0: Fonte de Relógio Timer / Counter0 INT0: Entrada de Interrupção Externa 0 PCINT2: Interrupção de mudança de pino 0, Fonte 2 |
8 |
VCC |
Pino de tensão de alimentação |
Flashing Boot-loader em ATtiny85 usando Arduino Uno
Para programar o ATtiny85 sem Arduino, primeiro teríamos que carregar um bootloader nele usando uma placa Arduino UNO, este é um processo único e depois que isso for feito, não precisaremos da placa UNO novamente. Boot-loader é um programa especial executado no microcontrolador que deve ser programado. Uma das maneiras mais convenientes de carregar os dados do programa no microcontrolador é por meio de um carregador de boot. O carregador de inicialização fica no MCU e executa as instruções de entrada e, em seguida, grava as novas informações do programa na memória do microcontrolador. Atualizar um boot-loader em um microcontrolador remove a necessidade de hardware externo especial (Placas de Programador) para programar o microcontrolador e você poderá programá-lo diretamente usando uma conexão USB. The Digispark ATtiny85A placa roda o boot-loader “micronucleus tiny85”, originalmente escrito por Bluebie. O boot-loader é o código pré-programado no Digispark e permite que ele atue como um dispositivo USB para que possa ser programado pelo IDE do Arduino. Também vamos atualizar o mesmo bootloader digispark attiny85 no ATtiny85.
Um guia passo a passo para carregar o bootloader em ATtiny85 usando Arduino Uno e Arduino IDE é fornecido abaixo:
Etapa 1: Configurando o Arduino Uno como um ISP:
Como o ATtiny85 é apenas um microcontrolador, ele requer a programação de um ISP (In-System Programming). Portanto, para programar o ATtiny85, precisamos primeiro configurar o Arduino Uno como ISP para atuar como um programador do ATtiny85. Para isso, conecte o Arduino Uno ao laptop e abra o IDE do Arduino. Depois disso, navegue até Arquivo> Exemplo> ArduinoISP e faça upload do código do Arduino ISP.
Etapa 2: Diagrama de circuito para Flashing Boot-loader em ATtiny85:
O esquema completo para Flashing Boot-loader em ATtiny85 é fornecido abaixo:
Um capacitor de 10 µf é conectado entre o pino Reset e GND do Arduino. As conexões completas são fornecidas na tabela abaixo:
Pin ATtiny85 |
Pin Arduino Uno |
Vcc |
5V |
GND |
GND |
Pino 2 |
13 |
Pino 1 |
12 |
Pino 0 |
11 |
Redefinir |
10 |
Agora, conecte o Arduino Uno ao laptop e abra o IDE do Arduino. Descubra em qual porta COM o Uno está conectado. No meu caso, é COM5.
Depois disso, baixe os arquivos do carregador de inicialização ATtiny85 a partir do link fornecido. Abra " Burn_AT85_bootloader.bat " e altere o número da porta COM "PCOM5" com qualquer número de porta COM ao qual o Uno está conectado. Salve as alterações antes de sair.
Agora mova os arquivos editados " Burn_AT85_bootloader.bat " e " ATtiny85.hex " para a pasta raiz do IDE do Arduino (C: \ Arquivos de programas (x86) Arduino).
Depois disso, clique com o botão direito em " Burn_AT85_bootloader.bat " e selecione "Executar como Admin". Leva aproximadamente 5 a 6 segundos para fazer o flash do carregador de boot. Se tudo correr bem, você deve receber esta mensagem "AVRdude concluído. Obrigado. Pressione qualquer tecla para continuar…".
Com isso, o Boot-loader é instalado com sucesso no chip ATtiny85. Agora é hora de conectar o USB com ATtiny85 para que possamos programá-lo diretamente. O diagrama de circuito para programação de ATtiny85 através de USB é fornecido abaixo:
Diagrama de circuito para programador ATtiny
O esquema é retirado do esquema da placa Digispark ATtiny85, mas como pretendemos construir um programador para ATtiny85, estamos apenas conectando o plugue USB macho ao ATtiny85.
O R3 é um resistor pull-up que é conectado entre os pinos Vcc e PB3 do IC, enquanto os diodos Zener (D1-D2) são adicionados para proteção total da interface USB. Depois de soldar todos os componentes na placa de desempenho, será algo como a seguir:
Instalando Drivers Digispark
Para programar o ATtiny85 usando USB, você deve ter os Drivers Digispark instalados no seu laptop, caso não os tenha, você pode fazer o download usando o link fornecido acima. Em seguida, extraia o arquivo zip e clique duas vezes no aplicativo “ DPinst64.exe ” para instalar os drivers.
Assim que os drivers forem instalados com sucesso, conecte sua placa ATtiny85 ao laptop. Agora vá para o Gerenciador de Dispositivos em seu Windows e o dispositivo ATtiny85 será listado em “dispositivos libusb-win32” como “Digispark Bootloader”. Se você não conseguir encontrar 'dispositivos libusb-win32' no gerenciador de dispositivos, vá para Exibir e clique em 'Mostrar dispositivos ocultos'.
Configurando Arduino IDE para programar ATttiny85
Para programar a placa ATtiny85 com Arduino IDE, primeiro, precisamos adicionar o suporte da placa Digispark ao Arduino IDE. Para isso, vá para Arquivo> Preferências e adicione o link abaixo nos URLs do Gerenciador de placas adicionais e clique em 'OK'.
Depois disso, vá para ferramentas> Placa> Gerenciador de placa, procure por 'Digistump AVR' e instale a versão mais recente.
Depois de instalá-lo, agora você poderá ver uma nova entrada no menu do tabuleiro intitulada 'Digispark'.
Agora, vá para arquivo> Exemplos> Básico e abra o exemplo Blink.
Altere o número do pino lá de LED_BUILTIN para 0.
Agora volte para Ferramentas -> Placa e selecione a placa “ Digispark (Padrão - 16mhz) ”. Em seguida, clique no botão de upload no IDE do Arduino.
Nota: Conecte a placa ATtiny85 ao computador, somente quando o IDE do Arduino exibir uma mensagem dizendo “Plugin device now”.
Assim que o código for carregado, o LED conectado ao ATtiny85 deve começar a piscar.
É assim que você pode construir sua própria placa de programação ATtiny85 Arduino. Um vídeo de trabalho do mesmo é fornecido abaixo. Se você tiver alguma dúvida, deixe-a na seção de comentários. Para quaisquer outras questões técnicas, você também pode iniciar uma discussão em nossos fóruns.