O Atmega128 /328 é um microcontrolador potente utilizado em diversos campos de aplicação. É um microcontrolador de 8 bits altamente integrado com uma ampla gama de periféricos e recursos. Nesta publicação do blog, vamos dar uma olhada nos diferentes recursos do Atmega128 / 328, sua configuração de pinos, técnicas de programação e aplicações. Também discutiremos as vantagens do microcontrolador Atmega128 / 328 em relação a outros microcontroladores e forneceremos algumas práticas recomendadas para trabalhar com ele.
O que é Atmega128 / 328?
O Atmega128 / 328 é um microcontrolador de 8 bits fabricado pela Atmel Corporation. É baseado na arquitetura AVR e é um dos microcontroladores mais populares usados em sistemas embarcados. Está disponível em vários pacotes e configurações, incluindo um PDIP de 40 pinos, um TQFP de 44 pinos e um VQFP de 64 pinos. O Atmega128 / 328 é baseado na arquitetura RISC e possui uma ampla gama de periféricos, incluindo um conversor A/D de 8 canais e 10 bits, três temporizadores de 16 bits, uma porta serial e uma porta SPI. Possui um total de 128 Kbytes de memória de programa e 2 Kbytes de EEPROM.

Visão geral do Atmega128 / 328
Características
O Atmega128 / 328 possui uma ampla gama de recursos, tornando-o um microcontrolador versátil e poderoso. Ele possui uma arquitetura RISC de 16 bits, que permite executar instruções de forma rápida e eficiente. Ele pode operar a 8 MHz, 16 MHz ou 20 MHz, tornando-o adequado para uma ampla gama de aplicações. O Atmega128 / 328 também possui uma ampla gama de periféricos, incluindo um conversor A/D de 8 canais e 10 bits, três temporizadores de 16 bits, uma porta serial e uma porta SPI. Ele também possui 128 Kbytes / 328 Kbytes de memória de programa e 2 Kbytes de EEPROM, permitindo armazenar grandes quantidades de dados.
O Atmega128 / 328 também é altamente integrado, tornando-o ideal para uso em sistemas embarcados. Ele possui um oscilador no chip, um circuito de reinicialização no chip e regulação de tensão no chip. Ele também possui um circuito de reinicialização ao ligar no chip, que garante que o microcontrolador seja reinicializado quando a energia for aplicada. Além disso, o Atmega128 possui uma ampla gama de portas de E/S, permitindo a interface com uma variedade de dispositivos externos.
Configuração do pino
O Atmega128 / 328 tem um total de 64 pinos, dispostos em duas fileiras. Os pinos são divididos em duas categorias: pinos de E/S digitais e pinos de E/S analógicos. Os pinos de E/S digitais são usados para controlar sinais digitais, enquanto os pinos de E/S analógicos são usados para controlar sinais analógicos. O Atmega128/328 também possui uma porta serial, uma porta SPI e uma porta I2C.

Aplicações
- Projetos de robótica, como braços robóticos e robôs autônomos.
- Projetos de comunicação, como módulos Bluetooth e Wi-Fi.
- Sistemas de aquisição de dados e sistemas incorporados para registro e controle de dados.
- Aplicações automotivas, como sistemas de controle de motores e sistemas de entretenimento e informação veicular.
- Produtos de consumo, como controles remotos, câmeras digitais e eletrodomésticos.
Programação do Atmega128 / 328
O IC Atmega128 / 328 pode ser programado usando linguagem C ou assembly. Ele possui uma ampla gama de recursos que facilitam a programação, incluindo uma ampla variedade de portas de E/S, um oscilador no chip e um regulador de tensão no chip.
Se você deseja programar o Atmega128 / 328, precisará de um programador. Um programador é um dispositivo usado para transferir o código do programa de um computador para o Atmega128 / 328. Depois que o código do programa é transferido, o IC pode ser programado usando o software apropriado. Todas as etapas podem ser divididas em 4 partes, conforme abaixo:
- Parte 1: Preparando os componentes necessários.
- Parte 2: Construção de circuitos Arduino em uma placa de ensaio.
- Parte 3: Gravar o bootloader no IC Atmega128 / 328.
- Parte 4: Programação do IC Atmega128 / 328.
Parte 1: Preparando os componentes
Atmega128 / 328: O componente principal na placa de ensaio e seu diagrama de pinagem são apresentados acima.
Placa de ensaio (LM7805): Um dispositivo sem solda para conectar componentes eletrônicos com fios jumper.
Osciladores (16 MHz): Fornecem os relógios para o IC, conectados aos pinos 23 e 24.
Capacitor (10uF): Usado nas seções de entrada e saída do LM7805 para desviar quaisquer componentes CA para o terra.
Fio jumper: Um fio metálico que conecta dois pontos em uma placa de circuito ou placas de ensaio.
Parte 2: Construindo circuitos Arduino em uma placa de ensaio sem solda
Passo 1: Primeiro, conecte a seção de alimentação conforme mostrado no diagrama do circuito e teste-a com a fonte de alimentação externa do LM7805. Fica assim:

Passo 2: Em seguida, conecte a parte do microcontrolador conforme mostrado no diagrama do circuito.

Passo 3: Agora, use jumpers de fio para conectar a fonte de alimentação e a seção do microcontrolador.

