Iniciando no mundo AVR

Hoje em dia (2015) , quando se fala de AVR e ATMEGA , muitos hackers e makers lembram logo de Arduino e suas variações. Mas os produtos da linha AVR da Atmel são usados de muitas outras formas,  são extremamente versáteis e possuem diversos encapsulamentos com variações nos periféricos internos. Uma característica muito interessante é que o mesmo código C criado para um dos chips da arquitetura pode ser migrado muito facilmente para os chips maiores da mesma linha com muito poucas mudanças .

Para facilitar o aprendizado  , A Atmel disponibilizou em seu canal do youtube, uma série de videos explicando os diversos aspectos da arquitetura , o uso do datasheet e como utilizar as ferramentas oficiais de desenvolvimento, principalmente a IDE Atmel Studio 6 que é gratuita e baseada em GCC  e no Visual Studio da Microsoft.

Algumas coisas explicadas são específicas para placas de desenvolvimento da Atmel mas podem ser extrapoladas para testar no seu Arduino ou mesmo no seu protoboard.

Divirta-se !

Referencias :

Atmel Studio : http://www.atmel.com/tools/atmelstudio.aspx?tab=overview

Playlist Getting Started with AVR no youtube:  http://bit.ly/GettingStartedwithAVR

CrossPack for AVR® Development

Para quem está procurando um ambiente de desenvolvimento em C/C++ para AVR no Mac , o Crosspack for AVR é uma boa opção gratuita.

O Crosspack for AVR vem com todos os programas necessários para compilar e gravar a memoria flash do microcontrolador, na linha do finado WinAVr. Voce pode fazer tudo via linha de comando ou pode usa-lo integrado ao XCode, o ambiente de desenvolvimento oficial do Mac OSX. O pacote tem tido atualizações anuais e a ultima é de fevereiro de 2012. O pacote possibilita a geração de código executável para todos os tipos de AVR 8 bits incluindo os XMega.

Uma funcionalidade interessante é o comando “avr-project”  , usado para gerar um template de projeto , contendo um arquivo main.c , um Makefile inicial e as definições de um projeto Xcode. O Makefile gerado é bem completo ,  contendo o necessário para a geraçao do código hex e bem comentado, com as opções de modificação.

Para quem está no Mac e não está querendo instalar uma maquina virtual windows só para rodar o AVR Studio 5 ou 6 ( MS Visual Studio for AVR) , o Crosspack for AVR é uma opção muito interessante.

Link:

CrossPack for AVR : http://www.obdev.at/products/crosspack/index.html

Artigos sobre programação em C para AVR

Dean Carrera é um cara famoso no mundo dos AVRs, foi estagiário e é hoje engenheiro contratado da  na ATMEL Noruega e durante a sua graduação, criou o projeto LUFA que teve sucesso na criação de um stack USB para controladores AVR dotados de interface USB no proprio chip. Este projeto foi usabo como base em diversos dispositivos e foi recentemente portado para os ARMs da NXP.

O que interessa para este post é que recentemente ele disponibilizou em seu site uma série de artigos sobre programação em C para AVRs focando em caracteristicas do hardware, muito interessantes para quem está querendo conhecer mais sobre o desenvolvimento para esta arquitetura.

Links:

Artigos sobre C no AVR: http://fourwalledcubicle.com/AVRArticles.php

LUFA: http://fourwalledcubicle.com/LUFA.php

Arduino minimo sem cristal

Durante o 1o. Encontro Open Hardware de Brasilia, O Isaias Coelho fez uma apresentação sobre as suas experiencias com o Arduino Minimo Standalone, basicamente um microcontrolador atmega8/168 ou 328 montado em um breadboard, possibilitando começar a brincar com o arduino por um custo minimo. Gostei muito da apresentação mas fiquei pensando se não poderia usar menos componentes. Sabia que os ATMEGAs possuem um gerador de clock interno ao microcontrolador , que podem gerar clocks de 1,4 e 8 Mhz e que o kit Lilypad ja tinha ido por essa linha de desenvolvimento há algum tempo atrás.

Configurar o atmega é tranquilo , é só alterar os fuses , o maior trabalho é gerar o bootloader e configurar a ide do arduino para trabalhar corretamente com o novo Arduino. Comecei a pesquisar sobre o assunto, achei diversas referencias na internet sobre o assunto e usei principalmente os experimentos do blog ( muito interessante !!) do todbot que já realizou esta implementação em 2009. Coloco aqui o resumo da implementação do meu Arduino minimo sem cristal.

