Programación de Micros AVR en Linux

Instalación de Herramientas

Herramientas de Software y Hardware

Software

  • Sistema operativo Linux
  • Compilador y utilidades (avr-gcc)
  • Programador (avrdude)
  • Editor de Texto (Visual Studio Code)
  • Programa para crear proyectos APOS (AVR Project Open Source)

Sistema operativo Linux

El sistema operativo linux de su agrado


Compilador

Compilador avr-gcc, binutils-avr y avr-libc

Debian y derivados:

							$ sudo apt-get install gcc-avr binutils-avr avr-libc
						
Fedora y RedHat:

							$ sudo yum install avr-gcc avr-binutils avr-libc
						
Arch Linux, Manjaro y derivados:

							$ sudo pacman -Sy avr-gcc avr-binutils avr-libc
						
Probar la instalación:

							$ avr-gcc --version
						

Programador

Debian y derivados:

							$ sudo apt-get install avrdude
						
Fedora y RedHat:

							$ sudo yum install avrdude
						
Arch Linux, Manjaro y derivados:

							$ sudo pacman -Sy avrdude
						
Probar la instalación:

							$ avrdude -v
						

Editor de Texto

Para mostrar los ejemplos de programación se utiliza el editor Visual Studio Code, que cuenta con una terminal integrada


Descarga desde la página oficial:

https://code.visualstudio.com/


Probar la instalación:

							$ code -v
						

Programa APOS

Software para crear plantillas de proyectos
para microcontroladores AVR


Instalación:

									$ git clone https://github.com/alfreedom/apos.git
									$ cd apos
									$ make && sudo make install
							
Probar la instalación:

									$ apos -v
							

Hardware

  • Programador USB
  • Microcontrolador AVR
  • Tarjeta de desarrollo basada en AVR

Programador USB

Existen gran variedad de programadores USB, desde los profecionales hasta los OpenSource


  • AVRdragon
  • AVRISP MKii
  • USBasp
  • USBTiny
  • USBTiny ISP

Instalación del Programador


Ejecutar en una terminal:


							$ sudo adduser USUARIO dialout
						

Este comando agrega al usuario USUARIO al grupo dialout


Crear y editar las reglas de los programadores

							
								$ sudo touch /etc/udev/rules.d/99-avr.rules
								$ sudo code  /etc/udev/rules.d/99-avr.rules
							
						

Agregar las reglas de los programadores

							
								# Programmers for avrdude
								ATTR{idVendor}=="03eb", ATTR{idProduct}=="2104", GROUP="dialout", MODE="0660" # AVRISP mkII
								ATTR{idVendor}=="03eb", ATTR{idProduct}=="2107", GROUP="dialout", MODE="0660" # AVR-Dragon
								ATTR{idVendor}=="03eb", ATTR{idProduct}=="2103", GROUP="dialout", MODE="0660" # JTAG ICE mkII
								ATTR{idVendor}=="03eb", ATTR{idProduct}=="2106", GROUP="dialout", MODE="0660" # STK600
								ATTR{idVendor}=="16c0", ATTR{idProduct}=="05dc", GROUP="dialout", MODE="0660" # USBASP von www.fischl.de
								ATTR{idVendor}=="03eb", ATTR{idProduct}=="2ffa", GROUP="dialout", MODE="0660" # AT90USB
								ATTR{idVendor}=="10c4", ATTR{idProduct}=="ea60", GROUP="dialout", MODE="0660" # AVR910
								ATTR{idVendor}=="03eb", ATTR{idProduct}=="2105", GROUP="dialout", MODE="0660" # AVR ONE
								ATTR{idVendor}=="03eb", ATTR{idProduct}=="210d", GROUP="dialout", MODE="0660" # Atmel XPLAIN CDC Gateway
								ATTR{idVendor}=="03eb", ATTR{idProduct}=="2ffb", GROUP="dialout", MODE="0660" # AT90USB AVR DFU bootloader
								ATTR{idVendor}=="1781", ATTR{idProduct}=="0c9f", GROUP="dialout", MODE="0660" # usbtiny
							
						
Archivo 99-avr.rules

Actualizar las reglas con los comandos

									
										 $ sudo udevadm control --reload
										 $ sudo udevadm trigger --action=add
									
								

Siguiente capítulo

Creación de un proyecto:
Hola Mundo en AVR

Ir al capitulo 2