Primeiros passos com Atmel Studio

Nesse artigo serão apresentados os primeiros passos para programação dos microcontroladores Atmel AVR utilizando o Atmel Studio e a placa Arduino UNO.
Atmel Studio

Atmel Studio é a plataforma de desenvolvimento disponibilizada gratuitamente pela Microchip para desenvolver projetos com seus microcontroladores. Suporta tanto os Atmel AVR quanto os Atmel ARM Cortex. Nesta ferramenta é possível desenvolver projetos em C/C++ ou Assembly, além de depurar o programa tanto com ferramentas externas como em um simulador integrado. Além do Atmel Studio existem outras ferramentas que auxiliam o desenvolvimento com microcontroladores Atmel AVR, entre elas podemos citar o compilador AVR GCC e o programador por linha de comando AVRDUDE, ambos open-source.

Nesse artigo vamos exibir os primeiros passos para se criar um projeto em linguagem C utilizando o Atmel Studio e como enviar o programa para a placa Arduino UNO utilizando o avrdude.

Atmel Studio

Ante de mais nada é necessário fazer o download do Atmel Studio. Você pode baixar diretamente do site da Microchip. É interessante notar que o Atmel Studio, além de possuir um ótimo editor de código com vários recursos, inclui o compilador GCC C e C++, Assembler e um simulador, e interfaces contínuas com depuradores e programadores no sistema para tornar o desenvolvimento dos códigos mais fácil. Outro ponto a ser notado é que a ferramenta é baseada no Visual Studio da Microsoft, portanto só é possível usar a mesma no Windows.

Após o download é só instalar seguindo os passos do assistente de instalação no Windows.

O AVRDUDE

O AVRDUDE é um programador em linha de comando muito popular para linha de microcontroladores Atmel AVR. É um projeto open-source e também é utilizado para upload dos programas na plataforma Arduino.

Para este tutorial você pode fazer o download do AVRDUDE que será integrado ao Atmel Studio mais à frente

Criando um projeto com o Atmel Studio

Para criar um novo projeto no Atmel Studio acesse File > New > Project, conforme exibido na figura 1:

Figura 1 - Iniciando um projeto no ATMEL Studio
Figura 1 – Iniciando um projeto no ATMEL Studio

Será aberta uma janela para configuração do projeto. Nela é possível escolher o compilador, além do nome e do caminho da pasta onde o projeto será armazenado, conforme exibido na figura 2:

Figura 2 - Configurando um novo projeto
Figura 2 – Configurando um novo projeto

A seguir será apresentada uma janela para escolha do microcontrolador alvo. Neste caso foi escolhido o ATmega328P, microcontrolador da Arduino UNO, conforme exibido na figura 3:

Figura 3 - Escolhendo o microcontrolador
Figura 3 – Escolhendo o microcontrolador

Pronto, o projeto foi criado! Além disso também foi criado o código fonte com a função main() já inserida, pronto para digitar o código da aplicação, conforme exibido na figura 4:

Figura 4 - Projeto criado no Atmel Studio
Figura 4 – Projeto criado no Atmel Studio

Para testar, vamos inserir um código para piscar o LED no pino PB5, que é o pino 13 da placa Arduino UNO. Digite o código a seguir:

O código apresentado é relativamente simples e os comentários explicam detalhadamente cada linha do programa. Para construir o projeto, você pode acessar Build > Build Solution, conforme exibido na figura 5:

Figura 5 - Compilando o projeto
Figura 5 – Compilando o projeto

Durante a construção do projeto, na janela Output são exibidas algumas informações desse processo além de detalhes do uso de memória e status final do processo, conforme exibido na figura 6 a seguir:

Resultado da Compilação
Figura 6 – Resultado da Compilação

A partir desse ponto já foi criado o arquivo .hex e o mesmo está pronto para ser gravado na memória flash do microcontrolador. Para esse processo vamos utilizar o gravador AVRDUDE junto com o bootloader presente na placa Arduino UNO. Dessa forma não será necessária uma ferramenta de gravação.

Configurando o AVRDUDE no Atmel Studio

Após o download do programa é necessário configurar o mesmo dentro do Atmel Studio para agilizar o processo de upload do .hex para a placa. Inicialmente é interessante criar uma pasta no diretório C:\ com o nome avrdude contendo o executável do programa e os demais arquivos que vieram juntos no download. Próximo passo é configurar dentro do Atmel Studio, para isso acesse Tools > External Tool…, conforme exibido na figura 7:

Adicionando uma ferramenta externa
Figura 7 – Adicionando uma ferramenta externa

Será aberta uma janela para configuração de uma ferramenta externa. Configure o avrdude, conforme  exibido na figura 8:

 Configurando o avrdude
Figura 8 – Configurando o avrdude

O parâmetro Arguments deve ficar da seguinte forma, para interface com a placa Arduino UNO:

Dica do leitor :Luís Fernando Chavier

“Dessa forma dá para usar diferentes configurações de build (ex. “Debug”, “Release”, etc.) que ele já busca o executável no lugar certo.”

Obs: Será necessário mudar a COM9, conforme a porta que o Arduino foi conectada.