O circuito.

O circuito é praticamente apenas o microcontrolador ATMEGA 8. Adicionei um resistor de 10k do pino de reset para o VCC , um resistor de 330 ohms e um led para ligar ao pino pb.5 que equivale ao pino digital 13 do Arduino para testar o funcionamento do arduino com o programa Blink. Para alimentar o circuito usei uma bateria CR2032 de 3 Volts, destas usadas em relógios, já que o ATMEGA 8 comum precisa de uma alimentação minima de 2.7 volts.

Os fuses.

Os fuses do ATMEGA 8 devem ser setados como: HighFuses = OXC4 , LowFuses=0XE4. Esta configuração garante principalmente a velocidade de 8MHz e que um bootloader estará presente neste ATMEGA 8

O bootloader.

Usei o bootloader antigo do Arduino usado nas versões com ATMEGA 8. Neste bootloader foram alterados a velocidade de funcionamento para 8 Mhz. Os arquivos para download estão no meu github nos links no final do post.  Para gravar o bootloader usei o programa Avr Studio 4 da Atmel e um kit STK500 mas existem diversas outras formas de grava-lo das mais simples com um cabo ligado a porta paralela até programadores mais sofisticados. Apos gravar o bootloader é so montar  na breadboard. O blog do Daniel Quadros fez uma serie de posts sobre os programadores mais usados, links no final deste post.

A IDE Arduino.

A IDE foi modificada com a colocação da configuração do novo tipo de Arduino no arquivo boards.txt. Os parâmetros configurados indicam qual é o chip usado , sua freqüência de funcionamento, qual a velocidade de comunicação para a gravação dos sketches , etc. O código a ser adicionado está também no github. Nas versões da IDE Arduino para Windows e Linux é só acessar o arquivo boards.txt no diretório arduino00xx/hardware/boards.txt. No MAC OS X, o arquivo boards.txt fica dentro do Arduino.app . É necessario acionar o Finder , posicionar-se no diretório de Aplicativos e  abrir o Arduino.app com a opção “Mostrar o conteudo do pacote” ,  abrir o arquivo boards.txt no diretório Arduino.app/Contents/Resources/Java/ hardware/arduino e edita-lo.

Como transmitir o sketch  o Arduino.

Este Arduino minimo não tem USB, como conversar com ele ? A opção mais simples é usar uma placa arduino ng, duemilanove ou outra com interface USB que voce ja tenha: tire o chip Atmega da placa e ligue da seguinte forma:

  • pino 2 do ATMEGA8 (RXD)  na saída D0 do Arduino
  • pino 3 do ATMEGA8 (TXD) na saída D1 do Arduino
  • pino 7 do ATMEGA8 (VCC) na saída 5V do Arduino
  • pino 8 do ATMEGA8 (GND) na saída 0V do Arduino

Os testes.

Para testar usei o famoso sketch Blink. Para gravar o programa é preciso um certo macete ja que esta versão do bootloader não tem suporte para o reset, via ide dos Arduinos mais novos . Assim que voce mandar fazer o upload do código compilado, dê um reset no arduino , desligando e religando ou dando um curto rapido do pino 1 com o terra causando um reset no atmega. Depois de um curto tempo a comunicacao do ATMEGA8 com o pc se inicia, e a carga do programa é concluida com sucesso.

Conclusões.

Esta, eu acredito que é a forma mais barata de ter um Arduino para testar em protótipos. Esta opção é interessante para montagem em workshops para iniciantes, já que diminui o numero de erros possíveis de acontecer. Outro uso é principalmente para quem fez um upgrade em seu Arduino para Atmega168 ou 328 e ficou com o ATMEGA8 de bobeira em casa . Esta versão também pode servir como base para projetos definitivos de dispositivos onde o timing da aplicação não seja critico e a facilidade de programação proporcionada pela IDE Arduino seja um diferencial para o projeto. Eu estou experimentando esta versão em um controlador de automação residencial e os resultados são muito interessantes. Esta mesma situação pode ser adaptada para uso com ATMEGAs 168 e 328 , ajustando os devidos fuses para os chips, tendo como conseqüência uma area de memoria maior para os sketches.

Divirtam-se !!
Links :
Posts relacionados:
Downloads:

Novo Arduino com Ethernet Incorporada

Arduino com Ethernet
Arduino com Ethernet