Parte 3: Grave o bootloader no IC Atmega128 / 328
Um bootloader é um pequeno pedaço de código executável armazenado permanentemente na memória do microcontrolador. Ele ocupa menos de 1Kb de memória. Um bootloader permite que o IC aceite código do computador e o coloque na memória do microcontrolador.
Quando você compra um novo Atmega128 / 328 no mercado, ele não tem um bootloader. Portanto, para programá-lo usando o Arduino IDE, você deve primeiro fazer o upload do bootloader.
Para carregar o bootloader, temos dois métodos:
- Usando o programador USBasp
- Usando uma placa Arduino UNO
Em comparação com o primeiro método, o segundo método é mais fácil. Porque requer menos conexões e as versões mais recentes do Arduino IDE são menos compatíveis com programadores USBasp.
Portanto, neste tutorial, usaremos a placa Arduino UNO para carregar o bootloader.
Passo 1: Abra o Arduino IDE. Vá para o menu: Arquivo -> Exemplos -> ArduinoISP. Em seguida, escolha ArduinoISP.

Passo 2: Agora, você deve carregar este código na sua placa Arduino. Selecione a porta COM e a placa no menu Ferramentas e clique no botão Carregar.
Passo 3: Após concluir o upload, desconecte a placa Arduino do computador. Em seguida, conecte a placa Arduino ao IC Atmega128 / 328, conforme mostrado na imagem abaixo.

Passo 4: Abra o Arduino IDE depois de conectar a placa Arduino ao computador. Em seguida, vá para o menu: Ferramentas -> Placa: "Arduino/Genuin0 Uno" e selecione a porta correta para sua placa. Em seguida, selecione Programador: como "Arduino como ISP".

Passo 5: Agora, vá para a barra de menu Ferramentas novamente e clique em Gravar Bootloader na opção Programador. Após alguns segundos, o bootloader será carregado com sucesso. Se houver algum erro no carregamento, verifique a conexão.

Parte 4: Programação do IC Atmega128 / 328
O chip Arduino Atmega128 / 328 pode ser programado de diferentes maneiras, incluindo:
- Use uma placa Arduino sem o IC Atmega128 / 328.
- Use o módulo de conversão USB para serial TTL (módulo FTDI).
- Usar um programador USBasp (se houver muitas conexões).
Aqui, apresentamos a primeira e a segunda maneiras de programar o IC Atmega128 / 328.
4.1 Programando o IC Atmega128 / 328 usando uma placa Arduino
Passo 1: Pegue uma placa Arduino sem chip Atmega128 / 328. Em seguida, conecte a placa Arduino à nossa placa de ensaio, conforme mostrado.

Passo 2: Conecte a placa Arduino ao computador e abra o Arduino IDE. Selecione Arduino Uno no menu Board em Tools, Programmer como USBasp e a porta com correta da placa.
Passo 3: Começaremos carregando o programa Blink. Então, selecione o programa blink nos exemplos e clique no botão upload.

Agora você pode ver o LED na placa de ensaio começar a piscar.
4.2 Programação do Atmega128 / 328 usando um conversor USB-para-serial
Esta é a melhor maneira de programar o Atmega128 / 328 se você não tiver uma placa Arduino.
Passo 1: Configure as conexões do conversor USB para serial da seguinte maneira:
Pino RXD do FTDI -> Pino Tx do Atmega128 / 328 (pino 3)
Pino TXD do FTDI -> Pino Rx (pino 2) do Atmega128 / 328
GND -> GND (pino 8)
5v -> Vcc (pino 7)
Alguns módulos FTDI têm um pino Reset, também conhecido como pino DTR, que precisa ser conectado ao pino Reset (pino 20) do Atmega128 / 328.
Passo 2: Agora, conecte o FTDI ao computador e abra o gerenciador de dispositivos no painel de controle. Você verá a seção Portas, expanda-a. Se o driver tiver uma marca amarela na frente, o driver do módulo deve ser atualizado.

Se não estiver marcado, anote o número da porta COM e abra o IDE do Arduino. Vá para Ferramentas -> Portas -> Selecione a porta COM que você anotou.
Etapa 3: No final, carregamos o programa Blink para nossa placa de ensaio Arduino. Vá para Arquivo -> Exemplos -> Noções básicas -> Blink. No menu Placa em Ferramentas, selecione Arduino Uno, Programador como USBasp e a porta COM correta da placa.
Em seguida, clique no botão de upload.
(Observação: se o seu módulo FTDI não tiver um pino DTR, pressione o botão de reinicialização na placa de ensaio e clique no botão de upload. Se aparecer "Compilando esboço…", mantenha pressionado até que "Uploading…" apareça e, em seguida, solte o botão.)
Agora, o programa será carregado com sucesso no chip Arduino Bootloader Atmega128 / 328.
Atmega128 / 328 vs Outros Microcontroladores
O Atmega128 / 328 é um microcontrolador potente e versátil, mas existem outros microcontroladores disponíveis que podem ser mais adequados para determinadas aplicações. Por exemplo, o processador ARM Cortex-M é mais adequado para aplicações que exigem um desempenho superior. O processador ARM também é mais eficiente em termos energéticos e mais adequado para aplicações de baixo consumo.
O Atmega128 / 328 também é mais caro do que alguns outros microcontroladores. No entanto, é um microcontrolador poderoso e versátil, adequado para uma ampla gama de aplicações. Portanto, é importante considerar os requisitos da aplicação ao escolher um microcontrolador.
Melhores práticas para trabalhar com Atmega128 / 328
O Atmega128 / 328 é um microcontrolador potente e versátil, e existem algumas práticas recomendadas para trabalhar com ele. É importante manter o microcontrolador em um ambiente livre de estática, pois a eletricidade estática pode danificá-lo. Também é importante garantir que o microcontrolador receba a tensão correta e que o regulador de tensão no chip esteja funcionando corretamente. Além disso, é importante garantir que o oscilador no chip esteja funcionando corretamente, pois ele é usado para gerar o sinal do relógio.
Também é importante garantir que as ferramentas de desenvolvimento estejam atualizadas e que o código de programação seja exaustivamente testado antes de ser usado no microcontrolador. Além disso, é importante seguir as normas de segurança apropriadas ao trabalhar com o microcontrolador.




