AVR da AtmelSoftwareAmbientes de Desenvolvimento
AVRStudio (Windows) - http://www.atmel.com/tools/atmelstudio.aspx
Eclipse + avr-eclipse (Linux e Windows) - http://www.eclipse.org/ + http://avr-eclipse.sourceforge.net
DocumentaçãoFolhas de características
ATmega88 - http://www.atmel.com/Images/doc2545.pdf
ATemga88P - http://www.atmel.com/Images/doc8025.pdf
ATmega324P - http://www.atmel.com/Images/Atmel-8011-8-bit-AVR-Microcontroller-ATmega164P-324P-644P_datasheet.pdf
ATmega328P (Arduino Duemilanove, Nano, Uno) -
http://www.atmel.com/Images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet.pdf
ATmega32u4 (Arduino Leonardo) - http://www.atmel.com/Images/doc7766.pdf
Programação
ASM (Set de instruções) - http://www.atmel.com/Images/doc0856.pdf
C (AVR libc) - http://www.nongnu.org/avr-libc/user-manual/index.html
Online
WebDoc - http://www.atmel.no/webdoc/
ProgramadoresAVRISP mkII - http://www.atmel.no/webdoc/avrispmkii/avrispmkii.html
Comunidades OnlineAVRfreaks - http://www.avrfreaks.net
Outros programadoresUSBasp
Programador de baixo custo suportado em Windows e Linux.
USBasp - www.fischl.de/usbasp
Usar o programa avrdude para enviar o ficheir .hex o microcontrolador.
Instalar o WinAvr http://sourceforge.net/projects/winavr (instala o avrdude). Como o avrdude funciona em modo linha de comandos existem programas que disponibilizam um GUI, tais como: http://avr8-burn-o-mat.aaabbb.de/.
Exemplo do uso do avrdude através da linha de comandos com um ATmega88 e ficha ICSP:
avrdude -p m88 -c usbasp -Uflash:w:nome_ficheiro.hex:a
AVR-Doper
Permite fácil integração com o AVRstudio porque implementa o protocolo STK500v2. Também pode ser usado com o avrdude.
AVR-Doper - http://www.obdev.at/products/vusb/avrdoper.html
Metaboard
Conjunto hardware + firmware que permite programar um AVR sem recorrer a programadores externos.
Metaboard - https://metalab.at/wiki/Metaboard
ArduinoÉ possível usar as placas Arduino com o AVRStudio em vez do IDE disponibilizado pelo Ardunio. Neste caso não se usa a linguagem do Arduino (baseada no wiring) mas assembly ou C. Basta para isso, depois de se gerar o ficheiro intel HEX, programar a placa Arduino usando o AVRdude. Neste caso não há necessidade de se usar programadores externos, pode usar-se um cabo USB normal ligado diretamente à placa.
- Duemilanove, nano (328): avrdude -p m328p -c arduino -P nome_da_porta_COM -b 57600 -Uflash:w:nome_ficheiro.hex:a
- Uno: avrdude -p m328p -c arduino -P nome_da_porta_COM -Uflash:w:nome_ficheiro.hex:a
- Leonardo: avrdude -p m32u4 -c avr109 -P nome_da_porta_COM -Uflash:w:nome_ficheiro.hex:a
No caso da placa Arduino Leonardo há a necessidade de ter atenção a alguns pormenores:
Após o reset manual só temos 8 segundos para programar a placa.
Como o micro usa o USB direto e algumas interrupções do USB estão ativas inicialmente, há a necessidade de as desativar (ou atender essa interrupções por software). Os bits a desativar no início do programa são:
- Registo UDIEN bits SUSPE e EORSTE;
- Registo USBCON bit VBUSTE.
Para voltar a usar o Arduino IDE poderá ser necessário, pelo menos na primeira vez, fazer um reset manual.
ArduinoISP
Usar o Arduino como programador de outros micros AVR:
ArduinoISP - http://arduino.cc/en/Tutorial/ArduinoISP
Tutoriais online- http://www.avr-tutorials.com/
- http://www.avr-asm-tutorial.net/avr_en/
- http://www.avrbeginners.net/
- http://imakeprojects.com/Projects/avr-tutorial
- http://www.micahcarrick.com/tutorials/avr-microcontroller-tutorial/
USBImplementação de USB apenas por software, evitando o uso de FTDI ou de microcontrolador com controlador dedicado:
http://www.obdev.at/products/vusb/index.html
AVR com LinuxO que um microcontrolador AVR de 8 bits pode fazer:
http://dmitry.gr/index.php?r=05.Projects&proj=07.%20Linux%20on%208bit