Adafruit lançou um novo Arduino, resultado da junção do UNO com um shield ethernet. A nova placa incorpora uma interface ethernet baseada no Wiznet W5100, mesmo chip do shield ethernet “oficial” e de brinde acrescentou um socket para memorias SD.  Este novo Arduino não possui USB e precisa de um cabo USB-TTL para ser programado.

Por 65 obamas, está mais caro que um mBed ( kit ARM da NXP com lpc1768, ethernet, 2 usb, 3 seriais , …)   mas não deixa de ser interessante pelo tamanho compacto.

Links:
Arduino Uno Ethernet

Post Relacionado:
Embedded, I’m Bad , mBed

Hardware Livre no Flisol 2011 Rio de Janeiro

l

No próximo dia 9 de abril vai acontecer na UNIRIO – URCA a edição carioca do maior evento de divulgação de software livre da América Latina: o FLISOL (Festival Latino Americano de Instalação de Software Livre). O FLISOL2011 RJ é organizado pelo SoftwareLivre-RJ.org, trazendo voluntários para realizar instalações de Software Livre nos computadores dos visitantes do FLISOL2011. A participação no FLISOL2011 é totalmente gratuita e aberta à comunidade.

As comunidades de Hardware Livre do Rio de Janeiro, ArduInRio e BeagleBoardInRio estarão presentes com workshops e palestras. Destaques para a palestra sobre Arduino, apresentada pelo Alvaro “Turicas” Justen de (08:00 as 09:00 na sala A) e o Workshop de Arduino a ser realizado pelo pessoal do ArduInRio .

Não Percam !!

Link:

FLISOL 2011 Rio de Janeiro

Atmel AVR Studio 5

A Atmel (fabricante do AVR32 e do ATMega8/168/328 usado no Arduino) liberou ontem , 01 de março de 2011 , a versão beta 2 do seu studio integrado de desenvolvimento de aplicações, AVR Studio. A nova versão traz muitas novidades , entre elas a integração na mesma ferramenta do desenvolvimento para os AVRs de 8 bits e 32 bits,  a integração do compilador baseado em GNU C/C++ Compiler, simulador e bibliotecas prontas para acesso aos recursos dos microcontroladores. O AVR Studio 5 disponibiliza integração com os diversos programadores existentes para a familia AVR.

Em conjunto com o Atmel AVR Studio 5,  A Atmel está fornecendo o AVR Software Framework, um conjunto de bibliotecas de códigos fonte para os AVR de 8 e 32 bits , com aproximadamente 400 exemplos de utilização dos periféricos internos dos microcontroladores e de componentes externos ligados a eles. Este framework visa acelerar o desenvolvimento de aplicações e dispositivos baseados nos AVR.

Até o momento não existe menção a este ambiente vir a ser vendido e deverá manter a tradição da Atmel de fornecer boas ferramentas de desenvolvimento gratuitas. O arquivo de instalação do software tem tamanho de 548 Mbytes, ocupa aproximadamente 1,5 Gbyte depois de instalado e ontem no dia de lançamento levou 4 horas para descer, em um link de 10 MBps.

A nota destoante é que a ferramenta só foi lançada na versão Windows (ela é dependente do .NET Framework e do Visual Studio Isolated Shell), esquecendo os usuários Mac e Linux, que terão de apelar para o VirtualBox , VMWare e outros para usar o ambiente.

Vamos aproveitar o carnaval ( até parece !!!) vendo o que realmente funciona nesta versão beta.

Links:

Anuncio da versão 5 do Atmel AVR Studio 5

Pagina para download do Atmel AVR Studio 5

Atmel Store

A Atmel lançou recentemente a Atmel Store, uma loja na internet dedicada as suas ferramentas de desenvolvimento e depuração para os produtos fabricados por ela. O site tem as seguintes categorias de produtos a venda : Starter kits, Debuggers, Programmers, Touch kits, Wireless kits, Evaluation kits, Reference designs, Spare parts & Accessories.

Estão disponiveis para venda , por exemplo, o STK-500 por US$ 79,00 e o STK-600 por US$ 199,00 na categoria Starter Kits e o Atmel AVR RZ Raven por US$ 119,00 na categoria Wireless Kits. O AVR RZ Raven permite o desenvolvimento e depuração de aplicações wireless com os protocolos EEE 802.15.4, 6LoWPAN e ZigBee.

Para comprar na loja é necessário preencher um cadastro com dados pessoais e não é obrigatório estar associado a nenhuma empresa. O frete minimo para o Brasil está fixado em US$ 41,00 ( dolares americanos). Não existem informações sobre a possivel venda de componentes através do site.

Links:

Atmel Store