Após a configuração, a ferramenta estará disponível no menu Tools. Com o projeto já compilado, para iniciar o processo de gravação basta acessar o menu Tools e clicar no nome dado à ferramenta de programação, conforme exibido na figura 9:

Iniciando o avrdude para programação
Figura 9 – Iniciando o avrdude para programação

O status da programação aparecerá na janela de saída e caso ocorra com sucesso aparecerá a mensagem exibida na figura 10:

Resultado da programação com avrdude
Figura 10 – Resultado da programação com avrdude

Após isso o LED L da placa Arduino UNO começará a piscar em intervalos de 1 seg.

E você leitor, que esta acostumado a programar o microcontrolador Atmega328 com o uso da plataforma Arduino, o que acha de começar a explorar os recursos dos Atmel AVR utilizando as ferramentas apresentadas?

Saiba mais

Arduino UNO

Programe o Arduino UNO com o CodeVisionAVR

Engenheiro, especialista em sistemas embarcados. Hoje é diretor de operações do portal Embarcados, onde trabalha para levar conteúdos de eletrônica, sistemas embarcados e IoT para o Brasil.

Também atua no ensino eletrônica e programação. É entusiasta do movimento maker, da cultura DIY e do compartilhamento de conhecimento, publica diversos artigos sobre eletrônica e projetos open hardware.

Com iniciativas como o projeto Franzininho e projetos na área de educação, leva a cultura maker para o Brasil capacitando e incentivando professores e alunos a usarem tecnologia em suas vidas. Participou da residência hacker 2018 no Red Bull Basement.

Notificações
Notificar
guest
45 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Joao Candido
joao candido
07/12/2019 15:08

muito bom conprei um usbasp mais nao tava conseguindo a conecção ja tava desistindo do avr para estudar o pic mais agora com esse seu artigo deu certo vou continuar com o avr , obrigado

Ulisses Freitas
Ulisses Freitas
05/06/2019 11:58

se eu usar o atmel studio para aprender a programar em C ou assembly
o meu arduino ainda poderá ser programado pela IDE dele normalmente?

Juliano
Juliano
01/04/2019 22:00

boa noite, eu gostaria de saber se o ATMega328p, tem um divisor de frequência, igual ao 8051, que divide o clock? se sim é por quanto?

Wagner Ricardo Alves dos Santos
wagner Ricardo Alves dos Santos
26/03/2019 10:12

Bom dia Fabio gostei do artigo gostaria de saber se esse procedimento apresentado serve para outras placas arduino como Atmega .

Grato

Eron Almeida
Eron
03/08/2018 11:28

É possivel alterar a tensão de trabalho de um atmega 328 ou um 168 para trabalhar com 3.3 V e mesmo assim rodar com a plataforma arduino?

Mateus Lima
Mateus L. Fonseca
28/06/2018 10:11

Olá pessoal estou com um problema , atualmente estou trabalhando SparkFun Geiger Counter e estou usando o Atmel porém estou com alguns erros , alguém pode dar uma força?

Daniel Fernandes
Daniel Fernandes
15/05/2018 23:41

Saudações Fábio!
Tenho um projeto pronto que baixei pela internet aqui: https://www.youtube.com/watch?v=-XuD8idesZo e, dentro de uma pasta, existem vários arquivos como ‘Makefile’, ‘main.c’, entre outros; portanto, gostaria de saber qual ou quais arquivos devo usar para gravar no microcontrolador como um ATmega328-P; Obrigado

Mateus Lima
Mateus Lima
Reply to  Fábio Souza
29/06/2018 10:58

Fábio , me tira uma duvida é possivel rodar o sparkfun geiger counter no atmel ? Ou essa IDE só roda microcontroladores da atmel?

Joel
Joel
21/02/2018 09:18

Como posso usa-lo com o STM32? o STM estará na World Skills e ainda não o aprendi.

William Ferreira
William Ferreira
18/01/2018 15:00

Então, como nesse exemplo não é utilizado as bibliotecas do Arduino, as Creative Commons do Arduino não se aplicam? Caso você tenha uma placa desenvolvida com base em uma placa do arduino e utiliza outro método para programar a sua placa você não precisa deixar o seu Hardware aberto?

zezao
zezao
08/03/2016 16:37

Fábio, dessa maneira eu consigo utilizar o microcontrolador da forma “pura” ou ele precisaria do bootloader do Arduino?
Digo, utilizar a placa apenas para fazer o upload do código ao microcontrolador e para facilitar a prototipagem.

Fabio_Souza_Embarcados
Fabio_Souza_Embarcados
Reply to  zezao
08/03/2016 17:23

Olá, dessa forma você consegue programar sem as camadas do Arduino. Você pode usar as funções da ARV LIBC: http://www.nongnu.org/avr-libc/ e a liguagem C com acesso ao baixo nível do microcontrolador. Porém é interessante manter o bootloader do Arduino para facilitar o upload do código sem a necessidade de uma ferramenta externa.

Ai a vantagem da placa e bootloder do arduino que facilitam o upload e prototipação. Essa é uma forma excelente para aprender microcontroladores e fazer aplicações. Vale muito a pena estudar assim. Qualquer dúvida entre em contato. abraços

WEBINAR

Imagens de Ultrassom: Princípios e Aplicações

DATA: 26/10 ÀS 19:30 H